!(function (e) { function t(t) { for (var n, r, o = t[0], a = t[1], s = 0, l = []; s < o.length; s++) (r = o[s]), Object.prototype.hasOwnProperty.call(i, r) && i[r] && l.push(i[r][0]), (i[r] = 0); for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n]); for (c && c(t); l.length; ) l.shift()(); } var n = {}, i = { 0: 0 }; function r(t) { if (n[t]) return n[t].exports; var i = (n[t] = { i: t, l: !1, exports: {} }); return e[t].call(i.exports, i, i.exports, r), (i.l = !0), i.exports; } (r.e = function (e) { var t = [], n = i[e]; if (0 !== n) if (n) t.push(n[2]); else { var o = new Promise(function (t, r) { n = i[e] = [t, r]; }); t.push((n[2] = o)); var a, s = document.createElement("script"); (s.charset = "utf-8"), (s.timeout = 120), r.nc && s.setAttribute("nonce", r.nc), (s.src = (function (e) { return r.p + "" + e + ".bundle.js"; })(e)); var c = new Error(); a = function (t) { (s.onerror = s.onload = null), clearTimeout(l); var n = i[e]; if (0 !== n) { if (n) { var r = t && ("load" === t.type ? "missing" : t.type), o = t && t.target && t.target.src; (c.message = "Loading chunk " + e + " failed.\n(" + r + ": " + o + ")"), (c.name = "ChunkLoadError"), (c.type = r), (c.request = o), n[1](c); } i[e] = void 0; } }; var l = setTimeout(function () { a({ type: "timeout", target: s }); }, 12e4); (s.onerror = s.onload = a), document.head.appendChild(s); } return Promise.all(t); }), (r.m = e), (r.c = n), (r.d = function (e, t, n) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n }); }), (r.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }), (r.t = function (e, t) { if ((1 & t && (e = r(e)), 8 & t)) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var n = Object.create(null); if ((r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e)) for (var i in e) r.d( n, i, function (t) { return e[t]; }.bind(null, i) ); return n; }), (r.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return r.d(t, "a", t), t; }), (r.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }), (r.p = ""), (r.oe = function (e) { throw e; }); var o = (window.webpackJsonp = window.webpackJsonp || []), a = o.push.bind(o); (o.push = t), (o = o.slice()); for (var s = 0; s < o.length; s++) t(o[s]); var c = a; r((r.s = 351)); })([ function (e, t, n) { "use strict"; function i() {} n.d(t, "a", function () { return ae; }), n.d(t, "b", function () { return U; }), n.d(t, "c", function () { return L; }), n.d(t, "d", function () { return m; }), n.d(t, "e", function () { return T; }), n.d(t, "f", function () { return k; }), n.d(t, "g", function () { return Q; }), n.d(t, "h", function () { return ne; }), n.d(t, "i", function () { return h; }), n.d(t, "j", function () { return re; }), n.d(t, "k", function () { return _; }), n.d(t, "l", function () { return b; }), n.d(t, "m", function () { return v; }), n.d(t, "n", function () { return P; }), n.d(t, "o", function () { return S; }), n.d(t, "p", function () { return u; }), n.d(t, "q", function () { return ee; }), n.d(t, "r", function () { return q; }), n.d(t, "s", function () { return oe; }), n.d(t, "t", function () { return g; }), n.d(t, "u", function () { return s; }), n.d(t, "v", function () { return x; }), n.d(t, "w", function () { return ie; }), n.d(t, "x", function () { return i; }), n.d(t, "y", function () { return f; }), n.d(t, "z", function () { return F; }), n.d(t, "A", function () { return w; }), n.d(t, "B", function () { return a; }), n.d(t, "C", function () { return c; }), n.d(t, "D", function () { return M; }), n.d(t, "E", function () { return A; }), n.d(t, "F", function () { return O; }), n.d(t, "G", function () { return E; }), n.d(t, "H", function () { return C; }), n.d(t, "I", function () { return l; }), n.d(t, "J", function () { return y; }), n.d(t, "K", function () { return J; }), n.d(t, "L", function () { return $; }), n.d(t, "M", function () { return p; }); function r(e) { return e(); } function o() { return Object.create(null); } function a(e) { e.forEach(r); } function s(e) { return "function" == typeof e; } function c(e, t) { return e != e ? t == t : e !== t || (e && "object" == typeof e) || "function" == typeof e; } function l(e, ...t) { if (null == e) return i; const n = e.subscribe(...t); return n.unsubscribe ? () => n.unsubscribe() : n; } function u(e) { let t; return l(e, (e) => (t = e))(), t; } function h(e, t, n, i) { if (e) { const r = d(e, t, n, i); return e[0](r); } } function d(e, t, n, i) { return e[1] && i ? (function (e, t) { for (const n in t) e[n] = t[n]; return e; })(n.ctx.slice(), e[1](i(t))) : n.ctx; } function p(e, t, n, i, r, o, a) { const s = (function (e, t, n, i) { if (e[2] && i) { const r = e[2](i(n)); if (void 0 === t.dirty) return r; if ("object" == typeof r) { const e = [], n = Math.max(t.dirty.length, r.length); for (let i = 0; i < n; i += 1) e[i] = t.dirty[i] | r[i]; return e; } return t.dirty | r; } return t.dirty; })(t, i, r, o); if (s) { const r = d(t, n, i, a); e.p(r, s); } } function f(e) { return null == e ? "" : e; } new Set(); function m(e, t) { e.appendChild(t); } function g(e, t, n) { e.insertBefore(t, n || null); } function b(e) { e.parentNode.removeChild(e); } function _(e, t) { for (let n = 0; n < e.length; n += 1) e[n] && e[n].d(t); } function v(e) { return document.createElement(e); } function y(e) { return document.createTextNode(e); } function C() { return y(" "); } function P() { return y(""); } function x(e, t, n, i) { return e.addEventListener(t, n, i), () => e.removeEventListener(t, n, i); } function T(e, t, n) { null == n ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n); } function S(e, t, n) { const i = new Set(); for (let t = 0; t < e.length; t += 1) e[t].checked && i.add(e[t].__value); return n || i.delete(t), Array.from(i); } function O(e, t) { (t = "" + t), e.wholeText !== t && (e.data = t); } function E(e, t, n, i) { e.style.setProperty(t, n, i ? "important" : ""); } function M(e, t) { for (let n = 0; n < e.options.length; n += 1) { const i = e.options[n]; if (i.__value === t) return void (i.selected = !0); } } function A(e) { const t = e.querySelector(":checked") || e.options[0]; return t && t.__value; } new Set(); let I; function D(e) { I = e; } function R() { if (!I) throw new Error("Function called outside component initialization"); return I; } function w(e) { R().$$.on_mount.push(e); } function L(e) { R().$$.after_update.push(e); } function F(e) { R().$$.on_destroy.push(e); } const N = [], k = [], z = [], j = [], B = Promise.resolve(); let V = !1; function G() { V || ((V = !0), B.then(X)); } function U(e) { z.push(e); } let H = !1; const W = new Set(); function X() { if (!H) { H = !0; do { for (let e = 0; e < N.length; e += 1) { const t = N[e]; D(t), Y(t.$$); } for (N.length = 0; k.length; ) k.pop()(); for (let e = 0; e < z.length; e += 1) { const t = z[e]; W.has(t) || (W.add(t), t()); } z.length = 0; } while (N.length); for (; j.length; ) j.pop()(); (V = !1), (H = !1), W.clear(); } } function Y(e) { if (null !== e.fragment) { e.update(), a(e.before_update); const t = e.dirty; (e.dirty = [-1]), e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(U); } } const K = new Set(); let Z; function q() { Z = { r: 0, c: [], p: Z }; } function Q() { Z.r || a(Z.c), (Z = Z.p); } function J(e, t) { e && e.i && (K.delete(e), e.i(t)); } function $(e, t, n, i) { if (e && e.o) { if (K.has(e)) return; K.add(e), Z.c.push(() => { K.delete(e), i && (n && e.d(1), i()); }), e.o(t); } } const ee = "undefined" != typeof window ? window : "undefined" != typeof globalThis ? globalThis : global; new Set([ "allowfullscreen", "allowpaymentrequest", "async", "autofocus", "autoplay", "checked", "controls", "default", "defer", "disabled", "formnovalidate", "hidden", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "selected", ]); let te; function ne(e) { e && e.c(); } function ie(e, t, n) { const { fragment: i, on_mount: o, on_destroy: c, after_update: l } = e.$$; i && i.m(t, n), U(() => { const t = o.map(r).filter(s); c ? c.push(...t) : a(t), (e.$$.on_mount = []); }), l.forEach(U); } function re(e, t) { const n = e.$$; null !== n.fragment && (a(n.on_destroy), n.fragment && n.fragment.d(t), (n.on_destroy = n.fragment = null), (n.ctx = [])); } function oe(e, t, n, r, s, c, l = [-1]) { const u = I; D(e); const h = t.props || {}, d = (e.$$ = { fragment: null, ctx: null, props: c, update: i, not_equal: s, bound: o(), on_mount: [], on_destroy: [], before_update: [], after_update: [], context: new Map(u ? u.$$.context : []), callbacks: o(), dirty: l }); let p = !1; if ( ((d.ctx = n ? n(e, h, (t, n, ...i) => { const r = i.length ? i[0] : n; return ( d.ctx && s(d.ctx[t], (d.ctx[t] = r)) && (d.bound[t] && d.bound[t](r), p && (function (e, t) { -1 === e.$$.dirty[0] && (N.push(e), G(), e.$$.dirty.fill(0)), (e.$$.dirty[(t / 31) | 0] |= 1 << t % 31); })(e, t)), n ); }) : []), d.update(), (p = !0), a(d.before_update), (d.fragment = !!r && r(d.ctx)), t.target) ) { if (t.hydrate) { const e = (function (e) { return Array.from(e.childNodes); })(t.target); d.fragment && d.fragment.l(e), e.forEach(b); } else d.fragment && d.fragment.c(); t.intro && J(e.$$.fragment), ie(e, t.target, t.anchor), X(); } D(u); } "function" == typeof HTMLElement && (te = class extends HTMLElement { constructor() { super(), this.attachShadow({ mode: "open" }); } connectedCallback() { for (const e in this.$$.slotted) this.appendChild(this.$$.slotted[e]); } attributeChangedCallback(e, t, n) { this[e] = n; } $destroy() { re(this, 1), (this.$destroy = i); } $on(e, t) { const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []); return ( n.push(t), () => { const e = n.indexOf(t); -1 !== e && n.splice(e, 1); } ); } $set() {} }); class ae { $destroy() { re(this, 1), (this.$destroy = i); } $on(e, t) { const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []); return ( n.push(t), () => { const e = n.indexOf(t); -1 !== e && n.splice(e, 1); } ); } $set() {} } }, function (e, t, n) { "use strict"; n.d(t, "d", function () { return s; }), n.d(t, "e", function () { return c; }), n.d(t, "f", function () { return l; }), n.d(t, "b", function () { return u; }), n.d(t, "a", function () { return h; }), n.d(t, "c", function () { return p; }); var i = n(15), r = n(34), o = n(58), a = n(13), s = (function () { function e(e, t) { void 0 === e && (e = 0), void 0 === t && (t = 0), (this.x = e), (this.y = t); } return ( (e.prototype.toString = function () { return "{X: " + this.x + " Y:" + this.y + "}"; }), (e.prototype.getClassName = function () { return "Vector2"; }), (e.prototype.getHashCode = function () { var e = 0 | this.x; return (e = (397 * e) ^ (0 | this.y)); }), (e.prototype.toArray = function (e, t) { return void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), this; }), (e.prototype.asArray = function () { var e = new Array(); return this.toArray(e, 0), e; }), (e.prototype.copyFrom = function (e) { return (this.x = e.x), (this.y = e.y), this; }), (e.prototype.copyFromFloats = function (e, t) { return (this.x = e), (this.y = t), this; }), (e.prototype.set = function (e, t) { return this.copyFromFloats(e, t); }), (e.prototype.add = function (t) { return new e(this.x + t.x, this.y + t.y); }), (e.prototype.addToRef = function (e, t) { return (t.x = this.x + e.x), (t.y = this.y + e.y), this; }), (e.prototype.addInPlace = function (e) { return (this.x += e.x), (this.y += e.y), this; }), (e.prototype.addVector3 = function (t) { return new e(this.x + t.x, this.y + t.y); }), (e.prototype.subtract = function (t) { return new e(this.x - t.x, this.y - t.y); }), (e.prototype.subtractToRef = function (e, t) { return (t.x = this.x - e.x), (t.y = this.y - e.y), this; }), (e.prototype.subtractInPlace = function (e) { return (this.x -= e.x), (this.y -= e.y), this; }), (e.prototype.multiplyInPlace = function (e) { return (this.x *= e.x), (this.y *= e.y), this; }), (e.prototype.multiply = function (t) { return new e(this.x * t.x, this.y * t.y); }), (e.prototype.multiplyToRef = function (e, t) { return (t.x = this.x * e.x), (t.y = this.y * e.y), this; }), (e.prototype.multiplyByFloats = function (t, n) { return new e(this.x * t, this.y * n); }), (e.prototype.divide = function (t) { return new e(this.x / t.x, this.y / t.y); }), (e.prototype.divideToRef = function (e, t) { return (t.x = this.x / e.x), (t.y = this.y / e.y), this; }), (e.prototype.divideInPlace = function (e) { return this.divideToRef(e, this); }), (e.prototype.negate = function () { return new e(-this.x, -this.y); }), (e.prototype.negateInPlace = function () { return (this.x *= -1), (this.y *= -1), this; }), (e.prototype.negateToRef = function (e) { return e.copyFromFloats(-1 * this.x, -1 * this.y); }), (e.prototype.scaleInPlace = function (e) { return (this.x *= e), (this.y *= e), this; }), (e.prototype.scale = function (t) { var n = new e(0, 0); return this.scaleToRef(t, n), n; }), (e.prototype.scaleToRef = function (e, t) { return (t.x = this.x * e), (t.y = this.y * e), this; }), (e.prototype.scaleAndAddToRef = function (e, t) { return (t.x += this.x * e), (t.y += this.y * e), this; }), (e.prototype.equals = function (e) { return e && this.x === e.x && this.y === e.y; }), (e.prototype.equalsWithEpsilon = function (e, t) { return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t); }), (e.prototype.floor = function () { return new e(Math.floor(this.x), Math.floor(this.y)); }), (e.prototype.fract = function () { return new e(this.x - Math.floor(this.x), this.y - Math.floor(this.y)); }), (e.prototype.length = function () { return Math.sqrt(this.x * this.x + this.y * this.y); }), (e.prototype.lengthSquared = function () { return this.x * this.x + this.y * this.y; }), (e.prototype.normalize = function () { var e = this.length(); return 0 === e || ((this.x /= e), (this.y /= e)), this; }), (e.prototype.clone = function () { return new e(this.x, this.y); }), (e.Zero = function () { return new e(0, 0); }), (e.One = function () { return new e(1, 1); }), (e.FromArray = function (t, n) { return void 0 === n && (n = 0), new e(t[n], t[n + 1]); }), (e.FromArrayToRef = function (e, t, n) { (n.x = e[t]), (n.y = e[t + 1]); }), (e.CatmullRom = function (t, n, i, r, o) { var a = o * o, s = o * a; return new e( 0.5 * (2 * n.x + (-t.x + i.x) * o + (2 * t.x - 5 * n.x + 4 * i.x - r.x) * a + (-t.x + 3 * n.x - 3 * i.x + r.x) * s), 0.5 * (2 * n.y + (-t.y + i.y) * o + (2 * t.y - 5 * n.y + 4 * i.y - r.y) * a + (-t.y + 3 * n.y - 3 * i.y + r.y) * s) ); }), (e.Clamp = function (t, n, i) { var r = t.x; r = (r = r > i.x ? i.x : r) < n.x ? n.x : r; var o = t.y; return new e(r, (o = (o = o > i.y ? i.y : o) < n.y ? n.y : o)); }), (e.Hermite = function (t, n, i, r, o) { var a = o * o, s = o * a, c = 2 * s - 3 * a + 1, l = -2 * s + 3 * a, u = s - 2 * a + o, h = s - a; return new e(t.x * c + i.x * l + n.x * u + r.x * h, t.y * c + i.y * l + n.y * u + r.y * h); }), (e.Lerp = function (t, n, i) { return new e(t.x + (n.x - t.x) * i, t.y + (n.y - t.y) * i); }), (e.Dot = function (e, t) { return e.x * t.x + e.y * t.y; }), (e.Normalize = function (e) { var t = e.clone(); return t.normalize(), t; }), (e.Minimize = function (t, n) { return new e(t.x < n.x ? t.x : n.x, t.y < n.y ? t.y : n.y); }), (e.Maximize = function (t, n) { return new e(t.x > n.x ? t.x : n.x, t.y > n.y ? t.y : n.y); }), (e.Transform = function (t, n) { var i = e.Zero(); return e.TransformToRef(t, n, i), i; }), (e.TransformToRef = function (e, t, n) { var i = t.m, r = e.x * i[0] + e.y * i[4] + i[12], o = e.x * i[1] + e.y * i[5] + i[13]; (n.x = r), (n.y = o); }), (e.PointInTriangle = function (e, t, n, i) { var r = 0.5 * (-n.y * i.x + t.y * (-n.x + i.x) + t.x * (n.y - i.y) + n.x * i.y), o = r < 0 ? -1 : 1, a = (t.y * i.x - t.x * i.y + (i.y - t.y) * e.x + (t.x - i.x) * e.y) * o, s = (t.x * n.y - t.y * n.x + (t.y - n.y) * e.x + (n.x - t.x) * e.y) * o; return a > 0 && s > 0 && a + s < 2 * r * o; }), (e.Distance = function (t, n) { return Math.sqrt(e.DistanceSquared(t, n)); }), (e.DistanceSquared = function (e, t) { var n = e.x - t.x, i = e.y - t.y; return n * n + i * i; }), (e.Center = function (e, t) { var n = e.add(t); return n.scaleInPlace(0.5), n; }), (e.DistanceOfPointFromSegment = function (t, n, i) { var r = e.DistanceSquared(n, i); if (0 === r) return e.Distance(t, n); var o = i.subtract(n), a = Math.max(0, Math.min(1, e.Dot(t.subtract(n), o) / r)), s = n.add(o.multiplyByFloats(a, a)); return e.Distance(t, s); }), e ); })(), c = (function () { function e(e, t, n) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), (this.x = e), (this.y = t), (this.z = n); } return ( (e.prototype.toString = function () { return "{X: " + this.x + " Y:" + this.y + " Z:" + this.z + "}"; }), (e.prototype.getClassName = function () { return "Vector3"; }), (e.prototype.getHashCode = function () { var e = 0 | this.x; return (e = (397 * (e = (397 * e) ^ (0 | this.y))) ^ (0 | this.z)); }), (e.prototype.asArray = function () { var e = []; return this.toArray(e, 0), e; }), (e.prototype.toArray = function (e, t) { return void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), (e[t + 2] = this.z), this; }), (e.prototype.toQuaternion = function () { return u.RotationYawPitchRoll(this.y, this.x, this.z); }), (e.prototype.addInPlace = function (e) { return this.addInPlaceFromFloats(e.x, e.y, e.z); }), (e.prototype.addInPlaceFromFloats = function (e, t, n) { return (this.x += e), (this.y += t), (this.z += n), this; }), (e.prototype.add = function (t) { return new e(this.x + t.x, this.y + t.y, this.z + t.z); }), (e.prototype.addToRef = function (e, t) { return t.copyFromFloats(this.x + e.x, this.y + e.y, this.z + e.z); }), (e.prototype.subtractInPlace = function (e) { return (this.x -= e.x), (this.y -= e.y), (this.z -= e.z), this; }), (e.prototype.subtract = function (t) { return new e(this.x - t.x, this.y - t.y, this.z - t.z); }), (e.prototype.subtractToRef = function (e, t) { return this.subtractFromFloatsToRef(e.x, e.y, e.z, t); }), (e.prototype.subtractFromFloats = function (t, n, i) { return new e(this.x - t, this.y - n, this.z - i); }), (e.prototype.subtractFromFloatsToRef = function (e, t, n, i) { return i.copyFromFloats(this.x - e, this.y - t, this.z - n); }), (e.prototype.negate = function () { return new e(-this.x, -this.y, -this.z); }), (e.prototype.negateInPlace = function () { return (this.x *= -1), (this.y *= -1), (this.z *= -1), this; }), (e.prototype.negateToRef = function (e) { return e.copyFromFloats(-1 * this.x, -1 * this.y, -1 * this.z); }), (e.prototype.scaleInPlace = function (e) { return (this.x *= e), (this.y *= e), (this.z *= e), this; }), (e.prototype.scale = function (t) { return new e(this.x * t, this.y * t, this.z * t); }), (e.prototype.scaleToRef = function (e, t) { return t.copyFromFloats(this.x * e, this.y * e, this.z * e); }), (e.prototype.scaleAndAddToRef = function (e, t) { return t.addInPlaceFromFloats(this.x * e, this.y * e, this.z * e); }), (e.prototype.equals = function (e) { return e && this.x === e.x && this.y === e.y && this.z === e.z; }), (e.prototype.equalsWithEpsilon = function (e, t) { return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t) && i.a.WithinEpsilon(this.z, e.z, t); }), (e.prototype.equalsToFloats = function (e, t, n) { return this.x === e && this.y === t && this.z === n; }), (e.prototype.multiplyInPlace = function (e) { return (this.x *= e.x), (this.y *= e.y), (this.z *= e.z), this; }), (e.prototype.multiply = function (e) { return this.multiplyByFloats(e.x, e.y, e.z); }), (e.prototype.multiplyToRef = function (e, t) { return t.copyFromFloats(this.x * e.x, this.y * e.y, this.z * e.z); }), (e.prototype.multiplyByFloats = function (t, n, i) { return new e(this.x * t, this.y * n, this.z * i); }), (e.prototype.divide = function (t) { return new e(this.x / t.x, this.y / t.y, this.z / t.z); }), (e.prototype.divideToRef = function (e, t) { return t.copyFromFloats(this.x / e.x, this.y / e.y, this.z / e.z); }), (e.prototype.divideInPlace = function (e) { return this.divideToRef(e, this); }), (e.prototype.minimizeInPlace = function (e) { return this.minimizeInPlaceFromFloats(e.x, e.y, e.z); }), (e.prototype.maximizeInPlace = function (e) { return this.maximizeInPlaceFromFloats(e.x, e.y, e.z); }), (e.prototype.minimizeInPlaceFromFloats = function (e, t, n) { return e < this.x && (this.x = e), t < this.y && (this.y = t), n < this.z && (this.z = n), this; }), (e.prototype.maximizeInPlaceFromFloats = function (e, t, n) { return e > this.x && (this.x = e), t > this.y && (this.y = t), n > this.z && (this.z = n), this; }), (e.prototype.isNonUniformWithinEpsilon = function (e) { var t = Math.abs(this.x), n = Math.abs(this.y); if (!i.a.WithinEpsilon(t, n, e)) return !0; var r = Math.abs(this.z); return !i.a.WithinEpsilon(t, r, e) || !i.a.WithinEpsilon(n, r, e); }), Object.defineProperty(e.prototype, "isNonUniform", { get: function () { var e = Math.abs(this.x), t = Math.abs(this.y); if (e !== t) return !0; var n = Math.abs(this.z); return e !== n || t !== n; }, enumerable: !0, configurable: !0, }), (e.prototype.floor = function () { return new e(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z)); }), (e.prototype.fract = function () { return new e(this.x - Math.floor(this.x), this.y - Math.floor(this.y), this.z - Math.floor(this.z)); }), (e.prototype.length = function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); }), (e.prototype.lengthSquared = function () { return this.x * this.x + this.y * this.y + this.z * this.z; }), (e.prototype.normalize = function () { return this.normalizeFromLength(this.length()); }), (e.prototype.reorderInPlace = function (e) { var t = this; return ( "xyz" === (e = e.toLowerCase()) || (d.Vector3[0].copyFrom(this), ["x", "y", "z"].forEach(function (n, i) { t[n] = d.Vector3[0][e[i]]; })), this ); }), (e.prototype.rotateByQuaternionToRef = function (t, n) { return t.toRotationMatrix(d.Matrix[0]), e.TransformCoordinatesToRef(this, d.Matrix[0], n), n; }), (e.prototype.rotateByQuaternionAroundPointToRef = function (e, t, n) { return this.subtractToRef(t, d.Vector3[0]), d.Vector3[0].rotateByQuaternionToRef(e, d.Vector3[0]), t.addToRef(d.Vector3[0], n), n; }), (e.prototype.cross = function (t) { return e.Cross(this, t); }), (e.prototype.normalizeFromLength = function (e) { return 0 === e || 1 === e ? this : this.scaleInPlace(1 / e); }), (e.prototype.normalizeToNew = function () { var t = new e(0, 0, 0); return this.normalizeToRef(t), t; }), (e.prototype.normalizeToRef = function (e) { var t = this.length(); return 0 === t || 1 === t ? e.copyFromFloats(this.x, this.y, this.z) : this.scaleToRef(1 / t, e); }), (e.prototype.clone = function () { return new e(this.x, this.y, this.z); }), (e.prototype.copyFrom = function (e) { return this.copyFromFloats(e.x, e.y, e.z); }), (e.prototype.copyFromFloats = function (e, t, n) { return (this.x = e), (this.y = t), (this.z = n), this; }), (e.prototype.set = function (e, t, n) { return this.copyFromFloats(e, t, n); }), (e.prototype.setAll = function (e) { return (this.x = this.y = this.z = e), this; }), (e.GetClipFactor = function (t, n, i, r) { var o = e.Dot(t, i) - r; return o / (o - (e.Dot(n, i) - r)); }), (e.GetAngleBetweenVectors = function (t, n, i) { var r = t.normalizeToRef(d.Vector3[1]), o = n.normalizeToRef(d.Vector3[2]), a = e.Dot(r, o), s = d.Vector3[3]; return e.CrossToRef(r, o, s), e.Dot(s, i) > 0 ? Math.acos(a) : -Math.acos(a); }), (e.FromArray = function (t, n) { return void 0 === n && (n = 0), new e(t[n], t[n + 1], t[n + 2]); }), (e.FromFloatArray = function (t, n) { return e.FromArray(t, n); }), (e.FromArrayToRef = function (e, t, n) { (n.x = e[t]), (n.y = e[t + 1]), (n.z = e[t + 2]); }), (e.FromFloatArrayToRef = function (t, n, i) { return e.FromArrayToRef(t, n, i); }), (e.FromFloatsToRef = function (e, t, n, i) { i.copyFromFloats(e, t, n); }), (e.Zero = function () { return new e(0, 0, 0); }), (e.One = function () { return new e(1, 1, 1); }), (e.Up = function () { return new e(0, 1, 0); }), Object.defineProperty(e, "UpReadOnly", { get: function () { return e._UpReadOnly; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ZeroReadOnly", { get: function () { return e._ZeroReadOnly; }, enumerable: !0, configurable: !0, }), (e.Down = function () { return new e(0, -1, 0); }), (e.Forward = function () { return new e(0, 0, 1); }), (e.Backward = function () { return new e(0, 0, -1); }), (e.Right = function () { return new e(1, 0, 0); }), (e.Left = function () { return new e(-1, 0, 0); }), (e.TransformCoordinates = function (t, n) { var i = e.Zero(); return e.TransformCoordinatesToRef(t, n, i), i; }), (e.TransformCoordinatesToRef = function (t, n, i) { e.TransformCoordinatesFromFloatsToRef(t.x, t.y, t.z, n, i); }), (e.TransformCoordinatesFromFloatsToRef = function (e, t, n, i, r) { var o = i.m, a = e * o[0] + t * o[4] + n * o[8] + o[12], s = e * o[1] + t * o[5] + n * o[9] + o[13], c = e * o[2] + t * o[6] + n * o[10] + o[14], l = 1 / (e * o[3] + t * o[7] + n * o[11] + o[15]); (r.x = a * l), (r.y = s * l), (r.z = c * l); }), (e.TransformNormal = function (t, n) { var i = e.Zero(); return e.TransformNormalToRef(t, n, i), i; }), (e.TransformNormalToRef = function (e, t, n) { this.TransformNormalFromFloatsToRef(e.x, e.y, e.z, t, n); }), (e.TransformNormalFromFloatsToRef = function (e, t, n, i, r) { var o = i.m; (r.x = e * o[0] + t * o[4] + n * o[8]), (r.y = e * o[1] + t * o[5] + n * o[9]), (r.z = e * o[2] + t * o[6] + n * o[10]); }), (e.CatmullRom = function (t, n, i, r, o) { var a = o * o, s = o * a; return new e( 0.5 * (2 * n.x + (-t.x + i.x) * o + (2 * t.x - 5 * n.x + 4 * i.x - r.x) * a + (-t.x + 3 * n.x - 3 * i.x + r.x) * s), 0.5 * (2 * n.y + (-t.y + i.y) * o + (2 * t.y - 5 * n.y + 4 * i.y - r.y) * a + (-t.y + 3 * n.y - 3 * i.y + r.y) * s), 0.5 * (2 * n.z + (-t.z + i.z) * o + (2 * t.z - 5 * n.z + 4 * i.z - r.z) * a + (-t.z + 3 * n.z - 3 * i.z + r.z) * s) ); }), (e.Clamp = function (t, n, i) { var r = new e(); return e.ClampToRef(t, n, i, r), r; }), (e.ClampToRef = function (e, t, n, i) { var r = e.x; r = (r = r > n.x ? n.x : r) < t.x ? t.x : r; var o = e.y; o = (o = o > n.y ? n.y : o) < t.y ? t.y : o; var a = e.z; (a = (a = a > n.z ? n.z : a) < t.z ? t.z : a), i.copyFromFloats(r, o, a); }), (e.CheckExtends = function (e, t, n) { t.minimizeInPlace(e), n.maximizeInPlace(e); }), (e.Hermite = function (t, n, i, r, o) { var a = o * o, s = o * a, c = 2 * s - 3 * a + 1, l = -2 * s + 3 * a, u = s - 2 * a + o, h = s - a; return new e(t.x * c + i.x * l + n.x * u + r.x * h, t.y * c + i.y * l + n.y * u + r.y * h, t.z * c + i.z * l + n.z * u + r.z * h); }), (e.Lerp = function (t, n, i) { var r = new e(0, 0, 0); return e.LerpToRef(t, n, i, r), r; }), (e.LerpToRef = function (e, t, n, i) { (i.x = e.x + (t.x - e.x) * n), (i.y = e.y + (t.y - e.y) * n), (i.z = e.z + (t.z - e.z) * n); }), (e.Dot = function (e, t) { return e.x * t.x + e.y * t.y + e.z * t.z; }), (e.Cross = function (t, n) { var i = e.Zero(); return e.CrossToRef(t, n, i), i; }), (e.CrossToRef = function (e, t, n) { var i = e.y * t.z - e.z * t.y, r = e.z * t.x - e.x * t.z, o = e.x * t.y - e.y * t.x; n.copyFromFloats(i, r, o); }), (e.Normalize = function (t) { var n = e.Zero(); return e.NormalizeToRef(t, n), n; }), (e.NormalizeToRef = function (e, t) { e.normalizeToRef(t); }), (e.Project = function (t, n, i, r) { var o = r.width, a = r.height, s = r.x, c = r.y, l = d.Matrix[1]; h.FromValuesToRef(o / 2, 0, 0, 0, 0, -a / 2, 0, 0, 0, 0, 0.5, 0, s + o / 2, a / 2 + c, 0.5, 1, l); var u = d.Matrix[0]; return n.multiplyToRef(i, u), u.multiplyToRef(l, u), e.TransformCoordinates(t, u); }), (e._UnprojectFromInvertedMatrixToRef = function (t, n, r) { e.TransformCoordinatesToRef(t, n, r); var o = n.m, a = t.x * o[3] + t.y * o[7] + t.z * o[11] + o[15]; i.a.WithinEpsilon(a, 1) && r.scaleInPlace(1 / a); }), (e.UnprojectFromTransform = function (t, n, i, r, o) { var a = d.Matrix[0]; r.multiplyToRef(o, a), a.invert(), (t.x = (t.x / n) * 2 - 1), (t.y = -((t.y / i) * 2 - 1)); var s = new e(); return e._UnprojectFromInvertedMatrixToRef(t, a, s), s; }), (e.Unproject = function (t, n, i, r, o, a) { var s = e.Zero(); return e.UnprojectToRef(t, n, i, r, o, a, s), s; }), (e.UnprojectToRef = function (t, n, i, r, o, a, s) { e.UnprojectFloatsToRef(t.x, t.y, t.z, n, i, r, o, a, s); }), (e.UnprojectFloatsToRef = function (t, n, i, r, o, a, s, c, l) { var u = d.Matrix[0]; a.multiplyToRef(s, u), u.multiplyToRef(c, u), u.invert(); var h = d.Vector3[0]; (h.x = (t / r) * 2 - 1), (h.y = -((n / o) * 2 - 1)), (h.z = 2 * i - 1), e._UnprojectFromInvertedMatrixToRef(h, u, l); }), (e.Minimize = function (e, t) { var n = e.clone(); return n.minimizeInPlace(t), n; }), (e.Maximize = function (e, t) { var n = e.clone(); return n.maximizeInPlace(t), n; }), (e.Distance = function (t, n) { return Math.sqrt(e.DistanceSquared(t, n)); }), (e.DistanceSquared = function (e, t) { var n = e.x - t.x, i = e.y - t.y, r = e.z - t.z; return n * n + i * i + r * r; }), (e.Center = function (e, t) { var n = e.add(t); return n.scaleInPlace(0.5), n; }), (e.RotationFromAxis = function (t, n, i) { var r = e.Zero(); return e.RotationFromAxisToRef(t, n, i, r), r; }), (e.RotationFromAxisToRef = function (e, t, n, i) { var r = d.Quaternion[0]; u.RotationQuaternionFromAxisToRef(e, t, n, r), r.toEulerAnglesToRef(i); }), (e._UpReadOnly = e.Up()), (e._ZeroReadOnly = e.Zero()), e ); })(), l = (function () { function e(e, t, n, i) { (this.x = e), (this.y = t), (this.z = n), (this.w = i); } return ( (e.prototype.toString = function () { return "{X: " + this.x + " Y:" + this.y + " Z:" + this.z + " W:" + this.w + "}"; }), (e.prototype.getClassName = function () { return "Vector4"; }), (e.prototype.getHashCode = function () { var e = 0 | this.x; return (e = (397 * (e = (397 * (e = (397 * e) ^ (0 | this.y))) ^ (0 | this.z))) ^ (0 | this.w)); }), (e.prototype.asArray = function () { var e = new Array(); return this.toArray(e, 0), e; }), (e.prototype.toArray = function (e, t) { return void 0 === t && (t = 0), (e[t] = this.x), (e[t + 1] = this.y), (e[t + 2] = this.z), (e[t + 3] = this.w), this; }), (e.prototype.addInPlace = function (e) { return (this.x += e.x), (this.y += e.y), (this.z += e.z), (this.w += e.w), this; }), (e.prototype.add = function (t) { return new e(this.x + t.x, this.y + t.y, this.z + t.z, this.w + t.w); }), (e.prototype.addToRef = function (e, t) { return (t.x = this.x + e.x), (t.y = this.y + e.y), (t.z = this.z + e.z), (t.w = this.w + e.w), this; }), (e.prototype.subtractInPlace = function (e) { return (this.x -= e.x), (this.y -= e.y), (this.z -= e.z), (this.w -= e.w), this; }), (e.prototype.subtract = function (t) { return new e(this.x - t.x, this.y - t.y, this.z - t.z, this.w - t.w); }), (e.prototype.subtractToRef = function (e, t) { return (t.x = this.x - e.x), (t.y = this.y - e.y), (t.z = this.z - e.z), (t.w = this.w - e.w), this; }), (e.prototype.subtractFromFloats = function (t, n, i, r) { return new e(this.x - t, this.y - n, this.z - i, this.w - r); }), (e.prototype.subtractFromFloatsToRef = function (e, t, n, i, r) { return (r.x = this.x - e), (r.y = this.y - t), (r.z = this.z - n), (r.w = this.w - i), this; }), (e.prototype.negate = function () { return new e(-this.x, -this.y, -this.z, -this.w); }), (e.prototype.negateInPlace = function () { return (this.x *= -1), (this.y *= -1), (this.z *= -1), (this.w *= -1), this; }), (e.prototype.negateToRef = function (e) { return e.copyFromFloats(-1 * this.x, -1 * this.y, -1 * this.z, -1 * this.w); }), (e.prototype.scaleInPlace = function (e) { return (this.x *= e), (this.y *= e), (this.z *= e), (this.w *= e), this; }), (e.prototype.scale = function (t) { return new e(this.x * t, this.y * t, this.z * t, this.w * t); }), (e.prototype.scaleToRef = function (e, t) { return (t.x = this.x * e), (t.y = this.y * e), (t.z = this.z * e), (t.w = this.w * e), this; }), (e.prototype.scaleAndAddToRef = function (e, t) { return (t.x += this.x * e), (t.y += this.y * e), (t.z += this.z * e), (t.w += this.w * e), this; }), (e.prototype.equals = function (e) { return e && this.x === e.x && this.y === e.y && this.z === e.z && this.w === e.w; }), (e.prototype.equalsWithEpsilon = function (e, t) { return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t) && i.a.WithinEpsilon(this.z, e.z, t) && i.a.WithinEpsilon(this.w, e.w, t); }), (e.prototype.equalsToFloats = function (e, t, n, i) { return this.x === e && this.y === t && this.z === n && this.w === i; }), (e.prototype.multiplyInPlace = function (e) { return (this.x *= e.x), (this.y *= e.y), (this.z *= e.z), (this.w *= e.w), this; }), (e.prototype.multiply = function (t) { return new e(this.x * t.x, this.y * t.y, this.z * t.z, this.w * t.w); }), (e.prototype.multiplyToRef = function (e, t) { return (t.x = this.x * e.x), (t.y = this.y * e.y), (t.z = this.z * e.z), (t.w = this.w * e.w), this; }), (e.prototype.multiplyByFloats = function (t, n, i, r) { return new e(this.x * t, this.y * n, this.z * i, this.w * r); }), (e.prototype.divide = function (t) { return new e(this.x / t.x, this.y / t.y, this.z / t.z, this.w / t.w); }), (e.prototype.divideToRef = function (e, t) { return (t.x = this.x / e.x), (t.y = this.y / e.y), (t.z = this.z / e.z), (t.w = this.w / e.w), this; }), (e.prototype.divideInPlace = function (e) { return this.divideToRef(e, this); }), (e.prototype.minimizeInPlace = function (e) { return e.x < this.x && (this.x = e.x), e.y < this.y && (this.y = e.y), e.z < this.z && (this.z = e.z), e.w < this.w && (this.w = e.w), this; }), (e.prototype.maximizeInPlace = function (e) { return e.x > this.x && (this.x = e.x), e.y > this.y && (this.y = e.y), e.z > this.z && (this.z = e.z), e.w > this.w && (this.w = e.w), this; }), (e.prototype.floor = function () { return new e(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z), Math.floor(this.w)); }), (e.prototype.fract = function () { return new e(this.x - Math.floor(this.x), this.y - Math.floor(this.y), this.z - Math.floor(this.z), this.w - Math.floor(this.w)); }), (e.prototype.length = function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); }), (e.prototype.lengthSquared = function () { return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w; }), (e.prototype.normalize = function () { var e = this.length(); return 0 === e ? this : this.scaleInPlace(1 / e); }), (e.prototype.toVector3 = function () { return new c(this.x, this.y, this.z); }), (e.prototype.clone = function () { return new e(this.x, this.y, this.z, this.w); }), (e.prototype.copyFrom = function (e) { return (this.x = e.x), (this.y = e.y), (this.z = e.z), (this.w = e.w), this; }), (e.prototype.copyFromFloats = function (e, t, n, i) { return (this.x = e), (this.y = t), (this.z = n), (this.w = i), this; }), (e.prototype.set = function (e, t, n, i) { return this.copyFromFloats(e, t, n, i); }), (e.prototype.setAll = function (e) { return (this.x = this.y = this.z = this.w = e), this; }), (e.FromArray = function (t, n) { return n || (n = 0), new e(t[n], t[n + 1], t[n + 2], t[n + 3]); }), (e.FromArrayToRef = function (e, t, n) { (n.x = e[t]), (n.y = e[t + 1]), (n.z = e[t + 2]), (n.w = e[t + 3]); }), (e.FromFloatArrayToRef = function (t, n, i) { e.FromArrayToRef(t, n, i); }), (e.FromFloatsToRef = function (e, t, n, i, r) { (r.x = e), (r.y = t), (r.z = n), (r.w = i); }), (e.Zero = function () { return new e(0, 0, 0, 0); }), (e.One = function () { return new e(1, 1, 1, 1); }), (e.Normalize = function (t) { var n = e.Zero(); return e.NormalizeToRef(t, n), n; }), (e.NormalizeToRef = function (e, t) { t.copyFrom(e), t.normalize(); }), (e.Minimize = function (e, t) { var n = e.clone(); return n.minimizeInPlace(t), n; }), (e.Maximize = function (e, t) { var n = e.clone(); return n.maximizeInPlace(t), n; }), (e.Distance = function (t, n) { return Math.sqrt(e.DistanceSquared(t, n)); }), (e.DistanceSquared = function (e, t) { var n = e.x - t.x, i = e.y - t.y, r = e.z - t.z, o = e.w - t.w; return n * n + i * i + r * r + o * o; }), (e.Center = function (e, t) { var n = e.add(t); return n.scaleInPlace(0.5), n; }), (e.TransformNormal = function (t, n) { var i = e.Zero(); return e.TransformNormalToRef(t, n, i), i; }), (e.TransformNormalToRef = function (e, t, n) { var i = t.m, r = e.x * i[0] + e.y * i[4] + e.z * i[8], o = e.x * i[1] + e.y * i[5] + e.z * i[9], a = e.x * i[2] + e.y * i[6] + e.z * i[10]; (n.x = r), (n.y = o), (n.z = a), (n.w = e.w); }), (e.TransformNormalFromFloatsToRef = function (e, t, n, i, r, o) { var a = r.m; (o.x = e * a[0] + t * a[4] + n * a[8]), (o.y = e * a[1] + t * a[5] + n * a[9]), (o.z = e * a[2] + t * a[6] + n * a[10]), (o.w = i); }), (e.FromVector3 = function (t, n) { return void 0 === n && (n = 0), new e(t.x, t.y, t.z, n); }), e ); })(), u = (function () { function e(e, t, n, i) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 1), (this.x = e), (this.y = t), (this.z = n), (this.w = i); } return ( (e.prototype.toString = function () { return "{X: " + this.x + " Y:" + this.y + " Z:" + this.z + " W:" + this.w + "}"; }), (e.prototype.getClassName = function () { return "Quaternion"; }), (e.prototype.getHashCode = function () { var e = 0 | this.x; return (e = (397 * (e = (397 * (e = (397 * e) ^ (0 | this.y))) ^ (0 | this.z))) ^ (0 | this.w)); }), (e.prototype.asArray = function () { return [this.x, this.y, this.z, this.w]; }), (e.prototype.equals = function (e) { return e && this.x === e.x && this.y === e.y && this.z === e.z && this.w === e.w; }), (e.prototype.equalsWithEpsilon = function (e, t) { return void 0 === t && (t = r.a), e && i.a.WithinEpsilon(this.x, e.x, t) && i.a.WithinEpsilon(this.y, e.y, t) && i.a.WithinEpsilon(this.z, e.z, t) && i.a.WithinEpsilon(this.w, e.w, t); }), (e.prototype.clone = function () { return new e(this.x, this.y, this.z, this.w); }), (e.prototype.copyFrom = function (e) { return (this.x = e.x), (this.y = e.y), (this.z = e.z), (this.w = e.w), this; }), (e.prototype.copyFromFloats = function (e, t, n, i) { return (this.x = e), (this.y = t), (this.z = n), (this.w = i), this; }), (e.prototype.set = function (e, t, n, i) { return this.copyFromFloats(e, t, n, i); }), (e.prototype.add = function (t) { return new e(this.x + t.x, this.y + t.y, this.z + t.z, this.w + t.w); }), (e.prototype.addInPlace = function (e) { return (this.x += e.x), (this.y += e.y), (this.z += e.z), (this.w += e.w), this; }), (e.prototype.subtract = function (t) { return new e(this.x - t.x, this.y - t.y, this.z - t.z, this.w - t.w); }), (e.prototype.scale = function (t) { return new e(this.x * t, this.y * t, this.z * t, this.w * t); }), (e.prototype.scaleToRef = function (e, t) { return (t.x = this.x * e), (t.y = this.y * e), (t.z = this.z * e), (t.w = this.w * e), this; }), (e.prototype.scaleInPlace = function (e) { return (this.x *= e), (this.y *= e), (this.z *= e), (this.w *= e), this; }), (e.prototype.scaleAndAddToRef = function (e, t) { return (t.x += this.x * e), (t.y += this.y * e), (t.z += this.z * e), (t.w += this.w * e), this; }), (e.prototype.multiply = function (t) { var n = new e(0, 0, 0, 1); return this.multiplyToRef(t, n), n; }), (e.prototype.multiplyToRef = function (e, t) { var n = this.x * e.w + this.y * e.z - this.z * e.y + this.w * e.x, i = -this.x * e.z + this.y * e.w + this.z * e.x + this.w * e.y, r = this.x * e.y - this.y * e.x + this.z * e.w + this.w * e.z, o = -this.x * e.x - this.y * e.y - this.z * e.z + this.w * e.w; return t.copyFromFloats(n, i, r, o), this; }), (e.prototype.multiplyInPlace = function (e) { return this.multiplyToRef(e, this), this; }), (e.prototype.conjugateToRef = function (e) { return e.copyFromFloats(-this.x, -this.y, -this.z, this.w), this; }), (e.prototype.conjugateInPlace = function () { return (this.x *= -1), (this.y *= -1), (this.z *= -1), this; }), (e.prototype.conjugate = function () { return new e(-this.x, -this.y, -this.z, this.w); }), (e.prototype.length = function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); }), (e.prototype.normalize = function () { var e = this.length(); if (0 === e) return this; var t = 1 / e; return (this.x *= t), (this.y *= t), (this.z *= t), (this.w *= t), this; }), (e.prototype.toEulerAngles = function (e) { void 0 === e && (e = "YZX"); var t = c.Zero(); return this.toEulerAnglesToRef(t), t; }), (e.prototype.toEulerAnglesToRef = function (e) { var t = this.z, n = this.x, i = this.y, r = this.w, o = r * r, a = t * t, s = n * n, c = i * i, l = i * t - n * r; return ( l < -0.4999999 ? ((e.y = 2 * Math.atan2(i, r)), (e.x = Math.PI / 2), (e.z = 0)) : l > 0.4999999 ? ((e.y = 2 * Math.atan2(i, r)), (e.x = -Math.PI / 2), (e.z = 0)) : ((e.z = Math.atan2(2 * (n * i + t * r), -a - s + c + o)), (e.x = Math.asin(-2 * (t * i - n * r))), (e.y = Math.atan2(2 * (t * n + i * r), a - s - c + o))), this ); }), (e.prototype.toRotationMatrix = function (e) { return h.FromQuaternionToRef(this, e), this; }), (e.prototype.fromRotationMatrix = function (t) { return e.FromRotationMatrixToRef(t, this), this; }), (e.FromRotationMatrix = function (t) { var n = new e(); return e.FromRotationMatrixToRef(t, n), n; }), (e.FromRotationMatrixToRef = function (e, t) { var n, i = e.m, r = i[0], o = i[4], a = i[8], s = i[1], c = i[5], l = i[9], u = i[2], h = i[6], d = i[10], p = r + c + d; p > 0 ? ((n = 0.5 / Math.sqrt(p + 1)), (t.w = 0.25 / n), (t.x = (h - l) * n), (t.y = (a - u) * n), (t.z = (s - o) * n)) : r > c && r > d ? ((n = 2 * Math.sqrt(1 + r - c - d)), (t.w = (h - l) / n), (t.x = 0.25 * n), (t.y = (o + s) / n), (t.z = (a + u) / n)) : c > d ? ((n = 2 * Math.sqrt(1 + c - r - d)), (t.w = (a - u) / n), (t.x = (o + s) / n), (t.y = 0.25 * n), (t.z = (l + h) / n)) : ((n = 2 * Math.sqrt(1 + d - r - c)), (t.w = (s - o) / n), (t.x = (a + u) / n), (t.y = (l + h) / n), (t.z = 0.25 * n)); }), (e.Dot = function (e, t) { return e.x * t.x + e.y * t.y + e.z * t.z + e.w * t.w; }), (e.AreClose = function (t, n) { return e.Dot(t, n) >= 0; }), (e.Zero = function () { return new e(0, 0, 0, 0); }), (e.Inverse = function (t) { return new e(-t.x, -t.y, -t.z, t.w); }), (e.InverseToRef = function (e, t) { return t.set(-e.x, -e.y, -e.z, e.w), t; }), (e.Identity = function () { return new e(0, 0, 0, 1); }), (e.IsIdentity = function (e) { return e && 0 === e.x && 0 === e.y && 0 === e.z && 1 === e.w; }), (e.RotationAxis = function (t, n) { return e.RotationAxisToRef(t, n, new e()); }), (e.RotationAxisToRef = function (e, t, n) { var i = Math.sin(t / 2); return e.normalize(), (n.w = Math.cos(t / 2)), (n.x = e.x * i), (n.y = e.y * i), (n.z = e.z * i), n; }), (e.FromArray = function (t, n) { return n || (n = 0), new e(t[n], t[n + 1], t[n + 2], t[n + 3]); }), (e.FromEulerAngles = function (t, n, i) { var r = new e(); return e.RotationYawPitchRollToRef(n, t, i, r), r; }), (e.FromEulerAnglesToRef = function (t, n, i, r) { return e.RotationYawPitchRollToRef(n, t, i, r), r; }), (e.FromEulerVector = function (t) { var n = new e(); return e.RotationYawPitchRollToRef(t.y, t.x, t.z, n), n; }), (e.FromEulerVectorToRef = function (t, n) { return e.RotationYawPitchRollToRef(t.y, t.x, t.z, n), n; }), (e.RotationYawPitchRoll = function (t, n, i) { var r = new e(); return e.RotationYawPitchRollToRef(t, n, i, r), r; }), (e.RotationYawPitchRollToRef = function (e, t, n, i) { var r = 0.5 * n, o = 0.5 * t, a = 0.5 * e, s = Math.sin(r), c = Math.cos(r), l = Math.sin(o), u = Math.cos(o), h = Math.sin(a), d = Math.cos(a); (i.x = d * l * c + h * u * s), (i.y = h * u * c - d * l * s), (i.z = d * u * s - h * l * c), (i.w = d * u * c + h * l * s); }), (e.RotationAlphaBetaGamma = function (t, n, i) { var r = new e(); return e.RotationAlphaBetaGammaToRef(t, n, i, r), r; }), (e.RotationAlphaBetaGammaToRef = function (e, t, n, i) { var r = 0.5 * (n + e), o = 0.5 * (n - e), a = 0.5 * t; (i.x = Math.cos(o) * Math.sin(a)), (i.y = Math.sin(o) * Math.sin(a)), (i.z = Math.sin(r) * Math.cos(a)), (i.w = Math.cos(r) * Math.cos(a)); }), (e.RotationQuaternionFromAxis = function (t, n, i) { var r = new e(0, 0, 0, 0); return e.RotationQuaternionFromAxisToRef(t, n, i, r), r; }), (e.RotationQuaternionFromAxisToRef = function (t, n, i, r) { var o = d.Matrix[0]; h.FromXYZAxesToRef(t.normalize(), n.normalize(), i.normalize(), o), e.FromRotationMatrixToRef(o, r); }), (e.Slerp = function (t, n, i) { var r = e.Identity(); return e.SlerpToRef(t, n, i, r), r; }), (e.SlerpToRef = function (e, t, n, i) { var r, o, a = e.x * t.x + e.y * t.y + e.z * t.z + e.w * t.w, s = !1; if ((a < 0 && ((s = !0), (a = -a)), a > 0.999999)) (o = 1 - n), (r = s ? -n : n); else { var c = Math.acos(a), l = 1 / Math.sin(c); (o = Math.sin((1 - n) * c) * l), (r = s ? -Math.sin(n * c) * l : Math.sin(n * c) * l); } (i.x = o * e.x + r * t.x), (i.y = o * e.y + r * t.y), (i.z = o * e.z + r * t.z), (i.w = o * e.w + r * t.w); }), (e.Hermite = function (t, n, i, r, o) { var a = o * o, s = o * a, c = 2 * s - 3 * a + 1, l = -2 * s + 3 * a, u = s - 2 * a + o, h = s - a; return new e(t.x * c + i.x * l + n.x * u + r.x * h, t.y * c + i.y * l + n.y * u + r.y * h, t.z * c + i.z * l + n.z * u + r.z * h, t.w * c + i.w * l + n.w * u + r.w * h); }), e ); })(), h = (function () { function e() { (this._isIdentity = !1), (this._isIdentityDirty = !0), (this._isIdentity3x2 = !0), (this._isIdentity3x2Dirty = !0), (this.updateFlag = -1), (this._m = new Float32Array(16)), this._updateIdentityStatus(!1); } return ( Object.defineProperty(e.prototype, "m", { get: function () { return this._m; }, enumerable: !0, configurable: !0, }), (e.prototype._markAsUpdated = function () { (this.updateFlag = e._updateFlagSeed++), (this._isIdentity = !1), (this._isIdentity3x2 = !1), (this._isIdentityDirty = !0), (this._isIdentity3x2Dirty = !0); }), (e.prototype._updateIdentityStatus = function (t, n, i, r) { void 0 === n && (n = !1), void 0 === i && (i = !1), void 0 === r && (r = !0), (this.updateFlag = e._updateFlagSeed++), (this._isIdentity = t), (this._isIdentity3x2 = t || i), (this._isIdentityDirty = !this._isIdentity && n), (this._isIdentity3x2Dirty = !this._isIdentity3x2 && r); }), (e.prototype.isIdentity = function () { if (this._isIdentityDirty) { this._isIdentityDirty = !1; var e = this._m; this._isIdentity = 1 === e[0] && 0 === e[1] && 0 === e[2] && 0 === e[3] && 0 === e[4] && 1 === e[5] && 0 === e[6] && 0 === e[7] && 0 === e[8] && 0 === e[9] && 1 === e[10] && 0 === e[11] && 0 === e[12] && 0 === e[13] && 0 === e[14] && 1 === e[15]; } return this._isIdentity; }), (e.prototype.isIdentityAs3x2 = function () { return ( this._isIdentity3x2Dirty && ((this._isIdentity3x2Dirty = !1), 1 !== this._m[0] || 1 !== this._m[5] || 1 !== this._m[15] || 0 !== this._m[1] || 0 !== this._m[2] || 0 !== this._m[3] || 0 !== this._m[4] || 0 !== this._m[6] || 0 !== this._m[7] || 0 !== this._m[8] || 0 !== this._m[9] || 0 !== this._m[10] || 0 !== this._m[11] || 0 !== this._m[12] || 0 !== this._m[13] || 0 !== this._m[14] ? (this._isIdentity3x2 = !1) : (this._isIdentity3x2 = !0)), this._isIdentity3x2 ); }), (e.prototype.determinant = function () { if (!0 === this._isIdentity) return 1; var e = this._m, t = e[0], n = e[1], i = e[2], r = e[3], o = e[4], a = e[5], s = e[6], c = e[7], l = e[8], u = e[9], h = e[10], d = e[11], p = e[12], f = e[13], m = e[14], g = e[15], b = h * g - m * d, _ = u * g - f * d, v = u * m - f * h, y = l * g - p * d, C = l * m - h * p, P = l * f - p * u; return t * +(a * b - s * _ + c * v) + n * -(o * b - s * y + c * C) + i * +(o * _ - a * y + c * P) + r * -(o * v - a * C + s * P); }), (e.prototype.toArray = function () { return this._m; }), (e.prototype.asArray = function () { return this._m; }), (e.prototype.invert = function () { return this.invertToRef(this), this; }), (e.prototype.reset = function () { return e.FromValuesToRef(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, this), this._updateIdentityStatus(!1), this; }), (e.prototype.add = function (t) { var n = new e(); return this.addToRef(t, n), n; }), (e.prototype.addToRef = function (e, t) { for (var n = this._m, i = t._m, r = e.m, o = 0; o < 16; o++) i[o] = n[o] + r[o]; return t._markAsUpdated(), this; }), (e.prototype.addToSelf = function (e) { for (var t = this._m, n = e.m, i = 0; i < 16; i++) t[i] += n[i]; return this._markAsUpdated(), this; }), (e.prototype.invertToRef = function (t) { if (!0 === this._isIdentity) return e.IdentityToRef(t), this; var n = this._m, i = n[0], r = n[1], o = n[2], a = n[3], s = n[4], c = n[5], l = n[6], u = n[7], h = n[8], d = n[9], p = n[10], f = n[11], m = n[12], g = n[13], b = n[14], _ = n[15], v = p * _ - b * f, y = d * _ - g * f, C = d * b - g * p, P = h * _ - m * f, x = h * b - p * m, T = h * g - m * d, S = +(c * v - l * y + u * C), O = -(s * v - l * P + u * x), E = +(s * y - c * P + u * T), M = -(s * C - c * x + l * T), A = i * S + r * O + o * E + a * M; if (0 === A) return t.copyFrom(this), this; var I = 1 / A, D = l * _ - b * u, R = c * _ - g * u, w = c * b - g * l, L = s * _ - m * u, F = s * b - m * l, N = s * g - m * c, k = l * f - p * u, z = c * f - d * u, j = c * p - d * l, B = s * f - h * u, V = s * p - h * l, G = s * d - h * c, U = -(r * v - o * y + a * C), H = +(i * v - o * P + a * x), W = -(i * y - r * P + a * T), X = +(i * C - r * x + o * T), Y = +(r * D - o * R + a * w), K = -(i * D - o * L + a * F), Z = +(i * R - r * L + a * N), q = -(i * w - r * F + o * N), Q = -(r * k - o * z + a * j), J = +(i * k - o * B + a * V), $ = -(i * z - r * B + a * G), ee = +(i * j - r * V + o * G); return e.FromValuesToRef(S * I, U * I, Y * I, Q * I, O * I, H * I, K * I, J * I, E * I, W * I, Z * I, $ * I, M * I, X * I, q * I, ee * I, t), this; }), (e.prototype.addAtIndex = function (e, t) { return (this._m[e] += t), this._markAsUpdated(), this; }), (e.prototype.multiplyAtIndex = function (e, t) { return (this._m[e] *= t), this._markAsUpdated(), this; }), (e.prototype.setTranslationFromFloats = function (e, t, n) { return (this._m[12] = e), (this._m[13] = t), (this._m[14] = n), this._markAsUpdated(), this; }), (e.prototype.addTranslationFromFloats = function (e, t, n) { return (this._m[12] += e), (this._m[13] += t), (this._m[14] += n), this._markAsUpdated(), this; }), (e.prototype.setTranslation = function (e) { return this.setTranslationFromFloats(e.x, e.y, e.z); }), (e.prototype.getTranslation = function () { return new c(this._m[12], this._m[13], this._m[14]); }), (e.prototype.getTranslationToRef = function (e) { return (e.x = this._m[12]), (e.y = this._m[13]), (e.z = this._m[14]), this; }), (e.prototype.removeRotationAndScaling = function () { var t = this.m; return e.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t[12], t[13], t[14], t[15], this), this._updateIdentityStatus(0 === t[12] && 0 === t[13] && 0 === t[14] && 1 === t[15]), this; }), (e.prototype.multiply = function (t) { var n = new e(); return this.multiplyToRef(t, n), n; }), (e.prototype.copyFrom = function (e) { e.copyToArray(this._m); var t = e; return this._updateIdentityStatus(t._isIdentity, t._isIdentityDirty, t._isIdentity3x2, t._isIdentity3x2Dirty), this; }), (e.prototype.copyToArray = function (e, t) { void 0 === t && (t = 0); var n = this._m; return ( (e[t] = n[0]), (e[t + 1] = n[1]), (e[t + 2] = n[2]), (e[t + 3] = n[3]), (e[t + 4] = n[4]), (e[t + 5] = n[5]), (e[t + 6] = n[6]), (e[t + 7] = n[7]), (e[t + 8] = n[8]), (e[t + 9] = n[9]), (e[t + 10] = n[10]), (e[t + 11] = n[11]), (e[t + 12] = n[12]), (e[t + 13] = n[13]), (e[t + 14] = n[14]), (e[t + 15] = n[15]), this ); }), (e.prototype.multiplyToRef = function (e, t) { return this._isIdentity ? (t.copyFrom(e), this) : e._isIdentity ? (t.copyFrom(this), this) : (this.multiplyToArray(e, t._m, 0), t._markAsUpdated(), this); }), (e.prototype.multiplyToArray = function (e, t, n) { var i = this._m, r = e.m, o = i[0], a = i[1], s = i[2], c = i[3], l = i[4], u = i[5], h = i[6], d = i[7], p = i[8], f = i[9], m = i[10], g = i[11], b = i[12], _ = i[13], v = i[14], y = i[15], C = r[0], P = r[1], x = r[2], T = r[3], S = r[4], O = r[5], E = r[6], M = r[7], A = r[8], I = r[9], D = r[10], R = r[11], w = r[12], L = r[13], F = r[14], N = r[15]; return ( (t[n] = o * C + a * S + s * A + c * w), (t[n + 1] = o * P + a * O + s * I + c * L), (t[n + 2] = o * x + a * E + s * D + c * F), (t[n + 3] = o * T + a * M + s * R + c * N), (t[n + 4] = l * C + u * S + h * A + d * w), (t[n + 5] = l * P + u * O + h * I + d * L), (t[n + 6] = l * x + u * E + h * D + d * F), (t[n + 7] = l * T + u * M + h * R + d * N), (t[n + 8] = p * C + f * S + m * A + g * w), (t[n + 9] = p * P + f * O + m * I + g * L), (t[n + 10] = p * x + f * E + m * D + g * F), (t[n + 11] = p * T + f * M + m * R + g * N), (t[n + 12] = b * C + _ * S + v * A + y * w), (t[n + 13] = b * P + _ * O + v * I + y * L), (t[n + 14] = b * x + _ * E + v * D + y * F), (t[n + 15] = b * T + _ * M + v * R + y * N), this ); }), (e.prototype.equals = function (e) { var t = e; if (!t) return !1; if ((this._isIdentity || t._isIdentity) && !this._isIdentityDirty && !t._isIdentityDirty) return this._isIdentity && t._isIdentity; var n = this.m, i = t.m; return ( n[0] === i[0] && n[1] === i[1] && n[2] === i[2] && n[3] === i[3] && n[4] === i[4] && n[5] === i[5] && n[6] === i[6] && n[7] === i[7] && n[8] === i[8] && n[9] === i[9] && n[10] === i[10] && n[11] === i[11] && n[12] === i[12] && n[13] === i[13] && n[14] === i[14] && n[15] === i[15] ); }), (e.prototype.clone = function () { var t = new e(); return t.copyFrom(this), t; }), (e.prototype.getClassName = function () { return "Matrix"; }), (e.prototype.getHashCode = function () { for (var e = 0 | this._m[0], t = 1; t < 16; t++) e = (397 * e) ^ (0 | this._m[t]); return e; }), (e.prototype.decompose = function (t, n, i) { if (this._isIdentity) return i && i.setAll(0), t && t.setAll(1), n && n.copyFromFloats(0, 0, 0, 1), !0; var r = this._m; if ( (i && i.copyFromFloats(r[12], r[13], r[14]), ((t = t || d.Vector3[0]).x = Math.sqrt(r[0] * r[0] + r[1] * r[1] + r[2] * r[2])), (t.y = Math.sqrt(r[4] * r[4] + r[5] * r[5] + r[6] * r[6])), (t.z = Math.sqrt(r[8] * r[8] + r[9] * r[9] + r[10] * r[10])), this.determinant() <= 0 && (t.y *= -1), 0 === t.x || 0 === t.y || 0 === t.z) ) return n && n.copyFromFloats(0, 0, 0, 1), !1; if (n) { var o = 1 / t.x, a = 1 / t.y, s = 1 / t.z; e.FromValuesToRef(r[0] * o, r[1] * o, r[2] * o, 0, r[4] * a, r[5] * a, r[6] * a, 0, r[8] * s, r[9] * s, r[10] * s, 0, 0, 0, 0, 1, d.Matrix[0]), u.FromRotationMatrixToRef(d.Matrix[0], n); } return !0; }), (e.prototype.getRow = function (e) { if (e < 0 || e > 3) return null; var t = 4 * e; return new l(this._m[t + 0], this._m[t + 1], this._m[t + 2], this._m[t + 3]); }), (e.prototype.setRow = function (e, t) { return this.setRowFromFloats(e, t.x, t.y, t.z, t.w); }), (e.prototype.transpose = function () { return e.Transpose(this); }), (e.prototype.transposeToRef = function (t) { return e.TransposeToRef(this, t), this; }), (e.prototype.setRowFromFloats = function (e, t, n, i, r) { if (e < 0 || e > 3) return this; var o = 4 * e; return (this._m[o + 0] = t), (this._m[o + 1] = n), (this._m[o + 2] = i), (this._m[o + 3] = r), this._markAsUpdated(), this; }), (e.prototype.scale = function (t) { var n = new e(); return this.scaleToRef(t, n), n; }), (e.prototype.scaleToRef = function (e, t) { for (var n = 0; n < 16; n++) t._m[n] = this._m[n] * e; return t._markAsUpdated(), this; }), (e.prototype.scaleAndAddToRef = function (e, t) { for (var n = 0; n < 16; n++) t._m[n] += this._m[n] * e; return t._markAsUpdated(), this; }), (e.prototype.toNormalMatrix = function (t) { var n = d.Matrix[0]; this.invertToRef(n), n.transposeToRef(t); var i = t._m; e.FromValuesToRef(i[0], i[1], i[2], 0, i[4], i[5], i[6], 0, i[8], i[9], i[10], 0, 0, 0, 0, 1, t); }), (e.prototype.getRotationMatrix = function () { var t = new e(); return this.getRotationMatrixToRef(t), t; }), (e.prototype.getRotationMatrixToRef = function (t) { var n = d.Vector3[0]; if (!this.decompose(n)) return e.IdentityToRef(t), this; var i = this._m, r = 1 / n.x, o = 1 / n.y, a = 1 / n.z; return e.FromValuesToRef(i[0] * r, i[1] * r, i[2] * r, 0, i[4] * o, i[5] * o, i[6] * o, 0, i[8] * a, i[9] * a, i[10] * a, 0, 0, 0, 0, 1, t), this; }), (e.prototype.toggleModelMatrixHandInPlace = function () { var e = this._m; (e[2] *= -1), (e[6] *= -1), (e[8] *= -1), (e[9] *= -1), (e[14] *= -1), this._markAsUpdated(); }), (e.prototype.toggleProjectionMatrixHandInPlace = function () { var e = this._m; (e[8] *= -1), (e[9] *= -1), (e[10] *= -1), (e[11] *= -1), this._markAsUpdated(); }), (e.FromArray = function (t, n) { void 0 === n && (n = 0); var i = new e(); return e.FromArrayToRef(t, n, i), i; }), (e.FromArrayToRef = function (e, t, n) { for (var i = 0; i < 16; i++) n._m[i] = e[i + t]; n._markAsUpdated(); }), (e.FromFloat32ArrayToRefScaled = function (e, t, n, i) { for (var r = 0; r < 16; r++) i._m[r] = e[r + t] * n; i._markAsUpdated(); }), Object.defineProperty(e, "IdentityReadOnly", { get: function () { return e._identityReadOnly; }, enumerable: !0, configurable: !0, }), (e.FromValuesToRef = function (e, t, n, i, r, o, a, s, c, l, u, h, d, p, f, m, g) { var b = g._m; (b[0] = e), (b[1] = t), (b[2] = n), (b[3] = i), (b[4] = r), (b[5] = o), (b[6] = a), (b[7] = s), (b[8] = c), (b[9] = l), (b[10] = u), (b[11] = h), (b[12] = d), (b[13] = p), (b[14] = f), (b[15] = m), g._markAsUpdated(); }), (e.FromValues = function (t, n, i, r, o, a, s, c, l, u, h, d, p, f, m, g) { var b = new e(), _ = b._m; return ( (_[0] = t), (_[1] = n), (_[2] = i), (_[3] = r), (_[4] = o), (_[5] = a), (_[6] = s), (_[7] = c), (_[8] = l), (_[9] = u), (_[10] = h), (_[11] = d), (_[12] = p), (_[13] = f), (_[14] = m), (_[15] = g), b._markAsUpdated(), b ); }), (e.Compose = function (t, n, i) { var r = new e(); return e.ComposeToRef(t, n, i, r), r; }), (e.ComposeToRef = function (e, t, n, i) { var r = i._m, o = t.x, a = t.y, s = t.z, c = t.w, l = o + o, u = a + a, h = s + s, d = o * l, p = o * u, f = o * h, m = a * u, g = a * h, b = s * h, _ = c * l, v = c * u, y = c * h, C = e.x, P = e.y, x = e.z; (r[0] = (1 - (m + b)) * C), (r[1] = (p + y) * C), (r[2] = (f - v) * C), (r[3] = 0), (r[4] = (p - y) * P), (r[5] = (1 - (d + b)) * P), (r[6] = (g + _) * P), (r[7] = 0), (r[8] = (f + v) * x), (r[9] = (g - _) * x), (r[10] = (1 - (d + m)) * x), (r[11] = 0), (r[12] = n.x), (r[13] = n.y), (r[14] = n.z), (r[15] = 1), i._markAsUpdated(); }), (e.Identity = function () { var t = e.FromValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); return t._updateIdentityStatus(!0), t; }), (e.IdentityToRef = function (t) { e.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, t), t._updateIdentityStatus(!0); }), (e.Zero = function () { var t = e.FromValues(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return t._updateIdentityStatus(!1), t; }), (e.RotationX = function (t) { var n = new e(); return e.RotationXToRef(t, n), n; }), (e.Invert = function (t) { var n = new e(); return t.invertToRef(n), n; }), (e.RotationXToRef = function (t, n) { var i = Math.sin(t), r = Math.cos(t); e.FromValuesToRef(1, 0, 0, 0, 0, r, i, 0, 0, -i, r, 0, 0, 0, 0, 1, n), n._updateIdentityStatus(1 === r && 0 === i); }), (e.RotationY = function (t) { var n = new e(); return e.RotationYToRef(t, n), n; }), (e.RotationYToRef = function (t, n) { var i = Math.sin(t), r = Math.cos(t); e.FromValuesToRef(r, 0, -i, 0, 0, 1, 0, 0, i, 0, r, 0, 0, 0, 0, 1, n), n._updateIdentityStatus(1 === r && 0 === i); }), (e.RotationZ = function (t) { var n = new e(); return e.RotationZToRef(t, n), n; }), (e.RotationZToRef = function (t, n) { var i = Math.sin(t), r = Math.cos(t); e.FromValuesToRef(r, i, 0, 0, -i, r, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, n), n._updateIdentityStatus(1 === r && 0 === i); }), (e.RotationAxis = function (t, n) { var i = new e(); return e.RotationAxisToRef(t, n, i), i; }), (e.RotationAxisToRef = function (e, t, n) { var i = Math.sin(-t), r = Math.cos(-t), o = 1 - r; e.normalize(); var a = n._m; (a[0] = e.x * e.x * o + r), (a[1] = e.x * e.y * o - e.z * i), (a[2] = e.x * e.z * o + e.y * i), (a[3] = 0), (a[4] = e.y * e.x * o + e.z * i), (a[5] = e.y * e.y * o + r), (a[6] = e.y * e.z * o - e.x * i), (a[7] = 0), (a[8] = e.z * e.x * o - e.y * i), (a[9] = e.z * e.y * o + e.x * i), (a[10] = e.z * e.z * o + r), (a[11] = 0), (a[12] = 0), (a[13] = 0), (a[14] = 0), (a[15] = 1), n._markAsUpdated(); }), (e.RotationAlignToRef = function (e, t, n) { var i = c.Cross(t, e), r = c.Dot(t, e), o = 1 / (1 + r), a = n._m; (a[0] = i.x * i.x * o + r), (a[1] = i.y * i.x * o - i.z), (a[2] = i.z * i.x * o + i.y), (a[3] = 0), (a[4] = i.x * i.y * o + i.z), (a[5] = i.y * i.y * o + r), (a[6] = i.z * i.y * o - i.x), (a[7] = 0), (a[8] = i.x * i.z * o - i.y), (a[9] = i.y * i.z * o + i.x), (a[10] = i.z * i.z * o + r), (a[11] = 0), (a[12] = 0), (a[13] = 0), (a[14] = 0), (a[15] = 1), n._markAsUpdated(); }), (e.RotationYawPitchRoll = function (t, n, i) { var r = new e(); return e.RotationYawPitchRollToRef(t, n, i, r), r; }), (e.RotationYawPitchRollToRef = function (e, t, n, i) { u.RotationYawPitchRollToRef(e, t, n, d.Quaternion[0]), d.Quaternion[0].toRotationMatrix(i); }), (e.Scaling = function (t, n, i) { var r = new e(); return e.ScalingToRef(t, n, i, r), r; }), (e.ScalingToRef = function (t, n, i, r) { e.FromValuesToRef(t, 0, 0, 0, 0, n, 0, 0, 0, 0, i, 0, 0, 0, 0, 1, r), r._updateIdentityStatus(1 === t && 1 === n && 1 === i); }), (e.Translation = function (t, n, i) { var r = new e(); return e.TranslationToRef(t, n, i, r), r; }), (e.TranslationToRef = function (t, n, i, r) { e.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, n, i, 1, r), r._updateIdentityStatus(0 === t && 0 === n && 0 === i); }), (e.Lerp = function (t, n, i) { var r = new e(); return e.LerpToRef(t, n, i, r), r; }), (e.LerpToRef = function (e, t, n, i) { for (var r = i._m, o = e.m, a = t.m, s = 0; s < 16; s++) r[s] = o[s] * (1 - n) + a[s] * n; i._markAsUpdated(); }), (e.DecomposeLerp = function (t, n, i) { var r = new e(); return e.DecomposeLerpToRef(t, n, i, r), r; }), (e.DecomposeLerpToRef = function (t, n, i, r) { var o = d.Vector3[0], a = d.Quaternion[0], s = d.Vector3[1]; t.decompose(o, a, s); var l = d.Vector3[2], h = d.Quaternion[1], p = d.Vector3[3]; n.decompose(l, h, p); var f = d.Vector3[4]; c.LerpToRef(o, l, i, f); var m = d.Quaternion[2]; u.SlerpToRef(a, h, i, m); var g = d.Vector3[5]; c.LerpToRef(s, p, i, g), e.ComposeToRef(f, m, g, r); }), (e.LookAtLH = function (t, n, i) { var r = new e(); return e.LookAtLHToRef(t, n, i, r), r; }), (e.LookAtLHToRef = function (t, n, i, r) { var o = d.Vector3[0], a = d.Vector3[1], s = d.Vector3[2]; n.subtractToRef(t, s), s.normalize(), c.CrossToRef(i, s, o); var l = o.lengthSquared(); 0 === l ? (o.x = 1) : o.normalizeFromLength(Math.sqrt(l)), c.CrossToRef(s, o, a), a.normalize(); var u = -c.Dot(o, t), h = -c.Dot(a, t), p = -c.Dot(s, t); e.FromValuesToRef(o.x, a.x, s.x, 0, o.y, a.y, s.y, 0, o.z, a.z, s.z, 0, u, h, p, 1, r); }), (e.LookAtRH = function (t, n, i) { var r = new e(); return e.LookAtRHToRef(t, n, i, r), r; }), (e.LookAtRHToRef = function (t, n, i, r) { var o = d.Vector3[0], a = d.Vector3[1], s = d.Vector3[2]; t.subtractToRef(n, s), s.normalize(), c.CrossToRef(i, s, o); var l = o.lengthSquared(); 0 === l ? (o.x = 1) : o.normalizeFromLength(Math.sqrt(l)), c.CrossToRef(s, o, a), a.normalize(); var u = -c.Dot(o, t), h = -c.Dot(a, t), p = -c.Dot(s, t); e.FromValuesToRef(o.x, a.x, s.x, 0, o.y, a.y, s.y, 0, o.z, a.z, s.z, 0, u, h, p, 1, r); }), (e.OrthoLH = function (t, n, i, r) { var o = new e(); return e.OrthoLHToRef(t, n, i, r, o), o; }), (e.OrthoLHToRef = function (t, n, i, r, o) { var a = 2 / t, s = 2 / n, c = 2 / (r - i), l = -(r + i) / (r - i); e.FromValuesToRef(a, 0, 0, 0, 0, s, 0, 0, 0, 0, c, 0, 0, 0, l, 1, o), o._updateIdentityStatus(1 === a && 1 === s && 1 === c && 0 === l); }), (e.OrthoOffCenterLH = function (t, n, i, r, o, a) { var s = new e(); return e.OrthoOffCenterLHToRef(t, n, i, r, o, a, s), s; }), (e.OrthoOffCenterLHToRef = function (t, n, i, r, o, a, s) { var c = 2 / (n - t), l = 2 / (r - i), u = 2 / (a - o), h = -(a + o) / (a - o), d = (t + n) / (t - n), p = (r + i) / (i - r); e.FromValuesToRef(c, 0, 0, 0, 0, l, 0, 0, 0, 0, u, 0, d, p, h, 1, s), s._markAsUpdated(); }), (e.OrthoOffCenterRH = function (t, n, i, r, o, a) { var s = new e(); return e.OrthoOffCenterRHToRef(t, n, i, r, o, a, s), s; }), (e.OrthoOffCenterRHToRef = function (t, n, i, r, o, a, s) { e.OrthoOffCenterLHToRef(t, n, i, r, o, a, s), (s._m[10] *= -1); }), (e.PerspectiveLH = function (t, n, i, r) { var o = new e(), a = (2 * i) / t, s = (2 * i) / n, c = (r + i) / (r - i), l = (-2 * r * i) / (r - i); return e.FromValuesToRef(a, 0, 0, 0, 0, s, 0, 0, 0, 0, c, 1, 0, 0, l, 0, o), o._updateIdentityStatus(!1), o; }), (e.PerspectiveFovLH = function (t, n, i, r) { var o = new e(); return e.PerspectiveFovLHToRef(t, n, i, r, o), o; }), (e.PerspectiveFovLHToRef = function (t, n, i, r, o, a) { void 0 === a && (a = !0); var s = i, c = r, l = 1 / Math.tan(0.5 * t), u = a ? l / n : l, h = a ? l : l * n, d = (c + s) / (c - s), p = (-2 * c * s) / (c - s); e.FromValuesToRef(u, 0, 0, 0, 0, h, 0, 0, 0, 0, d, 1, 0, 0, p, 0, o), o._updateIdentityStatus(!1); }), (e.PerspectiveFovReverseLHToRef = function (t, n, i, r, o, a) { void 0 === a && (a = !0); var s = 1 / Math.tan(0.5 * t), c = a ? s / n : s, l = a ? s : s * n; e.FromValuesToRef(c, 0, 0, 0, 0, l, 0, 0, 0, 0, -i, 1, 0, 0, 1, 0, o), o._updateIdentityStatus(!1); }), (e.PerspectiveFovRH = function (t, n, i, r) { var o = new e(); return e.PerspectiveFovRHToRef(t, n, i, r, o), o; }), (e.PerspectiveFovRHToRef = function (t, n, i, r, o, a) { void 0 === a && (a = !0); var s = i, c = r, l = 1 / Math.tan(0.5 * t), u = a ? l / n : l, h = a ? l : l * n, d = -(c + s) / (c - s), p = (-2 * c * s) / (c - s); e.FromValuesToRef(u, 0, 0, 0, 0, h, 0, 0, 0, 0, d, -1, 0, 0, p, 0, o), o._updateIdentityStatus(!1); }), (e.PerspectiveFovReverseRHToRef = function (t, n, i, r, o, a) { void 0 === a && (a = !0); var s = 1 / Math.tan(0.5 * t), c = a ? s / n : s, l = a ? s : s * n; e.FromValuesToRef(c, 0, 0, 0, 0, l, 0, 0, 0, 0, -i, -1, 0, 0, -1, 0, o), o._updateIdentityStatus(!1); }), (e.PerspectiveFovWebVRToRef = function (e, t, n, i, r) { void 0 === r && (r = !1); var o = r ? -1 : 1, a = Math.tan((e.upDegrees * Math.PI) / 180), s = Math.tan((e.downDegrees * Math.PI) / 180), c = Math.tan((e.leftDegrees * Math.PI) / 180), l = Math.tan((e.rightDegrees * Math.PI) / 180), u = 2 / (c + l), h = 2 / (a + s), d = i._m; (d[0] = u), (d[1] = d[2] = d[3] = d[4] = 0), (d[5] = h), (d[6] = d[7] = 0), (d[8] = (c - l) * u * 0.5), (d[9] = -(a - s) * h * 0.5), (d[10] = -n / (t - n)), (d[11] = 1 * o), (d[12] = d[13] = d[15] = 0), (d[14] = (-2 * n * t) / (n - t)), i._markAsUpdated(); }), (e.GetFinalMatrix = function (t, n, i, r, o, a) { var s = t.width, c = t.height, l = t.x, u = t.y, h = e.FromValues(s / 2, 0, 0, 0, 0, -c / 2, 0, 0, 0, 0, a - o, 0, l + s / 2, c / 2 + u, o, 1), p = d.Matrix[0]; return n.multiplyToRef(i, p), p.multiplyToRef(r, p), p.multiply(h); }), (e.GetAsMatrix2x2 = function (e) { var t = e.m; return new Float32Array([t[0], t[1], t[4], t[5]]); }), (e.GetAsMatrix3x3 = function (e) { var t = e.m; return new Float32Array([t[0], t[1], t[2], t[4], t[5], t[6], t[8], t[9], t[10]]); }), (e.Transpose = function (t) { var n = new e(); return e.TransposeToRef(t, n), n; }), (e.TransposeToRef = function (e, t) { var n = t._m, i = e.m; (n[0] = i[0]), (n[1] = i[4]), (n[2] = i[8]), (n[3] = i[12]), (n[4] = i[1]), (n[5] = i[5]), (n[6] = i[9]), (n[7] = i[13]), (n[8] = i[2]), (n[9] = i[6]), (n[10] = i[10]), (n[11] = i[14]), (n[12] = i[3]), (n[13] = i[7]), (n[14] = i[11]), (n[15] = i[15]), t._updateIdentityStatus(e._isIdentity, e._isIdentityDirty); }), (e.Reflection = function (t) { var n = new e(); return e.ReflectionToRef(t, n), n; }), (e.ReflectionToRef = function (t, n) { t.normalize(); var i = t.normal.x, r = t.normal.y, o = t.normal.z, a = -2 * i, s = -2 * r, c = -2 * o; e.FromValuesToRef(a * i + 1, s * i, c * i, 0, a * r, s * r + 1, c * r, 0, a * o, s * o, c * o + 1, 0, a * t.d, s * t.d, c * t.d, 1, n); }), (e.FromXYZAxesToRef = function (t, n, i, r) { e.FromValuesToRef(t.x, t.y, t.z, 0, n.x, n.y, n.z, 0, i.x, i.y, i.z, 0, 0, 0, 0, 1, r); }), (e.FromQuaternionToRef = function (e, t) { var n = e.x * e.x, i = e.y * e.y, r = e.z * e.z, o = e.x * e.y, a = e.z * e.w, s = e.z * e.x, c = e.y * e.w, l = e.y * e.z, u = e.x * e.w; (t._m[0] = 1 - 2 * (i + r)), (t._m[1] = 2 * (o + a)), (t._m[2] = 2 * (s - c)), (t._m[3] = 0), (t._m[4] = 2 * (o - a)), (t._m[5] = 1 - 2 * (r + n)), (t._m[6] = 2 * (l + u)), (t._m[7] = 0), (t._m[8] = 2 * (s + c)), (t._m[9] = 2 * (l - u)), (t._m[10] = 1 - 2 * (i + n)), (t._m[11] = 0), (t._m[12] = 0), (t._m[13] = 0), (t._m[14] = 0), (t._m[15] = 1), t._markAsUpdated(); }), (e._updateFlagSeed = 0), (e._identityReadOnly = e.Identity()), e ); })(), d = (function () { function e() {} return (e.Vector3 = o.a.BuildArray(6, c.Zero)), (e.Matrix = o.a.BuildArray(2, h.Identity)), (e.Quaternion = o.a.BuildArray(3, u.Zero)), e; })(), p = (function () { function e() {} return (e.Vector2 = o.a.BuildArray(3, s.Zero)), (e.Vector3 = o.a.BuildArray(13, c.Zero)), (e.Vector4 = o.a.BuildArray(3, l.Zero)), (e.Quaternion = o.a.BuildArray(2, u.Zero)), (e.Matrix = o.a.BuildArray(8, h.Identity)), e; })(); (a.a.RegisteredTypes["BABYLON.Vector2"] = s), (a.a.RegisteredTypes["BABYLON.Vector3"] = c), (a.a.RegisteredTypes["BABYLON.Vector4"] = l), (a.a.RegisteredTypes["BABYLON.Matrix"] = h); }, function (e, t, n) { "use strict"; n.d(t, "d", function () { return r; }), n.d(t, "a", function () { return o; }), n.d(t, "c", function () { return a; }), n.d(t, "b", function () { return s; }), n.d(t, "e", function () { return c; }), n.d(t, "f", function () { return l; }); var i = function (e, t) { return (i = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (e, t) { e.__proto__ = t; }) || function (e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); })(e, t); }; function r(e, t) { function n() { this.constructor = e; } i(e, t), (e.prototype = null === t ? Object.create(t) : ((n.prototype = t.prototype), new n())); } var o = function () { return (o = Object.assign || function (e) { for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e; }).apply(this, arguments); }; function a(e, t, n, i) { var r, o = arguments.length, a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i); else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a); return o > 3 && a && Object.defineProperty(t, n, a), a; } function s(e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); } function c(e, t) { var n, i, r, o, a = { label: 0, sent: function () { if (1 & r[0]) throw r[1]; return r[1]; }, trys: [], ops: [], }; return ( (o = { next: s(0), throw: s(1), return: s(2) }), "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o ); function s(o) { return function (s) { return (function (o) { if (n) throw new TypeError("Generator is already executing."); for (; a; ) try { if (((n = 1), i && (r = 2 & o[0] ? i.return : o[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, o[1])).done)) return r; switch (((i = 0), r && (o = [2 & o[0], r.value]), o[0])) { case 0: case 1: r = o; break; case 4: return a.label++, { value: o[1], done: !1 }; case 5: a.label++, (i = o[1]), (o = [0]); continue; case 7: (o = a.ops.pop()), a.trys.pop(); continue; default: if (!((r = a.trys), (r = r.length > 0 && r[r.length - 1]) || (6 !== o[0] && 2 !== o[0]))) { a = 0; continue; } if (3 === o[0] && (!r || (o[1] > r[0] && o[1] < r[3]))) { a.label = o[1]; break; } if (6 === o[0] && a.label < r[1]) { (a.label = r[1]), (r = o); break; } if (r && a.label < r[2]) { (a.label = r[2]), a.ops.push(o); break; } r[2] && a.ops.pop(), a.trys.pop(); continue; } o = t.call(e, a); } catch (e) { (o = [6, e]), (i = 0); } finally { n = r = 0; } if (5 & o[0]) throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; })([o, s]); }; } } function l() { for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; var i = Array(e), r = 0; for (t = 0; t < n; t++) for (var o = arguments[t], a = 0, s = o.length; a < s; a++, r++) i[r] = o[a]; return i; } }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return d; }), n.d(t, "c", function () { return p; }), n.d(t, "m", function () { return f; }), n.d(t, "e", function () { return m; }), n.d(t, "h", function () { return g; }), n.d(t, "n", function () { return b; }), n.d(t, "o", function () { return _; }), n.d(t, "k", function () { return v; }), n.d(t, "g", function () { return y; }), n.d(t, "f", function () { return C; }), n.d(t, "i", function () { return P; }), n.d(t, "l", function () { return x; }), n.d(t, "j", function () { return T; }), n.d(t, "d", function () { return S; }), n.d(t, "a", function () { return O; }); var i = n(45), r = n(1), o = n(22), a = n(5), s = {}, c = {}, l = function (e, t, n) { var r = e(); i.a && i.a.AddTagsTo(r, t.tags); var o = u(r); for (var a in o) { var s = o[a], c = t[a], l = s.type; if (null != c && "uniqueId" !== a) switch (l) { case 0: case 6: case 11: r[a] = c; break; case 1: r[a] = n || c.isRenderTarget ? c : c.clone(); break; case 2: case 3: case 4: case 5: case 7: case 10: case 12: r[a] = n ? c : c.clone(); } } return r; }; function u(e) { var t = e.getClassName(); if (c[t]) return c[t]; c[t] = {}; for (var n = c[t], i = e, r = t; r; ) { var o = s[r]; for (var a in o) n[a] = o[a]; var l = void 0, u = !1; do { if (!(l = Object.getPrototypeOf(i)).getClassName) { u = !0; break; } if (l.getClassName() !== r) break; i = l; } while (l); if (u) break; (r = l.getClassName()), (i = l); } return n; } function h(e, t) { return function (n, i) { var r = (function (e) { var t = e.getClassName(); return s[t] || (s[t] = {}), s[t]; })(n); r[i] || (r[i] = { type: e, sourceName: t }); }; } function d(e, t) { return ( void 0 === t && (t = null), (function (e, t) { return ( void 0 === t && (t = null), function (n, i) { var r = t || "_" + i; Object.defineProperty(n, i, { get: function () { return this[r]; }, set: function (t) { this[r] !== t && ((this[r] = t), n[e].apply(this)); }, enumerable: !0, configurable: !0, }); } ); })(e, t) ); } function p(e) { return h(0, e); } function f(e) { return h(1, e); } function m(e) { return h(2, e); } function g(e) { return h(3, e); } function b(e) { return h(4, e); } function _(e) { return h(5, e); } function v(e) { return h(6, e); } function y(e) { return h(7, e); } function C(e) { return h(8, e); } function P(e) { return h(9, e); } function x(e) { return h(10, e); } function T(e) { return h(12, e); } function S(e) { return h(11, e); } var O = (function () { function e() {} return ( (e.AppendSerializedAnimations = function (e, t) { if (e.animations) { t.animations = []; for (var n = 0; n < e.animations.length; n++) { var i = e.animations[n]; t.animations.push(i.serialize()); } } }), (e.Serialize = function (e, t) { t || (t = {}), i.a && (t.tags = i.a.GetTags(e)); var n = u(e); for (var r in n) { var o = n[r], a = o.sourceName || r, s = o.type, c = e[r]; if (null != c) switch (s) { case 0: t[a] = c; break; case 1: t[a] = c.serialize(); break; case 2: t[a] = c.asArray(); break; case 3: t[a] = c.serialize(); break; case 4: case 5: t[a] = c.asArray(); break; case 6: t[a] = c.id; break; case 7: t[a] = c.serialize(); break; case 8: t[a] = c.asArray(); break; case 9: t[a] = c.serialize(); break; case 10: t[a] = c.asArray(); break; case 11: t[a] = c.id; case 12: t[a] = c.asArray(); } } return t; }), (e.Parse = function (t, n, o, s) { void 0 === s && (s = null); var c = t(); s || (s = ""), i.a && i.a.AddTagsTo(c, n.tags); var l = u(c); for (var h in l) { var d = l[h], p = n[d.sourceName || h], f = d.type; if (null != p) { var m = c; switch (f) { case 0: m[h] = p; break; case 1: o && (m[h] = e._TextureParser(p, o, s)); break; case 2: m[h] = a.a.FromArray(p); break; case 3: m[h] = e._FresnelParametersParser(p); break; case 4: m[h] = r.d.FromArray(p); break; case 5: m[h] = r.e.FromArray(p); break; case 6: o && (m[h] = o.getLastMeshByID(p)); break; case 7: m[h] = e._ColorCurvesParser(p); break; case 8: m[h] = a.b.FromArray(p); break; case 9: m[h] = e._ImageProcessingConfigurationParser(p); break; case 10: m[h] = r.b.FromArray(p); break; case 11: o && (m[h] = o.getCameraByID(p)); case 12: m[h] = r.a.FromArray(p); } } } return c; }), (e.Clone = function (e, t) { return l(e, t, !1); }), (e.Instanciate = function (e, t) { return l(e, t, !0); }), (e._ImageProcessingConfigurationParser = function (e) { throw o.a.WarnImport("ImageProcessingConfiguration"); }), (e._FresnelParametersParser = function (e) { throw o.a.WarnImport("FresnelParameters"); }), (e._ColorCurvesParser = function (e) { throw o.a.WarnImport("ColorCurves"); }), (e._TextureParser = function (e, t, n) { throw o.a.WarnImport("Texture"); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }), n.d(t, "b", function () { return r; }); var i = (function () { function e(e, t, n, i, r, o, a, s) { void 0 === i && (i = 0), void 0 === r && (r = !1), void 0 === o && (o = !1), void 0 === a && (a = !1), e.getScene ? (this._engine = e.getScene().getEngine()) : (this._engine = e), (this._updatable = n), (this._instanced = o), (this._divisor = s || 1), (this._data = t), (this.byteStride = a ? i : i * Float32Array.BYTES_PER_ELEMENT), r || this.create(); } return ( (e.prototype.createVertexBuffer = function (e, t, n, i, o, a, s) { void 0 === a && (a = !1); var c = a ? t : t * Float32Array.BYTES_PER_ELEMENT, l = i ? (a ? i : i * Float32Array.BYTES_PER_ELEMENT) : this.byteStride; return new r(this._engine, this, e, this._updatable, !0, l, void 0 === o ? this._instanced : o, c, n, void 0, void 0, !0, this._divisor || s); }), (e.prototype.isUpdatable = function () { return this._updatable; }), (e.prototype.getData = function () { return this._data; }), (e.prototype.getBuffer = function () { return this._buffer; }), (e.prototype.getStrideSize = function () { return this.byteStride / Float32Array.BYTES_PER_ELEMENT; }), (e.prototype.create = function (e) { void 0 === e && (e = null), (!e && this._buffer) || ((e = e || this._data) && (this._buffer ? this._updatable && (this._engine.updateDynamicVertexBuffer(this._buffer, e), (this._data = e)) : this._updatable ? ((this._buffer = this._engine.createDynamicVertexBuffer(e)), (this._data = e)) : (this._buffer = this._engine.createVertexBuffer(e)))); }), (e.prototype._rebuild = function () { (this._buffer = null), this.create(this._data); }), (e.prototype.update = function (e) { this.create(e); }), (e.prototype.updateDirectly = function (e, t, n, i) { void 0 === i && (i = !1), this._buffer && this._updatable && (this._engine.updateDynamicVertexBuffer(this._buffer, e, i ? t : t * Float32Array.BYTES_PER_ELEMENT, n ? n * this.byteStride : void 0), (this._data = null)); }), (e.prototype.dispose = function () { this._buffer && this._engine._releaseBuffer(this._buffer) && (this._buffer = null); }), e ); })(), r = (function () { function e(t, n, r, o, a, s, c, l, u, h, d, p, f) { if ( (void 0 === d && (d = !1), void 0 === p && (p = !1), void 0 === f && (f = 1), n instanceof i ? ((this._buffer = n), (this._ownsBuffer = !1)) : ((this._buffer = new i(t, n, o, s, a, c, p)), (this._ownsBuffer = !0)), (this._kind = r), null == h) ) { var m = this.getData(); (this.type = e.FLOAT), m instanceof Int8Array ? (this.type = e.BYTE) : m instanceof Uint8Array ? (this.type = e.UNSIGNED_BYTE) : m instanceof Int16Array ? (this.type = e.SHORT) : m instanceof Uint16Array ? (this.type = e.UNSIGNED_SHORT) : m instanceof Int32Array ? (this.type = e.INT) : m instanceof Uint32Array && (this.type = e.UNSIGNED_INT); } else this.type = h; var g = e.GetTypeByteLength(this.type); p ? ((this._size = u || (s ? s / g : e.DeduceStride(r))), (this.byteStride = s || this._buffer.byteStride || this._size * g), (this.byteOffset = l || 0)) : ((this._size = u || s || e.DeduceStride(r)), (this.byteStride = s ? s * g : this._buffer.byteStride || this._size * g), (this.byteOffset = (l || 0) * g)), (this.normalized = d), (this._instanced = void 0 !== c && c), (this._instanceDivisor = c ? f : 0); } return ( Object.defineProperty(e.prototype, "instanceDivisor", { get: function () { return this._instanceDivisor; }, set: function (e) { (this._instanceDivisor = e), (this._instanced = 0 != e); }, enumerable: !0, configurable: !0, }), (e.prototype._rebuild = function () { this._buffer && this._buffer._rebuild(); }), (e.prototype.getKind = function () { return this._kind; }), (e.prototype.isUpdatable = function () { return this._buffer.isUpdatable(); }), (e.prototype.getData = function () { return this._buffer.getData(); }), (e.prototype.getBuffer = function () { return this._buffer.getBuffer(); }), (e.prototype.getStrideSize = function () { return this.byteStride / e.GetTypeByteLength(this.type); }), (e.prototype.getOffset = function () { return this.byteOffset / e.GetTypeByteLength(this.type); }), (e.prototype.getSize = function () { return this._size; }), (e.prototype.getIsInstanced = function () { return this._instanced; }), (e.prototype.getInstanceDivisor = function () { return this._instanceDivisor; }), (e.prototype.create = function (e) { this._buffer.create(e); }), (e.prototype.update = function (e) { this._buffer.update(e); }), (e.prototype.updateDirectly = function (e, t, n) { void 0 === n && (n = !1), this._buffer.updateDirectly(e, t, void 0, n); }), (e.prototype.dispose = function () { this._ownsBuffer && this._buffer.dispose(); }), (e.prototype.forEach = function (t, n) { e.ForEach(this._buffer.getData(), this.byteOffset, this.byteStride, this._size, this.type, t, this.normalized, n); }), (e.DeduceStride = function (t) { switch (t) { case e.UVKind: case e.UV2Kind: case e.UV3Kind: case e.UV4Kind: case e.UV5Kind: case e.UV6Kind: return 2; case e.NormalKind: case e.PositionKind: return 3; case e.ColorKind: case e.MatricesIndicesKind: case e.MatricesIndicesExtraKind: case e.MatricesWeightsKind: case e.MatricesWeightsExtraKind: case e.TangentKind: return 4; default: throw new Error("Invalid kind '" + t + "'"); } }), (e.GetTypeByteLength = function (t) { switch (t) { case e.BYTE: case e.UNSIGNED_BYTE: return 1; case e.SHORT: case e.UNSIGNED_SHORT: return 2; case e.INT: case e.UNSIGNED_INT: case e.FLOAT: return 4; default: throw new Error("Invalid type '" + t + "'"); } }), (e.ForEach = function (t, n, i, r, o, a, s, c) { if (t instanceof Array) for (var l = n / 4, u = i / 4, h = 0; h < a; h += r) { for (var d = 0; d < r; d++) c(t[l + d], h + d); l += u; } else { var p = t instanceof ArrayBuffer ? new DataView(t) : new DataView(t.buffer, t.byteOffset, t.byteLength), f = e.GetTypeByteLength(o); for (h = 0; h < a; h += r) { var m = n; for (d = 0; d < r; d++) { c(e._GetFloatValue(p, o, m, s), h + d), (m += f); } n += i; } } }), (e._GetFloatValue = function (t, n, i, r) { switch (n) { case e.BYTE: var o = t.getInt8(i); return r && (o = Math.max(o / 127, -1)), o; case e.UNSIGNED_BYTE: o = t.getUint8(i); return r && (o /= 255), o; case e.SHORT: o = t.getInt16(i, !0); return r && (o = Math.max(o / 32767, -1)), o; case e.UNSIGNED_SHORT: o = t.getUint16(i, !0); return r && (o /= 65535), o; case e.INT: return t.getInt32(i, !0); case e.UNSIGNED_INT: return t.getUint32(i, !0); case e.FLOAT: return t.getFloat32(i, !0); default: throw new Error("Invalid component type " + n); } }), (e.BYTE = 5120), (e.UNSIGNED_BYTE = 5121), (e.SHORT = 5122), (e.UNSIGNED_SHORT = 5123), (e.INT = 5124), (e.UNSIGNED_INT = 5125), (e.FLOAT = 5126), (e.PositionKind = "position"), (e.NormalKind = "normal"), (e.TangentKind = "tangent"), (e.UVKind = "uv"), (e.UV2Kind = "uv2"), (e.UV3Kind = "uv3"), (e.UV4Kind = "uv4"), (e.UV5Kind = "uv5"), (e.UV6Kind = "uv6"), (e.ColorKind = "color"), (e.MatricesIndicesKind = "matricesIndices"), (e.MatricesWeightsKind = "matricesWeights"), (e.MatricesIndicesExtraKind = "matricesIndicesExtra"), (e.MatricesWeightsExtraKind = "matricesWeightsExtra"), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }), n.d(t, "b", function () { return c; }), n.d(t, "c", function () { return l; }); var i = n(15), r = n(34), o = n(58), a = n(13), s = (function () { function e(e, t, n) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), (this.r = e), (this.g = t), (this.b = n); } return ( (e.prototype.toString = function () { return "{R: " + this.r + " G:" + this.g + " B:" + this.b + "}"; }), (e.prototype.getClassName = function () { return "Color3"; }), (e.prototype.getHashCode = function () { var e = (255 * this.r) | 0; return (e = (397 * (e = (397 * e) ^ ((255 * this.g) | 0))) ^ ((255 * this.b) | 0)); }), (e.prototype.toArray = function (e, t) { return void 0 === t && (t = 0), (e[t] = this.r), (e[t + 1] = this.g), (e[t + 2] = this.b), this; }), (e.prototype.toColor4 = function (e) { return void 0 === e && (e = 1), new c(this.r, this.g, this.b, e); }), (e.prototype.asArray = function () { var e = new Array(); return this.toArray(e, 0), e; }), (e.prototype.toLuminance = function () { return 0.3 * this.r + 0.59 * this.g + 0.11 * this.b; }), (e.prototype.multiply = function (t) { return new e(this.r * t.r, this.g * t.g, this.b * t.b); }), (e.prototype.multiplyToRef = function (e, t) { return (t.r = this.r * e.r), (t.g = this.g * e.g), (t.b = this.b * e.b), this; }), (e.prototype.equals = function (e) { return e && this.r === e.r && this.g === e.g && this.b === e.b; }), (e.prototype.equalsFloats = function (e, t, n) { return this.r === e && this.g === t && this.b === n; }), (e.prototype.scale = function (t) { return new e(this.r * t, this.g * t, this.b * t); }), (e.prototype.scaleToRef = function (e, t) { return (t.r = this.r * e), (t.g = this.g * e), (t.b = this.b * e), this; }), (e.prototype.scaleAndAddToRef = function (e, t) { return (t.r += this.r * e), (t.g += this.g * e), (t.b += this.b * e), this; }), (e.prototype.clampToRef = function (e, t, n) { return void 0 === e && (e = 0), void 0 === t && (t = 1), (n.r = i.a.Clamp(this.r, e, t)), (n.g = i.a.Clamp(this.g, e, t)), (n.b = i.a.Clamp(this.b, e, t)), this; }), (e.prototype.add = function (t) { return new e(this.r + t.r, this.g + t.g, this.b + t.b); }), (e.prototype.addToRef = function (e, t) { return (t.r = this.r + e.r), (t.g = this.g + e.g), (t.b = this.b + e.b), this; }), (e.prototype.subtract = function (t) { return new e(this.r - t.r, this.g - t.g, this.b - t.b); }), (e.prototype.subtractToRef = function (e, t) { return (t.r = this.r - e.r), (t.g = this.g - e.g), (t.b = this.b - e.b), this; }), (e.prototype.clone = function () { return new e(this.r, this.g, this.b); }), (e.prototype.copyFrom = function (e) { return (this.r = e.r), (this.g = e.g), (this.b = e.b), this; }), (e.prototype.copyFromFloats = function (e, t, n) { return (this.r = e), (this.g = t), (this.b = n), this; }), (e.prototype.set = function (e, t, n) { return this.copyFromFloats(e, t, n); }), (e.prototype.toHexString = function () { var e = (255 * this.r) | 0, t = (255 * this.g) | 0, n = (255 * this.b) | 0; return "#" + i.a.ToHex(e) + i.a.ToHex(t) + i.a.ToHex(n); }), (e.prototype.toLinearSpace = function () { var t = new e(); return this.toLinearSpaceToRef(t), t; }), (e.prototype.toHSV = function () { var t = new e(); return this.toHSVToRef(t), t; }), (e.prototype.toHSVToRef = function (e) { var t = this.r, n = this.g, i = this.b, r = Math.max(t, n, i), o = Math.min(t, n, i), a = 0, s = 0, c = r, l = r - o; 0 !== r && (s = l / r), r != o && (r == t ? ((a = (n - i) / l), n < i && (a += 6)) : r == n ? (a = (i - t) / l + 2) : r == i && (a = (t - n) / l + 4), (a *= 60)), (e.r = a), (e.g = s), (e.b = c); }), (e.prototype.toLinearSpaceToRef = function (e) { return (e.r = Math.pow(this.r, r.c)), (e.g = Math.pow(this.g, r.c)), (e.b = Math.pow(this.b, r.c)), this; }), (e.prototype.toGammaSpace = function () { var t = new e(); return this.toGammaSpaceToRef(t), t; }), (e.prototype.toGammaSpaceToRef = function (e) { return (e.r = Math.pow(this.r, r.b)), (e.g = Math.pow(this.g, r.b)), (e.b = Math.pow(this.b, r.b)), this; }), (e.HSVtoRGBToRef = function (e, t, n, i) { var r = n * t, o = e / 60, a = r * (1 - Math.abs((o % 2) - 1)), s = 0, c = 0, l = 0; o >= 0 && o <= 1 ? ((s = r), (c = a)) : o >= 1 && o <= 2 ? ((s = a), (c = r)) : o >= 2 && o <= 3 ? ((c = r), (l = a)) : o >= 3 && o <= 4 ? ((c = a), (l = r)) : o >= 4 && o <= 5 ? ((s = a), (l = r)) : o >= 5 && o <= 6 && ((s = r), (l = a)); var u = n - r; i.set(s + u, c + u, l + u); }), (e.FromHexString = function (t) { if ("#" !== t.substring(0, 1) || 7 !== t.length) return new e(0, 0, 0); var n = parseInt(t.substring(1, 3), 16), i = parseInt(t.substring(3, 5), 16), r = parseInt(t.substring(5, 7), 16); return e.FromInts(n, i, r); }), (e.FromArray = function (t, n) { return void 0 === n && (n = 0), new e(t[n], t[n + 1], t[n + 2]); }), (e.FromInts = function (t, n, i) { return new e(t / 255, n / 255, i / 255); }), (e.Lerp = function (t, n, i) { var r = new e(0, 0, 0); return e.LerpToRef(t, n, i, r), r; }), (e.LerpToRef = function (e, t, n, i) { (i.r = e.r + (t.r - e.r) * n), (i.g = e.g + (t.g - e.g) * n), (i.b = e.b + (t.b - e.b) * n); }), (e.Red = function () { return new e(1, 0, 0); }), (e.Green = function () { return new e(0, 1, 0); }), (e.Blue = function () { return new e(0, 0, 1); }), (e.Black = function () { return new e(0, 0, 0); }), Object.defineProperty(e, "BlackReadOnly", { get: function () { return e._BlackReadOnly; }, enumerable: !0, configurable: !0, }), (e.White = function () { return new e(1, 1, 1); }), (e.Purple = function () { return new e(0.5, 0, 0.5); }), (e.Magenta = function () { return new e(1, 0, 1); }), (e.Yellow = function () { return new e(1, 1, 0); }), (e.Gray = function () { return new e(0.5, 0.5, 0.5); }), (e.Teal = function () { return new e(0, 1, 1); }), (e.Random = function () { return new e(Math.random(), Math.random(), Math.random()); }), (e._BlackReadOnly = e.Black()), e ); })(), c = (function () { function e(e, t, n, i) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 1), (this.r = e), (this.g = t), (this.b = n), (this.a = i); } return ( (e.prototype.addInPlace = function (e) { return (this.r += e.r), (this.g += e.g), (this.b += e.b), (this.a += e.a), this; }), (e.prototype.asArray = function () { var e = new Array(); return this.toArray(e, 0), e; }), (e.prototype.toArray = function (e, t) { return void 0 === t && (t = 0), (e[t] = this.r), (e[t + 1] = this.g), (e[t + 2] = this.b), (e[t + 3] = this.a), this; }), (e.prototype.equals = function (e) { return e && this.r === e.r && this.g === e.g && this.b === e.b && this.a === e.a; }), (e.prototype.add = function (t) { return new e(this.r + t.r, this.g + t.g, this.b + t.b, this.a + t.a); }), (e.prototype.subtract = function (t) { return new e(this.r - t.r, this.g - t.g, this.b - t.b, this.a - t.a); }), (e.prototype.subtractToRef = function (e, t) { return (t.r = this.r - e.r), (t.g = this.g - e.g), (t.b = this.b - e.b), (t.a = this.a - e.a), this; }), (e.prototype.scale = function (t) { return new e(this.r * t, this.g * t, this.b * t, this.a * t); }), (e.prototype.scaleToRef = function (e, t) { return (t.r = this.r * e), (t.g = this.g * e), (t.b = this.b * e), (t.a = this.a * e), this; }), (e.prototype.scaleAndAddToRef = function (e, t) { return (t.r += this.r * e), (t.g += this.g * e), (t.b += this.b * e), (t.a += this.a * e), this; }), (e.prototype.clampToRef = function (e, t, n) { return void 0 === e && (e = 0), void 0 === t && (t = 1), (n.r = i.a.Clamp(this.r, e, t)), (n.g = i.a.Clamp(this.g, e, t)), (n.b = i.a.Clamp(this.b, e, t)), (n.a = i.a.Clamp(this.a, e, t)), this; }), (e.prototype.multiply = function (t) { return new e(this.r * t.r, this.g * t.g, this.b * t.b, this.a * t.a); }), (e.prototype.multiplyToRef = function (e, t) { return (t.r = this.r * e.r), (t.g = this.g * e.g), (t.b = this.b * e.b), (t.a = this.a * e.a), t; }), (e.prototype.toString = function () { return "{R: " + this.r + " G:" + this.g + " B:" + this.b + " A:" + this.a + "}"; }), (e.prototype.getClassName = function () { return "Color4"; }), (e.prototype.getHashCode = function () { var e = (255 * this.r) | 0; return (e = (397 * (e = (397 * (e = (397 * e) ^ ((255 * this.g) | 0))) ^ ((255 * this.b) | 0))) ^ ((255 * this.a) | 0)); }), (e.prototype.clone = function () { return new e(this.r, this.g, this.b, this.a); }), (e.prototype.copyFrom = function (e) { return (this.r = e.r), (this.g = e.g), (this.b = e.b), (this.a = e.a), this; }), (e.prototype.copyFromFloats = function (e, t, n, i) { return (this.r = e), (this.g = t), (this.b = n), (this.a = i), this; }), (e.prototype.set = function (e, t, n, i) { return this.copyFromFloats(e, t, n, i); }), (e.prototype.toHexString = function () { var e = (255 * this.r) | 0, t = (255 * this.g) | 0, n = (255 * this.b) | 0, r = (255 * this.a) | 0; return "#" + i.a.ToHex(e) + i.a.ToHex(t) + i.a.ToHex(n) + i.a.ToHex(r); }), (e.prototype.toLinearSpace = function () { var t = new e(); return this.toLinearSpaceToRef(t), t; }), (e.prototype.toLinearSpaceToRef = function (e) { return (e.r = Math.pow(this.r, r.c)), (e.g = Math.pow(this.g, r.c)), (e.b = Math.pow(this.b, r.c)), (e.a = this.a), this; }), (e.prototype.toGammaSpace = function () { var t = new e(); return this.toGammaSpaceToRef(t), t; }), (e.prototype.toGammaSpaceToRef = function (e) { return (e.r = Math.pow(this.r, r.b)), (e.g = Math.pow(this.g, r.b)), (e.b = Math.pow(this.b, r.b)), (e.a = this.a), this; }), (e.FromHexString = function (t) { if ("#" !== t.substring(0, 1) || 9 !== t.length) return new e(0, 0, 0, 0); var n = parseInt(t.substring(1, 3), 16), i = parseInt(t.substring(3, 5), 16), r = parseInt(t.substring(5, 7), 16), o = parseInt(t.substring(7, 9), 16); return e.FromInts(n, i, r, o); }), (e.Lerp = function (t, n, i) { var r = new e(0, 0, 0, 0); return e.LerpToRef(t, n, i, r), r; }), (e.LerpToRef = function (e, t, n, i) { (i.r = e.r + (t.r - e.r) * n), (i.g = e.g + (t.g - e.g) * n), (i.b = e.b + (t.b - e.b) * n), (i.a = e.a + (t.a - e.a) * n); }), (e.FromColor3 = function (t, n) { return void 0 === n && (n = 1), new e(t.r, t.g, t.b, n); }), (e.FromArray = function (t, n) { return void 0 === n && (n = 0), new e(t[n], t[n + 1], t[n + 2], t[n + 3]); }), (e.FromInts = function (t, n, i, r) { return new e(t / 255, n / 255, i / 255, r / 255); }), (e.CheckColors4 = function (e, t) { if (e.length === 3 * t) { for (var n = [], i = 0; i < e.length; i += 3) { var r = (i / 3) * 4; (n[r] = e[i]), (n[r + 1] = e[i + 1]), (n[r + 2] = e[i + 2]), (n[r + 3] = 1); } return n; } return e; }), e ); })(), l = (function () { function e() {} return ( (e.Color3 = o.a.BuildArray(3, s.Black)), (e.Color4 = o.a.BuildArray(3, function () { return new c(0, 0, 0, 0); })), e ); })(); (a.a.RegisteredTypes["BABYLON.Color3"] = s), (a.a.RegisteredTypes["BABYLON.Color4"] = c); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }), n.d(t, "d", function () { return r; }), n.d(t, "b", function () { return o; }), n.d(t, "c", function () { return a; }); var i = (function () { function e(e, t, n, i) { void 0 === t && (t = !1), this.initalize(e, t, n, i); } return ( (e.prototype.initalize = function (e, t, n, i) { return void 0 === t && (t = !1), (this.mask = e), (this.skipNextObservers = t), (this.target = n), (this.currentTarget = i), this; }), e ); })(), r = function (e, t, n) { void 0 === n && (n = null), (this.callback = e), (this.mask = t), (this.scope = n), (this._willBeUnregistered = !1), (this.unregisterOnNextCall = !1); }, o = (function () { function e() {} return ( (e.prototype.dispose = function () { if (this._observers && this._observables) for (var e = 0; e < this._observers.length; e++) this._observables[e].remove(this._observers[e]); (this._observers = null), (this._observables = null); }), (e.Watch = function (t, n, i, r) { void 0 === i && (i = -1), void 0 === r && (r = null); var o = new e(); (o._observers = new Array()), (o._observables = t); for (var a = 0, s = t; a < s.length; a++) { var c = s[a].add(n, i, !1, r); c && o._observers.push(c); } return o; }), e ); })(), a = (function () { function e(e) { (this._observers = new Array()), (this._eventState = new i(0)), e && (this._onObserverAdded = e); } return ( Object.defineProperty(e.prototype, "observers", { get: function () { return this._observers; }, enumerable: !0, configurable: !0, }), (e.prototype.add = function (e, t, n, i, o) { if ((void 0 === t && (t = -1), void 0 === n && (n = !1), void 0 === i && (i = null), void 0 === o && (o = !1), !e)) return null; var a = new r(e, t, i); return (a.unregisterOnNextCall = o), n ? this._observers.unshift(a) : this._observers.push(a), this._onObserverAdded && this._onObserverAdded(a), a; }), (e.prototype.addOnce = function (e) { return this.add(e, void 0, void 0, void 0, !0); }), (e.prototype.remove = function (e) { return !!e && -1 !== this._observers.indexOf(e) && (this._deferUnregister(e), !0); }), (e.prototype.removeCallback = function (e, t) { for (var n = 0; n < this._observers.length; n++) { var i = this._observers[n]; if (!i._willBeUnregistered && i.callback === e && (!t || t === i.scope)) return this._deferUnregister(i), !0; } return !1; }), (e.prototype._deferUnregister = function (e) { var t = this; (e.unregisterOnNextCall = !1), (e._willBeUnregistered = !0), setTimeout(function () { t._remove(e); }, 0); }), (e.prototype._remove = function (e) { if (!e) return !1; var t = this._observers.indexOf(e); return -1 !== t && (this._observers.splice(t, 1), !0); }), (e.prototype.makeObserverTopPriority = function (e) { this._remove(e), this._observers.unshift(e); }), (e.prototype.makeObserverBottomPriority = function (e) { this._remove(e), this._observers.push(e); }), (e.prototype.notifyObservers = function (e, t, n, i) { if ((void 0 === t && (t = -1), !this._observers.length)) return !0; var r = this._eventState; (r.mask = t), (r.target = n), (r.currentTarget = i), (r.skipNextObservers = !1), (r.lastReturnValue = e); for (var o = 0, a = this._observers; o < a.length; o++) { var s = a[o]; if ( !s._willBeUnregistered && (s.mask & t && (s.scope ? (r.lastReturnValue = s.callback.apply(s.scope, [e, r])) : (r.lastReturnValue = s.callback(e, r)), s.unregisterOnNextCall && this._deferUnregister(s)), r.skipNextObservers) ) return !1; } return !0; }), (e.prototype.notifyObserversWithPromise = function (e, t, n, i) { var r = this; void 0 === t && (t = -1); var o = Promise.resolve(e); if (!this._observers.length) return o; var a = this._eventState; return ( (a.mask = t), (a.target = n), (a.currentTarget = i), (a.skipNextObservers = !1), this._observers.forEach(function (n) { a.skipNextObservers || n._willBeUnregistered || (n.mask & t && ((o = n.scope ? o.then(function (t) { return (a.lastReturnValue = t), n.callback.apply(n.scope, [e, a]); }) : o.then(function (t) { return (a.lastReturnValue = t), n.callback(e, a); })), n.unregisterOnNextCall && r._deferUnregister(n))); }), o.then(function () { return e; }) ); }), (e.prototype.notifyObserver = function (e, t, n) { void 0 === n && (n = -1); var i = this._eventState; (i.mask = n), (i.skipNextObservers = !1), e.callback(t, i); }), (e.prototype.hasObservers = function () { return this._observers.length > 0; }), (e.prototype.clear = function () { (this._observers = new Array()), (this._onObserverAdded = null); }), (e.prototype.clone = function () { var t = new e(); return (t._observers = this._observers.slice(0)), t; }), (e.prototype.hasSpecificMask = function (e) { void 0 === e && (e = -1); for (var t = 0, n = this._observers; t < n.length; t++) { var i = n[t]; if (i.mask & e || i.mask === e) return !0; } return !1; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(6), r = n(56), o = n(10), a = n(170), s = (function () { function e(t, n, o, s, c, l, u, h, d, p) { var f, m, g = this; if ( (void 0 === s && (s = null), void 0 === l && (l = null), void 0 === u && (u = null), void 0 === h && (h = null), void 0 === d && (d = null), (this.name = null), (this.defines = ""), (this.onCompiled = null), (this.onError = null), (this.onBind = null), (this.uniqueId = 0), (this.onCompileObservable = new i.c()), (this.onErrorObservable = new i.c()), (this._onBindObservable = null), (this._wasPreviouslyReady = !1), (this._bonesComputationForcedToCPU = !1), (this._uniformBuffersNames = {}), (this._samplers = {}), (this._isReady = !1), (this._compilationError = ""), (this._allFallbacksProcessed = !1), (this._uniforms = {}), (this._key = ""), (this._fallbacks = null), (this._vertexSourceCode = ""), (this._fragmentSourceCode = ""), (this._vertexSourceCodeOverride = ""), (this._fragmentSourceCodeOverride = ""), (this._transformFeedbackVaryings = null), (this._pipelineContext = null), (this._valueCache = {}), (this.name = t), n.attributes) ) { var b = n; if ( ((this._engine = o), (this._attributesNames = b.attributes), (this._uniformsNames = b.uniformsNames.concat(b.samplers)), (this._samplerList = b.samplers.slice()), (this.defines = b.defines), (this.onError = b.onError), (this.onCompiled = b.onCompiled), (this._fallbacks = b.fallbacks), (this._indexParameters = b.indexParameters), (this._transformFeedbackVaryings = b.transformFeedbackVaryings || null), b.uniformBuffersNames) ) for (var _ = 0; _ < b.uniformBuffersNames.length; _++) this._uniformBuffersNames[b.uniformBuffersNames[_]] = _; } else (this._engine = c), (this.defines = null == l ? "" : l), (this._uniformsNames = o.concat(s)), (this._samplerList = s ? s.slice() : []), (this._attributesNames = n), (this.onError = d), (this.onCompiled = h), (this._indexParameters = p), (this._fallbacks = u); (this._attributeLocationByName = {}), (this.uniqueId = e._uniqueIdSeed++); var v = r.a.IsWindowObjectExist() ? this._engine.getHostDocument() : null; t.vertexSource ? (f = "source:" + t.vertexSource) : t.vertexElement ? (f = v ? v.getElementById(t.vertexElement) : null) || (f = t.vertexElement) : (f = t.vertex || t), t.fragmentSource ? (m = "source:" + t.fragmentSource) : t.fragmentElement ? (m = v ? v.getElementById(t.fragmentElement) : null) || (m = t.fragmentElement) : (m = t.fragment || t); var y = { defines: this.defines.split("\n"), indexParameters: this._indexParameters, isFragment: !1, shouldUseHighPrecisionShader: this._engine._shouldUseHighPrecisionShader, processor: this._engine._shaderProcessor, supportsUniformBuffers: this._engine.supportsUniformBuffers, shadersRepository: e.ShadersRepository, includesShadersStore: e.IncludesShadersStore, version: (100 * this._engine.webGLVersion).toString(), platformName: this._engine.webGLVersion >= 2 ? "WEBGL2" : "WEBGL1", }; this._loadShader(f, "Vertex", "", function (e) { g._loadShader(m, "Fragment", "Pixel", function (n) { a.a.Process(e, y, function (e) { (y.isFragment = !0), a.a.Process(n, y, function (n) { g._useFinalCode(e, n, t); }); }); }); }); } return ( Object.defineProperty(e.prototype, "onBindObservable", { get: function () { return this._onBindObservable || (this._onBindObservable = new i.c()), this._onBindObservable; }, enumerable: !0, configurable: !0, }), (e.prototype._useFinalCode = function (e, t, n) { if (n) { var i = n.vertexElement || n.vertex || n.spectorName || n, r = n.fragmentElement || n.fragment || n.spectorName || n; (this._vertexSourceCode = "#define SHADER_NAME vertex:" + i + "\n" + e), (this._fragmentSourceCode = "#define SHADER_NAME fragment:" + r + "\n" + t); } else (this._vertexSourceCode = e), (this._fragmentSourceCode = t); this._prepareEffect(); }), Object.defineProperty(e.prototype, "key", { get: function () { return this._key; }, enumerable: !0, configurable: !0, }), (e.prototype.isReady = function () { try { return this._isReadyInternal(); } catch (e) { return !1; } }), (e.prototype._isReadyInternal = function () { return !!this._isReady || (!!this._pipelineContext && this._pipelineContext.isReady); }), (e.prototype.getEngine = function () { return this._engine; }), (e.prototype.getPipelineContext = function () { return this._pipelineContext; }), (e.prototype.getAttributesNames = function () { return this._attributesNames; }), (e.prototype.getAttributeLocation = function (e) { return this._attributes[e]; }), (e.prototype.getAttributeLocationByName = function (e) { return this._attributeLocationByName[e]; }), (e.prototype.getAttributesCount = function () { return this._attributes.length; }), (e.prototype.getUniformIndex = function (e) { return this._uniformsNames.indexOf(e); }), (e.prototype.getUniform = function (e) { return this._uniforms[e]; }), (e.prototype.getSamplers = function () { return this._samplerList; }), (e.prototype.getCompilationError = function () { return this._compilationError; }), (e.prototype.allFallbacksProcessed = function () { return this._allFallbacksProcessed; }), (e.prototype.executeWhenCompiled = function (e) { var t = this; this.isReady() ? e(this) : (this.onCompileObservable.add(function (t) { e(t); }), (this._pipelineContext && !this._pipelineContext.isAsync) || setTimeout(function () { t._checkIsReady(null); }, 16)); }), (e.prototype._checkIsReady = function (e) { var t = this; try { if (this._isReadyInternal()) return; } catch (t) { return void this._processCompilationErrors(t, e); } setTimeout(function () { t._checkIsReady(e); }, 16); }), (e.prototype._loadShader = function (t, n, i, o) { var a; if ("undefined" != typeof HTMLElement && t instanceof HTMLElement) return void o(r.a.GetDOMTextContent(t)); "source:" !== t.substr(0, 7) ? "base64:" !== t.substr(0, 7) ? e.ShadersStore[t + n + "Shader"] ? o(e.ShadersStore[t + n + "Shader"]) : i && e.ShadersStore[t + i + "Shader"] ? o(e.ShadersStore[t + i + "Shader"]) : ((a = "." === t[0] || "/" === t[0] || t.indexOf("http") > -1 ? t : e.ShadersRepository + t), this._engine._loadFile(a + "." + n.toLowerCase() + ".fx", o)) : o(window.atob(t.substr(7))) : o(t.substr(7)); }), (e.prototype._rebuildProgram = function (e, t, n, i) { var r = this; (this._isReady = !1), (this._vertexSourceCodeOverride = e), (this._fragmentSourceCodeOverride = t), (this.onError = function (e, t) { i && i(t); }), (this.onCompiled = function () { var e = r.getEngine().scenes; if (e) for (var t = 0; t < e.length; t++) e[t].markAllMaterialsAsDirty(31); r._pipelineContext._handlesSpectorRebuildCallback(n); }), (this._fallbacks = null), this._prepareEffect(); }), (e.prototype._prepareEffect = function () { var e = this, t = this._attributesNames, n = this.defines; this._valueCache = {}; var i = this._pipelineContext; try { var r = this._engine; this._pipelineContext = r.createPipelineContext(); var o = this._rebuildProgram.bind(this); this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride ? r._preparePipelineContext(this._pipelineContext, this._vertexSourceCodeOverride, this._fragmentSourceCodeOverride, !0, o, null, this._transformFeedbackVaryings) : r._preparePipelineContext(this._pipelineContext, this._vertexSourceCode, this._fragmentSourceCode, !1, o, n, this._transformFeedbackVaryings), r._executeWhenRenderingStateIsCompiled(this._pipelineContext, function () { if (r.supportsUniformBuffers) for (var n in e._uniformBuffersNames) e.bindUniformBlock(n, e._uniformBuffersNames[n]); var o; if ( (r.getUniforms(e._pipelineContext, e._uniformsNames).forEach(function (t, n) { e._uniforms[e._uniformsNames[n]] = t; }), (e._attributes = r.getAttributes(e._pipelineContext, t)), t) ) for (var a = 0; a < t.length; a++) { var s = t[a]; e._attributeLocationByName[s] = e._attributes[a]; } for (o = 0; o < e._samplerList.length; o++) { null == e.getUniform(e._samplerList[o]) && (e._samplerList.splice(o, 1), o--); } e._samplerList.forEach(function (t, n) { e._samplers[t] = n; }), r.bindSamplers(e), (e._compilationError = ""), (e._isReady = !0), e.onCompiled && e.onCompiled(e), e.onCompileObservable.notifyObservers(e), e.onCompileObservable.clear(), e._fallbacks && e._fallbacks.unBindMesh(), i && e.getEngine()._deletePipelineContext(i); }), this._pipelineContext.isAsync && this._checkIsReady(i); } catch (e) { this._processCompilationErrors(e, i); } }), (e.prototype._processCompilationErrors = function (e, t) { void 0 === t && (t = null), (this._compilationError = e.message); var n = this._attributesNames, i = this._fallbacks; o.a.Error("Unable to compile effect:"), o.a.Error( "Uniforms: " + this._uniformsNames.map(function (e) { return " " + e; }) ), o.a.Error( "Attributes: " + n.map(function (e) { return " " + e; }) ), o.a.Error("Defines:\r\n" + this.defines), o.a.Error("Error: " + this._compilationError), t && ((this._pipelineContext = t), (this._isReady = !0), this.onError && this.onError(this, this._compilationError), this.onErrorObservable.notifyObservers(this)), i ? ((this._pipelineContext = null), i.hasMoreFallbacks ? ((this._allFallbacksProcessed = !1), o.a.Error("Trying next fallback."), (this.defines = i.reduce(this.defines, this)), this._prepareEffect()) : ((this._allFallbacksProcessed = !0), this.onError && this.onError(this, this._compilationError), this.onErrorObservable.notifyObservers(this), this.onErrorObservable.clear(), this._fallbacks && this._fallbacks.unBindMesh())) : (this._allFallbacksProcessed = !0); }), Object.defineProperty(e.prototype, "isSupported", { get: function () { return "" === this._compilationError; }, enumerable: !0, configurable: !0, }), (e.prototype._bindTexture = function (e, t) { this._engine._bindTexture(this._samplers[e], t); }), (e.prototype.setTexture = function (e, t) { this._engine.setTexture(this._samplers[e], this._uniforms[e], t); }), (e.prototype.setDepthStencilTexture = function (e, t) { this._engine.setDepthStencilTexture(this._samplers[e], this._uniforms[e], t); }), (e.prototype.setTextureArray = function (e, t) { var n = e + "Ex"; if (-1 === this._samplerList.indexOf(n + "0")) { for (var i = this._samplerList.indexOf(e), r = 1; r < t.length; r++) { var o = n + (r - 1).toString(); this._samplerList.splice(i + r, 0, o); } for (var a = 0, s = 0, c = this._samplerList; s < c.length; s++) { var l = c[s]; (this._samplers[l] = a), (a += 1); } } this._engine.setTextureArray(this._samplers[e], this._uniforms[e], t); }), (e.prototype.setTextureFromPostProcess = function (e, t) { this._engine.setTextureFromPostProcess(this._samplers[e], t); }), (e.prototype.setTextureFromPostProcessOutput = function (e, t) { this._engine.setTextureFromPostProcessOutput(this._samplers[e], t); }), (e.prototype._cacheMatrix = function (e, t) { var n = this._valueCache[e], i = t.updateFlag; return (void 0 === n || n !== i) && ((this._valueCache[e] = i), !0); }), (e.prototype._cacheFloat2 = function (e, t, n) { var i = this._valueCache[e]; if (!i || 2 !== i.length) return (i = [t, n]), (this._valueCache[e] = i), !0; var r = !1; return i[0] !== t && ((i[0] = t), (r = !0)), i[1] !== n && ((i[1] = n), (r = !0)), r; }), (e.prototype._cacheFloat3 = function (e, t, n, i) { var r = this._valueCache[e]; if (!r || 3 !== r.length) return (r = [t, n, i]), (this._valueCache[e] = r), !0; var o = !1; return r[0] !== t && ((r[0] = t), (o = !0)), r[1] !== n && ((r[1] = n), (o = !0)), r[2] !== i && ((r[2] = i), (o = !0)), o; }), (e.prototype._cacheFloat4 = function (e, t, n, i, r) { var o = this._valueCache[e]; if (!o || 4 !== o.length) return (o = [t, n, i, r]), (this._valueCache[e] = o), !0; var a = !1; return o[0] !== t && ((o[0] = t), (a = !0)), o[1] !== n && ((o[1] = n), (a = !0)), o[2] !== i && ((o[2] = i), (a = !0)), o[3] !== r && ((o[3] = r), (a = !0)), a; }), (e.prototype.bindUniformBuffer = function (t, n) { var i = this._uniformBuffersNames[n]; void 0 !== i && e._baseCache[i] !== t && ((e._baseCache[i] = t), this._engine.bindUniformBufferBase(t, i)); }), (e.prototype.bindUniformBlock = function (e, t) { this._engine.bindUniformBlock(this._pipelineContext, e, t); }), (e.prototype.setInt = function (e, t) { var n = this._valueCache[e]; return (void 0 !== n && n === t) || ((this._valueCache[e] = t), this._engine.setInt(this._uniforms[e], t)), this; }), (e.prototype.setIntArray = function (e, t) { return (this._valueCache[e] = null), this._engine.setIntArray(this._uniforms[e], t), this; }), (e.prototype.setIntArray2 = function (e, t) { return (this._valueCache[e] = null), this._engine.setIntArray2(this._uniforms[e], t), this; }), (e.prototype.setIntArray3 = function (e, t) { return (this._valueCache[e] = null), this._engine.setIntArray3(this._uniforms[e], t), this; }), (e.prototype.setIntArray4 = function (e, t) { return (this._valueCache[e] = null), this._engine.setIntArray4(this._uniforms[e], t), this; }), (e.prototype.setFloatArray = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray(this._uniforms[e], t), this; }), (e.prototype.setFloatArray2 = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray2(this._uniforms[e], t), this; }), (e.prototype.setFloatArray3 = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray3(this._uniforms[e], t), this; }), (e.prototype.setFloatArray4 = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray4(this._uniforms[e], t), this; }), (e.prototype.setArray = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray(this._uniforms[e], t), this; }), (e.prototype.setArray2 = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray2(this._uniforms[e], t), this; }), (e.prototype.setArray3 = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray3(this._uniforms[e], t), this; }), (e.prototype.setArray4 = function (e, t) { return (this._valueCache[e] = null), this._engine.setArray4(this._uniforms[e], t), this; }), (e.prototype.setMatrices = function (e, t) { return t ? ((this._valueCache[e] = null), this._engine.setMatrices(this._uniforms[e], t), this) : this; }), (e.prototype.setMatrix = function (e, t) { return this._cacheMatrix(e, t) && this._engine.setMatrices(this._uniforms[e], t.toArray()), this; }), (e.prototype.setMatrix3x3 = function (e, t) { return (this._valueCache[e] = null), this._engine.setMatrix3x3(this._uniforms[e], t), this; }), (e.prototype.setMatrix2x2 = function (e, t) { return (this._valueCache[e] = null), this._engine.setMatrix2x2(this._uniforms[e], t), this; }), (e.prototype.setFloat = function (e, t) { var n = this._valueCache[e]; return (void 0 !== n && n === t) || ((this._valueCache[e] = t), this._engine.setFloat(this._uniforms[e], t)), this; }), (e.prototype.setBool = function (e, t) { var n = this._valueCache[e]; return (void 0 !== n && n === t) || ((this._valueCache[e] = t), this._engine.setInt(this._uniforms[e], t ? 1 : 0)), this; }), (e.prototype.setVector2 = function (e, t) { return this._cacheFloat2(e, t.x, t.y) && this._engine.setFloat2(this._uniforms[e], t.x, t.y), this; }), (e.prototype.setFloat2 = function (e, t, n) { return this._cacheFloat2(e, t, n) && this._engine.setFloat2(this._uniforms[e], t, n), this; }), (e.prototype.setVector3 = function (e, t) { return this._cacheFloat3(e, t.x, t.y, t.z) && this._engine.setFloat3(this._uniforms[e], t.x, t.y, t.z), this; }), (e.prototype.setFloat3 = function (e, t, n, i) { return this._cacheFloat3(e, t, n, i) && this._engine.setFloat3(this._uniforms[e], t, n, i), this; }), (e.prototype.setVector4 = function (e, t) { return this._cacheFloat4(e, t.x, t.y, t.z, t.w) && this._engine.setFloat4(this._uniforms[e], t.x, t.y, t.z, t.w), this; }), (e.prototype.setFloat4 = function (e, t, n, i, r) { return this._cacheFloat4(e, t, n, i, r) && this._engine.setFloat4(this._uniforms[e], t, n, i, r), this; }), (e.prototype.setColor3 = function (e, t) { return this._cacheFloat3(e, t.r, t.g, t.b) && this._engine.setFloat3(this._uniforms[e], t.r, t.g, t.b), this; }), (e.prototype.setColor4 = function (e, t, n) { return this._cacheFloat4(e, t.r, t.g, t.b, n) && this._engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, n), this; }), (e.prototype.setDirectColor4 = function (e, t) { return this._cacheFloat4(e, t.r, t.g, t.b, t.a) && this._engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, t.a), this; }), (e.prototype.dispose = function () { this._engine._releaseEffect(this); }), (e.RegisterShader = function (t, n, i) { n && (e.ShadersStore[t + "PixelShader"] = n), i && (e.ShadersStore[t + "VertexShader"] = i); }), (e.ResetCache = function () { e._baseCache = {}; }), (e.ShadersRepository = "src/Shaders/"), (e._uniqueIdSeed = 0), (e._baseCache = {}), (e.ShadersStore = {}), (e.IncludesShadersStore = {}), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return f; }); var i = n(2), r = n(3), o = n(6), a = n(1), s = n(68), c = n(13), l = n(22), u = n(169), h = n(164), d = n(85), p = n(53), f = (function (e) { function t(n, i, r, a, s, c, l, h, d, p, f) { void 0 === r && (r = !1), void 0 === a && (a = !0), void 0 === s && (s = t.TRILINEAR_SAMPLINGMODE), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === h && (h = null), void 0 === d && (d = !1); var m = e.call(this, i && "Scene" === i.getClassName() ? i : null) || this; (m.url = null), (m.uOffset = 0), (m.vOffset = 0), (m.uScale = 1), (m.vScale = 1), (m.uAng = 0), (m.vAng = 0), (m.wAng = 0), (m.uRotationCenter = 0.5), (m.vRotationCenter = 0.5), (m.wRotationCenter = 0.5), (m.inspectableCustomProperties = null), (m._noMipmap = !1), (m._invertY = !1), (m._rowGenerationMatrix = null), (m._cachedTextureMatrix = null), (m._projectionModeMatrix = null), (m._t0 = null), (m._t1 = null), (m._t2 = null), (m._cachedUOffset = -1), (m._cachedVOffset = -1), (m._cachedUScale = 0), (m._cachedVScale = 0), (m._cachedUAng = -1), (m._cachedVAng = -1), (m._cachedWAng = -1), (m._cachedProjectionMatrixId = -1), (m._cachedCoordinatesMode = -1), (m._initialSamplingMode = t.BILINEAR_SAMPLINGMODE), (m._buffer = null), (m._deleteBuffer = !1), (m._format = null), (m._delayedOnLoad = null), (m._delayedOnError = null), (m.onLoadObservable = new o.c()), (m._isBlocking = !0), (m.name = n || ""), (m.url = n), (m._noMipmap = r), (m._invertY = a), (m._initialSamplingMode = s), (m._buffer = h), (m._deleteBuffer = d), (m._mimeType = f), p && (m._format = p); var g = m.getScene(), b = i && i.getCaps ? i : g ? g.getEngine() : null; if (!b) return m; b.onBeforeTextureInitObservable.notifyObservers(m); var _ = function () { m._texture && (m._texture._invertVScale && ((m.vScale *= -1), (m.vOffset += 1)), null !== m._texture._cachedWrapU && ((m.wrapU = m._texture._cachedWrapU), (m._texture._cachedWrapU = null)), null !== m._texture._cachedWrapV && ((m.wrapV = m._texture._cachedWrapV), (m._texture._cachedWrapV = null)), null !== m._texture._cachedWrapR && ((m.wrapR = m._texture._cachedWrapR), (m._texture._cachedWrapR = null))), m.onLoadObservable.hasObservers() && m.onLoadObservable.notifyObservers(m), c && c(), !m.isBlocking && g && g.resetCachedMaterial(); }; return m.url ? ((m._texture = m._getFromCache(m.url, r, s, a)), m._texture ? m._texture.isReady ? u.a.SetImmediate(function () { return _(); }) : m._texture.onLoadedObservable.add(_) : g && g.useDelayedTextureLoading ? ((m.delayLoadState = 4), (m._delayedOnLoad = _), (m._delayedOnError = l)) : ((m._texture = b.createTexture(m.url, r, a, g, s, _, l, m._buffer, void 0, m._format, null, f)), d && delete m._buffer), m) : ((m._delayedOnLoad = _), (m._delayedOnError = l), m); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "noMipmap", { get: function () { return this._noMipmap; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isBlocking", { get: function () { return this._isBlocking; }, set: function (e) { this._isBlocking = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "samplingMode", { get: function () { return this._texture ? this._texture.samplingMode : this._initialSamplingMode; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "invertY", { get: function () { return this._invertY; }, enumerable: !0, configurable: !0, }), (t.prototype.updateURL = function (e, t, n) { void 0 === t && (t = null), this.url && (this.releaseInternalTexture(), this.getScene().markAllMaterialsAsDirty(1)), (this.name && !p.a.StartsWith(this.name, "data:")) || (this.name = e), (this.url = e), (this._buffer = t), (this.delayLoadState = 4), n && (this._delayedOnLoad = n), this.delayLoad(); }), (t.prototype.delayLoad = function () { if (4 === this.delayLoadState) { var e = this.getScene(); e && ((this.delayLoadState = 1), (this._texture = this._getFromCache(this.url, this._noMipmap, this.samplingMode, this._invertY)), this._texture ? this._delayedOnLoad && (this._texture.isReady ? u.a.SetImmediate(this._delayedOnLoad) : this._texture.onLoadedObservable.add(this._delayedOnLoad)) : ((this._texture = e .getEngine() .createTexture(this.url, this._noMipmap, this._invertY, e, this.samplingMode, this._delayedOnLoad, this._delayedOnError, this._buffer, null, this._format, null, this._mimeType)), this._deleteBuffer && delete this._buffer), (this._delayedOnLoad = null), (this._delayedOnError = null)); } }), (t.prototype._prepareRowForTextureGeneration = function (e, t, n, i) { (e *= this._cachedUScale), (t *= this._cachedVScale), (e -= this.uRotationCenter * this._cachedUScale), (t -= this.vRotationCenter * this._cachedVScale), (n -= this.wRotationCenter), a.e.TransformCoordinatesFromFloatsToRef(e, t, n, this._rowGenerationMatrix, i), (i.x += this.uRotationCenter * this._cachedUScale + this._cachedUOffset), (i.y += this.vRotationCenter * this._cachedVScale + this._cachedVOffset), (i.z += this.wRotationCenter); }), (t.prototype.getTextureMatrix = function (e) { var t = this; if ( (void 0 === e && (e = 1), this.uOffset === this._cachedUOffset && this.vOffset === this._cachedVOffset && this.uScale * e === this._cachedUScale && this.vScale === this._cachedVScale && this.uAng === this._cachedUAng && this.vAng === this._cachedVAng && this.wAng === this._cachedWAng) ) return this._cachedTextureMatrix; (this._cachedUOffset = this.uOffset), (this._cachedVOffset = this.vOffset), (this._cachedUScale = this.uScale * e), (this._cachedVScale = this.vScale), (this._cachedUAng = this.uAng), (this._cachedVAng = this.vAng), (this._cachedWAng = this.wAng), this._cachedTextureMatrix || ((this._cachedTextureMatrix = a.a.Zero()), (this._rowGenerationMatrix = new a.a()), (this._t0 = a.e.Zero()), (this._t1 = a.e.Zero()), (this._t2 = a.e.Zero())), a.a.RotationYawPitchRollToRef(this.vAng, this.uAng, this.wAng, this._rowGenerationMatrix), this._prepareRowForTextureGeneration(0, 0, 0, this._t0), this._prepareRowForTextureGeneration(1, 0, 0, this._t1), this._prepareRowForTextureGeneration(0, 1, 0, this._t2), this._t1.subtractInPlace(this._t0), this._t2.subtractInPlace(this._t0), a.a.FromValuesToRef(this._t1.x, this._t1.y, this._t1.z, 0, this._t2.x, this._t2.y, this._t2.z, 0, this._t0.x, this._t0.y, this._t0.z, 0, 0, 0, 0, 1, this._cachedTextureMatrix); var n = this.getScene(); return n ? (n.markAllMaterialsAsDirty(1, function (e) { return e.hasTexture(t); }), this._cachedTextureMatrix) : this._cachedTextureMatrix; }), (t.prototype.getReflectionTextureMatrix = function () { var e = this, n = this.getScene(); if (!n) return this._cachedTextureMatrix; if (this.uOffset === this._cachedUOffset && this.vOffset === this._cachedVOffset && this.uScale === this._cachedUScale && this.vScale === this._cachedVScale && this.coordinatesMode === this._cachedCoordinatesMode) { if (this.coordinatesMode !== t.PROJECTION_MODE) return this._cachedTextureMatrix; if (this._cachedProjectionMatrixId === n.getProjectionMatrix().updateFlag) return this._cachedTextureMatrix; } switch ( (this._cachedTextureMatrix || (this._cachedTextureMatrix = a.a.Zero()), this._projectionModeMatrix || (this._projectionModeMatrix = a.a.Zero()), (this._cachedUOffset = this.uOffset), (this._cachedVOffset = this.vOffset), (this._cachedUScale = this.uScale), (this._cachedVScale = this.vScale), (this._cachedCoordinatesMode = this.coordinatesMode), this.coordinatesMode) ) { case t.PLANAR_MODE: a.a.IdentityToRef(this._cachedTextureMatrix), (this._cachedTextureMatrix[0] = this.uScale), (this._cachedTextureMatrix[5] = this.vScale), (this._cachedTextureMatrix[12] = this.uOffset), (this._cachedTextureMatrix[13] = this.vOffset); break; case t.PROJECTION_MODE: a.a.FromValuesToRef(0.5, 0, 0, 0, 0, -0.5, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 1, 1, this._projectionModeMatrix); var i = n.getProjectionMatrix(); (this._cachedProjectionMatrixId = i.updateFlag), i.multiplyToRef(this._projectionModeMatrix, this._cachedTextureMatrix); break; default: a.a.IdentityToRef(this._cachedTextureMatrix); } return ( n.markAllMaterialsAsDirty(1, function (t) { return -1 !== t.getActiveTextures().indexOf(e); }), this._cachedTextureMatrix ); }), (t.prototype.clone = function () { var e = this; return r.a.Clone(function () { return new t(e._texture ? e._texture.url : null, e.getScene(), e._noMipmap, e._invertY, e.samplingMode, void 0, void 0, e._texture ? e._texture._buffer : void 0); }, this); }), (t.prototype.serialize = function () { var n = this.name; t.SerializeBuffers || (p.a.StartsWith(this.name, "data:") && (this.name = "")); var i = e.prototype.serialize.call(this); return i ? (t.SerializeBuffers && ("string" == typeof this._buffer && "data:" === this._buffer.substr(0, 5) ? ((i.base64String = this._buffer), (i.name = i.name.replace("data:", ""))) : this.url && p.a.StartsWith(this.url, "data:") && this._buffer instanceof Uint8Array && (i.base64String = "data:image/png;base64," + p.a.EncodeArrayBufferToBase64(this._buffer))), (i.invertY = this._invertY), (i.samplingMode = this.samplingMode), (this.name = n), i) : null; }), (t.prototype.getClassName = function () { return "Texture"; }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onLoadObservable.clear(), (this._delayedOnLoad = null), (this._delayedOnError = null); }), (t.Parse = function (e, n, i) { if (e.customType) { var o = h.a.Instantiate(e.customType).Parse(e, n, i); return e.samplingMode && o.updateSamplingMode && o._samplingMode && o._samplingMode !== e.samplingMode && o.updateSamplingMode(e.samplingMode), o; } if (e.isCube && !e.isRenderTarget) return t._CubeTextureParser(e, n, i); if (!e.name && !e.isRenderTarget) return null; var a = r.a.Parse( function () { var r, o = !0; if ((e.noMipmap && (o = !1), e.mirrorPlane)) { var a = t._CreateMirror(e.name, e.renderTargetSize, n, o); return (a._waitingRenderList = e.renderList), (a.mirrorPlane = d.a.FromArray(e.mirrorPlane)), a; } if (e.isRenderTarget) { var s = null; if (e.isCube) { if (n.reflectionProbes) for (var c = 0; c < n.reflectionProbes.length; c++) { var l = n.reflectionProbes[c]; if (l.name === e.name) return l.cubeTexture; } } else (s = t._CreateRenderTargetTexture(e.name, e.renderTargetSize, n, o))._waitingRenderList = e.renderList; return s; } if (e.base64String) r = t.CreateFromBase64String(e.base64String, e.name, n, !o, e.invertY); else { var u = i + e.name; t.UseSerializedUrlIfAny && e.url && (u = e.url), (r = new t(u, n, !o, e.invertY)); } return r; }, e, n ); if ((a && a._texture && ((a._texture._cachedWrapU = null), (a._texture._cachedWrapV = null), (a._texture._cachedWrapR = null)), e.samplingMode)) { var s = e.samplingMode; a && a.samplingMode !== s && a.updateSamplingMode(s); } if (a && e.animations) for (var l = 0; l < e.animations.length; l++) { var u = e.animations[l], p = c.a.GetClass("BABYLON.Animation"); p && a.animations.push(p.Parse(u)); } return a; }), (t.CreateFromBase64String = function (e, n, i, r, o, a, s, c, l) { return void 0 === a && (a = t.TRILINEAR_SAMPLINGMODE), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === l && (l = 5), new t("data:" + n, i, r, o, a, s, c, e, !1, l); }), (t.LoadFromDataString = function (e, n, i, r, o, a, s, c, l, u) { return ( void 0 === r && (r = !1), void 0 === o && (o = !1), void 0 === a && (a = !0), void 0 === s && (s = t.TRILINEAR_SAMPLINGMODE), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = 5), "data:" !== e.substr(0, 5) && (e = "data:" + e), new t(e, i, o, a, s, c, l, n, r, u) ); }), (t.SerializeBuffers = !0), (t._CubeTextureParser = function (e, t, n) { throw l.a.WarnImport("CubeTexture"); }), (t._CreateMirror = function (e, t, n, i) { throw l.a.WarnImport("MirrorTexture"); }), (t._CreateRenderTargetTexture = function (e, t, n, i) { throw l.a.WarnImport("RenderTargetTexture"); }), (t.NEAREST_SAMPLINGMODE = 1), (t.NEAREST_NEAREST_MIPLINEAR = 8), (t.BILINEAR_SAMPLINGMODE = 2), (t.LINEAR_LINEAR_MIPNEAREST = 11), (t.TRILINEAR_SAMPLINGMODE = 3), (t.LINEAR_LINEAR_MIPLINEAR = 3), (t.NEAREST_NEAREST_MIPNEAREST = 4), (t.NEAREST_LINEAR_MIPNEAREST = 5), (t.NEAREST_LINEAR_MIPLINEAR = 6), (t.NEAREST_LINEAR = 7), (t.NEAREST_NEAREST = 1), (t.LINEAR_NEAREST_MIPNEAREST = 9), (t.LINEAR_NEAREST_MIPLINEAR = 10), (t.LINEAR_LINEAR = 2), (t.LINEAR_NEAREST = 12), (t.EXPLICIT_MODE = 0), (t.SPHERICAL_MODE = 1), (t.PLANAR_MODE = 2), (t.CUBIC_MODE = 3), (t.PROJECTION_MODE = 4), (t.SKYBOX_MODE = 5), (t.INVCUBIC_MODE = 6), (t.EQUIRECTANGULAR_MODE = 7), (t.FIXED_EQUIRECTANGULAR_MODE = 8), (t.FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9), (t.CLAMP_ADDRESSMODE = 0), (t.WRAP_ADDRESSMODE = 1), (t.MIRROR_ADDRESSMODE = 2), (t.UseSerializedUrlIfAny = !1), Object(i.c)([Object(r.c)()], t.prototype, "url", void 0), Object(i.c)([Object(r.c)()], t.prototype, "uOffset", void 0), Object(i.c)([Object(r.c)()], t.prototype, "vOffset", void 0), Object(i.c)([Object(r.c)()], t.prototype, "uScale", void 0), Object(i.c)([Object(r.c)()], t.prototype, "vScale", void 0), Object(i.c)([Object(r.c)()], t.prototype, "uAng", void 0), Object(i.c)([Object(r.c)()], t.prototype, "vAng", void 0), Object(i.c)([Object(r.c)()], t.prototype, "wAng", void 0), Object(i.c)([Object(r.c)()], t.prototype, "uRotationCenter", void 0), Object(i.c)([Object(r.c)()], t.prototype, "vRotationCenter", void 0), Object(i.c)([Object(r.c)()], t.prototype, "wRotationCenter", void 0), Object(i.c)([Object(r.c)()], t.prototype, "isBlocking", null), t ); })(s.a); r.a._TextureParser = f.Parse; }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return E; }), n.d(t, "c", function () { return A; }), n.d(t, "a", function () { return D; }); var i = n(2), r = n(6), o = n(12), a = n(51), s = n(45), c = n(1), l = n(5), u = n(35), h = n(4), d = n(16), p = n(79), f = n(31), m = n(78), g = n(63), b = n(28), _ = n(94), v = n(103), y = n(3), C = n(10), P = n(13), x = n(22), T = n(21), S = n(191), O = n(112), E = function () {}, M = function () { (this.visibleInstances = {}), (this.batchCache = new A()), (this.instancesBufferSize = 2048); }, A = function () { (this.mustReturn = !1), (this.visibleInstances = new Array()), (this.renderSelf = new Array()), (this.hardwareInstancedRendering = new Array()); }, I = function () { (this._areNormalsFrozen = !1), (this._source = null), (this.meshMap = null), (this._preActivateId = -1), (this._LODLevels = new Array()), (this._morphTargetManager = null); }, D = (function (e) { function t(n, i, r, o, c, l) { void 0 === i && (i = null), void 0 === r && (r = null), void 0 === o && (o = null), void 0 === l && (l = !0); var u = e.call(this, n, i) || this; if ( ((u._internalMeshDataInfo = new I()), (u.delayLoadState = 0), (u.instances = new Array()), (u._creationDataStorage = null), (u._geometry = null), (u._instanceDataStorage = new M()), (u._effectiveMaterial = null), (u._shouldGenerateFlatShading = !1), (u._originalBuilderSideOrientation = t.DEFAULTSIDE), (u.overrideMaterialSideOrientation = null), (i = u.getScene()), o) ) { if ( (o._geometry && o._geometry.applyToMesh(u), a.a.DeepCopy( o, u, [ "name", "material", "skeleton", "instances", "parent", "uniqueId", "source", "metadata", "hasLODLevels", "geometry", "isBlocked", "areNormalsFrozen", "onBeforeDrawObservable", "onBeforeRenderObservable", "onAfterRenderObservable", "onBeforeDraw", "onAfterWorldMatrixUpdateObservable", "onCollideObservable", "onCollisionPositionChangeObservable", "onRebuildObservable", "onDisposeObservable", "lightSources", "morphTargetManager", ], ["_poseMatrix"] ), (u._internalMeshDataInfo._source = o), i.useClonedMeshMap && (o._internalMeshDataInfo.meshMap || (o._internalMeshDataInfo.meshMap = {}), (o._internalMeshDataInfo.meshMap[u.uniqueId] = u)), (u._originalBuilderSideOrientation = o._originalBuilderSideOrientation), (u._creationDataStorage = o._creationDataStorage), o._ranges) ) { var h = o._ranges; for (var n in h) h.hasOwnProperty(n) && h[n] && u.createAnimationRange(n, h[n].from, h[n].to); } var d; if ( (o.metadata && o.metadata.clone ? (u.metadata = o.metadata.clone()) : (u.metadata = o.metadata), s.a && s.a.HasTags(o) && s.a.AddTagsTo(u, s.a.GetTags(o, !0)), (u.parent = o.parent), u.setPivotMatrix(o.getPivotMatrix()), (u.id = n + "." + o.id), (u.material = o.material), !c) ) for (var p = o.getDescendants(!0), f = 0; f < p.length; f++) { var m = p[f]; m.clone && m.clone(n + "." + m.name, u); } if ((o.morphTargetManager && (u.morphTargetManager = o.morphTargetManager), i.getPhysicsEngine)) { var g = i.getPhysicsEngine(); if (l && g) { var b = g.getImpostorForPhysicsObject(o); b && (u.physicsImpostor = b.clone(u)); } } for (d = 0; d < i.particleSystems.length; d++) { var _ = i.particleSystems[d]; _.emitter === o && _.clone(_.name, u); } u.refreshBoundingInfo(), u.computeWorldMatrix(!0); } return null !== r && (u.parent = r), (u._instanceDataStorage.hardwareInstancedRendering = u.getEngine().getCaps().instancedArrays), u; } return ( Object(i.d)(t, e), (t._GetDefaultSideOrientation = function (e) { return e || t.FRONTSIDE; }), Object.defineProperty(t.prototype, "onBeforeRenderObservable", { get: function () { return this._internalMeshDataInfo._onBeforeRenderObservable || (this._internalMeshDataInfo._onBeforeRenderObservable = new r.c()), this._internalMeshDataInfo._onBeforeRenderObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onBeforeBindObservable", { get: function () { return this._internalMeshDataInfo._onBeforeBindObservable || (this._internalMeshDataInfo._onBeforeBindObservable = new r.c()), this._internalMeshDataInfo._onBeforeBindObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onAfterRenderObservable", { get: function () { return this._internalMeshDataInfo._onAfterRenderObservable || (this._internalMeshDataInfo._onAfterRenderObservable = new r.c()), this._internalMeshDataInfo._onAfterRenderObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onBeforeDrawObservable", { get: function () { return this._internalMeshDataInfo._onBeforeDrawObservable || (this._internalMeshDataInfo._onBeforeDrawObservable = new r.c()), this._internalMeshDataInfo._onBeforeDrawObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onBeforeDraw", { set: function (e) { this._onBeforeDrawObserver && this.onBeforeDrawObservable.remove(this._onBeforeDrawObserver), (this._onBeforeDrawObserver = this.onBeforeDrawObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hasInstances", { get: function () { return this.instances.length > 0; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "morphTargetManager", { get: function () { return this._internalMeshDataInfo._morphTargetManager; }, set: function (e) { this._internalMeshDataInfo._morphTargetManager !== e && ((this._internalMeshDataInfo._morphTargetManager = e), this._syncGeometryWithMorphTargetManager()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "source", { get: function () { return this._internalMeshDataInfo._source; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isUnIndexed", { get: function () { return this._unIndexed; }, set: function (e) { this._unIndexed !== e && ((this._unIndexed = e), this._markSubMeshesAsAttributesDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldMatrixInstancedBuffer", { get: function () { return this._instanceDataStorage.instancesData; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "manualUpdateOfWorldMatrixInstancedBuffer", { get: function () { return this._instanceDataStorage.manualUpdate; }, set: function (e) { this._instanceDataStorage.manualUpdate = e; }, enumerable: !0, configurable: !0, }), (t.prototype.instantiateHierarchy = function (e, t, n) { void 0 === e && (e = null); var i = !(this.getTotalVertices() > 0) || (t && t.doNotInstantiate) ? this.clone("Clone of " + (this.name || this.id), e || this.parent, !0) : this.createInstance("instance of " + (this.name || this.id)); i && ((i.parent = e || this.parent), (i.position = this.position.clone()), (i.scaling = this.scaling.clone()), this.rotationQuaternion ? (i.rotationQuaternion = this.rotationQuaternion.clone()) : (i.rotation = this.rotation.clone()), n && n(this, i)); for (var r = 0, o = this.getChildTransformNodes(!0); r < o.length; r++) { o[r].instantiateHierarchy(i, t, n); } return i; }), (t.prototype.getClassName = function () { return "Mesh"; }), Object.defineProperty(t.prototype, "_isMesh", { get: function () { return !0; }, enumerable: !0, configurable: !0, }), (t.prototype.toString = function (t) { var n = e.prototype.toString.call(this, t); if (((n += ", n vertices: " + this.getTotalVertices()), (n += ", parent: " + (this._waitingParentId ? this._waitingParentId : this.parent ? this.parent.name : "NONE")), this.animations)) for (var i = 0; i < this.animations.length; i++) n += ", animation[0]: " + this.animations[i].toString(t); if (t) if (this._geometry) { var r = this.getIndices(), o = this.getVerticesData(h.b.PositionKind); o && r && (n += ", flat shading: " + (o.length / 3 === r.length ? "YES" : "NO")); } else n += ", flat shading: UNKNOWN"; return n; }), (t.prototype._unBindEffect = function () { e.prototype._unBindEffect.call(this); for (var t = 0, n = this.instances; t < n.length; t++) { n[t]._unBindEffect(); } }), Object.defineProperty(t.prototype, "hasLODLevels", { get: function () { return this._internalMeshDataInfo._LODLevels.length > 0; }, enumerable: !0, configurable: !0, }), (t.prototype.getLODLevels = function () { return this._internalMeshDataInfo._LODLevels; }), (t.prototype._sortLODLevels = function () { this._internalMeshDataInfo._LODLevels.sort(function (e, t) { return e.distance < t.distance ? 1 : e.distance > t.distance ? -1 : 0; }); }), (t.prototype.addLODLevel = function (e, t) { if (t && t._masterMesh) return C.a.Warn("You cannot use a mesh as LOD level twice"), this; var n = new S.a(e, t); return this._internalMeshDataInfo._LODLevels.push(n), t && (t._masterMesh = this), this._sortLODLevels(), this; }), (t.prototype.getLODLevelAtDistance = function (e) { for (var t = this._internalMeshDataInfo, n = 0; n < t._LODLevels.length; n++) { var i = t._LODLevels[n]; if (i.distance === e) return i.mesh; } return null; }), (t.prototype.removeLODLevel = function (e) { for (var t = this._internalMeshDataInfo, n = 0; n < t._LODLevels.length; n++) t._LODLevels[n].mesh === e && (t._LODLevels.splice(n, 1), e && (e._masterMesh = null)); return this._sortLODLevels(), this; }), (t.prototype.getLOD = function (e, t) { var n, i = this._internalMeshDataInfo; if (!i._LODLevels || 0 === i._LODLevels.length) return this; t ? (n = t) : (n = this.getBoundingInfo().boundingSphere); var r = n.centerWorld.subtract(e.globalPosition).length(); if (i._LODLevels[i._LODLevels.length - 1].distance > r) return this.onLODLevelSelection && this.onLODLevelSelection(r, this, this), this; for (var o = 0; o < i._LODLevels.length; o++) { var a = i._LODLevels[o]; if (a.distance < r) return a.mesh && (a.mesh._preActivate(), a.mesh._updateSubMeshesBoundingInfo(this.worldMatrixFromCache)), this.onLODLevelSelection && this.onLODLevelSelection(r, this, a.mesh), a.mesh; } return this.onLODLevelSelection && this.onLODLevelSelection(r, this, this), this; }), Object.defineProperty(t.prototype, "geometry", { get: function () { return this._geometry; }, enumerable: !0, configurable: !0, }), (t.prototype.getTotalVertices = function () { return null === this._geometry || void 0 === this._geometry ? 0 : this._geometry.getTotalVertices(); }), (t.prototype.getVerticesData = function (e, t, n) { return this._geometry ? this._geometry.getVerticesData(e, t, n) : null; }), (t.prototype.getVertexBuffer = function (e) { return this._geometry ? this._geometry.getVertexBuffer(e) : null; }), (t.prototype.isVerticesDataPresent = function (e) { return this._geometry ? this._geometry.isVerticesDataPresent(e) : !!this._delayInfo && -1 !== this._delayInfo.indexOf(e); }), (t.prototype.isVertexBufferUpdatable = function (e) { return this._geometry ? this._geometry.isVertexBufferUpdatable(e) : !!this._delayInfo && -1 !== this._delayInfo.indexOf(e); }), (t.prototype.getVerticesDataKinds = function () { if (!this._geometry) { var e = new Array(); return ( this._delayInfo && this._delayInfo.forEach(function (t) { e.push(t); }), e ); } return this._geometry.getVerticesDataKinds(); }), (t.prototype.getTotalIndices = function () { return this._geometry ? this._geometry.getTotalIndices() : 0; }), (t.prototype.getIndices = function (e, t) { return this._geometry ? this._geometry.getIndices(e, t) : []; }), Object.defineProperty(t.prototype, "isBlocked", { get: function () { return null !== this._masterMesh && void 0 !== this._masterMesh; }, enumerable: !0, configurable: !0, }), (t.prototype.isReady = function (t, n) { if ((void 0 === t && (t = !1), void 0 === n && (n = !1), 2 === this.delayLoadState)) return !1; if (!e.prototype.isReady.call(this, t)) return !1; if (!this.subMeshes || 0 === this.subMeshes.length) return !0; if (!t) return !0; var i = this.getEngine(), r = this.getScene(), o = n || (i.getCaps().instancedArrays && this.instances.length > 0); this.computeWorldMatrix(); var a = this.material || r.defaultMaterial; if (a) if (a._storeEffectOnSubMeshes) for (var s = 0, c = this.subMeshes; s < c.length; s++) { var l = (m = c[s]).getMaterial(); if (l) if (l._storeEffectOnSubMeshes) { if (!l.isReadyForSubMesh(this, m, o)) return !1; } else if (!l.isReady(this, o)) return !1; } else if (!a.isReady(this, o)) return !1; for (var u = 0, h = this.lightSources; u < h.length; u++) { var d = h[u].getShadowGenerator(); if (d) for (var p = 0, f = this.subMeshes; p < f.length; p++) { var m = f[p]; if (!d.isReady(m, o)) return !1; } } for (var g = 0, b = this._internalMeshDataInfo._LODLevels; g < b.length; g++) { var _ = b[g]; if (_.mesh && !_.mesh.isReady(o)) return !1; } return !0; }), Object.defineProperty(t.prototype, "areNormalsFrozen", { get: function () { return this._internalMeshDataInfo._areNormalsFrozen; }, enumerable: !0, configurable: !0, }), (t.prototype.freezeNormals = function () { return (this._internalMeshDataInfo._areNormalsFrozen = !0), this; }), (t.prototype.unfreezeNormals = function () { return (this._internalMeshDataInfo._areNormalsFrozen = !1), this; }), Object.defineProperty(t.prototype, "overridenInstanceCount", { set: function (e) { this._instanceDataStorage.overridenInstanceCount = e; }, enumerable: !0, configurable: !0, }), (t.prototype._preActivate = function () { var e = this._internalMeshDataInfo, t = this.getScene().getRenderId(); return e._preActivateId === t || ((e._preActivateId = t), (this._instanceDataStorage.visibleInstances = null)), this; }), (t.prototype._preActivateForIntermediateRendering = function (e) { return this._instanceDataStorage.visibleInstances && (this._instanceDataStorage.visibleInstances.intermediateDefaultRenderId = e), this; }), (t.prototype._registerInstanceForRenderId = function (e, t) { return ( this._instanceDataStorage.visibleInstances || (this._instanceDataStorage.visibleInstances = { defaultRenderId: t, selfDefaultRenderId: this._renderId }), this._instanceDataStorage.visibleInstances[t] || (this._instanceDataStorage.visibleInstances[t] = new Array()), this._instanceDataStorage.visibleInstances[t].push(e), this ); }), (t.prototype.refreshBoundingInfo = function (e) { if ((void 0 === e && (e = !1), this._boundingInfo && this._boundingInfo.isLocked)) return this; var t = this.geometry ? this.geometry.boundingBias : null; return this._refreshBoundingInfo(this._getPositionData(e), t), this; }), (t.prototype._createGlobalSubMesh = function (e) { var t = this.getTotalVertices(); if (!t || !this.getIndices()) return null; if (this.subMeshes && this.subMeshes.length > 0) { var n = this.getIndices(); if (!n) return null; var i = n.length, r = !1; if (e) r = !0; else for (var o = 0, a = this.subMeshes; o < a.length; o++) { var s = a[o]; if (s.indexStart + s.indexCount >= i) { r = !0; break; } if (s.verticesStart + s.verticesCount >= t) { r = !0; break; } } if (!r) return this.subMeshes[0]; } return this.releaseSubMeshes(), new m.b(0, 0, t, 0, this.getTotalIndices(), this); }), (t.prototype.subdivide = function (e) { if (!(e < 1)) { for (var t = this.getTotalIndices(), n = (t / e) | 0, i = 0; n % 3 != 0; ) n++; this.releaseSubMeshes(); for (var r = 0; r < e && !(i >= t); r++) m.b.CreateFromIndices(0, i, Math.min(n, t - i), this), (i += n); this.synchronizeInstances(); } }), (t.prototype.setVerticesData = function (e, t, n, i) { if ((void 0 === n && (n = !1), this._geometry)) this._geometry.setVerticesData(e, t, n, i); else { var r = new d.a(); r.set(t, e); var o = this.getScene(); new p.a(p.a.RandomId(), o, r, n, this); } return this; }), (t.prototype.removeVerticesData = function (e) { this._geometry && this._geometry.removeVerticesData(e); }), (t.prototype.markVerticesDataAsUpdatable = function (e, t) { void 0 === t && (t = !0); var n = this.getVertexBuffer(e); n && n.isUpdatable() !== t && this.setVerticesData(e, this.getVerticesData(e), t); }), (t.prototype.setVerticesBuffer = function (e) { return this._geometry || (this._geometry = p.a.CreateGeometryForMesh(this)), this._geometry.setVerticesBuffer(e), this; }), (t.prototype.updateVerticesData = function (e, t, n, i) { return this._geometry ? (i ? (this.makeGeometryUnique(), this.updateVerticesData(e, t, n, !1)) : this._geometry.updateVerticesData(e, t, n), this) : this; }), (t.prototype.updateMeshPositions = function (e, t) { void 0 === t && (t = !0); var n = this.getVerticesData(h.b.PositionKind); if (!n) return this; if ((e(n), this.updateVerticesData(h.b.PositionKind, n, !1, !1), t)) { var i = this.getIndices(), r = this.getVerticesData(h.b.NormalKind); if (!r) return this; d.a.ComputeNormals(n, i, r), this.updateVerticesData(h.b.NormalKind, r, !1, !1); } return this; }), (t.prototype.makeGeometryUnique = function () { if (!this._geometry) return this; var e = this._geometry, t = this._geometry.copy(p.a.RandomId()); return e.releaseForMesh(this, !0), t.applyToMesh(this), this; }), (t.prototype.setIndices = function (e, t, n) { if ((void 0 === t && (t = null), void 0 === n && (n = !1), this._geometry)) this._geometry.setIndices(e, t, n); else { var i = new d.a(); i.indices = e; var r = this.getScene(); new p.a(p.a.RandomId(), r, i, n, this); } return this; }), (t.prototype.updateIndices = function (e, t, n) { return void 0 === n && (n = !1), this._geometry ? (this._geometry.updateIndices(e, t, n), this) : this; }), (t.prototype.toLeftHanded = function () { return this._geometry ? (this._geometry.toLeftHanded(), this) : this; }), (t.prototype._bind = function (e, t, n) { if (!this._geometry) return this; var i, r = this.getScene().getEngine(); if (this._unIndexed) i = null; else switch (n) { case b.a.PointFillMode: i = null; break; case b.a.WireFrameFillMode: i = e._getLinesIndexBuffer(this.getIndices(), r); break; default: case b.a.TriangleFillMode: i = this._geometry.getIndexBuffer(); } return this._geometry._bind(t, i), this; }), (t.prototype._draw = function (e, t, n) { if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) return this; this._internalMeshDataInfo._onBeforeDrawObservable && this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this); var i = this.getScene().getEngine(); return ( this._unIndexed || t == b.a.PointFillMode ? i.drawArraysType(t, e.verticesStart, e.verticesCount, n) : t == b.a.WireFrameFillMode ? i.drawElementsType(t, 0, e._linesIndexCount, n) : i.drawElementsType(t, e.indexStart, e.indexCount, n), this ); }), (t.prototype.registerBeforeRender = function (e) { return this.onBeforeRenderObservable.add(e), this; }), (t.prototype.unregisterBeforeRender = function (e) { return this.onBeforeRenderObservable.removeCallback(e), this; }), (t.prototype.registerAfterRender = function (e) { return this.onAfterRenderObservable.add(e), this; }), (t.prototype.unregisterAfterRender = function (e) { return this.onAfterRenderObservable.removeCallback(e), this; }), (t.prototype._getInstancesRenderList = function (e, t) { if ((void 0 === t && (t = !1), this._instanceDataStorage.isFrozen && this._instanceDataStorage.previousBatch)) return this._instanceDataStorage.previousBatch; var n = this.getScene(), i = n._isInIntermediateRendering(), r = i ? this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate : this._internalAbstractMeshDataInfo._onlyForInstances, o = this._instanceDataStorage.batchCache; if (((o.mustReturn = !1), (o.renderSelf[e] = t || (!r && this.isEnabled() && this.isVisible)), (o.visibleInstances[e] = null), this._instanceDataStorage.visibleInstances && !t)) { var a = this._instanceDataStorage.visibleInstances, s = n.getRenderId(), c = i ? a.intermediateDefaultRenderId : a.defaultRenderId; (o.visibleInstances[e] = a[s]), !o.visibleInstances[e] && c && (o.visibleInstances[e] = a[c]); } return ( (o.hardwareInstancedRendering[e] = !t && this._instanceDataStorage.hardwareInstancedRendering && null !== o.visibleInstances[e] && void 0 !== o.visibleInstances[e]), (this._instanceDataStorage.previousBatch = o), o ); }), (t.prototype._renderWithInstances = function (e, t, n, i, r) { var o = n.visibleInstances[e._id]; if (!o) return this; for (var a = this._instanceDataStorage, s = a.instancesBufferSize, c = a.instancesBuffer, l = 16 * (o.length + 1) * 4; a.instancesBufferSize < l; ) a.instancesBufferSize *= 2; (a.instancesData && s == a.instancesBufferSize) || (a.instancesData = new Float32Array(a.instancesBufferSize / 4)); var u = 0, d = 0, p = n.renderSelf[e._id]; if (this._instanceDataStorage.manualUpdate) d = (p ? 1 : 0) + o.length; else { var f = this._effectiveMesh.getWorldMatrix(); if ((p && (f.copyToArray(a.instancesData, u), (u += 16), d++), o)) for (var m = 0; m < o.length; m++) { o[m].getWorldMatrix().copyToArray(a.instancesData, u), (u += 16), d++; } } return ( c && s == a.instancesBufferSize ? c.updateDirectly(a.instancesData, 0, d) : (c && c.dispose(), (c = new h.a(r, a.instancesData, !0, 16, !1, !0)), (a.instancesBuffer = c), this.setVerticesBuffer(c.createVertexBuffer("world0", 0, 4)), this.setVerticesBuffer(c.createVertexBuffer("world1", 4, 4)), this.setVerticesBuffer(c.createVertexBuffer("world2", 8, 4)), this.setVerticesBuffer(c.createVertexBuffer("world3", 12, 4))), this._processInstancedBuffers(o, p), this.getScene()._activeIndices.addCount(e.indexCount * d, !1), this._bind(e, i, t), this._draw(e, t, d), r.unbindInstanceAttributes(), this ); }), (t.prototype._processInstancedBuffers = function (e, t) {}), (t.prototype._processRendering = function (e, t, n, i, r, o, a) { var s = this.getScene(), c = s.getEngine(); if (r) this._renderWithInstances(e, n, i, t, c); else { var l = 0; i.renderSelf[e._id] && (o && o(!1, this._effectiveMesh.getWorldMatrix(), a), l++, this._draw(e, n, this._instanceDataStorage.overridenInstanceCount)); var u = i.visibleInstances[e._id]; if (u) { var h = u.length; l += h; for (var d = 0; d < h; d++) { var p = u[d].getWorldMatrix(); o && o(!0, p, a), this._draw(e, n); } } s._activeIndices.addCount(e.indexCount * l, !1); } return this; }), (t.prototype._rebuild = function () { this._instanceDataStorage.instancesBuffer && (this._instanceDataStorage.instancesBuffer.dispose(), (this._instanceDataStorage.instancesBuffer = null)), e.prototype._rebuild.call(this); }), (t.prototype._freeze = function () { if (this.subMeshes) { for (var e = 0; e < this.subMeshes.length; e++) this._getInstancesRenderList(e); (this._effectiveMaterial = null), (this._instanceDataStorage.isFrozen = !0); } }), (t.prototype._unFreeze = function () { (this._instanceDataStorage.isFrozen = !1), (this._instanceDataStorage.previousBatch = null); }), (t.prototype.render = function (e, t, n) { var i = this.getScene(); if ((this._internalAbstractMeshDataInfo._isActiveIntermediate ? (this._internalAbstractMeshDataInfo._isActiveIntermediate = !1) : (this._internalAbstractMeshDataInfo._isActive = !1), this._checkOcclusionQuery())) return this; var r = this._getInstancesRenderList(e._id, !!n); if (r.mustReturn) return this; if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) return this; this._internalMeshDataInfo._onBeforeRenderObservable && this._internalMeshDataInfo._onBeforeRenderObservable.notifyObservers(this); var o, a = i.getEngine(), s = r.hardwareInstancedRendering[e._id], c = this._instanceDataStorage, l = e.getMaterial(); if (!l) return this; if (!c.isFrozen || !this._effectiveMaterial || this._effectiveMaterial !== l) { if (l._storeEffectOnSubMeshes) { if (!l.isReadyForSubMesh(this, e, s)) return this; } else if (!l.isReady(this, s)) return this; this._effectiveMaterial = l; } t && a.setAlphaMode(this._effectiveMaterial.alphaMode); for (var u = 0, h = i._beforeRenderingMeshStage; u < h.length; u++) { h[u].action(this, e, r); } if (!(o = this._effectiveMaterial._storeEffectOnSubMeshes ? e.effect : this._effectiveMaterial.getEffect())) return this; var d, p = n || this._effectiveMesh; if (!c.isFrozen && this._effectiveMaterial.backFaceCulling) { var f = p._getWorldMatrixDeterminant(); null == (d = this.overrideMaterialSideOrientation) && (d = this._effectiveMaterial.sideOrientation), f < 0 && (d = d === b.a.ClockWiseSideOrientation ? b.a.CounterClockWiseSideOrientation : b.a.ClockWiseSideOrientation), (c.sideOrientation = d); } else d = c.sideOrientation; var m = this._effectiveMaterial._preBind(o, d); this._effectiveMaterial.forceDepthWrite && a.setDepthWrite(!0); var g = i.forcePointsCloud ? b.a.PointFillMode : i.forceWireframe ? b.a.WireFrameFillMode : this._effectiveMaterial.fillMode; this._internalMeshDataInfo._onBeforeBindObservable && this._internalMeshDataInfo._onBeforeBindObservable.notifyObservers(this), s || this._bind(e, o, g); var _ = p.getWorldMatrix(); this._effectiveMaterial._storeEffectOnSubMeshes ? this._effectiveMaterial.bindForSubMesh(_, this, e) : this._effectiveMaterial.bind(_, this), !this._effectiveMaterial.backFaceCulling && this._effectiveMaterial.separateCullingPass && (a.setState(!0, this._effectiveMaterial.zOffset, !1, !m), this._processRendering(e, o, g, r, s, this._onBeforeDraw, this._effectiveMaterial), a.setState(!0, this._effectiveMaterial.zOffset, !1, m)), this._processRendering(e, o, g, r, s, this._onBeforeDraw, this._effectiveMaterial), this._effectiveMaterial.unbind(); for (var v = 0, y = i._afterRenderingMeshStage; v < y.length; v++) { y[v].action(this, e, r); } return this._internalMeshDataInfo._onAfterRenderObservable && this._internalMeshDataInfo._onAfterRenderObservable.notifyObservers(this), this; }), (t.prototype._onBeforeDraw = function (e, t, n) { e && n && n.bindOnlyWorldMatrix(t); }), (t.prototype.cleanMatrixWeights = function () { this.isVerticesDataPresent(h.b.MatricesWeightsKind) && (this.isVerticesDataPresent(h.b.MatricesWeightsExtraKind) ? this.normalizeSkinWeightsAndExtra() : this.normalizeSkinFourWeights()); }), (t.prototype.normalizeSkinFourWeights = function () { for (var e = this.getVerticesData(h.b.MatricesWeightsKind), t = e.length, n = 0; n < t; n += 4) { var i = e[n] + e[n + 1] + e[n + 2] + e[n + 3]; if (0 === i) e[n] = 1; else { var r = 1 / i; (e[n] *= r), (e[n + 1] *= r), (e[n + 2] *= r), (e[n + 3] *= r); } } this.setVerticesData(h.b.MatricesWeightsKind, e); }), (t.prototype.normalizeSkinWeightsAndExtra = function () { for (var e = this.getVerticesData(h.b.MatricesWeightsExtraKind), t = this.getVerticesData(h.b.MatricesWeightsKind), n = t.length, i = 0; i < n; i += 4) { var r = t[i] + t[i + 1] + t[i + 2] + t[i + 3]; if (0 === (r += e[i] + e[i + 1] + e[i + 2] + e[i + 3])) t[i] = 1; else { var o = 1 / r; (t[i] *= o), (t[i + 1] *= o), (t[i + 2] *= o), (t[i + 3] *= o), (e[i] *= o), (e[i + 1] *= o), (e[i + 2] *= o), (e[i + 3] *= o); } } this.setVerticesData(h.b.MatricesWeightsKind, t), this.setVerticesData(h.b.MatricesWeightsKind, e); }), (t.prototype.validateSkinning = function () { var e = this.getVerticesData(h.b.MatricesWeightsExtraKind), t = this.getVerticesData(h.b.MatricesWeightsKind); if (null === t || null == this.skeleton) return { skinned: !1, valid: !0, report: "not skinned" }; for (var n = t.length, i = 0, r = 0, o = 0, a = 0, s = null === e ? 4 : 8, c = new Array(), l = 0; l <= s; l++) c[l] = 0; for (l = 0; l < n; l += 4) { for (var u = t[l], d = u, p = 0 === d ? 0 : 1, f = 1; f < s; f++) { var m = f < 4 ? t[l + f] : e[l + f - 4]; m > u && i++, 0 !== m && p++, (d += m), (u = m); } if ((c[p]++, p > o && (o = p), 0 === d)) r++; else { var g = 1 / d, b = 0; for (f = 0; f < s; f++) b += f < 4 ? Math.abs(t[l + f] - t[l + f] * g) : Math.abs(e[l + f - 4] - e[l + f - 4] * g); b > 0.001 && a++; } } var _ = this.skeleton.bones.length, v = this.getVerticesData(h.b.MatricesIndicesKind), y = this.getVerticesData(h.b.MatricesIndicesExtraKind), C = 0; for (l = 0; l < n; l++) for (f = 0; f < s; f++) { var P = f < 4 ? v[f] : y[f - 4]; (P >= _ || P < 0) && C++; } return { skinned: !0, valid: 0 === r && 0 === a && 0 === C, report: "Number of Weights = " + n / 4 + "\nMaximum influences = " + o + "\nMissing Weights = " + r + "\nNot Sorted = " + i + "\nNot Normalized = " + a + "\nWeightCounts = [" + c + "]\nNumber of bones = " + _ + "\nBad Bone Indices = " + C, }; }), (t.prototype._checkDelayState = function () { var e = this.getScene(); return this._geometry ? this._geometry.load(e) : 4 === this.delayLoadState && ((this.delayLoadState = 2), this._queueLoad(e)), this; }), (t.prototype._queueLoad = function (e) { var t = this; e._addPendingData(this); var n = -1 !== this.delayLoadingFile.indexOf(".babylonbinarymeshdata"); return ( o.b.LoadFile( this.delayLoadingFile, function (n) { n instanceof ArrayBuffer ? t._delayLoadingFunction(n, t) : t._delayLoadingFunction(JSON.parse(n), t), t.instances.forEach(function (e) { e.refreshBoundingInfo(), e._syncSubMeshes(); }), (t.delayLoadState = 1), e._removePendingData(t); }, function () {}, e.offlineProvider, n ), this ); }), (t.prototype.isInFrustum = function (t) { return 2 !== this.delayLoadState && !!e.prototype.isInFrustum.call(this, t) && (this._checkDelayState(), !0); }), (t.prototype.setMaterialByID = function (e) { var t, n = this.getScene().materials; for (t = n.length - 1; t > -1; t--) if (n[t].id === e) return (this.material = n[t]), this; var i = this.getScene().multiMaterials; for (t = i.length - 1; t > -1; t--) if (i[t].id === e) return (this.material = i[t]), this; return this; }), (t.prototype.getAnimatables = function () { var e = new Array(); return this.material && e.push(this.material), this.skeleton && e.push(this.skeleton), e; }), (t.prototype.bakeTransformIntoVertices = function (e) { if (!this.isVerticesDataPresent(h.b.PositionKind)) return this; var t = this.subMeshes.splice(0); this._resetPointsArrayCache(); var n, i = this.getVerticesData(h.b.PositionKind), r = new Array(); for (n = 0; n < i.length; n += 3) c.e.TransformCoordinates(c.e.FromArray(i, n), e).toArray(r, n); if ((this.setVerticesData(h.b.PositionKind, r, this.getVertexBuffer(h.b.PositionKind).isUpdatable()), this.isVerticesDataPresent(h.b.NormalKind))) { for (i = this.getVerticesData(h.b.NormalKind), r = [], n = 0; n < i.length; n += 3) c.e.TransformNormal(c.e.FromArray(i, n), e).normalize().toArray(r, n); this.setVerticesData(h.b.NormalKind, r, this.getVertexBuffer(h.b.NormalKind).isUpdatable()); } return e.m[0] * e.m[5] * e.m[10] < 0 && this.flipFaces(), this.releaseSubMeshes(), (this.subMeshes = t), this; }), (t.prototype.bakeCurrentTransformIntoVertices = function (e) { return void 0 === e && (e = !0), this.bakeTransformIntoVertices(this.computeWorldMatrix(!0)), this.resetLocalMatrix(e), this; }), Object.defineProperty(t.prototype, "_positions", { get: function () { return this._geometry ? this._geometry._positions : null; }, enumerable: !0, configurable: !0, }), (t.prototype._resetPointsArrayCache = function () { return this._geometry && this._geometry._resetPointsArrayCache(), this; }), (t.prototype._generatePointsArray = function () { return !!this._geometry && this._geometry._generatePointsArray(); }), (t.prototype.clone = function (e, n, i, r) { return void 0 === e && (e = ""), void 0 === n && (n = null), void 0 === r && (r = !0), new t(e, this.getScene(), n, this, i, r); }), (t.prototype.dispose = function (t, n) { void 0 === n && (n = !1), (this.morphTargetManager = null), this._geometry && this._geometry.releaseForMesh(this, !0); var i = this._internalMeshDataInfo; if ( (i._onBeforeDrawObservable && i._onBeforeDrawObservable.clear(), i._onBeforeBindObservable && i._onBeforeBindObservable.clear(), i._onBeforeRenderObservable && i._onBeforeRenderObservable.clear(), i._onAfterRenderObservable && i._onAfterRenderObservable.clear(), this._scene.useClonedMeshMap) ) { if (i.meshMap) for (var r in i.meshMap) { (s = i.meshMap[r]) && ((s._internalMeshDataInfo._source = null), (i.meshMap[r] = void 0)); } i._source && i._source._internalMeshDataInfo.meshMap && (i._source._internalMeshDataInfo.meshMap[this.uniqueId] = void 0); } else for (var o = 0, a = this.getScene().meshes; o < a.length; o++) { var s; (s = a[o])._internalMeshDataInfo && s._internalMeshDataInfo._source && s._internalMeshDataInfo._source === this && (s._internalMeshDataInfo._source = null); } (i._source = null), this._disposeInstanceSpecificData(), e.prototype.dispose.call(this, t, n); }), (t.prototype._disposeInstanceSpecificData = function () {}), (t.prototype.applyDisplacementMap = function (e, t, n, i, r, a, s) { var c = this; void 0 === s && (s = !1); var l = this.getScene(); return ( o.b.LoadImage( e, function (e) { var o = e.width, l = e.height, u = O.a.CreateCanvas(o, l).getContext("2d"); u.drawImage(e, 0, 0); var h = u.getImageData(0, 0, o, l).data; c.applyDisplacementMapFromBuffer(h, o, l, t, n, r, a, s), i && i(c); }, function () {}, l.offlineProvider ), this ); }), (t.prototype.applyDisplacementMapFromBuffer = function (e, t, n, i, r, o, a, s) { if ((void 0 === s && (s = !1), !this.isVerticesDataPresent(h.b.PositionKind) || !this.isVerticesDataPresent(h.b.NormalKind) || !this.isVerticesDataPresent(h.b.UVKind))) return C.a.Warn("Cannot call applyDisplacementMap: Given mesh is not complete. Position, Normal or UV are missing"), this; var l = this.getVerticesData(h.b.PositionKind, !0, !0), u = this.getVerticesData(h.b.NormalKind), p = this.getVerticesData(h.b.UVKind), f = c.e.Zero(), m = c.e.Zero(), g = c.d.Zero(); (o = o || c.d.Zero()), (a = a || new c.d(1, 1)); for (var b = 0; b < l.length; b += 3) { c.e.FromArrayToRef(l, b, f), c.e.FromArrayToRef(u, b, m), c.d.FromArrayToRef(p, (b / 3) * 2, g); var _ = 4 * (((Math.abs(g.x * a.x + o.x) * t) % t | 0) + ((Math.abs(g.y * a.y + o.y) * n) % n | 0) * t), v = 0.3 * (e[_] / 255) + 0.59 * (e[_ + 1] / 255) + 0.11 * (e[_ + 2] / 255); m.normalize(), m.scaleInPlace(i + (r - i) * v), (f = f.add(m)).toArray(l, b); } return ( d.a.ComputeNormals(l, this.getIndices(), u), s ? (this.setVerticesData(h.b.PositionKind, l), this.setVerticesData(h.b.NormalKind, u)) : (this.updateVerticesData(h.b.PositionKind, l), this.updateVerticesData(h.b.NormalKind, u)), this ); }), (t.prototype.convertToFlatShadedMesh = function () { var e, t, n = this.getVerticesDataKinds(), i = {}, r = {}, o = {}, a = !1; for (e = 0; e < n.length; e++) { t = n[e]; var s = this.getVertexBuffer(t); t !== h.b.NormalKind ? ((i[t] = s), (r[t] = i[t].getData()), (o[t] = [])) : ((a = s.isUpdatable()), n.splice(e, 1), e--); } var l, u = this.subMeshes.slice(0), d = this.getIndices(), p = this.getTotalIndices(); for (l = 0; l < p; l++) { var f = d[l]; for (e = 0; e < n.length; e++) for (var g = i[(t = n[e])].getStrideSize(), b = 0; b < g; b++) o[t].push(r[t][f * g + b]); } var _ = [], v = o[h.b.PositionKind]; for (l = 0; l < p; l += 3) { (d[l] = l), (d[l + 1] = l + 1), (d[l + 2] = l + 2); for (var y = c.e.FromArray(v, 3 * l), C = c.e.FromArray(v, 3 * (l + 1)), P = c.e.FromArray(v, 3 * (l + 2)), x = y.subtract(C), T = P.subtract(C), S = c.e.Normalize(c.e.Cross(x, T)), O = 0; O < 3; O++) _.push(S.x), _.push(S.y), _.push(S.z); } for (this.setIndices(d), this.setVerticesData(h.b.NormalKind, _, a), e = 0; e < n.length; e++) (t = n[e]), this.setVerticesData(t, o[t], i[t].isUpdatable()); this.releaseSubMeshes(); for (var E = 0; E < u.length; E++) { var M = u[E]; m.b.AddToMesh(M.materialIndex, M.indexStart, M.indexCount, M.indexStart, M.indexCount, this); } return this.synchronizeInstances(), this; }), (t.prototype.convertToUnIndexedMesh = function () { var e, t, n = this.getVerticesDataKinds(), i = {}, r = {}, o = {}; for (e = 0; e < n.length; e++) { t = n[e]; var a = this.getVertexBuffer(t); (i[t] = a), (r[t] = i[t].getData()), (o[t] = []); } var s, c = this.subMeshes.slice(0), l = this.getIndices(), u = this.getTotalIndices(); for (s = 0; s < u; s++) { var h = l[s]; for (e = 0; e < n.length; e++) for (var d = i[(t = n[e])].getStrideSize(), p = 0; p < d; p++) o[t].push(r[t][h * d + p]); } for (s = 0; s < u; s += 3) (l[s] = s), (l[s + 1] = s + 1), (l[s + 2] = s + 2); for (this.setIndices(l), e = 0; e < n.length; e++) (t = n[e]), this.setVerticesData(t, o[t], i[t].isUpdatable()); this.releaseSubMeshes(); for (var f = 0; f < c.length; f++) { var g = c[f]; m.b.AddToMesh(g.materialIndex, g.indexStart, g.indexCount, g.indexStart, g.indexCount, this); } return (this._unIndexed = !0), this.synchronizeInstances(), this; }), (t.prototype.flipFaces = function (e) { void 0 === e && (e = !1); var t, n, i = d.a.ExtractFromMesh(this); if (e && this.isVerticesDataPresent(h.b.NormalKind) && i.normals) for (t = 0; t < i.normals.length; t++) i.normals[t] *= -1; if (i.indices) for (t = 0; t < i.indices.length; t += 3) (n = i.indices[t + 1]), (i.indices[t + 1] = i.indices[t + 2]), (i.indices[t + 2] = n); return i.applyToMesh(this, this.isVertexBufferUpdatable(h.b.PositionKind)), this; }), (t.prototype.increaseVertices = function (e) { var t = d.a.ExtractFromMesh(this), n = t.uvs, i = t.indices, r = t.positions, o = t.normals; if (null === i || null === r || null === o || null === n) C.a.Warn("VertexData contains null entries"); else { for (var a, s, l = e + 1, u = new Array(), p = 0; p < l + 1; p++) u[p] = new Array(); var f, m = new c.e(0, 0, 0), g = new c.e(0, 0, 0), b = new c.d(0, 0), _ = new Array(), v = new Array(), y = new Array(), P = r.length, x = n.length; for (p = 0; p < i.length; p += 3) { (v[0] = i[p]), (v[1] = i[p + 1]), (v[2] = i[p + 2]); for (var T = 0; T < 3; T++) if ( ((a = v[T]), (s = v[(T + 1) % 3]), void 0 === y[a] && void 0 === y[s] ? ((y[a] = new Array()), (y[s] = new Array())) : (void 0 === y[a] && (y[a] = new Array()), void 0 === y[s] && (y[s] = new Array())), void 0 === y[a][s] && void 0 === y[s][a]) ) { (y[a][s] = []), (m.x = (r[3 * s] - r[3 * a]) / l), (m.y = (r[3 * s + 1] - r[3 * a + 1]) / l), (m.z = (r[3 * s + 2] - r[3 * a + 2]) / l), (g.x = (o[3 * s] - o[3 * a]) / l), (g.y = (o[3 * s + 1] - o[3 * a + 1]) / l), (g.z = (o[3 * s + 2] - o[3 * a + 2]) / l), (b.x = (n[2 * s] - n[2 * a]) / l), (b.y = (n[2 * s + 1] - n[2 * a + 1]) / l), y[a][s].push(a); for (var S = 1; S < l; S++) y[a][s].push(r.length / 3), (r[P] = r[3 * a] + S * m.x), (o[P++] = o[3 * a] + S * g.x), (r[P] = r[3 * a + 1] + S * m.y), (o[P++] = o[3 * a + 1] + S * g.y), (r[P] = r[3 * a + 2] + S * m.z), (o[P++] = o[3 * a + 2] + S * g.z), (n[x++] = n[2 * a] + S * b.x), (n[x++] = n[2 * a + 1] + S * b.y); y[a][s].push(s), (y[s][a] = new Array()), (f = y[a][s].length); for (var O = 0; O < f; O++) y[s][a][O] = y[a][s][f - 1 - O]; } (u[0][0] = i[p]), (u[1][0] = y[i[p]][i[p + 1]][1]), (u[1][1] = y[i[p]][i[p + 2]][1]); for (S = 2; S < l; S++) { (u[S][0] = y[i[p]][i[p + 1]][S]), (u[S][S] = y[i[p]][i[p + 2]][S]), (m.x = (r[3 * u[S][S]] - r[3 * u[S][0]]) / S), (m.y = (r[3 * u[S][S] + 1] - r[3 * u[S][0] + 1]) / S), (m.z = (r[3 * u[S][S] + 2] - r[3 * u[S][0] + 2]) / S), (g.x = (o[3 * u[S][S]] - o[3 * u[S][0]]) / S), (g.y = (o[3 * u[S][S] + 1] - o[3 * u[S][0] + 1]) / S), (g.z = (o[3 * u[S][S] + 2] - o[3 * u[S][0] + 2]) / S), (b.x = (n[2 * u[S][S]] - n[2 * u[S][0]]) / S), (b.y = (n[2 * u[S][S] + 1] - n[2 * u[S][0] + 1]) / S); for (T = 1; T < S; T++) (u[S][T] = r.length / 3), (r[P] = r[3 * u[S][0]] + T * m.x), (o[P++] = o[3 * u[S][0]] + T * g.x), (r[P] = r[3 * u[S][0] + 1] + T * m.y), (o[P++] = o[3 * u[S][0] + 1] + T * g.y), (r[P] = r[3 * u[S][0] + 2] + T * m.z), (o[P++] = o[3 * u[S][0] + 2] + T * g.z), (n[x++] = n[2 * u[S][0]] + T * b.x), (n[x++] = n[2 * u[S][0] + 1] + T * b.y); } (u[l] = y[i[p + 1]][i[p + 2]]), _.push(u[0][0], u[1][0], u[1][1]); for (S = 1; S < l; S++) { for (T = 0; T < S; T++) _.push(u[S][T], u[S + 1][T], u[S + 1][T + 1]), _.push(u[S][T], u[S + 1][T + 1], u[S][T + 1]); _.push(u[S][T], u[S + 1][T], u[S + 1][T + 1]); } } (t.indices = _), t.applyToMesh(this, this.isVertexBufferUpdatable(h.b.PositionKind)); } }), (t.prototype.forceSharedVertices = function () { var e = d.a.ExtractFromMesh(this), t = e.uvs, n = e.indices, i = e.positions, r = e.colors; if (void 0 === n || void 0 === i || null === n || null === i) C.a.Warn("VertexData contains empty entries"); else { for (var o, a, s = new Array(), c = new Array(), l = new Array(), u = new Array(), p = new Array(), f = 0, m = new Array(), g = 0; g < n.length; g += 3) { (a = [n[g], n[g + 1], n[g + 2]]), (p = new Array()); for (var b = 0; b < 3; b++) { p[b] = ""; for (var _ = 0; _ < 3; _++) Math.abs(i[3 * a[b] + _]) < 1e-8 && (i[3 * a[b] + _] = 0), (p[b] += i[3 * a[b] + _] + "|"); p[b] = p[b].slice(0, -1); } if (p[0] != p[1] && p[0] != p[2] && p[1] != p[2]) for (b = 0; b < 3; b++) { if ((o = m.indexOf(p[b])) < 0) { m.push(p[b]), (o = f++); for (_ = 0; _ < 3; _++) s.push(i[3 * a[b] + _]); if (null != r) for (_ = 0; _ < 4; _++) u.push(r[4 * a[b] + _]); if (null != t) for (_ = 0; _ < 2; _++) l.push(t[2 * a[b] + _]); } c.push(o); } } var v = new Array(); d.a.ComputeNormals(s, c, v), (e.positions = s), (e.indices = c), (e.normals = v), null != t && (e.uvs = l), null != r && (e.colors = u), e.applyToMesh(this, this.isVertexBufferUpdatable(h.b.PositionKind)); } }), (t._instancedMeshFactory = function (e, t) { throw x.a.WarnImport("InstancedMesh"); }), (t._PhysicsImpostorParser = function (e, t, n) { throw x.a.WarnImport("PhysicsImpostor"); }), (t.prototype.createInstance = function (e) { return t._instancedMeshFactory(e, this); }), (t.prototype.synchronizeInstances = function () { for (var e = 0; e < this.instances.length; e++) { this.instances[e]._syncSubMeshes(); } return this; }), (t.prototype.optimizeIndices = function (e) { var t = this, n = this.getIndices(), i = this.getVerticesData(h.b.PositionKind); if (!i || !n) return this; for (var r = new Array(), a = 0; a < i.length; a += 3) r.push(c.e.FromArray(i, a)); var s = new Array(); return ( o.a.SyncAsyncForLoop( r.length, 40, function (e) { for (var t = r.length - 1 - e, n = r[t], i = 0; i < t; ++i) { var o = r[i]; if (n.equals(o)) { s[t] = i; break; } } }, function () { for (var i = 0; i < n.length; ++i) n[i] = s[n[i]] || n[i]; var r = t.subMeshes.slice(0); t.setIndices(n), (t.subMeshes = r), e && e(t); } ), this ); }), (t.prototype.serialize = function (e) { (e.name = this.name), (e.id = this.id), (e.type = this.getClassName()), s.a && s.a.HasTags(this) && (e.tags = s.a.GetTags(this)), (e.position = this.position.asArray()), this.rotationQuaternion ? (e.rotationQuaternion = this.rotationQuaternion.asArray()) : this.rotation && (e.rotation = this.rotation.asArray()), (e.scaling = this.scaling.asArray()), this._postMultiplyPivotMatrix ? (e.pivotMatrix = this.getPivotMatrix().asArray()) : (e.localMatrix = this.getPivotMatrix().asArray()), (e.isEnabled = this.isEnabled(!1)), (e.isVisible = this.isVisible), (e.infiniteDistance = this.infiniteDistance), (e.pickable = this.isPickable), (e.receiveShadows = this.receiveShadows), (e.billboardMode = this.billboardMode), (e.visibility = this.visibility), (e.checkCollisions = this.checkCollisions), (e.isBlocker = this.isBlocker), (e.overrideMaterialSideOrientation = this.overrideMaterialSideOrientation), this.parent && (e.parentId = this.parent.id), (e.isUnIndexed = this.isUnIndexed); var t = this._geometry; if (t) { var n = t.id; (e.geometryId = n), (e.subMeshes = []); for (var i = 0; i < this.subMeshes.length; i++) { var r = this.subMeshes[i]; e.subMeshes.push({ materialIndex: r.materialIndex, verticesStart: r.verticesStart, verticesCount: r.verticesCount, indexStart: r.indexStart, indexCount: r.indexCount }); } } if ( (this.material ? this.material.doNotSerialize || (e.materialId = this.material.id) : (this.material = null), this.morphTargetManager && (e.morphTargetManagerId = this.morphTargetManager.uniqueId), this.skeleton && (e.skeletonId = this.skeleton.id), this.getScene()._getComponent(T.a.NAME_PHYSICSENGINE)) ) { var o = this.getPhysicsImpostor(); o && ((e.physicsMass = o.getParam("mass")), (e.physicsFriction = o.getParam("friction")), (e.physicsRestitution = o.getParam("mass")), (e.physicsImpostor = o.type)); } this.metadata && (e.metadata = this.metadata), (e.instances = []); for (var a = 0; a < this.instances.length; a++) { var c = this.instances[a]; if (!c.doNotSerialize) { var l = { name: c.name, id: c.id, position: c.position.asArray(), scaling: c.scaling.asArray() }; c.parent && (l.parentId = c.parent.id), c.rotationQuaternion ? (l.rotationQuaternion = c.rotationQuaternion.asArray()) : c.rotation && (l.rotation = c.rotation.asArray()), e.instances.push(l), y.a.AppendSerializedAnimations(c, l), (l.ranges = c.serializeAnimationRanges()); } } y.a.AppendSerializedAnimations(this, e), (e.ranges = this.serializeAnimationRanges()), (e.layerMask = this.layerMask), (e.alphaIndex = this.alphaIndex), (e.hasVertexAlpha = this.hasVertexAlpha), (e.overlayAlpha = this.overlayAlpha), (e.overlayColor = this.overlayColor.asArray()), (e.renderOverlay = this.renderOverlay), (e.applyFog = this.applyFog), this.actionManager && (e.actions = this.actionManager.serialize(this.name)); }), (t.prototype._syncGeometryWithMorphTargetManager = function () { if (this.geometry) { this._markSubMeshesAsAttributesDirty(); var e = this._internalMeshDataInfo._morphTargetManager; if (e && e.vertexCount) { if (e.vertexCount !== this.getTotalVertices()) return C.a.Error("Mesh is incompatible with morph targets. Targets and mesh must all have the same vertices count."), void (this.morphTargetManager = null); for (var t = 0; t < e.numInfluencers; t++) { var n = e.getActiveTarget(t), i = n.getPositions(); if (!i) return void C.a.Error("Invalid morph target. Target must have positions."); this.geometry.setVerticesData(h.b.PositionKind + t, i, !1, 3); var r = n.getNormals(); r && this.geometry.setVerticesData(h.b.NormalKind + t, r, !1, 3); var o = n.getTangents(); o && this.geometry.setVerticesData(h.b.TangentKind + t, o, !1, 3); var a = n.getUVs(); a && this.geometry.setVerticesData(h.b.UVKind + "_" + t, a, !1, 2); } } else for (t = 0; this.geometry.isVerticesDataPresent(h.b.PositionKind + t); ) this.geometry.removeVerticesData(h.b.PositionKind + t), this.geometry.isVerticesDataPresent(h.b.NormalKind + t) && this.geometry.removeVerticesData(h.b.NormalKind + t), this.geometry.isVerticesDataPresent(h.b.TangentKind + t) && this.geometry.removeVerticesData(h.b.TangentKind + t), this.geometry.isVerticesDataPresent(h.b.UVKind + t) && this.geometry.removeVerticesData(h.b.UVKind + "_" + t), t++; } }), (t.Parse = function (e, n, i) { var r; if ( (((r = e.type && "GroundMesh" === e.type ? t._GroundMeshParser(e, n) : new t(e.name, n)).id = e.id), s.a && s.a.AddTagsTo(r, e.tags), (r.position = c.e.FromArray(e.position)), void 0 !== e.metadata && (r.metadata = e.metadata), e.rotationQuaternion ? (r.rotationQuaternion = c.b.FromArray(e.rotationQuaternion)) : e.rotation && (r.rotation = c.e.FromArray(e.rotation)), (r.scaling = c.e.FromArray(e.scaling)), e.localMatrix ? r.setPreTransformMatrix(c.a.FromArray(e.localMatrix)) : e.pivotMatrix && r.setPivotMatrix(c.a.FromArray(e.pivotMatrix)), r.setEnabled(e.isEnabled), (r.isVisible = e.isVisible), (r.infiniteDistance = e.infiniteDistance), (r.showBoundingBox = e.showBoundingBox), (r.showSubMeshesBoundingBox = e.showSubMeshesBoundingBox), void 0 !== e.applyFog && (r.applyFog = e.applyFog), void 0 !== e.pickable && (r.isPickable = e.pickable), void 0 !== e.alphaIndex && (r.alphaIndex = e.alphaIndex), (r.receiveShadows = e.receiveShadows), (r.billboardMode = e.billboardMode), void 0 !== e.visibility && (r.visibility = e.visibility), (r.checkCollisions = e.checkCollisions), (r.overrideMaterialSideOrientation = e.overrideMaterialSideOrientation), void 0 !== e.isBlocker && (r.isBlocker = e.isBlocker), (r._shouldGenerateFlatShading = e.useFlatShading), e.freezeWorldMatrix && (r._waitingData.freezeWorldMatrix = e.freezeWorldMatrix), e.parentId && (r._waitingParentId = e.parentId), void 0 !== e.actions && (r._waitingData.actions = e.actions), void 0 !== e.overlayAlpha && (r.overlayAlpha = e.overlayAlpha), void 0 !== e.overlayColor && (r.overlayColor = l.a.FromArray(e.overlayColor)), void 0 !== e.renderOverlay && (r.renderOverlay = e.renderOverlay), (r.isUnIndexed = !!e.isUnIndexed), (r.hasVertexAlpha = e.hasVertexAlpha), e.delayLoadingFile ? ((r.delayLoadState = 4), (r.delayLoadingFile = i + e.delayLoadingFile), (r._boundingInfo = new g.a(c.e.FromArray(e.boundingBoxMinimum), c.e.FromArray(e.boundingBoxMaximum))), e._binaryInfo && (r._binaryInfo = e._binaryInfo), (r._delayInfo = []), e.hasUVs && r._delayInfo.push(h.b.UVKind), e.hasUVs2 && r._delayInfo.push(h.b.UV2Kind), e.hasUVs3 && r._delayInfo.push(h.b.UV3Kind), e.hasUVs4 && r._delayInfo.push(h.b.UV4Kind), e.hasUVs5 && r._delayInfo.push(h.b.UV5Kind), e.hasUVs6 && r._delayInfo.push(h.b.UV6Kind), e.hasColors && r._delayInfo.push(h.b.ColorKind), e.hasMatricesIndices && r._delayInfo.push(h.b.MatricesIndicesKind), e.hasMatricesWeights && r._delayInfo.push(h.b.MatricesWeightsKind), (r._delayLoadingFunction = p.a._ImportGeometry), v.a.ForceFullSceneLoadingForIncremental && r._checkDelayState()) : p.a._ImportGeometry(e, r), e.materialId ? r.setMaterialByID(e.materialId) : (r.material = null), e.morphTargetManagerId > -1 && (r.morphTargetManager = n.getMorphTargetManagerById(e.morphTargetManagerId)), e.skeletonId > -1 && ((r.skeleton = n.getLastSkeletonByID(e.skeletonId)), e.numBoneInfluencers && (r.numBoneInfluencers = e.numBoneInfluencers)), e.animations) ) { for (var o = 0; o < e.animations.length; o++) { var a = e.animations[o]; (b = P.a.GetClass("BABYLON.Animation")) && r.animations.push(b.Parse(a)); } u.a.ParseAnimationRanges(r, e, n); } if ( (e.autoAnimate && n.beginAnimation(r, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), e.layerMask && !isNaN(e.layerMask) ? (r.layerMask = Math.abs(parseInt(e.layerMask))) : (r.layerMask = 268435455), e.physicsImpostor && t._PhysicsImpostorParser(n, r, e), e.lodMeshIds && (r._waitingData.lods = { ids: e.lodMeshIds, distances: e.lodDistances ? e.lodDistances : null, coverages: e.lodCoverages ? e.lodCoverages : null }), e.instances) ) for (var d = 0; d < e.instances.length; d++) { var f = e.instances[d], m = r.createInstance(f.name); if ( (f.id && (m.id = f.id), s.a && (f.tags ? s.a.AddTagsTo(m, f.tags) : s.a.AddTagsTo(m, e.tags)), (m.position = c.e.FromArray(f.position)), void 0 !== f.metadata && (m.metadata = f.metadata), f.parentId && (m._waitingParentId = f.parentId), f.rotationQuaternion ? (m.rotationQuaternion = c.b.FromArray(f.rotationQuaternion)) : f.rotation && (m.rotation = c.e.FromArray(f.rotation)), (m.scaling = c.e.FromArray(f.scaling)), null != f.checkCollisions && null != f.checkCollisions && (m.checkCollisions = f.checkCollisions), null != f.pickable && null != f.pickable && (m.isPickable = f.pickable), null != f.showBoundingBox && null != f.showBoundingBox && (m.showBoundingBox = f.showBoundingBox), null != f.showSubMeshesBoundingBox && null != f.showSubMeshesBoundingBox && (m.showSubMeshesBoundingBox = f.showSubMeshesBoundingBox), null != f.alphaIndex && null != f.showSubMeshesBoundingBox && (m.alphaIndex = f.alphaIndex), f.physicsImpostor && t._PhysicsImpostorParser(n, m, f), f.animations) ) { for (o = 0; o < f.animations.length; o++) { var b; (a = f.animations[o]), (b = P.a.GetClass("BABYLON.Animation")) && m.animations.push(b.Parse(a)); } u.a.ParseAnimationRanges(m, f, n), f.autoAnimate && n.beginAnimation(m, f.autoAnimateFrom, f.autoAnimateTo, f.autoAnimateLoop, f.autoAnimateSpeed || 1); } } return r; }), (t.CreateRibbon = function (e, t, n, i, r, o, a, s, c) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateDisc = function (e, t, n, i, r, o) { throw (void 0 === i && (i = null), x.a.WarnImport("MeshBuilder")); }), (t.CreateBox = function (e, t, n, i, r) { throw (void 0 === n && (n = null), x.a.WarnImport("MeshBuilder")); }), (t.CreateSphere = function (e, t, n, i, r, o) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateHemisphere = function (e, t, n, i) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateCylinder = function (e, t, n, i, r, o, a, s, c) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateTorus = function (e, t, n, i, r, o, a) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateTorusKnot = function (e, t, n, i, r, o, a, s, c, l) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateLines = function (e, t, n, i, r) { throw (void 0 === n && (n = null), void 0 === i && (i = !1), void 0 === r && (r = null), x.a.WarnImport("MeshBuilder")); }), (t.CreateDashedLines = function (e, t, n, i, r, o, a, s) { throw (void 0 === o && (o = null), x.a.WarnImport("MeshBuilder")); }), (t.CreatePolygon = function (e, t, n, i, r, o, a) { throw (void 0 === a && (a = earcut), x.a.WarnImport("MeshBuilder")); }), (t.ExtrudePolygon = function (e, t, n, i, r, o, a, s) { throw (void 0 === s && (s = earcut), x.a.WarnImport("MeshBuilder")); }), (t.ExtrudeShape = function (e, t, n, i, r, o, a, s, c, l) { throw (void 0 === a && (a = null), x.a.WarnImport("MeshBuilder")); }), (t.ExtrudeShapeCustom = function (e, t, n, i, r, o, a, s, c, l, u, h) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateLathe = function (e, t, n, i, r, o, a) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreatePlane = function (e, t, n, i, r) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateGround = function (e, t, n, i, r, o) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateTiledGround = function (e, t, n, i, r, o, a, s, c) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateGroundFromHeightMap = function (e, t, n, i, r, o, a, s, c, l, u) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateTube = function (e, t, n, i, r, o, a, s, c, l) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreatePolyhedron = function (e, t, n) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateIcoSphere = function (e, t, n) { throw x.a.WarnImport("MeshBuilder"); }), (t.CreateDecal = function (e, t, n, i, r, o) { throw x.a.WarnImport("MeshBuilder"); }), (t.prototype.setPositionsForCPUSkinning = function () { var e = this._internalMeshDataInfo; if (!e._sourcePositions) { var t = this.getVerticesData(h.b.PositionKind); if (!t) return e._sourcePositions; (e._sourcePositions = new Float32Array(t)), this.isVertexBufferUpdatable(h.b.PositionKind) || this.setVerticesData(h.b.PositionKind, t, !0); } return e._sourcePositions; }), (t.prototype.setNormalsForCPUSkinning = function () { var e = this._internalMeshDataInfo; if (!e._sourceNormals) { var t = this.getVerticesData(h.b.NormalKind); if (!t) return e._sourceNormals; (e._sourceNormals = new Float32Array(t)), this.isVertexBufferUpdatable(h.b.NormalKind) || this.setVerticesData(h.b.NormalKind, t, !0); } return e._sourceNormals; }), (t.prototype.applySkeleton = function (e) { if (!this.geometry) return this; if (this.geometry._softwareSkinningFrameId == this.getScene().getFrameId()) return this; if (((this.geometry._softwareSkinningFrameId = this.getScene().getFrameId()), !this.isVerticesDataPresent(h.b.PositionKind))) return this; if (!this.isVerticesDataPresent(h.b.NormalKind)) return this; if (!this.isVerticesDataPresent(h.b.MatricesIndicesKind)) return this; if (!this.isVerticesDataPresent(h.b.MatricesWeightsKind)) return this; var t = this._internalMeshDataInfo; if (!t._sourcePositions) { var n = this.subMeshes.slice(); this.setPositionsForCPUSkinning(), (this.subMeshes = n); } t._sourceNormals || this.setNormalsForCPUSkinning(); var i = this.getVerticesData(h.b.PositionKind); if (!i) return this; i instanceof Float32Array || (i = new Float32Array(i)); var r = this.getVerticesData(h.b.NormalKind); if (!r) return this; r instanceof Float32Array || (r = new Float32Array(r)); var o = this.getVerticesData(h.b.MatricesIndicesKind), a = this.getVerticesData(h.b.MatricesWeightsKind); if (!a || !o) return this; for ( var s, l = this.numBoneInfluencers > 4, u = l ? this.getVerticesData(h.b.MatricesIndicesExtraKind) : null, d = l ? this.getVerticesData(h.b.MatricesWeightsExtraKind) : null, p = e.getTransformMatrices(this), f = c.e.Zero(), m = new c.a(), g = new c.a(), b = 0, _ = 0; _ < i.length; _ += 3, b += 4 ) { var v; for (s = 0; s < 4; s++) (v = a[b + s]) > 0 && (c.a.FromFloat32ArrayToRefScaled(p, Math.floor(16 * o[b + s]), v, g), m.addToSelf(g)); if (l) for (s = 0; s < 4; s++) (v = d[b + s]) > 0 && (c.a.FromFloat32ArrayToRefScaled(p, Math.floor(16 * u[b + s]), v, g), m.addToSelf(g)); c.e.TransformCoordinatesFromFloatsToRef(t._sourcePositions[_], t._sourcePositions[_ + 1], t._sourcePositions[_ + 2], m, f), f.toArray(i, _), c.e.TransformNormalFromFloatsToRef(t._sourceNormals[_], t._sourceNormals[_ + 1], t._sourceNormals[_ + 2], m, f), f.toArray(r, _), m.reset(); } return this.updateVerticesData(h.b.PositionKind, i), this.updateVerticesData(h.b.NormalKind, r), this; }), (t.MinMax = function (e) { var t = null, n = null; return ( e.forEach(function (e) { var i = e.getBoundingInfo().boundingBox; t && n ? (t.minimizeInPlace(i.minimumWorld), n.maximizeInPlace(i.maximumWorld)) : ((t = i.minimumWorld), (n = i.maximumWorld)); }), t && n ? { min: t, max: n } : { min: c.e.Zero(), max: c.e.Zero() } ); }), (t.Center = function (e) { var n = e instanceof Array ? t.MinMax(e) : e; return c.e.Center(n.min, n.max); }), (t.MergeMeshes = function (e, n, i, r, o, a) { var s; if ((void 0 === n && (n = !0), !i)) { var c = 0; for (s = 0; s < e.length; s++) if (e[s] && (c += e[s].getTotalVertices()) >= 65536) return C.a.Warn("Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices"), null; } if (a) { var l, u, h = null; o = !1; } var p, f = new Array(), g = new Array(), b = null, v = new Array(), y = null; for (s = 0; s < e.length; s++) if (e[s]) { var P = e[s]; if (P.isAnInstance) return C.a.Warn("Cannot merge instance meshes."), null; var x = P.computeWorldMatrix(!0); if (((p = d.a.ExtractFromMesh(P, !0, !0)).transform(x), b ? b.merge(p, i) : ((b = p), (y = P)), o && v.push(P.getTotalIndices()), a)) if (P.material) { var T = P.material; if (T instanceof _.a) { for (u = 0; u < T.subMaterials.length; u++) f.indexOf(T.subMaterials[u]) < 0 && f.push(T.subMaterials[u]); for (l = 0; l < P.subMeshes.length; l++) g.push(f.indexOf(T.subMaterials[P.subMeshes[l].materialIndex])), v.push(P.subMeshes[l].indexCount); } else for (f.indexOf(T) < 0 && f.push(T), l = 0; l < P.subMeshes.length; l++) g.push(f.indexOf(T)), v.push(P.subMeshes[l].indexCount); } else for (l = 0; l < P.subMeshes.length; l++) g.push(0), v.push(P.subMeshes[l].indexCount); } if (((y = y), r || (r = new t(y.name + "_merged", y.getScene())), b.applyToMesh(r), (r.checkCollisions = y.checkCollisions), n)) for (s = 0; s < e.length; s++) e[s] && e[s].dispose(); if (o || a) { r.releaseSubMeshes(), (s = 0); for (var S = 0; s < v.length; ) m.b.CreateFromIndices(0, S, v[s], r), (S += v[s]), s++; } if (a) { for ((h = new _.a(y.name + "_merged", y.getScene())).subMaterials = f, l = 0; l < r.subMeshes.length; l++) r.subMeshes[l].materialIndex = g[l]; r.material = h; } else r.material = y.material; return r; }), (t.prototype.addInstance = function (e) { (e._indexInSourceMeshInstanceArray = this.instances.length), this.instances.push(e); }), (t.prototype.removeInstance = function (e) { var t = e._indexInSourceMeshInstanceArray; if (-1 != t) { if (t !== this.instances.length - 1) { var n = this.instances[this.instances.length - 1]; (this.instances[t] = n), (n._indexInSourceMeshInstanceArray = t); } (e._indexInSourceMeshInstanceArray = -1), this.instances.pop(); } }), (t.FRONTSIDE = d.a.FRONTSIDE), (t.BACKSIDE = d.a.BACKSIDE), (t.DOUBLESIDE = d.a.DOUBLESIDE), (t.DEFAULTSIDE = d.a.DEFAULTSIDE), (t.NO_CAP = 0), (t.CAP_START = 1), (t.CAP_END = 2), (t.CAP_ALL = 3), (t.NO_FLIP = 0), (t.FLIP_TILE = 1), (t.ROTATE_TILE = 2), (t.FLIP_ROW = 3), (t.ROTATE_ROW = 4), (t.FLIP_N_ROTATE_TILE = 5), (t.FLIP_N_ROTATE_ROW = 6), (t.CENTER = 0), (t.LEFT = 1), (t.RIGHT = 2), (t.TOP = 3), (t.BOTTOM = 4), (t._GroundMeshParser = function (e, t) { throw x.a.WarnImport("GroundMesh"); }), t ); })(f.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e._AddLogEntry = function (t) { (e._LogCache = t + e._LogCache), e.OnNewCacheEntry && e.OnNewCacheEntry(t); }), (e._FormatMessage = function (e) { var t = function (e) { return e < 10 ? "0" + e : "" + e; }, n = new Date(); return "[" + t(n.getHours()) + ":" + t(n.getMinutes()) + ":" + t(n.getSeconds()) + "]: " + e; }), (e._LogDisabled = function (e) {}), (e._LogEnabled = function (t) { var n = "
" + e._FormatMessage(t) + "

"; e._AddLogEntry(n); }), (e._WarnDisabled = function (e) {}), (e._WarnEnabled = function (t) { var n = "
" + e._FormatMessage(t) + "

"; e._AddLogEntry(n); }), (e._ErrorDisabled = function (e) {}), (e._ErrorEnabled = function (t) { e.errorsCount++; var n = "
" + e._FormatMessage(t) + "

"; e._AddLogEntry(n); }), Object.defineProperty(e, "LogCache", { get: function () { return e._LogCache; }, enumerable: !0, configurable: !0, }), (e.ClearLogCache = function () { (e._LogCache = ""), (e.errorsCount = 0); }), Object.defineProperty(e, "LogLevels", { set: function (t) { (t & e.MessageLogLevel) === e.MessageLogLevel ? (e.Log = e._LogEnabled) : (e.Log = e._LogDisabled), (t & e.WarningLogLevel) === e.WarningLogLevel ? (e.Warn = e._WarnEnabled) : (e.Warn = e._WarnDisabled), (t & e.ErrorLogLevel) === e.ErrorLogLevel ? (e.Error = e._ErrorEnabled) : (e.Error = e._ErrorDisabled); }, enumerable: !0, configurable: !0, }), (e.NoneLogLevel = 0), (e.MessageLogLevel = 1), (e.WarningLogLevel = 2), (e.ErrorLogLevel = 4), (e.AllLogLevel = 7), (e._LogCache = ""), (e.errorsCount = 0), (e.Log = e._LogEnabled), (e.Warn = e._WarnEnabled), (e.Error = e._ErrorEnabled), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(10), r = n(18), o = n(25), a = n(4), s = n(57), c = n(5), l = (function () { function e() {} return ( (e.BindEyePosition = function (e, t) { if (t._forcedViewPosition) e.setVector3("vEyePosition", t._forcedViewPosition); else { var n = t.activeCamera.globalPosition; n || (n = t.activeCamera.devicePosition), e.setVector3("vEyePosition", t._mirroredCameraPosition ? t._mirroredCameraPosition : n); } }), (e.PrepareDefinesForMergedUV = function (e, t, n) { (t._needUVs = !0), (t[n] = !0), e.getTextureMatrix().isIdentityAs3x2() ? ((t[n + "DIRECTUV"] = e.coordinatesIndex + 1), 0 === e.coordinatesIndex ? (t.MAINUV1 = !0) : (t.MAINUV2 = !0)) : (t[n + "DIRECTUV"] = 0); }), (e.BindTextureMatrix = function (e, t, n) { var i = e.getTextureMatrix(); t.updateMatrix(n + "Matrix", i); }), (e.GetFogState = function (e, t) { return t.fogEnabled && e.applyFog && t.fogMode !== r.a.FOGMODE_NONE; }), (e.PrepareDefinesForMisc = function (e, t, n, i, r, o, a) { a._areMiscDirty && ((a.LOGARITHMICDEPTH = n), (a.POINTSIZE = i), (a.FOG = r && this.GetFogState(e, t)), (a.NONUNIFORMSCALING = e.nonUniformScaling), (a.ALPHATEST = o)); }), (e.PrepareDefinesForFrameBoundValues = function (e, t, n, i, r) { void 0 === r && (r = null); var o, a, s, c, l, u, h = !1; (o = null == r ? void 0 !== e.clipPlane && null !== e.clipPlane : r), (a = null == r ? void 0 !== e.clipPlane2 && null !== e.clipPlane2 : r), (s = null == r ? void 0 !== e.clipPlane3 && null !== e.clipPlane3 : r), (c = null == r ? void 0 !== e.clipPlane4 && null !== e.clipPlane4 : r), (l = null == r ? void 0 !== e.clipPlane5 && null !== e.clipPlane5 : r), (u = null == r ? void 0 !== e.clipPlane6 && null !== e.clipPlane6 : r), n.CLIPPLANE !== o && ((n.CLIPPLANE = o), (h = !0)), n.CLIPPLANE2 !== a && ((n.CLIPPLANE2 = a), (h = !0)), n.CLIPPLANE3 !== s && ((n.CLIPPLANE3 = s), (h = !0)), n.CLIPPLANE4 !== c && ((n.CLIPPLANE4 = c), (h = !0)), n.CLIPPLANE5 !== l && ((n.CLIPPLANE5 = l), (h = !0)), n.CLIPPLANE6 !== u && ((n.CLIPPLANE6 = u), (h = !0)), n.DEPTHPREPASS !== !t.getColorWrite() && ((n.DEPTHPREPASS = !n.DEPTHPREPASS), (h = !0)), n.INSTANCES !== i && ((n.INSTANCES = i), (h = !0)), h && n.markAsUnprocessed(); }), (e.PrepareDefinesForBones = function (e, t) { if (e.useBones && e.computeBonesUsingShaders && e.skeleton) { t.NUM_BONE_INFLUENCERS = e.numBoneInfluencers; var n = void 0 !== t.BONETEXTURE; e.skeleton.isUsingTextureForMatrices && n ? (t.BONETEXTURE = !0) : ((t.BonesPerMesh = e.skeleton.bones.length + 1), (t.BONETEXTURE = !n && void 0)); } else (t.NUM_BONE_INFLUENCERS = 0), (t.BonesPerMesh = 0); }), (e.PrepareDefinesForMorphTargets = function (e, t) { var n = e.morphTargetManager; n ? ((t.MORPHTARGETS_UV = n.supportsUVs && t.UV1), (t.MORPHTARGETS_TANGENT = n.supportsTangents && t.TANGENT), (t.MORPHTARGETS_NORMAL = n.supportsNormals && t.NORMAL), (t.MORPHTARGETS = n.numInfluencers > 0), (t.NUM_MORPH_INFLUENCERS = n.numInfluencers)) : ((t.MORPHTARGETS_UV = !1), (t.MORPHTARGETS_TANGENT = !1), (t.MORPHTARGETS_NORMAL = !1), (t.MORPHTARGETS = !1), (t.NUM_MORPH_INFLUENCERS = 0)); }), (e.PrepareDefinesForAttributes = function (e, t, n, i, r, o) { if ((void 0 === r && (r = !1), void 0 === o && (o = !0), !t._areAttributesDirty && t._needNormals === t._normals && t._needUVs === t._uvs)) return !1; if ( ((t._normals = t._needNormals), (t._uvs = t._needUVs), (t.NORMAL = t._needNormals && e.isVerticesDataPresent(a.b.NormalKind)), t._needNormals && e.isVerticesDataPresent(a.b.TangentKind) && (t.TANGENT = !0), t._needUVs ? ((t.UV1 = e.isVerticesDataPresent(a.b.UVKind)), (t.UV2 = e.isVerticesDataPresent(a.b.UV2Kind))) : ((t.UV1 = !1), (t.UV2 = !1)), n) ) { var s = e.useVertexColors && e.isVerticesDataPresent(a.b.ColorKind); (t.VERTEXCOLOR = s), (t.VERTEXALPHA = e.hasVertexAlpha && s && o); } return i && this.PrepareDefinesForBones(e, t), r && this.PrepareDefinesForMorphTargets(e, t), !0; }), (e.PrepareDefinesForMultiview = function (e, t) { if (e.activeCamera) { var n = t.MULTIVIEW; (t.MULTIVIEW = null !== e.activeCamera.outputRenderTarget && e.activeCamera.outputRenderTarget.getViewCount() > 1), t.MULTIVIEW != n && t.markAsUnprocessed(); } }), (e.PrepareDefinesForLight = function (e, t, n, i, r, o, a) { switch ( ((a.needNormals = !0), void 0 === r["LIGHT" + i] && (a.needRebuild = !0), (r["LIGHT" + i] = !0), (r["SPOTLIGHT" + i] = !1), (r["HEMILIGHT" + i] = !1), (r["POINTLIGHT" + i] = !1), (r["DIRLIGHT" + i] = !1), n.prepareLightSpecificDefines(r, i), (r["LIGHT_FALLOFF_PHYSICAL" + i] = !1), (r["LIGHT_FALLOFF_GLTF" + i] = !1), (r["LIGHT_FALLOFF_STANDARD" + i] = !1), n.falloffType) ) { case s.a.FALLOFF_GLTF: r["LIGHT_FALLOFF_GLTF" + i] = !0; break; case s.a.FALLOFF_PHYSICAL: r["LIGHT_FALLOFF_PHYSICAL" + i] = !0; break; case s.a.FALLOFF_STANDARD: r["LIGHT_FALLOFF_STANDARD" + i] = !0; } if ( (o && !n.specular.equalsFloats(0, 0, 0) && (a.specularEnabled = !0), (r["SHADOW" + i] = !1), (r["SHADOWCSM" + i] = !1), (r["SHADOWCSMDEBUG" + i] = !1), (r["SHADOWCSMNUM_CASCADES" + i] = !1), (r["SHADOWCSMUSESHADOWMAXZ" + i] = !1), (r["SHADOWCSMNOBLEND" + i] = !1), (r["SHADOWCSM_RIGHTHANDED" + i] = !1), (r["SHADOWPCF" + i] = !1), (r["SHADOWPCSS" + i] = !1), (r["SHADOWPOISSON" + i] = !1), (r["SHADOWESM" + i] = !1), (r["SHADOWCUBE" + i] = !1), (r["SHADOWLOWQUALITY" + i] = !1), (r["SHADOWMEDIUMQUALITY" + i] = !1), t && t.receiveShadows && e.shadowsEnabled && n.shadowEnabled) ) { var c = n.getShadowGenerator(); if (c) { var l = c.getShadowMap(); l && l.renderList && l.renderList.length > 0 && ((a.shadowEnabled = !0), c.prepareDefines(r, i)); } } n.lightmapMode != s.a.LIGHTMAP_DEFAULT ? ((a.lightmapMode = !0), (r["LIGHTMAPEXCLUDED" + i] = !0), (r["LIGHTMAPNOSPECULAR" + i] = n.lightmapMode == s.a.LIGHTMAP_SHADOWSONLY)) : ((r["LIGHTMAPEXCLUDED" + i] = !1), (r["LIGHTMAPNOSPECULAR" + i] = !1)); }), (e.PrepareDefinesForLights = function (e, t, n, i, r, o) { if ((void 0 === r && (r = 4), void 0 === o && (o = !1), !n._areLightsDirty)) return n._needNormals; var a = 0, s = { needNormals: !1, needRebuild: !1, lightmapMode: !1, shadowEnabled: !1, specularEnabled: !1 }; if (e.lightsEnabled && !o) for (var c = 0, l = t.lightSources; c < l.length; c++) { var u = l[c]; if ((this.PrepareDefinesForLight(e, t, u, a, n, i, s), ++a === r)) break; } (n.SPECULARTERM = s.specularEnabled), (n.SHADOWS = s.shadowEnabled); for (var h = a; h < r; h++) void 0 !== n["LIGHT" + h] && ((n["LIGHT" + h] = !1), (n["HEMILIGHT" + h] = !1), (n["POINTLIGHT" + h] = !1), (n["DIRLIGHT" + h] = !1), (n["SPOTLIGHT" + h] = !1), (n["SHADOW" + h] = !1), (n["SHADOWCSM" + h] = !1), (n["SHADOWCSMDEBUG" + h] = !1), (n["SHADOWCSMNUM_CASCADES" + h] = !1), (n["SHADOWCSMUSESHADOWMAXZ" + h] = !1), (n["SHADOWCSMNOBLEND" + h] = !1), (n["SHADOWCSM_RIGHTHANDED" + h] = !1), (n["SHADOWPCF" + h] = !1), (n["SHADOWPCSS" + h] = !1), (n["SHADOWPOISSON" + h] = !1), (n["SHADOWESM" + h] = !1), (n["SHADOWCUBE" + h] = !1), (n["SHADOWLOWQUALITY" + h] = !1), (n["SHADOWMEDIUMQUALITY" + h] = !1)); var d = e.getEngine().getCaps(); return ( void 0 === n.SHADOWFLOAT && (s.needRebuild = !0), (n.SHADOWFLOAT = s.shadowEnabled && ((d.textureFloatRender && d.textureFloatLinearFiltering) || (d.textureHalfFloatRender && d.textureHalfFloatLinearFiltering))), (n.LIGHTMAPEXCLUDED = s.lightmapMode), s.needRebuild && n.rebuild(), s.needNormals ); }), (e.PrepareUniformsAndSamplersForLight = function (e, t, n, i, r) { void 0 === r && (r = null), t.push("vLightData" + e, "vLightDiffuse" + e, "vLightSpecular" + e, "vLightDirection" + e, "vLightFalloff" + e, "vLightGround" + e, "lightMatrix" + e, "shadowsInfo" + e, "depthValues" + e), r && r.push("Light" + e), n.push("shadowSampler" + e), n.push("depthSampler" + e), t.push("viewFrustumZ" + e, "cascadeBlendFactor" + e, "lightSizeUVCorrection" + e, "depthCorrection" + e, "penumbraDarkness" + e, "frustumLengths" + e), i && (n.push("projectionLightSampler" + e), t.push("textureProjectionMatrix" + e)); }), (e.PrepareUniformsAndSamplersList = function (e, t, n, i) { var r; void 0 === i && (i = 4); var o = null; if (e.uniformsNames) { var a = e; (r = a.uniformsNames), (o = a.uniformBuffersNames), (t = a.samplers), (n = a.defines), (i = a.maxSimultaneousLights || 0); } else (r = e), t || (t = []); for (var s = 0; s < i && n["LIGHT" + s]; s++) this.PrepareUniformsAndSamplersForLight(s, r, t, n["PROJECTEDLIGHTTEXTURE" + s], o); n.NUM_MORPH_INFLUENCERS && r.push("morphTargetInfluences"); }), (e.HandleFallbacksForShadows = function (e, t, n, i) { void 0 === n && (n = 4), void 0 === i && (i = 0); for (var r = 0, o = 0; o < n && e["LIGHT" + o]; o++) o > 0 && ((r = i + o), t.addFallback(r, "LIGHT" + o)), e.SHADOWS || (e["SHADOW" + o] && t.addFallback(i, "SHADOW" + o), e["SHADOWPCF" + o] && t.addFallback(i, "SHADOWPCF" + o), e["SHADOWPCSS" + o] && t.addFallback(i, "SHADOWPCSS" + o), e["SHADOWPOISSON" + o] && t.addFallback(i, "SHADOWPOISSON" + o), e["SHADOWESM" + o] && t.addFallback(i, "SHADOWESM" + o)); return r++; }), (e.PrepareAttributesForMorphTargetsInfluencers = function (e, t, n) { (this._TmpMorphInfluencers.NUM_MORPH_INFLUENCERS = n), this.PrepareAttributesForMorphTargets(e, t, this._TmpMorphInfluencers); }), (e.PrepareAttributesForMorphTargets = function (e, t, n) { var r = n.NUM_MORPH_INFLUENCERS; if (r > 0 && o.a.LastCreatedEngine) for ( var s = o.a.LastCreatedEngine.getCaps().maxVertexAttribs, c = t.morphTargetManager, l = c && c.supportsNormals && n.NORMAL, u = c && c.supportsTangents && n.TANGENT, h = c && c.supportsUVs && n.UV1, d = 0; d < r; d++ ) e.push(a.b.PositionKind + d), l && e.push(a.b.NormalKind + d), u && e.push(a.b.TangentKind + d), h && e.push(a.b.UVKind + "_" + d), e.length > s && i.a.Error("Cannot add more vertex attributes for mesh " + t.name); }), (e.PrepareAttributesForBones = function (e, t, n, i) { n.NUM_BONE_INFLUENCERS > 0 && (i.addCPUSkinningFallback(0, t), e.push(a.b.MatricesIndicesKind), e.push(a.b.MatricesWeightsKind), n.NUM_BONE_INFLUENCERS > 4 && (e.push(a.b.MatricesIndicesExtraKind), e.push(a.b.MatricesWeightsExtraKind))); }), (e.PrepareAttributesForInstances = function (e, t) { t.INSTANCES && this.PushAttributesForInstances(e); }), (e.PushAttributesForInstances = function (e) { e.push("world0"), e.push("world1"), e.push("world2"), e.push("world3"); }), (e.BindLightProperties = function (e, t, n) { e.transferToEffect(t, n + ""); }), (e.BindLight = function (e, t, n, i, r, o) { void 0 === o && (o = !1), e._bindLight(t, n, i, r, o); }), (e.BindLights = function (e, t, n, i, r, o) { void 0 === r && (r = 4), void 0 === o && (o = !1); for (var a = Math.min(t.lightSources.length, r), s = 0; s < a; s++) { var c = t.lightSources[s]; this.BindLight(c, s, e, n, "boolean" == typeof i ? i : i.SPECULARTERM, o); } }), (e.BindFogParameters = function (e, t, n, i) { void 0 === i && (i = !1), e.fogEnabled && t.applyFog && e.fogMode !== r.a.FOGMODE_NONE && (n.setFloat4("vFogInfos", e.fogMode, e.fogStart, e.fogEnd, e.fogDensity), i ? (e.fogColor.toLinearSpaceToRef(this._tempFogColor), n.setColor3("vFogColor", this._tempFogColor)) : n.setColor3("vFogColor", e.fogColor)); }), (e.BindBonesParameters = function (e, t) { if (t && e && (e.computeBonesUsingShaders && t._bonesComputationForcedToCPU && (e.computeBonesUsingShaders = !1), e.useBones && e.computeBonesUsingShaders && e.skeleton)) { var n = e.skeleton; if (n.isUsingTextureForMatrices && t.getUniformIndex("boneTextureWidth") > -1) { var i = n.getTransformMatrixTexture(e); t.setTexture("boneSampler", i), t.setFloat("boneTextureWidth", 4 * (n.bones.length + 1)); } else { var r = n.getTransformMatrices(e); r && t.setMatrices("mBones", r); } } }), (e.BindMorphTargetParameters = function (e, t) { var n = e.morphTargetManager; e && n && t.setFloatArray("morphTargetInfluences", n.influences); }), (e.BindLogDepth = function (e, t, n) { e.LOGARITHMICDEPTH && t.setFloat("logarithmicDepthConstant", 2 / (Math.log(n.activeCamera.maxZ + 1) / Math.LN2)); }), (e.BindClipPlane = function (e, t) { if (t.clipPlane) { var n = t.clipPlane; e.setFloat4("vClipPlane", n.normal.x, n.normal.y, n.normal.z, n.d); } if (t.clipPlane2) { n = t.clipPlane2; e.setFloat4("vClipPlane2", n.normal.x, n.normal.y, n.normal.z, n.d); } if (t.clipPlane3) { n = t.clipPlane3; e.setFloat4("vClipPlane3", n.normal.x, n.normal.y, n.normal.z, n.d); } if (t.clipPlane4) { n = t.clipPlane4; e.setFloat4("vClipPlane4", n.normal.x, n.normal.y, n.normal.z, n.d); } if (t.clipPlane5) { n = t.clipPlane5; e.setFloat4("vClipPlane5", n.normal.x, n.normal.y, n.normal.z, n.d); } if (t.clipPlane6) { n = t.clipPlane6; e.setFloat4("vClipPlane6", n.normal.x, n.normal.y, n.normal.z, n.d); } }), (e._TmpMorphInfluencers = { NUM_MORPH_INFLUENCERS: 0 }), (e._tempFogColor = c.a.Black()), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return g; }), n.d(t, "c", function () { return b; }), n.d(t, "a", function () { return _; }); var i = n(6), r = n(56), o = n(10), a = n(51), s = n(76), c = n(22), l = n(97), u = n(25), h = n(74), d = n(186), p = n(169), f = n(164), m = n(204), g = (function () { function e() {} return ( Object.defineProperty(e, "BaseUrl", { get: function () { return h.a.BaseUrl; }, set: function (e) { h.a.BaseUrl = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "DefaultRetryStrategy", { get: function () { return h.a.DefaultRetryStrategy; }, set: function (e) { h.a.DefaultRetryStrategy = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "UseFallbackTexture", { get: function () { return u.a.UseFallbackTexture; }, set: function (e) { u.a.UseFallbackTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "RegisteredExternalClasses", { get: function () { return f.a.RegisteredExternalClasses; }, set: function (e) { f.a.RegisteredExternalClasses = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "fallbackTexture", { get: function () { return u.a.FallbackTexture; }, set: function (e) { u.a.FallbackTexture = e; }, enumerable: !0, configurable: !0, }), (e.FetchToRef = function (e, t, n, i, r, o) { var a = 4 * (((Math.abs(e) * n) % n | 0) + ((Math.abs(t) * i) % i | 0) * n); (o.r = r[a] / 255), (o.g = r[a + 1] / 255), (o.b = r[a + 2] / 255), (o.a = r[a + 3] / 255); }), (e.Mix = function (e, t, n) { return e * (1 - n) + t * n; }), (e.Instantiate = function (e) { return f.a.Instantiate(e); }), (e.Slice = function (e, t, n) { return e.slice ? e.slice(t, n) : Array.prototype.slice.call(e, t, n); }), (e.SetImmediate = function (e) { p.a.SetImmediate(e); }), (e.IsExponentOfTwo = function (e) { var t = 1; do { t *= 2; } while (t < e); return t === e; }), (e.FloatRound = function (t) { return Math.fround ? Math.fround(t) : (e._tmpFloatArray[0] = t); }), (e.GetFilename = function (e) { var t = e.lastIndexOf("/"); return t < 0 ? e : e.substring(t + 1); }), (e.GetFolderPath = function (e, t) { void 0 === t && (t = !1); var n = e.lastIndexOf("/"); return n < 0 ? (t ? e : "") : e.substring(0, n + 1); }), (e.ToDegrees = function (e) { return (180 * e) / Math.PI; }), (e.ToRadians = function (e) { return (e * Math.PI) / 180; }), (e.MakeArray = function (e, t) { return !0 === t || (void 0 !== e && null != e) ? (Array.isArray(e) ? e : [e]) : null; }), (e.GetPointerPrefix = function () { var e = "pointer"; return r.a.IsWindowObjectExist() && !window.PointerEvent && r.a.IsNavigatorAvailable() && !navigator.pointerEnabled && (e = "mouse"), e; }), (e.SetCorsBehavior = function (e, t) { h.a.SetCorsBehavior(e, t); }), (e.CleanUrl = function (e) { return (e = e.replace(/#/gm, "%23")); }), Object.defineProperty(e, "PreprocessUrl", { get: function () { return h.a.PreprocessUrl; }, set: function (e) { h.a.PreprocessUrl = e; }, enumerable: !0, configurable: !0, }), (e.LoadImage = function (e, t, n, i, r) { return h.a.LoadImage(e, t, n, i, r); }), (e.LoadFile = function (e, t, n, i, r, o) { return h.a.LoadFile(e, t, n, i, r, o); }), (e.LoadFileAsync = function (e, t) { return ( void 0 === t && (t = !0), new Promise(function (n, i) { h.a.LoadFile( e, function (e) { n(e); }, void 0, void 0, t, function (e, t) { i(t); } ); }) ); }), (e.LoadScript = function (e, t, n, i) { if (r.a.IsWindowObjectExist()) { var o = document.getElementsByTagName("head")[0], a = document.createElement("script"); a.setAttribute("type", "text/javascript"), a.setAttribute("src", e), i && (a.id = i), (a.onload = function () { t && t(); }), (a.onerror = function (t) { n && n("Unable to load script '" + e + "'", t); }), o.appendChild(a); } }), (e.LoadScriptAsync = function (e, t) { var n = this; return new Promise(function (t, i) { n.LoadScript( e, function () { t(); }, function (e, t) { i(t); } ); }); }), (e.ReadFileAsDataURL = function (e, t, n) { var r = new FileReader(), o = { onCompleteObservable: new i.c(), abort: function () { return r.abort(); }, }; return ( (r.onloadend = function (e) { o.onCompleteObservable.notifyObservers(o); }), (r.onload = function (e) { t(e.target.result); }), (r.onprogress = n), r.readAsDataURL(e), o ); }), (e.ReadFile = function (e, t, n, i, r) { return h.a.ReadFile(e, t, n, i, r); }), (e.FileAsURL = function (e) { var t = new Blob([e]); return (window.URL || window.webkitURL).createObjectURL(t); }), (e.Format = function (e, t) { return void 0 === t && (t = 2), e.toFixed(t); }), (e.DeepCopy = function (e, t, n, i) { a.a.DeepCopy(e, t, n, i); }), (e.IsEmpty = function (e) { for (var t in e) if (e.hasOwnProperty(t)) return !1; return !0; }), (e.RegisterTopRootEvents = function (e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; e.addEventListener(i.name, i.handler, !1); try { window.parent && window.parent.addEventListener(i.name, i.handler, !1); } catch (e) {} } }), (e.UnregisterTopRootEvents = function (e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; e.removeEventListener(i.name, i.handler); try { e.parent && e.parent.removeEventListener(i.name, i.handler); } catch (e) {} } }), (e.DumpFramebuffer = function (t, n, i, r, o, a) { void 0 === o && (o = "image/png"); for (var s = 4 * t, c = n / 2, l = i.readPixels(0, 0, t, n), u = 0; u < c; u++) for (var h = 0; h < s; h++) { var d = h + u * s, p = h + (n - u - 1) * s, f = l[d]; (l[d] = l[p]), (l[p] = f); } e._ScreenshotCanvas || (e._ScreenshotCanvas = document.createElement("canvas")), (e._ScreenshotCanvas.width = t), (e._ScreenshotCanvas.height = n); var m = e._ScreenshotCanvas.getContext("2d"); if (m) { var g = m.createImageData(t, n); g.data.set(l), m.putImageData(g, 0, 0), e.EncodeScreenshotCanvasData(r, o, a); } }), (e.ToBlob = function (e, t, n) { void 0 === n && (n = "image/png"), e.toBlob || (e.toBlob = function (e, t, n) { var i = this; setTimeout(function () { for (var r = atob(i.toDataURL(t, n).split(",")[1]), o = r.length, a = new Uint8Array(o), s = 0; s < o; s++) a[s] = r.charCodeAt(s); e(new Blob([a])); }); }), e.toBlob(function (e) { t(e); }, n); }), (e.EncodeScreenshotCanvasData = function (t, n, i) { (void 0 === n && (n = "image/png"), t) ? t(e._ScreenshotCanvas.toDataURL(n)) : this.ToBlob( e._ScreenshotCanvas, function (t) { if ("download" in document.createElement("a")) { if (!i) { var n = new Date(), r = (n.getFullYear() + "-" + (n.getMonth() + 1)).slice(2) + "-" + n.getDate() + "_" + n.getHours() + "-" + ("0" + n.getMinutes()).slice(-2); i = "screenshot_" + r + ".png"; } e.Download(t, i); } else { var o = URL.createObjectURL(t), a = window.open(""); if (!a) return; var s = a.document.createElement("img"); (s.onload = function () { URL.revokeObjectURL(o); }), (s.src = o), a.document.body.appendChild(s); } }, n ); }), (e.Download = function (e, t) { if (navigator && navigator.msSaveBlob) navigator.msSaveBlob(e, t); else { var n = window.URL.createObjectURL(e), i = document.createElement("a"); document.body.appendChild(i), (i.style.display = "none"), (i.href = n), (i.download = t), i.addEventListener("click", function () { i.parentElement && i.parentElement.removeChild(i); }), i.click(), window.URL.revokeObjectURL(n); } }), (e.CreateScreenshot = function (e, t, n, i, r) { throw (void 0 === r && (r = "image/png"), c.a.WarnImport("ScreenshotTools")); }), (e.CreateScreenshotAsync = function (e, t, n, i) { throw (void 0 === i && (i = "image/png"), c.a.WarnImport("ScreenshotTools")); }), (e.CreateScreenshotUsingRenderTarget = function (e, t, n, i, r, o, a, s) { throw (void 0 === r && (r = "image/png"), void 0 === o && (o = 1), void 0 === a && (a = !1), c.a.WarnImport("ScreenshotTools")); }), (e.CreateScreenshotUsingRenderTargetAsync = function (e, t, n, i, r, o, a) { throw (void 0 === i && (i = "image/png"), void 0 === r && (r = 1), void 0 === o && (o = !1), c.a.WarnImport("ScreenshotTools")); }), (e.RandomId = function () { return m.a.RandomId(); }), (e.IsBase64 = function (e) { return !(e.length < 5) && "data:" === e.substr(0, 5); }), (e.DecodeBase64 = function (e) { for (var t = atob(e.split(",")[1]), n = t.length, i = new Uint8Array(new ArrayBuffer(n)), r = 0; r < n; r++) i[r] = t.charCodeAt(r); return i.buffer; }), (e.GetAbsoluteUrl = function (e) { var t = document.createElement("a"); return (t.href = e), t.href; }), Object.defineProperty(e, "errorsCount", { get: function () { return o.a.errorsCount; }, enumerable: !0, configurable: !0, }), (e.Log = function (e) { o.a.Log(e); }), (e.Warn = function (e) { o.a.Warn(e); }), (e.Error = function (e) { o.a.Error(e); }), Object.defineProperty(e, "LogCache", { get: function () { return o.a.LogCache; }, enumerable: !0, configurable: !0, }), (e.ClearLogCache = function () { o.a.ClearLogCache(); }), Object.defineProperty(e, "LogLevels", { set: function (e) { o.a.LogLevels = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "PerformanceLogLevel", { set: function (t) { return (t & e.PerformanceUserMarkLogLevel) === e.PerformanceUserMarkLogLevel ? ((e.StartPerformanceCounter = e._StartUserMark), void (e.EndPerformanceCounter = e._EndUserMark)) : (t & e.PerformanceConsoleLogLevel) === e.PerformanceConsoleLogLevel ? ((e.StartPerformanceCounter = e._StartPerformanceConsole), void (e.EndPerformanceCounter = e._EndPerformanceConsole)) : ((e.StartPerformanceCounter = e._StartPerformanceCounterDisabled), void (e.EndPerformanceCounter = e._EndPerformanceCounterDisabled)); }, enumerable: !0, configurable: !0, }), (e._StartPerformanceCounterDisabled = function (e, t) {}), (e._EndPerformanceCounterDisabled = function (e, t) {}), (e._StartUserMark = function (t, n) { if ((void 0 === n && (n = !0), !e._performance)) { if (!r.a.IsWindowObjectExist()) return; e._performance = window.performance; } n && e._performance.mark && e._performance.mark(t + "-Begin"); }), (e._EndUserMark = function (t, n) { void 0 === n && (n = !0), n && e._performance.mark && (e._performance.mark(t + "-End"), e._performance.measure(t, t + "-Begin", t + "-End")); }), (e._StartPerformanceConsole = function (t, n) { void 0 === n && (n = !0), n && (e._StartUserMark(t, n), console.time); }), (e._EndPerformanceConsole = function (t, n) { void 0 === n && (n = !0), n && e._EndUserMark(t, n); }), Object.defineProperty(e, "Now", { get: function () { return s.a.Now; }, enumerable: !0, configurable: !0, }), (e.GetClassName = function (e, t) { void 0 === t && (t = !1); var n = null; if (!t && e.getClassName) n = e.getClassName(); else { if (e instanceof Object) n = (t ? e : Object.getPrototypeOf(e)).constructor.__bjsclassName__; n || (n = typeof e); } return n; }), (e.First = function (e, t) { for (var n = 0, i = e; n < i.length; n++) { var r = i[n]; if (t(r)) return r; } return null; }), (e.getFullClassName = function (e, t) { void 0 === t && (t = !1); var n = null, i = null; if (!t && e.getClassName) n = e.getClassName(); else { if (e instanceof Object) { var r = t ? e : Object.getPrototypeOf(e); (n = r.constructor.__bjsclassName__), (i = r.constructor.__bjsmoduleName__); } n || (n = typeof e); } return n ? (null != i ? i + "." : "") + n : null; }), (e.DelayAsync = function (e) { return new Promise(function (t) { setTimeout(function () { t(); }, e); }); }), (e.IsSafari = function () { return /^((?!chrome|android).)*safari/i.test(navigator.userAgent); }), (e.UseCustomRequestHeaders = !1), (e.CustomRequestHeaders = l.a.CustomRequestHeaders), (e.CorsBehavior = "anonymous"), (e._tmpFloatArray = new Float32Array(1)), (e.GetDOMTextContent = r.a.GetDOMTextContent), (e.NoneLogLevel = o.a.NoneLogLevel), (e.MessageLogLevel = o.a.MessageLogLevel), (e.WarningLogLevel = o.a.WarningLogLevel), (e.ErrorLogLevel = o.a.ErrorLogLevel), (e.AllLogLevel = o.a.AllLogLevel), (e.IsWindowObjectExist = r.a.IsWindowObjectExist), (e.PerformanceNoneLogLevel = 0), (e.PerformanceUserMarkLogLevel = 1), (e.PerformanceConsoleLogLevel = 2), (e.StartPerformanceCounter = e._StartPerformanceCounterDisabled), (e.EndPerformanceCounter = e._EndPerformanceCounterDisabled), e ); })(); function b(e, t) { return function (n) { (n.__bjsclassName__ = e), (n.__bjsmoduleName__ = null != t ? t : null); }; } var _ = (function () { function e(e, t, n, i) { void 0 === i && (i = 0), (this.iterations = e), (this.index = i - 1), (this._done = !1), (this._fn = t), (this._successCallback = n); } return ( (e.prototype.executeNext = function () { this._done || (this.index + 1 < this.iterations ? (++this.index, this._fn(this)) : this.breakLoop()); }), (e.prototype.breakLoop = function () { (this._done = !0), this._successCallback(); }), (e.Run = function (t, n, i, r) { void 0 === r && (r = 0); var o = new e(t, n, i, r); return o.executeNext(), o; }), (e.SyncAsyncForLoop = function (t, n, i, r, o, a) { return ( void 0 === a && (a = 0), e.Run( Math.ceil(t / n), function (e) { o && o() ? e.breakLoop() : setTimeout(function () { for (var r = 0; r < n; ++r) { var a = e.index * n + r; if (a >= t) break; if ((i(a), o && o())) { e.breakLoop(); break; } } e.executeNext(); }, a); }, r ) ); }), e ); })(); (u.a.FallbackTexture = "data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z"), d.a.Apply(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.GetClass = function (e) { return this.RegisteredTypes && this.RegisteredTypes[e] ? this.RegisteredTypes[e] : null; }), (e.RegisteredTypes = {}), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return p; }); var i = n(2), r = n(6), o = n(56), a = n(25), s = n(22), c = n(38), l = n(187), u = n(69), h = n(126), d = n(10); (c.a.prototype.setAlphaConstants = function (e, t, n, i) { this._alphaState.setAlphaBlendConstants(e, t, n, i); }), (c.a.prototype.setAlphaMode = function (e, t) { if ((void 0 === t && (t = !1), this._alphaMode !== e)) { switch (e) { case 0: this._alphaState.alphaBlend = !1; break; case 7: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 8: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0); break; case 2: this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 6: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ZERO, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 1: this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 3: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 4: this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR, this._gl.ZERO, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 5: this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 9: this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR, this._gl.ONE_MINUS_CONSTANT_COLOR, this._gl.CONSTANT_ALPHA, this._gl.ONE_MINUS_CONSTANT_ALPHA), (this._alphaState.alphaBlend = !0); break; case 10: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0); break; case 11: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ONE), (this._alphaState.alphaBlend = !0); break; case 12: this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ZERO), (this._alphaState.alphaBlend = !0); break; case 13: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE_MINUS_DST_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0); break; case 14: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), (this._alphaState.alphaBlend = !0); break; case 15: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ZERO), (this._alphaState.alphaBlend = !0); break; case 16: this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ZERO, this._gl.ONE), (this._alphaState.alphaBlend = !0); } t || (this.depthCullingState.depthMask = 0 === e), (this._alphaMode = e); } }), (c.a.prototype.getAlphaMode = function () { return this._alphaMode; }), (c.a.prototype.setAlphaEquation = function (e) { if (this._alphaEquation !== e) { switch (e) { case 0: this._alphaState.setAlphaEquationParameters(this._gl.FUNC_ADD, this._gl.FUNC_ADD); break; case 1: this._alphaState.setAlphaEquationParameters(this._gl.FUNC_SUBTRACT, this._gl.FUNC_SUBTRACT); break; case 2: this._alphaState.setAlphaEquationParameters(this._gl.FUNC_REVERSE_SUBTRACT, this._gl.FUNC_REVERSE_SUBTRACT); break; case 3: this._alphaState.setAlphaEquationParameters(this._gl.MAX, this._gl.MAX); break; case 4: this._alphaState.setAlphaEquationParameters(this._gl.MIN, this._gl.MIN); break; case 5: this._alphaState.setAlphaEquationParameters(this._gl.MIN, this._gl.FUNC_ADD); } this._alphaEquation = e; } }), (c.a.prototype.getAlphaEquation = function () { return this._alphaEquation; }); var p = (function (e) { function t(n, i, a, s) { void 0 === s && (s = !1); var c = e.call(this, n, i, a, s) || this; if ( ((c.enableOfflineSupport = !1), (c.disableManifestCheck = !1), (c.scenes = new Array()), (c.onNewSceneAddedObservable = new r.c()), (c.postProcesses = new Array()), (c.isPointerLock = !1), (c.onResizeObservable = new r.c()), (c.onCanvasBlurObservable = new r.c()), (c.onCanvasFocusObservable = new r.c()), (c.onCanvasPointerOutObservable = new r.c()), (c.onBeginFrameObservable = new r.c()), (c.customAnimationFrameRequester = null), (c.onEndFrameObservable = new r.c()), (c.onBeforeShaderCompilationObservable = new r.c()), (c.onAfterShaderCompilationObservable = new r.c()), (c._deterministicLockstep = !1), (c._lockstepMaxSteps = 4), (c._timeStep = 1 / 60), (c._fps = 60), (c._deltaTime = 0), (c._drawCalls = new u.a()), (c.canvasTabIndex = 1), (c.disablePerformanceMonitorInBackground = !1), (c._performanceMonitor = new l.a()), !n) ) return c; if (((a = c._creationOptions), t.Instances.push(c), n.getContext)) { var h = n; if ( ((c._onCanvasFocus = function () { c.onCanvasFocusObservable.notifyObservers(c); }), (c._onCanvasBlur = function () { c.onCanvasBlurObservable.notifyObservers(c); }), h.addEventListener("focus", c._onCanvasFocus), h.addEventListener("blur", c._onCanvasBlur), (c._onBlur = function () { c.disablePerformanceMonitorInBackground && c._performanceMonitor.disable(), (c._windowIsBackground = !0); }), (c._onFocus = function () { c.disablePerformanceMonitorInBackground && c._performanceMonitor.enable(), (c._windowIsBackground = !1); }), (c._onCanvasPointerOut = function (e) { c.onCanvasPointerOutObservable.notifyObservers(e); }), h.addEventListener("pointerout", c._onCanvasPointerOut), o.a.IsWindowObjectExist()) ) { var d = c.getHostWindow(); d.addEventListener("blur", c._onBlur), d.addEventListener("focus", c._onFocus); var p = document; (c._onFullscreenChange = function () { void 0 !== p.fullscreen ? (c.isFullscreen = p.fullscreen) : void 0 !== p.mozFullScreen ? (c.isFullscreen = p.mozFullScreen) : void 0 !== p.webkitIsFullScreen ? (c.isFullscreen = p.webkitIsFullScreen) : void 0 !== p.msIsFullScreen && (c.isFullscreen = p.msIsFullScreen), c.isFullscreen && c._pointerLockRequested && h && t._RequestPointerlock(h); }), document.addEventListener("fullscreenchange", c._onFullscreenChange, !1), document.addEventListener("mozfullscreenchange", c._onFullscreenChange, !1), document.addEventListener("webkitfullscreenchange", c._onFullscreenChange, !1), document.addEventListener("msfullscreenchange", c._onFullscreenChange, !1), (c._onPointerLockChange = function () { c.isPointerLock = p.mozPointerLockElement === h || p.webkitPointerLockElement === h || p.msPointerLockElement === h || p.pointerLockElement === h; }), document.addEventListener("pointerlockchange", c._onPointerLockChange, !1), document.addEventListener("mspointerlockchange", c._onPointerLockChange, !1), document.addEventListener("mozpointerlockchange", c._onPointerLockChange, !1), document.addEventListener("webkitpointerlockchange", c._onPointerLockChange, !1), !t.audioEngine && a.audioEngine && t.AudioEngineFactory && (t.audioEngine = t.AudioEngineFactory(c.getRenderingCanvas())); } c._connectVREvents(), (c.enableOfflineSupport = void 0 !== t.OfflineProviderFactory), a.doNotHandleTouchAction || c._disableTouchAction(), (c._deterministicLockstep = !!a.deterministicLockstep), (c._lockstepMaxSteps = a.lockstepMaxSteps || 0), (c._timeStep = a.timeStep || 1 / 60); } return c._prepareVRComponent(), a.autoEnableWebVR && c.initWebVR(), c; } return ( Object(i.d)(t, e), Object.defineProperty(t, "NpmPackage", { get: function () { return c.a.NpmPackage; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "Version", { get: function () { return c.a.Version; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "Instances", { get: function () { return a.a.Instances; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "LastCreatedEngine", { get: function () { return a.a.LastCreatedEngine; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "LastCreatedScene", { get: function () { return a.a.LastCreatedScene; }, enumerable: !0, configurable: !0, }), (t.MarkAllMaterialsAsDirty = function (e, n) { for (var i = 0; i < t.Instances.length; i++) for (var r = t.Instances[i], o = 0; o < r.scenes.length; o++) r.scenes[o].markAllMaterialsAsDirty(e, n); }), (t.DefaultLoadingScreenFactory = function (e) { throw s.a.WarnImport("LoadingScreen"); }), Object.defineProperty(t.prototype, "_supportsHardwareTextureRescaling", { get: function () { return !!t._RescalePostProcessFactory; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "performanceMonitor", { get: function () { return this._performanceMonitor; }, enumerable: !0, configurable: !0, }), (t.prototype.getInputElement = function () { return this._renderingCanvas; }), (t.prototype.getAspectRatio = function (e, t) { void 0 === t && (t = !1); var n = e.viewport; return (this.getRenderWidth(t) * n.width) / (this.getRenderHeight(t) * n.height); }), (t.prototype.getScreenAspectRatio = function () { return this.getRenderWidth(!0) / this.getRenderHeight(!0); }), (t.prototype.getRenderingCanvasClientRect = function () { return this._renderingCanvas ? this._renderingCanvas.getBoundingClientRect() : null; }), (t.prototype.getInputElementClientRect = function () { return this._renderingCanvas ? this.getInputElement().getBoundingClientRect() : null; }), (t.prototype.isDeterministicLockStep = function () { return this._deterministicLockstep; }), (t.prototype.getLockstepMaxSteps = function () { return this._lockstepMaxSteps; }), (t.prototype.getTimeStep = function () { return 1e3 * this._timeStep; }), (t.prototype.generateMipMapsForCubemap = function (e, t) { if ((void 0 === t && (t = !0), e.generateMipMaps)) { var n = this._gl; this._bindTextureDirectly(n.TEXTURE_CUBE_MAP, e, !0), n.generateMipmap(n.TEXTURE_CUBE_MAP), t && this._bindTextureDirectly(n.TEXTURE_CUBE_MAP, null); } }), (t.prototype.setState = function (e, t, n, i) { void 0 === t && (t = 0), void 0 === i && (i = !1), (this._depthCullingState.cull !== e || n) && (this._depthCullingState.cull = e); var r = this.cullBackFaces ? this._gl.BACK : this._gl.FRONT; (this._depthCullingState.cullFace !== r || n) && (this._depthCullingState.cullFace = r), this.setZOffset(t); var o = i ? this._gl.CW : this._gl.CCW; (this._depthCullingState.frontFace !== o || n) && (this._depthCullingState.frontFace = o); }), (t.prototype.setZOffset = function (e) { this._depthCullingState.zOffset = e; }), (t.prototype.getZOffset = function () { return this._depthCullingState.zOffset; }), (t.prototype.setDepthBuffer = function (e) { this._depthCullingState.depthTest = e; }), (t.prototype.getDepthWrite = function () { return this._depthCullingState.depthMask; }), (t.prototype.setDepthWrite = function (e) { this._depthCullingState.depthMask = e; }), (t.prototype.getStencilBuffer = function () { return this._stencilState.stencilTest; }), (t.prototype.setStencilBuffer = function (e) { this._stencilState.stencilTest = e; }), (t.prototype.getStencilMask = function () { return this._stencilState.stencilMask; }), (t.prototype.setStencilMask = function (e) { this._stencilState.stencilMask = e; }), (t.prototype.getStencilFunction = function () { return this._stencilState.stencilFunc; }), (t.prototype.getStencilFunctionReference = function () { return this._stencilState.stencilFuncRef; }), (t.prototype.getStencilFunctionMask = function () { return this._stencilState.stencilFuncMask; }), (t.prototype.setStencilFunction = function (e) { this._stencilState.stencilFunc = e; }), (t.prototype.setStencilFunctionReference = function (e) { this._stencilState.stencilFuncRef = e; }), (t.prototype.setStencilFunctionMask = function (e) { this._stencilState.stencilFuncMask = e; }), (t.prototype.getStencilOperationFail = function () { return this._stencilState.stencilOpStencilFail; }), (t.prototype.getStencilOperationDepthFail = function () { return this._stencilState.stencilOpDepthFail; }), (t.prototype.getStencilOperationPass = function () { return this._stencilState.stencilOpStencilDepthPass; }), (t.prototype.setStencilOperationFail = function (e) { this._stencilState.stencilOpStencilFail = e; }), (t.prototype.setStencilOperationDepthFail = function (e) { this._stencilState.stencilOpDepthFail = e; }), (t.prototype.setStencilOperationPass = function (e) { this._stencilState.stencilOpStencilDepthPass = e; }), (t.prototype.setDitheringState = function (e) { e ? this._gl.enable(this._gl.DITHER) : this._gl.disable(this._gl.DITHER); }), (t.prototype.setRasterizerState = function (e) { e ? this._gl.disable(this._gl.RASTERIZER_DISCARD) : this._gl.enable(this._gl.RASTERIZER_DISCARD); }), (t.prototype.getDepthFunction = function () { return this._depthCullingState.depthFunc; }), (t.prototype.setDepthFunction = function (e) { this._depthCullingState.depthFunc = e; }), (t.prototype.setDepthFunctionToGreater = function () { this._depthCullingState.depthFunc = this._gl.GREATER; }), (t.prototype.setDepthFunctionToGreaterOrEqual = function () { this._depthCullingState.depthFunc = this._gl.GEQUAL; }), (t.prototype.setDepthFunctionToLess = function () { this._depthCullingState.depthFunc = this._gl.LESS; }), (t.prototype.setDepthFunctionToLessOrEqual = function () { this._depthCullingState.depthFunc = this._gl.LEQUAL; }), (t.prototype.cacheStencilState = function () { (this._cachedStencilBuffer = this.getStencilBuffer()), (this._cachedStencilFunction = this.getStencilFunction()), (this._cachedStencilMask = this.getStencilMask()), (this._cachedStencilOperationPass = this.getStencilOperationPass()), (this._cachedStencilOperationFail = this.getStencilOperationFail()), (this._cachedStencilOperationDepthFail = this.getStencilOperationDepthFail()), (this._cachedStencilReference = this.getStencilFunctionReference()); }), (t.prototype.restoreStencilState = function () { this.setStencilFunction(this._cachedStencilFunction), this.setStencilMask(this._cachedStencilMask), this.setStencilBuffer(this._cachedStencilBuffer), this.setStencilOperationPass(this._cachedStencilOperationPass), this.setStencilOperationFail(this._cachedStencilOperationFail), this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail), this.setStencilFunctionReference(this._cachedStencilReference); }), (t.prototype.setDirectViewport = function (e, t, n, i) { var r = this._cachedViewport; return (this._cachedViewport = null), this._viewport(e, t, n, i), r; }), (t.prototype.scissorClear = function (e, t, n, i, r) { this.enableScissor(e, t, n, i), this.clear(r, !0, !0, !0), this.disableScissor(); }), (t.prototype.enableScissor = function (e, t, n, i) { var r = this._gl; r.enable(r.SCISSOR_TEST), r.scissor(e, t, n, i); }), (t.prototype.disableScissor = function () { var e = this._gl; e.disable(e.SCISSOR_TEST); }), (t.prototype._reportDrawCall = function () { this._drawCalls.addCount(1, !1); }), (t.prototype.initWebVR = function () { throw s.a.WarnImport("WebVRCamera"); }), (t.prototype._prepareVRComponent = function () {}), (t.prototype._connectVREvents = function (e, t) {}), (t.prototype._submitVRFrame = function () {}), (t.prototype.disableVR = function () {}), (t.prototype.isVRPresenting = function () { return !1; }), (t.prototype._requestVRFrame = function () {}), (t.prototype._loadFileAsync = function (e, t, n) { var i = this; return new Promise(function (r, o) { i._loadFile( e, function (e) { r(e); }, void 0, t, n, function (e, t) { o(t); } ); }); }), (t.prototype.getVertexShaderSource = function (e) { var t = this._gl.getAttachedShaders(e); return t ? this._gl.getShaderSource(t[0]) : null; }), (t.prototype.getFragmentShaderSource = function (e) { var t = this._gl.getAttachedShaders(e); return t ? this._gl.getShaderSource(t[1]) : null; }), (t.prototype.setDepthStencilTexture = function (e, t, n) { void 0 !== e && (t && (this._boundUniforms[e] = t), n && n.depthStencilTexture ? this._setTexture(e, n, !1, !0) : this._setTexture(e, null)); }), (t.prototype.setTextureFromPostProcess = function (e, t) { this._bindTexture(e, t ? t._textures.data[t._currentRenderTextureInd] : null); }), (t.prototype.setTextureFromPostProcessOutput = function (e, t) { this._bindTexture(e, t ? t._outputTexture : null); }), (t.prototype._convertRGBtoRGBATextureData = function (e, t, n, i) { var r; r = 1 === i ? new Float32Array(t * n * 4) : new Uint32Array(t * n * 4); for (var o = 0; o < t; o++) for (var a = 0; a < n; a++) { var s = 3 * (a * t + o), c = 4 * (a * t + o); (r[c + 0] = e[s + 0]), (r[c + 1] = e[s + 1]), (r[c + 2] = e[s + 2]), (r[c + 3] = 1); } return r; }), (t.prototype._rebuildBuffers = function () { for (var t = 0, n = this.scenes; t < n.length; t++) { var i = n[t]; i.resetCachedMaterial(), i._rebuildGeometries(), i._rebuildTextures(); } e.prototype._rebuildBuffers.call(this); }), (t.prototype._renderFrame = function () { for (var e = 0; e < this._activeRenderLoops.length; e++) { (0, this._activeRenderLoops[e])(); } }), (t.prototype._renderLoop = function () { if (!this._contextWasLost) { var e = !0; !this.renderEvenInBackground && this._windowIsBackground && (e = !1), e && (this.beginFrame(), this._renderViews() || this._renderFrame(), this.endFrame()); } this._activeRenderLoops.length > 0 ? this.customAnimationFrameRequester ? ((this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester)), (this._frameHandler = this.customAnimationFrameRequester.requestID)) : this.isVRPresenting() ? this._requestVRFrame() : (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow())) : (this._renderingQueueLaunched = !1); }), (t.prototype._renderViews = function () { return !1; }), (t.prototype.switchFullscreen = function (e) { this.isFullscreen ? this.exitFullscreen() : this.enterFullscreen(e); }), (t.prototype.enterFullscreen = function (e) { this.isFullscreen || ((this._pointerLockRequested = e), this._renderingCanvas && t._RequestFullscreen(this._renderingCanvas)); }), (t.prototype.exitFullscreen = function () { this.isFullscreen && t._ExitFullscreen(); }), (t.prototype.enterPointerlock = function () { this._renderingCanvas && t._RequestPointerlock(this._renderingCanvas); }), (t.prototype.exitPointerlock = function () { t._ExitPointerlock(); }), (t.prototype.beginFrame = function () { this._measureFps(), this.onBeginFrameObservable.notifyObservers(this), e.prototype.beginFrame.call(this); }), (t.prototype.endFrame = function () { e.prototype.endFrame.call(this), this._submitVRFrame(), this.onEndFrameObservable.notifyObservers(this); }), (t.prototype.resize = function () { this.isVRPresenting() || e.prototype.resize.call(this); }), (t.prototype.setSize = function (t, n) { if (this._renderingCanvas && (e.prototype.setSize.call(this, t, n), this.scenes)) { for (var i = 0; i < this.scenes.length; i++) for (var r = this.scenes[i], o = 0; o < r.cameras.length; o++) { r.cameras[o]._currentRenderId = 0; } this.onResizeObservable.hasObservers && this.onResizeObservable.notifyObservers(this); } }), (t.prototype.updateDynamicVertexBuffer = function (e, t, n, i) { this.bindArrayBuffer(e), void 0 === n && (n = 0); var r = t.length || t.byteLength; void 0 === i || (i >= r && 0 === n) ? t instanceof Array ? this._gl.bufferSubData(this._gl.ARRAY_BUFFER, n, new Float32Array(t)) : this._gl.bufferSubData(this._gl.ARRAY_BUFFER, n, t) : t instanceof Array ? this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(t).subarray(n, n + i)) : ((t = t instanceof ArrayBuffer ? new Uint8Array(t, n, i) : new Uint8Array(t.buffer, t.byteOffset + n, i)), this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, t)), this._resetVertexBufferBinding(); }), (t.prototype._deletePipelineContext = function (t) { var n = t; n && n.program && n.transformFeedback && (this.deleteTransformFeedback(n.transformFeedback), (n.transformFeedback = null)), e.prototype._deletePipelineContext.call(this, t); }), (t.prototype.createShaderProgram = function (t, n, i, r, o, a) { void 0 === a && (a = null), (o = o || this._gl), this.onBeforeShaderCompilationObservable.notifyObservers(this); var s = e.prototype.createShaderProgram.call(this, t, n, i, r, o, a); return this.onAfterShaderCompilationObservable.notifyObservers(this), s; }), (t.prototype._createShaderProgram = function (e, t, n, i, r) { void 0 === r && (r = null); var o = i.createProgram(); if (((e.program = o), !o)) throw new Error("Unable to create program"); if ((i.attachShader(o, t), i.attachShader(o, n), this.webGLVersion > 1 && r)) { var a = this.createTransformFeedback(); this.bindTransformFeedback(a), this.setTranformFeedbackVaryings(o, r), (e.transformFeedback = a); } return i.linkProgram(o), this.webGLVersion > 1 && r && this.bindTransformFeedback(null), (e.context = i), (e.vertexShader = t), (e.fragmentShader = n), e.isParallelCompiled || this._finalizePipelineContext(e), o; }), (t.prototype._releaseTexture = function (t) { e.prototype._releaseTexture.call(this, t), this.scenes.forEach(function (e) { e.postProcesses.forEach(function (e) { e._outputTexture == t && (e._outputTexture = null); }), e.cameras.forEach(function (e) { e._postProcesses.forEach(function (e) { e && e._outputTexture == t && (e._outputTexture = null); }); }); }); }), (t.prototype._rescaleTexture = function (e, n, i, r, o) { var a = this; this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE); var s = this.createRenderTargetTexture({ width: n.width, height: n.height }, { generateMipMaps: !1, type: 0, samplingMode: 2, generateDepthBuffer: !1, generateStencilBuffer: !1 }); !this._rescalePostProcess && t._RescalePostProcessFactory && (this._rescalePostProcess = t._RescalePostProcessFactory(this)), this._rescalePostProcess.getEffect().executeWhenCompiled(function () { a._rescalePostProcess.onApply = function (t) { t._bindTexture("textureSampler", e); }; var t = i; t || (t = a.scenes[a.scenes.length - 1]), t.postProcessManager.directRender([a._rescalePostProcess], s, !0), a._bindTextureDirectly(a._gl.TEXTURE_2D, n, !0), a._gl.copyTexImage2D(a._gl.TEXTURE_2D, 0, r, 0, 0, n.width, n.height, 0), a.unBindFramebuffer(s), a._releaseTexture(s), o && o(); }); }), (t.prototype.getFps = function () { return this._fps; }), (t.prototype.getDeltaTime = function () { return this._deltaTime; }), (t.prototype._measureFps = function () { this._performanceMonitor.sampleFrame(), (this._fps = this._performanceMonitor.averageFPS), (this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0); }), (t.prototype._uploadImageToTexture = function (e, t, n, i) { void 0 === n && (n = 0), void 0 === i && (i = 0); var r = this._gl, o = this._getWebGLTextureType(e.type), a = this._getInternalFormat(e.format), s = this._getRGBABufferInternalSizedFormat(e.type, a), c = e.isCube ? r.TEXTURE_CUBE_MAP : r.TEXTURE_2D; this._bindTextureDirectly(c, e, !0), this._unpackFlipY(e.invertY); var l = r.TEXTURE_2D; e.isCube && (l = r.TEXTURE_CUBE_MAP_POSITIVE_X + n), r.texImage2D(l, i, s, a, o, t), this._bindTextureDirectly(c, null, !0); }), (t.prototype.updateDynamicIndexBuffer = function (e, t, n) { var i; void 0 === n && (n = 0), (this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null), this.bindIndexBuffer(e), (i = t instanceof Uint16Array || t instanceof Uint32Array ? t : e.is32Bits ? new Uint32Array(t) : new Uint16Array(t)), this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, i, this._gl.DYNAMIC_DRAW), this._resetIndexBufferBinding(); }), (t.prototype.updateRenderTargetTextureSampleCount = function (e, t) { if (this.webGLVersion < 2 || !e) return 1; if (e.samples === t) return t; var n = this._gl; if ( ((t = Math.min(t, this.getCaps().maxMSAASamples)), e._depthStencilBuffer && (n.deleteRenderbuffer(e._depthStencilBuffer), (e._depthStencilBuffer = null)), e._MSAAFramebuffer && (n.deleteFramebuffer(e._MSAAFramebuffer), (e._MSAAFramebuffer = null)), e._MSAARenderBuffer && (n.deleteRenderbuffer(e._MSAARenderBuffer), (e._MSAARenderBuffer = null)), t > 1 && n.renderbufferStorageMultisample) ) { var i = n.createFramebuffer(); if (!i) throw new Error("Unable to create multi sampled framebuffer"); (e._MSAAFramebuffer = i), this._bindUnboundFramebuffer(e._MSAAFramebuffer); var r = n.createRenderbuffer(); if (!r) throw new Error("Unable to create multi sampled framebuffer"); n.bindRenderbuffer(n.RENDERBUFFER, r), n.renderbufferStorageMultisample(n.RENDERBUFFER, t, this._getRGBAMultiSampleBufferFormat(e.type), e.width, e.height), n.framebufferRenderbuffer(n.FRAMEBUFFER, n.COLOR_ATTACHMENT0, n.RENDERBUFFER, r), (e._MSAARenderBuffer = r); } else this._bindUnboundFramebuffer(e._framebuffer); return (e.samples = t), (e._depthStencilBuffer = this._setupFramebufferDepthAttachments(e._generateStencilBuffer, e._generateDepthBuffer, e.width, e.height, t)), this._bindUnboundFramebuffer(null), t; }), (t.prototype.updateTextureComparisonFunction = function (e, t) { if (1 !== this.webGLVersion) { var n = this._gl; e.isCube ? (this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, e, !0), 0 === t ? (n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_FUNC, 515), n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_MODE, n.NONE)) : (n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_FUNC, t), n.texParameteri(n.TEXTURE_CUBE_MAP, n.TEXTURE_COMPARE_MODE, n.COMPARE_REF_TO_TEXTURE)), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null)) : (this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0), 0 === t ? (n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_FUNC, 515), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_MODE, n.NONE)) : (n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_FUNC, t), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_COMPARE_MODE, n.COMPARE_REF_TO_TEXTURE)), this._bindTextureDirectly(this._gl.TEXTURE_2D, null)), (e._comparisonFunction = t); } else d.a.Error("WebGL 1 does not support texture comparison."); }), (t.prototype.createInstancesBuffer = function (e) { var t = this._gl.createBuffer(); if (!t) throw new Error("Unable to create instance buffer"); var n = new h.a(t); return (n.capacity = e), this.bindArrayBuffer(n), this._gl.bufferData(this._gl.ARRAY_BUFFER, e, this._gl.DYNAMIC_DRAW), n; }), (t.prototype.deleteInstancesBuffer = function (e) { this._gl.deleteBuffer(e); }), (t.prototype._clientWaitAsync = function (e, t, n) { void 0 === t && (t = 0), void 0 === n && (n = 10); var i = this._gl; return new Promise(function (r, o) { var a = function () { var s = i.clientWaitSync(e, t, 0); s != i.WAIT_FAILED ? (s != i.TIMEOUT_EXPIRED ? r() : setTimeout(a, n)) : o(); }; a(); }); }), (t.prototype._readPixelsAsync = function (e, t, n, i, r, o, a) { if (this._webGLVersion < 2) throw new Error("_readPixelsAsync only work on WebGL2+"); var s = this._gl, c = s.createBuffer(); s.bindBuffer(s.PIXEL_PACK_BUFFER, c), s.bufferData(s.PIXEL_PACK_BUFFER, a.byteLength, s.STREAM_READ), s.readPixels(e, t, n, i, r, o, 0), s.bindBuffer(s.PIXEL_PACK_BUFFER, null); var l = s.fenceSync(s.SYNC_GPU_COMMANDS_COMPLETE, 0); return l ? (s.flush(), this._clientWaitAsync(l, 0, 10).then(function () { return s.deleteSync(l), s.bindBuffer(s.PIXEL_PACK_BUFFER, c), s.getBufferSubData(s.PIXEL_PACK_BUFFER, 0, a), s.bindBuffer(s.PIXEL_PACK_BUFFER, null), s.deleteBuffer(c), a; })) : null; }), (t.prototype._readTexturePixels = function (e, t, n, i, r, o) { void 0 === i && (i = -1), void 0 === r && (r = 0), void 0 === o && (o = null); var a = this._gl; if (!this._dummyFramebuffer) { var s = a.createFramebuffer(); if (!s) throw new Error("Unable to create dummy framebuffer"); this._dummyFramebuffer = s; } a.bindFramebuffer(a.FRAMEBUFFER, this._dummyFramebuffer), i > -1 ? a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_CUBE_MAP_POSITIVE_X + i, e._webGLTexture, r) : a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, e._webGLTexture, r); var c = void 0 !== e.type ? this._getWebGLTextureType(e.type) : a.UNSIGNED_BYTE; switch (c) { case a.UNSIGNED_BYTE: o || (o = new Uint8Array(4 * t * n)), (c = a.UNSIGNED_BYTE); break; default: o || (o = new Float32Array(4 * t * n)), (c = a.FLOAT); } return a.readPixels(0, 0, t, n, a.RGBA, c, o), a.bindFramebuffer(a.FRAMEBUFFER, this._currentFramebuffer), o; }), (t.prototype.dispose = function () { for (this.hideLoadingUI(), this.onNewSceneAddedObservable.clear(); this.postProcesses.length; ) this.postProcesses[0].dispose(); for (this._rescalePostProcess && this._rescalePostProcess.dispose(); this.scenes.length; ) this.scenes[0].dispose(); 1 === t.Instances.length && t.audioEngine && t.audioEngine.dispose(), this._dummyFramebuffer && this._gl.deleteFramebuffer(this._dummyFramebuffer), this.disableVR(), o.a.IsWindowObjectExist() && (window.removeEventListener("blur", this._onBlur), window.removeEventListener("focus", this._onFocus), this._renderingCanvas && (this._renderingCanvas.removeEventListener("focus", this._onCanvasFocus), this._renderingCanvas.removeEventListener("blur", this._onCanvasBlur), this._renderingCanvas.removeEventListener("pointerout", this._onCanvasPointerOut)), document.removeEventListener("fullscreenchange", this._onFullscreenChange), document.removeEventListener("mozfullscreenchange", this._onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this._onFullscreenChange), document.removeEventListener("msfullscreenchange", this._onFullscreenChange), document.removeEventListener("pointerlockchange", this._onPointerLockChange), document.removeEventListener("mspointerlockchange", this._onPointerLockChange), document.removeEventListener("mozpointerlockchange", this._onPointerLockChange), document.removeEventListener("webkitpointerlockchange", this._onPointerLockChange)), e.prototype.dispose.call(this); var n = t.Instances.indexOf(this); n >= 0 && t.Instances.splice(n, 1), this.onResizeObservable.clear(), this.onCanvasBlurObservable.clear(), this.onCanvasFocusObservable.clear(), this.onCanvasPointerOutObservable.clear(), this.onBeginFrameObservable.clear(), this.onEndFrameObservable.clear(); }), (t.prototype._disableTouchAction = function () { this._renderingCanvas && this._renderingCanvas.setAttribute && (this._renderingCanvas.setAttribute("touch-action", "none"), (this._renderingCanvas.style.touchAction = "none"), (this._renderingCanvas.style.msTouchAction = "none")); }), (t.prototype.displayLoadingUI = function () { if (o.a.IsWindowObjectExist()) { var e = this.loadingScreen; e && e.displayLoadingUI(); } }), (t.prototype.hideLoadingUI = function () { if (o.a.IsWindowObjectExist()) { var e = this._loadingScreen; e && e.hideLoadingUI(); } }), Object.defineProperty(t.prototype, "loadingScreen", { get: function () { return !this._loadingScreen && this._renderingCanvas && (this._loadingScreen = t.DefaultLoadingScreenFactory(this._renderingCanvas)), this._loadingScreen; }, set: function (e) { this._loadingScreen = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "loadingUIText", { set: function (e) { this.loadingScreen.loadingUIText = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "loadingUIBackgroundColor", { set: function (e) { this.loadingScreen.loadingUIBackgroundColor = e; }, enumerable: !0, configurable: !0, }), (t._RequestPointerlock = function (e) { (e.requestPointerLock = e.requestPointerLock || e.msRequestPointerLock || e.mozRequestPointerLock || e.webkitRequestPointerLock), e.requestPointerLock && e.requestPointerLock(); }), (t._ExitPointerlock = function () { var e = document; (document.exitPointerLock = document.exitPointerLock || e.msExitPointerLock || e.mozExitPointerLock || e.webkitExitPointerLock), document.exitPointerLock && document.exitPointerLock(); }), (t._RequestFullscreen = function (e) { var t = e.requestFullscreen || e.msRequestFullscreen || e.webkitRequestFullscreen || e.mozRequestFullScreen; t && t.call(e); }), (t._ExitFullscreen = function () { var e = document; document.exitFullscreen ? document.exitFullscreen() : e.mozCancelFullScreen ? e.mozCancelFullScreen() : e.webkitCancelFullScreen ? e.webkitCancelFullScreen() : e.msCancelFullScreen && e.msCancelFullScreen(); }), (t.ALPHA_DISABLE = 0), (t.ALPHA_ADD = 1), (t.ALPHA_COMBINE = 2), (t.ALPHA_SUBTRACT = 3), (t.ALPHA_MULTIPLY = 4), (t.ALPHA_MAXIMIZED = 5), (t.ALPHA_ONEONE = 6), (t.ALPHA_PREMULTIPLIED = 7), (t.ALPHA_PREMULTIPLIED_PORTERDUFF = 8), (t.ALPHA_INTERPOLATE = 9), (t.ALPHA_SCREENMODE = 10), (t.DELAYLOADSTATE_NONE = 0), (t.DELAYLOADSTATE_LOADED = 1), (t.DELAYLOADSTATE_LOADING = 2), (t.DELAYLOADSTATE_NOTLOADED = 4), (t.NEVER = 512), (t.ALWAYS = 519), (t.LESS = 513), (t.EQUAL = 514), (t.LEQUAL = 515), (t.GREATER = 516), (t.GEQUAL = 518), (t.NOTEQUAL = 517), (t.KEEP = 7680), (t.REPLACE = 7681), (t.INCR = 7682), (t.DECR = 7683), (t.INVERT = 5386), (t.INCR_WRAP = 34055), (t.DECR_WRAP = 34056), (t.TEXTURE_CLAMP_ADDRESSMODE = 0), (t.TEXTURE_WRAP_ADDRESSMODE = 1), (t.TEXTURE_MIRROR_ADDRESSMODE = 2), (t.TEXTUREFORMAT_ALPHA = 0), (t.TEXTUREFORMAT_LUMINANCE = 1), (t.TEXTUREFORMAT_LUMINANCE_ALPHA = 2), (t.TEXTUREFORMAT_RGB = 4), (t.TEXTUREFORMAT_RGBA = 5), (t.TEXTUREFORMAT_RED = 6), (t.TEXTUREFORMAT_R = 6), (t.TEXTUREFORMAT_RG = 7), (t.TEXTUREFORMAT_RED_INTEGER = 8), (t.TEXTUREFORMAT_R_INTEGER = 8), (t.TEXTUREFORMAT_RG_INTEGER = 9), (t.TEXTUREFORMAT_RGB_INTEGER = 10), (t.TEXTUREFORMAT_RGBA_INTEGER = 11), (t.TEXTURETYPE_UNSIGNED_BYTE = 0), (t.TEXTURETYPE_UNSIGNED_INT = 0), (t.TEXTURETYPE_FLOAT = 1), (t.TEXTURETYPE_HALF_FLOAT = 2), (t.TEXTURETYPE_BYTE = 3), (t.TEXTURETYPE_SHORT = 4), (t.TEXTURETYPE_UNSIGNED_SHORT = 5), (t.TEXTURETYPE_INT = 6), (t.TEXTURETYPE_UNSIGNED_INTEGER = 7), (t.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8), (t.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9), (t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10), (t.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11), (t.TEXTURETYPE_UNSIGNED_INT_24_8 = 12), (t.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13), (t.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14), (t.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15), (t.TEXTURE_NEAREST_SAMPLINGMODE = 1), (t.TEXTURE_BILINEAR_SAMPLINGMODE = 2), (t.TEXTURE_TRILINEAR_SAMPLINGMODE = 3), (t.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8), (t.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11), (t.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3), (t.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4), (t.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5), (t.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6), (t.TEXTURE_NEAREST_LINEAR = 7), (t.TEXTURE_NEAREST_NEAREST = 1), (t.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9), (t.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10), (t.TEXTURE_LINEAR_LINEAR = 2), (t.TEXTURE_LINEAR_NEAREST = 12), (t.TEXTURE_EXPLICIT_MODE = 0), (t.TEXTURE_SPHERICAL_MODE = 1), (t.TEXTURE_PLANAR_MODE = 2), (t.TEXTURE_CUBIC_MODE = 3), (t.TEXTURE_PROJECTION_MODE = 4), (t.TEXTURE_SKYBOX_MODE = 5), (t.TEXTURE_INVCUBIC_MODE = 6), (t.TEXTURE_EQUIRECTANGULAR_MODE = 7), (t.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8), (t.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9), (t.SCALEMODE_FLOOR = 1), (t.SCALEMODE_NEAREST = 2), (t.SCALEMODE_CEILING = 3), (t._RescalePostProcessFactory = null), t ); })(c.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.WithinEpsilon = function (e, t, n) { void 0 === n && (n = 1401298e-51); var i = e - t; return -n <= i && i <= n; }), (e.ToHex = function (e) { var t = e.toString(16); return e <= 15 ? ("0" + t).toUpperCase() : t.toUpperCase(); }), (e.Sign = function (e) { return 0 === (e = +e) || isNaN(e) ? e : e > 0 ? 1 : -1; }), (e.Clamp = function (e, t, n) { return void 0 === t && (t = 0), void 0 === n && (n = 1), Math.min(n, Math.max(t, e)); }), (e.Log2 = function (e) { return Math.log(e) * Math.LOG2E; }), (e.Repeat = function (e, t) { return e - Math.floor(e / t) * t; }), (e.Normalize = function (e, t, n) { return (e - t) / (n - t); }), (e.Denormalize = function (e, t, n) { return e * (n - t) + t; }), (e.DeltaAngle = function (t, n) { var i = e.Repeat(n - t, 360); return i > 180 && (i -= 360), i; }), (e.PingPong = function (t, n) { var i = e.Repeat(t, 2 * n); return n - Math.abs(i - n); }), (e.SmoothStep = function (t, n, i) { var r = e.Clamp(i); return n * (r = -2 * r * r * r + 3 * r * r) + t * (1 - r); }), (e.MoveTowards = function (t, n, i) { return Math.abs(n - t) <= i ? n : t + e.Sign(n - t) * i; }), (e.MoveTowardsAngle = function (t, n, i) { var r = e.DeltaAngle(t, n), o = 0; return -i < r && r < i ? (o = n) : ((n = t + r), (o = e.MoveTowards(t, n, i))), o; }), (e.Lerp = function (e, t, n) { return e + (t - e) * n; }), (e.LerpAngle = function (t, n, i) { var r = e.Repeat(n - t, 360); return r > 180 && (r -= 360), t + r * e.Clamp(i); }), (e.InverseLerp = function (t, n, i) { return t != n ? e.Clamp((i - t) / (n - t)) : 0; }), (e.Hermite = function (e, t, n, i, r) { var o = r * r, a = r * o; return e * (2 * a - 3 * o + 1) + n * (-2 * a + 3 * o) + t * (a - 2 * o + r) + i * (a - o); }), (e.RandomRange = function (e, t) { return e === t ? e : Math.random() * (t - e) + e; }), (e.RangeToPercent = function (e, t, n) { return (e - t) / (n - t); }), (e.PercentToRange = function (e, t, n) { return (n - t) * e + t; }), (e.NormalizeRadians = function (t) { return (t -= e.TwoPi * Math.floor((t + Math.PI) / e.TwoPi)); }), (e.TwoPi = 2 * Math.PI), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(1), r = n(4), o = n(22), a = n(5), s = (function () { function e() {} return ( (e.prototype.set = function (e, t) { switch (t) { case r.b.PositionKind: this.positions = e; break; case r.b.NormalKind: this.normals = e; break; case r.b.TangentKind: this.tangents = e; break; case r.b.UVKind: this.uvs = e; break; case r.b.UV2Kind: this.uvs2 = e; break; case r.b.UV3Kind: this.uvs3 = e; break; case r.b.UV4Kind: this.uvs4 = e; break; case r.b.UV5Kind: this.uvs5 = e; break; case r.b.UV6Kind: this.uvs6 = e; break; case r.b.ColorKind: this.colors = e; break; case r.b.MatricesIndicesKind: this.matricesIndices = e; break; case r.b.MatricesWeightsKind: this.matricesWeights = e; break; case r.b.MatricesIndicesExtraKind: this.matricesIndicesExtra = e; break; case r.b.MatricesWeightsExtraKind: this.matricesWeightsExtra = e; } }), (e.prototype.applyToMesh = function (e, t) { return this._applyTo(e, t), this; }), (e.prototype.applyToGeometry = function (e, t) { return this._applyTo(e, t), this; }), (e.prototype.updateMesh = function (e) { return this._update(e), this; }), (e.prototype.updateGeometry = function (e) { return this._update(e), this; }), (e.prototype._applyTo = function (e, t) { return ( void 0 === t && (t = !1), this.positions && e.setVerticesData(r.b.PositionKind, this.positions, t), this.normals && e.setVerticesData(r.b.NormalKind, this.normals, t), this.tangents && e.setVerticesData(r.b.TangentKind, this.tangents, t), this.uvs && e.setVerticesData(r.b.UVKind, this.uvs, t), this.uvs2 && e.setVerticesData(r.b.UV2Kind, this.uvs2, t), this.uvs3 && e.setVerticesData(r.b.UV3Kind, this.uvs3, t), this.uvs4 && e.setVerticesData(r.b.UV4Kind, this.uvs4, t), this.uvs5 && e.setVerticesData(r.b.UV5Kind, this.uvs5, t), this.uvs6 && e.setVerticesData(r.b.UV6Kind, this.uvs6, t), this.colors && e.setVerticesData(r.b.ColorKind, this.colors, t), this.matricesIndices && e.setVerticesData(r.b.MatricesIndicesKind, this.matricesIndices, t), this.matricesWeights && e.setVerticesData(r.b.MatricesWeightsKind, this.matricesWeights, t), this.matricesIndicesExtra && e.setVerticesData(r.b.MatricesIndicesExtraKind, this.matricesIndicesExtra, t), this.matricesWeightsExtra && e.setVerticesData(r.b.MatricesWeightsExtraKind, this.matricesWeightsExtra, t), this.indices ? e.setIndices(this.indices, null, t) : e.setIndices([], null), this ); }), (e.prototype._update = function (e, t, n) { return ( this.positions && e.updateVerticesData(r.b.PositionKind, this.positions, t, n), this.normals && e.updateVerticesData(r.b.NormalKind, this.normals, t, n), this.tangents && e.updateVerticesData(r.b.TangentKind, this.tangents, t, n), this.uvs && e.updateVerticesData(r.b.UVKind, this.uvs, t, n), this.uvs2 && e.updateVerticesData(r.b.UV2Kind, this.uvs2, t, n), this.uvs3 && e.updateVerticesData(r.b.UV3Kind, this.uvs3, t, n), this.uvs4 && e.updateVerticesData(r.b.UV4Kind, this.uvs4, t, n), this.uvs5 && e.updateVerticesData(r.b.UV5Kind, this.uvs5, t, n), this.uvs6 && e.updateVerticesData(r.b.UV6Kind, this.uvs6, t, n), this.colors && e.updateVerticesData(r.b.ColorKind, this.colors, t, n), this.matricesIndices && e.updateVerticesData(r.b.MatricesIndicesKind, this.matricesIndices, t, n), this.matricesWeights && e.updateVerticesData(r.b.MatricesWeightsKind, this.matricesWeights, t, n), this.matricesIndicesExtra && e.updateVerticesData(r.b.MatricesIndicesExtraKind, this.matricesIndicesExtra, t, n), this.matricesWeightsExtra && e.updateVerticesData(r.b.MatricesWeightsExtraKind, this.matricesWeightsExtra, t, n), this.indices && e.setIndices(this.indices, null), this ); }), (e.prototype.transform = function (e) { var t, n = e.m[0] * e.m[5] * e.m[10] < 0, r = i.e.Zero(); if (this.positions) { var o = i.e.Zero(); for (t = 0; t < this.positions.length; t += 3) i.e.FromArrayToRef(this.positions, t, o), i.e.TransformCoordinatesToRef(o, e, r), (this.positions[t] = r.x), (this.positions[t + 1] = r.y), (this.positions[t + 2] = r.z); } if (this.normals) { var a = i.e.Zero(); for (t = 0; t < this.normals.length; t += 3) i.e.FromArrayToRef(this.normals, t, a), i.e.TransformNormalToRef(a, e, r), (this.normals[t] = r.x), (this.normals[t + 1] = r.y), (this.normals[t + 2] = r.z); } if (this.tangents) { var s = i.f.Zero(), c = i.f.Zero(); for (t = 0; t < this.tangents.length; t += 4) i.f.FromArrayToRef(this.tangents, t, s), i.f.TransformNormalToRef(s, e, c), (this.tangents[t] = c.x), (this.tangents[t + 1] = c.y), (this.tangents[t + 2] = c.z), (this.tangents[t + 3] = c.w); } if (n && this.indices) for (t = 0; t < this.indices.length; t += 3) { var l = this.indices[t + 1]; (this.indices[t + 1] = this.indices[t + 2]), (this.indices[t + 2] = l); } return this; }), (e.prototype.merge = function (e, t) { if ( (void 0 === t && (t = !1), this._validate(), e._validate(), !this.normals != !e.normals || !this.tangents != !e.tangents || !this.uvs != !e.uvs || !this.uvs2 != !e.uvs2 || !this.uvs3 != !e.uvs3 || !this.uvs4 != !e.uvs4 || !this.uvs5 != !e.uvs5 || !this.uvs6 != !e.uvs6 || !this.colors != !e.colors || !this.matricesIndices != !e.matricesIndices || !this.matricesWeights != !e.matricesWeights || !this.matricesIndicesExtra != !e.matricesIndicesExtra || !this.matricesWeightsExtra != !e.matricesWeightsExtra) ) throw new Error("Cannot merge vertex data that do not have the same set of attributes"); if (e.indices) { this.indices || (this.indices = []); var n = this.positions ? this.positions.length / 3 : 0; if (void 0 !== this.indices.BYTES_PER_ELEMENT) { var i = this.indices.length + e.indices.length, r = t || this.indices instanceof Uint32Array ? new Uint32Array(i) : new Uint16Array(i); r.set(this.indices); for (var o = this.indices.length, a = 0; a < e.indices.length; a++) r[o + a] = e.indices[a] + n; this.indices = r; } else for (a = 0; a < e.indices.length; a++) this.indices.push(e.indices[a] + n); } return ( (this.positions = this._mergeElement(this.positions, e.positions)), (this.normals = this._mergeElement(this.normals, e.normals)), (this.tangents = this._mergeElement(this.tangents, e.tangents)), (this.uvs = this._mergeElement(this.uvs, e.uvs)), (this.uvs2 = this._mergeElement(this.uvs2, e.uvs2)), (this.uvs3 = this._mergeElement(this.uvs3, e.uvs3)), (this.uvs4 = this._mergeElement(this.uvs4, e.uvs4)), (this.uvs5 = this._mergeElement(this.uvs5, e.uvs5)), (this.uvs6 = this._mergeElement(this.uvs6, e.uvs6)), (this.colors = this._mergeElement(this.colors, e.colors)), (this.matricesIndices = this._mergeElement(this.matricesIndices, e.matricesIndices)), (this.matricesWeights = this._mergeElement(this.matricesWeights, e.matricesWeights)), (this.matricesIndicesExtra = this._mergeElement(this.matricesIndicesExtra, e.matricesIndicesExtra)), (this.matricesWeightsExtra = this._mergeElement(this.matricesWeightsExtra, e.matricesWeightsExtra)), this ); }), (e.prototype._mergeElement = function (e, t) { if (!e) return t; if (!t) return e; var n = t.length + e.length, i = e instanceof Float32Array, r = t instanceof Float32Array; if (i) { var o = new Float32Array(n); return o.set(e), o.set(t, e.length), o; } if (r) { var a = e.slice(0), s = 0; for (n = t.length; s < n; s++) a.push(t[s]); return a; } return e.concat(t); }), (e.prototype._validate = function () { if (!this.positions) throw new Error("Positions are required"); var e = function (e, t) { var n = r.b.DeduceStride(e); if (t.length % n != 0) throw new Error("The " + e + "s array count must be a multiple of " + n); return t.length / n; }, t = e(r.b.PositionKind, this.positions), n = function (n, i) { var r = e(n, i); if (r !== t) throw new Error("The " + n + "s element count (" + r + ") does not match the positions count (" + t + ")"); }; this.normals && n(r.b.NormalKind, this.normals), this.tangents && n(r.b.TangentKind, this.tangents), this.uvs && n(r.b.UVKind, this.uvs), this.uvs2 && n(r.b.UV2Kind, this.uvs2), this.uvs3 && n(r.b.UV3Kind, this.uvs3), this.uvs4 && n(r.b.UV4Kind, this.uvs4), this.uvs5 && n(r.b.UV5Kind, this.uvs5), this.uvs6 && n(r.b.UV6Kind, this.uvs6), this.colors && n(r.b.ColorKind, this.colors), this.matricesIndices && n(r.b.MatricesIndicesKind, this.matricesIndices), this.matricesWeights && n(r.b.MatricesWeightsKind, this.matricesWeights), this.matricesIndicesExtra && n(r.b.MatricesIndicesExtraKind, this.matricesIndicesExtra), this.matricesWeightsExtra && n(r.b.MatricesWeightsExtraKind, this.matricesWeightsExtra); }), (e.prototype.serialize = function () { var e = this.serialize(); return ( this.positions && (e.positions = this.positions), this.normals && (e.normals = this.normals), this.tangents && (e.tangents = this.tangents), this.uvs && (e.uvs = this.uvs), this.uvs2 && (e.uvs2 = this.uvs2), this.uvs3 && (e.uvs3 = this.uvs3), this.uvs4 && (e.uvs4 = this.uvs4), this.uvs5 && (e.uvs5 = this.uvs5), this.uvs6 && (e.uvs6 = this.uvs6), this.colors && (e.colors = this.colors), this.matricesIndices && ((e.matricesIndices = this.matricesIndices), (e.matricesIndices._isExpanded = !0)), this.matricesWeights && (e.matricesWeights = this.matricesWeights), this.matricesIndicesExtra && ((e.matricesIndicesExtra = this.matricesIndicesExtra), (e.matricesIndicesExtra._isExpanded = !0)), this.matricesWeightsExtra && (e.matricesWeightsExtra = this.matricesWeightsExtra), (e.indices = this.indices), e ); }), (e.ExtractFromMesh = function (t, n, i) { return e._ExtractFrom(t, n, i); }), (e.ExtractFromGeometry = function (t, n, i) { return e._ExtractFrom(t, n, i); }), (e._ExtractFrom = function (t, n, i) { var o = new e(); return ( t.isVerticesDataPresent(r.b.PositionKind) && (o.positions = t.getVerticesData(r.b.PositionKind, n, i)), t.isVerticesDataPresent(r.b.NormalKind) && (o.normals = t.getVerticesData(r.b.NormalKind, n, i)), t.isVerticesDataPresent(r.b.TangentKind) && (o.tangents = t.getVerticesData(r.b.TangentKind, n, i)), t.isVerticesDataPresent(r.b.UVKind) && (o.uvs = t.getVerticesData(r.b.UVKind, n, i)), t.isVerticesDataPresent(r.b.UV2Kind) && (o.uvs2 = t.getVerticesData(r.b.UV2Kind, n, i)), t.isVerticesDataPresent(r.b.UV3Kind) && (o.uvs3 = t.getVerticesData(r.b.UV3Kind, n, i)), t.isVerticesDataPresent(r.b.UV4Kind) && (o.uvs4 = t.getVerticesData(r.b.UV4Kind, n, i)), t.isVerticesDataPresent(r.b.UV5Kind) && (o.uvs5 = t.getVerticesData(r.b.UV5Kind, n, i)), t.isVerticesDataPresent(r.b.UV6Kind) && (o.uvs6 = t.getVerticesData(r.b.UV6Kind, n, i)), t.isVerticesDataPresent(r.b.ColorKind) && (o.colors = t.getVerticesData(r.b.ColorKind, n, i)), t.isVerticesDataPresent(r.b.MatricesIndicesKind) && (o.matricesIndices = t.getVerticesData(r.b.MatricesIndicesKind, n, i)), t.isVerticesDataPresent(r.b.MatricesWeightsKind) && (o.matricesWeights = t.getVerticesData(r.b.MatricesWeightsKind, n, i)), t.isVerticesDataPresent(r.b.MatricesIndicesExtraKind) && (o.matricesIndicesExtra = t.getVerticesData(r.b.MatricesIndicesExtraKind, n, i)), t.isVerticesDataPresent(r.b.MatricesWeightsExtraKind) && (o.matricesWeightsExtra = t.getVerticesData(r.b.MatricesWeightsExtraKind, n, i)), (o.indices = t.getIndices(n, i)), o ); }), (e.CreateRibbon = function (e) { throw o.a.WarnImport("ribbonBuilder"); }), (e.CreateBox = function (e) { throw o.a.WarnImport("boxBuilder"); }), (e.CreateTiledBox = function (e) { throw o.a.WarnImport("tiledBoxBuilder"); }), (e.CreateTiledPlane = function (e) { throw o.a.WarnImport("tiledPlaneBuilder"); }), (e.CreateSphere = function (e) { throw o.a.WarnImport("sphereBuilder"); }), (e.CreateCylinder = function (e) { throw o.a.WarnImport("cylinderBuilder"); }), (e.CreateTorus = function (e) { throw o.a.WarnImport("torusBuilder"); }), (e.CreateLineSystem = function (e) { throw o.a.WarnImport("linesBuilder"); }), (e.CreateDashedLines = function (e) { throw o.a.WarnImport("linesBuilder"); }), (e.CreateGround = function (e) { throw o.a.WarnImport("groundBuilder"); }), (e.CreateTiledGround = function (e) { throw o.a.WarnImport("groundBuilder"); }), (e.CreateGroundFromHeightMap = function (e) { throw o.a.WarnImport("groundBuilder"); }), (e.CreatePlane = function (e) { throw o.a.WarnImport("planeBuilder"); }), (e.CreateDisc = function (e) { throw o.a.WarnImport("discBuilder"); }), (e.CreatePolygon = function (e, t, n, i, r, a) { throw o.a.WarnImport("polygonBuilder"); }), (e.CreateIcoSphere = function (e) { throw o.a.WarnImport("icoSphereBuilder"); }), (e.CreatePolyhedron = function (e) { throw o.a.WarnImport("polyhedronBuilder"); }), (e.CreateTorusKnot = function (e) { throw o.a.WarnImport("torusKnotBuilder"); }), (e.ComputeNormals = function (e, t, n, r) { var o = 0, a = 0, s = 0, c = 0, l = 0, u = 0, h = 0, d = 0, p = 0, f = 0, m = 0, g = 0, b = 0, _ = 0, v = 0, y = 0, C = 0, P = 0, x = 0, T = 0, S = !1, O = !1, E = !1, M = !1, A = 1, I = 0, D = null; if (r && ((S = !!r.facetNormals), (O = !!r.facetPositions), (E = !!r.facetPartitioning), (A = !0 === r.useRightHandedSystem ? -1 : 1), (I = r.ratio || 0), (M = !!r.depthSort), (D = r.distanceTo), M)) { void 0 === D && (D = i.e.Zero()); var R = r.depthSortedFacets; } var w = 0, L = 0, F = 0, N = 0; if (E && r && r.bbSize) { var k = 0, z = 0, j = 0, B = 0, V = 0, G = 0, U = 0, H = 0, W = 0, X = 0, Y = 0, K = 0, Z = 0, q = 0, Q = 0, J = 0, $ = r.bbSize.x > r.bbSize.y ? r.bbSize.x : r.bbSize.y; ($ = $ > r.bbSize.z ? $ : r.bbSize.z), (w = (r.subDiv.X * I) / r.bbSize.x), (L = (r.subDiv.Y * I) / r.bbSize.y), (F = (r.subDiv.Z * I) / r.bbSize.z), (N = r.subDiv.max * r.subDiv.max), (r.facetPartitioning.length = 0); } for (o = 0; o < e.length; o++) n[o] = 0; var ee = (t.length / 3) | 0; for (o = 0; o < ee; o++) { if ( ((b = (g = 3 * t[3 * o]) + 1), (_ = g + 2), (y = (v = 3 * t[3 * o + 1]) + 1), (C = v + 2), (x = (P = 3 * t[3 * o + 2]) + 1), (T = P + 2), (a = e[g] - e[v]), (s = e[b] - e[y]), (c = e[_] - e[C]), (l = e[P] - e[v]), (u = e[x] - e[y]), (d = A * (s * (h = e[T] - e[C]) - c * u)), (p = A * (c * l - a * h)), (f = A * (a * u - s * l)), (d /= m = 0 === (m = Math.sqrt(d * d + p * p + f * f)) ? 1 : m), (p /= m), (f /= m), S && r && ((r.facetNormals[o].x = d), (r.facetNormals[o].y = p), (r.facetNormals[o].z = f)), O && r && ((r.facetPositions[o].x = (e[g] + e[v] + e[P]) / 3), (r.facetPositions[o].y = (e[b] + e[y] + e[x]) / 3), (r.facetPositions[o].z = (e[_] + e[C] + e[T]) / 3)), E && r && ((k = Math.floor((r.facetPositions[o].x - r.bInfo.minimum.x * I) * w)), (z = Math.floor((r.facetPositions[o].y - r.bInfo.minimum.y * I) * L)), (j = Math.floor((r.facetPositions[o].z - r.bInfo.minimum.z * I) * F)), (B = Math.floor((e[g] - r.bInfo.minimum.x * I) * w)), (V = Math.floor((e[b] - r.bInfo.minimum.y * I) * L)), (G = Math.floor((e[_] - r.bInfo.minimum.z * I) * F)), (U = Math.floor((e[v] - r.bInfo.minimum.x * I) * w)), (H = Math.floor((e[y] - r.bInfo.minimum.y * I) * L)), (W = Math.floor((e[C] - r.bInfo.minimum.z * I) * F)), (X = Math.floor((e[P] - r.bInfo.minimum.x * I) * w)), (Y = Math.floor((e[x] - r.bInfo.minimum.y * I) * L)), (K = Math.floor((e[T] - r.bInfo.minimum.z * I) * F)), (q = B + r.subDiv.max * V + N * G), (Q = U + r.subDiv.max * H + N * W), (J = X + r.subDiv.max * Y + N * K), (Z = k + r.subDiv.max * z + N * j), (r.facetPartitioning[Z] = r.facetPartitioning[Z] ? r.facetPartitioning[Z] : new Array()), (r.facetPartitioning[q] = r.facetPartitioning[q] ? r.facetPartitioning[q] : new Array()), (r.facetPartitioning[Q] = r.facetPartitioning[Q] ? r.facetPartitioning[Q] : new Array()), (r.facetPartitioning[J] = r.facetPartitioning[J] ? r.facetPartitioning[J] : new Array()), r.facetPartitioning[q].push(o), Q != q && r.facetPartitioning[Q].push(o), J != Q && J != q && r.facetPartitioning[J].push(o), Z != q && Z != Q && Z != J && r.facetPartitioning[Z].push(o)), M && r && r.facetPositions) ) { var te = R[o]; (te.ind = 3 * o), (te.sqDistance = i.e.DistanceSquared(r.facetPositions[o], D)); } (n[g] += d), (n[b] += p), (n[_] += f), (n[v] += d), (n[y] += p), (n[C] += f), (n[P] += d), (n[x] += p), (n[T] += f); } for (o = 0; o < n.length / 3; o++) (d = n[3 * o]), (p = n[3 * o + 1]), (f = n[3 * o + 2]), (d /= m = 0 === (m = Math.sqrt(d * d + p * p + f * f)) ? 1 : m), (p /= m), (f /= m), (n[3 * o] = d), (n[3 * o + 1] = p), (n[3 * o + 2] = f); }), (e._ComputeSides = function (t, n, r, o, a, s, c) { var l, u, h = r.length, d = o.length; switch ((t = t || e.DEFAULTSIDE)) { case e.FRONTSIDE: break; case e.BACKSIDE: var p; for (l = 0; l < h; l += 3) (p = r[l]), (r[l] = r[l + 2]), (r[l + 2] = p); for (u = 0; u < d; u++) o[u] = -o[u]; break; case e.DOUBLESIDE: for (var f = n.length, m = f / 3, g = 0; g < f; g++) n[f + g] = n[g]; for (l = 0; l < h; l += 3) (r[l + h] = r[l + 2] + m), (r[l + 1 + h] = r[l + 1] + m), (r[l + 2 + h] = r[l] + m); for (u = 0; u < d; u++) o[d + u] = -o[u]; var b = a.length, _ = 0; for (_ = 0; _ < b; _++) a[_ + b] = a[_]; for (s = s || new i.f(0, 0, 1, 1), c = c || new i.f(0, 0, 1, 1), _ = 0, l = 0; l < b / 2; l++) (a[_] = s.x + (s.z - s.x) * a[_]), (a[_ + 1] = s.y + (s.w - s.y) * a[_ + 1]), (a[_ + b] = c.x + (c.z - c.x) * a[_ + b]), (a[_ + b + 1] = c.y + (c.w - c.y) * a[_ + b + 1]), (_ += 2); } }), (e.ImportVertexData = function (t, n) { var i = new e(), o = t.positions; o && i.set(o, r.b.PositionKind); var s = t.normals; s && i.set(s, r.b.NormalKind); var c = t.tangents; c && i.set(c, r.b.TangentKind); var l = t.uvs; l && i.set(l, r.b.UVKind); var u = t.uv2s; u && i.set(u, r.b.UV2Kind); var h = t.uv3s; h && i.set(h, r.b.UV3Kind); var d = t.uv4s; d && i.set(d, r.b.UV4Kind); var p = t.uv5s; p && i.set(p, r.b.UV5Kind); var f = t.uv6s; f && i.set(f, r.b.UV6Kind); var m = t.colors; m && i.set(a.b.CheckColors4(m, o.length / 3), r.b.ColorKind); var g = t.matricesIndices; g && i.set(g, r.b.MatricesIndicesKind); var b = t.matricesWeights; b && i.set(b, r.b.MatricesWeightsKind); var _ = t.indices; _ && (i.indices = _), n.setAllVerticesData(i, t.updatable); }), (e.FRONTSIDE = 0), (e.BACKSIDE = 1), (e.DOUBLESIDE = 2), (e.DEFAULTSIDE = 0), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(14), r = (function () { function e() {} return ( Object.defineProperty(e, "DiffuseTextureEnabled", { get: function () { return this._DiffuseTextureEnabled; }, set: function (e) { this._DiffuseTextureEnabled !== e && ((this._DiffuseTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "AmbientTextureEnabled", { get: function () { return this._AmbientTextureEnabled; }, set: function (e) { this._AmbientTextureEnabled !== e && ((this._AmbientTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "OpacityTextureEnabled", { get: function () { return this._OpacityTextureEnabled; }, set: function (e) { this._OpacityTextureEnabled !== e && ((this._OpacityTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ReflectionTextureEnabled", { get: function () { return this._ReflectionTextureEnabled; }, set: function (e) { this._ReflectionTextureEnabled !== e && ((this._ReflectionTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "EmissiveTextureEnabled", { get: function () { return this._EmissiveTextureEnabled; }, set: function (e) { this._EmissiveTextureEnabled !== e && ((this._EmissiveTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "SpecularTextureEnabled", { get: function () { return this._SpecularTextureEnabled; }, set: function (e) { this._SpecularTextureEnabled !== e && ((this._SpecularTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "BumpTextureEnabled", { get: function () { return this._BumpTextureEnabled; }, set: function (e) { this._BumpTextureEnabled !== e && ((this._BumpTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "LightmapTextureEnabled", { get: function () { return this._LightmapTextureEnabled; }, set: function (e) { this._LightmapTextureEnabled !== e && ((this._LightmapTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "RefractionTextureEnabled", { get: function () { return this._RefractionTextureEnabled; }, set: function (e) { this._RefractionTextureEnabled !== e && ((this._RefractionTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ColorGradingTextureEnabled", { get: function () { return this._ColorGradingTextureEnabled; }, set: function (e) { this._ColorGradingTextureEnabled !== e && ((this._ColorGradingTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "FresnelEnabled", { get: function () { return this._FresnelEnabled; }, set: function (e) { this._FresnelEnabled !== e && ((this._FresnelEnabled = e), i.a.MarkAllMaterialsAsDirty(4)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ClearCoatTextureEnabled", { get: function () { return this._ClearCoatTextureEnabled; }, set: function (e) { this._ClearCoatTextureEnabled !== e && ((this._ClearCoatTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ClearCoatBumpTextureEnabled", { get: function () { return this._ClearCoatBumpTextureEnabled; }, set: function (e) { this._ClearCoatBumpTextureEnabled !== e && ((this._ClearCoatBumpTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ClearCoatTintTextureEnabled", { get: function () { return this._ClearCoatTintTextureEnabled; }, set: function (e) { this._ClearCoatTintTextureEnabled !== e && ((this._ClearCoatTintTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "SheenTextureEnabled", { get: function () { return this._SheenTextureEnabled; }, set: function (e) { this._SheenTextureEnabled !== e && ((this._SheenTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "AnisotropicTextureEnabled", { get: function () { return this._AnisotropicTextureEnabled; }, set: function (e) { this._AnisotropicTextureEnabled !== e && ((this._AnisotropicTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ThicknessTextureEnabled", { get: function () { return this._ThicknessTextureEnabled; }, set: function (e) { this._ThicknessTextureEnabled !== e && ((this._ThicknessTextureEnabled = e), i.a.MarkAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), (e._DiffuseTextureEnabled = !0), (e._AmbientTextureEnabled = !0), (e._OpacityTextureEnabled = !0), (e._ReflectionTextureEnabled = !0), (e._EmissiveTextureEnabled = !0), (e._SpecularTextureEnabled = !0), (e._BumpTextureEnabled = !0), (e._LightmapTextureEnabled = !0), (e._RefractionTextureEnabled = !0), (e._ColorGradingTextureEnabled = !0), (e._FresnelEnabled = !0), (e._ClearCoatTextureEnabled = !0), (e._ClearCoatBumpTextureEnabled = !0), (e._ClearCoatTintTextureEnabled = !0), (e._SheenTextureEnabled = !0), (e._AnisotropicTextureEnabled = !0), (e._ThicknessTextureEnabled = !0), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return k; }); var i = n(2), r = n(12), o = n(76), a = n(6), s = n(47), c = n(151), l = n(45), u = n(1), h = n(39), d = n(31), p = n(26), f = n(54), m = n(50), g = n(124), b = n(57), _ = n(81), v = n(64), y = n(135), C = n(136), P = n(21), x = n(56), T = n(10), S = n(25), O = n(22), E = n(20), M = n(130), A = n(89), I = (function () { function e() { (this._singleClick = !1), (this._doubleClick = !1), (this._hasSwiped = !1), (this._ignore = !1); } return ( Object.defineProperty(e.prototype, "singleClick", { get: function () { return this._singleClick; }, set: function (e) { this._singleClick = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "doubleClick", { get: function () { return this._doubleClick; }, set: function (e) { this._doubleClick = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasSwiped", { get: function () { return this._hasSwiped; }, set: function (e) { this._hasSwiped = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "ignore", { get: function () { return this._ignore; }, set: function (e) { this._ignore = e; }, enumerable: !0, configurable: !0, }), e ); })(), D = (function () { function e(e) { (this._wheelEventName = ""), (this._meshPickProceed = !1), (this._currentPickResult = null), (this._previousPickResult = null), (this._totalPointersPressed = 0), (this._doubleClickOccured = !1), (this._pointerX = 0), (this._pointerY = 0), (this._startingPointerPosition = new u.d(0, 0)), (this._previousStartingPointerPosition = new u.d(0, 0)), (this._startingPointerTime = 0), (this._previousStartingPointerTime = 0), (this._pointerCaptures = {}), (this._scene = e); } return ( Object.defineProperty(e.prototype, "meshUnderPointer", { get: function () { return this._pointerOverMesh; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "unTranslatedPointer", { get: function () { return new u.d(this._unTranslatedPointerX, this._unTranslatedPointerY); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "pointerX", { get: function () { return this._pointerX; }, set: function (e) { this._pointerX = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "pointerY", { get: function () { return this._pointerY; }, set: function (e) { this._pointerY = e; }, enumerable: !0, configurable: !0, }), (e.prototype._updatePointerPosition = function (e) { var t = this._scene.getEngine().getInputElementClientRect(); t && ((this._pointerX = e.clientX - t.left), (this._pointerY = e.clientY - t.top), (this._unTranslatedPointerX = this._pointerX), (this._unTranslatedPointerY = this._pointerY)); }), (e.prototype._processPointerMove = function (e, t) { var n = this._scene, i = n.getEngine(), r = i.getInputElement(); if (r) { (r.tabIndex = i.canvasTabIndex), n.doNotHandleCursors || (r.style.cursor = n.defaultCursor); var o = !!(e && e.hit && e.pickedMesh); o ? (n.setPointerOverMesh(e.pickedMesh), this._pointerOverMesh && this._pointerOverMesh.actionManager && this._pointerOverMesh.actionManager.hasPointerTriggers && (n.doNotHandleCursors || (this._pointerOverMesh.actionManager.hoverCursor ? (r.style.cursor = this._pointerOverMesh.actionManager.hoverCursor) : (r.style.cursor = n.hoverCursor)))) : n.setPointerOverMesh(null); for (var a = 0, s = n._pointerMoveStage; a < s.length; a++) { e = s[a].action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, o, r); } if (e) { var c = t.type === this._wheelEventName ? E.a.POINTERWHEEL : E.a.POINTERMOVE; if ((n.onPointerMove && n.onPointerMove(t, e, c), n.onPointerObservable.hasObservers())) { var l = new E.b(c, t, e); this._setRayOnPointerInfo(l), n.onPointerObservable.notifyObservers(l, c); } } } }), (e.prototype._setRayOnPointerInfo = function (e) { var t = this._scene; e.pickInfo && !e.pickInfo._pickingUnavailable && (e.pickInfo.ray || (e.pickInfo.ray = t.createPickingRay(e.event.offsetX, e.event.offsetY, u.a.Identity(), t.activeCamera))); }), (e.prototype._checkPrePointerObservable = function (e, t, n) { var i = this._scene, r = new E.d(n, t, this._unTranslatedPointerX, this._unTranslatedPointerY); return e && (r.ray = e.ray), i.onPrePointerObservable.notifyObservers(r, n), !!r.skipOnPointerObservable; }), (e.prototype.simulatePointerMove = function (e, t) { var n = new PointerEvent("pointermove", t); this._checkPrePointerObservable(e, n, E.a.POINTERMOVE) || this._processPointerMove(e, n); }), (e.prototype.simulatePointerDown = function (e, t) { var n = new PointerEvent("pointerdown", t); this._checkPrePointerObservable(e, n, E.a.POINTERDOWN) || this._processPointerDown(e, n); }), (e.prototype._processPointerDown = function (t, n) { var i = this, r = this._scene; if (t && t.hit && t.pickedMesh) { this._pickedDownMesh = t.pickedMesh; var o = t.pickedMesh._getActionManagerForTrigger(); if (o) { if (o.hasPickTriggers) switch ((o.processTrigger(5, v.a.CreateNew(t.pickedMesh, n)), n.button)) { case 0: o.processTrigger(2, v.a.CreateNew(t.pickedMesh, n)); break; case 1: o.processTrigger(4, v.a.CreateNew(t.pickedMesh, n)); break; case 2: o.processTrigger(3, v.a.CreateNew(t.pickedMesh, n)); } o.hasSpecificTrigger(8) && window.setTimeout(function () { var t = r.pick( i._unTranslatedPointerX, i._unTranslatedPointerY, function (e) { return e.isPickable && e.isVisible && e.isReady() && e.actionManager && e.actionManager.hasSpecificTrigger(8) && e == i._pickedDownMesh; }, !1, r.cameraToUseForPointers ); t && t.hit && t.pickedMesh && o && 0 !== i._totalPointersPressed && Date.now() - i._startingPointerTime > e.LongPressDelay && !i._isPointerSwiping() && ((i._startingPointerTime = 0), o.processTrigger(8, v.a.CreateNew(t.pickedMesh, n))); }, e.LongPressDelay); } } else for (var a = 0, s = r._pointerDownStage; a < s.length; a++) { t = s[a].action(this._unTranslatedPointerX, this._unTranslatedPointerY, t, n); } if (t) { var c = E.a.POINTERDOWN; if ((r.onPointerDown && r.onPointerDown(n, t, c), r.onPointerObservable.hasObservers())) { var l = new E.b(c, n, t); this._setRayOnPointerInfo(l), r.onPointerObservable.notifyObservers(l, c); } } }), (e.prototype._isPointerSwiping = function () { return Math.abs(this._startingPointerPosition.x - this._pointerX) > e.DragMovementThreshold || Math.abs(this._startingPointerPosition.y - this._pointerY) > e.DragMovementThreshold; }), (e.prototype.simulatePointerUp = function (e, t, n) { var i = new PointerEvent("pointerup", t), r = new I(); n ? (r.doubleClick = !0) : (r.singleClick = !0), this._checkPrePointerObservable(e, i, E.a.POINTERUP) || this._processPointerUp(e, i, r); }), (e.prototype._processPointerUp = function (e, t, n) { var i = this._scene; if (e && e && e.pickedMesh) { if (((this._pickedUpMesh = e.pickedMesh), this._pickedDownMesh === this._pickedUpMesh && (i.onPointerPick && i.onPointerPick(t, e), n.singleClick && !n.ignore && i.onPointerObservable.hasObservers()))) { var r = E.a.POINTERPICK, o = new E.b(r, t, e); this._setRayOnPointerInfo(o), i.onPointerObservable.notifyObservers(o, r); } var a = e.pickedMesh._getActionManagerForTrigger(); if (a && !n.ignore) { a.processTrigger(7, v.a.CreateNew(e.pickedMesh, t)), !n.hasSwiped && n.singleClick && a.processTrigger(1, v.a.CreateNew(e.pickedMesh, t)); var s = e.pickedMesh._getActionManagerForTrigger(6); n.doubleClick && s && s.processTrigger(6, v.a.CreateNew(e.pickedMesh, t)); } } else if (!n.ignore) for (var c = 0, l = i._pointerUpStage; c < l.length; c++) { e = l[c].action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, t); } if (this._pickedDownMesh && this._pickedDownMesh !== this._pickedUpMesh) { var u = this._pickedDownMesh._getActionManagerForTrigger(16); u && u.processTrigger(16, v.a.CreateNew(this._pickedDownMesh, t)); } var h = 0; if (i.onPointerObservable.hasObservers()) { if ( !n.ignore && !n.hasSwiped && (n.singleClick && i.onPointerObservable.hasSpecificMask(E.a.POINTERTAP) ? (h = E.a.POINTERTAP) : n.doubleClick && i.onPointerObservable.hasSpecificMask(E.a.POINTERDOUBLETAP) && (h = E.a.POINTERDOUBLETAP), h) ) { o = new E.b(h, t, e); this._setRayOnPointerInfo(o), i.onPointerObservable.notifyObservers(o, h); } if (!n.ignore) { h = E.a.POINTERUP; o = new E.b(h, t, e); this._setRayOnPointerInfo(o), i.onPointerObservable.notifyObservers(o, h); } } i.onPointerUp && !n.ignore && i.onPointerUp(t, e, h); }), (e.prototype.isPointerCaptured = function (e) { return void 0 === e && (e = 0), this._pointerCaptures[e]; }), (e.prototype.attachControl = function (t, n, i, o) { var a = this; void 0 === t && (t = !0), void 0 === n && (n = !0), void 0 === i && (i = !0), void 0 === o && (o = null); var s = this._scene; if ((o || (o = s.getEngine().getInputElement()), o)) { var c, l = s.getEngine(); (this._initActionManager = function (e, t) { if (!a._meshPickProceed) { var n = s.pick(a._unTranslatedPointerX, a._unTranslatedPointerY, s.pointerDownPredicate, !1, s.cameraToUseForPointers); (a._currentPickResult = n), n && (e = n.hit && n.pickedMesh ? n.pickedMesh._getActionManagerForTrigger() : null), (a._meshPickProceed = !0); } return e; }), (this._delayedSimpleClick = function (t, n, i) { ((Date.now() - a._previousStartingPointerTime > e.DoubleClickDelay && !a._doubleClickOccured) || t !== a._previousButtonPressed) && ((a._doubleClickOccured = !1), (n.singleClick = !0), (n.ignore = !1), i(n, a._currentPickResult)); }), (this._initClickEvent = function (t, n, i, r) { var o = new I(); a._currentPickResult = null; var s = null, c = t.hasSpecificMask(E.a.POINTERPICK) || n.hasSpecificMask(E.a.POINTERPICK) || t.hasSpecificMask(E.a.POINTERTAP) || n.hasSpecificMask(E.a.POINTERTAP) || t.hasSpecificMask(E.a.POINTERDOUBLETAP) || n.hasSpecificMask(E.a.POINTERDOUBLETAP); !c && M.a && (s = a._initActionManager(s, o)) && (c = s.hasPickTriggers); var l = !1; if (c) { var u = i.button; if (((o.hasSwiped = a._isPointerSwiping()), !o.hasSwiped)) { var h = !e.ExclusiveDoubleClickMode; h || ((h = !t.hasSpecificMask(E.a.POINTERDOUBLETAP) && !n.hasSpecificMask(E.a.POINTERDOUBLETAP)) && !M.a.HasSpecificTrigger(6) && (s = a._initActionManager(s, o)) && (h = !s.hasSpecificTrigger(6))), h ? (Date.now() - a._previousStartingPointerTime > e.DoubleClickDelay || u !== a._previousButtonPressed) && ((o.singleClick = !0), r(o, a._currentPickResult), (l = !0)) : ((a._previousDelayedSimpleClickTimeout = a._delayedSimpleClickTimeout), (a._delayedSimpleClickTimeout = window.setTimeout(a._delayedSimpleClick.bind(a, u, o, r), e.DoubleClickDelay))); var d = t.hasSpecificMask(E.a.POINTERDOUBLETAP) || n.hasSpecificMask(E.a.POINTERDOUBLETAP); !d && M.a.HasSpecificTrigger(6) && (s = a._initActionManager(s, o)) && (d = s.hasSpecificTrigger(6)), d && (u === a._previousButtonPressed && Date.now() - a._previousStartingPointerTime < e.DoubleClickDelay && !a._doubleClickOccured ? (o.hasSwiped || a._isPointerSwiping() ? ((a._doubleClickOccured = !1), (a._previousStartingPointerTime = a._startingPointerTime), (a._previousStartingPointerPosition.x = a._startingPointerPosition.x), (a._previousStartingPointerPosition.y = a._startingPointerPosition.y), (a._previousButtonPressed = u), e.ExclusiveDoubleClickMode ? (a._previousDelayedSimpleClickTimeout && clearTimeout(a._previousDelayedSimpleClickTimeout), (a._previousDelayedSimpleClickTimeout = a._delayedSimpleClickTimeout), r(o, a._previousPickResult)) : r(o, a._currentPickResult)) : ((a._previousStartingPointerTime = 0), (a._doubleClickOccured = !0), (o.doubleClick = !0), (o.ignore = !1), e.ExclusiveDoubleClickMode && a._previousDelayedSimpleClickTimeout && clearTimeout(a._previousDelayedSimpleClickTimeout), (a._previousDelayedSimpleClickTimeout = a._delayedSimpleClickTimeout), r(o, a._currentPickResult)), (l = !0)) : ((a._doubleClickOccured = !1), (a._previousStartingPointerTime = a._startingPointerTime), (a._previousStartingPointerPosition.x = a._startingPointerPosition.x), (a._previousStartingPointerPosition.y = a._startingPointerPosition.y), (a._previousButtonPressed = u))); } } l || r(o, a._currentPickResult); }), (this._onPointerMove = function (e) { if ((a._updatePointerPosition(e), !a._checkPrePointerObservable(null, e, e.type === a._wheelEventName ? E.a.POINTERWHEEL : E.a.POINTERMOVE) && (s.cameraToUseForPointers || s.activeCamera))) { s.pointerMovePredicate || (s.pointerMovePredicate = function (e) { return ( e.isPickable && e.isVisible && e.isReady() && e.isEnabled() && (e.enablePointerMoveEvents || s.constantlyUpdateMeshUnderPointer || null != e._getActionManagerForTrigger()) && (!s.cameraToUseForPointers || 0 != (s.cameraToUseForPointers.layerMask & e.layerMask)) ); }); var t = s.pick(a._unTranslatedPointerX, a._unTranslatedPointerY, s.pointerMovePredicate, !1, s.cameraToUseForPointers); a._processPointerMove(t, e); } }), (this._onPointerDown = function (e) { if ( (a._totalPointersPressed++, (a._pickedDownMesh = null), (a._meshPickProceed = !1), a._updatePointerPosition(e), s.preventDefaultOnPointerDown && o && (e.preventDefault(), o.focus()), (a._startingPointerPosition.x = a._pointerX), (a._startingPointerPosition.y = a._pointerY), (a._startingPointerTime = Date.now()), !a._checkPrePointerObservable(null, e, E.a.POINTERDOWN) && (s.cameraToUseForPointers || s.activeCamera)) ) { (a._pointerCaptures[e.pointerId] = !0), s.pointerDownPredicate || (s.pointerDownPredicate = function (e) { return e.isPickable && e.isVisible && e.isReady() && e.isEnabled() && (!s.cameraToUseForPointers || 0 != (s.cameraToUseForPointers.layerMask & e.layerMask)); }), (a._pickedDownMesh = null); var t = s.pick(a._unTranslatedPointerX, a._unTranslatedPointerY, s.pointerDownPredicate, !1, s.cameraToUseForPointers); a._processPointerDown(t, e); } }), (this._onPointerUp = function (e) { 0 !== a._totalPointersPressed && (a._totalPointersPressed--, (a._pickedUpMesh = null), (a._meshPickProceed = !1), a._updatePointerPosition(e), s.preventDefaultOnPointerUp && o && (e.preventDefault(), o.focus()), a._initClickEvent(s.onPrePointerObservable, s.onPointerObservable, e, function (t, n) { if (s.onPrePointerObservable.hasObservers() && !t.ignore) { if (!t.hasSwiped) { if (t.singleClick && s.onPrePointerObservable.hasSpecificMask(E.a.POINTERTAP) && a._checkPrePointerObservable(null, e, E.a.POINTERTAP)) return; if (t.doubleClick && s.onPrePointerObservable.hasSpecificMask(E.a.POINTERDOUBLETAP) && a._checkPrePointerObservable(null, e, E.a.POINTERDOUBLETAP)) return; } if (a._checkPrePointerObservable(null, e, E.a.POINTERUP)) return; } a._pointerCaptures[e.pointerId] && ((a._pointerCaptures[e.pointerId] = !1), (s.cameraToUseForPointers || s.activeCamera) && (s.pointerUpPredicate || (s.pointerUpPredicate = function (e) { return e.isPickable && e.isVisible && e.isReady() && e.isEnabled() && (!s.cameraToUseForPointers || 0 != (s.cameraToUseForPointers.layerMask & e.layerMask)); }), !a._meshPickProceed && ((M.a && M.a.HasTriggers) || s.onPointerObservable.hasObservers()) && a._initActionManager(null, t), n || (n = a._currentPickResult), a._processPointerUp(n, e, t), (a._previousPickResult = a._currentPickResult))); })); }), (this._onKeyDown = function (e) { var t = A.a.KEYDOWN; if (s.onPreKeyboardObservable.hasObservers()) { var n = new A.c(t, e); if ((s.onPreKeyboardObservable.notifyObservers(n, t), n.skipOnPointerObservable)) return; } if (s.onKeyboardObservable.hasObservers()) { n = new A.b(t, e); s.onKeyboardObservable.notifyObservers(n, t); } s.actionManager && s.actionManager.processTrigger(14, v.a.CreateNewFromScene(s, e)); }), (this._onKeyUp = function (e) { var t = A.a.KEYUP; if (s.onPreKeyboardObservable.hasObservers()) { var n = new A.c(t, e); if ((s.onPreKeyboardObservable.notifyObservers(n, t), n.skipOnPointerObservable)) return; } if (s.onKeyboardObservable.hasObservers()) { n = new A.b(t, e); s.onKeyboardObservable.notifyObservers(n, t); } s.actionManager && s.actionManager.processTrigger(15, v.a.CreateNewFromScene(s, e)); }), (this._onCanvasFocusObserver = l.onCanvasFocusObservable.add( ((c = function () { o && (o.addEventListener("keydown", a._onKeyDown, !1), o.addEventListener("keyup", a._onKeyUp, !1)); }), document.activeElement === o && c(), c) )), (this._onCanvasBlurObserver = l.onCanvasBlurObservable.add(function () { o && (o.removeEventListener("keydown", a._onKeyDown), o.removeEventListener("keyup", a._onKeyUp)); })); var u = r.b.GetPointerPrefix(); if ( (i && (o.addEventListener(u + "move", this._onPointerMove, !1), (this._wheelEventName = "onwheel" in document.createElement("div") ? "wheel" : void 0 !== document.onmousewheel ? "mousewheel" : "DOMMouseScroll"), o.addEventListener(this._wheelEventName, this._onPointerMove, !1)), n && o.addEventListener(u + "down", this._onPointerDown, !1), t) ) { var h = s.getEngine().getHostWindow(); h && h.addEventListener(u + "up", this._onPointerUp, !1); } } }), (e.prototype.detachControl = function () { var e = r.b.GetPointerPrefix(), t = this._scene.getEngine().getInputElement(), n = this._scene.getEngine(); t && (t.removeEventListener(e + "move", this._onPointerMove), t.removeEventListener(this._wheelEventName, this._onPointerMove), t.removeEventListener(e + "down", this._onPointerDown), window.removeEventListener(e + "up", this._onPointerUp), this._onCanvasBlurObserver && n.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), this._onCanvasFocusObserver && n.onCanvasFocusObservable.remove(this._onCanvasFocusObserver), t.removeEventListener("keydown", this._onKeyDown), t.removeEventListener("keyup", this._onKeyUp), this._scene.doNotHandleCursors || (t.style.cursor = this._scene.defaultCursor)); }), (e.prototype.setPointerOverMesh = function (e) { var t; this._pointerOverMesh !== e && (this._pointerOverMesh && (t = this._pointerOverMesh._getActionManagerForTrigger(10)) && t.processTrigger(10, v.a.CreateNew(this._pointerOverMesh)), (this._pointerOverMesh = e), this._pointerOverMesh && (t = this._pointerOverMesh._getActionManagerForTrigger(9)) && t.processTrigger(9, v.a.CreateNew(this._pointerOverMesh))); }), (e.prototype.getPointerOverMesh = function () { return this._pointerOverMesh; }), (e.DragMovementThreshold = 10), (e.LongPressDelay = 500), (e.DoubleClickDelay = 300), (e.ExclusiveDoubleClickMode = !1), e ); })(), R = n(69), w = n(5), L = n(128), F = n(205), N = n(74), k = (function (e) { function t(n, r) { var o = e.call(this) || this; (o._inputManager = new D(o)), (o.cameraToUseForPointers = null), (o._isScene = !0), (o._blockEntityCollection = !1), (o.autoClear = !0), (o.autoClearDepthAndStencil = !0), (o.clearColor = new w.b(0.2, 0.2, 0.3, 1)), (o.ambientColor = new w.a(0, 0, 0)), (o._environmentIntensity = 1), (o._forceWireframe = !1), (o._skipFrustumClipping = !1), (o._forcePointsCloud = !1), (o.animationsEnabled = !0), (o._animationPropertiesOverride = null), (o.useConstantAnimationDeltaTime = !1), (o.constantlyUpdateMeshUnderPointer = !1), (o.hoverCursor = "pointer"), (o.defaultCursor = ""), (o.doNotHandleCursors = !1), (o.preventDefaultOnPointerDown = !0), (o.preventDefaultOnPointerUp = !0), (o.metadata = null), (o.reservedDataStore = null), (o.disableOfflineSupportExceptionRules = new Array()), (o.onDisposeObservable = new a.c()), (o._onDisposeObserver = null), (o.onBeforeRenderObservable = new a.c()), (o._onBeforeRenderObserver = null), (o.onAfterRenderObservable = new a.c()), (o.onAfterRenderCameraObservable = new a.c()), (o._onAfterRenderObserver = null), (o.onBeforeAnimationsObservable = new a.c()), (o.onAfterAnimationsObservable = new a.c()), (o.onBeforeDrawPhaseObservable = new a.c()), (o.onAfterDrawPhaseObservable = new a.c()), (o.onReadyObservable = new a.c()), (o.onBeforeCameraRenderObservable = new a.c()), (o._onBeforeCameraRenderObserver = null), (o.onAfterCameraRenderObservable = new a.c()), (o._onAfterCameraRenderObserver = null), (o.onBeforeActiveMeshesEvaluationObservable = new a.c()), (o.onAfterActiveMeshesEvaluationObservable = new a.c()), (o.onBeforeParticlesRenderingObservable = new a.c()), (o.onAfterParticlesRenderingObservable = new a.c()), (o.onDataLoadedObservable = new a.c()), (o.onNewCameraAddedObservable = new a.c()), (o.onCameraRemovedObservable = new a.c()), (o.onNewLightAddedObservable = new a.c()), (o.onLightRemovedObservable = new a.c()), (o.onNewGeometryAddedObservable = new a.c()), (o.onGeometryRemovedObservable = new a.c()), (o.onNewTransformNodeAddedObservable = new a.c()), (o.onTransformNodeRemovedObservable = new a.c()), (o.onNewMeshAddedObservable = new a.c()), (o.onMeshRemovedObservable = new a.c()), (o.onNewSkeletonAddedObservable = new a.c()), (o.onSkeletonRemovedObservable = new a.c()), (o.onNewMaterialAddedObservable = new a.c()), (o.onMaterialRemovedObservable = new a.c()), (o.onNewTextureAddedObservable = new a.c()), (o.onTextureRemovedObservable = new a.c()), (o.onBeforeRenderTargetsRenderObservable = new a.c()), (o.onAfterRenderTargetsRenderObservable = new a.c()), (o.onBeforeStepObservable = new a.c()), (o.onAfterStepObservable = new a.c()), (o.onActiveCameraChanged = new a.c()), (o.onBeforeRenderingGroupObservable = new a.c()), (o.onAfterRenderingGroupObservable = new a.c()), (o.onMeshImportedObservable = new a.c()), (o.onAnimationFileImportedObservable = new a.c()), (o._registeredForLateAnimationBindings = new s.b(256)), (o.onPrePointerObservable = new a.c()), (o.onPointerObservable = new a.c()), (o.onPreKeyboardObservable = new a.c()), (o.onKeyboardObservable = new a.c()), (o._useRightHandedSystem = !1), (o._timeAccumulator = 0), (o._currentStepId = 0), (o._currentInternalStep = 0), (o._fogEnabled = !0), (o._fogMode = t.FOGMODE_NONE), (o.fogColor = new w.a(0.2, 0.2, 0.3)), (o.fogDensity = 0.1), (o.fogStart = 0), (o.fogEnd = 1e3), (o._shadowsEnabled = !0), (o._lightsEnabled = !0), (o.activeCameras = new Array()), (o._texturesEnabled = !0), (o.particlesEnabled = !0), (o.spritesEnabled = !0), (o._skeletonsEnabled = !0), (o.lensFlaresEnabled = !0), (o.collisionsEnabled = !0), (o.gravity = new u.e(0, -9.807, 0)), (o.postProcessesEnabled = !0), (o.postProcesses = new Array()), (o.renderTargetsEnabled = !0), (o.dumpNextRenderTargets = !1), (o.customRenderTargets = new Array()), (o.importedMeshesFiles = new Array()), (o.probesEnabled = !0), (o._meshesForIntersections = new s.b(256)), (o.proceduralTexturesEnabled = !0), (o._totalVertices = new R.a()), (o._activeIndices = new R.a()), (o._activeParticles = new R.a()), (o._activeBones = new R.a()), (o._animationTime = 0), (o.animationTimeScale = 1), (o._renderId = 0), (o._frameId = 0), (o._executeWhenReadyTimeoutId = -1), (o._intermediateRendering = !1), (o._viewUpdateFlag = -1), (o._projectionUpdateFlag = -1), (o._toBeDisposed = new Array(256)), (o._activeRequests = new Array()), (o._pendingData = new Array()), (o._isDisposed = !1), (o.dispatchAllSubMeshesOfActiveMeshes = !1), (o._activeMeshes = new s.a(256)), (o._processedMaterials = new s.a(256)), (o._renderTargets = new s.b(256)), (o._activeParticleSystems = new s.a(256)), (o._activeSkeletons = new s.b(32)), (o._softwareSkinnedMeshes = new s.b(32)), (o._activeAnimatables = new Array()), (o._transformMatrix = u.a.Zero()), (o.requireLightSorting = !1), (o._components = []), (o._serializableComponents = []), (o._transientComponents = []), (o._beforeCameraUpdateStage = P.b.Create()), (o._beforeClearStage = P.b.Create()), (o._gatherRenderTargetsStage = P.b.Create()), (o._gatherActiveCameraRenderTargetsStage = P.b.Create()), (o._isReadyForMeshStage = P.b.Create()), (o._beforeEvaluateActiveMeshStage = P.b.Create()), (o._evaluateSubMeshStage = P.b.Create()), (o._activeMeshStage = P.b.Create()), (o._cameraDrawRenderTargetStage = P.b.Create()), (o._beforeCameraDrawStage = P.b.Create()), (o._beforeRenderTargetDrawStage = P.b.Create()), (o._beforeRenderingGroupDrawStage = P.b.Create()), (o._beforeRenderingMeshStage = P.b.Create()), (o._afterRenderingMeshStage = P.b.Create()), (o._afterRenderingGroupDrawStage = P.b.Create()), (o._afterCameraDrawStage = P.b.Create()), (o._afterRenderTargetDrawStage = P.b.Create()), (o._afterRenderStage = P.b.Create()), (o._pointerMoveStage = P.b.Create()), (o._pointerDownStage = P.b.Create()), (o._pointerUpStage = P.b.Create()), (o.geometriesByUniqueId = null), (o._defaultMeshCandidates = { data: [], length: 0 }), (o._defaultSubMeshCandidates = { data: [], length: 0 }), (o._preventFreeActiveMeshesAndRenderingGroups = !1), (o._activeMeshesFrozen = !1), (o._skipEvaluateActiveMeshesCompletely = !1), (o._allowPostProcessClearColor = !0), (o.getDeterministicFrameTime = function () { return o._engine.getTimeStep(); }), (o._blockMaterialDirtyMechanism = !1); var c = Object(i.a)({ useGeometryUniqueIdsMap: !0, useMaterialMeshMap: !0, useClonedMeshMap: !0, virtual: !1 }, r); return ( (o._engine = n || S.a.LastCreatedEngine), c.virtual || ((S.a._LastCreatedScene = o), o._engine.scenes.push(o)), (o._uid = null), (o._renderingManager = new C.b(o)), y.a && (o.postProcessManager = new y.a(o)), x.a.IsWindowObjectExist() && o.attachControl(), o._createUbo(), m.a && (o._imageProcessingConfiguration = new m.a()), o.setDefaultCandidateProviders(), c.useGeometryUniqueIdsMap && (o.geometriesByUniqueId = {}), (o.useMaterialMeshMap = c.useMaterialMeshMap), (o.useClonedMeshMap = c.useClonedMeshMap), (r && r.virtual) || o._engine.onNewSceneAddedObservable.notifyObservers(o), o ); } return ( Object(i.d)(t, e), (t.DefaultMaterialFactory = function (e) { throw O.a.WarnImport("StandardMaterial"); }), (t.CollisionCoordinatorFactory = function () { throw O.a.WarnImport("DefaultCollisionCoordinator"); }), Object.defineProperty(t.prototype, "environmentTexture", { get: function () { return this._environmentTexture; }, set: function (e) { this._environmentTexture !== e && ((this._environmentTexture = e), this.markAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "environmentIntensity", { get: function () { return this._environmentIntensity; }, set: function (e) { this._environmentIntensity !== e && ((this._environmentIntensity = e), this.markAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "forceWireframe", { get: function () { return this._forceWireframe; }, set: function (e) { this._forceWireframe !== e && ((this._forceWireframe = e), this.markAllMaterialsAsDirty(16)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "skipFrustumClipping", { get: function () { return this._skipFrustumClipping; }, set: function (e) { this._skipFrustumClipping !== e && (this._skipFrustumClipping = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "forcePointsCloud", { get: function () { return this._forcePointsCloud; }, set: function (e) { this._forcePointsCloud !== e && ((this._forcePointsCloud = e), this.markAllMaterialsAsDirty(16)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "animationPropertiesOverride", { get: function () { return this._animationPropertiesOverride; }, set: function (e) { this._animationPropertiesOverride = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "beforeRender", { set: function (e) { this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), e && (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "afterRender", { set: function (e) { this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), e && (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "beforeCameraRender", { set: function (e) { this._onBeforeCameraRenderObserver && this.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), (this._onBeforeCameraRenderObserver = this.onBeforeCameraRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "afterCameraRender", { set: function (e) { this._onAfterCameraRenderObserver && this.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver), (this._onAfterCameraRenderObserver = this.onAfterCameraRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "unTranslatedPointer", { get: function () { return this._inputManager.unTranslatedPointer; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "DragMovementThreshold", { get: function () { return D.DragMovementThreshold; }, set: function (e) { D.DragMovementThreshold = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "LongPressDelay", { get: function () { return D.LongPressDelay; }, set: function (e) { D.LongPressDelay = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "DoubleClickDelay", { get: function () { return D.DoubleClickDelay; }, set: function (e) { D.DoubleClickDelay = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "ExclusiveDoubleClickMode", { get: function () { return D.ExclusiveDoubleClickMode; }, set: function (e) { D.ExclusiveDoubleClickMode = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useRightHandedSystem", { get: function () { return this._useRightHandedSystem; }, set: function (e) { this._useRightHandedSystem !== e && ((this._useRightHandedSystem = e), this.markAllMaterialsAsDirty(16)); }, enumerable: !0, configurable: !0, }), (t.prototype.setStepId = function (e) { this._currentStepId = e; }), (t.prototype.getStepId = function () { return this._currentStepId; }), (t.prototype.getInternalStep = function () { return this._currentInternalStep; }), Object.defineProperty(t.prototype, "fogEnabled", { get: function () { return this._fogEnabled; }, set: function (e) { this._fogEnabled !== e && ((this._fogEnabled = e), this.markAllMaterialsAsDirty(16)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fogMode", { get: function () { return this._fogMode; }, set: function (e) { this._fogMode !== e && ((this._fogMode = e), this.markAllMaterialsAsDirty(16)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadowsEnabled", { get: function () { return this._shadowsEnabled; }, set: function (e) { this._shadowsEnabled !== e && ((this._shadowsEnabled = e), this.markAllMaterialsAsDirty(2)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "lightsEnabled", { get: function () { return this._lightsEnabled; }, set: function (e) { this._lightsEnabled !== e && ((this._lightsEnabled = e), this.markAllMaterialsAsDirty(2)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "activeCamera", { get: function () { return this._activeCamera; }, set: function (e) { e !== this._activeCamera && ((this._activeCamera = e), this.onActiveCameraChanged.notifyObservers(this)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "defaultMaterial", { get: function () { return this._defaultMaterial || (this._defaultMaterial = t.DefaultMaterialFactory(this)), this._defaultMaterial; }, set: function (e) { this._defaultMaterial = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "texturesEnabled", { get: function () { return this._texturesEnabled; }, set: function (e) { this._texturesEnabled !== e && ((this._texturesEnabled = e), this.markAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "skeletonsEnabled", { get: function () { return this._skeletonsEnabled; }, set: function (e) { this._skeletonsEnabled !== e && ((this._skeletonsEnabled = e), this.markAllMaterialsAsDirty(8)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "collisionCoordinator", { get: function () { return this._collisionCoordinator || ((this._collisionCoordinator = t.CollisionCoordinatorFactory()), this._collisionCoordinator.init(this)), this._collisionCoordinator; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "frustumPlanes", { get: function () { return this._frustumPlanes; }, enumerable: !0, configurable: !0, }), (t.prototype._registerTransientComponents = function () { if (this._transientComponents.length > 0) { for (var e = 0, t = this._transientComponents; e < t.length; e++) { t[e].register(); } this._transientComponents = []; } }), (t.prototype._addComponent = function (e) { this._components.push(e), this._transientComponents.push(e); var t = e; t.addFromContainer && t.serialize && this._serializableComponents.push(t); }), (t.prototype._getComponent = function (e) { for (var t = 0, n = this._components; t < n.length; t++) { var i = n[t]; if (i.name === e) return i; } return null; }), (t.prototype.getClassName = function () { return "Scene"; }), (t.prototype._getDefaultMeshCandidates = function () { return (this._defaultMeshCandidates.data = this.meshes), (this._defaultMeshCandidates.length = this.meshes.length), this._defaultMeshCandidates; }), (t.prototype._getDefaultSubMeshCandidates = function (e) { return (this._defaultSubMeshCandidates.data = e.subMeshes), (this._defaultSubMeshCandidates.length = e.subMeshes.length), this._defaultSubMeshCandidates; }), (t.prototype.setDefaultCandidateProviders = function () { (this.getActiveMeshCandidates = this._getDefaultMeshCandidates.bind(this)), (this.getActiveSubMeshCandidates = this._getDefaultSubMeshCandidates.bind(this)), (this.getIntersectingSubMeshCandidates = this._getDefaultSubMeshCandidates.bind(this)), (this.getCollidingSubMeshCandidates = this._getDefaultSubMeshCandidates.bind(this)); }), Object.defineProperty(t.prototype, "meshUnderPointer", { get: function () { return this._inputManager.meshUnderPointer; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "pointerX", { get: function () { return this._inputManager.pointerX; }, set: function (e) { this._inputManager.pointerX = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "pointerY", { get: function () { return this._inputManager.pointerY; }, set: function (e) { this._inputManager.pointerY = e; }, enumerable: !0, configurable: !0, }), (t.prototype.getCachedMaterial = function () { return this._cachedMaterial; }), (t.prototype.getCachedEffect = function () { return this._cachedEffect; }), (t.prototype.getCachedVisibility = function () { return this._cachedVisibility; }), (t.prototype.isCachedMaterialInvalid = function (e, t, n) { return void 0 === n && (n = 1), this._cachedEffect !== t || this._cachedMaterial !== e || this._cachedVisibility !== n; }), (t.prototype.getEngine = function () { return this._engine; }), (t.prototype.getTotalVertices = function () { return this._totalVertices.current; }), Object.defineProperty(t.prototype, "totalVerticesPerfCounter", { get: function () { return this._totalVertices; }, enumerable: !0, configurable: !0, }), (t.prototype.getActiveIndices = function () { return this._activeIndices.current; }), Object.defineProperty(t.prototype, "totalActiveIndicesPerfCounter", { get: function () { return this._activeIndices; }, enumerable: !0, configurable: !0, }), (t.prototype.getActiveParticles = function () { return this._activeParticles.current; }), Object.defineProperty(t.prototype, "activeParticlesPerfCounter", { get: function () { return this._activeParticles; }, enumerable: !0, configurable: !0, }), (t.prototype.getActiveBones = function () { return this._activeBones.current; }), Object.defineProperty(t.prototype, "activeBonesPerfCounter", { get: function () { return this._activeBones; }, enumerable: !0, configurable: !0, }), (t.prototype.getActiveMeshes = function () { return this._activeMeshes; }), (t.prototype.getAnimationRatio = function () { return void 0 !== this._animationRatio ? this._animationRatio : 1; }), (t.prototype.getRenderId = function () { return this._renderId; }), (t.prototype.getFrameId = function () { return this._frameId; }), (t.prototype.incrementRenderId = function () { this._renderId++; }), (t.prototype._createUbo = function () { (this._sceneUbo = new g.a(this._engine, void 0, !0)), this._sceneUbo.addUniform("viewProjection", 16), this._sceneUbo.addUniform("view", 16); }), (t.prototype.simulatePointerMove = function (e, t) { return this._inputManager.simulatePointerMove(e, t), this; }), (t.prototype.simulatePointerDown = function (e, t) { return this._inputManager.simulatePointerDown(e, t), this; }), (t.prototype.simulatePointerUp = function (e, t, n) { return this._inputManager.simulatePointerUp(e, t, n), this; }), (t.prototype.isPointerCaptured = function (e) { return void 0 === e && (e = 0), this._inputManager.isPointerCaptured(e); }), (t.prototype.attachControl = function (e, t, n) { void 0 === e && (e = !0), void 0 === t && (t = !0), void 0 === n && (n = !0), this._inputManager.attachControl(e, t, n); }), (t.prototype.detachControl = function () { this._inputManager.detachControl(); }), (t.prototype.isReady = function () { if (this._isDisposed) return !1; var e, t = this.getEngine(); if (!t.areAllEffectsReady()) return !1; if (this._pendingData.length > 0) return !1; for (e = 0; e < this.meshes.length; e++) { var n = this.meshes[e]; if (n.isEnabled() && n.subMeshes && 0 !== n.subMeshes.length) { if (!n.isReady(!0)) return !1; for ( var i = "InstancedMesh" === n.getClassName() || "InstancedLinesMesh" === n.getClassName() || (t.getCaps().instancedArrays && n.instances.length > 0), r = 0, o = this._isReadyForMeshStage; r < o.length; r++ ) { if (!o[r].action(n, i)) return !1; } } } for (e = 0; e < this.geometries.length; e++) { if (2 === this.geometries[e].delayLoadState) return !1; } if (this.activeCameras && this.activeCameras.length > 0) for (var a = 0, s = this.activeCameras; a < s.length; a++) { if (!s[a].isReady(!0)) return !1; } else if (this.activeCamera && !this.activeCamera.isReady(!0)) return !1; for (var c = 0, l = this.particleSystems; c < l.length; c++) { if (!l[c].isReady()) return !1; } return !0; }), (t.prototype.resetCachedMaterial = function () { (this._cachedMaterial = null), (this._cachedEffect = null), (this._cachedVisibility = null); }), (t.prototype.registerBeforeRender = function (e) { this.onBeforeRenderObservable.add(e); }), (t.prototype.unregisterBeforeRender = function (e) { this.onBeforeRenderObservable.removeCallback(e); }), (t.prototype.registerAfterRender = function (e) { this.onAfterRenderObservable.add(e); }), (t.prototype.unregisterAfterRender = function (e) { this.onAfterRenderObservable.removeCallback(e); }), (t.prototype._executeOnceBeforeRender = function (e) { var t = this, n = function () { e(), setTimeout(function () { t.unregisterBeforeRender(n); }); }; this.registerBeforeRender(n); }), (t.prototype.executeOnceBeforeRender = function (e, t) { var n = this; void 0 !== t ? setTimeout(function () { n._executeOnceBeforeRender(e); }, t) : this._executeOnceBeforeRender(e); }), (t.prototype._addPendingData = function (e) { this._pendingData.push(e); }), (t.prototype._removePendingData = function (e) { var t = this.isLoading, n = this._pendingData.indexOf(e); -1 !== n && this._pendingData.splice(n, 1), t && !this.isLoading && this.onDataLoadedObservable.notifyObservers(this); }), (t.prototype.getWaitingItemsCount = function () { return this._pendingData.length; }), Object.defineProperty(t.prototype, "isLoading", { get: function () { return this._pendingData.length > 0; }, enumerable: !0, configurable: !0, }), (t.prototype.executeWhenReady = function (e) { var t = this; this.onReadyObservable.add(e), -1 === this._executeWhenReadyTimeoutId && (this._executeWhenReadyTimeoutId = setTimeout(function () { t._checkIsReady(); }, 150)); }), (t.prototype.whenReadyAsync = function () { var e = this; return new Promise(function (t) { e.executeWhenReady(function () { t(); }); }); }), (t.prototype._checkIsReady = function () { var e = this; return ( this._registerTransientComponents(), this.isReady() ? (this.onReadyObservable.notifyObservers(this), this.onReadyObservable.clear(), void (this._executeWhenReadyTimeoutId = -1)) : this._isDisposed ? (this.onReadyObservable.clear(), void (this._executeWhenReadyTimeoutId = -1)) : void (this._executeWhenReadyTimeoutId = setTimeout(function () { e._checkIsReady(); }, 150)) ); }), Object.defineProperty(t.prototype, "animatables", { get: function () { return this._activeAnimatables; }, enumerable: !0, configurable: !0, }), (t.prototype.resetLastAnimationTimeFrame = function () { this._animationTimeLast = o.a.Now; }), (t.prototype.getViewMatrix = function () { return this._viewMatrix; }), (t.prototype.getProjectionMatrix = function () { return this._projectionMatrix; }), (t.prototype.getTransformMatrix = function () { return this._transformMatrix; }), (t.prototype.setTransformMatrix = function (e, t, n, i) { (this._viewUpdateFlag === e.updateFlag && this._projectionUpdateFlag === t.updateFlag) || ((this._viewUpdateFlag = e.updateFlag), (this._projectionUpdateFlag = t.updateFlag), (this._viewMatrix = e), (this._projectionMatrix = t), this._viewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix), this._frustumPlanes ? L.a.GetPlanesToRef(this._transformMatrix, this._frustumPlanes) : (this._frustumPlanes = L.a.GetPlanes(this._transformMatrix)), this._multiviewSceneUbo && this._multiviewSceneUbo.useUbo ? this._updateMultiviewUbo(n, i) : this._sceneUbo.useUbo && (this._sceneUbo.updateMatrix("viewProjection", this._transformMatrix), this._sceneUbo.updateMatrix("view", this._viewMatrix), this._sceneUbo.update())); }), (t.prototype.getSceneUniformBuffer = function () { return this._multiviewSceneUbo ? this._multiviewSceneUbo : this._sceneUbo; }), (t.prototype.getUniqueId = function () { return F.a.UniqueId; }), (t.prototype.addMesh = function (e, t) { var n = this; void 0 === t && (t = !1), this._blockEntityCollection || (this.meshes.push(e), e._resyncLightSources(), e.parent || e._addToSceneRootNodes(), this.onNewMeshAddedObservable.notifyObservers(e), t && e.getChildMeshes().forEach(function (e) { n.addMesh(e); })); }), (t.prototype.removeMesh = function (e, t) { var n = this; void 0 === t && (t = !1); var i = this.meshes.indexOf(e); return ( -1 !== i && ((this.meshes[i] = this.meshes[this.meshes.length - 1]), this.meshes.pop(), e.parent || e._removeFromSceneRootNodes()), this.onMeshRemovedObservable.notifyObservers(e), t && e.getChildMeshes().forEach(function (e) { n.removeMesh(e); }), i ); }), (t.prototype.addTransformNode = function (e) { this._blockEntityCollection || ((e._indexInSceneTransformNodesArray = this.transformNodes.length), this.transformNodes.push(e), e.parent || e._addToSceneRootNodes(), this.onNewTransformNodeAddedObservable.notifyObservers(e)); }), (t.prototype.removeTransformNode = function (e) { var t = e._indexInSceneTransformNodesArray; if (-1 !== t) { if (t !== this.transformNodes.length - 1) { var n = this.transformNodes[this.transformNodes.length - 1]; (this.transformNodes[t] = n), (n._indexInSceneTransformNodesArray = t); } (e._indexInSceneTransformNodesArray = -1), this.transformNodes.pop(), e.parent || e._removeFromSceneRootNodes(); } return this.onTransformNodeRemovedObservable.notifyObservers(e), t; }), (t.prototype.removeSkeleton = function (e) { var t = this.skeletons.indexOf(e); return -1 !== t && (this.skeletons.splice(t, 1), this.onSkeletonRemovedObservable.notifyObservers(e)), t; }), (t.prototype.removeMorphTargetManager = function (e) { var t = this.morphTargetManagers.indexOf(e); return -1 !== t && this.morphTargetManagers.splice(t, 1), t; }), (t.prototype.removeLight = function (e) { var t = this.lights.indexOf(e); if (-1 !== t) { for (var n = 0, i = this.meshes; n < i.length; n++) { i[n]._removeLightSource(e, !1); } this.lights.splice(t, 1), this.sortLightsByPriority(), e.parent || e._removeFromSceneRootNodes(); } return this.onLightRemovedObservable.notifyObservers(e), t; }), (t.prototype.removeCamera = function (e) { var t = this.cameras.indexOf(e); -1 !== t && (this.cameras.splice(t, 1), e.parent || e._removeFromSceneRootNodes()); var n = this.activeCameras.indexOf(e); return ( -1 !== n && this.activeCameras.splice(n, 1), this.activeCamera === e && (this.cameras.length > 0 ? (this.activeCamera = this.cameras[0]) : (this.activeCamera = null)), this.onCameraRemovedObservable.notifyObservers(e), t ); }), (t.prototype.removeParticleSystem = function (e) { var t = this.particleSystems.indexOf(e); return -1 !== t && this.particleSystems.splice(t, 1), t; }), (t.prototype.removeAnimation = function (e) { var t = this.animations.indexOf(e); return -1 !== t && this.animations.splice(t, 1), t; }), (t.prototype.stopAnimation = function (e, t, n) {}), (t.prototype.removeAnimationGroup = function (e) { var t = this.animationGroups.indexOf(e); return -1 !== t && this.animationGroups.splice(t, 1), t; }), (t.prototype.removeMultiMaterial = function (e) { var t = this.multiMaterials.indexOf(e); return -1 !== t && this.multiMaterials.splice(t, 1), t; }), (t.prototype.removeMaterial = function (e) { var t = e._indexInSceneMaterialArray; if (-1 !== t && t < this.materials.length) { if (t !== this.materials.length - 1) { var n = this.materials[this.materials.length - 1]; (this.materials[t] = n), (n._indexInSceneMaterialArray = t); } (e._indexInSceneMaterialArray = -1), this.materials.pop(); } return this.onMaterialRemovedObservable.notifyObservers(e), t; }), (t.prototype.removeActionManager = function (e) { var t = this.actionManagers.indexOf(e); return -1 !== t && this.actionManagers.splice(t, 1), t; }), (t.prototype.removeTexture = function (e) { var t = this.textures.indexOf(e); return -1 !== t && this.textures.splice(t, 1), this.onTextureRemovedObservable.notifyObservers(e), t; }), (t.prototype.addLight = function (e) { if (!this._blockEntityCollection) { this.lights.push(e), this.sortLightsByPriority(), e.parent || e._addToSceneRootNodes(); for (var t = 0, n = this.meshes; t < n.length; t++) { var i = n[t]; -1 === i.lightSources.indexOf(e) && (i.lightSources.push(e), i._resyncLightSources()); } this.onNewLightAddedObservable.notifyObservers(e); } }), (t.prototype.sortLightsByPriority = function () { this.requireLightSorting && this.lights.sort(b.a.CompareLightsPriority); }), (t.prototype.addCamera = function (e) { this._blockEntityCollection || (this.cameras.push(e), this.onNewCameraAddedObservable.notifyObservers(e), e.parent || e._addToSceneRootNodes()); }), (t.prototype.addSkeleton = function (e) { this._blockEntityCollection || (this.skeletons.push(e), this.onNewSkeletonAddedObservable.notifyObservers(e)); }), (t.prototype.addParticleSystem = function (e) { this._blockEntityCollection || this.particleSystems.push(e); }), (t.prototype.addAnimation = function (e) { this._blockEntityCollection || this.animations.push(e); }), (t.prototype.addAnimationGroup = function (e) { this._blockEntityCollection || this.animationGroups.push(e); }), (t.prototype.addMultiMaterial = function (e) { this._blockEntityCollection || this.multiMaterials.push(e); }), (t.prototype.addMaterial = function (e) { this._blockEntityCollection || ((e._indexInSceneMaterialArray = this.materials.length), this.materials.push(e), this.onNewMaterialAddedObservable.notifyObservers(e)); }), (t.prototype.addMorphTargetManager = function (e) { this._blockEntityCollection || this.morphTargetManagers.push(e); }), (t.prototype.addGeometry = function (e) { this._blockEntityCollection || (this.geometriesByUniqueId && (this.geometriesByUniqueId[e.uniqueId] = this.geometries.length), this.geometries.push(e)); }), (t.prototype.addActionManager = function (e) { this.actionManagers.push(e); }), (t.prototype.addTexture = function (e) { this._blockEntityCollection || (this.textures.push(e), this.onNewTextureAddedObservable.notifyObservers(e)); }), (t.prototype.switchActiveCamera = function (e, t) { void 0 === t && (t = !0); var n = this._engine.getInputElement(); n && (this.activeCamera && this.activeCamera.detachControl(n), (this.activeCamera = e), t && e.attachControl(n)); }), (t.prototype.setActiveCameraByID = function (e) { var t = this.getCameraByID(e); return t ? ((this.activeCamera = t), t) : null; }), (t.prototype.setActiveCameraByName = function (e) { var t = this.getCameraByName(e); return t ? ((this.activeCamera = t), t) : null; }), (t.prototype.getAnimationGroupByName = function (e) { for (var t = 0; t < this.animationGroups.length; t++) if (this.animationGroups[t].name === e) return this.animationGroups[t]; return null; }), (t.prototype.getMaterialByUniqueID = function (e) { for (var t = 0; t < this.materials.length; t++) if (this.materials[t].uniqueId === e) return this.materials[t]; return null; }), (t.prototype.getMaterialByID = function (e) { for (var t = 0; t < this.materials.length; t++) if (this.materials[t].id === e) return this.materials[t]; return null; }), (t.prototype.getLastMaterialByID = function (e) { for (var t = this.materials.length - 1; t >= 0; t--) if (this.materials[t].id === e) return this.materials[t]; return null; }), (t.prototype.getMaterialByName = function (e) { for (var t = 0; t < this.materials.length; t++) if (this.materials[t].name === e) return this.materials[t]; return null; }), (t.prototype.getTextureByUniqueID = function (e) { for (var t = 0; t < this.textures.length; t++) if (this.textures[t].uniqueId === e) return this.textures[t]; return null; }), (t.prototype.getCameraByID = function (e) { for (var t = 0; t < this.cameras.length; t++) if (this.cameras[t].id === e) return this.cameras[t]; return null; }), (t.prototype.getCameraByUniqueID = function (e) { for (var t = 0; t < this.cameras.length; t++) if (this.cameras[t].uniqueId === e) return this.cameras[t]; return null; }), (t.prototype.getCameraByName = function (e) { for (var t = 0; t < this.cameras.length; t++) if (this.cameras[t].name === e) return this.cameras[t]; return null; }), (t.prototype.getBoneByID = function (e) { for (var t = 0; t < this.skeletons.length; t++) for (var n = this.skeletons[t], i = 0; i < n.bones.length; i++) if (n.bones[i].id === e) return n.bones[i]; return null; }), (t.prototype.getBoneByName = function (e) { for (var t = 0; t < this.skeletons.length; t++) for (var n = this.skeletons[t], i = 0; i < n.bones.length; i++) if (n.bones[i].name === e) return n.bones[i]; return null; }), (t.prototype.getLightByName = function (e) { for (var t = 0; t < this.lights.length; t++) if (this.lights[t].name === e) return this.lights[t]; return null; }), (t.prototype.getLightByID = function (e) { for (var t = 0; t < this.lights.length; t++) if (this.lights[t].id === e) return this.lights[t]; return null; }), (t.prototype.getLightByUniqueID = function (e) { for (var t = 0; t < this.lights.length; t++) if (this.lights[t].uniqueId === e) return this.lights[t]; return null; }), (t.prototype.getParticleSystemByID = function (e) { for (var t = 0; t < this.particleSystems.length; t++) if (this.particleSystems[t].id === e) return this.particleSystems[t]; return null; }), (t.prototype.getGeometryByID = function (e) { for (var t = 0; t < this.geometries.length; t++) if (this.geometries[t].id === e) return this.geometries[t]; return null; }), (t.prototype._getGeometryByUniqueID = function (e) { if (this.geometriesByUniqueId) { var t = this.geometriesByUniqueId[e]; if (void 0 !== t) return this.geometries[t]; } else for (var n = 0; n < this.geometries.length; n++) if (this.geometries[n].uniqueId === e) return this.geometries[n]; return null; }), (t.prototype.pushGeometry = function (e, t) { return !(!t && this._getGeometryByUniqueID(e.uniqueId)) && (this.addGeometry(e), this.onNewGeometryAddedObservable.notifyObservers(e), !0); }), (t.prototype.removeGeometry = function (e) { var t; if (this.geometriesByUniqueId) { if (void 0 === (t = this.geometriesByUniqueId[e.uniqueId])) return !1; } else if ((t = this.geometries.indexOf(e)) < 0) return !1; if (t !== this.geometries.length - 1) { var n = this.geometries[this.geometries.length - 1]; (this.geometries[t] = n), this.geometriesByUniqueId && ((this.geometriesByUniqueId[n.uniqueId] = t), (this.geometriesByUniqueId[e.uniqueId] = void 0)); } return this.geometries.pop(), this.onGeometryRemovedObservable.notifyObservers(e), !0; }), (t.prototype.getGeometries = function () { return this.geometries; }), (t.prototype.getMeshByID = function (e) { for (var t = 0; t < this.meshes.length; t++) if (this.meshes[t].id === e) return this.meshes[t]; return null; }), (t.prototype.getMeshesByID = function (e) { return this.meshes.filter(function (t) { return t.id === e; }); }), (t.prototype.getTransformNodeByID = function (e) { for (var t = 0; t < this.transformNodes.length; t++) if (this.transformNodes[t].id === e) return this.transformNodes[t]; return null; }), (t.prototype.getTransformNodeByUniqueID = function (e) { for (var t = 0; t < this.transformNodes.length; t++) if (this.transformNodes[t].uniqueId === e) return this.transformNodes[t]; return null; }), (t.prototype.getTransformNodesByID = function (e) { return this.transformNodes.filter(function (t) { return t.id === e; }); }), (t.prototype.getMeshByUniqueID = function (e) { for (var t = 0; t < this.meshes.length; t++) if (this.meshes[t].uniqueId === e) return this.meshes[t]; return null; }), (t.prototype.getLastMeshByID = function (e) { for (var t = this.meshes.length - 1; t >= 0; t--) if (this.meshes[t].id === e) return this.meshes[t]; return null; }), (t.prototype.getLastEntryByID = function (e) { var t; for (t = this.meshes.length - 1; t >= 0; t--) if (this.meshes[t].id === e) return this.meshes[t]; for (t = this.transformNodes.length - 1; t >= 0; t--) if (this.transformNodes[t].id === e) return this.transformNodes[t]; for (t = this.cameras.length - 1; t >= 0; t--) if (this.cameras[t].id === e) return this.cameras[t]; for (t = this.lights.length - 1; t >= 0; t--) if (this.lights[t].id === e) return this.lights[t]; return null; }), (t.prototype.getNodeByID = function (e) { var t = this.getMeshByID(e); if (t) return t; var n = this.getTransformNodeByID(e); if (n) return n; var i = this.getLightByID(e); if (i) return i; var r = this.getCameraByID(e); if (r) return r; var o = this.getBoneByID(e); return o || null; }), (t.prototype.getNodeByName = function (e) { var t = this.getMeshByName(e); if (t) return t; var n = this.getTransformNodeByName(e); if (n) return n; var i = this.getLightByName(e); if (i) return i; var r = this.getCameraByName(e); if (r) return r; var o = this.getBoneByName(e); return o || null; }), (t.prototype.getMeshByName = function (e) { for (var t = 0; t < this.meshes.length; t++) if (this.meshes[t].name === e) return this.meshes[t]; return null; }), (t.prototype.getTransformNodeByName = function (e) { for (var t = 0; t < this.transformNodes.length; t++) if (this.transformNodes[t].name === e) return this.transformNodes[t]; return null; }), (t.prototype.getLastSkeletonByID = function (e) { for (var t = this.skeletons.length - 1; t >= 0; t--) if (this.skeletons[t].id === e) return this.skeletons[t]; return null; }), (t.prototype.getSkeletonByUniqueId = function (e) { for (var t = 0; t < this.skeletons.length; t++) if (this.skeletons[t].uniqueId === e) return this.skeletons[t]; return null; }), (t.prototype.getSkeletonById = function (e) { for (var t = 0; t < this.skeletons.length; t++) if (this.skeletons[t].id === e) return this.skeletons[t]; return null; }), (t.prototype.getSkeletonByName = function (e) { for (var t = 0; t < this.skeletons.length; t++) if (this.skeletons[t].name === e) return this.skeletons[t]; return null; }), (t.prototype.getMorphTargetManagerById = function (e) { for (var t = 0; t < this.morphTargetManagers.length; t++) if (this.morphTargetManagers[t].uniqueId === e) return this.morphTargetManagers[t]; return null; }), (t.prototype.getMorphTargetById = function (e) { for (var t = 0; t < this.morphTargetManagers.length; ++t) for (var n = this.morphTargetManagers[t], i = 0; i < n.numTargets; ++i) { var r = n.getTarget(i); if (r.id === e) return r; } return null; }), (t.prototype.isActiveMesh = function (e) { return -1 !== this._activeMeshes.indexOf(e); }), Object.defineProperty(t.prototype, "uid", { get: function () { return this._uid || (this._uid = r.b.RandomId()), this._uid; }, enumerable: !0, configurable: !0, }), (t.prototype.addExternalData = function (e, t) { return this._externalData || (this._externalData = new c.a()), this._externalData.add(e, t); }), (t.prototype.getExternalData = function (e) { return this._externalData ? this._externalData.get(e) : null; }), (t.prototype.getOrAddExternalDataWithFactory = function (e, t) { return this._externalData || (this._externalData = new c.a()), this._externalData.getOrAddWithFactory(e, t); }), (t.prototype.removeExternalData = function (e) { return this._externalData.remove(e); }), (t.prototype._evaluateSubMesh = function (e, t, n) { if (n.hasInstances || n.isAnInstance || this.dispatchAllSubMeshesOfActiveMeshes || this._skipFrustumClipping || t.alwaysSelectAsActiveMesh || 1 === t.subMeshes.length || e.isInFrustum(this._frustumPlanes)) { for (var i = 0, r = this._evaluateSubMeshStage; i < r.length; i++) { r[i].action(t, e); } var o = e.getMaterial(); null != o && (o.hasRenderTargetTextures && null != o.getRenderTargetTextures && -1 === this._processedMaterials.indexOf(o) && (this._processedMaterials.push(o), this._renderTargets.concatWithNoDuplicate(o.getRenderTargetTextures())), this._renderingManager.dispatch(e, t, o)); } }), (t.prototype.freeProcessedMaterials = function () { this._processedMaterials.dispose(); }), Object.defineProperty(t.prototype, "blockfreeActiveMeshesAndRenderingGroups", { get: function () { return this._preventFreeActiveMeshesAndRenderingGroups; }, set: function (e) { this._preventFreeActiveMeshesAndRenderingGroups !== e && (e && (this.freeActiveMeshes(), this.freeRenderingGroups()), (this._preventFreeActiveMeshesAndRenderingGroups = e)); }, enumerable: !0, configurable: !0, }), (t.prototype.freeActiveMeshes = function () { if (!this.blockfreeActiveMeshesAndRenderingGroups && (this._activeMeshes.dispose(), this.activeCamera && this.activeCamera._activeMeshes && this.activeCamera._activeMeshes.dispose(), this.activeCameras)) for (var e = 0; e < this.activeCameras.length; e++) { var t = this.activeCameras[e]; t && t._activeMeshes && t._activeMeshes.dispose(); } }), (t.prototype.freeRenderingGroups = function () { if (!this.blockfreeActiveMeshesAndRenderingGroups && (this._renderingManager && this._renderingManager.freeRenderingGroups(), this.textures)) for (var e = 0; e < this.textures.length; e++) { var t = this.textures[e]; t && t.renderList && t.freeRenderingGroups(); } }), (t.prototype._isInIntermediateRendering = function () { return this._intermediateRendering; }), (t.prototype.freezeActiveMeshes = function (e) { var t = this; return ( void 0 === e && (e = !1), this.executeWhenReady(function () { if (t.activeCamera) { t._frustumPlanes || t.setTransformMatrix(t.activeCamera.getViewMatrix(), t.activeCamera.getProjectionMatrix()), t._evaluateActiveMeshes(), (t._activeMeshesFrozen = !0), (t._skipEvaluateActiveMeshesCompletely = e); for (var n = 0; n < t._activeMeshes.length; n++) t._activeMeshes.data[n]._freeze(); } }), this ); }), (t.prototype.unfreezeActiveMeshes = function () { for (var e = 0; e < this.meshes.length; e++) { var t = this.meshes[e]; t._internalAbstractMeshDataInfo && (t._internalAbstractMeshDataInfo._isActive = !1); } for (e = 0; e < this._activeMeshes.length; e++) this._activeMeshes.data[e]._unFreeze(); return (this._activeMeshesFrozen = !1), this; }), (t.prototype._evaluateActiveMeshes = function () { if (this._activeMeshesFrozen && this._activeMeshes.length) { if (!this._skipEvaluateActiveMeshesCompletely) for (var e = this._activeMeshes.length, t = 0; t < e; t++) { (a = this._activeMeshes.data[t]).computeWorldMatrix(); } } else if (this.activeCamera) { this.onBeforeActiveMeshesEvaluationObservable.notifyObservers(this), this.activeCamera._activeMeshes.reset(), this._activeMeshes.reset(), this._renderingManager.reset(), this._processedMaterials.reset(), this._activeParticleSystems.reset(), this._activeSkeletons.reset(), this._softwareSkinnedMeshes.reset(); for (var n = 0, i = this._beforeEvaluateActiveMeshStage; n < i.length; n++) { i[n].action(); } var r = this.getActiveMeshCandidates(), o = r.length; for (t = 0; t < o; t++) { var a; if (!(a = r.data[t]).isBlocked && (this._totalVertices.addCount(a.getTotalVertices(), !1), a.isReady() && a.isEnabled() && 0 !== a.scaling.lengthSquared())) { a.computeWorldMatrix(), a.actionManager && a.actionManager.hasSpecificTriggers2(12, 13) && this._meshesForIntersections.pushNoDuplicate(a); var s = this.customLODSelector ? this.customLODSelector(a, this.activeCamera) : a.getLOD(this.activeCamera); null != s && (s !== a && s.billboardMode !== h.a.BILLBOARDMODE_NONE && s.computeWorldMatrix(), a._preActivate(), a.isVisible && a.visibility > 0 && 0 != (a.layerMask & this.activeCamera.layerMask) && (this._skipFrustumClipping || a.alwaysSelectAsActiveMesh || a.isInFrustum(this._frustumPlanes)) && (this._activeMeshes.push(a), this.activeCamera._activeMeshes.push(a), s !== a && s._activate(this._renderId, !1), a._activate(this._renderId, !1) && (a.isAnInstance ? a._internalAbstractMeshDataInfo._actAsRegularMesh && (s = a) : (s._internalAbstractMeshDataInfo._onlyForInstances = !1), (s._internalAbstractMeshDataInfo._isActive = !0), this._activeMesh(a, s)), a._postActivate())); } } if ((this.onAfterActiveMeshesEvaluationObservable.notifyObservers(this), this.particlesEnabled)) { this.onBeforeParticlesRenderingObservable.notifyObservers(this); for (var c = 0; c < this.particleSystems.length; c++) { var l = this.particleSystems[c]; if (l.isStarted() && l.emitter) { var u = l.emitter; (u.position && !u.isEnabled()) || (this._activeParticleSystems.push(l), l.animate(), this._renderingManager.dispatchParticles(l)); } } this.onAfterParticlesRenderingObservable.notifyObservers(this); } } }), (t.prototype._activeMesh = function (e, t) { this._skeletonsEnabled && null !== t.skeleton && void 0 !== t.skeleton && (this._activeSkeletons.pushNoDuplicate(t.skeleton) && t.skeleton.prepare(), t.computeBonesUsingShaders || this._softwareSkinnedMeshes.pushNoDuplicate(t)); for (var n = 0, i = this._activeMeshStage; n < i.length; n++) { i[n].action(e, t); } if (null != t && void 0 !== t.subMeshes && null !== t.subMeshes && t.subMeshes.length > 0) for (var r = this.getActiveSubMeshCandidates(t), o = r.length, a = 0; a < o; a++) { var s = r.data[a]; this._evaluateSubMesh(s, t, e); } }), (t.prototype.updateTransformMatrix = function (e) { this.activeCamera && this.setTransformMatrix(this.activeCamera.getViewMatrix(), this.activeCamera.getProjectionMatrix(e)); }), (t.prototype._bindFrameBuffer = function () { if (this.activeCamera && this.activeCamera._multiviewTexture) this.activeCamera._multiviewTexture._bindFrameBuffer(); else if (this.activeCamera && this.activeCamera.outputRenderTarget) { if (this.getEngine().getCaps().multiview && this.activeCamera.outputRenderTarget && this.activeCamera.outputRenderTarget.getViewCount() > 1) this.activeCamera.outputRenderTarget._bindFrameBuffer(); else { var e = this.activeCamera.outputRenderTarget.getInternalTexture(); e ? this.getEngine().bindFramebuffer(e) : T.a.Error("Camera contains invalid customDefaultRenderTarget"); } } else this.getEngine().restoreDefaultFramebuffer(); }), (t.prototype._renderForCamera = function (e, t) { if (!e || !e._skipRendering) { var n = this._engine; if (((this._activeCamera = e), !this.activeCamera)) throw new Error("Active camera not set"); n.setViewport(this.activeCamera.viewport), this.resetCachedMaterial(), this._renderId++, this.getEngine().getCaps().multiview && e.outputRenderTarget && e.outputRenderTarget.getViewCount() > 1 ? this.setTransformMatrix(e._rigCameras[0].getViewMatrix(), e._rigCameras[0].getProjectionMatrix(), e._rigCameras[1].getViewMatrix(), e._rigCameras[1].getProjectionMatrix()) : this.updateTransformMatrix(), this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera), this._evaluateActiveMeshes(); for (var i = 0; i < this._softwareSkinnedMeshes.length; i++) { var o = this._softwareSkinnedMeshes.data[i]; o.applySkeleton(o.skeleton); } this.onBeforeRenderTargetsRenderObservable.notifyObservers(this), e.customRenderTargets && e.customRenderTargets.length > 0 && this._renderTargets.concatWithNoDuplicate(e.customRenderTargets), t && t.customRenderTargets && t.customRenderTargets.length > 0 && this._renderTargets.concatWithNoDuplicate(t.customRenderTargets); for (var a = 0, s = this._gatherActiveCameraRenderTargetsStage; a < s.length; a++) { s[a].action(this._renderTargets); } if (this.renderTargetsEnabled) { this._intermediateRendering = !0; var c = !1; if (this._renderTargets.length > 0) { r.b.StartPerformanceCounter("Render targets", this._renderTargets.length > 0); for (var l = 0; l < this._renderTargets.length; l++) { var u = this._renderTargets.data[l]; if (u._shouldRender()) { this._renderId++; var h = u.activeCamera && u.activeCamera !== this.activeCamera; u.render(h, this.dumpNextRenderTargets), (c = !0); } } r.b.EndPerformanceCounter("Render targets", this._renderTargets.length > 0), this._renderId++; } for (var d = 0, p = this._cameraDrawRenderTargetStage; d < p.length; d++) { c = p[d].action(this.activeCamera) || c; } (this._intermediateRendering = !1), this.activeCamera && this.activeCamera.outputRenderTarget && (c = !0), c && this._bindFrameBuffer(); } this.onAfterRenderTargetsRenderObservable.notifyObservers(this), this.postProcessManager && !e._multiviewTexture && this.postProcessManager._prepareFrame(); for (var f = 0, m = this._beforeCameraDrawStage; f < m.length; f++) { m[f].action(this.activeCamera); } this.onBeforeDrawPhaseObservable.notifyObservers(this), this._renderingManager.render(null, null, !0, !0), this.onAfterDrawPhaseObservable.notifyObservers(this); for (var g = 0, b = this._afterCameraDrawStage; g < b.length; g++) { b[g].action(this.activeCamera); } this.postProcessManager && !e._multiviewTexture && this.postProcessManager._finalizeFrame(e.isIntermediate), this._renderTargets.reset(), this.onAfterCameraRenderObservable.notifyObservers(this.activeCamera); } }), (t.prototype._processSubCameras = function (e) { if (e.cameraRigMode === p.a.RIG_MODE_NONE || (e.outputRenderTarget && e.outputRenderTarget.getViewCount() > 1 && this.getEngine().getCaps().multiview)) return this._renderForCamera(e), void this.onAfterRenderCameraObservable.notifyObservers(e); if (e._useMultiviewToSingleView) this._renderMultiviewToSingleView(e); else for (var t = 0; t < e._rigCameras.length; t++) this._renderForCamera(e._rigCameras[t], e); (this._activeCamera = e), this.setTransformMatrix(this._activeCamera.getViewMatrix(), this._activeCamera.getProjectionMatrix()), this.onAfterRenderCameraObservable.notifyObservers(e); }), (t.prototype._checkIntersections = function () { for (var e = 0; e < this._meshesForIntersections.length; e++) { var t = this._meshesForIntersections.data[e]; if (t.actionManager) for (var n = 0; t.actionManager && n < t.actionManager.actions.length; n++) { var i = t.actionManager.actions[n]; if (12 === i.trigger || 13 === i.trigger) { var r = i.getTriggerParameter(), o = r instanceof d.a ? r : r.mesh, a = o.intersectsMesh(t, r.usePreciseIntersection), s = t._intersectionsInProgress.indexOf(o); a && -1 === s ? 12 === i.trigger ? (i._executeCurrent(v.a.CreateNew(t, void 0, o)), t._intersectionsInProgress.push(o)) : 13 === i.trigger && t._intersectionsInProgress.push(o) : !a && s > -1 && (13 === i.trigger && i._executeCurrent(v.a.CreateNew(t, void 0, o)), (t.actionManager.hasSpecificTrigger(13, function (e) { var t = e instanceof d.a ? e : e.mesh; return o === t; }) && 13 !== i.trigger) || t._intersectionsInProgress.splice(s, 1)); } } } }), (t.prototype._advancePhysicsEngineStep = function (e) {}), (t.prototype._animate = function () {}), (t.prototype.animate = function () { if (this._engine.isDeterministicLockStep()) { var e = Math.max(t.MinDeltaTime, Math.min(this._engine.getDeltaTime(), t.MaxDeltaTime)) + this._timeAccumulator, n = this._engine.getTimeStep(), i = 1e3 / n / 1e3, r = 0, o = this._engine.getLockstepMaxSteps(), a = Math.floor(e / n); for (a = Math.min(a, o); e > 0 && r < a; ) this.onBeforeStepObservable.notifyObservers(this), (this._animationRatio = n * i), this._animate(), this.onAfterAnimationsObservable.notifyObservers(this), this._advancePhysicsEngineStep(n), this.onAfterStepObservable.notifyObservers(this), this._currentStepId++, r++, (e -= n); this._timeAccumulator = e < 0 ? 0 : e; } else { e = this.useConstantAnimationDeltaTime ? 16 : Math.max(t.MinDeltaTime, Math.min(this._engine.getDeltaTime(), t.MaxDeltaTime)); (this._animationRatio = 0.06 * e), this._animate(), this.onAfterAnimationsObservable.notifyObservers(this), this._advancePhysicsEngineStep(e); } }), (t.prototype.render = function (e, t) { if ((void 0 === e && (e = !0), void 0 === t && (t = !1), !this.isDisposed)) { this._frameId++, this._registerTransientComponents(), this._activeParticles.fetchNewFrame(), this._totalVertices.fetchNewFrame(), this._activeIndices.fetchNewFrame(), this._activeBones.fetchNewFrame(), this._meshesForIntersections.reset(), this.resetCachedMaterial(), this.onBeforeAnimationsObservable.notifyObservers(this), this.actionManager && this.actionManager.processTrigger(11), t || this.animate(); for (var n = 0, i = this._beforeCameraUpdateStage; n < i.length; n++) { i[n].action(); } if (e) if (this.activeCameras.length > 0) for (var o = 0; o < this.activeCameras.length; o++) { var a = this.activeCameras[o]; if ((a.update(), a.cameraRigMode !== p.a.RIG_MODE_NONE)) for (var s = 0; s < a._rigCameras.length; s++) a._rigCameras[s].update(); } else if (this.activeCamera && (this.activeCamera.update(), this.activeCamera.cameraRigMode !== p.a.RIG_MODE_NONE)) for (s = 0; s < this.activeCamera._rigCameras.length; s++) this.activeCamera._rigCameras[s].update(); this.onBeforeRenderObservable.notifyObservers(this), this.onBeforeRenderTargetsRenderObservable.notifyObservers(this); var c = this.getEngine(), l = this.activeCamera; if (this.renderTargetsEnabled) { r.b.StartPerformanceCounter("Custom render targets", this.customRenderTargets.length > 0), (this._intermediateRendering = !0); for (var u = 0; u < this.customRenderTargets.length; u++) { var h = this.customRenderTargets[u]; if (h._shouldRender()) { if ((this._renderId++, (this.activeCamera = h.activeCamera || this.activeCamera), !this.activeCamera)) throw new Error("Active camera not set"); c.setViewport(this.activeCamera.viewport), this.updateTransformMatrix(), h.render(l !== this.activeCamera, this.dumpNextRenderTargets); } } r.b.EndPerformanceCounter("Custom render targets", this.customRenderTargets.length > 0), (this._intermediateRendering = !1), this._renderId++; } (this.activeCamera = l), this._bindFrameBuffer(), this.onAfterRenderTargetsRenderObservable.notifyObservers(this); for (var d = 0, f = this._beforeClearStage; d < f.length; d++) { f[d].action(); } (this.autoClearDepthAndStencil || this.autoClear) && this._engine.clear(this.clearColor, this.autoClear || this.forceWireframe || this.forcePointsCloud, this.autoClearDepthAndStencil, this.autoClearDepthAndStencil); for (var m = 0, g = this._gatherRenderTargetsStage; m < g.length; m++) { g[m].action(this._renderTargets); } if (this.activeCameras.length > 0) for (o = 0; o < this.activeCameras.length; o++) o > 0 && this._engine.clear(null, !1, !0, !0), this._processSubCameras(this.activeCameras[o]); else { if (!this.activeCamera) throw new Error("No camera defined"); this._processSubCameras(this.activeCamera); } this._checkIntersections(); for (var b = 0, _ = this._afterRenderStage; b < _.length; b++) { _[b].action(); } if ((this.afterRender && this.afterRender(), this.onAfterRenderObservable.notifyObservers(this), this._toBeDisposed.length)) { for (s = 0; s < this._toBeDisposed.length; s++) { var v = this._toBeDisposed[s]; v && v.dispose(); } this._toBeDisposed = []; } this.dumpNextRenderTargets && (this.dumpNextRenderTargets = !1), this._activeBones.addCount(0, !0), this._activeIndices.addCount(0, !0), this._activeParticles.addCount(0, !0); } }), (t.prototype.freezeMaterials = function () { for (var e = 0; e < this.materials.length; e++) this.materials[e].freeze(); }), (t.prototype.unfreezeMaterials = function () { for (var e = 0; e < this.materials.length; e++) this.materials[e].unfreeze(); }), (t.prototype.dispose = function () { (this.beforeRender = null), (this.afterRender = null), S.a._LastCreatedScene === this && (S.a._LastCreatedScene = null), (this.skeletons = []), (this.morphTargetManagers = []), (this._transientComponents = []), this._isReadyForMeshStage.clear(), this._beforeEvaluateActiveMeshStage.clear(), this._evaluateSubMeshStage.clear(), this._activeMeshStage.clear(), this._cameraDrawRenderTargetStage.clear(), this._beforeCameraDrawStage.clear(), this._beforeRenderTargetDrawStage.clear(), this._beforeRenderingGroupDrawStage.clear(), this._beforeRenderingMeshStage.clear(), this._afterRenderingMeshStage.clear(), this._afterRenderingGroupDrawStage.clear(), this._afterCameraDrawStage.clear(), this._afterRenderTargetDrawStage.clear(), this._afterRenderStage.clear(), this._beforeCameraUpdateStage.clear(), this._beforeClearStage.clear(), this._gatherRenderTargetsStage.clear(), this._gatherActiveCameraRenderTargetsStage.clear(), this._pointerMoveStage.clear(), this._pointerDownStage.clear(), this._pointerUpStage.clear(); for (var e = 0, t = this._components; e < t.length; e++) { t[e].dispose(); } (this.importedMeshesFiles = new Array()), this.stopAllAnimations && this.stopAllAnimations(), this.resetCachedMaterial(), this.activeCamera && (this.activeCamera._activeMeshes.dispose(), (this.activeCamera = null)), this._activeMeshes.dispose(), this._renderingManager.dispose(), this._processedMaterials.dispose(), this._activeParticleSystems.dispose(), this._activeSkeletons.dispose(), this._softwareSkinnedMeshes.dispose(), this._renderTargets.dispose(), this._registeredForLateAnimationBindings.dispose(), this._meshesForIntersections.dispose(), (this._toBeDisposed = []); for (var n = 0, i = this._activeRequests; n < i.length; n++) { i[n].abort(); } this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onBeforeRenderObservable.clear(), this.onAfterRenderObservable.clear(), this.onBeforeRenderTargetsRenderObservable.clear(), this.onAfterRenderTargetsRenderObservable.clear(), this.onAfterStepObservable.clear(), this.onBeforeStepObservable.clear(), this.onBeforeActiveMeshesEvaluationObservable.clear(), this.onAfterActiveMeshesEvaluationObservable.clear(), this.onBeforeParticlesRenderingObservable.clear(), this.onAfterParticlesRenderingObservable.clear(), this.onBeforeDrawPhaseObservable.clear(), this.onAfterDrawPhaseObservable.clear(), this.onBeforeAnimationsObservable.clear(), this.onAfterAnimationsObservable.clear(), this.onDataLoadedObservable.clear(), this.onBeforeRenderingGroupObservable.clear(), this.onAfterRenderingGroupObservable.clear(), this.onMeshImportedObservable.clear(), this.onBeforeCameraRenderObservable.clear(), this.onAfterCameraRenderObservable.clear(), this.onReadyObservable.clear(), this.onNewCameraAddedObservable.clear(), this.onCameraRemovedObservable.clear(), this.onNewLightAddedObservable.clear(), this.onLightRemovedObservable.clear(), this.onNewGeometryAddedObservable.clear(), this.onGeometryRemovedObservable.clear(), this.onNewTransformNodeAddedObservable.clear(), this.onTransformNodeRemovedObservable.clear(), this.onNewMeshAddedObservable.clear(), this.onMeshRemovedObservable.clear(), this.onNewSkeletonAddedObservable.clear(), this.onSkeletonRemovedObservable.clear(), this.onNewMaterialAddedObservable.clear(), this.onMaterialRemovedObservable.clear(), this.onNewTextureAddedObservable.clear(), this.onTextureRemovedObservable.clear(), this.onPrePointerObservable.clear(), this.onPointerObservable.clear(), this.onPreKeyboardObservable.clear(), this.onKeyboardObservable.clear(), this.onActiveCameraChanged.clear(), this.detachControl(); var r, o = this._engine.getInputElement(); if (o) for (r = 0; r < this.cameras.length; r++) this.cameras[r].detachControl(o); for (; this.animationGroups.length; ) this.animationGroups[0].dispose(); for (; this.lights.length; ) this.lights[0].dispose(); for (; this.meshes.length; ) this.meshes[0].dispose(!0); for (; this.transformNodes.length; ) this.transformNodes[0].dispose(!0); for (; this.cameras.length; ) this.cameras[0].dispose(); for (this._defaultMaterial && this._defaultMaterial.dispose(); this.multiMaterials.length; ) this.multiMaterials[0].dispose(); for (; this.materials.length; ) this.materials[0].dispose(); for (; this.particleSystems.length; ) this.particleSystems[0].dispose(); for (; this.postProcesses.length; ) this.postProcesses[0].dispose(); for (; this.textures.length; ) this.textures[0].dispose(); this._sceneUbo.dispose(), this._multiviewSceneUbo && this._multiviewSceneUbo.dispose(), this.postProcessManager.dispose(), (r = this._engine.scenes.indexOf(this)) > -1 && this._engine.scenes.splice(r, 1), this._engine.wipeCaches(!0), (this._isDisposed = !0); }), Object.defineProperty(t.prototype, "isDisposed", { get: function () { return this._isDisposed; }, enumerable: !0, configurable: !0, }), (t.prototype.clearCachedVertexData = function () { for (var e = 0; e < this.meshes.length; e++) { var t = this.meshes[e].geometry; if (t) for (var n in ((t._indices = []), t._vertexBuffers)) t._vertexBuffers.hasOwnProperty(n) && (t._vertexBuffers[n]._buffer._data = null); } }), (t.prototype.cleanCachedTextureBuffer = function () { for (var e = 0, t = this.textures; e < t.length; e++) { var n = t[e]; n._buffer && (n._buffer = null); } }), (t.prototype.getWorldExtends = function (e) { var t = new u.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), n = new u.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE); return ( (e = e || function () { return !0; }), this.meshes.filter(e).forEach(function (e) { if ((e.computeWorldMatrix(!0), e.subMeshes && 0 !== e.subMeshes.length && !e.infiniteDistance)) { var i = e.getBoundingInfo(), r = i.boundingBox.minimumWorld, o = i.boundingBox.maximumWorld; u.e.CheckExtends(r, t, n), u.e.CheckExtends(o, t, n); } }), { min: t, max: n } ); }), (t.prototype.createPickingRay = function (e, t, n, i, r) { throw (void 0 === r && (r = !1), O.a.WarnImport("Ray")); }), (t.prototype.createPickingRayToRef = function (e, t, n, i, r, o) { throw (void 0 === o && (o = !1), O.a.WarnImport("Ray")); }), (t.prototype.createPickingRayInCameraSpace = function (e, t, n) { throw O.a.WarnImport("Ray"); }), (t.prototype.createPickingRayInCameraSpaceToRef = function (e, t, n, i) { throw O.a.WarnImport("Ray"); }), (t.prototype.pick = function (e, t, n, i, r, o) { var a = new _.a(); return (a._pickingUnavailable = !0), a; }), (t.prototype.pickWithRay = function (e, t, n, i) { throw O.a.WarnImport("Ray"); }), (t.prototype.multiPick = function (e, t, n, i, r) { throw O.a.WarnImport("Ray"); }), (t.prototype.multiPickWithRay = function (e, t, n) { throw O.a.WarnImport("Ray"); }), (t.prototype.setPointerOverMesh = function (e) { this._inputManager.setPointerOverMesh(e); }), (t.prototype.getPointerOverMesh = function () { return this._inputManager.getPointerOverMesh(); }), (t.prototype._rebuildGeometries = function () { for (var e = 0, t = this.geometries; e < t.length; e++) { t[e]._rebuild(); } for (var n = 0, i = this.meshes; n < i.length; n++) { i[n]._rebuild(); } this.postProcessManager && this.postProcessManager._rebuild(); for (var r = 0, o = this._components; r < o.length; r++) { o[r].rebuild(); } for (var a = 0, s = this.particleSystems; a < s.length; a++) { s[a].rebuild(); } }), (t.prototype._rebuildTextures = function () { for (var e = 0, t = this.textures; e < t.length; e++) { t[e]._rebuild(); } this.markAllMaterialsAsDirty(1); }), (t.prototype._getByTags = function (e, t, n) { if (void 0 === t) return e; var i = []; for (var r in ((n = n || function (e) {}), e)) { var o = e[r]; l.a && l.a.MatchesQuery(o, t) && (i.push(o), n(o)); } return i; }), (t.prototype.getMeshesByTags = function (e, t) { return this._getByTags(this.meshes, e, t); }), (t.prototype.getCamerasByTags = function (e, t) { return this._getByTags(this.cameras, e, t); }), (t.prototype.getLightsByTags = function (e, t) { return this._getByTags(this.lights, e, t); }), (t.prototype.getMaterialByTags = function (e, t) { return this._getByTags(this.materials, e, t).concat(this._getByTags(this.multiMaterials, e, t)); }), (t.prototype.setRenderingOrder = function (e, t, n, i) { void 0 === t && (t = null), void 0 === n && (n = null), void 0 === i && (i = null), this._renderingManager.setRenderingOrder(e, t, n, i); }), (t.prototype.setRenderingAutoClearDepthStencil = function (e, t, n, i) { void 0 === n && (n = !0), void 0 === i && (i = !0), this._renderingManager.setRenderingAutoClearDepthStencil(e, t, n, i); }), (t.prototype.getAutoClearDepthStencilSetup = function (e) { return this._renderingManager.getAutoClearDepthStencilSetup(e); }), Object.defineProperty(t.prototype, "blockMaterialDirtyMechanism", { get: function () { return this._blockMaterialDirtyMechanism; }, set: function (e) { this._blockMaterialDirtyMechanism !== e && ((this._blockMaterialDirtyMechanism = e), e || this.markAllMaterialsAsDirty(31)); }, enumerable: !0, configurable: !0, }), (t.prototype.markAllMaterialsAsDirty = function (e, t) { if (!this._blockMaterialDirtyMechanism) for (var n = 0, i = this.materials; n < i.length; n++) { var r = i[n]; (t && !t(r)) || r.markAsDirty(e); } }), (t.prototype._loadFile = function (e, t, n, i, r, o) { var a = this, s = N.a.LoadFile(e, t, n, i ? this.offlineProvider : void 0, r, o); return ( this._activeRequests.push(s), s.onCompleteObservable.add(function (e) { a._activeRequests.splice(a._activeRequests.indexOf(e), 1); }), s ); }), (t.prototype._loadFileAsync = function (e, t, n, i) { var r = this; return new Promise(function (o, a) { r._loadFile( e, function (e) { o(e); }, t, n, i, function (e, t) { a(t); } ); }); }), (t.prototype._requestFile = function (e, t, n, i, r, o, a) { var s = this, c = N.a.RequestFile(e, t, n, i ? this.offlineProvider : void 0, r, o, a); return ( this._activeRequests.push(c), c.onCompleteObservable.add(function (e) { s._activeRequests.splice(s._activeRequests.indexOf(e), 1); }), c ); }), (t.prototype._requestFileAsync = function (e, t, n, i, r) { var o = this; return new Promise(function (a, s) { o._requestFile( e, function (e) { a(e); }, t, n, i, function (e) { s(e); }, r ); }); }), (t.prototype._readFile = function (e, t, n, i, r) { var o = this, a = N.a.ReadFile(e, t, n, i, r); return ( this._activeRequests.push(a), a.onCompleteObservable.add(function (e) { o._activeRequests.splice(o._activeRequests.indexOf(e), 1); }), a ); }), (t.prototype._readFileAsync = function (e, t, n) { var i = this; return new Promise(function (r, o) { i._readFile( e, function (e) { r(e); }, t, n, function (e) { o(e); } ); }); }), (t.FOGMODE_NONE = 0), (t.FOGMODE_EXP = 1), (t.FOGMODE_EXP2 = 2), (t.FOGMODE_LINEAR = 3), (t.MinDeltaTime = 1), (t.MaxDeltaTime = 1e3), t ); })(f.a); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.WebUtils = void 0); class r { static isSafari() { let e = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); return e && (e = !navigator.userAgent.match("CriOS")), e; } static isChrome() { const e = window.chrome, t = window.navigator, n = t.vendor, i = void 0 !== window.opr, r = t.userAgent.indexOf("Edge") > -1; return !!t.userAgent.match("CriOS") || (null != e && "Google Inc." === n && !1 === i && !1 === r); } static check_webp_feature(e) { return i(this, void 0, void 0, function* () { const t = { lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA", lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==", alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==", animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA", }; return new Promise((n) => { const i = new Image(); (i.onload = () => n(i.width > 0 && i.height > 0)), (i.onerror = () => n(!1)), (i.src = "data:image/webp;base64," + t[e]); }); }); } static isWebpSupported() { return i(this, void 0, void 0, function* () { if (-1 != r._webpSupported) return 1 == r._webpSupported; const e = yield r.check_webp_feature("lossless"); return (r._webpSupported = e ? 1 : 0), 1 == r._webpSupported; }); } static get textureExtension() { return 1 == r._webpSupported ? "webp" : "png"; } static get loadWebpAssets() { return 1 == r._webpSupported; } static isOggSupported() { return i(this, void 0, void 0, function* () { if (-1 != r._isOggSupported) return 1 == r._isOggSupported; const e = new Audio(); return (r._isOggSupported = e.canPlayType("audio/ogg") ? 1 : 0), 1 == r._isOggSupported; }); } static get audioExtension() { return 1 == r._isOggSupported ? "ogg" : "mp3"; } static openFullscreen(e) { let t; e.requestFullscreen ? (t = e.requestFullscreen()) : e.mozRequestFullScreen ? (t = e.mozRequestFullScreen()) : e.webkitRequestFullscreen ? (t = e.webkitRequestFullscreen()) : e.msRequestFullscreen && (t = e.msRequestFullscreen()), t && r.hasTouch && t.then(() => r.lockOrientation()); } static closeFullscreen(e) { (e && null == e.fullscreenElement) || (e.exitFullscreen ? e.exitFullscreen() : e.mozCancelFullScreen ? e.mozCancelFullScreen() : e.webkitExitFullscreen ? e.webkitExitFullscreen() : e.msExitFullscreen && e.msExitFullscreen()); } static formatNumber(e) { return r.INTL_NUMBER.format(e); } static lockOrientation() { null != window.screen.orientation && window.screen.orientation .lock("portrait") .then( () => {}, () => {} ) .catch((e) => {}); } static get isIOS() { return ( null != r._isIOS || (r._isIOS = ["iPad Simulator", "iPhone Simulator", "iPod Simulator", "iPad", "iPhone", "iPod"].includes(navigator.platform) || (navigator.userAgent.includes("Mac") && "ontouchend" in document)), r._isIOS ); } } (t.WebUtils = r), (r._webpSupported = -1), (r._isOggSupported = -1), (r.INTL_NUMBER = new Intl.NumberFormat("en-US")), (r.hasTouch = !1), (r.orientationCheckDone = !1), (r._isIOS = void 0); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }), n.d(t, "c", function () { return a; }), n.d(t, "d", function () { return s; }), n.d(t, "b", function () { return c; }); var i = n(2), r = n(1), o = (function () { function e() {} return (e.POINTERDOWN = 1), (e.POINTERUP = 2), (e.POINTERMOVE = 4), (e.POINTERWHEEL = 8), (e.POINTERPICK = 16), (e.POINTERTAP = 32), (e.POINTERDOUBLETAP = 64), e; })(), a = function (e, t) { (this.type = e), (this.event = t); }, s = (function (e) { function t(t, n, i, o) { var a = e.call(this, t, n) || this; return (a.ray = null), (a.skipOnPointerObservable = !1), (a.localPosition = new r.d(i, o)), a; } return Object(i.d)(t, e), t; })(a), c = (function (e) { function t(t, n, i) { var r = e.call(this, t, n) || this; return (r.pickInfo = i), r; } return Object(i.d)(t, e), t; })(a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }), n.d(t, "b", function () { return o; }); var i = n(2), r = (function () { function e() {} return ( (e.NAME_EFFECTLAYER = "EffectLayer"), (e.NAME_LAYER = "Layer"), (e.NAME_LENSFLARESYSTEM = "LensFlareSystem"), (e.NAME_BOUNDINGBOXRENDERER = "BoundingBoxRenderer"), (e.NAME_PARTICLESYSTEM = "ParticleSystem"), (e.NAME_GAMEPAD = "Gamepad"), (e.NAME_SIMPLIFICATIONQUEUE = "SimplificationQueue"), (e.NAME_GEOMETRYBUFFERRENDERER = "GeometryBufferRenderer"), (e.NAME_DEPTHRENDERER = "DepthRenderer"), (e.NAME_POSTPROCESSRENDERPIPELINEMANAGER = "PostProcessRenderPipelineManager"), (e.NAME_SPRITE = "Sprite"), (e.NAME_OUTLINERENDERER = "Outline"), (e.NAME_PROCEDURALTEXTURE = "ProceduralTexture"), (e.NAME_SHADOWGENERATOR = "ShadowGenerator"), (e.NAME_OCTREE = "Octree"), (e.NAME_PHYSICSENGINE = "PhysicsEngine"), (e.NAME_AUDIO = "Audio"), (e.STEP_ISREADYFORMESH_EFFECTLAYER = 0), (e.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER = 0), (e.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER = 0), (e.STEP_ACTIVEMESH_BOUNDINGBOXRENDERER = 0), (e.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER = 1), (e.STEP_BEFORECAMERADRAW_EFFECTLAYER = 0), (e.STEP_BEFORECAMERADRAW_LAYER = 1), (e.STEP_BEFORERENDERTARGETDRAW_LAYER = 0), (e.STEP_BEFORERENDERINGMESH_OUTLINE = 0), (e.STEP_AFTERRENDERINGMESH_OUTLINE = 0), (e.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW = 0), (e.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER = 1), (e.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE = 0), (e.STEP_BEFORECAMERAUPDATE_GAMEPAD = 1), (e.STEP_BEFORECLEAR_PROCEDURALTEXTURE = 0), (e.STEP_AFTERRENDERTARGETDRAW_LAYER = 0), (e.STEP_AFTERCAMERADRAW_EFFECTLAYER = 0), (e.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM = 1), (e.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW = 2), (e.STEP_AFTERCAMERADRAW_LAYER = 3), (e.STEP_AFTERRENDER_AUDIO = 0), (e.STEP_GATHERRENDERTARGETS_DEPTHRENDERER = 0), (e.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER = 1), (e.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR = 2), (e.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER = 3), (e.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER = 0), (e.STEP_POINTERMOVE_SPRITE = 0), (e.STEP_POINTERDOWN_SPRITE = 0), (e.STEP_POINTERUP_SPRITE = 0), e ); })(), o = (function (e) { function t(t) { return e.apply(this, t) || this; } return ( Object(i.d)(t, e), (t.Create = function () { return Object.create(t.prototype); }), (t.prototype.registerStep = function (e, t, n) { var i = 0; for (Number.MAX_VALUE; i < this.length; i++) { if (e < this[i].index) break; } this.splice(i, 0, { index: e, component: t, action: n.bind(t) }); }), (t.prototype.clear = function () { this.length = 0; }), t ); })(Array); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.WarnImport = function (e) { return e + " needs to be imported before as it contains a side-effect required by your code."; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return i; }), n.d(t, "a", function () { return o; }); var i, r = n(1); !(function (e) { (e[(e.LOCAL = 0)] = "LOCAL"), (e[(e.WORLD = 1)] = "WORLD"), (e[(e.BONE = 2)] = "BONE"); })(i || (i = {})); var o = (function () { function e() {} return (e.X = new r.e(1, 0, 0)), (e.Y = new r.e(0, 1, 0)), (e.Z = new r.e(0, 0, 1)), e; })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(47), r = n(6), o = n(1), a = (n(208), n(14)), s = (n(166), (function () { function e(e, t, n, a, s, c, l, u, h, d, p, f, m, g, b) { void 0 === l && (l = 1), void 0 === d && (d = null), void 0 === p && (p = 0), void 0 === f && (f = "postprocess"), void 0 === g && (g = !1), void 0 === b && (b = 5), (this.name = e), (this.width = -1), (this.height = -1), (this._outputTexture = null), (this.autoClear = !0), (this.alphaMode = 0), (this.animations = new Array()), (this.enablePixelPerfectMode = !1), (this.forceFullscreenViewport = !0), (this.scaleMode = 1), (this.alwaysForcePOT = !1), (this._samples = 1), (this.adaptScaleToCurrentViewport = !1), (this._reusable = !1), (this._textures = new i.a(2)), (this._currentRenderTextureInd = 0), (this._scaleRatio = new o.d(1, 1)), (this._texelSize = o.d.Zero()), (this.onActivateObservable = new r.c()), (this.onSizeChangedObservable = new r.c()), (this.onApplyObservable = new r.c()), (this.onBeforeRenderObservable = new r.c()), (this.onAfterRenderObservable = new r.c()), null != c ? ((this._camera = c), (this._scene = c.getScene()), c.attachPostProcess(this), (this._engine = this._scene.getEngine()), this._scene.postProcesses.push(this), (this.uniqueId = this._scene.getUniqueId())) : u && ((this._engine = u), this._engine.postProcesses.push(this)), (this._options = s), (this.renderTargetSamplingMode = l || 1), (this._reusable = h || !1), (this._textureType = p), (this._textureFormat = b), (this._samplers = a || []), this._samplers.push("textureSampler"), (this._fragmentUrl = t), (this._vertexUrl = f), (this._parameters = n || []), this._parameters.push("scale"), (this._indexParameters = m), g || this.updateEffect(d); } return ( Object.defineProperty(e.prototype, "samples", { get: function () { return this._samples; }, set: function (e) { var t = this; (this._samples = Math.min(e, this._engine.getCaps().maxMSAASamples)), this._textures.forEach(function (e) { e.samples !== t._samples && t._engine.updateRenderTargetTextureSampleCount(e, t._samples); }); }, enumerable: !0, configurable: !0, }), (e.prototype.getEffectName = function () { return this._fragmentUrl; }), Object.defineProperty(e.prototype, "onActivate", { set: function (e) { this._onActivateObserver && this.onActivateObservable.remove(this._onActivateObserver), e && (this._onActivateObserver = this.onActivateObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onSizeChanged", { set: function (e) { this._onSizeChangedObserver && this.onSizeChangedObservable.remove(this._onSizeChangedObserver), (this._onSizeChangedObserver = this.onSizeChangedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onApply", { set: function (e) { this._onApplyObserver && this.onApplyObservable.remove(this._onApplyObserver), (this._onApplyObserver = this.onApplyObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onBeforeRender", { set: function (e) { this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onAfterRender", { set: function (e) { this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "inputTexture", { get: function () { return this._textures.data[this._currentRenderTextureInd]; }, set: function (e) { this._forcedOutputTexture = e; }, enumerable: !0, configurable: !0, }), (e.prototype.getCamera = function () { return this._camera; }), Object.defineProperty(e.prototype, "texelSize", { get: function () { return this._shareOutputWithPostProcess ? this._shareOutputWithPostProcess.texelSize : (this._forcedOutputTexture && this._texelSize.copyFromFloats(1 / this._forcedOutputTexture.width, 1 / this._forcedOutputTexture.height), this._texelSize); }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "PostProcess"; }), (e.prototype.getEngine = function () { return this._engine; }), (e.prototype.getEffect = function () { return this._effect; }), (e.prototype.shareOutputWith = function (e) { return this._disposeTextures(), (this._shareOutputWithPostProcess = e), this; }), (e.prototype.useOwnOutput = function () { 0 == this._textures.length && (this._textures = new i.a(2)), (this._shareOutputWithPostProcess = null); }), (e.prototype.updateEffect = function (e, t, n, i, r, o) { void 0 === e && (e = null), void 0 === t && (t = null), void 0 === n && (n = null), (this._effect = this._engine.createEffect( { vertex: this._vertexUrl, fragment: this._fragmentUrl }, ["position"], t || this._parameters, n || this._samplers, null !== e ? e : "", void 0, r, o, i || this._indexParameters )); }), (e.prototype.isReusable = function () { return this._reusable; }), (e.prototype.markTextureDirty = function () { this.width = -1; }), (e.prototype.activate = function (e, t, n) { var i = this; void 0 === t && (t = null); var r = (e = e || this._camera).getScene(), o = r.getEngine(), s = o.getCaps().maxTextureSize, c = ((t ? t.width : this._engine.getRenderWidth(!0)) * this._options) | 0, l = ((t ? t.height : this._engine.getRenderHeight(!0)) * this._options) | 0, u = e.parent; !u || (u.leftCamera != e && u.rightCamera != e) || (c /= 2); var h, d = this._options.width || c, p = this._options.height || l, f = 7 !== this.renderTargetSamplingMode && 1 !== this.renderTargetSamplingMode && 2 !== this.renderTargetSamplingMode; if (!this._shareOutputWithPostProcess && !this._forcedOutputTexture) { if (this.adaptScaleToCurrentViewport) { var m = o.currentViewport; m && ((d *= m.width), (p *= m.height)); } if ( ((f || this.alwaysForcePOT) && (this._options.width || (d = o.needPOTTextures ? a.a.GetExponentOfTwo(d, s, this.scaleMode) : d), this._options.height || (p = o.needPOTTextures ? a.a.GetExponentOfTwo(p, s, this.scaleMode) : p)), this.width !== d || this.height !== p) ) { if (this._textures.length > 0) { for (var g = 0; g < this._textures.length; g++) this._engine._releaseTexture(this._textures.data[g]); this._textures.reset(); } (this.width = d), (this.height = p); var b = { width: this.width, height: this.height }, _ = { generateMipMaps: f, generateDepthBuffer: n || 0 === e._postProcesses.indexOf(this), generateStencilBuffer: (n || 0 === e._postProcesses.indexOf(this)) && this._engine.isStencilEnable, samplingMode: this.renderTargetSamplingMode, type: this._textureType, format: this._textureFormat, }; this._textures.push(this._engine.createRenderTargetTexture(b, _)), this._reusable && this._textures.push(this._engine.createRenderTargetTexture(b, _)), this._texelSize.copyFromFloats(1 / this.width, 1 / this.height), this.onSizeChangedObservable.notifyObservers(this); } this._textures.forEach(function (e) { e.samples !== i.samples && i._engine.updateRenderTargetTextureSampleCount(e, i.samples); }); } return ( this._shareOutputWithPostProcess ? (h = this._shareOutputWithPostProcess.inputTexture) : this._forcedOutputTexture ? ((h = this._forcedOutputTexture), (this.width = this._forcedOutputTexture.width), (this.height = this._forcedOutputTexture.height)) : (h = this.inputTexture), this.enablePixelPerfectMode ? (this._scaleRatio.copyFromFloats(c / d, l / p), this._engine.bindFramebuffer(h, 0, c, l, this.forceFullscreenViewport)) : (this._scaleRatio.copyFromFloats(1, 1), this._engine.bindFramebuffer(h, 0, void 0, void 0, this.forceFullscreenViewport)), this.onActivateObservable.notifyObservers(e), this.autoClear && 0 === this.alphaMode && this._engine.clear(this.clearColor ? this.clearColor : r.clearColor, r._allowPostProcessClearColor, !0, !0), this._reusable && (this._currentRenderTextureInd = (this._currentRenderTextureInd + 1) % 2), h ); }), Object.defineProperty(e.prototype, "isSupported", { get: function () { return this._effect.isSupported; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "aspectRatio", { get: function () { return this._shareOutputWithPostProcess ? this._shareOutputWithPostProcess.aspectRatio : this._forcedOutputTexture ? this._forcedOutputTexture.width / this._forcedOutputTexture.height : this.width / this.height; }, enumerable: !0, configurable: !0, }), (e.prototype.isReady = function () { return this._effect && this._effect.isReady(); }), (e.prototype.apply = function () { return this._effect && this._effect.isReady() ? (this._engine.enableEffect(this._effect), this._engine.setState(!1), this._engine.setDepthBuffer(!1), this._engine.setDepthWrite(!1), this._engine.setAlphaMode(this.alphaMode), this.alphaConstants && this.getEngine().setAlphaConstants(this.alphaConstants.r, this.alphaConstants.g, this.alphaConstants.b, this.alphaConstants.a), (e = this._shareOutputWithPostProcess ? this._shareOutputWithPostProcess.inputTexture : this._forcedOutputTexture ? this._forcedOutputTexture : this.inputTexture), this._effect._bindTexture("textureSampler", e), this._effect.setVector2("scale", this._scaleRatio), this.onApplyObservable.notifyObservers(this._effect), this._effect) : null; var e; }), (e.prototype._disposeTextures = function () { if (!this._shareOutputWithPostProcess && !this._forcedOutputTexture) { if (this._textures.length > 0) for (var e = 0; e < this._textures.length; e++) this._engine._releaseTexture(this._textures.data[e]); this._textures.dispose(); } }), (e.prototype.dispose = function (e) { if (((e = e || this._camera), this._disposeTextures(), this._scene)) { var t = this._scene.postProcesses.indexOf(this); -1 !== t && this._scene.postProcesses.splice(t, 1); } else { var n = this._engine.postProcesses.indexOf(this); -1 !== n && this._engine.postProcesses.splice(n, 1); } if (e) { if ((e.detachPostProcess(this), 0 === e._postProcesses.indexOf(this) && e._postProcesses.length > 0)) { var i = this._camera._getFirstPostProcess(); i && i.markTextureDirty(); } this.onActivateObservable.clear(), this.onAfterRenderObservable.clear(), this.onApplyObservable.clear(), this.onBeforeRenderObservable.clear(), this.onSizeChangedObservable.clear(); } }), e ); })()); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( Object.defineProperty(e, "LastCreatedEngine", { get: function () { return 0 === this.Instances.length ? null : this.Instances[this.Instances.length - 1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "LastCreatedScene", { get: function () { return this._LastCreatedScene; }, enumerable: !0, configurable: !0, }), (e.Instances = new Array()), (e._LastCreatedScene = null), (e.UseFallbackTexture = !0), (e.FallbackTexture = ""), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return m; }); var i = n(2), r = n(3), o = n(47), a = n(12), s = n(6), c = n(1), l = n(35), u = n(10), h = n(13), d = n(22), p = n(77), f = n(128), m = (function (e) { function t(n, i, r, a) { void 0 === a && (a = !0); var l = e.call(this, n, r) || this; return ( (l._position = c.e.Zero()), (l.upVector = c.e.Up()), (l.orthoLeft = null), (l.orthoRight = null), (l.orthoBottom = null), (l.orthoTop = null), (l.fov = 0.8), (l.minZ = 1), (l.maxZ = 1e4), (l.inertia = 0.9), (l.mode = t.PERSPECTIVE_CAMERA), (l.isIntermediate = !1), (l.viewport = new p.a(0, 0, 1, 1)), (l.layerMask = 268435455), (l.fovMode = t.FOVMODE_VERTICAL_FIXED), (l.cameraRigMode = t.RIG_MODE_NONE), (l.customRenderTargets = new Array()), (l.outputRenderTarget = null), (l.onViewMatrixChangedObservable = new s.c()), (l.onProjectionMatrixChangedObservable = new s.c()), (l.onAfterCheckInputsObservable = new s.c()), (l.onRestoreStateObservable = new s.c()), (l.isRigCamera = !1), (l._rigCameras = new Array()), (l._webvrViewMatrix = c.a.Identity()), (l._skipRendering = !1), (l._projectionMatrix = new c.a()), (l._postProcesses = new Array()), (l._activeMeshes = new o.a(256)), (l._globalPosition = c.e.Zero()), (l._computedViewMatrix = c.a.Identity()), (l._doNotComputeProjectionMatrix = !1), (l._transformMatrix = c.a.Zero()), (l._refreshFrustumPlanes = !0), (l._isCamera = !0), (l._isLeftCamera = !1), (l._isRightCamera = !1), l.getScene().addCamera(l), a && !l.getScene().activeCamera && (l.getScene().activeCamera = l), (l.position = i), l ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "position", { get: function () { return this._position; }, set: function (e) { this._position = e; }, enumerable: !0, configurable: !0, }), (t.prototype.storeState = function () { return (this._stateStored = !0), (this._storedFov = this.fov), this; }), (t.prototype._restoreStateValues = function () { return !!this._stateStored && ((this.fov = this._storedFov), !0); }), (t.prototype.restoreState = function () { return !!this._restoreStateValues() && (this.onRestoreStateObservable.notifyObservers(this), !0); }), (t.prototype.getClassName = function () { return "Camera"; }), (t.prototype.toString = function (e) { var t = "Name: " + this.name; if (((t += ", type: " + this.getClassName()), this.animations)) for (var n = 0; n < this.animations.length; n++) t += ", animation[0]: " + this.animations[n].toString(e); return t; }), Object.defineProperty(t.prototype, "globalPosition", { get: function () { return this._globalPosition; }, enumerable: !0, configurable: !0, }), (t.prototype.getActiveMeshes = function () { return this._activeMeshes; }), (t.prototype.isActiveMesh = function (e) { return -1 !== this._activeMeshes.indexOf(e); }), (t.prototype.isReady = function (t) { if ((void 0 === t && (t = !1), t)) for (var n = 0, i = this._postProcesses; n < i.length; n++) { var r = i[n]; if (r && !r.isReady()) return !1; } return e.prototype.isReady.call(this, t); }), (t.prototype._initCache = function () { e.prototype._initCache.call(this), (this._cache.position = new c.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (this._cache.upVector = new c.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (this._cache.mode = void 0), (this._cache.minZ = void 0), (this._cache.maxZ = void 0), (this._cache.fov = void 0), (this._cache.fovMode = void 0), (this._cache.aspectRatio = void 0), (this._cache.orthoLeft = void 0), (this._cache.orthoRight = void 0), (this._cache.orthoBottom = void 0), (this._cache.orthoTop = void 0), (this._cache.renderWidth = void 0), (this._cache.renderHeight = void 0); }), (t.prototype._updateCache = function (t) { t || e.prototype._updateCache.call(this), this._cache.position.copyFrom(this.position), this._cache.upVector.copyFrom(this.upVector); }), (t.prototype._isSynchronized = function () { return this._isSynchronizedViewMatrix() && this._isSynchronizedProjectionMatrix(); }), (t.prototype._isSynchronizedViewMatrix = function () { return !!e.prototype._isSynchronized.call(this) && this._cache.position.equals(this.position) && this._cache.upVector.equals(this.upVector) && this.isSynchronizedWithParent(); }), (t.prototype._isSynchronizedProjectionMatrix = function () { var e = this._cache.mode === this.mode && this._cache.minZ === this.minZ && this._cache.maxZ === this.maxZ; if (!e) return !1; var n = this.getEngine(); return (e = this.mode === t.PERSPECTIVE_CAMERA ? this._cache.fov === this.fov && this._cache.fovMode === this.fovMode && this._cache.aspectRatio === n.getAspectRatio(this) : this._cache.orthoLeft === this.orthoLeft && this._cache.orthoRight === this.orthoRight && this._cache.orthoBottom === this.orthoBottom && this._cache.orthoTop === this.orthoTop && this._cache.renderWidth === n.getRenderWidth() && this._cache.renderHeight === n.getRenderHeight()); }), (t.prototype.attachControl = function (e, t) {}), (t.prototype.detachControl = function (e) {}), (t.prototype.update = function () { this._checkInputs(), this.cameraRigMode !== t.RIG_MODE_NONE && this._updateRigCameras(); }), (t.prototype._checkInputs = function () { this.onAfterCheckInputsObservable.notifyObservers(this); }), Object.defineProperty(t.prototype, "rigCameras", { get: function () { return this._rigCameras; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rigPostProcess", { get: function () { return this._rigPostProcess; }, enumerable: !0, configurable: !0, }), (t.prototype._getFirstPostProcess = function () { for (var e = 0; e < this._postProcesses.length; e++) if (null !== this._postProcesses[e]) return this._postProcesses[e]; return null; }), (t.prototype._cascadePostProcessesToRigCams = function () { var e = this._getFirstPostProcess(); e && e.markTextureDirty(); for (var t = 0, n = this._rigCameras.length; t < n; t++) { var i = this._rigCameras[t], r = i._rigPostProcess; if (r) "pass" === r.getEffectName() && (i.isIntermediate = 0 === this._postProcesses.length), (i._postProcesses = this._postProcesses.slice(0).concat(r)), r.markTextureDirty(); else i._postProcesses = this._postProcesses.slice(0); } }), (t.prototype.attachPostProcess = function (e, t) { return ( void 0 === t && (t = null), !e.isReusable() && this._postProcesses.indexOf(e) > -1 ? (u.a.Error("You're trying to reuse a post process not defined as reusable."), 0) : (null == t || t < 0 ? this._postProcesses.push(e) : null === this._postProcesses[t] ? (this._postProcesses[t] = e) : this._postProcesses.splice(t, 0, e), this._cascadePostProcessesToRigCams(), this._postProcesses.indexOf(e)) ); }), (t.prototype.detachPostProcess = function (e) { var t = this._postProcesses.indexOf(e); -1 !== t && (this._postProcesses[t] = null), this._cascadePostProcessesToRigCams(); }), (t.prototype.getWorldMatrix = function () { return this._isSynchronizedViewMatrix() || this.getViewMatrix(), this._worldMatrix; }), (t.prototype._getViewMatrix = function () { return c.a.Identity(); }), (t.prototype.getViewMatrix = function (e) { return ( (!e && this._isSynchronizedViewMatrix()) || (this.updateCache(), (this._computedViewMatrix = this._getViewMatrix()), (this._currentRenderId = this.getScene().getRenderId()), this._childUpdateId++, (this._refreshFrustumPlanes = !0), this._cameraRigParams && this._cameraRigParams.vrPreViewMatrix && this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix, this._computedViewMatrix), this.parent && this.parent.onViewMatrixChangedObservable && this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent), this.onViewMatrixChangedObservable.notifyObservers(this), this._computedViewMatrix.invertToRef(this._worldMatrix)), this._computedViewMatrix ); }), (t.prototype.freezeProjectionMatrix = function (e) { (this._doNotComputeProjectionMatrix = !0), void 0 !== e && (this._projectionMatrix = e); }), (t.prototype.unfreezeProjectionMatrix = function () { this._doNotComputeProjectionMatrix = !1; }), (t.prototype.getProjectionMatrix = function (e) { if (this._doNotComputeProjectionMatrix || (!e && this._isSynchronizedProjectionMatrix())) return this._projectionMatrix; (this._cache.mode = this.mode), (this._cache.minZ = this.minZ), (this._cache.maxZ = this.maxZ), (this._refreshFrustumPlanes = !0); var n = this.getEngine(), i = this.getScene(); if (this.mode === t.PERSPECTIVE_CAMERA) { (this._cache.fov = this.fov), (this._cache.fovMode = this.fovMode), (this._cache.aspectRatio = n.getAspectRatio(this)), this.minZ <= 0 && (this.minZ = 0.1); var r = n.useReverseDepthBuffer; (i.useRightHandedSystem ? (r ? c.a.PerspectiveFovReverseRHToRef : c.a.PerspectiveFovRHToRef) : r ? c.a.PerspectiveFovReverseLHToRef : c.a.PerspectiveFovLHToRef)( this.fov, n.getAspectRatio(this), this.minZ, this.maxZ, this._projectionMatrix, this.fovMode === t.FOVMODE_VERTICAL_FIXED ); } else { var o = n.getRenderWidth() / 2, a = n.getRenderHeight() / 2; i.useRightHandedSystem ? c.a.OrthoOffCenterRHToRef(this.orthoLeft || -o, this.orthoRight || o, this.orthoBottom || -a, this.orthoTop || a, this.minZ, this.maxZ, this._projectionMatrix) : c.a.OrthoOffCenterLHToRef(this.orthoLeft || -o, this.orthoRight || o, this.orthoBottom || -a, this.orthoTop || a, this.minZ, this.maxZ, this._projectionMatrix), (this._cache.orthoLeft = this.orthoLeft), (this._cache.orthoRight = this.orthoRight), (this._cache.orthoBottom = this.orthoBottom), (this._cache.orthoTop = this.orthoTop), (this._cache.renderWidth = n.getRenderWidth()), (this._cache.renderHeight = n.getRenderHeight()); } return this.onProjectionMatrixChangedObservable.notifyObservers(this), this._projectionMatrix; }), (t.prototype.getTransformationMatrix = function () { return this._computedViewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix), this._transformMatrix; }), (t.prototype._updateFrustumPlanes = function () { this._refreshFrustumPlanes && (this.getTransformationMatrix(), this._frustumPlanes ? f.a.GetPlanesToRef(this._transformMatrix, this._frustumPlanes) : (this._frustumPlanes = f.a.GetPlanes(this._transformMatrix)), (this._refreshFrustumPlanes = !1)); }), (t.prototype.isInFrustum = function (e, t) { if ((void 0 === t && (t = !1), this._updateFrustumPlanes(), t && this.rigCameras.length > 0)) { var n = !1; return ( this.rigCameras.forEach(function (t) { t._updateFrustumPlanes(), (n = n || e.isInFrustum(t._frustumPlanes)); }), n ); } return e.isInFrustum(this._frustumPlanes); }), (t.prototype.isCompletelyInFrustum = function (e) { return this._updateFrustumPlanes(), e.isCompletelyInFrustum(this._frustumPlanes); }), (t.prototype.getForwardRay = function (e, t, n) { throw (void 0 === e && (e = 100), d.a.WarnImport("Ray")); }), (t.prototype.dispose = function (n, i) { for ( void 0 === i && (i = !1), this.onViewMatrixChangedObservable.clear(), this.onProjectionMatrixChangedObservable.clear(), this.onAfterCheckInputsObservable.clear(), this.onRestoreStateObservable.clear(), this.inputs && this.inputs.clear(), this.getScene().stopAnimation(this), this.getScene().removeCamera(this); this._rigCameras.length > 0; ) { var r = this._rigCameras.pop(); r && r.dispose(); } if (this._rigPostProcess) this._rigPostProcess.dispose(this), (this._rigPostProcess = null), (this._postProcesses = []); else if (this.cameraRigMode !== t.RIG_MODE_NONE) (this._rigPostProcess = null), (this._postProcesses = []); else for (var o = this._postProcesses.length; --o >= 0; ) { var a = this._postProcesses[o]; a && a.dispose(this); } for (o = this.customRenderTargets.length; --o >= 0; ) this.customRenderTargets[o].dispose(); (this.customRenderTargets = []), this._activeMeshes.dispose(), e.prototype.dispose.call(this, n, i); }), Object.defineProperty(t.prototype, "isLeftCamera", { get: function () { return this._isLeftCamera; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isRightCamera", { get: function () { return this._isRightCamera; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "leftCamera", { get: function () { return this._rigCameras.length < 1 ? null : this._rigCameras[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rightCamera", { get: function () { return this._rigCameras.length < 2 ? null : this._rigCameras[1]; }, enumerable: !0, configurable: !0, }), (t.prototype.getLeftTarget = function () { return this._rigCameras.length < 1 ? null : this._rigCameras[0].getTarget(); }), (t.prototype.getRightTarget = function () { return this._rigCameras.length < 2 ? null : this._rigCameras[1].getTarget(); }), (t.prototype.setCameraRigMode = function (e, n) { if (this.cameraRigMode !== e) { for (; this._rigCameras.length > 0; ) { var i = this._rigCameras.pop(); i && i.dispose(); } if ( ((this.cameraRigMode = e), (this._cameraRigParams = {}), (this._cameraRigParams.interaxialDistance = n.interaxialDistance || 0.0637), (this._cameraRigParams.stereoHalfAngle = a.b.ToRadians(this._cameraRigParams.interaxialDistance / 0.0637)), this.cameraRigMode !== t.RIG_MODE_NONE) ) { var r = this.createRigCamera(this.name + "_L", 0); r && (r._isLeftCamera = !0); var o = this.createRigCamera(this.name + "_R", 1); o && (o._isRightCamera = !0), r && o && (this._rigCameras.push(r), this._rigCameras.push(o)); } switch (this.cameraRigMode) { case t.RIG_MODE_STEREOSCOPIC_ANAGLYPH: t._setStereoscopicAnaglyphRigMode(this); break; case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL: case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED: case t.RIG_MODE_STEREOSCOPIC_OVERUNDER: case t.RIG_MODE_STEREOSCOPIC_INTERLACED: t._setStereoscopicRigMode(this); break; case t.RIG_MODE_VR: t._setVRRigMode(this, n); break; case t.RIG_MODE_WEBVR: t._setWebVRRigMode(this, n); } this._cascadePostProcessesToRigCams(), this.update(); } }), (t._setStereoscopicRigMode = function (e) { throw "Import Cameras/RigModes/stereoscopicRigMode before using stereoscopic rig mode"; }), (t._setStereoscopicAnaglyphRigMode = function (e) { throw "Import Cameras/RigModes/stereoscopicAnaglyphRigMode before using stereoscopic anaglyph rig mode"; }), (t._setVRRigMode = function (e, t) { throw "Import Cameras/RigModes/vrRigMode before using VR rig mode"; }), (t._setWebVRRigMode = function (e, t) { throw "Import Cameras/RigModes/WebVRRigMode before using Web VR rig mode"; }), (t.prototype._getVRProjectionMatrix = function () { return ( c.a.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov, this._cameraRigParams.vrMetrics.aspectRatio, this.minZ, this.maxZ, this._cameraRigParams.vrWorkMatrix), this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix, this._projectionMatrix), this._projectionMatrix ); }), (t.prototype._updateCameraRotationMatrix = function () {}), (t.prototype._updateWebVRCameraRotationMatrix = function () {}), (t.prototype._getWebVRProjectionMatrix = function () { return c.a.Identity(); }), (t.prototype._getWebVRViewMatrix = function () { return c.a.Identity(); }), (t.prototype.setCameraRigParameter = function (e, t) { this._cameraRigParams || (this._cameraRigParams = {}), (this._cameraRigParams[e] = t), "interaxialDistance" === e && (this._cameraRigParams.stereoHalfAngle = a.b.ToRadians(t / 0.0637)); }), (t.prototype.createRigCamera = function (e, t) { return null; }), (t.prototype._updateRigCameras = function () { for (var e = 0; e < this._rigCameras.length; e++) (this._rigCameras[e].minZ = this.minZ), (this._rigCameras[e].maxZ = this.maxZ), (this._rigCameras[e].fov = this.fov), this._rigCameras[e].upVector.copyFrom(this.upVector); this.cameraRigMode === t.RIG_MODE_STEREOSCOPIC_ANAGLYPH && (this._rigCameras[0].viewport = this._rigCameras[1].viewport = this.viewport); }), (t.prototype._setupInputs = function () {}), (t.prototype.serialize = function () { var e = r.a.Serialize(this); return (e.type = this.getClassName()), this.parent && (e.parentId = this.parent.id), this.inputs && this.inputs.serialize(e), r.a.AppendSerializedAnimations(this, e), (e.ranges = this.serializeAnimationRanges()), e; }), (t.prototype.clone = function (e) { return r.a.Clone(t.GetConstructorFromName(this.getClassName(), e, this.getScene(), this.interaxialDistance, this.isStereoscopicSideBySide), this); }), (t.prototype.getDirection = function (e) { var t = c.e.Zero(); return this.getDirectionToRef(e, t), t; }), Object.defineProperty(t.prototype, "absoluteRotation", { get: function () { var e = c.b.Zero(); return this.getWorldMatrix().decompose(void 0, e), e; }, enumerable: !0, configurable: !0, }), (t.prototype.getDirectionToRef = function (e, t) { c.e.TransformNormalToRef(e, this.getWorldMatrix(), t); }), (t.GetConstructorFromName = function (e, n, i, r, o) { void 0 === r && (r = 0), void 0 === o && (o = !0); var a = l.a.Construct(e, n, i, { interaxial_distance: r, isStereoscopicSideBySide: o }); return ( a || function () { return t._createDefaultParsedCamera(n, i); } ); }), (t.prototype.computeWorldMatrix = function () { return this.getWorldMatrix(); }), (t.Parse = function (e, n) { var i = e.type, o = t.GetConstructorFromName(i, e.name, n, e.interaxial_distance, e.isStereoscopicSideBySide), a = r.a.Parse(o, e, n); if ( (e.parentId && (a._waitingParentId = e.parentId), a.inputs && (a.inputs.parse(e), a._setupInputs()), a.setPosition && (a.position.copyFromFloats(0, 0, 0), a.setPosition(c.e.FromArray(e.position))), e.target && a.setTarget && a.setTarget(c.e.FromArray(e.target)), e.cameraRigMode) ) { var s = e.interaxial_distance ? { interaxialDistance: e.interaxial_distance } : {}; a.setCameraRigMode(e.cameraRigMode, s); } if (e.animations) { for (var u = 0; u < e.animations.length; u++) { var d = e.animations[u], p = h.a.GetClass("BABYLON.Animation"); p && a.animations.push(p.Parse(d)); } l.a.ParseAnimationRanges(a, e, n); } return e.autoAnimate && n.beginAnimation(a, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), a; }), (t._createDefaultParsedCamera = function (e, t) { throw d.a.WarnImport("UniversalCamera"); }), (t.PERSPECTIVE_CAMERA = 0), (t.ORTHOGRAPHIC_CAMERA = 1), (t.FOVMODE_VERTICAL_FIXED = 0), (t.FOVMODE_HORIZONTAL_FIXED = 1), (t.RIG_MODE_NONE = 0), (t.RIG_MODE_STEREOSCOPIC_ANAGLYPH = 10), (t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL = 11), (t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED = 12), (t.RIG_MODE_STEREOSCOPIC_OVERUNDER = 13), (t.RIG_MODE_STEREOSCOPIC_INTERLACED = 14), (t.RIG_MODE_VR = 20), (t.RIG_MODE_WEBVR = 21), (t.RIG_MODE_CUSTOM = 22), (t.ForceAttachControlToAlwaysPreventDefault = !1), Object(i.c)([Object(r.o)("position")], t.prototype, "_position", void 0), Object(i.c)([Object(r.o)()], t.prototype, "upVector", void 0), Object(i.c)([Object(r.c)()], t.prototype, "orthoLeft", void 0), Object(i.c)([Object(r.c)()], t.prototype, "orthoRight", void 0), Object(i.c)([Object(r.c)()], t.prototype, "orthoBottom", void 0), Object(i.c)([Object(r.c)()], t.prototype, "orthoTop", void 0), Object(i.c)([Object(r.c)()], t.prototype, "fov", void 0), Object(i.c)([Object(r.c)()], t.prototype, "minZ", void 0), Object(i.c)([Object(r.c)()], t.prototype, "maxZ", void 0), Object(i.c)([Object(r.c)()], t.prototype, "inertia", void 0), Object(i.c)([Object(r.c)()], t.prototype, "mode", void 0), Object(i.c)([Object(r.c)()], t.prototype, "layerMask", void 0), Object(i.c)([Object(r.c)()], t.prototype, "fovMode", void 0), Object(i.c)([Object(r.c)()], t.prototype, "cameraRigMode", void 0), Object(i.c)([Object(r.c)()], t.prototype, "interaxialDistance", void 0), Object(i.c)([Object(r.c)()], t.prototype, "isStereoscopicSideBySide", void 0), t ); })(l.a); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return d; }), n.d(t, "a", function () { return p; }); var i = n(1), r = n(5), o = n(15), a = n(3), s = n(13), c = n(134), l = n(146), u = n(35), h = n(109), d = function () {}, p = (function () { function e(t, n, i, r, o, a) { (this.name = t), (this.targetProperty = n), (this.framePerSecond = i), (this.dataType = r), (this.loopMode = o), (this.enableBlending = a), (this._runtimeAnimations = new Array()), (this._events = new Array()), (this.blendingSpeed = 0.01), (this._ranges = {}), (this.targetPropertyPath = n.split(".")), (this.dataType = r), (this.loopMode = void 0 === o ? e.ANIMATIONLOOPMODE_CYCLE : o); } return ( (e._PrepareAnimation = function (t, n, o, a, s, c, l, u) { var d = void 0; if ( (!isNaN(parseFloat(s)) && isFinite(s) ? (d = e.ANIMATIONTYPE_FLOAT) : s instanceof i.b ? (d = e.ANIMATIONTYPE_QUATERNION) : s instanceof i.e ? (d = e.ANIMATIONTYPE_VECTOR3) : s instanceof i.d ? (d = e.ANIMATIONTYPE_VECTOR2) : s instanceof r.a ? (d = e.ANIMATIONTYPE_COLOR3) : s instanceof r.b ? (d = e.ANIMATIONTYPE_COLOR4) : s instanceof h.a && (d = e.ANIMATIONTYPE_SIZE), null == d) ) return null; var p = new e(t, n, o, d, l), f = [ { frame: 0, value: s }, { frame: a, value: c }, ]; return p.setKeys(f), void 0 !== u && p.setEasingFunction(u), p; }), (e.CreateAnimation = function (t, n, i, r) { var o = new e(t + "Animation", t, i, n, e.ANIMATIONLOOPMODE_CONSTANT); return o.setEasingFunction(r), o; }), (e.CreateAndStartAnimation = function (t, n, i, r, o, a, s, c, l, u) { var h = e._PrepareAnimation(t, i, r, o, a, s, c, l); return h ? n.getScene().beginDirectAnimation(n, [h], 0, o, 1 === h.loopMode, 1, u) : null; }), (e.CreateAndStartHierarchyAnimation = function (t, n, i, r, o, a, s, c, l, u, h) { var d = e._PrepareAnimation(t, r, o, a, s, c, l, u); return d ? n.getScene().beginDirectHierarchyAnimation(n, i, [d], 0, a, 1 === d.loopMode, 1, h) : null; }), (e.CreateMergeAndStartAnimation = function (t, n, i, r, o, a, s, c, l, u) { var h = e._PrepareAnimation(t, i, r, o, a, s, c, l); return h ? (n.animations.push(h), n.getScene().beginAnimation(n, 0, o, 1 === h.loopMode, 1, u)) : null; }), (e.TransitionTo = function (e, t, n, i, r, o, a, s) { if ((void 0 === s && (s = null), a <= 0)) return (n[e] = t), s && s(), null; var c = r * (a / 1e3); o.setKeys([ { frame: 0, value: n[e].clone ? n[e].clone() : n[e] }, { frame: c, value: t }, ]), n.animations || (n.animations = []), n.animations.push(o); var l = i.beginAnimation(n, 0, c, !1); return (l.onAnimationEnd = s), l; }), Object.defineProperty(e.prototype, "runtimeAnimations", { get: function () { return this._runtimeAnimations; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasRunningRuntimeAnimations", { get: function () { for (var e = 0, t = this._runtimeAnimations; e < t.length; e++) { if (!t[e].isStopped) return !0; } return !1; }, enumerable: !0, configurable: !0, }), (e.prototype.toString = function (e) { var t = "Name: " + this.name + ", property: " + this.targetProperty; if ( ((t += ", datatype: " + ["Float", "Vector3", "Quaternion", "Matrix", "Color3", "Vector2"][this.dataType]), (t += ", nKeys: " + (this._keys ? this._keys.length : "none")), (t += ", nRanges: " + (this._ranges ? Object.keys(this._ranges).length : "none")), e) ) { t += ", Ranges: {"; var n = !0; for (var i in this._ranges) n && ((t += ", "), (n = !1)), (t += i); t += "}"; } return t; }), (e.prototype.addEvent = function (e) { this._events.push(e); }), (e.prototype.removeEvents = function (e) { for (var t = 0; t < this._events.length; t++) this._events[t].frame === e && (this._events.splice(t, 1), t--); }), (e.prototype.getEvents = function () { return this._events; }), (e.prototype.createRange = function (e, t, n) { this._ranges[e] || (this._ranges[e] = new l.a(e, t, n)); }), (e.prototype.deleteRange = function (e, t) { void 0 === t && (t = !0); var n = this._ranges[e]; if (n) { if (t) for (var i = n.from, r = n.to, o = this._keys.length - 1; o >= 0; o--) this._keys[o].frame >= i && this._keys[o].frame <= r && this._keys.splice(o, 1); this._ranges[e] = null; } }), (e.prototype.getRange = function (e) { return this._ranges[e]; }), (e.prototype.getKeys = function () { return this._keys; }), (e.prototype.getHighestFrame = function () { for (var e = 0, t = 0, n = this._keys.length; t < n; t++) e < this._keys[t].frame && (e = this._keys[t].frame); return e; }), (e.prototype.getEasingFunction = function () { return this._easingFunction; }), (e.prototype.setEasingFunction = function (e) { this._easingFunction = e; }), (e.prototype.floatInterpolateFunction = function (e, t, n) { return o.a.Lerp(e, t, n); }), (e.prototype.floatInterpolateFunctionWithTangents = function (e, t, n, i, r) { return o.a.Hermite(e, t, n, i, r); }), (e.prototype.quaternionInterpolateFunction = function (e, t, n) { return i.b.Slerp(e, t, n); }), (e.prototype.quaternionInterpolateFunctionWithTangents = function (e, t, n, r, o) { return i.b.Hermite(e, t, n, r, o).normalize(); }), (e.prototype.vector3InterpolateFunction = function (e, t, n) { return i.e.Lerp(e, t, n); }), (e.prototype.vector3InterpolateFunctionWithTangents = function (e, t, n, r, o) { return i.e.Hermite(e, t, n, r, o); }), (e.prototype.vector2InterpolateFunction = function (e, t, n) { return i.d.Lerp(e, t, n); }), (e.prototype.vector2InterpolateFunctionWithTangents = function (e, t, n, r, o) { return i.d.Hermite(e, t, n, r, o); }), (e.prototype.sizeInterpolateFunction = function (e, t, n) { return h.a.Lerp(e, t, n); }), (e.prototype.color3InterpolateFunction = function (e, t, n) { return r.a.Lerp(e, t, n); }), (e.prototype.color4InterpolateFunction = function (e, t, n) { return r.b.Lerp(e, t, n); }), (e.prototype._getKeyValue = function (e) { return "function" == typeof e ? e() : e; }), (e.prototype._interpolate = function (t, n) { if (n.loopMode === e.ANIMATIONLOOPMODE_CONSTANT && n.repeatCount > 0) return n.highLimitValue.clone ? n.highLimitValue.clone() : n.highLimitValue; var i = this._keys; if (1 === i.length) return this._getKeyValue(i[0].value); var r = n.key; if (i[r].frame >= t) for (; r - 1 >= 0 && i[r].frame >= t; ) r--; for (var o = r; o < i.length; o++) { var a = i[o + 1]; if (a.frame >= t) { n.key = o; var s = i[o], l = this._getKeyValue(s.value); if (s.interpolation === c.a.STEP) return l; var u = this._getKeyValue(a.value), h = void 0 !== s.outTangent && void 0 !== a.inTangent, d = a.frame - s.frame, p = (t - s.frame) / d, f = this.getEasingFunction(); switch ((null != f && (p = f.ease(p)), this.dataType)) { case e.ANIMATIONTYPE_FLOAT: var m = h ? this.floatInterpolateFunctionWithTangents(l, s.outTangent * d, u, a.inTangent * d, p) : this.floatInterpolateFunction(l, u, p); switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return m; case e.ANIMATIONLOOPMODE_RELATIVE: return n.offsetValue * n.repeatCount + m; } break; case e.ANIMATIONTYPE_QUATERNION: var g = h ? this.quaternionInterpolateFunctionWithTangents(l, s.outTangent.scale(d), u, a.inTangent.scale(d), p) : this.quaternionInterpolateFunction(l, u, p); switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return g; case e.ANIMATIONLOOPMODE_RELATIVE: return g.addInPlace(n.offsetValue.scale(n.repeatCount)); } return g; case e.ANIMATIONTYPE_VECTOR3: var b = h ? this.vector3InterpolateFunctionWithTangents(l, s.outTangent.scale(d), u, a.inTangent.scale(d), p) : this.vector3InterpolateFunction(l, u, p); switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return b; case e.ANIMATIONLOOPMODE_RELATIVE: return b.add(n.offsetValue.scale(n.repeatCount)); } case e.ANIMATIONTYPE_VECTOR2: var _ = h ? this.vector2InterpolateFunctionWithTangents(l, s.outTangent.scale(d), u, a.inTangent.scale(d), p) : this.vector2InterpolateFunction(l, u, p); switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return _; case e.ANIMATIONLOOPMODE_RELATIVE: return _.add(n.offsetValue.scale(n.repeatCount)); } case e.ANIMATIONTYPE_SIZE: switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return this.sizeInterpolateFunction(l, u, p); case e.ANIMATIONLOOPMODE_RELATIVE: return this.sizeInterpolateFunction(l, u, p).add(n.offsetValue.scale(n.repeatCount)); } case e.ANIMATIONTYPE_COLOR3: switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return this.color3InterpolateFunction(l, u, p); case e.ANIMATIONLOOPMODE_RELATIVE: return this.color3InterpolateFunction(l, u, p).add(n.offsetValue.scale(n.repeatCount)); } case e.ANIMATIONTYPE_COLOR4: switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: return this.color4InterpolateFunction(l, u, p); case e.ANIMATIONLOOPMODE_RELATIVE: return this.color4InterpolateFunction(l, u, p).add(n.offsetValue.scale(n.repeatCount)); } case e.ANIMATIONTYPE_MATRIX: switch (n.loopMode) { case e.ANIMATIONLOOPMODE_CYCLE: case e.ANIMATIONLOOPMODE_CONSTANT: if (e.AllowMatricesInterpolation) return this.matrixInterpolateFunction(l, u, p, n.workValue); case e.ANIMATIONLOOPMODE_RELATIVE: return l; } } break; } } return this._getKeyValue(i[i.length - 1].value); }), (e.prototype.matrixInterpolateFunction = function (t, n, r, o) { return e.AllowMatrixDecomposeForInterpolation ? (o ? (i.a.DecomposeLerpToRef(t, n, r, o), o) : i.a.DecomposeLerp(t, n, r)) : o ? (i.a.LerpToRef(t, n, r, o), o) : i.a.Lerp(t, n, r); }), (e.prototype.clone = function () { var t = new e(this.name, this.targetPropertyPath.join("."), this.framePerSecond, this.dataType, this.loopMode); if (((t.enableBlending = this.enableBlending), (t.blendingSpeed = this.blendingSpeed), this._keys && t.setKeys(this._keys), this._ranges)) for (var n in ((t._ranges = {}), this._ranges)) { var i = this._ranges[n]; i && (t._ranges[n] = i.clone()); } return t; }), (e.prototype.setKeys = function (e) { this._keys = e.slice(0); }), (e.prototype.serialize = function () { var t = {}; (t.name = this.name), (t.property = this.targetProperty), (t.framePerSecond = this.framePerSecond), (t.dataType = this.dataType), (t.loopBehavior = this.loopMode), (t.enableBlending = this.enableBlending), (t.blendingSpeed = this.blendingSpeed); var n = this.dataType; t.keys = []; for (var i = this.getKeys(), r = 0; r < i.length; r++) { var o = i[r], a = {}; switch (((a.frame = o.frame), n)) { case e.ANIMATIONTYPE_FLOAT: a.values = [o.value]; break; case e.ANIMATIONTYPE_QUATERNION: case e.ANIMATIONTYPE_MATRIX: case e.ANIMATIONTYPE_VECTOR3: case e.ANIMATIONTYPE_COLOR3: case e.ANIMATIONTYPE_COLOR4: a.values = o.value.asArray(); } t.keys.push(a); } for (var s in ((t.ranges = []), this._ranges)) { var c = this._ranges[s]; if (c) { var l = {}; (l.name = s), (l.from = c.from), (l.to = c.to), t.ranges.push(l); } } return t; }), (e._UniversalLerp = function (e, t, n) { var i = e.constructor; return i.Lerp ? i.Lerp(e, t, n) : i.Slerp ? i.Slerp(e, t, n) : e.toFixed ? e * (1 - n) + n * t : t; }), (e.Parse = function (t) { var n, o, a = new e(t.name, t.property, t.framePerSecond, t.dataType, t.loopBehavior), s = t.dataType, c = []; for (t.enableBlending && (a.enableBlending = t.enableBlending), t.blendingSpeed && (a.blendingSpeed = t.blendingSpeed), o = 0; o < t.keys.length; o++) { var l, u, h = t.keys[o]; switch (s) { case e.ANIMATIONTYPE_FLOAT: (n = h.values[0]), h.values.length >= 1 && (l = h.values[1]), h.values.length >= 2 && (u = h.values[2]); break; case e.ANIMATIONTYPE_QUATERNION: if (((n = i.b.FromArray(h.values)), h.values.length >= 8)) { var d = i.b.FromArray(h.values.slice(4, 8)); d.equals(i.b.Zero()) || (l = d); } if (h.values.length >= 12) { var p = i.b.FromArray(h.values.slice(8, 12)); p.equals(i.b.Zero()) || (u = p); } break; case e.ANIMATIONTYPE_MATRIX: n = i.a.FromArray(h.values); break; case e.ANIMATIONTYPE_COLOR3: n = r.a.FromArray(h.values); break; case e.ANIMATIONTYPE_COLOR4: n = r.b.FromArray(h.values); break; case e.ANIMATIONTYPE_VECTOR3: default: n = i.e.FromArray(h.values); } var f = {}; (f.frame = h.frame), (f.value = n), null != l && (f.inTangent = l), null != u && (f.outTangent = u), c.push(f); } if ((a.setKeys(c), t.ranges)) for (o = 0; o < t.ranges.length; o++) (n = t.ranges[o]), a.createRange(n.name, n.from, n.to); return a; }), (e.AppendSerializedAnimations = function (e, t) { a.a.AppendSerializedAnimations(e, t); }), (e.AllowMatricesInterpolation = !1), (e.AllowMatrixDecomposeForInterpolation = !0), (e.ANIMATIONTYPE_FLOAT = 0), (e.ANIMATIONTYPE_VECTOR3 = 1), (e.ANIMATIONTYPE_QUATERNION = 2), (e.ANIMATIONTYPE_MATRIX = 3), (e.ANIMATIONTYPE_COLOR3 = 4), (e.ANIMATIONTYPE_COLOR4 = 7), (e.ANIMATIONTYPE_VECTOR2 = 5), (e.ANIMATIONTYPE_SIZE = 6), (e.ANIMATIONLOOPMODE_RELATIVE = 0), (e.ANIMATIONLOOPMODE_CYCLE = 1), (e.ANIMATIONLOOPMODE_CONSTANT = 2), e ); })(); (s.a.RegisteredTypes["BABYLON.Animation"] = p), (u.a._AnimationRangeFactory = function (e, t, n) { return new l.a(e, t, n); }); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return d; }); var i = n(2), r = n(3), o = n(12), a = n(6), s = n(25), c = n(78), l = n(124), u = n(10), h = n(85), d = (function () { function e(t, n, i) { (this.metadata = null), (this.reservedDataStore = null), (this.checkReadyOnEveryCall = !1), (this.checkReadyOnlyOnce = !1), (this.state = ""), (this._alpha = 1), (this._backFaceCulling = !0), (this.onCompiled = null), (this.onError = null), (this.getRenderTargetTextures = null), (this.doNotSerialize = !1), (this._storeEffectOnSubMeshes = !1), (this.animations = null), (this.onDisposeObservable = new a.c()), (this._onDisposeObserver = null), (this._onUnBindObservable = null), (this._onBindObserver = null), (this._alphaMode = 2), (this._needDepthPrePass = !1), (this.disableDepthWrite = !1), (this.forceDepthWrite = !1), (this.depthFunction = 0), (this.separateCullingPass = !1), (this._fogEnabled = !0), (this.pointSize = 1), (this.zOffset = 0), (this._effect = null), (this._useUBO = !1), (this._fillMode = e.TriangleFillMode), (this._cachedDepthWriteState = !1), (this._cachedDepthFunctionState = 0), (this._indexInSceneMaterialArray = -1), (this.meshMap = null), (this.name = t), (this.id = t || o.b.RandomId()), (this._scene = n || s.a.LastCreatedScene), (this.uniqueId = this._scene.getUniqueId()), this._scene.useRightHandedSystem ? (this.sideOrientation = e.ClockWiseSideOrientation) : (this.sideOrientation = e.CounterClockWiseSideOrientation), (this._uniformBuffer = new l.a(this._scene.getEngine())), (this._useUBO = this.getScene().getEngine().supportsUniformBuffers), i || this._scene.addMaterial(this), this._scene.useMaterialMeshMap && (this.meshMap = {}); } return ( Object.defineProperty(e.prototype, "alpha", { get: function () { return this._alpha; }, set: function (t) { this._alpha !== t && ((this._alpha = t), this.markAsDirty(e.MiscDirtyFlag)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "backFaceCulling", { get: function () { return this._backFaceCulling; }, set: function (t) { this._backFaceCulling !== t && ((this._backFaceCulling = t), this.markAsDirty(e.TextureDirtyFlag)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasRenderTargetTextures", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onBindObservable", { get: function () { return this._onBindObservable || (this._onBindObservable = new a.c()), this._onBindObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onBind", { set: function (e) { this._onBindObserver && this.onBindObservable.remove(this._onBindObserver), (this._onBindObserver = this.onBindObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onUnBindObservable", { get: function () { return this._onUnBindObservable || (this._onUnBindObservable = new a.c()), this._onUnBindObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "alphaMode", { get: function () { return this._alphaMode; }, set: function (t) { this._alphaMode !== t && ((this._alphaMode = t), this.markAsDirty(e.TextureDirtyFlag)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "needDepthPrePass", { get: function () { return this._needDepthPrePass; }, set: function (e) { this._needDepthPrePass !== e && ((this._needDepthPrePass = e), this._needDepthPrePass && (this.checkReadyOnEveryCall = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "fogEnabled", { get: function () { return this._fogEnabled; }, set: function (t) { this._fogEnabled !== t && ((this._fogEnabled = t), this.markAsDirty(e.MiscDirtyFlag)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "wireframe", { get: function () { switch (this._fillMode) { case e.WireFrameFillMode: case e.LineListDrawMode: case e.LineLoopDrawMode: case e.LineStripDrawMode: return !0; } return this._scene.forceWireframe; }, set: function (t) { this.fillMode = t ? e.WireFrameFillMode : e.TriangleFillMode; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "pointsCloud", { get: function () { switch (this._fillMode) { case e.PointFillMode: case e.PointListDrawMode: return !0; } return this._scene.forcePointsCloud; }, set: function (t) { this.fillMode = t ? e.PointFillMode : e.TriangleFillMode; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "fillMode", { get: function () { return this._fillMode; }, set: function (t) { this._fillMode !== t && ((this._fillMode = t), this.markAsDirty(e.MiscDirtyFlag)); }, enumerable: !0, configurable: !0, }), (e.prototype.toString = function (e) { return "Name: " + this.name; }), (e.prototype.getClassName = function () { return "Material"; }), Object.defineProperty(e.prototype, "isFrozen", { get: function () { return this.checkReadyOnlyOnce; }, enumerable: !0, configurable: !0, }), (e.prototype.freeze = function () { this.markDirty(), (this.checkReadyOnlyOnce = !0); }), (e.prototype.unfreeze = function () { this.markDirty(), (this.checkReadyOnlyOnce = !1); }), (e.prototype.isReady = function (e, t) { return !0; }), (e.prototype.isReadyForSubMesh = function (e, t, n) { return !1; }), (e.prototype.getEffect = function () { return this._effect; }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype.needAlphaBlending = function () { return this.alpha < 1; }), (e.prototype.needAlphaBlendingForMesh = function (e) { return this.needAlphaBlending() || e.visibility < 1 || e.hasVertexAlpha; }), (e.prototype.needAlphaTesting = function () { return !1; }), (e.prototype.getAlphaTestTexture = function () { return null; }), (e.prototype.markDirty = function () { for (var e = 0, t = this.getScene().meshes; e < t.length; e++) { var n = t[e]; if (n.subMeshes) for (var i = 0, r = n.subMeshes; i < r.length; i++) { var o = r[i]; o.getMaterial() === this && o.effect && (o.effect._wasPreviouslyReady = !1); } } }), (e.prototype._preBind = function (t, n) { void 0 === n && (n = null); var i = this._scene.getEngine(), r = (null == n ? this.sideOrientation : n) === e.ClockWiseSideOrientation; return i.enableEffect(t || this._effect), i.setState(this.backFaceCulling, this.zOffset, !1, r), r; }), (e.prototype.bind = function (e, t) {}), (e.prototype.bindForSubMesh = function (e, t, n) {}), (e.prototype.bindOnlyWorldMatrix = function (e) {}), (e.prototype.bindSceneUniformBuffer = function (e, t) { t.bindToEffect(e, "Scene"); }), (e.prototype.bindView = function (e) { this._useUBO ? this.bindSceneUniformBuffer(e, this.getScene().getSceneUniformBuffer()) : e.setMatrix("view", this.getScene().getViewMatrix()); }), (e.prototype.bindViewProjection = function (e) { this._useUBO ? this.bindSceneUniformBuffer(e, this.getScene().getSceneUniformBuffer()) : e.setMatrix("viewProjection", this.getScene().getTransformMatrix()); }), (e.prototype._shouldTurnAlphaTestOn = function (e) { return !this.needAlphaBlendingForMesh(e) && this.needAlphaTesting(); }), (e.prototype._afterBind = function (e) { if (((this._scene._cachedMaterial = this), (this._scene._cachedVisibility = e ? e.visibility : 1), this._onBindObservable && e && this._onBindObservable.notifyObservers(e), this.disableDepthWrite)) { var t = this._scene.getEngine(); (this._cachedDepthWriteState = t.getDepthWrite()), t.setDepthWrite(!1); } if (0 !== this.depthFunction) { t = this._scene.getEngine(); (this._cachedDepthFunctionState = t.getDepthFunction() || 0), t.setDepthFunction(this.depthFunction); } }), (e.prototype.unbind = function () { (this._onUnBindObservable && this._onUnBindObservable.notifyObservers(this), 0 !== this.depthFunction) && this._scene.getEngine().setDepthFunction(this._cachedDepthFunctionState); this.disableDepthWrite && this._scene.getEngine().setDepthWrite(this._cachedDepthWriteState); }), (e.prototype.getActiveTextures = function () { return []; }), (e.prototype.hasTexture = function (e) { return !1; }), (e.prototype.clone = function (e) { return null; }), (e.prototype.getBindedMeshes = function () { var e = this; if (this.meshMap) { var t = new Array(); for (var n in this.meshMap) { var i = this.meshMap[n]; i && t.push(i); } return t; } return this._scene.meshes.filter(function (t) { return t.material === e; }); }), (e.prototype.forceCompilation = function (e, t, n, r) { var o = this, a = Object(i.a)({ clipPlane: !1, useInstances: !1 }, n), s = new c.a(), l = this.getScene(), u = function () { if (o._scene && o._scene.getEngine()) { s._materialDefines && (s._materialDefines._renderId = -1); var n = l.clipPlane; a.clipPlane && (l.clipPlane = new h.a(0, 0, 0, 1)), o._storeEffectOnSubMeshes ? o.isReadyForSubMesh(e, s, a.useInstances) ? t && t(o) : s.effect && s.effect.getCompilationError() && s.effect.allFallbacksProcessed() ? r && r(s.effect.getCompilationError()) : setTimeout(u, 16) : o.isReady() ? t && t(o) : setTimeout(u, 16), a.clipPlane && (l.clipPlane = n); } }; u(); }), (e.prototype.forceCompilationAsync = function (e, t) { var n = this; return new Promise(function (i, r) { n.forceCompilation( e, function () { i(); }, t, function (e) { r(e); } ); }); }), (e.prototype.markAsDirty = function (t) { this.getScene().blockMaterialDirtyMechanism || ((e._DirtyCallbackArray.length = 0), t & e.TextureDirtyFlag && e._DirtyCallbackArray.push(e._TextureDirtyCallBack), t & e.LightDirtyFlag && e._DirtyCallbackArray.push(e._LightsDirtyCallBack), t & e.FresnelDirtyFlag && e._DirtyCallbackArray.push(e._FresnelDirtyCallBack), t & e.AttributesDirtyFlag && e._DirtyCallbackArray.push(e._AttributeDirtyCallBack), t & e.MiscDirtyFlag && e._DirtyCallbackArray.push(e._MiscDirtyCallBack), e._DirtyCallbackArray.length && this._markAllSubMeshesAsDirty(e._RunDirtyCallBacks), this.getScene().resetCachedMaterial()); }), (e.prototype._markAllSubMeshesAsDirty = function (e) { if (!this.getScene().blockMaterialDirtyMechanism) for (var t = 0, n = this.getScene().meshes; t < n.length; t++) { var i = n[t]; if (i.subMeshes) for (var r = 0, o = i.subMeshes; r < o.length; r++) { var a = o[r]; a.getMaterial() === this && a._materialDefines && e(a._materialDefines); } } }), (e.prototype._markAllSubMeshesAsAllDirty = function () { this._markAllSubMeshesAsDirty(e._AllDirtyCallBack); }), (e.prototype._markAllSubMeshesAsImageProcessingDirty = function () { this._markAllSubMeshesAsDirty(e._ImageProcessingDirtyCallBack); }), (e.prototype._markAllSubMeshesAsTexturesDirty = function () { this._markAllSubMeshesAsDirty(e._TextureDirtyCallBack); }), (e.prototype._markAllSubMeshesAsFresnelDirty = function () { this._markAllSubMeshesAsDirty(e._FresnelDirtyCallBack); }), (e.prototype._markAllSubMeshesAsFresnelAndMiscDirty = function () { this._markAllSubMeshesAsDirty(e._FresnelAndMiscDirtyCallBack); }), (e.prototype._markAllSubMeshesAsLightsDirty = function () { this._markAllSubMeshesAsDirty(e._LightsDirtyCallBack); }), (e.prototype._markAllSubMeshesAsAttributesDirty = function () { this._markAllSubMeshesAsDirty(e._AttributeDirtyCallBack); }), (e.prototype._markAllSubMeshesAsMiscDirty = function () { this._markAllSubMeshesAsDirty(e._MiscDirtyCallBack); }), (e.prototype._markAllSubMeshesAsTexturesAndMiscDirty = function () { this._markAllSubMeshesAsDirty(e._TextureAndMiscDirtyCallBack); }), (e.prototype.dispose = function (e, t, n) { var i = this.getScene(); if ((i.stopAnimation(this), i.freeProcessedMaterials(), i.removeMaterial(this), !0 !== n)) if (this.meshMap) for (var r in this.meshMap) { (s = this.meshMap[r]) && ((s.material = null), this.releaseVertexArrayObject(s, e)); } else for (var o = 0, a = i.meshes; o < a.length; o++) { var s; (s = a[o]).material !== this || s.sourceMesh || ((s.material = null), this.releaseVertexArrayObject(s, e)); } this._uniformBuffer.dispose(), e && this._effect && (this._storeEffectOnSubMeshes || this._effect.dispose(), (this._effect = null)), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this._onBindObservable && this._onBindObservable.clear(), this._onUnBindObservable && this._onUnBindObservable.clear(); }), (e.prototype.releaseVertexArrayObject = function (e, t) { if (e.geometry) { var n = e.geometry; if (this._storeEffectOnSubMeshes) for (var i = 0, r = e.subMeshes; i < r.length; i++) { var o = r[i]; n._releaseVertexArrayObject(o._materialEffect), t && o._materialEffect && o._materialEffect.dispose(); } else n._releaseVertexArrayObject(this._effect); } }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.Parse = function (e, t, n) { if (e.customType) { if ("BABYLON.PBRMaterial" === e.customType && e.overloadedAlbedo && ((e.customType = "BABYLON.LegacyPBRMaterial"), !BABYLON.LegacyPBRMaterial)) return u.a.Error("Your scene is trying to load a legacy version of the PBRMaterial, please, include it from the materials library."), null; } else e.customType = "BABYLON.StandardMaterial"; return o.b.Instantiate(e.customType).Parse(e, t, n); }), (e.TriangleFillMode = 0), (e.WireFrameFillMode = 1), (e.PointFillMode = 2), (e.PointListDrawMode = 3), (e.LineListDrawMode = 4), (e.LineLoopDrawMode = 5), (e.LineStripDrawMode = 6), (e.TriangleStripDrawMode = 7), (e.TriangleFanDrawMode = 8), (e.ClockWiseSideOrientation = 0), (e.CounterClockWiseSideOrientation = 1), (e.TextureDirtyFlag = 1), (e.LightDirtyFlag = 2), (e.FresnelDirtyFlag = 4), (e.AttributesDirtyFlag = 8), (e.MiscDirtyFlag = 16), (e.AllDirtyFlag = 31), (e._AllDirtyCallBack = function (e) { return e.markAllAsDirty(); }), (e._ImageProcessingDirtyCallBack = function (e) { return e.markAsImageProcessingDirty(); }), (e._TextureDirtyCallBack = function (e) { return e.markAsTexturesDirty(); }), (e._FresnelDirtyCallBack = function (e) { return e.markAsFresnelDirty(); }), (e._MiscDirtyCallBack = function (e) { return e.markAsMiscDirty(); }), (e._LightsDirtyCallBack = function (e) { return e.markAsLightDirty(); }), (e._AttributeDirtyCallBack = function (e) { return e.markAsAttributesDirty(); }), (e._FresnelAndMiscDirtyCallBack = function (t) { e._FresnelDirtyCallBack(t), e._MiscDirtyCallBack(t); }), (e._TextureAndMiscDirtyCallBack = function (t) { e._TextureDirtyCallBack(t), e._MiscDirtyCallBack(t); }), (e._DirtyCallbackArray = []), (e._RunDirtyCallBacks = function (t) { for (var n = 0, i = e._DirtyCallbackArray; n < i.length; n++) { (0, i[n])(t); } }), Object(i.c)([Object(r.c)()], e.prototype, "id", void 0), Object(i.c)([Object(r.c)()], e.prototype, "uniqueId", void 0), Object(i.c)([Object(r.c)()], e.prototype, "name", void 0), Object(i.c)([Object(r.c)()], e.prototype, "checkReadyOnEveryCall", void 0), Object(i.c)([Object(r.c)()], e.prototype, "checkReadyOnlyOnce", void 0), Object(i.c)([Object(r.c)()], e.prototype, "state", void 0), Object(i.c)([Object(r.c)("alpha")], e.prototype, "_alpha", void 0), Object(i.c)([Object(r.c)("backFaceCulling")], e.prototype, "_backFaceCulling", void 0), Object(i.c)([Object(r.c)()], e.prototype, "sideOrientation", void 0), Object(i.c)([Object(r.c)("alphaMode")], e.prototype, "_alphaMode", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_needDepthPrePass", void 0), Object(i.c)([Object(r.c)()], e.prototype, "disableDepthWrite", void 0), Object(i.c)([Object(r.c)()], e.prototype, "forceDepthWrite", void 0), Object(i.c)([Object(r.c)()], e.prototype, "depthFunction", void 0), Object(i.c)([Object(r.c)()], e.prototype, "separateCullingPass", void 0), Object(i.c)([Object(r.c)("fogEnabled")], e.prototype, "_fogEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "pointSize", void 0), Object(i.c)([Object(r.c)()], e.prototype, "zOffset", void 0), Object(i.c)([Object(r.c)()], e.prototype, "wireframe", null), Object(i.c)([Object(r.c)()], e.prototype, "pointsCloud", null), Object(i.c)([Object(r.c)()], e.prototype, "fillMode", null), e ); })(); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.EventHandler = t.EventID = void 0), (function (e) { (e[(e.None = -1)] = "None"), (e[(e.OnKeyPress = 0)] = "OnKeyPress"), (e[(e.OnStopInputs = 1)] = "OnStopInputs"), (e[(e.OnStartInputs = 2)] = "OnStartInputs"), (e[(e.OnFirstUserInput = 3)] = "OnFirstUserInput"), (e[(e.OnResetGame = 4)] = "OnResetGame"), (e[(e.OnPauseGame = 5)] = "OnPauseGame"), (e[(e.OnResumeGame = 6)] = "OnResumeGame"), (e[(e.OnPlayGame = 7)] = "OnPlayGame"), (e[(e.OnContinueGame = 8)] = "OnContinueGame"), (e[(e.OnGodModeEnabled = 9)] = "OnGodModeEnabled"), (e[(e.OnGodModeDisabled = 10)] = "OnGodModeDisabled"), (e[(e.OnGodModeExhausted = 11)] = "OnGodModeExhausted"), (e[(e.OnEndGame = 12)] = "OnEndGame"), (e[(e.OnLoadingUpdate = 13)] = "OnLoadingUpdate"), (e[(e.OnGameLoaded = 14)] = "OnGameLoaded"), (e[(e.OnTrackRootInit = 15)] = "OnTrackRootInit"), (e[(e.OnPlayerDeath = 16)] = "OnPlayerDeath"), (e[(e.ChangeSpeed = 17)] = "ChangeSpeed"), (e[(e.OnPowerupCollect = 18)] = "OnPowerupCollect"), (e[(e.OnStumble = 19)] = "OnStumble"), (e[(e.OnPlayerJumpState = 20)] = "OnPlayerJumpState"), (e[(e.OnPlayerRunState = 21)] = "OnPlayerRunState"), (e[(e.OnPlayerEnteringNewZone = 22)] = "OnPlayerEnteringNewZone"), (e[(e.PlayerDeathTypeUpdate = 23)] = "PlayerDeathTypeUpdate"), (e[(e.PlayerDeathDebugInfo = 24)] = "PlayerDeathDebugInfo"), (e[(e.OnUnlockPowerup = 25)] = "OnUnlockPowerup"), (e[(e.OnMeterFull = 26)] = "OnMeterFull"), (e[(e.OnMeterReset = 27)] = "OnMeterReset"), (e[(e.OnPowerupStart = 28)] = "OnPowerupStart"), (e[(e.OnPowerupComplete = 29)] = "OnPowerupComplete"), (e[(e.OnPowerupCooldown = 30)] = "OnPowerupCooldown"), (e[(e.PlaySFX = 31)] = "PlaySFX"), (e[(e.PlaySFXLoop = 32)] = "PlaySFXLoop"), (e[(e.PlaySFXDelay = 33)] = "PlaySFXDelay"), (e[(e.StopSFX = 34)] = "StopSFX"), (e[(e.PlayMusic = 35)] = "PlayMusic"), (e[(e.StopMusic = 36)] = "StopMusic"), (e[(e.MusicVolumeChange = 37)] = "MusicVolumeChange"), (e[(e.SoundVolumeChange = 38)] = "SoundVolumeChange"), (e[(e.MuteAll = 39)] = "MuteAll"), (e[(e.UnmuteAll = 40)] = "UnmuteAll"), (e[(e.OnDebugButton = 41)] = "OnDebugButton"), (e[(e.OnDebugFeatureChange = 42)] = "OnDebugFeatureChange"), (e[(e.OnForceDailyChallenge = 43)] = "OnForceDailyChallenge"), (e[(e.OnDebugCoinsUpdated = 44)] = "OnDebugCoinsUpdated"), (e[(e.OnChangeTutorialState = 45)] = "OnChangeTutorialState"), (e[(e.OnTutorialStart = 46)] = "OnTutorialStart"), (e[(e.OnTutorialComplete = 47)] = "OnTutorialComplete"), (e[(e.OnTutorialStepStart = 48)] = "OnTutorialStepStart"), (e[(e.OnTutorialStepComplete = 49)] = "OnTutorialStepComplete"), (e[(e.OnPowerupUnlockAnim = 50)] = "OnPowerupUnlockAnim"), (e[(e.OnCameraFlySkip = 51)] = "OnCameraFlySkip"), (e[(e.OnCameraFlyEnd = 52)] = "OnCameraFlyEnd"), (e[(e.OnCameraIntroEnd = 53)] = "OnCameraIntroEnd"), (e[(e.OnDebugCameraStateChange = 54)] = "OnDebugCameraStateChange"), (e[(e.OnPersistGameState = 55)] = "OnPersistGameState"), (e[(e.OnAbilityUpgraded = 56)] = "OnAbilityUpgraded"), (e[(e.NotEnoughCoins = 57)] = "NotEnoughCoins"), (e[(e.OnResumeCounterChange = 58)] = "OnResumeCounterChange"), (e[(e.OnResetCurrentGameData = 59)] = "OnResetCurrentGameData"), (e[(e.OnShowDistanceToast = 60)] = "OnShowDistanceToast"), (e[(e.OnHudToastMessage = 61)] = "OnHudToastMessage"), (e[(e.OnRewardCoins = 62)] = "OnRewardCoins"), (e[(e.OnDailyChallengeDataUpdate = 63)] = "OnDailyChallengeDataUpdate"), (e[(e.OnResetDayStatData = 64)] = "OnResetDayStatData"), (e[(e.OnMineCartSurvived = 65)] = "OnMineCartSurvived"), (e[(e.OnWaterSlideSurvived = 66)] = "OnWaterSlideSurvived"), (e[(e.OnRessurect = 67)] = "OnRessurect"), (e[(e.OnPowerMeterUsed = 68)] = "OnPowerMeterUsed"), (e[(e.NextChallengeTimerChanged = 69)] = "NextChallengeTimerChanged"), (e[(e.OnCheckDailyChallenge = 70)] = "OnCheckDailyChallenge"), (e[(e.OnEnablingChestUI = 71)] = "OnEnablingChestUI"), (e[(e.OnDisablingChestUI = 72)] = "OnDisablingChestUI"), (e[(e.OnChestTap = 73)] = "OnChestTap"), (e[(e.OnChestLandingDone = 74)] = "OnChestLandingDone"), (e[(e.OnChestReward = 75)] = "OnChestReward"); })(t.EventID || (t.EventID = {})); class i { constructor() { this._handlers = new Map(); } static get instance() { return i._instance || (i._instance = new i()), i._instance; } addListener(e, t) { let n = new Array(); this._handlers.has(e) ? ((n = this._handlers.get(e)), n.push(t)) : n.push(t), this._handlers.set(e, n); } removeListener(e, t) { if (this._handlers.has(e)) { const n = this._handlers.get(e), i = n.findIndex((e) => e.name == t.name); i >= 0 && (n.splice(i, 1), 0 == n.length ? this._handlers.delete(e) : this._handlers.set(e, n)); } } fireEvent(e, t = {}) { if (this._handlers.has(e)) { const n = this._handlers.get(e), i = new Array(); n.forEach((e) => { i.push(e); }), i.forEach((e) => { null != e && e(t); }); } } } t.EventHandler = i; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.sprites_data = void 0), (t.sprites_data = { idol: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAIcAQMAAAADk1U4AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAFZJREFUeNrtwTEBAAAAwqD1T20IX6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4Df88AAHZoHy8AAAAAElFTkSuQmCC", logo: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyQAAAGyAQMAAAAvZJIwAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAEJJREFUeNrtwTEBAAAAwqD1T20ND6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACARwOs7AABD0ZQxQAAAABJRU5ErkJggg==", "main-1": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApAAAAEzAQMAAAC8G6HOAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAC9JREFUeNrtwQENAAAAwqD3T20PBxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcGGOJAAH56bUCAAAAAElFTkSuQmCC", play: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAi4AAAC7AQMAAAB4sIdFAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACRJREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAACAiwEz3QABMWPOqAAAAABJRU5ErkJggg==", powerupglow: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAAP4AQMAAAD5xSmwAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAElJREFUeNrtwQENAAAAwqD3T20PBxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwKcBymgAAclHvtEAAAAASUVORK5CYII=", powerupbar: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAAP4AQMAAADqEmlEAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAEdJREFUeNrtwQEBAAAAgiD/r25IQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GMZwAAFpB0tbAAAAAElFTkSuQmCC", fill: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAAP4AQMAAADqEmlEAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAEdJREFUeNrtwQEBAAAAgiD/r25IQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GMZwAAFpB0tbAAAAAElFTkSuQmCC", pause: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUMAAAFBAQMAAADXNV9PAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACRJREFUeNrtwTEBAAAAwqD1T20IX6AAAAAAAAAAAAAAAAAAXgM0qgAB5W9iOwAAAABJRU5ErkJggg==", "count-holder": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUEAAACqAQMAAAAJNG+HAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB5JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAACAJwMb5AABtIBNHwAAAABJRU5ErkJggg==", "cracked-border": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/8AAABnAQMAAABsEWCmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACRJREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAACAswEz5wAB8LYrLgAAAABJRU5ErkJggg==", divider: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5sAAAAtAQMAAAAa3u2mAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABxJREFUeNrtwTEBAAAAwqD1T20LL6AAAAAAAE4GFJEAAXkbVUgAAAAASUVORK5CYII=", "brown-bg": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfwAAACFAQMAAACExtjtAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAALgbIcUAASmHDOcAAAAASUVORK5CYII=", "distance-toast": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFJAQMAAACPQOloAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAACdJREFUeNrtwTEBAAAAwqD1T+1jDKAAAAAAAAAAAAAAAAAAAAAAuAFBiwABBg64oAAAAABJRU5ErkJggg==", "coins-chest-open": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=", "coins-in-hand": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=", "coins-urn": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=", "coins-vault-open": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB9JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAL4NIQAAAWDknZcAAAAASUVORK5CYII=", "chest-closed": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO8AAAC9AQMAAABh+LgGAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB1JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAODSABbjAAEkmyefAAAAAElFTkSuQmCC", "check-button": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAAD1AQMAAABgLyt+AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAB5JREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAAAAAngYctgABfTVLSQAAAABJRU5ErkJggg==", "boost-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADLAQMAAAAC1Q6HAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABxJREFUeNrtwQENAAAAwqD3T20ON6AAAAAAgCMDE9MAAVyNpbYAAAAASUVORK5CYII=", "boost-meter": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAADBAQMAAABLzpjKAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABxJREFUeNrtwQENAAAAwqD3T20ON6AAAAAA4NAAEtkAAba2GocAAAAASUVORK5CYII=", "magnet-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAADBAQMAAABVB6h5AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABtJREFUeNrtwTEBAAAAwqD1T20Hb6AAAAAAOAwRVwABCAvLvgAAAABJRU5ErkJggg==", "shield-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKkAAADEAQMAAADecZPoAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABtJREFUeNrtwTEBAAAAwqD1T20MH6AAAAAAeBkRnAAB8Sqe1gAAAABJRU5ErkJggg==", "off-button": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAABKAQMAAAC7E1m6AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABJJREFUeNpjYBgFo2AUjILBCQAEoAABR6p4dgAAAABJRU5ErkJggg==", "on-button": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAABKAQMAAAC7E1m6AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABJJREFUeNpjYBgFo2AUjILBCQAEoAABR6p4dgAAAABJRU5ErkJggg==", "timer-icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAAByAQMAAABjts1bAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABZJREFUeNpjYBgFo2AUjIJRMAoGOwAABq4AAUJ9WPcAAAAASUVORK5CYII=", "ads-movie": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAABsAQMAAABNSD55AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABRJREFUeNpjYBgFo2AUjIJRMJwBAAXoAAHYHUGlAAAAAElFTkSuQmCC", tutorialarrowup: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAAEMAQMAAACRBFghAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABpJREFUeNrtwTEBAAAAwqD1T20MH6AAAAB4Gw2cAAFUkNtcAAAAAElFTkSuQmCC", "coin-single": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABWAQMAAABb4TKoAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABFJREFUeNpjYBgFo2AUDB0AAAOyAAGApPSVAAAAAElFTkSuQmCC", }); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return C; }); var i = n(2), r = n(12), o = n(6), a = n(1), s = n(14), c = n(4), l = n(16), u = n(39), h = n(81), d = n(63), p = n(188), f = n(22), m = n(161), g = n(5), b = n(34), _ = n(23), v = function () { (this.facetNb = 0), (this.partitioningSubdivisions = 10), (this.partitioningBBoxRatio = 1.01), (this.facetDataEnabled = !1), (this.facetParameters = {}), (this.bbSize = a.e.Zero()), (this.subDiv = { max: 1, X: 1, Y: 1, Z: 1 }), (this.facetDepthSort = !1), (this.facetDepthSortEnabled = !1); }, y = function () { (this._hasVertexAlpha = !1), (this._useVertexColors = !0), (this._numBoneInfluencers = 4), (this._applyFog = !0), (this._receiveShadows = !1), (this._facetData = new v()), (this._visibility = 1), (this._skeleton = null), (this._layerMask = 268435455), (this._computeBonesUsingShaders = !0), (this._isActive = !1), (this._onlyForInstances = !1), (this._isActiveIntermediate = !1), (this._onlyForInstancesIntermediate = !1), (this._actAsRegularMesh = !1); }, C = (function (e) { function t(n, i) { void 0 === i && (i = null); var r = e.call(this, n, i, !1) || this; return ( (r._internalAbstractMeshDataInfo = new y()), (r.cullingStrategy = t.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY), (r.onCollideObservable = new o.c()), (r.onCollisionPositionChangeObservable = new o.c()), (r.onMaterialChangedObservable = new o.c()), (r.definedFacingForward = !0), (r._occlusionQuery = null), (r._renderingGroup = null), (r.alphaIndex = Number.MAX_VALUE), (r.isVisible = !0), (r.isPickable = !0), (r.showSubMeshesBoundingBox = !1), (r.isBlocker = !1), (r.enablePointerMoveEvents = !1), (r.renderingGroupId = 0), (r._material = null), (r.outlineColor = g.a.Red()), (r.outlineWidth = 0.02), (r.overlayColor = g.a.Red()), (r.overlayAlpha = 0.5), (r.useOctreeForRenderingSelection = !0), (r.useOctreeForPicking = !0), (r.useOctreeForCollisions = !0), (r.alwaysSelectAsActiveMesh = !1), (r.doNotSyncBoundingInfo = !1), (r.actionManager = null), (r._meshCollisionData = new p.a()), (r.ellipsoid = new a.e(0.5, 1, 0.5)), (r.ellipsoidOffset = new a.e(0, 0, 0)), (r.edgesWidth = 1), (r.edgesColor = new g.b(1, 0, 0, 1)), (r._edgesRenderer = null), (r._masterMesh = null), (r._boundingInfo = null), (r._renderId = 0), (r._intersectionsInProgress = new Array()), (r._unIndexed = !1), (r._lightSources = new Array()), (r._waitingData = { lods: null, actions: null, freezeWorldMatrix: null }), (r._bonesTransformMatrices = null), (r._transformMatrixTexture = null), (r.onRebuildObservable = new o.c()), (r._onCollisionPositionChange = function (e, t, n) { void 0 === n && (n = null), t.subtractToRef(r._meshCollisionData._oldPositionForCollisions, r._meshCollisionData._diffPositionForCollisions), r._meshCollisionData._diffPositionForCollisions.length() > s.a.CollisionsEpsilon && r.position.addInPlace(r._meshCollisionData._diffPositionForCollisions), n && r.onCollideObservable.notifyObservers(n), r.onCollisionPositionChangeObservable.notifyObservers(r.position); }), r.getScene().addMesh(r), r._resyncLightSources(), r ); } return ( Object(i.d)(t, e), Object.defineProperty(t, "BILLBOARDMODE_NONE", { get: function () { return u.a.BILLBOARDMODE_NONE; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "BILLBOARDMODE_X", { get: function () { return u.a.BILLBOARDMODE_X; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "BILLBOARDMODE_Y", { get: function () { return u.a.BILLBOARDMODE_Y; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "BILLBOARDMODE_Z", { get: function () { return u.a.BILLBOARDMODE_Z; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "BILLBOARDMODE_ALL", { get: function () { return u.a.BILLBOARDMODE_ALL; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "BILLBOARDMODE_USE_POSITION", { get: function () { return u.a.BILLBOARDMODE_USE_POSITION; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "facetNb", { get: function () { return this._internalAbstractMeshDataInfo._facetData.facetNb; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "partitioningSubdivisions", { get: function () { return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions; }, set: function (e) { this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "partitioningBBoxRatio", { get: function () { return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio; }, set: function (e) { this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "mustDepthSortFacets", { get: function () { return this._internalAbstractMeshDataInfo._facetData.facetDepthSort; }, set: function (e) { this._internalAbstractMeshDataInfo._facetData.facetDepthSort = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "facetDepthSortFrom", { get: function () { return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom; }, set: function (e) { this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isFacetDataEnabled", { get: function () { return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled; }, enumerable: !0, configurable: !0, }), (t.prototype._updateNonUniformScalingState = function (t) { return !!e.prototype._updateNonUniformScalingState.call(this, t) && (this._markSubMeshesAsMiscDirty(), !0); }), Object.defineProperty(t.prototype, "onCollide", { set: function (e) { this._meshCollisionData._onCollideObserver && this.onCollideObservable.remove(this._meshCollisionData._onCollideObserver), (this._meshCollisionData._onCollideObserver = this.onCollideObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onCollisionPositionChange", { set: function (e) { this._meshCollisionData._onCollisionPositionChangeObserver && this.onCollisionPositionChangeObservable.remove(this._meshCollisionData._onCollisionPositionChangeObserver), (this._meshCollisionData._onCollisionPositionChangeObserver = this.onCollisionPositionChangeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "visibility", { get: function () { return this._internalAbstractMeshDataInfo._visibility; }, set: function (e) { this._internalAbstractMeshDataInfo._visibility !== e && ((this._internalAbstractMeshDataInfo._visibility = e), this._markSubMeshesAsMiscDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "material", { get: function () { return this._material; }, set: function (e) { this._material !== e && (this._material && this._material.meshMap && (this._material.meshMap[this.uniqueId] = void 0), (this._material = e), e && e.meshMap && (e.meshMap[this.uniqueId] = this), this.onMaterialChangedObservable.hasObservers() && this.onMaterialChangedObservable.notifyObservers(this), this.subMeshes && this._unBindEffect()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "receiveShadows", { get: function () { return this._internalAbstractMeshDataInfo._receiveShadows; }, set: function (e) { this._internalAbstractMeshDataInfo._receiveShadows !== e && ((this._internalAbstractMeshDataInfo._receiveShadows = e), this._markSubMeshesAsLightDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hasVertexAlpha", { get: function () { return this._internalAbstractMeshDataInfo._hasVertexAlpha; }, set: function (e) { this._internalAbstractMeshDataInfo._hasVertexAlpha !== e && ((this._internalAbstractMeshDataInfo._hasVertexAlpha = e), this._markSubMeshesAsAttributesDirty(), this._markSubMeshesAsMiscDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useVertexColors", { get: function () { return this._internalAbstractMeshDataInfo._useVertexColors; }, set: function (e) { this._internalAbstractMeshDataInfo._useVertexColors !== e && ((this._internalAbstractMeshDataInfo._useVertexColors = e), this._markSubMeshesAsAttributesDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "computeBonesUsingShaders", { get: function () { return this._internalAbstractMeshDataInfo._computeBonesUsingShaders; }, set: function (e) { this._internalAbstractMeshDataInfo._computeBonesUsingShaders !== e && ((this._internalAbstractMeshDataInfo._computeBonesUsingShaders = e), this._markSubMeshesAsAttributesDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "numBoneInfluencers", { get: function () { return this._internalAbstractMeshDataInfo._numBoneInfluencers; }, set: function (e) { this._internalAbstractMeshDataInfo._numBoneInfluencers !== e && ((this._internalAbstractMeshDataInfo._numBoneInfluencers = e), this._markSubMeshesAsAttributesDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "applyFog", { get: function () { return this._internalAbstractMeshDataInfo._applyFog; }, set: function (e) { this._internalAbstractMeshDataInfo._applyFog !== e && ((this._internalAbstractMeshDataInfo._applyFog = e), this._markSubMeshesAsMiscDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "layerMask", { get: function () { return this._internalAbstractMeshDataInfo._layerMask; }, set: function (e) { e !== this._internalAbstractMeshDataInfo._layerMask && ((this._internalAbstractMeshDataInfo._layerMask = e), this._resyncLightSources()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "collisionMask", { get: function () { return this._meshCollisionData._collisionMask; }, set: function (e) { this._meshCollisionData._collisionMask = isNaN(e) ? -1 : e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "collisionGroup", { get: function () { return this._meshCollisionData._collisionGroup; }, set: function (e) { this._meshCollisionData._collisionGroup = isNaN(e) ? -1 : e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "lightSources", { get: function () { return this._lightSources; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "_positions", { get: function () { return null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "skeleton", { get: function () { return this._internalAbstractMeshDataInfo._skeleton; }, set: function (e) { var t = this._internalAbstractMeshDataInfo._skeleton; t && t.needInitialSkinMatrix && t._unregisterMeshWithPoseMatrix(this), e && e.needInitialSkinMatrix && e._registerMeshWithPoseMatrix(this), (this._internalAbstractMeshDataInfo._skeleton = e), this._internalAbstractMeshDataInfo._skeleton || (this._bonesTransformMatrices = null), this._markSubMeshesAsAttributesDirty(); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "AbstractMesh"; }), (t.prototype.toString = function (e) { var t = "Name: " + this.name + ", isInstance: " + ("InstancedMesh" !== this.getClassName() ? "YES" : "NO"); t += ", # of submeshes: " + (this.subMeshes ? this.subMeshes.length : 0); var n = this._internalAbstractMeshDataInfo._skeleton; return ( n && (t += ", skeleton: " + n.name), e && ((t += ", billboard mode: " + ["NONE", "X", "Y", null, "Z", null, null, "ALL"][this.billboardMode]), (t += ", freeze wrld mat: " + (this._isWorldMatrixFrozen || this._waitingData.freezeWorldMatrix ? "YES" : "NO"))), t ); }), (t.prototype._getEffectiveParent = function () { return this._masterMesh && this.billboardMode !== u.a.BILLBOARDMODE_NONE ? this._masterMesh : e.prototype._getEffectiveParent.call(this); }), (t.prototype._getActionManagerForTrigger = function (e, t) { if ((void 0 === t && (t = !0), this.actionManager && (t || this.actionManager.isRecursive))) { if (!e) return this.actionManager; if (this.actionManager.hasSpecificTrigger(e)) return this.actionManager; } return this.parent ? this.parent._getActionManagerForTrigger(e, !1) : null; }), (t.prototype._rebuild = function () { if ((this.onRebuildObservable.notifyObservers(this), this._occlusionQuery && (this._occlusionQuery = null), this.subMeshes)) for (var e = 0, t = this.subMeshes; e < t.length; e++) { t[e]._rebuild(); } }), (t.prototype._resyncLightSources = function () { this._lightSources.length = 0; for (var e = 0, t = this.getScene().lights; e < t.length; e++) { var n = t[e]; n.isEnabled() && n.canAffectMesh(this) && this._lightSources.push(n); } this._markSubMeshesAsLightDirty(); }), (t.prototype._resyncLightSource = function (e) { var t = e.isEnabled() && e.canAffectMesh(this), n = this._lightSources.indexOf(e); if (-1 === n) { if (!t) return; this._lightSources.push(e); } else { if (t) return; this._lightSources.splice(n, 1); } this._markSubMeshesAsLightDirty(); }), (t.prototype._unBindEffect = function () { for (var e = 0, t = this.subMeshes; e < t.length; e++) { t[e].setEffect(null); } }), (t.prototype._removeLightSource = function (e, t) { var n = this._lightSources.indexOf(e); -1 !== n && (this._lightSources.splice(n, 1), this._markSubMeshesAsLightDirty(t)); }), (t.prototype._markSubMeshesAsDirty = function (e) { if (this.subMeshes) for (var t = 0, n = this.subMeshes; t < n.length; t++) { var i = n[t]; i._materialDefines && e(i._materialDefines); } }), (t.prototype._markSubMeshesAsLightDirty = function (e) { void 0 === e && (e = !1), this._markSubMeshesAsDirty(function (t) { return t.markAsLightDirty(e); }); }), (t.prototype._markSubMeshesAsAttributesDirty = function () { this._markSubMeshesAsDirty(function (e) { return e.markAsAttributesDirty(); }); }), (t.prototype._markSubMeshesAsMiscDirty = function () { if (this.subMeshes) for (var e = 0, t = this.subMeshes; e < t.length; e++) { var n = t[e].getMaterial(); n && n.markAsDirty(16); } }), Object.defineProperty(t.prototype, "scaling", { get: function () { return this._scaling; }, set: function (e) { this._scaling = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isBlocked", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), (t.prototype.getLOD = function (e) { return this; }), (t.prototype.getTotalVertices = function () { return 0; }), (t.prototype.getTotalIndices = function () { return 0; }), (t.prototype.getIndices = function () { return null; }), (t.prototype.getVerticesData = function (e) { return null; }), (t.prototype.setVerticesData = function (e, t, n, i) { return this; }), (t.prototype.updateVerticesData = function (e, t, n, i) { return this; }), (t.prototype.setIndices = function (e, t) { return this; }), (t.prototype.isVerticesDataPresent = function (e) { return !1; }), (t.prototype.getBoundingInfo = function () { return this._masterMesh ? this._masterMesh.getBoundingInfo() : (this._boundingInfo || this._updateBoundingInfo(), this._boundingInfo); }), (t.prototype.normalizeToUnitCube = function (t, n, i) { return void 0 === t && (t = !0), void 0 === n && (n = !1), e.prototype.normalizeToUnitCube.call(this, t, n, i); }), (t.prototype.setBoundingInfo = function (e) { return (this._boundingInfo = e), this; }), Object.defineProperty(t.prototype, "useBones", { get: function () { return this.skeleton && this.getScene().skeletonsEnabled && this.isVerticesDataPresent(c.b.MatricesIndicesKind) && this.isVerticesDataPresent(c.b.MatricesWeightsKind); }, enumerable: !0, configurable: !0, }), (t.prototype._preActivate = function () {}), (t.prototype._preActivateForIntermediateRendering = function (e) {}), (t.prototype._activate = function (e, t) { return (this._renderId = e), !0; }), (t.prototype._postActivate = function () {}), (t.prototype._freeze = function () {}), (t.prototype._unFreeze = function () {}), (t.prototype.getWorldMatrix = function () { return this._masterMesh && this.billboardMode === u.a.BILLBOARDMODE_NONE ? this._masterMesh.getWorldMatrix() : e.prototype.getWorldMatrix.call(this); }), (t.prototype._getWorldMatrixDeterminant = function () { return this._masterMesh ? this._masterMesh._getWorldMatrixDeterminant() : e.prototype._getWorldMatrixDeterminant.call(this); }), Object.defineProperty(t.prototype, "isAnInstance", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hasInstances", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), (t.prototype.movePOV = function (e, t, n) { return this.position.addInPlace(this.calcMovePOV(e, t, n)), this; }), (t.prototype.calcMovePOV = function (e, t, n) { var i = new a.a(); (this.rotationQuaternion ? this.rotationQuaternion : a.b.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z)).toRotationMatrix(i); var r = a.e.Zero(), o = this.definedFacingForward ? -1 : 1; return a.e.TransformCoordinatesFromFloatsToRef(e * o, t, n * o, i, r), r; }), (t.prototype.rotatePOV = function (e, t, n) { return this.rotation.addInPlace(this.calcRotatePOV(e, t, n)), this; }), (t.prototype.calcRotatePOV = function (e, t, n) { var i = this.definedFacingForward ? 1 : -1; return new a.e(e * i, t, n * i); }), (t.prototype.refreshBoundingInfo = function (e) { return void 0 === e && (e = !1), (this._boundingInfo && this._boundingInfo.isLocked) || this._refreshBoundingInfo(this._getPositionData(e), null), this; }), (t.prototype._refreshBoundingInfo = function (e, t) { if (e) { var n = Object(m.a)(e, 0, this.getTotalVertices(), t); this._boundingInfo ? this._boundingInfo.reConstruct(n.minimum, n.maximum) : (this._boundingInfo = new d.a(n.minimum, n.maximum)); } if (this.subMeshes) for (var i = 0; i < this.subMeshes.length; i++) this.subMeshes[i].refreshBoundingInfo(e); this._updateBoundingInfo(); }), (t.prototype._getPositionData = function (e) { var t = this.getVerticesData(c.b.PositionKind); if (t && e && this.skeleton) { (t = r.b.Slice(t)), this._generatePointsArray(); var n = this.getVerticesData(c.b.MatricesIndicesKind), i = this.getVerticesData(c.b.MatricesWeightsKind); if (i && n) { var o = this.numBoneInfluencers > 4, s = o ? this.getVerticesData(c.b.MatricesIndicesExtraKind) : null, l = o ? this.getVerticesData(c.b.MatricesWeightsExtraKind) : null; this.skeleton.prepare(); for (var u = this.skeleton.getTransformMatrices(this), h = a.c.Vector3[0], d = a.c.Matrix[0], p = a.c.Matrix[1], f = 0, m = 0; m < t.length; m += 3, f += 4) { var g, b; for (d.reset(), g = 0; g < 4; g++) (b = i[f + g]) > 0 && (a.a.FromFloat32ArrayToRefScaled(u, Math.floor(16 * n[f + g]), b, p), d.addToSelf(p)); if (o) for (g = 0; g < 4; g++) (b = l[f + g]) > 0 && (a.a.FromFloat32ArrayToRefScaled(u, Math.floor(16 * s[f + g]), b, p), d.addToSelf(p)); a.e.TransformCoordinatesFromFloatsToRef(t[m], t[m + 1], t[m + 2], d, h), h.toArray(t, m), this._positions && this._positions[m / 3].copyFrom(h); } } } return t; }), (t.prototype._updateBoundingInfo = function () { var e = this._effectiveMesh; return ( this._boundingInfo ? this._boundingInfo.update(e.worldMatrixFromCache) : (this._boundingInfo = new d.a(this.absolutePosition, this.absolutePosition, e.worldMatrixFromCache)), this._updateSubMeshesBoundingInfo(e.worldMatrixFromCache), this ); }), (t.prototype._updateSubMeshesBoundingInfo = function (e) { if (!this.subMeshes) return this; for (var t = this.subMeshes.length, n = 0; n < t; n++) { var i = this.subMeshes[n]; (t > 1 || !i.IsGlobal) && i.updateBoundingInfo(e); } return this; }), (t.prototype._afterComputeWorldMatrix = function () { this.doNotSyncBoundingInfo || this._updateBoundingInfo(); }), Object.defineProperty(t.prototype, "_effectiveMesh", { get: function () { return (this.skeleton && this.skeleton.overrideMesh) || this; }, enumerable: !0, configurable: !0, }), (t.prototype.isInFrustum = function (e) { return null !== this._boundingInfo && this._boundingInfo.isInFrustum(e, this.cullingStrategy); }), (t.prototype.isCompletelyInFrustum = function (e) { return null !== this._boundingInfo && this._boundingInfo.isCompletelyInFrustum(e); }), (t.prototype.intersectsMesh = function (e, t, n) { if ((void 0 === t && (t = !1), !this._boundingInfo || !e._boundingInfo)) return !1; if (this._boundingInfo.intersects(e._boundingInfo, t)) return !0; if (n) for (var i = 0, r = this.getChildMeshes(); i < r.length; i++) { if (r[i].intersectsMesh(e, t, !0)) return !0; } return !1; }), (t.prototype.intersectsPoint = function (e) { return !!this._boundingInfo && this._boundingInfo.intersectsPoint(e); }), Object.defineProperty(t.prototype, "checkCollisions", { get: function () { return this._meshCollisionData._checkCollisions; }, set: function (e) { this._meshCollisionData._checkCollisions = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "collider", { get: function () { return this._meshCollisionData._collider; }, enumerable: !0, configurable: !0, }), (t.prototype.moveWithCollisions = function (e) { this.getAbsolutePosition().addToRef(this.ellipsoidOffset, this._meshCollisionData._oldPositionForCollisions); var t = this.getScene().collisionCoordinator; return ( this._meshCollisionData._collider || (this._meshCollisionData._collider = t.createCollider()), (this._meshCollisionData._collider._radius = this.ellipsoid), t.getNewPosition(this._meshCollisionData._oldPositionForCollisions, e, this._meshCollisionData._collider, 3, this, this._onCollisionPositionChange, this.uniqueId), this ); }), (t.prototype._collideForSubMesh = function (e, t, n) { if ((this._generatePointsArray(), !this._positions)) return this; if (!e._lastColliderWorldVertices || !e._lastColliderTransformMatrix.equals(t)) { (e._lastColliderTransformMatrix = t.clone()), (e._lastColliderWorldVertices = []), (e._trianglePlanes = []); for (var i = e.verticesStart, r = e.verticesStart + e.verticesCount, o = i; o < r; o++) e._lastColliderWorldVertices.push(a.e.TransformCoordinates(this._positions[o], t)); } return n._collide(e._trianglePlanes, e._lastColliderWorldVertices, this.getIndices(), e.indexStart, e.indexStart + e.indexCount, e.verticesStart, !!e.getMaterial(), this), this; }), (t.prototype._processCollisionsForSubMeshes = function (e, t) { for (var n = this._scene.getCollidingSubMeshCandidates(this, e), i = n.length, r = 0; r < i; r++) { var o = n.data[r]; (i > 1 && !o._checkCollision(e)) || this._collideForSubMesh(o, t, e); } return this; }), (t.prototype._checkCollision = function (e) { if (!this._boundingInfo || !this._boundingInfo._checkCollision(e)) return this; var t = a.c.Matrix[0], n = a.c.Matrix[1]; return a.a.ScalingToRef(1 / e._radius.x, 1 / e._radius.y, 1 / e._radius.z, t), this.worldMatrixFromCache.multiplyToRef(t, n), this._processCollisionsForSubMeshes(e, n), this; }), (t.prototype._generatePointsArray = function () { return !1; }), (t.prototype.intersects = function (e, t, n) { var i = new h.a(), r = "InstancedLinesMesh" === this.getClassName() || "LinesMesh" === this.getClassName() ? this.intersectionThreshold : 0, o = this._boundingInfo; if (!(this.subMeshes && o && e.intersectsSphere(o.boundingSphere, r) && e.intersectsBox(o.boundingBox, r))) return i; if (!this._generatePointsArray()) return i; for (var s = null, c = this._scene.getIntersectingSubMeshCandidates(this, e), l = c.length, u = 0; u < l; u++) { var d = c.data[u]; if (!(l > 1) || d.canIntersects(e)) { var p = d.intersects(e, this._positions, this.getIndices(), t, n); if (p && (t || !s || p.distance < s.distance) && (((s = p).subMeshId = u), t)) break; } } if (s) { var f = this.getWorldMatrix(), m = a.c.Vector3[0], g = a.c.Vector3[1]; a.e.TransformCoordinatesToRef(e.origin, f, m), e.direction.scaleToRef(s.distance, g); var b = a.e.TransformNormal(g, f).addInPlace(m); return (i.hit = !0), (i.distance = a.e.Distance(m, b)), (i.pickedPoint = b), (i.pickedMesh = this), (i.bu = s.bu || 0), (i.bv = s.bv || 0), (i.faceId = s.faceId), (i.subMeshId = s.subMeshId), i; } return i; }), (t.prototype.clone = function (e, t, n) { return null; }), (t.prototype.releaseSubMeshes = function () { if (this.subMeshes) for (; this.subMeshes.length; ) this.subMeshes[0].dispose(); else this.subMeshes = new Array(); return this; }), (t.prototype.dispose = function (t, n) { var i, r = this; for ( void 0 === n && (n = !1), this._scene.useMaterialMeshMap && this._material && this._material.meshMap && (this._material.meshMap[this.uniqueId] = void 0), this.getScene().freeActiveMeshes(), this.getScene().freeRenderingGroups(), void 0 !== this.actionManager && null !== this.actionManager && (this.actionManager.dispose(), (this.actionManager = null)), this._internalAbstractMeshDataInfo._skeleton = null, this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), (this._transformMatrixTexture = null)), i = 0; i < this._intersectionsInProgress.length; i++ ) { var o = this._intersectionsInProgress[i], a = o._intersectionsInProgress.indexOf(this); o._intersectionsInProgress.splice(a, 1); } (this._intersectionsInProgress = []), this.getScene().lights.forEach(function (e) { var t = e.includedOnlyMeshes.indexOf(r); -1 !== t && e.includedOnlyMeshes.splice(t, 1), -1 !== (t = e.excludedMeshes.indexOf(r)) && e.excludedMeshes.splice(t, 1); var n = e.getShadowGenerator(); if (n) { var i = n.getShadowMap(); i && i.renderList && -1 !== (t = i.renderList.indexOf(r)) && i.renderList.splice(t, 1); } }), ("InstancedMesh" === this.getClassName() && "InstancedLinesMesh" === this.getClassName()) || this.releaseSubMeshes(); var s = this.getScene().getEngine(); if ( (this._occlusionQuery && ((this.isOcclusionQueryInProgress = !1), s.deleteQuery(this._occlusionQuery), (this._occlusionQuery = null)), s.wipeCaches(), this.getScene().removeMesh(this), n && this.material && ("MultiMaterial" === this.material.getClassName() ? this.material.dispose(!1, !0, !0) : this.material.dispose(!1, !0)), !t) ) for (i = 0; i < this.getScene().particleSystems.length; i++) this.getScene().particleSystems[i].emitter === this && (this.getScene().particleSystems[i].dispose(), i--); this._internalAbstractMeshDataInfo._facetData.facetDataEnabled && this.disableFacetData(), this.onAfterWorldMatrixUpdateObservable.clear(), this.onCollideObservable.clear(), this.onCollisionPositionChangeObservable.clear(), this.onRebuildObservable.clear(), e.prototype.dispose.call(this, t, n); }), (t.prototype.addChild = function (e) { return e.setParent(this), this; }), (t.prototype.removeChild = function (e) { return e.setParent(null), this; }), (t.prototype._initFacetData = function () { var e = this._internalAbstractMeshDataInfo._facetData; e.facetNormals || (e.facetNormals = new Array()), e.facetPositions || (e.facetPositions = new Array()), e.facetPartitioning || (e.facetPartitioning = new Array()), (e.facetNb = (this.getIndices().length / 3) | 0), (e.partitioningSubdivisions = e.partitioningSubdivisions ? e.partitioningSubdivisions : 10), (e.partitioningBBoxRatio = e.partitioningBBoxRatio ? e.partitioningBBoxRatio : 1.01); for (var t = 0; t < e.facetNb; t++) (e.facetNormals[t] = a.e.Zero()), (e.facetPositions[t] = a.e.Zero()); return (e.facetDataEnabled = !0), this; }), (t.prototype.updateFacetData = function () { var e = this._internalAbstractMeshDataInfo._facetData; e.facetDataEnabled || this._initFacetData(); var t = this.getVerticesData(c.b.PositionKind), n = this.getIndices(), i = this.getVerticesData(c.b.NormalKind), r = this.getBoundingInfo(); if (e.facetDepthSort && !e.facetDepthSortEnabled) { if (((e.facetDepthSortEnabled = !0), n instanceof Uint16Array)) e.depthSortedIndices = new Uint16Array(n); else if (n instanceof Uint32Array) e.depthSortedIndices = new Uint32Array(n); else { for (var o = !1, s = 0; s < n.length; s++) if (n[s] > 65535) { o = !0; break; } e.depthSortedIndices = o ? new Uint32Array(n) : new Uint16Array(n); } if ( ((e.facetDepthSortFunction = function (e, t) { return t.sqDistance - e.sqDistance; }), !e.facetDepthSortFrom) ) { var u = this.getScene().activeCamera; e.facetDepthSortFrom = u ? u.position : a.e.Zero(); } e.depthSortedFacets = []; for (var h = 0; h < e.facetNb; h++) { var d = { ind: 3 * h, sqDistance: 0 }; e.depthSortedFacets.push(d); } (e.invertedMatrix = a.a.Identity()), (e.facetDepthSortOrigin = a.e.Zero()); } (e.bbSize.x = r.maximum.x - r.minimum.x > b.a ? r.maximum.x - r.minimum.x : b.a), (e.bbSize.y = r.maximum.y - r.minimum.y > b.a ? r.maximum.y - r.minimum.y : b.a), (e.bbSize.z = r.maximum.z - r.minimum.z > b.a ? r.maximum.z - r.minimum.z : b.a); var p = e.bbSize.x > e.bbSize.y ? e.bbSize.x : e.bbSize.y; if ( ((p = p > e.bbSize.z ? p : e.bbSize.z), (e.subDiv.max = e.partitioningSubdivisions), (e.subDiv.X = Math.floor((e.subDiv.max * e.bbSize.x) / p)), (e.subDiv.Y = Math.floor((e.subDiv.max * e.bbSize.y) / p)), (e.subDiv.Z = Math.floor((e.subDiv.max * e.bbSize.z) / p)), (e.subDiv.X = e.subDiv.X < 1 ? 1 : e.subDiv.X), (e.subDiv.Y = e.subDiv.Y < 1 ? 1 : e.subDiv.Y), (e.subDiv.Z = e.subDiv.Z < 1 ? 1 : e.subDiv.Z), (e.facetParameters.facetNormals = this.getFacetLocalNormals()), (e.facetParameters.facetPositions = this.getFacetLocalPositions()), (e.facetParameters.facetPartitioning = this.getFacetLocalPartitioning()), (e.facetParameters.bInfo = r), (e.facetParameters.bbSize = e.bbSize), (e.facetParameters.subDiv = e.subDiv), (e.facetParameters.ratio = this.partitioningBBoxRatio), (e.facetParameters.depthSort = e.facetDepthSort), e.facetDepthSort && e.facetDepthSortEnabled && (this.computeWorldMatrix(!0), this._worldMatrix.invertToRef(e.invertedMatrix), a.e.TransformCoordinatesToRef(e.facetDepthSortFrom, e.invertedMatrix, e.facetDepthSortOrigin), (e.facetParameters.distanceTo = e.facetDepthSortOrigin)), (e.facetParameters.depthSortedFacets = e.depthSortedFacets), l.a.ComputeNormals(t, n, i, e.facetParameters), e.facetDepthSort && e.facetDepthSortEnabled) ) { e.depthSortedFacets.sort(e.facetDepthSortFunction); var f = (e.depthSortedIndices.length / 3) | 0; for (h = 0; h < f; h++) { var m = e.depthSortedFacets[h].ind; (e.depthSortedIndices[3 * h] = n[m]), (e.depthSortedIndices[3 * h + 1] = n[m + 1]), (e.depthSortedIndices[3 * h + 2] = n[m + 2]); } this.updateIndices(e.depthSortedIndices, void 0, !0); } return this; }), (t.prototype.getFacetLocalNormals = function () { var e = this._internalAbstractMeshDataInfo._facetData; return e.facetNormals || this.updateFacetData(), e.facetNormals; }), (t.prototype.getFacetLocalPositions = function () { var e = this._internalAbstractMeshDataInfo._facetData; return e.facetPositions || this.updateFacetData(), e.facetPositions; }), (t.prototype.getFacetLocalPartitioning = function () { var e = this._internalAbstractMeshDataInfo._facetData; return e.facetPartitioning || this.updateFacetData(), e.facetPartitioning; }), (t.prototype.getFacetPosition = function (e) { var t = a.e.Zero(); return this.getFacetPositionToRef(e, t), t; }), (t.prototype.getFacetPositionToRef = function (e, t) { var n = this.getFacetLocalPositions()[e], i = this.getWorldMatrix(); return a.e.TransformCoordinatesToRef(n, i, t), this; }), (t.prototype.getFacetNormal = function (e) { var t = a.e.Zero(); return this.getFacetNormalToRef(e, t), t; }), (t.prototype.getFacetNormalToRef = function (e, t) { var n = this.getFacetLocalNormals()[e]; return a.e.TransformNormalToRef(n, this.getWorldMatrix(), t), this; }), (t.prototype.getFacetsAtLocalCoordinates = function (e, t, n) { var i = this.getBoundingInfo(), r = this._internalAbstractMeshDataInfo._facetData, o = Math.floor(((e - i.minimum.x * r.partitioningBBoxRatio) * r.subDiv.X * r.partitioningBBoxRatio) / r.bbSize.x), a = Math.floor(((t - i.minimum.y * r.partitioningBBoxRatio) * r.subDiv.Y * r.partitioningBBoxRatio) / r.bbSize.y), s = Math.floor(((n - i.minimum.z * r.partitioningBBoxRatio) * r.subDiv.Z * r.partitioningBBoxRatio) / r.bbSize.z); return o < 0 || o > r.subDiv.max || a < 0 || a > r.subDiv.max || s < 0 || s > r.subDiv.max ? null : r.facetPartitioning[o + r.subDiv.max * a + r.subDiv.max * r.subDiv.max * s]; }), (t.prototype.getClosestFacetAtCoordinates = function (e, t, n, i, r, o) { void 0 === r && (r = !1), void 0 === o && (o = !0); var s = this.getWorldMatrix(), c = a.c.Matrix[5]; s.invertToRef(c); var l = a.c.Vector3[8]; a.e.TransformCoordinatesFromFloatsToRef(e, t, n, c, l); var u = this.getClosestFacetAtLocalCoordinates(l.x, l.y, l.z, i, r, o); return i && a.e.TransformCoordinatesFromFloatsToRef(i.x, i.y, i.z, s, i), u; }), (t.prototype.getClosestFacetAtLocalCoordinates = function (e, t, n, i, r, o) { void 0 === r && (r = !1), void 0 === o && (o = !0); var a = null, s = 0, c = 0, l = 0, u = 0, h = 0, d = 0, p = 0, f = 0, m = this.getFacetLocalPositions(), g = this.getFacetLocalNormals(), b = this.getFacetsAtLocalCoordinates(e, t, n); if (!b) return null; for (var _, v, y, C = Number.MAX_VALUE, P = C, x = 0; x < b.length; x++) (v = g[(_ = b[x])]), (u = (e - (y = m[_]).x) * v.x + (t - y.y) * v.y + (n - y.z) * v.z), (!r || (r && o && u >= 0) || (r && !o && u <= 0)) && ((u = v.x * y.x + v.y * y.y + v.z * y.z), (h = -(v.x * e + v.y * t + v.z * n - u) / (v.x * v.x + v.y * v.y + v.z * v.z)), (P = (s = (d = e + v.x * h) - e) * s + (c = (p = t + v.y * h) - t) * c + (l = (f = n + v.z * h) - n) * l) < C && ((C = P), (a = _), i && ((i.x = d), (i.y = p), (i.z = f)))); return a; }), (t.prototype.getFacetDataParameters = function () { return this._internalAbstractMeshDataInfo._facetData.facetParameters; }), (t.prototype.disableFacetData = function () { var e = this._internalAbstractMeshDataInfo._facetData; return ( e.facetDataEnabled && ((e.facetDataEnabled = !1), (e.facetPositions = new Array()), (e.facetNormals = new Array()), (e.facetPartitioning = new Array()), (e.facetParameters = null), (e.depthSortedIndices = new Uint32Array(0))), this ); }), (t.prototype.updateIndices = function (e, t, n) { return void 0 === n && (n = !1), this; }), (t.prototype.createNormals = function (e) { var t, n = this.getVerticesData(c.b.PositionKind), i = this.getIndices(); return ( (t = this.isVerticesDataPresent(c.b.NormalKind) ? this.getVerticesData(c.b.NormalKind) : []), l.a.ComputeNormals(n, i, t, { useRightHandedSystem: this.getScene().useRightHandedSystem }), this.setVerticesData(c.b.NormalKind, t, e), this ); }), (t.prototype.alignWithNormal = function (e, t) { t || (t = _.a.Y); var n = a.c.Vector3[0], i = a.c.Vector3[1]; return a.e.CrossToRef(t, e, i), a.e.CrossToRef(e, i, n), this.rotationQuaternion ? a.b.RotationQuaternionFromAxisToRef(n, e, i, this.rotationQuaternion) : a.e.RotationFromAxisToRef(n, e, i, this.rotation), this; }), (t.prototype._checkOcclusionQuery = function () { return !1; }), (t.prototype.disableEdgesRendering = function () { throw f.a.WarnImport("EdgesRenderer"); }), (t.prototype.enableEdgesRendering = function (e, t) { throw f.a.WarnImport("EdgesRenderer"); }), (t.OCCLUSION_TYPE_NONE = 0), (t.OCCLUSION_TYPE_OPTIMISTIC = 1), (t.OCCLUSION_TYPE_STRICT = 2), (t.OCCLUSION_ALGORITHM_TYPE_ACCURATE = 0), (t.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE = 1), (t.CULLINGSTRATEGY_STANDARD = 0), (t.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1), (t.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2), (t.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3), t ); })(u.a); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return i; }), n.d(t, "a", function () { return s; }); var i, r = n(6), o = n(147), a = n(22); !(function (e) { (e[(e.Unknown = 0)] = "Unknown"), (e[(e.Url = 1)] = "Url"), (e[(e.Temp = 2)] = "Temp"), (e[(e.Raw = 3)] = "Raw"), (e[(e.Dynamic = 4)] = "Dynamic"), (e[(e.RenderTarget = 5)] = "RenderTarget"), (e[(e.MultiRenderTarget = 6)] = "MultiRenderTarget"), (e[(e.Cube = 7)] = "Cube"), (e[(e.CubeRaw = 8)] = "CubeRaw"), (e[(e.CubePrefiltered = 9)] = "CubePrefiltered"), (e[(e.Raw3D = 10)] = "Raw3D"), (e[(e.Raw2DArray = 11)] = "Raw2DArray"), (e[(e.Depth = 12)] = "Depth"), (e[(e.CubeRawRGBD = 13)] = "CubeRawRGBD"); })(i || (i = {})); var s = (function () { function e(e, t, n) { void 0 === n && (n = !1), (this.isReady = !1), (this.isCube = !1), (this.is3D = !1), (this.is2DArray = !1), (this.isMultiview = !1), (this.url = ""), (this.samplingMode = -1), (this.generateMipMaps = !1), (this.samples = 0), (this.type = -1), (this.format = -1), (this.onLoadedObservable = new r.c()), (this.width = 0), (this.height = 0), (this.depth = 0), (this.baseWidth = 0), (this.baseHeight = 0), (this.baseDepth = 0), (this.invertY = !1), (this._invertVScale = !1), (this._associatedChannel = -1), (this._source = i.Unknown), (this._buffer = null), (this._bufferView = null), (this._bufferViewArray = null), (this._bufferViewArrayArray = null), (this._size = 0), (this._extension = ""), (this._files = null), (this._workingCanvas = null), (this._workingContext = null), (this._framebuffer = null), (this._depthStencilBuffer = null), (this._MSAAFramebuffer = null), (this._MSAARenderBuffer = null), (this._attachments = null), (this._cachedCoordinatesMode = null), (this._cachedWrapU = null), (this._cachedWrapV = null), (this._cachedWrapR = null), (this._cachedAnisotropicFilteringLevel = null), (this._isDisabled = !1), (this._compression = null), (this._generateStencilBuffer = !1), (this._generateDepthBuffer = !1), (this._comparisonFunction = 0), (this._sphericalPolynomial = null), (this._lodGenerationScale = 0), (this._lodGenerationOffset = 0), (this._colorTextureArray = null), (this._depthStencilTextureArray = null), (this._lodTextureHigh = null), (this._lodTextureMid = null), (this._lodTextureLow = null), (this._isRGBD = !1), (this._linearSpecularLOD = !1), (this._irradianceTexture = null), (this._webGLTexture = null), (this._references = 1), (this._engine = e), (this._source = t), n || (this._webGLTexture = e._createTexture()); } return ( (e.prototype.getEngine = function () { return this._engine; }), Object.defineProperty(e.prototype, "source", { get: function () { return this._source; }, enumerable: !0, configurable: !0, }), (e.prototype.incrementReferences = function () { this._references++; }), (e.prototype.updateSize = function (e, t, n) { void 0 === n && (n = 1), (this.width = e), (this.height = t), (this.depth = n), (this.baseWidth = e), (this.baseHeight = t), (this.baseDepth = n), (this._size = e * t * n); }), (e.prototype._rebuild = function () { var t, n = this; switch (((this.isReady = !1), (this._cachedCoordinatesMode = null), (this._cachedWrapU = null), (this._cachedWrapV = null), (this._cachedAnisotropicFilteringLevel = null), this.source)) { case i.Temp: return; case i.Url: return void (t = this._engine.createTexture( this.url, !this.generateMipMaps, this.invertY, null, this.samplingMode, function () { t._swapAndDie(n), (n.isReady = !0); }, null, this._buffer, void 0, this.format )); case i.Raw: return ( (t = this._engine.createRawTexture(this._bufferView, this.baseWidth, this.baseHeight, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression))._swapAndDie(this), void (this.isReady = !0) ); case i.Raw3D: return ( (t = this._engine.createRawTexture3D(this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression))._swapAndDie( this ), void (this.isReady = !0) ); case i.Raw2DArray: return ( (t = this._engine.createRawTexture2DArray( this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression ))._swapAndDie(this), void (this.isReady = !0) ); case i.Dynamic: return ( (t = this._engine.createDynamicTexture(this.baseWidth, this.baseHeight, this.generateMipMaps, this.samplingMode))._swapAndDie(this), void this._engine.updateDynamicTexture(this, this._engine.getRenderingCanvas(), this.invertY, void 0, void 0, !0) ); case i.RenderTarget: var r = new o.a(); if ( ((r.generateDepthBuffer = this._generateDepthBuffer), (r.generateMipMaps = this.generateMipMaps), (r.generateStencilBuffer = this._generateStencilBuffer), (r.samplingMode = this.samplingMode), (r.type = this.type), this.isCube) ) t = this._engine.createRenderTargetCubeTexture(this.width, r); else { var a = { width: this.width, height: this.height, layers: this.is2DArray ? this.depth : void 0 }; t = this._engine.createRenderTargetTexture(a, r); } return t._swapAndDie(this), void (this.isReady = !0); case i.Depth: var s = { bilinearFiltering: 2 !== this.samplingMode, comparisonFunction: this._comparisonFunction, generateStencil: this._generateStencilBuffer, isCube: this.isCube }, c = { width: this.width, height: this.height, layers: this.is2DArray ? this.depth : void 0 }; return (t = this._engine.createDepthStencilTexture(c, s))._swapAndDie(this), void (this.isReady = !0); case i.Cube: return void (t = this._engine.createCubeTexture( this.url, null, this._files, !this.generateMipMaps, function () { t._swapAndDie(n), (n.isReady = !0); }, null, this.format, this._extension )); case i.CubeRaw: return ( (t = this._engine.createRawCubeTexture(this._bufferViewArray, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression))._swapAndDie(this), void (this.isReady = !0) ); case i.CubeRawRGBD: return ( (t = this._engine.createRawCubeTexture(null, this.width, this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression)), void e._UpdateRGBDAsync(t, this._bufferViewArrayArray, this._sphericalPolynomial, this._lodGenerationScale, this._lodGenerationOffset).then(function () { t._swapAndDie(n), (n.isReady = !0); }) ); case i.CubePrefiltered: return void ((t = this._engine.createPrefilteredCubeTexture( this.url, null, this._lodGenerationScale, this._lodGenerationOffset, function (e) { e && e._swapAndDie(n), (n.isReady = !0); }, null, this.format, this._extension ))._sphericalPolynomial = this._sphericalPolynomial); } }), (e.prototype._swapAndDie = function (e) { (e._webGLTexture = this._webGLTexture), (e._isRGBD = this._isRGBD), this._framebuffer && (e._framebuffer = this._framebuffer), this._depthStencilBuffer && (e._depthStencilBuffer = this._depthStencilBuffer), (e._depthStencilTexture = this._depthStencilTexture), this._lodTextureHigh && (e._lodTextureHigh && e._lodTextureHigh.dispose(), (e._lodTextureHigh = this._lodTextureHigh)), this._lodTextureMid && (e._lodTextureMid && e._lodTextureMid.dispose(), (e._lodTextureMid = this._lodTextureMid)), this._lodTextureLow && (e._lodTextureLow && e._lodTextureLow.dispose(), (e._lodTextureLow = this._lodTextureLow)), this._irradianceTexture && (e._irradianceTexture && e._irradianceTexture.dispose(), (e._irradianceTexture = this._irradianceTexture)); var t, n = this._engine.getLoadedTexturesCache(); -1 !== (t = n.indexOf(this)) && n.splice(t, 1), -1 === (t = n.indexOf(e)) && n.push(e); }), (e.prototype.dispose = function () { this._webGLTexture && (this._references--, 0 === this._references && (this._engine._releaseTexture(this), (this._webGLTexture = null))); }), (e._UpdateRGBDAsync = function (e, t, n, i, r) { throw a.a.WarnImport("environmentTextureTools"); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return T; }), n.d(t, "a", function () { return S; }); var i = n(2), r = n(3), o = n(47), a = n(18), s = n(1), c = n(5), l = n(4), u = n(50), h = n(41), d = n(46), p = n(11), f = n(8), m = n(13), g = n(17), b = n(7), _ = "uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nuniform vec3 vEmissiveColor;\nuniform float visibility;\n\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)\nuniform mat4 view;\n#endif\n#ifdef REFRACTION\nuniform vec4 vRefractionInfos;\n#ifndef REFRACTIONMAP_3D\nuniform mat4 refractionMatrix;\n#endif\n#ifdef REFRACTIONFRESNEL\nuniform vec4 refractionLeftColor;\nuniform vec4 refractionRightColor;\n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\n#endif\n#ifdef DIFFUSEFRESNEL\nuniform vec4 diffuseLeftColor;\nuniform vec4 diffuseRightColor;\n#endif\n#ifdef OPACITYFRESNEL\nuniform vec4 opacityParts;\n#endif\n#ifdef EMISSIVEFRESNEL\nuniform vec4 emissiveLeftColor;\nuniform vec4 emissiveRightColor;\n#endif\n\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#if defined(REFLECTIONMAP_PLANAR) || defined(REFLECTIONMAP_CUBIC) || defined(REFLECTIONMAP_PROJECTION) || defined(REFLECTIONMAP_EQUIRECTANGULAR) || defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_SKYBOX)\nuniform mat4 reflectionMatrix;\n#endif\n#ifndef REFLECTIONMAP_SKYBOX\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\n#endif\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 reflectionLeftColor;\nuniform vec4 reflectionRightColor;\n#endif\n#endif"; b.a.IncludesShadersStore.defaultFragmentDeclaration = _; var v = "layout(std140,column_major) uniform;\nuniform Material\n{\nvec4 diffuseLeftColor;\nvec4 diffuseRightColor;\nvec4 opacityParts;\nvec4 reflectionLeftColor;\nvec4 reflectionRightColor;\nvec4 refractionLeftColor;\nvec4 refractionRightColor;\nvec4 emissiveLeftColor;\nvec4 emissiveRightColor;\nvec2 vDiffuseInfos;\nvec2 vAmbientInfos;\nvec2 vOpacityInfos;\nvec2 vReflectionInfos;\nvec3 vReflectionPosition;\nvec3 vReflectionSize;\nvec2 vEmissiveInfos;\nvec2 vLightmapInfos;\nvec2 vSpecularInfos;\nvec3 vBumpInfos;\nmat4 diffuseMatrix;\nmat4 ambientMatrix;\nmat4 opacityMatrix;\nmat4 reflectionMatrix;\nmat4 emissiveMatrix;\nmat4 lightmapMatrix;\nmat4 specularMatrix;\nmat4 bumpMatrix;\nvec2 vTangentSpaceParams;\nfloat pointSize;\nmat4 refractionMatrix;\nvec4 vRefractionInfos;\nvec4 vSpecularColor;\nvec3 vEmissiveColor;\nfloat visibility;\nvec4 vDiffuseColor;\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};\n"; b.a.IncludesShadersStore.defaultUboDeclaration = v; n(59), n(60), n(61), n(105), n(99), n(223), n(171), n(140), n(141), n(172), n(86), n(142), n(87), n(82), n(173), n(114), n(100), n(174), n(90); var y = "#include<__decl__defaultFragment>\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n\n#define RECIPROCAL_PI2 0.15915494\nuniform vec3 vEyePosition;\nuniform vec3 vAmbientColor;\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n\n#include\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n\n#ifdef DIFFUSE\n#if DIFFUSEDIRECTUV == 1\n#define vDiffuseUV vMainUV1\n#elif DIFFUSEDIRECTUV == 2\n#define vDiffuseUV vMainUV2\n#else\nvarying vec2 vDiffuseUV;\n#endif\nuniform sampler2D diffuseSampler;\n#endif\n#ifdef AMBIENT\n#if AMBIENTDIRECTUV == 1\n#define vAmbientUV vMainUV1\n#elif AMBIENTDIRECTUV == 2\n#define vAmbientUV vMainUV2\n#else\nvarying vec2 vAmbientUV;\n#endif\nuniform sampler2D ambientSampler;\n#endif\n#ifdef OPACITY\n#if OPACITYDIRECTUV == 1\n#define vOpacityUV vMainUV1\n#elif OPACITYDIRECTUV == 2\n#define vOpacityUV vMainUV2\n#else\nvarying vec2 vOpacityUV;\n#endif\nuniform sampler2D opacitySampler;\n#endif\n#ifdef EMISSIVE\n#if EMISSIVEDIRECTUV == 1\n#define vEmissiveUV vMainUV1\n#elif EMISSIVEDIRECTUV == 2\n#define vEmissiveUV vMainUV2\n#else\nvarying vec2 vEmissiveUV;\n#endif\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef LIGHTMAP\n#if LIGHTMAPDIRECTUV == 1\n#define vLightmapUV vMainUV1\n#elif LIGHTMAPDIRECTUV == 2\n#define vLightmapUV vMainUV2\n#else\nvarying vec2 vLightmapUV;\n#endif\nuniform sampler2D lightmapSampler;\n#endif\n#ifdef REFRACTION\n#ifdef REFRACTIONMAP_3D\nuniform samplerCube refractionCubeSampler;\n#else\nuniform sampler2D refraction2DSampler;\n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\n#if SPECULARDIRECTUV == 1\n#define vSpecularUV vMainUV1\n#elif SPECULARDIRECTUV == 2\n#define vSpecularUV vMainUV2\n#else\nvarying vec2 vSpecularUV;\n#endif\nuniform sampler2D specularSampler;\n#endif\n#ifdef ALPHATEST\nuniform float alphaCutOff;\n#endif\n\n#include\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\nuniform samplerCube reflectionCubeSampler;\n#else\nuniform sampler2D reflection2DSampler;\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include\n#endif\n#include\n#include\n#include\n#include\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\n\nvec4 baseColor=vec4(1.,1.,1.,1.);\nvec3 diffuseColor=vDiffuseColor.rgb;\n\nfloat alpha=vDiffuseColor.a;\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\n#endif\n#include\n#ifdef TWOSIDEDLIGHTING\nnormalW=gl_FrontFacing ? normalW : -normalW;\n#endif\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\n#ifdef ALPHATEST\nif (baseColor.a\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\n\nvec3 baseAmbientColor=vec3(1.,1.,1.);\n#ifdef AMBIENT\nbaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\n\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;\nvec3 specularColor=vSpecularColor.rgb;\n#ifdef SPECULAR\nvec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);\nspecularColor=specularMapColor.rgb;\n#ifdef GLOSSINESS\nglossiness=glossiness*specularMapColor.a;\n#endif\n#endif\n#else\nfloat glossiness=0.;\n#endif\n\nvec3 diffuseBase=vec3(0.,0.,0.);\nlightingInfo info;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\nfloat shadow=1.;\n#ifdef LIGHTMAP\nvec3 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset).rgb*vLightmapInfos.y;\n#endif\n#include[0..maxSimultaneousLights]\n\nvec3 refractionColor=vec3(0.,0.,0.);\n#ifdef REFRACTION\nvec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\n#ifdef REFRACTIONMAP_3D\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;\nif (dot(refractionVector,viewDirectionW)<1.0) {\nrefractionColor=textureCube(refractionCubeSampler,refractionVector).rgb;\n}\n#else\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\nvec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\nrefractionCoords.y=1.0-refractionCoords.y;\nrefractionColor=texture2D(refraction2DSampler,refractionCoords).rgb;\n#endif\n#ifdef IS_REFRACTION_LINEAR\nrefractionColor=toGammaSpace(refractionColor);\n#endif\nrefractionColor*=vRefractionInfos.x;\n#endif\n\nvec3 reflectionColor=vec3(0.,0.,0.);\n#ifdef REFLECTION\nvec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_3D\n#ifdef ROUGHNESS\nfloat bias=vReflectionInfos.y;\n#ifdef SPECULARTERM\n#ifdef SPECULAR\n#ifdef GLOSSINESS\nbias*=(1.0-specularMapColor.a);\n#endif\n#endif\n#endif\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias).rgb;\n#else\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW).rgb;\n#endif\n#else\nvec2 coords=vReflectionUVW.xy;\n#ifdef REFLECTIONMAP_PROJECTION\ncoords/=vReflectionUVW.z;\n#endif\ncoords.y=1.0-coords.y;\nreflectionColor=texture2D(reflection2DSampler,coords).rgb;\n#endif\n#ifdef IS_REFLECTION_LINEAR\nreflectionColor=toGammaSpace(reflectionColor);\n#endif\nreflectionColor*=vReflectionInfos.x;\n#ifdef REFLECTIONFRESNEL\nfloat reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\n#ifdef REFLECTIONFRESNELFROMSPECULAR\n#ifdef SPECULARTERM\nreflectionColor*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#else\nreflectionColor*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#else\nreflectionColor*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#endif\n#endif\n#ifdef REFRACTIONFRESNEL\nfloat refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);\nrefractionColor*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#ifdef OPACITYRGB\nopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);\nalpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;\n#else\nalpha*=opacityMap.a*vOpacityInfos.y;\n#endif\n#endif\n#ifdef VERTEXALPHA\nalpha*=vColor.a;\n#endif\n#ifdef OPACITYFRESNEL\nfloat opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);\nalpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\n#endif\n\nvec3 emissiveColor=vEmissiveColor;\n#ifdef EMISSIVE\nemissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;\n#endif\n#ifdef EMISSIVEFRESNEL\nfloat emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);\nemissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;\n#endif\n\n#ifdef DIFFUSEFRESNEL\nfloat diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);\ndiffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;\n#endif\n\n#ifdef EMISSIVEASILLUMINATION\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\n#ifdef LINKEMISSIVEWITHDIFFUSE\nvec3 finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#endif\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#ifdef SPECULAROVERALPHA\nalpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#ifdef REFLECTIONOVERALPHA\nalpha=clamp(alpha+dot(reflectionColor,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n\n#ifdef EMISSIVEASILLUMINATION\nvec4 color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor+emissiveColor+refractionColor,0.0,1.0),alpha);\n#else\nvec4 color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor+refractionColor,alpha);\n#endif\n\n#ifdef LIGHTMAP\n#ifndef LIGHTMAPEXCLUDED\n#ifdef USELIGHTMAPASSHADOWMAP\ncolor.rgb*=lightmapColor;\n#else\ncolor.rgb+=lightmapColor;\n#endif\n#endif\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FOG\ncolor.rgb=max(color.rgb,0.);\n#include\n#include\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#else\n#ifdef IMAGEPROCESSING\ncolor.rgb=toLinearSpace(color.rgb);\ncolor=applyImageProcessing(color);\n#endif\n#endif\ncolor.a*=visibility;\n#ifdef PREMULTIPLYALPHA\n\ncolor.rgb*=color.a;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\ngl_FragColor=color;\n}\n"; b.a.ShadersStore.defaultPixelShader = y; var C = "\nuniform mat4 viewProjection;\nuniform mat4 view;\n#ifdef DIFFUSE\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform mat4 ambientMatrix;\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY\nuniform mat4 opacityMatrix;\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\nuniform mat4 emissiveMatrix;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\nuniform mat4 lightmapMatrix;\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\nuniform mat4 specularMatrix;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform mat4 bumpMatrix;\n#endif\n#ifdef REFLECTION\nuniform mat4 reflectionMatrix;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n"; b.a.IncludesShadersStore.defaultVertexDeclaration = C; n(70), n(71), n(224), n(88), n(91), n(131), n(132), n(143), n(72), n(73), n(210), n(83), n(93), n(101); b.a.IncludesShadersStore.pointCloudVertex = "#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif"; n(175); var P = "#include<__decl__defaultVertex>\n\n#define CUSTOM_VERTEX_BEGIN\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef TANGENT\nattribute vec4 tangent;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n\n#include\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nvarying vec2 vDiffuseUV;\n#endif\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\nvarying vec2 vAmbientUV;\n#endif\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\nvarying vec2 vOpacityUV;\n#endif\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\nvarying vec2 vEmissiveUV;\n#endif\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\nvarying vec2 vLightmapUV;\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0\nvarying vec2 vSpecularUV;\n#endif\n#if defined(BUMP) && BUMPDIRECTUV == 0\nvarying vec2 vBumpUV;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include\n#include\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#ifdef NORMAL\nvec3 normalUpdated=normal;\n#endif\n#ifdef TANGENT\nvec4 tangentUpdated=tangent;\n#endif\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR == 0u) {\ngl_Position=viewProjection*worldPos;\n} else {\ngl_Position=viewProjectionR*worldPos;\n}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\n#endif\n\n#ifndef UV1\nvec2 uvUpdated=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uvUpdated;\n#endif\n#ifdef MAINUV2\nvMainUV2=uv2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\nif (vAmbientInfos.x == 0.)\n{\nvAmbientUV=vec2(ambientMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvAmbientUV=vec2(ambientMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\nif (vOpacityInfos.x == 0.)\n{\nvOpacityUV=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\nif (vEmissiveInfos.x == 0.)\n{\nvEmissiveUV=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvEmissiveUV=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\nif (vLightmapInfos.x == 0.)\n{\nvLightmapUV=vec2(lightmapMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvLightmapUV=vec2(lightmapMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0\nif (vSpecularInfos.x == 0.)\n{\nvSpecularUV=vec2(specularMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvSpecularUV=vec2(specularMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#if defined(BUMP) && BUMPDIRECTUV == 0\nif (vBumpInfos.x == 0.)\n{\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\n}\nelse\n{\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n#include\n#include\n#include\n#include[0..maxSimultaneousLights]\n#ifdef VERTEXCOLOR\n\nvColor=color;\n#endif\n#include\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}\n"; b.a.ShadersStore.defaultVertexShader = P; var x = n(43), T = (function (e) { function t() { var t = e.call(this) || this; return ( (t.MAINUV1 = !1), (t.MAINUV2 = !1), (t.DIFFUSE = !1), (t.DIFFUSEDIRECTUV = 0), (t.AMBIENT = !1), (t.AMBIENTDIRECTUV = 0), (t.OPACITY = !1), (t.OPACITYDIRECTUV = 0), (t.OPACITYRGB = !1), (t.REFLECTION = !1), (t.EMISSIVE = !1), (t.EMISSIVEDIRECTUV = 0), (t.SPECULAR = !1), (t.SPECULARDIRECTUV = 0), (t.BUMP = !1), (t.BUMPDIRECTUV = 0), (t.PARALLAX = !1), (t.PARALLAXOCCLUSION = !1), (t.SPECULAROVERALPHA = !1), (t.CLIPPLANE = !1), (t.CLIPPLANE2 = !1), (t.CLIPPLANE3 = !1), (t.CLIPPLANE4 = !1), (t.CLIPPLANE5 = !1), (t.CLIPPLANE6 = !1), (t.ALPHATEST = !1), (t.DEPTHPREPASS = !1), (t.ALPHAFROMDIFFUSE = !1), (t.POINTSIZE = !1), (t.FOG = !1), (t.SPECULARTERM = !1), (t.DIFFUSEFRESNEL = !1), (t.OPACITYFRESNEL = !1), (t.REFLECTIONFRESNEL = !1), (t.REFRACTIONFRESNEL = !1), (t.EMISSIVEFRESNEL = !1), (t.FRESNEL = !1), (t.NORMAL = !1), (t.UV1 = !1), (t.UV2 = !1), (t.VERTEXCOLOR = !1), (t.VERTEXALPHA = !1), (t.NUM_BONE_INFLUENCERS = 0), (t.BonesPerMesh = 0), (t.BONETEXTURE = !1), (t.INSTANCES = !1), (t.GLOSSINESS = !1), (t.ROUGHNESS = !1), (t.EMISSIVEASILLUMINATION = !1), (t.LINKEMISSIVEWITHDIFFUSE = !1), (t.REFLECTIONFRESNELFROMSPECULAR = !1), (t.LIGHTMAP = !1), (t.LIGHTMAPDIRECTUV = 0), (t.OBJECTSPACE_NORMALMAP = !1), (t.USELIGHTMAPASSHADOWMAP = !1), (t.REFLECTIONMAP_3D = !1), (t.REFLECTIONMAP_SPHERICAL = !1), (t.REFLECTIONMAP_PLANAR = !1), (t.REFLECTIONMAP_CUBIC = !1), (t.USE_LOCAL_REFLECTIONMAP_CUBIC = !1), (t.REFLECTIONMAP_PROJECTION = !1), (t.REFLECTIONMAP_SKYBOX = !1), (t.REFLECTIONMAP_EXPLICIT = !1), (t.REFLECTIONMAP_EQUIRECTANGULAR = !1), (t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1), (t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1), (t.INVERTCUBICMAP = !1), (t.LOGARITHMICDEPTH = !1), (t.REFRACTION = !1), (t.REFRACTIONMAP_3D = !1), (t.REFLECTIONOVERALPHA = !1), (t.TWOSIDEDLIGHTING = !1), (t.SHADOWFLOAT = !1), (t.MORPHTARGETS = !1), (t.MORPHTARGETS_NORMAL = !1), (t.MORPHTARGETS_TANGENT = !1), (t.MORPHTARGETS_UV = !1), (t.NUM_MORPH_INFLUENCERS = 0), (t.NONUNIFORMSCALING = !1), (t.PREMULTIPLYALPHA = !1), (t.IMAGEPROCESSING = !1), (t.VIGNETTE = !1), (t.VIGNETTEBLENDMODEMULTIPLY = !1), (t.VIGNETTEBLENDMODEOPAQUE = !1), (t.TONEMAPPING = !1), (t.TONEMAPPING_ACES = !1), (t.CONTRAST = !1), (t.COLORCURVES = !1), (t.COLORGRADING = !1), (t.COLORGRADING3D = !1), (t.SAMPLER3DGREENDEPTH = !1), (t.SAMPLER3DBGRMAP = !1), (t.IMAGEPROCESSINGPOSTPROCESS = !1), (t.MULTIVIEW = !1), (t.IS_REFLECTION_LINEAR = !1), (t.IS_REFRACTION_LINEAR = !1), (t.EXPOSURE = !1), t.rebuild(), t ); } return ( Object(i.d)(t, e), (t.prototype.setReflectionMode = function (e) { for ( var t = 0, n = [ "REFLECTIONMAP_CUBIC", "REFLECTIONMAP_EXPLICIT", "REFLECTIONMAP_PLANAR", "REFLECTIONMAP_PROJECTION", "REFLECTIONMAP_PROJECTION", "REFLECTIONMAP_SKYBOX", "REFLECTIONMAP_SPHERICAL", "REFLECTIONMAP_EQUIRECTANGULAR", "REFLECTIONMAP_EQUIRECTANGULAR_FIXED", "REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED", ]; t < n.length; t++ ) { var i = n[t]; this[i] = i === e; } }), t ); })(h.a), S = (function (e) { function t(n, i) { var r = e.call(this, n, i) || this; return ( (r._diffuseTexture = null), (r._ambientTexture = null), (r._opacityTexture = null), (r._reflectionTexture = null), (r._emissiveTexture = null), (r._specularTexture = null), (r._bumpTexture = null), (r._lightmapTexture = null), (r._refractionTexture = null), (r.ambientColor = new c.a(0, 0, 0)), (r.diffuseColor = new c.a(1, 1, 1)), (r.specularColor = new c.a(1, 1, 1)), (r.emissiveColor = new c.a(0, 0, 0)), (r.specularPower = 64), (r._useAlphaFromDiffuseTexture = !1), (r._useEmissiveAsIllumination = !1), (r._linkEmissiveWithDiffuse = !1), (r._useSpecularOverAlpha = !1), (r._useReflectionOverAlpha = !1), (r._disableLighting = !1), (r._useObjectSpaceNormalMap = !1), (r._useParallax = !1), (r._useParallaxOcclusion = !1), (r.parallaxScaleBias = 0.05), (r._roughness = 0), (r.indexOfRefraction = 0.98), (r.invertRefractionY = !0), (r.alphaCutOff = 0.4), (r._useLightmapAsShadowmap = !1), (r._useReflectionFresnelFromSpecular = !1), (r._useGlossinessFromSpecularMapAlpha = !1), (r._maxSimultaneousLights = 4), (r._invertNormalMapX = !1), (r._invertNormalMapY = !1), (r._twoSidedLighting = !1), (r._renderTargets = new o.a(16)), (r._worldViewProjectionMatrix = s.a.Zero()), (r._globalAmbientColor = new c.a(0, 0, 0)), (r._rebuildInParallel = !1), r._attachImageProcessingConfiguration(null), (r.getRenderTargetTextures = function () { return ( r._renderTargets.reset(), t.ReflectionTextureEnabled && r._reflectionTexture && r._reflectionTexture.isRenderTarget && r._renderTargets.push(r._reflectionTexture), t.RefractionTextureEnabled && r._refractionTexture && r._refractionTexture.isRenderTarget && r._renderTargets.push(r._refractionTexture), r._renderTargets ); }), r ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, set: function (e) { this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty(); }, enumerable: !0, configurable: !0, }), (t.prototype._attachImageProcessingConfiguration = function (e) { var t = this; e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), (this._imageProcessingConfiguration = e || this.getScene().imageProcessingConfiguration), this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () { t._markAllSubMeshesAsImageProcessingDirty(); }))); }), Object.defineProperty(t.prototype, "cameraColorCurvesEnabled", { get: function () { return this.imageProcessingConfiguration.colorCurvesEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorCurvesEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorGradingEnabled", { get: function () { return this.imageProcessingConfiguration.colorGradingEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorGradingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraToneMappingEnabled", { get: function () { return this._imageProcessingConfiguration.toneMappingEnabled; }, set: function (e) { this._imageProcessingConfiguration.toneMappingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraExposure", { get: function () { return this._imageProcessingConfiguration.exposure; }, set: function (e) { this._imageProcessingConfiguration.exposure = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraContrast", { get: function () { return this._imageProcessingConfiguration.contrast; }, set: function (e) { this._imageProcessingConfiguration.contrast = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorGradingTexture", { get: function () { return this._imageProcessingConfiguration.colorGradingTexture; }, set: function (e) { this._imageProcessingConfiguration.colorGradingTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorCurves", { get: function () { return this._imageProcessingConfiguration.colorCurves; }, set: function (e) { this._imageProcessingConfiguration.colorCurves = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hasRenderTargetTextures", { get: function () { return !!(t.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) || !!(t.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "StandardMaterial"; }), Object.defineProperty(t.prototype, "useLogarithmicDepth", { get: function () { return this._useLogarithmicDepth; }, set: function (e) { (this._useLogarithmicDepth = e && this.getScene().getEngine().getCaps().fragmentDepthSupported), this._markAllSubMeshesAsMiscDirty(); }, enumerable: !0, configurable: !0, }), (t.prototype.needAlphaBlending = function () { return this.alpha < 1 || null != this._opacityTexture || this._shouldUseAlphaFromDiffuseTexture() || (this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled); }), (t.prototype.needAlphaTesting = function () { return null != this._diffuseTexture && this._diffuseTexture.hasAlpha; }), (t.prototype._shouldUseAlphaFromDiffuseTexture = function () { return null != this._diffuseTexture && this._diffuseTexture.hasAlpha && this._useAlphaFromDiffuseTexture; }), (t.prototype.getAlphaTestTexture = function () { return this._diffuseTexture; }), (t.prototype.isReadyForSubMesh = function (e, n, i) { if ((void 0 === i && (i = !1), n.effect && this.isFrozen && n.effect._wasPreviouslyReady)) return !0; n._materialDefines || (n._materialDefines = new T()); var r = this.getScene(), o = n._materialDefines; if (!this.checkReadyOnEveryCall && n.effect && o._renderId === r.getRenderId()) return !0; var a = r.getEngine(); if (((o._needNormals = p.a.PrepareDefinesForLights(r, e, o, !0, this._maxSimultaneousLights, this._disableLighting)), p.a.PrepareDefinesForMultiview(r, o), o._areTexturesDirty)) { if (((o._needUVs = !1), (o.MAINUV1 = !1), (o.MAINUV2 = !1), r.texturesEnabled)) { if (this._diffuseTexture && t.DiffuseTextureEnabled) { if (!this._diffuseTexture.isReadyOrNotBlocking()) return !1; p.a.PrepareDefinesForMergedUV(this._diffuseTexture, o, "DIFFUSE"); } else o.DIFFUSE = !1; if (this._ambientTexture && t.AmbientTextureEnabled) { if (!this._ambientTexture.isReadyOrNotBlocking()) return !1; p.a.PrepareDefinesForMergedUV(this._ambientTexture, o, "AMBIENT"); } else o.AMBIENT = !1; if (this._opacityTexture && t.OpacityTextureEnabled) { if (!this._opacityTexture.isReadyOrNotBlocking()) return !1; p.a.PrepareDefinesForMergedUV(this._opacityTexture, o, "OPACITY"), (o.OPACITYRGB = this._opacityTexture.getAlphaFromRGB); } else o.OPACITY = !1; if (this._reflectionTexture && t.ReflectionTextureEnabled) { if (!this._reflectionTexture.isReadyOrNotBlocking()) return !1; switch ( ((o._needNormals = !0), (o.REFLECTION = !0), (o.ROUGHNESS = this._roughness > 0), (o.REFLECTIONOVERALPHA = this._useReflectionOverAlpha), (o.INVERTCUBICMAP = this._reflectionTexture.coordinatesMode === f.a.INVCUBIC_MODE), (o.REFLECTIONMAP_3D = this._reflectionTexture.isCube), this._reflectionTexture.coordinatesMode) ) { case f.a.EXPLICIT_MODE: o.setReflectionMode("REFLECTIONMAP_EXPLICIT"); break; case f.a.PLANAR_MODE: o.setReflectionMode("REFLECTIONMAP_PLANAR"); break; case f.a.PROJECTION_MODE: o.setReflectionMode("REFLECTIONMAP_PROJECTION"); break; case f.a.SKYBOX_MODE: o.setReflectionMode("REFLECTIONMAP_SKYBOX"); break; case f.a.SPHERICAL_MODE: o.setReflectionMode("REFLECTIONMAP_SPHERICAL"); break; case f.a.EQUIRECTANGULAR_MODE: o.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR"); break; case f.a.FIXED_EQUIRECTANGULAR_MODE: o.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR_FIXED"); break; case f.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE: o.setReflectionMode("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED"); break; case f.a.CUBIC_MODE: case f.a.INVCUBIC_MODE: default: o.setReflectionMode("REFLECTIONMAP_CUBIC"); } o.USE_LOCAL_REFLECTIONMAP_CUBIC = !!this._reflectionTexture.boundingBoxSize; } else o.REFLECTION = !1; if (this._emissiveTexture && t.EmissiveTextureEnabled) { if (!this._emissiveTexture.isReadyOrNotBlocking()) return !1; p.a.PrepareDefinesForMergedUV(this._emissiveTexture, o, "EMISSIVE"); } else o.EMISSIVE = !1; if (this._lightmapTexture && t.LightmapTextureEnabled) { if (!this._lightmapTexture.isReadyOrNotBlocking()) return !1; p.a.PrepareDefinesForMergedUV(this._lightmapTexture, o, "LIGHTMAP"), (o.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap); } else o.LIGHTMAP = !1; if (this._specularTexture && t.SpecularTextureEnabled) { if (!this._specularTexture.isReadyOrNotBlocking()) return !1; p.a.PrepareDefinesForMergedUV(this._specularTexture, o, "SPECULAR"), (o.GLOSSINESS = this._useGlossinessFromSpecularMapAlpha); } else o.SPECULAR = !1; if (r.getEngine().getCaps().standardDerivatives && this._bumpTexture && t.BumpTextureEnabled) { if (!this._bumpTexture.isReady()) return !1; p.a.PrepareDefinesForMergedUV(this._bumpTexture, o, "BUMP"), (o.PARALLAX = this._useParallax), (o.PARALLAXOCCLUSION = this._useParallaxOcclusion), (o.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap); } else o.BUMP = !1; if (this._refractionTexture && t.RefractionTextureEnabled) { if (!this._refractionTexture.isReadyOrNotBlocking()) return !1; (o._needUVs = !0), (o.REFRACTION = !0), (o.REFRACTIONMAP_3D = this._refractionTexture.isCube); } else o.REFRACTION = !1; o.TWOSIDEDLIGHTING = !this._backFaceCulling && this._twoSidedLighting; } else (o.DIFFUSE = !1), (o.AMBIENT = !1), (o.OPACITY = !1), (o.REFLECTION = !1), (o.EMISSIVE = !1), (o.LIGHTMAP = !1), (o.BUMP = !1), (o.REFRACTION = !1); (o.ALPHAFROMDIFFUSE = this._shouldUseAlphaFromDiffuseTexture()), (o.EMISSIVEASILLUMINATION = this._useEmissiveAsIllumination), (o.LINKEMISSIVEWITHDIFFUSE = this._linkEmissiveWithDiffuse), (o.SPECULAROVERALPHA = this._useSpecularOverAlpha), (o.PREMULTIPLYALPHA = 7 === this.alphaMode || 8 === this.alphaMode); } if (o._areImageProcessingDirty && this._imageProcessingConfiguration) { if (!this._imageProcessingConfiguration.isReady()) return !1; this._imageProcessingConfiguration.prepareDefines(o), (o.IS_REFLECTION_LINEAR = null != this.reflectionTexture && !this.reflectionTexture.gammaSpace), (o.IS_REFRACTION_LINEAR = null != this.refractionTexture && !this.refractionTexture.gammaSpace); } if ( (o._areFresnelDirty && (t.FresnelEnabled ? (this._diffuseFresnelParameters || this._opacityFresnelParameters || this._emissiveFresnelParameters || this._refractionFresnelParameters || this._reflectionFresnelParameters) && ((o.DIFFUSEFRESNEL = this._diffuseFresnelParameters && this._diffuseFresnelParameters.isEnabled), (o.OPACITYFRESNEL = this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled), (o.REFLECTIONFRESNEL = this._reflectionFresnelParameters && this._reflectionFresnelParameters.isEnabled), (o.REFLECTIONFRESNELFROMSPECULAR = this._useReflectionFresnelFromSpecular), (o.REFRACTIONFRESNEL = this._refractionFresnelParameters && this._refractionFresnelParameters.isEnabled), (o.EMISSIVEFRESNEL = this._emissiveFresnelParameters && this._emissiveFresnelParameters.isEnabled), (o._needNormals = !0), (o.FRESNEL = !0)) : (o.FRESNEL = !1)), p.a.PrepareDefinesForMisc(e, r, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e), o), p.a.PrepareDefinesForAttributes(e, o, !0, !0, !0), p.a.PrepareDefinesForFrameBoundValues(r, a, o, i), o.isDirty) ) { var s = o._areLightsDisposed; o.markAsProcessed(); var c = new x.a(); o.REFLECTION && c.addFallback(0, "REFLECTION"), o.SPECULAR && c.addFallback(0, "SPECULAR"), o.BUMP && c.addFallback(0, "BUMP"), o.PARALLAX && c.addFallback(1, "PARALLAX"), o.PARALLAXOCCLUSION && c.addFallback(0, "PARALLAXOCCLUSION"), o.SPECULAROVERALPHA && c.addFallback(0, "SPECULAROVERALPHA"), o.FOG && c.addFallback(1, "FOG"), o.POINTSIZE && c.addFallback(0, "POINTSIZE"), o.LOGARITHMICDEPTH && c.addFallback(0, "LOGARITHMICDEPTH"), p.a.HandleFallbacksForShadows(o, c, this._maxSimultaneousLights), o.SPECULARTERM && c.addFallback(0, "SPECULARTERM"), o.DIFFUSEFRESNEL && c.addFallback(1, "DIFFUSEFRESNEL"), o.OPACITYFRESNEL && c.addFallback(2, "OPACITYFRESNEL"), o.REFLECTIONFRESNEL && c.addFallback(3, "REFLECTIONFRESNEL"), o.EMISSIVEFRESNEL && c.addFallback(4, "EMISSIVEFRESNEL"), o.FRESNEL && c.addFallback(4, "FRESNEL"), o.MULTIVIEW && c.addFallback(0, "MULTIVIEW"); var h = [l.b.PositionKind]; o.NORMAL && h.push(l.b.NormalKind), o.UV1 && h.push(l.b.UVKind), o.UV2 && h.push(l.b.UV2Kind), o.VERTEXCOLOR && h.push(l.b.ColorKind), p.a.PrepareAttributesForBones(h, e, o, c), p.a.PrepareAttributesForInstances(h, o), p.a.PrepareAttributesForMorphTargets(h, e, o); var d = "default", m = [ "world", "view", "viewProjection", "vEyePosition", "vLightsType", "vAmbientColor", "vDiffuseColor", "vSpecularColor", "vEmissiveColor", "visibility", "vFogInfos", "vFogColor", "pointSize", "vDiffuseInfos", "vAmbientInfos", "vOpacityInfos", "vReflectionInfos", "vEmissiveInfos", "vSpecularInfos", "vBumpInfos", "vLightmapInfos", "vRefractionInfos", "mBones", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "diffuseMatrix", "ambientMatrix", "opacityMatrix", "reflectionMatrix", "emissiveMatrix", "specularMatrix", "bumpMatrix", "normalMatrix", "lightmapMatrix", "refractionMatrix", "diffuseLeftColor", "diffuseRightColor", "opacityParts", "reflectionLeftColor", "reflectionRightColor", "emissiveLeftColor", "emissiveRightColor", "refractionLeftColor", "refractionRightColor", "vReflectionPosition", "vReflectionSize", "logarithmicDepthConstant", "vTangentSpaceParams", "alphaCutOff", "boneTextureWidth", ], g = [ "diffuseSampler", "ambientSampler", "opacitySampler", "reflectionCubeSampler", "reflection2DSampler", "emissiveSampler", "specularSampler", "bumpSampler", "lightmapSampler", "refractionCubeSampler", "refraction2DSampler", "boneSampler", ], b = ["Material", "Scene"]; u.a && (u.a.PrepareUniforms(m, o), u.a.PrepareSamplers(g, o)), p.a.PrepareUniformsAndSamplersList({ uniformsNames: m, uniformBuffersNames: b, samplers: g, defines: o, maxSimultaneousLights: this._maxSimultaneousLights }), this.customShaderNameResolve && (d = this.customShaderNameResolve(d, m, b, g, o)); var _ = o.toString(), v = n.effect, y = r .getEngine() .createEffect( d, { attributes: h, uniformsNames: m, uniformBuffersNames: b, samplers: g, defines: _, fallbacks: c, onCompiled: this.onCompiled, onError: this.onError, indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: o.NUM_MORPH_INFLUENCERS }, }, a ); if (y) if (this.allowShaderHotSwapping && v && !y.isReady()) { if (((y = v), (this._rebuildInParallel = !0), o.markAsUnprocessed(), s)) return (o._areLightsDisposed = !0), !1; } else (this._rebuildInParallel = !1), r.resetCachedMaterial(), n.setEffect(y, o), this.buildUniformLayout(); } return !(!n.effect || !n.effect.isReady()) && ((o._renderId = r.getRenderId()), (n.effect._wasPreviouslyReady = !0), !0); }), (t.prototype.buildUniformLayout = function () { var e = this._uniformBuffer; e.addUniform("diffuseLeftColor", 4), e.addUniform("diffuseRightColor", 4), e.addUniform("opacityParts", 4), e.addUniform("reflectionLeftColor", 4), e.addUniform("reflectionRightColor", 4), e.addUniform("refractionLeftColor", 4), e.addUniform("refractionRightColor", 4), e.addUniform("emissiveLeftColor", 4), e.addUniform("emissiveRightColor", 4), e.addUniform("vDiffuseInfos", 2), e.addUniform("vAmbientInfos", 2), e.addUniform("vOpacityInfos", 2), e.addUniform("vReflectionInfos", 2), e.addUniform("vReflectionPosition", 3), e.addUniform("vReflectionSize", 3), e.addUniform("vEmissiveInfos", 2), e.addUniform("vLightmapInfos", 2), e.addUniform("vSpecularInfos", 2), e.addUniform("vBumpInfos", 3), e.addUniform("diffuseMatrix", 16), e.addUniform("ambientMatrix", 16), e.addUniform("opacityMatrix", 16), e.addUniform("reflectionMatrix", 16), e.addUniform("emissiveMatrix", 16), e.addUniform("lightmapMatrix", 16), e.addUniform("specularMatrix", 16), e.addUniform("bumpMatrix", 16), e.addUniform("vTangentSpaceParams", 2), e.addUniform("pointSize", 1), e.addUniform("refractionMatrix", 16), e.addUniform("vRefractionInfos", 4), e.addUniform("vSpecularColor", 4), e.addUniform("vEmissiveColor", 3), e.addUniform("visibility", 1), e.addUniform("vDiffuseColor", 4), e.create(); }), (t.prototype.unbind = function () { if (this._activeEffect) { var t = !1; this._reflectionTexture && this._reflectionTexture.isRenderTarget && (this._activeEffect.setTexture("reflection2DSampler", null), (t = !0)), this._refractionTexture && this._refractionTexture.isRenderTarget && (this._activeEffect.setTexture("refraction2DSampler", null), (t = !0)), t && this._markAllSubMeshesAsTexturesDirty(); } e.prototype.unbind.call(this); }), (t.prototype.bindForSubMesh = function (e, n, i) { var r = this.getScene(), o = i._materialDefines; if (o) { var s = i.effect; if (s) { (this._activeEffect = s), o.INSTANCES || this.bindOnlyWorldMatrix(e), o.OBJECTSPACE_NORMALMAP && (e.toNormalMatrix(this._normalMatrix), this.bindOnlyNormalMatrix(this._normalMatrix)); var l = this._mustRebind(r, s, n.visibility); p.a.BindBonesParameters(n, s); var u = this._uniformBuffer; if (l) { if ((u.bindToEffect(s, "Material"), this.bindViewProjection(s), !u.useUbo || !this.isFrozen || !u.isSync)) { if ( (t.FresnelEnabled && o.FRESNEL && (this.diffuseFresnelParameters && this.diffuseFresnelParameters.isEnabled && (u.updateColor4("diffuseLeftColor", this.diffuseFresnelParameters.leftColor, this.diffuseFresnelParameters.power), u.updateColor4("diffuseRightColor", this.diffuseFresnelParameters.rightColor, this.diffuseFresnelParameters.bias)), this.opacityFresnelParameters && this.opacityFresnelParameters.isEnabled && u.updateColor4( "opacityParts", new c.a(this.opacityFresnelParameters.leftColor.toLuminance(), this.opacityFresnelParameters.rightColor.toLuminance(), this.opacityFresnelParameters.bias), this.opacityFresnelParameters.power ), this.reflectionFresnelParameters && this.reflectionFresnelParameters.isEnabled && (u.updateColor4("reflectionLeftColor", this.reflectionFresnelParameters.leftColor, this.reflectionFresnelParameters.power), u.updateColor4("reflectionRightColor", this.reflectionFresnelParameters.rightColor, this.reflectionFresnelParameters.bias)), this.refractionFresnelParameters && this.refractionFresnelParameters.isEnabled && (u.updateColor4("refractionLeftColor", this.refractionFresnelParameters.leftColor, this.refractionFresnelParameters.power), u.updateColor4("refractionRightColor", this.refractionFresnelParameters.rightColor, this.refractionFresnelParameters.bias)), this.emissiveFresnelParameters && this.emissiveFresnelParameters.isEnabled && (u.updateColor4("emissiveLeftColor", this.emissiveFresnelParameters.leftColor, this.emissiveFresnelParameters.power), u.updateColor4("emissiveRightColor", this.emissiveFresnelParameters.rightColor, this.emissiveFresnelParameters.bias))), r.texturesEnabled) ) { if ( (this._diffuseTexture && t.DiffuseTextureEnabled && (u.updateFloat2("vDiffuseInfos", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level), p.a.BindTextureMatrix(this._diffuseTexture, u, "diffuse"), this._diffuseTexture.hasAlpha && s.setFloat("alphaCutOff", this.alphaCutOff)), this._ambientTexture && t.AmbientTextureEnabled && (u.updateFloat2("vAmbientInfos", this._ambientTexture.coordinatesIndex, this._ambientTexture.level), p.a.BindTextureMatrix(this._ambientTexture, u, "ambient")), this._opacityTexture && t.OpacityTextureEnabled && (u.updateFloat2("vOpacityInfos", this._opacityTexture.coordinatesIndex, this._opacityTexture.level), p.a.BindTextureMatrix(this._opacityTexture, u, "opacity")), this._reflectionTexture && t.ReflectionTextureEnabled && (u.updateFloat2("vReflectionInfos", this._reflectionTexture.level, this.roughness), u.updateMatrix("reflectionMatrix", this._reflectionTexture.getReflectionTextureMatrix()), this._reflectionTexture.boundingBoxSize)) ) { var h = this._reflectionTexture; u.updateVector3("vReflectionPosition", h.boundingBoxPosition), u.updateVector3("vReflectionSize", h.boundingBoxSize); } if ( (this._emissiveTexture && t.EmissiveTextureEnabled && (u.updateFloat2("vEmissiveInfos", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level), p.a.BindTextureMatrix(this._emissiveTexture, u, "emissive")), this._lightmapTexture && t.LightmapTextureEnabled && (u.updateFloat2("vLightmapInfos", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level), p.a.BindTextureMatrix(this._lightmapTexture, u, "lightmap")), this._specularTexture && t.SpecularTextureEnabled && (u.updateFloat2("vSpecularInfos", this._specularTexture.coordinatesIndex, this._specularTexture.level), p.a.BindTextureMatrix(this._specularTexture, u, "specular")), this._bumpTexture && r.getEngine().getCaps().standardDerivatives && t.BumpTextureEnabled && (u.updateFloat3("vBumpInfos", this._bumpTexture.coordinatesIndex, 1 / this._bumpTexture.level, this.parallaxScaleBias), p.a.BindTextureMatrix(this._bumpTexture, u, "bump"), r._mirroredCameraPosition ? u.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? 1 : -1, this._invertNormalMapY ? 1 : -1) : u.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? -1 : 1, this._invertNormalMapY ? -1 : 1)), this._refractionTexture && t.RefractionTextureEnabled) ) { var d = 1; this._refractionTexture.isCube || (u.updateMatrix("refractionMatrix", this._refractionTexture.getReflectionTextureMatrix()), this._refractionTexture.depth && (d = this._refractionTexture.depth)), u.updateFloat4("vRefractionInfos", this._refractionTexture.level, this.indexOfRefraction, d, this.invertRefractionY ? -1 : 1); } } this.pointsCloud && u.updateFloat("pointSize", this.pointSize), o.SPECULARTERM && u.updateColor4("vSpecularColor", this.specularColor, this.specularPower), u.updateColor3("vEmissiveColor", t.EmissiveTextureEnabled ? this.emissiveColor : c.a.BlackReadOnly), u.updateFloat("visibility", n.visibility), u.updateColor4("vDiffuseColor", this.diffuseColor, this.alpha); } if ( r.texturesEnabled && (this._diffuseTexture && t.DiffuseTextureEnabled && s.setTexture("diffuseSampler", this._diffuseTexture), this._ambientTexture && t.AmbientTextureEnabled && s.setTexture("ambientSampler", this._ambientTexture), this._opacityTexture && t.OpacityTextureEnabled && s.setTexture("opacitySampler", this._opacityTexture), this._reflectionTexture && t.ReflectionTextureEnabled && (this._reflectionTexture.isCube ? s.setTexture("reflectionCubeSampler", this._reflectionTexture) : s.setTexture("reflection2DSampler", this._reflectionTexture)), this._emissiveTexture && t.EmissiveTextureEnabled && s.setTexture("emissiveSampler", this._emissiveTexture), this._lightmapTexture && t.LightmapTextureEnabled && s.setTexture("lightmapSampler", this._lightmapTexture), this._specularTexture && t.SpecularTextureEnabled && s.setTexture("specularSampler", this._specularTexture), this._bumpTexture && r.getEngine().getCaps().standardDerivatives && t.BumpTextureEnabled && s.setTexture("bumpSampler", this._bumpTexture), this._refractionTexture && t.RefractionTextureEnabled) ) { d = 1; this._refractionTexture.isCube ? s.setTexture("refractionCubeSampler", this._refractionTexture) : s.setTexture("refraction2DSampler", this._refractionTexture); } p.a.BindClipPlane(s, r), r.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor), p.a.BindEyePosition(s, r), s.setColor3("vAmbientColor", this._globalAmbientColor); } (!l && this.isFrozen) || (r.lightsEnabled && !this._disableLighting && p.a.BindLights(r, n, s, o, this._maxSimultaneousLights, this._rebuildInParallel), ((r.fogEnabled && n.applyFog && r.fogMode !== a.a.FOGMODE_NONE) || this._reflectionTexture || this._refractionTexture) && this.bindView(s), p.a.BindFogParameters(r, n, s), o.NUM_MORPH_INFLUENCERS && p.a.BindMorphTargetParameters(n, s), this.useLogarithmicDepth && p.a.BindLogDepth(o, s, r), this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(this._activeEffect)), u.update(), this._afterBind(n, this._activeEffect); } } }), (t.prototype.getAnimatables = function () { var e = []; return ( this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0 && e.push(this._diffuseTexture), this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0 && e.push(this._ambientTexture), this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0 && e.push(this._opacityTexture), this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0 && e.push(this._reflectionTexture), this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0 && e.push(this._emissiveTexture), this._specularTexture && this._specularTexture.animations && this._specularTexture.animations.length > 0 && e.push(this._specularTexture), this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture), this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0 && e.push(this._lightmapTexture), this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0 && e.push(this._refractionTexture), e ); }), (t.prototype.getActiveTextures = function () { var t = e.prototype.getActiveTextures.call(this); return ( this._diffuseTexture && t.push(this._diffuseTexture), this._ambientTexture && t.push(this._ambientTexture), this._opacityTexture && t.push(this._opacityTexture), this._reflectionTexture && t.push(this._reflectionTexture), this._emissiveTexture && t.push(this._emissiveTexture), this._specularTexture && t.push(this._specularTexture), this._bumpTexture && t.push(this._bumpTexture), this._lightmapTexture && t.push(this._lightmapTexture), this._refractionTexture && t.push(this._refractionTexture), t ); }), (t.prototype.hasTexture = function (t) { return ( !!e.prototype.hasTexture.call(this, t) || this._diffuseTexture === t || this._ambientTexture === t || this._opacityTexture === t || this._reflectionTexture === t || this._emissiveTexture === t || this._specularTexture === t || this._bumpTexture === t || this._lightmapTexture === t || this._refractionTexture === t ); }), (t.prototype.dispose = function (t, n) { n && (this._diffuseTexture && this._diffuseTexture.dispose(), this._ambientTexture && this._ambientTexture.dispose(), this._opacityTexture && this._opacityTexture.dispose(), this._reflectionTexture && this._reflectionTexture.dispose(), this._emissiveTexture && this._emissiveTexture.dispose(), this._specularTexture && this._specularTexture.dispose(), this._bumpTexture && this._bumpTexture.dispose(), this._lightmapTexture && this._lightmapTexture.dispose(), this._refractionTexture && this._refractionTexture.dispose()), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e.prototype.dispose.call(this, t, n); }), (t.prototype.clone = function (e) { var n = this, i = r.a.Clone(function () { return new t(e, n.getScene()); }, this); return (i.name = e), (i.id = e), i; }), (t.prototype.serialize = function () { return r.a.Serialize(this); }), (t.Parse = function (e, n, i) { return r.a.Parse( function () { return new t(e.name, n); }, e, n, i ); }), Object.defineProperty(t, "DiffuseTextureEnabled", { get: function () { return g.a.DiffuseTextureEnabled; }, set: function (e) { g.a.DiffuseTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "AmbientTextureEnabled", { get: function () { return g.a.AmbientTextureEnabled; }, set: function (e) { g.a.AmbientTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "OpacityTextureEnabled", { get: function () { return g.a.OpacityTextureEnabled; }, set: function (e) { g.a.OpacityTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "ReflectionTextureEnabled", { get: function () { return g.a.ReflectionTextureEnabled; }, set: function (e) { g.a.ReflectionTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "EmissiveTextureEnabled", { get: function () { return g.a.EmissiveTextureEnabled; }, set: function (e) { g.a.EmissiveTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "SpecularTextureEnabled", { get: function () { return g.a.SpecularTextureEnabled; }, set: function (e) { g.a.SpecularTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "BumpTextureEnabled", { get: function () { return g.a.BumpTextureEnabled; }, set: function (e) { g.a.BumpTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "LightmapTextureEnabled", { get: function () { return g.a.LightmapTextureEnabled; }, set: function (e) { g.a.LightmapTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "RefractionTextureEnabled", { get: function () { return g.a.RefractionTextureEnabled; }, set: function (e) { g.a.RefractionTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "ColorGradingTextureEnabled", { get: function () { return g.a.ColorGradingTextureEnabled; }, set: function (e) { g.a.ColorGradingTextureEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "FresnelEnabled", { get: function () { return g.a.FresnelEnabled; }, set: function (e) { g.a.FresnelEnabled = e; }, enumerable: !0, configurable: !0, }), Object(i.c)([Object(r.m)("diffuseTexture")], t.prototype, "_diffuseTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "diffuseTexture", void 0), Object(i.c)([Object(r.m)("ambientTexture")], t.prototype, "_ambientTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTexture", void 0), Object(i.c)([Object(r.m)("opacityTexture")], t.prototype, "_opacityTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "opacityTexture", void 0), Object(i.c)([Object(r.m)("reflectionTexture")], t.prototype, "_reflectionTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionTexture", void 0), Object(i.c)([Object(r.m)("emissiveTexture")], t.prototype, "_emissiveTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveTexture", void 0), Object(i.c)([Object(r.m)("specularTexture")], t.prototype, "_specularTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "specularTexture", void 0), Object(i.c)([Object(r.m)("bumpTexture")], t.prototype, "_bumpTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "bumpTexture", void 0), Object(i.c)([Object(r.m)("lightmapTexture")], t.prototype, "_lightmapTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "lightmapTexture", void 0), Object(i.c)([Object(r.m)("refractionTexture")], t.prototype, "_refractionTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "refractionTexture", void 0), Object(i.c)([Object(r.e)("ambient")], t.prototype, "ambientColor", void 0), Object(i.c)([Object(r.e)("diffuse")], t.prototype, "diffuseColor", void 0), Object(i.c)([Object(r.e)("specular")], t.prototype, "specularColor", void 0), Object(i.c)([Object(r.e)("emissive")], t.prototype, "emissiveColor", void 0), Object(i.c)([Object(r.c)()], t.prototype, "specularPower", void 0), Object(i.c)([Object(r.c)("useAlphaFromDiffuseTexture")], t.prototype, "_useAlphaFromDiffuseTexture", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAlphaFromDiffuseTexture", void 0), Object(i.c)([Object(r.c)("useEmissiveAsIllumination")], t.prototype, "_useEmissiveAsIllumination", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useEmissiveAsIllumination", void 0), Object(i.c)([Object(r.c)("linkEmissiveWithDiffuse")], t.prototype, "_linkEmissiveWithDiffuse", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "linkEmissiveWithDiffuse", void 0), Object(i.c)([Object(r.c)("useSpecularOverAlpha")], t.prototype, "_useSpecularOverAlpha", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useSpecularOverAlpha", void 0), Object(i.c)([Object(r.c)("useReflectionOverAlpha")], t.prototype, "_useReflectionOverAlpha", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useReflectionOverAlpha", void 0), Object(i.c)([Object(r.c)("disableLighting")], t.prototype, "_disableLighting", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "disableLighting", void 0), Object(i.c)([Object(r.c)("useObjectSpaceNormalMap")], t.prototype, "_useObjectSpaceNormalMap", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useObjectSpaceNormalMap", void 0), Object(i.c)([Object(r.c)("useParallax")], t.prototype, "_useParallax", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallax", void 0), Object(i.c)([Object(r.c)("useParallaxOcclusion")], t.prototype, "_useParallaxOcclusion", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallaxOcclusion", void 0), Object(i.c)([Object(r.c)()], t.prototype, "parallaxScaleBias", void 0), Object(i.c)([Object(r.c)("roughness")], t.prototype, "_roughness", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "roughness", void 0), Object(i.c)([Object(r.c)()], t.prototype, "indexOfRefraction", void 0), Object(i.c)([Object(r.c)()], t.prototype, "invertRefractionY", void 0), Object(i.c)([Object(r.c)()], t.prototype, "alphaCutOff", void 0), Object(i.c)([Object(r.c)("useLightmapAsShadowmap")], t.prototype, "_useLightmapAsShadowmap", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLightmapAsShadowmap", void 0), Object(i.c)([Object(r.h)("diffuseFresnelParameters")], t.prototype, "_diffuseFresnelParameters", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "diffuseFresnelParameters", void 0), Object(i.c)([Object(r.h)("opacityFresnelParameters")], t.prototype, "_opacityFresnelParameters", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelAndMiscDirty")], t.prototype, "opacityFresnelParameters", void 0), Object(i.c)([Object(r.h)("reflectionFresnelParameters")], t.prototype, "_reflectionFresnelParameters", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "reflectionFresnelParameters", void 0), Object(i.c)([Object(r.h)("refractionFresnelParameters")], t.prototype, "_refractionFresnelParameters", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "refractionFresnelParameters", void 0), Object(i.c)([Object(r.h)("emissiveFresnelParameters")], t.prototype, "_emissiveFresnelParameters", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "emissiveFresnelParameters", void 0), Object(i.c)([Object(r.c)("useReflectionFresnelFromSpecular")], t.prototype, "_useReflectionFresnelFromSpecular", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsFresnelDirty")], t.prototype, "useReflectionFresnelFromSpecular", void 0), Object(i.c)([Object(r.c)("useGlossinessFromSpecularMapAlpha")], t.prototype, "_useGlossinessFromSpecularMapAlpha", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useGlossinessFromSpecularMapAlpha", void 0), Object(i.c)([Object(r.c)("maxSimultaneousLights")], t.prototype, "_maxSimultaneousLights", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "maxSimultaneousLights", void 0), Object(i.c)([Object(r.c)("invertNormalMapX")], t.prototype, "_invertNormalMapX", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapX", void 0), Object(i.c)([Object(r.c)("invertNormalMapY")], t.prototype, "_invertNormalMapY", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapY", void 0), Object(i.c)([Object(r.c)("twoSidedLighting")], t.prototype, "_twoSidedLighting", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "twoSidedLighting", void 0), Object(i.c)([Object(r.c)()], t.prototype, "useLogarithmicDepth", null), t ); })(d.a); (m.a.RegisteredTypes["BABYLON.StandardMaterial"] = S), (a.a.DefaultMaterialFactory = function (e) { return new S("default material", e); }); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return i; }), n.d(t, "c", function () { return r; }), n.d(t, "a", function () { return o; }); var i = 1 / 2.2, r = 2.2, o = 0.001; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(1), o = n(3), a = n(6), s = n(25), c = n(22), l = (function () { function e(e, t) { void 0 === t && (t = null), (this.state = ""), (this.metadata = null), (this.reservedDataStore = null), (this._doNotSerialize = !1), (this._isDisposed = !1), (this.animations = new Array()), (this._ranges = {}), (this.onReady = null), (this._isEnabled = !0), (this._isParentEnabled = !0), (this._isReady = !0), (this._currentRenderId = -1), (this._parentUpdateId = -1), (this._childUpdateId = -1), (this._waitingParentId = null), (this._cache = {}), (this._parentNode = null), (this._children = null), (this._worldMatrix = r.a.Identity()), (this._worldMatrixDeterminant = 0), (this._worldMatrixDeterminantIsDirty = !0), (this._sceneRootNodesIndex = -1), (this._animationPropertiesOverride = null), (this._isNode = !0), (this.onDisposeObservable = new a.c()), (this._onDisposeObserver = null), (this._behaviors = new Array()), (this.name = e), (this.id = e), (this._scene = t || s.a.LastCreatedScene), (this.uniqueId = this._scene.getUniqueId()), this._initCache(); } return ( (e.AddNodeConstructor = function (e, t) { this._NodeConstructors[e] = t; }), (e.Construct = function (e, t, n, i) { var r = this._NodeConstructors[e]; return r ? r(t, n, i) : null; }), Object.defineProperty(e.prototype, "doNotSerialize", { get: function () { return !!this._doNotSerialize || (!!this._parentNode && this._parentNode.doNotSerialize); }, set: function (e) { this._doNotSerialize = e; }, enumerable: !0, configurable: !0, }), (e.prototype.isDisposed = function () { return this._isDisposed; }), Object.defineProperty(e.prototype, "parent", { get: function () { return this._parentNode; }, set: function (e) { if (this._parentNode !== e) { var t = this._parentNode; if (this._parentNode && void 0 !== this._parentNode._children && null !== this._parentNode._children) { var n = this._parentNode._children.indexOf(this); -1 !== n && this._parentNode._children.splice(n, 1), e || this._isDisposed || this._addToSceneRootNodes(); } (this._parentNode = e), this._parentNode && ((void 0 !== this._parentNode._children && null !== this._parentNode._children) || (this._parentNode._children = new Array()), this._parentNode._children.push(this), t || this._removeFromSceneRootNodes()), this._syncParentEnabledState(); } }, enumerable: !0, configurable: !0, }), (e.prototype._addToSceneRootNodes = function () { -1 === this._sceneRootNodesIndex && ((this._sceneRootNodesIndex = this._scene.rootNodes.length), this._scene.rootNodes.push(this)); }), (e.prototype._removeFromSceneRootNodes = function () { if (-1 !== this._sceneRootNodesIndex) { var e = this._scene.rootNodes, t = e.length - 1; (e[this._sceneRootNodesIndex] = e[t]), (e[this._sceneRootNodesIndex]._sceneRootNodesIndex = this._sceneRootNodesIndex), this._scene.rootNodes.pop(), (this._sceneRootNodesIndex = -1); } }), Object.defineProperty(e.prototype, "animationPropertiesOverride", { get: function () { return this._animationPropertiesOverride ? this._animationPropertiesOverride : this._scene.animationPropertiesOverride; }, set: function (e) { this._animationPropertiesOverride = e; }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "Node"; }), Object.defineProperty(e.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype.getEngine = function () { return this._scene.getEngine(); }), (e.prototype.addBehavior = function (e, t) { var n = this; return ( void 0 === t && (t = !1), -1 !== this._behaviors.indexOf(e) || (e.init(), this._scene.isLoading && !t ? this._scene.onDataLoadedObservable.addOnce(function () { e.attach(n); }) : e.attach(this), this._behaviors.push(e)), this ); }), (e.prototype.removeBehavior = function (e) { var t = this._behaviors.indexOf(e); return -1 === t || (this._behaviors[t].detach(), this._behaviors.splice(t, 1)), this; }), Object.defineProperty(e.prototype, "behaviors", { get: function () { return this._behaviors; }, enumerable: !0, configurable: !0, }), (e.prototype.getBehaviorByName = function (e) { for (var t = 0, n = this._behaviors; t < n.length; t++) { var i = n[t]; if (i.name === e) return i; } return null; }), (e.prototype.getWorldMatrix = function () { return this._currentRenderId !== this._scene.getRenderId() && this.computeWorldMatrix(), this._worldMatrix; }), (e.prototype._getWorldMatrixDeterminant = function () { return this._worldMatrixDeterminantIsDirty && ((this._worldMatrixDeterminantIsDirty = !1), (this._worldMatrixDeterminant = this._worldMatrix.determinant())), this._worldMatrixDeterminant; }), Object.defineProperty(e.prototype, "worldMatrixFromCache", { get: function () { return this._worldMatrix; }, enumerable: !0, configurable: !0, }), (e.prototype._initCache = function () { (this._cache = {}), (this._cache.parent = void 0); }), (e.prototype.updateCache = function (e) { (!e && this.isSynchronized()) || ((this._cache.parent = this.parent), this._updateCache()); }), (e.prototype._getActionManagerForTrigger = function (e, t) { return void 0 === t && (t = !0), this.parent ? this.parent._getActionManagerForTrigger(e, !1) : null; }), (e.prototype._updateCache = function (e) {}), (e.prototype._isSynchronized = function () { return !0; }), (e.prototype._markSyncedWithParent = function () { this._parentNode && (this._parentUpdateId = this._parentNode._childUpdateId); }), (e.prototype.isSynchronizedWithParent = function () { return !this._parentNode || (this._parentUpdateId === this._parentNode._childUpdateId && this._parentNode.isSynchronized()); }), (e.prototype.isSynchronized = function () { return this._cache.parent != this._parentNode ? ((this._cache.parent = this._parentNode), !1) : !(this._parentNode && !this.isSynchronizedWithParent()) && this._isSynchronized(); }), (e.prototype.isReady = function (e) { return void 0 === e && (e = !1), this._isReady; }), (e.prototype.isEnabled = function (e) { return void 0 === e && (e = !0), !1 === e ? this._isEnabled : !!this._isEnabled && this._isParentEnabled; }), (e.prototype._syncParentEnabledState = function () { (this._isParentEnabled = !this._parentNode || this._parentNode.isEnabled()), this._children && this._children.forEach(function (e) { e._syncParentEnabledState(); }); }), (e.prototype.setEnabled = function (e) { (this._isEnabled = e), this._syncParentEnabledState(); }), (e.prototype.isDescendantOf = function (e) { return !!this.parent && (this.parent === e || this.parent.isDescendantOf(e)); }), (e.prototype._getDescendants = function (e, t, n) { if ((void 0 === t && (t = !1), this._children)) for (var i = 0; i < this._children.length; i++) { var r = this._children[i]; (n && !n(r)) || e.push(r), t || r._getDescendants(e, !1, n); } }), (e.prototype.getDescendants = function (e, t) { var n = new Array(); return this._getDescendants(n, e, t), n; }), (e.prototype.getChildMeshes = function (e, t) { var n = []; return ( this._getDescendants(n, e, function (e) { return (!t || t(e)) && void 0 !== e.cullingStrategy; }), n ); }), (e.prototype.getChildren = function (e, t) { return void 0 === t && (t = !0), this.getDescendants(t, e); }), (e.prototype._setReady = function (e) { e !== this._isReady && (e ? (this.onReady && this.onReady(this), (this._isReady = !0)) : (this._isReady = !1)); }), (e.prototype.getAnimationByName = function (e) { for (var t = 0; t < this.animations.length; t++) { var n = this.animations[t]; if (n.name === e) return n; } return null; }), (e.prototype.createAnimationRange = function (t, n, i) { if (!this._ranges[t]) { this._ranges[t] = e._AnimationRangeFactory(t, n, i); for (var r = 0, o = this.animations.length; r < o; r++) this.animations[r] && this.animations[r].createRange(t, n, i); } }), (e.prototype.deleteAnimationRange = function (e, t) { void 0 === t && (t = !0); for (var n = 0, i = this.animations.length; n < i; n++) this.animations[n] && this.animations[n].deleteRange(e, t); this._ranges[e] = null; }), (e.prototype.getAnimationRange = function (e) { return this._ranges[e]; }), (e.prototype.getAnimationRanges = function () { var e, t = []; for (e in this._ranges) t.push(this._ranges[e]); return t; }), (e.prototype.beginAnimation = function (e, t, n, i) { var r = this.getAnimationRange(e); return r ? this._scene.beginAnimation(this, r.from, r.to, t, n, i) : null; }), (e.prototype.serializeAnimationRanges = function () { var e = []; for (var t in this._ranges) { var n = this._ranges[t]; if (n) { var i = {}; (i.name = t), (i.from = n.from), (i.to = n.to), e.push(i); } } return e; }), (e.prototype.computeWorldMatrix = function (e) { return this._worldMatrix || (this._worldMatrix = r.a.Identity()), this._worldMatrix; }), (e.prototype.dispose = function (e, t) { if ((void 0 === t && (t = !1), (this._isDisposed = !0), !e)) for (var n = 0, i = this.getDescendants(!0); n < i.length; n++) { i[n].dispose(e, t); } this.parent ? (this.parent = null) : this._removeFromSceneRootNodes(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(); for (var r = 0, o = this._behaviors; r < o.length; r++) { o[r].detach(); } this._behaviors = []; }), (e.ParseAnimationRanges = function (e, t, n) { if (t.ranges) for (var i = 0; i < t.ranges.length; i++) { var r = t.ranges[i]; e.createAnimationRange(r.name, r.from, r.to); } }), (e.prototype.getHierarchyBoundingVectors = function (e, t) { var n, i; void 0 === e && (e = !0), void 0 === t && (t = null), this.getScene().incrementRenderId(), this.computeWorldMatrix(!0); if (this.getBoundingInfo && this.subMeshes) { var o = this.getBoundingInfo(); (n = o.boundingBox.minimumWorld.clone()), (i = o.boundingBox.maximumWorld.clone()); } else (n = new r.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (i = new r.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE)); if (e) for (var a = 0, s = this.getDescendants(!1); a < s.length; a++) { var c = s[a]; if ((c.computeWorldMatrix(!0), (!t || t(c)) && c.getBoundingInfo && 0 !== c.getTotalVertices())) { var l = c.getBoundingInfo().boundingBox, u = l.minimumWorld, h = l.maximumWorld; r.e.CheckExtends(u, n, i), r.e.CheckExtends(h, n, i); } } return { min: n, max: i }; }), (e._AnimationRangeFactory = function (e, t, n) { throw c.a.WarnImport("AnimationRange"); }), (e._NodeConstructors = {}), Object(i.c)([Object(o.c)()], e.prototype, "name", void 0), Object(i.c)([Object(o.c)()], e.prototype, "id", void 0), Object(i.c)([Object(o.c)()], e.prototype, "uniqueId", void 0), Object(i.c)([Object(o.c)()], e.prototype, "state", void 0), Object(i.c)([Object(o.c)()], e.prototype, "metadata", void 0), e ); })(); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.uiState = void 0); const r = n(222), o = n(29), a = n(139), s = n(48), c = n(40); class l { constructor() { (this.titlePanelVisible = !1), (this.optionPanelVisible = !1), (this.hudPanelVisible = !1), (this.deathPanelVisible = !1), (this.deathPanelHidden = !1), (this.tutorialPanelVisible = !1), (this.debugPanelVisible = !1), (this.challengesPanelVisible = !1), (this.abilitiesPanelVisible = !1), (this.statsPanelVisible = !1), (this.settingsPanelVisible = !1), (this.flyCameraSkipPanelVisible = !1), (this.resumeCountDown = 0), (this.loadingBarPercent = 0), (this.loadingPanelVisible = !1), (this.customDialogVisible = !1), (this.customDialogTitle = ""), (this.customDialogMessage = ""), (this.chestAnimPanelVisible = !1), (this.chestAnimOpenVisible = !1), (this.adsShownCount = 0), (this.showContinuePlayButton = !0), (this.showRewardedAdButton = !0), (this.isPlayingAd = !1), (this.toastDistanceToShow = 250), (this.showDistanceCoveredToast = !1), (this.hudToastMessage = ""), (this.isDebugCameraEnabled = !1), (this.deathDebugInfo = ""); } } t.uiState = (function () { const e = new l(); (e.loadingPanelVisible = !0), (e.flyCameraSkipPanelVisible = !0); let t = !1; const n = r.writable(e), { subscribe: u, update: h } = n, d = () => { 0 == t && ((t = !0), o.EventHandler.instance.fireEvent(o.EventID.OnResetCurrentGameData), s.GameConfig.HAS_AD_BLOCKER ? (o.EventHandler.instance.fireEvent(o.EventID.OnPlayGame, !1), m(!1), (t = !1)) : b(() => { c.GameController.instance.checkGameAfterAd({ eventId: o.EventID.OnPlayGame, args: !1 }), m(!1), (t = !1); })); }, p = (e, t) => { const n = new l(); return (n.titlePanelVisible = e), (n.tutorialPanelVisible = t.tutorialPanelVisible), n; }, f = (e = "", t = "") => { h((n) => ((n.customDialogTitle = e), (n.customDialogMessage = t), (n.customDialogVisible = !n.customDialogVisible), n)); }, m = (e) => { h((t) => { const n = p(!1, t); return ( (n.tutorialPanelVisible = t.tutorialPanelVisible), e && ((n.adsShownCount = t.adsShownCount), (n.showContinuePlayButton = t.showContinuePlayButton), (n.toastDistanceToShow = t.toastDistanceToShow), (n.showDistanceCoveredToast = t.showDistanceCoveredToast)), Object.assign(Object.assign({}, n), { hudPanelVisible: !0 }) ); }); }, g = (e) => { s.GameConfig.IS_AD_PLAYING = e; }, b = (e) => { g(!0), o.EventHandler.instance.fireEvent(o.EventID.MuteAll), o.EventHandler.instance.fireEvent(o.EventID.OnStopInputs), o.EventHandler.instance.fireEvent(o.EventID.UnmuteAll), o.EventHandler.instance.fireEvent(o.EventID.OnStartInputs), g(!1), null != e && e(); }, _ = (e, t) => { g(!0), o.EventHandler.instance.fireEvent(o.EventID.MuteAll), o.EventHandler.instance.fireEvent(o.EventID.OnStopInputs), n ? null != e && e() : null != t && t(), o.EventHandler.instance.fireEvent(o.EventID.UnmuteAll), o.EventHandler.instance.fireEvent(o.EventID.OnStartInputs), g(!1); }; return ( (() => { o.EventHandler.instance.addListener(o.EventID.OnPlayerDeath, () => { h((e) => { const t = !!e.showContinuePlayButton && e.adsShownCount < 4; return Object.assign(Object.assign({}, e), { deathPanelVisible: !0, hudPanelVisible: !1, showContinuePlayButton: t }); }) }), o.EventHandler.instance.addListener(o.EventID.OnCameraFlyEnd, () => { h((e) => Object.assign(Object.assign({}, e), { titlePanelVisible: !0, flyCameraSkipPanelVisible: !1 })); }), o.EventHandler.instance.addListener(o.EventID.OnTutorialStart, () => { h((e) => Object.assign(Object.assign({}, e), { tutorialPanelVisible: !0 })); }), o.EventHandler.instance.addListener(o.EventID.OnTutorialComplete, () => { h((e) => Object.assign(Object.assign({}, e), { tutorialPanelVisible: !1 })); }), o.EventHandler.instance.addListener(o.EventID.OnPlayGame, () => { m(!1); }), o.EventHandler.instance.addListener(o.EventID.OnPauseGame, (e) => { "tutorialPause" != e && h((e) => Object.assign(Object.assign({}, e), { hudPanelVisible: !1, optionPanelVisible: !0 })); }), o.EventHandler.instance.addListener(o.EventID.OnResumeGame, () => { m(!0); }), o.EventHandler.instance.addListener(o.EventID.OnResumeCounterChange, (e) => { h((t) => Object.assign(Object.assign({}, t), { resumeCountDown: e })); }), o.EventHandler.instance.addListener(o.EventID.OnLoadingUpdate, (e) => { h((t) => ((t.loadingBarPercent = e), t)); }), o.EventHandler.instance.addListener(o.EventID.OnGameLoaded, () => { h((e) => ((e.loadingPanelVisible = !1), e)); }), o.EventHandler.instance.addListener(o.EventID.NotEnoughCoins, () => { f("NOT ENOUGH COINS!!", "COMPLETE DAILY CHALLENGES\nAND GO ON RUN\nTO EARN MORE COINS."); }), o.EventHandler.instance.addListener(o.EventID.OnEnablingChestUI, () => { h((e) => ((e.chestAnimPanelVisible = !0), (e.deathPanelHidden = !0), e)); }), o.EventHandler.instance.addListener(o.EventID.OnDisablingChestUI, () => { h((e) => ((e.chestAnimPanelVisible = !1), (e.deathPanelHidden = !1), (e.chestAnimOpenVisible = !1), e)); }), o.EventHandler.instance.addListener(o.EventID.OnChestReward, () => { h((e) => ((e.chestAnimOpenVisible = !0), e)); }), o.EventHandler.instance.addListener(o.EventID.OnShowDistanceToast, (e) => i(this, void 0, void 0, function* () { o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.Wooosh), h((t) => ((t.showDistanceCoveredToast = !0), (t.toastDistanceToShow = e), t)), setTimeout(() => { h((e) => ((e.showDistanceCoveredToast = !1), (e.toastDistanceToShow = 250), e)); }, 5e3); }) ), o.EventHandler.instance.addListener(o.EventID.OnHudToastMessage, (e) => i(this, void 0, void 0, function* () { h((t) => ((t.hudToastMessage = e), t)), setTimeout(() => { h((e) => ((e.hudToastMessage = ""), e)); }, 5e3); }) ), o.EventHandler.instance.addListener(o.EventID.OnDebugCameraStateChange, (e) => { h((t) => ((t.isDebugCameraEnabled = e), t)); }), o.EventHandler.instance.addListener(o.EventID.PlayerDeathDebugInfo, (e) => { h((t) => ((t.deathDebugInfo = e), t)); }); })(), { subscribe: u, buttonClickSound: () => { o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.ButtonClick); }, startGamePlay: d, pauseGamePlay: () => o.EventHandler.instance.fireEvent(o.EventID.OnPauseGame), resumeGamePlay: () => o.EventHandler.instance.fireEvent(o.EventID.OnResumeGame, !0), continueGamePlay: () => { 0 == t && ((t = !0), s.GameConfig.HAS_AD_BLOCKER ? (o.EventHandler.instance.fireEvent(o.EventID.OnContinueGame, !1), m(!1), (t = !1)) : (_( () => { c.GameController.instance.checkGameAfterAd({ eventId: o.EventID.OnContinueGame }), m(!0), (t = !1); }, () => { h((e) => ((e.showContinuePlayButton = !1), e)), (t = !1); } ), h((e) => ((e.adsShownCount += 1), e)))); }, restartGamePlay: () => { (c.GameController.instance.isRestarting = !0), o.EventHandler.instance.fireEvent(o.EventID.OnResetGame), d(), (c.GameController.instance.isRestarting = !1); }, goHome: (e = !1) => { e && o.EventHandler.instance.fireEvent(o.EventID.OnResetGame), h((e) => p(!0, e)), o.EventHandler.instance.fireEvent(o.EventID.OnResetCurrentGameData); }, toggleDebugPanel: () => { h((e) => { const t = p(e.debugPanelVisible, e); return Object.assign(Object.assign({}, t), { debugPanelVisible: !e.debugPanelVisible }); }); }, toggleChallengesPanel: () => { h((e) => { const t = p(e.challengesPanelVisible, e); return Object.assign(Object.assign({}, t), { challengesPanelVisible: !e.challengesPanelVisible }); }); }, toggleAbilitiesPanel: () => { h((e) => { const t = p(e.abilitiesPanelVisible, e); return Object.assign(Object.assign({}, t), { abilitiesPanelVisible: !e.abilitiesPanelVisible }); }); }, toggleStatsPanel: () => { h((e) => { const t = p(e.statsPanelVisible, e); return Object.assign(Object.assign({}, t), { statsPanelVisible: !e.statsPanelVisible }); }); }, toggleSettingsPanel: () => { h((e) => { const t = p(e.settingsPanelVisible, e); return Object.assign(Object.assign({}, t), { settingsPanelVisible: !e.settingsPanelVisible }); }); }, toggleCustomDialog: f, playRewardedAd: (e) => { s.GameConfig.HAS_AD_BLOCKER ? (h((e) => ((e.showRewardedAdButton = !1), e)), null != e && e()) : _( () => { o.EventHandler.instance.fireEvent(o.EventID.OnRewardCoins, s.GameConfig.COIN_REWARDS_FROM_AD), null != e && e(); }, () => { h((e) => ((e.showRewardedAdButton = !1), e)), null != e && e(); } ); }, } ); })(); }, function (e, t, n) { "use strict"; n.d(t, "c", function () { return d; }), n.d(t, "b", function () { return i; }), n.d(t, "a", function () { return p; }); var i, r = n(12), o = n(6), a = n(118), s = n(18), c = n(14), l = n(25), u = n(10), h = n(103), d = (function () { function e(e, t, n) { (this.lengthComputable = e), (this.loaded = t), (this.total = n); } return ( (e.FromProgressEvent = function (t) { return new e(t.lengthComputable, t.loaded, t.total); }), e ); })(); !(function (e) { (e[(e.Clean = 0)] = "Clean"), (e[(e.Stop = 1)] = "Stop"), (e[(e.Sync = 2)] = "Sync"), (e[(e.NoSync = 3)] = "NoSync"); })(i || (i = {})); var p = (function () { function e() {} return ( Object.defineProperty(e, "ForceFullSceneLoadingForIncremental", { get: function () { return h.a.ForceFullSceneLoadingForIncremental; }, set: function (e) { h.a.ForceFullSceneLoadingForIncremental = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ShowLoadingScreen", { get: function () { return h.a.ShowLoadingScreen; }, set: function (e) { h.a.ShowLoadingScreen = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "loggingLevel", { get: function () { return h.a.loggingLevel; }, set: function (e) { h.a.loggingLevel = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "CleanBoneMatrixWeights", { get: function () { return h.a.CleanBoneMatrixWeights; }, set: function (e) { h.a.CleanBoneMatrixWeights = e; }, enumerable: !0, configurable: !0, }), (e._getDefaultPlugin = function () { return e._registeredPlugins[".babylon"]; }), (e._getPluginForExtension = function (t) { var n = e._registeredPlugins[t]; return ( n || (u.a.Warn("Unable to find a plugin to load " + t + " files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: http://doc.babylonjs.com/how_to/load_from_any_file_type"), e._getDefaultPlugin()) ); }), (e._getPluginForDirectLoad = function (t) { for (var n in e._registeredPlugins) { var i = e._registeredPlugins[n].plugin; if (i.canDirectLoad && i.canDirectLoad(t)) return e._registeredPlugins[n]; } return e._getDefaultPlugin(); }), (e._getPluginForFilename = function (t) { var n = t.indexOf("?"); -1 !== n && (t = t.substring(0, n)); var i = t.lastIndexOf("."), r = t.substring(i, t.length).toLowerCase(); return e._getPluginForExtension(r); }), (e._getDirectLoad = function (e) { return "data:" === e.substr(0, 5) ? e.substr(5) : null; }), (e._loadData = function (t, n, i, r, o, s, l) { var u, h = e._getDirectLoad(t.name), p = l ? e._getPluginForExtension(l) : h ? e._getPluginForDirectLoad(t.name) : e._getPluginForFilename(t.name); if (!(u = p.plugin.createPlugin ? p.plugin.createPlugin() : p.plugin)) throw "The loader plugin corresponding to the file type you are trying to load has not been found. If using es6, please import the plugin you wish to use before."; if ((e.OnPluginActivatedObservable.notifyObservers(u), h)) return i(u, u.directLoad ? u.directLoad(n, h) : h), u; var f = p.isBinary, m = function (e, t) { n.isDisposed ? o("Scene has been disposed") : i(u, e, t); }, g = null, b = !1, _ = u.onDisposeObservable; _ && _.add(function () { (b = !0), g && (g.abort(), (g = null)), s(); }); var v = r ? function (e) { r(d.FromProgressEvent(e)); } : void 0, y = function () { if (!b) { var e = function (e, t) { m(e, t ? t.responseURL : void 0); }, i = function (e) { o(e.message, e); }; g = u.requestFile ? u.requestFile(n, t.url, e, v, f, i) : n._requestFile(t.url, e, v, !0, f, i); } }, C = t.file || a.a.FilesToLoad[t.name.toLowerCase()]; if (-1 === t.rootUrl.indexOf("file:") || (-1 !== t.rootUrl.indexOf("file:") && !C)) { var P = n.getEngine(), x = P.enableOfflineSupport; if (x) { for (var T = !1, S = 0, O = n.disableOfflineSupportExceptionRules; S < O.length; S++) { if (O[S].test(t.url)) { T = !0; break; } } x = !T; } x && c.a.OfflineProviderFactory ? (n.offlineProvider = c.a.OfflineProviderFactory(t.url, y, P.disableManifestCheck)) : y(); } else if (C) { var E = function (e) { o(e.message, e); }; g = u.readFile ? u.readFile(n, C, m, v, f, E) : n._readFile(C, m, v, f, E); } else o("Unable to find file named " + t.name); return u; }), (e._getFileInfo = function (e, t) { var n, i, o = null; if (t) if (t.name) { var a = t; (n = e + a.name), (i = a.name), (o = a); } else { var s = t; if ("/" === s.substr(0, 1)) return r.b.Error("Wrong sceneFilename parameter"), null; (n = e + s), (i = s); } else (n = e), (i = r.b.GetFilename(e)), (e = r.b.GetFolderPath(e)); return { url: n, rootUrl: e, name: i, file: o }; }), (e.GetPluginForExtension = function (t) { return e._getPluginForExtension(t).plugin; }), (e.IsPluginForExtensionAvailable = function (t) { return !!e._registeredPlugins[t]; }), (e.RegisterPlugin = function (t) { if ("string" == typeof t.extensions) { var n = t.extensions; e._registeredPlugins[n.toLowerCase()] = { plugin: t, isBinary: !1 }; } else { var i = t.extensions; Object.keys(i).forEach(function (n) { e._registeredPlugins[n.toLowerCase()] = { plugin: t, isBinary: i[n].isBinary }; }); } }), (e.ImportMesh = function (t, n, i, r, o, a, s, c) { if ((void 0 === i && (i = ""), void 0 === r && (r = l.a.LastCreatedScene), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null), !r)) return u.a.Error("No scene available to import mesh to"), null; var h = e._getFileInfo(n, i); if (!h) return null; var d = {}; r._addPendingData(d); var p = function () { r._removePendingData(d); }, f = function (e, t) { var n = "Unable to import meshes from " + h.url + ": " + e; s ? s(r, n, t) : u.a.Error(n), p(); }, m = a ? function (e) { try { a(e); } catch (e) { f("Error in onProgress callback: " + e, e); } } : void 0, g = function (e, t, n, i) { if ((r.importedMeshesFiles.push(h.url), o)) try { o(e, t, n, i); } catch (e) { f("Error in onSuccess callback: " + e, e); } r._removePendingData(d); }; return e._loadData( h, r, function (e, n, i) { if ((e.rewriteRootURL && (h.rootUrl = e.rewriteRootURL(h.rootUrl, i)), e.importMesh)) { var o = e, a = new Array(), s = new Array(), c = new Array(); if (!o.importMesh(t, r, n, h.rootUrl, a, s, c, f)) return; (r.loadingPluginName = e.name), g(a, s, c, []); } else { e.importMeshAsync(t, r, n, h.rootUrl, m, h.name) .then(function (t) { (r.loadingPluginName = e.name), g(t.meshes, t.particleSystems, t.skeletons, t.animationGroups); }) .catch(function (e) { f(e.message, e); }); } }, m, f, p, c ); }), (e.ImportMeshAsync = function (t, n, i, r, o, a) { return ( void 0 === i && (i = ""), void 0 === r && (r = l.a.LastCreatedScene), void 0 === o && (o = null), void 0 === a && (a = null), new Promise(function (s, c) { e.ImportMesh( t, n, i, r, function (e, t, n, i) { s({ meshes: e, particleSystems: t, skeletons: n, animationGroups: i }); }, o, function (e, t, n) { c(n || new Error(t)); }, a ); }) ); }), (e.Load = function (t, n, i, o, a, c, u) { return ( void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedEngine), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === c && (c = null), void 0 === u && (u = null), i ? e.Append(t, n, new s.a(i), o, a, c, u) : (r.b.Error("No engine available"), null) ); }), (e.LoadAsync = function (t, n, i, r, o) { return ( void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedEngine), void 0 === r && (r = null), void 0 === o && (o = null), new Promise(function (a, s) { e.Load( t, n, i, function (e) { a(e); }, r, function (e, t, n) { s(n || new Error(t)); }, o ); }) ); }), (e.Append = function (t, n, i, r, o, a, s) { if ((void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedScene), void 0 === r && (r = null), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), !i)) return u.a.Error("No scene available to append to"), null; var c = e._getFileInfo(t, n); if (!c) return null; e.ShowLoadingScreen && i.getEngine().displayLoadingUI(); var h = {}; i._addPendingData(h); var d = function () { i._removePendingData(h), i.getEngine().hideLoadingUI(); }, p = function (e, t) { var n = "Unable to load from " + c.url + (e ? ": " + e : ""); a ? a(i, n, t) : u.a.Error(n), d(); }, f = o ? function (e) { try { o(e); } catch (e) { p("Error in onProgress callback", e); } } : void 0, m = function () { if (r) try { r(i); } catch (e) { p("Error in onSuccess callback", e); } i._removePendingData(h); }; return e._loadData( c, i, function (t, n) { if (t.load) { if (!t.load(i, n, c.rootUrl, p)) return; (i.loadingPluginName = t.name), m(); } else { t.loadAsync(i, n, c.rootUrl, f, c.name) .then(function () { (i.loadingPluginName = t.name), m(); }) .catch(function (e) { p(e.message, e); }); } e.ShowLoadingScreen && i.executeWhenReady(function () { i.getEngine().hideLoadingUI(); }); }, f, p, d, s ); }), (e.AppendAsync = function (t, n, i, r, o) { return ( void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedScene), void 0 === r && (r = null), void 0 === o && (o = null), new Promise(function (a, s) { e.Append( t, n, i, function (e) { a(e); }, r, function (e, t, n) { s(n || new Error(t)); }, o ); }) ); }), (e.LoadAssetContainer = function (t, n, i, r, o, a, s) { if ((void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedScene), void 0 === r && (r = null), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), !i)) return u.a.Error("No scene available to load asset container to"), null; var c = e._getFileInfo(t, n); if (!c) return null; var h = {}; i._addPendingData(h); var d = function () { i._removePendingData(h); }, p = function (e, t) { var n = "Unable to load assets from " + c.url + (e ? ": " + e : ""); t && t.message && (n += " (" + t.message + ")"), a ? a(i, n, t) : u.a.Error(n), d(); }, f = o ? function (e) { try { o(e); } catch (e) { p("Error in onProgress callback", e); } } : void 0, m = function (e) { if (r) try { r(e); } catch (e) { p("Error in onSuccess callback", e); } i._removePendingData(h); }; return e._loadData( c, i, function (t, n) { if (t.loadAssetContainer) { var r = t.loadAssetContainer(i, n, c.rootUrl, p); if (!r) return; (i.loadingPluginName = t.name), m(r); } else if (t.loadAssetContainerAsync) { t.loadAssetContainerAsync(i, n, c.rootUrl, f, c.name) .then(function (e) { (i.loadingPluginName = t.name), m(e); }) .catch(function (e) { p(e.message, e); }); } else p("LoadAssetContainer is not supported by this plugin. Plugin did not provide a loadAssetContainer or loadAssetContainerAsync method."); e.ShowLoadingScreen && i.executeWhenReady(function () { i.getEngine().hideLoadingUI(); }); }, f, p, d, s ); }), (e.LoadAssetContainerAsync = function (t, n, i, r, o) { return ( void 0 === n && (n = ""), void 0 === i && (i = l.a.LastCreatedScene), void 0 === r && (r = null), void 0 === o && (o = null), new Promise(function (a, s) { e.LoadAssetContainer( t, n, i, function (e) { a(e); }, r, function (e, t, n) { s(n || new Error(t)); }, o ); }) ); }), (e.ImportAnimations = function (e, t, n, r, o, a, s, c, h) { if ( (void 0 === t && (t = ""), void 0 === n && (n = l.a.LastCreatedScene), void 0 === r && (r = !0), void 0 === o && (o = i.Clean), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === h && (h = null), n) ) { if (r) { for (var d = 0, p = n.animatables; d < p.length; d++) { p[d].reset(); } n.stopAllAnimations(), n.animationGroups.slice().forEach(function (e) { e.dispose(); }), n.getNodes().forEach(function (e) { e.animations && (e.animations = []); }); } else switch (o) { case i.Clean: n.animationGroups.slice().forEach(function (e) { e.dispose(); }); break; case i.Stop: n.animationGroups.forEach(function (e) { e.stop(); }); break; case i.Sync: n.animationGroups.forEach(function (e) { e.reset(), e.restart(); }); break; case i.NoSync: break; default: return void u.a.Error("Unknown animation group loading mode value '" + o + "'"); } var f = n.animatables.length; this.LoadAssetContainer( e, t, n, function (e) { e.mergeAnimationsTo(n, n.animatables.slice(f), a), e.dispose(), n.onAnimationFileImportedObservable.notifyObservers(n), s && s(n); }, c, h ); } else u.a.Error("No scene available to load animations to"); }), (e.ImportAnimationsAsync = function (t, n, r, o, a, s, c, u, h) { return ( void 0 === n && (n = ""), void 0 === r && (r = l.a.LastCreatedScene), void 0 === o && (o = !0), void 0 === a && (a = i.Clean), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === u && (u = null), void 0 === h && (h = null), new Promise(function (i, c) { e.ImportAnimations( t, n, r, o, a, s, function (e) { i(e); }, u, function (e, t, n) { c(n || new Error(t)); } ); }) ); }), (e.NO_LOGGING = 0), (e.MINIMAL_LOGGING = 1), (e.SUMMARY_LOGGING = 2), (e.DETAILED_LOGGING = 3), (e.OnPluginActivatedObservable = new o.c()), (e._registeredPlugins = {}), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return _; }); var i = n(25), r = n(7), o = n(22), a = n(6), s = n(182), c = n(183), l = n(184), u = n(32), h = n(10), d = n(56), p = n(157), f = n(126), m = n(185), g = n(112), b = function () {}, _ = (function () { function e(t, n, i, r) { var o = this; void 0 === r && (r = !1), (this.forcePOTTextures = !1), (this.isFullscreen = !1), (this.cullBackFaces = !0), (this.renderEvenInBackground = !0), (this.preventCacheWipeBetweenFrames = !1), (this.validateShaderPrograms = !1), (this.useReverseDepthBuffer = !1), (this.disableUniformBuffers = !1), (this._uniformBuffers = new Array()), (this._webGLVersion = 1), (this._windowIsBackground = !1), (this._highPrecisionShadersAllowed = !0), (this._badOS = !1), (this._badDesktopOS = !1), (this._renderingQueueLaunched = !1), (this._activeRenderLoops = new Array()), (this.onContextLostObservable = new a.c()), (this.onContextRestoredObservable = new a.c()), (this._contextWasLost = !1), (this._doNotHandleContextLost = !1), (this.disableVertexArrayObjects = !1), (this._colorWrite = !0), (this._colorWriteChanged = !0), (this._depthCullingState = new s.a()), (this._stencilState = new c.a()), (this._alphaState = new l.a()), (this._alphaMode = 1), (this._alphaEquation = 0), (this._internalTexturesCache = new Array()), (this._activeChannel = 0), (this._currentTextureChannel = -1), (this._boundTexturesCache = {}), (this._compiledEffects = {}), (this._vertexAttribArraysEnabled = []), (this._uintIndicesCurrentlySet = !1), (this._currentBoundBuffer = new Array()), (this._currentFramebuffer = null), (this._currentBufferPointers = new Array()), (this._currentInstanceLocations = new Array()), (this._currentInstanceBuffers = new Array()), (this._vaoRecordInProgress = !1), (this._mustWipeVertexAttributes = !1), (this._nextFreeTextureSlots = new Array()), (this._maxSimultaneousTextures = 0), (this._activeRequests = new Array()), (this._texturesSupported = new Array()), (this.premultipliedAlpha = !0), (this.onBeforeTextureInitObservable = new a.c()), (this._viewportCached = { x: 0, y: 0, z: 0, w: 0 }), (this._unpackFlipYCached = null), (this.enableUnpackFlipYCached = !0), (this._getDepthStencilBuffer = function (e, t, n, i, r, a) { var s = o._gl, c = s.createRenderbuffer(); return ( s.bindRenderbuffer(s.RENDERBUFFER, c), n > 1 && s.renderbufferStorageMultisample ? s.renderbufferStorageMultisample(s.RENDERBUFFER, n, r, e, t) : s.renderbufferStorage(s.RENDERBUFFER, i, e, t), s.framebufferRenderbuffer(s.FRAMEBUFFER, a, s.RENDERBUFFER, c), s.bindRenderbuffer(s.RENDERBUFFER, null), c ); }), (this._boundUniforms = {}); var u = null; if (t) { if (((i = i || {}), t.getContext)) { if ( ((u = t), (this._renderingCanvas = u), null != n && (i.antialias = n), void 0 === i.deterministicLockstep && (i.deterministicLockstep = !1), void 0 === i.lockstepMaxSteps && (i.lockstepMaxSteps = 4), void 0 === i.timeStep && (i.timeStep = 1 / 60), void 0 === i.preserveDrawingBuffer && (i.preserveDrawingBuffer = !1), void 0 === i.audioEngine && (i.audioEngine = !0), void 0 === i.stencil && (i.stencil = !0), !1 === i.premultipliedAlpha && (this.premultipliedAlpha = !1), (this._doNotHandleContextLost = !!i.doNotHandleContextLost), navigator && navigator.userAgent) ) for (var f = navigator.userAgent, m = 0, g = e.ExceptionList; m < g.length; m++) { var _ = g[m], v = _.key, y = _.targets; if (new RegExp(v).test(f)) { if (_.capture && _.captureConstraint) { var C = _.capture, P = _.captureConstraint, x = new RegExp(C).exec(f); if (x && x.length > 0) if (parseInt(x[x.length - 1]) >= P) continue; } for (var T = 0, S = y; T < S.length; T++) { switch (S[T]) { case "uniformBuffer": this.disableUniformBuffers = !0; break; case "vao": this.disableVertexArrayObjects = !0; } } } } if ( (this._doNotHandleContextLost || ((this._onContextLost = function (e) { e.preventDefault(), (o._contextWasLost = !0), h.a.Warn("WebGL context lost."), o.onContextLostObservable.notifyObservers(o); }), (this._onContextRestored = function () { setTimeout(function () { o._initGLContext(), o._rebuildEffects(), o._rebuildInternalTextures(), o._rebuildBuffers(), o.wipeCaches(!0), h.a.Warn("WebGL context successfully restored."), o.onContextRestoredObservable.notifyObservers(o), (o._contextWasLost = !1); }, 0); }), u.addEventListener("webglcontextlost", this._onContextLost, !1), u.addEventListener("webglcontextrestored", this._onContextRestored, !1), (i.powerPreference = "high-performance")), !i.disableWebGL2Support) ) try { (this._gl = u.getContext("webgl2", i) || u.getContext("experimental-webgl2", i)), this._gl && ((this._webGLVersion = 2), this._gl.deleteQuery || (this._webGLVersion = 1)); } catch (e) {} if (!this._gl) { if (!u) throw new Error("The provided canvas is null or undefined."); try { this._gl = u.getContext("webgl", i) || u.getContext("experimental-webgl", i); } catch (e) { throw new Error("WebGL not supported"); } } if (!this._gl) throw new Error("WebGL not supported"); } else { (this._gl = t), (this._renderingCanvas = this._gl.canvas), this._gl.renderbufferStorageMultisample && (this._webGLVersion = 2); var O = this._gl.getContextAttributes(); O && (i.stencil = O.stencil); } this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE), void 0 !== i.useHighPrecisionFloats && (this._highPrecisionShadersAllowed = i.useHighPrecisionFloats); var E = (d.a.IsWindowObjectExist() && window.devicePixelRatio) || 1, M = i.limitDeviceRatio || E; (this._hardwareScalingLevel = r ? 1 / Math.min(M, E) : 1), this.resize(), (this._isStencilEnable = !!i.stencil), this._initGLContext(); for (var A = 0; A < this._caps.maxVertexAttribs; A++) this._currentBufferPointers[A] = new b(); this.webGLVersion > 1 && (this._shaderProcessor = new p.a()), (this._badOS = /iPad/i.test(navigator.userAgent) || /iPhone/i.test(navigator.userAgent)), (this._badDesktopOS = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)), (this._creationOptions = i); } } return ( Object.defineProperty(e, "NpmPackage", { get: function () { return "babylonjs@4.1.0"; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "Version", { get: function () { return "4.1.0"; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "description", { get: function () { var e = "WebGL" + this.webGLVersion; return this._caps.parallelShaderCompile && (e += " - Parallel shader compilation"), e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ShadersRepository", { get: function () { return r.a.ShadersRepository; }, set: function (e) { r.a.ShadersRepository = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "supportsUniformBuffers", { get: function () { return this.webGLVersion > 1 && !this.disableUniformBuffers; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "_shouldUseHighPrecisionShader", { get: function () { return !(!this._caps.highPrecisionShaderSupported || !this._highPrecisionShadersAllowed); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "needPOTTextures", { get: function () { return this._webGLVersion < 2 || this.forcePOTTextures; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "doNotHandleContextLost", { get: function () { return this._doNotHandleContextLost; }, set: function (e) { this._doNotHandleContextLost = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "_supportsHardwareTextureRescaling", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "framebufferDimensionsObject", { set: function (e) { this._framebufferDimensionsObject = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "texturesSupported", { get: function () { return this._texturesSupported; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "textureFormatInUse", { get: function () { return this._textureFormatInUse; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "currentViewport", { get: function () { return this._cachedViewport; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "emptyTexture", { get: function () { return this._emptyTexture || (this._emptyTexture = this.createRawTexture(new Uint8Array(4), 1, 1, 5, !1, !1, 1)), this._emptyTexture; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "emptyTexture3D", { get: function () { return this._emptyTexture3D || (this._emptyTexture3D = this.createRawTexture3D(new Uint8Array(4), 1, 1, 1, 5, !1, !1, 1)), this._emptyTexture3D; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "emptyTexture2DArray", { get: function () { return this._emptyTexture2DArray || (this._emptyTexture2DArray = this.createRawTexture2DArray(new Uint8Array(4), 1, 1, 1, 5, !1, !1, 1)), this._emptyTexture2DArray; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "emptyCubeTexture", { get: function () { if (!this._emptyCubeTexture) { var e = new Uint8Array(4), t = [e, e, e, e, e, e]; this._emptyCubeTexture = this.createRawCubeTexture(t, 1, 5, 0, !1, !1, 1); } return this._emptyCubeTexture; }, enumerable: !0, configurable: !0, }), (e.prototype._rebuildInternalTextures = function () { for (var e = 0, t = this._internalTexturesCache.slice(); e < t.length; e++) { t[e]._rebuild(); } }), (e.prototype._rebuildEffects = function () { for (var e in this._compiledEffects) { this._compiledEffects[e]._prepareEffect(); } r.a.ResetCache(); }), (e.prototype.areAllEffectsReady = function () { for (var e in this._compiledEffects) { if (!this._compiledEffects[e].isReady()) return !1; } return !0; }), (e.prototype._rebuildBuffers = function () { for (var e = 0, t = this._uniformBuffers; e < t.length; e++) { t[e]._rebuild(); } }), (e.prototype._initGLContext = function () { (this._caps = { maxTexturesImageUnits: this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS), maxCombinedTexturesImageUnits: this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS), maxVertexTextureImageUnits: this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS), maxTextureSize: this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE), maxSamples: this._webGLVersion > 1 ? this._gl.getParameter(this._gl.MAX_SAMPLES) : 1, maxCubemapTextureSize: this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE), maxRenderTextureSize: this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE), maxVertexAttribs: this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS), maxVaryingVectors: this._gl.getParameter(this._gl.MAX_VARYING_VECTORS), maxFragmentUniformVectors: this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS), maxVertexUniformVectors: this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS), parallelShaderCompile: this._gl.getExtension("KHR_parallel_shader_compile"), standardDerivatives: this._webGLVersion > 1 || null !== this._gl.getExtension("OES_standard_derivatives"), maxAnisotropy: 1, astc: this._gl.getExtension("WEBGL_compressed_texture_astc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"), s3tc: this._gl.getExtension("WEBGL_compressed_texture_s3tc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"), pvrtc: this._gl.getExtension("WEBGL_compressed_texture_pvrtc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"), etc1: this._gl.getExtension("WEBGL_compressed_texture_etc1") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"), etc2: this._gl.getExtension("WEBGL_compressed_texture_etc") || this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc") || this._gl.getExtension("WEBGL_compressed_texture_es3_0"), textureAnisotropicFilterExtension: this._gl.getExtension("EXT_texture_filter_anisotropic") || this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"), uintIndices: this._webGLVersion > 1 || null !== this._gl.getExtension("OES_element_index_uint"), fragmentDepthSupported: this._webGLVersion > 1 || null !== this._gl.getExtension("EXT_frag_depth"), highPrecisionShaderSupported: !1, timerQuery: this._gl.getExtension("EXT_disjoint_timer_query_webgl2") || this._gl.getExtension("EXT_disjoint_timer_query"), canUseTimestampForTimerQuery: !1, drawBuffersExtension: !1, maxMSAASamples: 1, colorBufferFloat: this._webGLVersion > 1 && this._gl.getExtension("EXT_color_buffer_float"), textureFloat: !!(this._webGLVersion > 1 || this._gl.getExtension("OES_texture_float")), textureHalfFloat: !!(this._webGLVersion > 1 || this._gl.getExtension("OES_texture_half_float")), textureHalfFloatRender: !1, textureFloatLinearFiltering: !1, textureFloatRender: !1, textureHalfFloatLinearFiltering: !1, vertexArrayObject: !1, instancedArrays: !1, textureLOD: !!(this._webGLVersion > 1 || this._gl.getExtension("EXT_shader_texture_lod")), blendMinMax: !1, multiview: this._gl.getExtension("OVR_multiview2"), oculusMultiview: this._gl.getExtension("OCULUS_multiview"), depthTextureExtension: !1, }), (this._glVersion = this._gl.getParameter(this._gl.VERSION)); var e = this._gl.getExtension("WEBGL_debug_renderer_info"); if ( (null != e && ((this._glRenderer = this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL)), (this._glVendor = this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL))), this._glVendor || (this._glVendor = "Unknown vendor"), this._glRenderer || (this._glRenderer = "Unknown renderer"), (this._gl.HALF_FLOAT_OES = 36193), 34842 !== this._gl.RGBA16F && (this._gl.RGBA16F = 34842), 34836 !== this._gl.RGBA32F && (this._gl.RGBA32F = 34836), 35056 !== this._gl.DEPTH24_STENCIL8 && (this._gl.DEPTH24_STENCIL8 = 35056), this._caps.timerQuery && (1 === this._webGLVersion && (this._gl.getQuery = this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)), (this._caps.canUseTimestampForTimerQuery = this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT, this._caps.timerQuery.QUERY_COUNTER_BITS_EXT) > 0)), (this._caps.maxAnisotropy = this._caps.textureAnisotropicFilterExtension ? this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0), (this._caps.textureFloatLinearFiltering = !(!this._caps.textureFloat || !this._gl.getExtension("OES_texture_float_linear"))), (this._caps.textureFloatRender = !(!this._caps.textureFloat || !this._canRenderToFloatFramebuffer())), (this._caps.textureHalfFloatLinearFiltering = !!(this._webGLVersion > 1 || (this._caps.textureHalfFloat && this._gl.getExtension("OES_texture_half_float_linear")))), this._webGLVersion > 1 && (this._gl.HALF_FLOAT_OES = 5131), (this._caps.textureHalfFloatRender = this._caps.textureHalfFloat && this._canRenderToHalfFloatFramebuffer()), this._webGLVersion > 1) ) (this._caps.drawBuffersExtension = !0), (this._caps.maxMSAASamples = this._gl.getParameter(this._gl.MAX_SAMPLES)); else { var t = this._gl.getExtension("WEBGL_draw_buffers"); if (null !== t) { (this._caps.drawBuffersExtension = !0), (this._gl.drawBuffers = t.drawBuffersWEBGL.bind(t)), (this._gl.DRAW_FRAMEBUFFER = this._gl.FRAMEBUFFER); for (var n = 0; n < 16; n++) this._gl["COLOR_ATTACHMENT" + n + "_WEBGL"] = t["COLOR_ATTACHMENT" + n + "_WEBGL"]; } } if (this._webGLVersion > 1) this._caps.depthTextureExtension = !0; else { var i = this._gl.getExtension("WEBGL_depth_texture"); null != i && ((this._caps.depthTextureExtension = !0), (this._gl.UNSIGNED_INT_24_8 = i.UNSIGNED_INT_24_8_WEBGL)); } if (this.disableVertexArrayObjects) this._caps.vertexArrayObject = !1; else if (this._webGLVersion > 1) this._caps.vertexArrayObject = !0; else { var r = this._gl.getExtension("OES_vertex_array_object"); null != r && ((this._caps.vertexArrayObject = !0), (this._gl.createVertexArray = r.createVertexArrayOES.bind(r)), (this._gl.bindVertexArray = r.bindVertexArrayOES.bind(r)), (this._gl.deleteVertexArray = r.deleteVertexArrayOES.bind(r))); } if (this._webGLVersion > 1) this._caps.instancedArrays = !0; else { var o = this._gl.getExtension("ANGLE_instanced_arrays"); null != o ? ((this._caps.instancedArrays = !0), (this._gl.drawArraysInstanced = o.drawArraysInstancedANGLE.bind(o)), (this._gl.drawElementsInstanced = o.drawElementsInstancedANGLE.bind(o)), (this._gl.vertexAttribDivisor = o.vertexAttribDivisorANGLE.bind(o))) : (this._caps.instancedArrays = !1); } if ( (this._caps.astc && this.texturesSupported.push("-astc.ktx"), this._caps.s3tc && this.texturesSupported.push("-dxt.ktx"), this._caps.pvrtc && this.texturesSupported.push("-pvrtc.ktx"), this._caps.etc2 && this.texturesSupported.push("-etc2.ktx"), this._caps.etc1 && this.texturesSupported.push("-etc1.ktx"), this._gl.getShaderPrecisionFormat) ) { var a = this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER, this._gl.HIGH_FLOAT), s = this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER, this._gl.HIGH_FLOAT); a && s && (this._caps.highPrecisionShaderSupported = 0 !== a.precision && 0 !== s.precision); } if (this._webGLVersion > 1) this._caps.blendMinMax = !0; else { var c = this._gl.getExtension("EXT_blend_minmax"); null != c && ((this._caps.blendMinMax = !0), (this._gl.MAX = c.MAX_EXT), (this._gl.MIN = c.MIN_EXT)); } (this._depthCullingState.depthTest = !0), (this._depthCullingState.depthFunc = this._gl.LEQUAL), (this._depthCullingState.depthMask = !0), (this._maxSimultaneousTextures = this._caps.maxCombinedTexturesImageUnits); for (var l = 0; l < this._maxSimultaneousTextures; l++) this._nextFreeTextureSlots.push(l); }), Object.defineProperty(e.prototype, "webGLVersion", { get: function () { return this._webGLVersion; }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "ThinEngine"; }), Object.defineProperty(e.prototype, "isStencilEnable", { get: function () { return this._isStencilEnable; }, enumerable: !0, configurable: !0, }), (e.prototype._prepareWorkingCanvas = function () { if (!this._workingCanvas) { this._workingCanvas = g.a.CreateCanvas(1, 1); var e = this._workingCanvas.getContext("2d"); e && (this._workingContext = e); } }), (e.prototype.resetTextureCache = function () { for (var e in this._boundTexturesCache) this._boundTexturesCache.hasOwnProperty(e) && (this._boundTexturesCache[e] = null); this._currentTextureChannel = -1; }), (e.prototype.getGlInfo = function () { return { vendor: this._glVendor, renderer: this._glRenderer, version: this._glVersion }; }), (e.prototype.setHardwareScalingLevel = function (e) { (this._hardwareScalingLevel = e), this.resize(); }), (e.prototype.getHardwareScalingLevel = function () { return this._hardwareScalingLevel; }), (e.prototype.getLoadedTexturesCache = function () { return this._internalTexturesCache; }), (e.prototype.getCaps = function () { return this._caps; }), (e.prototype.stopRenderLoop = function (e) { if (e) { var t = this._activeRenderLoops.indexOf(e); t >= 0 && this._activeRenderLoops.splice(t, 1); } else this._activeRenderLoops = []; }), (e.prototype._renderLoop = function () { if (!this._contextWasLost) { var e = !0; if ((!this.renderEvenInBackground && this._windowIsBackground && (e = !1), e)) { this.beginFrame(); for (var t = 0; t < this._activeRenderLoops.length; t++) { (0, this._activeRenderLoops[t])(); } this.endFrame(); } } this._activeRenderLoops.length > 0 ? (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow())) : (this._renderingQueueLaunched = !1); }), (e.prototype.getRenderingCanvas = function () { return this._renderingCanvas; }), (e.prototype.getHostWindow = function () { return d.a.IsWindowObjectExist() ? (this._renderingCanvas && this._renderingCanvas.ownerDocument && this._renderingCanvas.ownerDocument.defaultView ? this._renderingCanvas.ownerDocument.defaultView : window) : null; }), (e.prototype.getRenderWidth = function (e) { return ( void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._framebufferDimensionsObject ? this._framebufferDimensionsObject.framebufferWidth : this._gl.drawingBufferWidth ); }), (e.prototype.getRenderHeight = function (e) { return ( void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._framebufferDimensionsObject ? this._framebufferDimensionsObject.framebufferHeight : this._gl.drawingBufferHeight ); }), (e.prototype._queueNewFrame = function (t, n) { return e.QueueNewFrame(t, n); }), (e.prototype.runRenderLoop = function (e) { -1 === this._activeRenderLoops.indexOf(e) && (this._activeRenderLoops.push(e), this._renderingQueueLaunched || ((this._renderingQueueLaunched = !0), (this._boundRenderFunction = this._renderLoop.bind(this)), (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow())))); }), (e.prototype.clear = function (e, t, n, i) { void 0 === i && (i = !1), this.applyStates(); var r = 0; t && e && (this._gl.clearColor(e.r, e.g, e.b, void 0 !== e.a ? e.a : 1), (r |= this._gl.COLOR_BUFFER_BIT)), n && (this.useReverseDepthBuffer ? ((this._depthCullingState.depthFunc = this._gl.GREATER), this._gl.clearDepth(0)) : this._gl.clearDepth(1), (r |= this._gl.DEPTH_BUFFER_BIT)), i && (this._gl.clearStencil(0), (r |= this._gl.STENCIL_BUFFER_BIT)), this._gl.clear(r); }), (e.prototype._viewport = function (e, t, n, i) { (e === this._viewportCached.x && t === this._viewportCached.y && n === this._viewportCached.z && i === this._viewportCached.w) || ((this._viewportCached.x = e), (this._viewportCached.y = t), (this._viewportCached.z = n), (this._viewportCached.w = i), this._gl.viewport(e, t, n, i)); }), (e.prototype.setViewport = function (e, t, n) { var i = t || this.getRenderWidth(), r = n || this.getRenderHeight(), o = e.x || 0, a = e.y || 0; (this._cachedViewport = e), this._viewport(o * i, a * r, i * e.width, r * e.height); }), (e.prototype.beginFrame = function () {}), (e.prototype.endFrame = function () { this._badOS && this.flushFramebuffer(); }), (e.prototype.resize = function () { var e, t; d.a.IsWindowObjectExist() ? ((e = this._renderingCanvas ? this._renderingCanvas.clientWidth : window.innerWidth), (t = this._renderingCanvas ? this._renderingCanvas.clientHeight : window.innerHeight)) : ((e = this._renderingCanvas ? this._renderingCanvas.width : 100), (t = this._renderingCanvas ? this._renderingCanvas.height : 100)), this.setSize(e / this._hardwareScalingLevel, t / this._hardwareScalingLevel); }), (e.prototype.setSize = function (e, t) { this._renderingCanvas && ((e |= 0), (t |= 0), (this._renderingCanvas.width === e && this._renderingCanvas.height === t) || ((this._renderingCanvas.width = e), (this._renderingCanvas.height = t))); }), (e.prototype.bindFramebuffer = function (e, t, n, i, r, o, a) { void 0 === t && (t = 0), void 0 === o && (o = 0), void 0 === a && (a = 0), this._currentRenderTarget && this.unBindFramebuffer(this._currentRenderTarget), (this._currentRenderTarget = e), this._bindUnboundFramebuffer(e._MSAAFramebuffer ? e._MSAAFramebuffer : e._framebuffer); var s = this._gl; e.is2DArray ? s.framebufferTextureLayer(s.FRAMEBUFFER, s.COLOR_ATTACHMENT0, e._webGLTexture, o, a) : e.isCube && s.framebufferTexture2D(s.FRAMEBUFFER, s.COLOR_ATTACHMENT0, s.TEXTURE_CUBE_MAP_POSITIVE_X + t, e._webGLTexture, o); var c = e._depthStencilTexture; if (c) { var l = c._generateStencilBuffer ? s.DEPTH_STENCIL_ATTACHMENT : s.DEPTH_ATTACHMENT; e.is2DArray ? s.framebufferTextureLayer(s.FRAMEBUFFER, l, c._webGLTexture, o, a) : e.isCube ? s.framebufferTexture2D(s.FRAMEBUFFER, l, s.TEXTURE_CUBE_MAP_POSITIVE_X + t, c._webGLTexture, o) : s.framebufferTexture2D(s.FRAMEBUFFER, l, s.TEXTURE_2D, c._webGLTexture, o); } this._cachedViewport && !r ? this.setViewport(this._cachedViewport, n, i) : (n || ((n = e.width), o && (n /= Math.pow(2, o))), i || ((i = e.height), o && (i /= Math.pow(2, o))), this._viewport(0, 0, n, i)), this.wipeCaches(); }), (e.prototype._bindUnboundFramebuffer = function (e) { this._currentFramebuffer !== e && (this._gl.bindFramebuffer(this._gl.FRAMEBUFFER, e), (this._currentFramebuffer = e)); }), (e.prototype.unBindFramebuffer = function (e, t, n) { void 0 === t && (t = !1), (this._currentRenderTarget = null); var i = this._gl; e._MSAAFramebuffer && (i.bindFramebuffer(i.READ_FRAMEBUFFER, e._MSAAFramebuffer), i.bindFramebuffer(i.DRAW_FRAMEBUFFER, e._framebuffer), i.blitFramebuffer(0, 0, e.width, e.height, 0, 0, e.width, e.height, i.COLOR_BUFFER_BIT, i.NEAREST)), !e.generateMipMaps || t || e.isCube || (this._bindTextureDirectly(i.TEXTURE_2D, e, !0), i.generateMipmap(i.TEXTURE_2D), this._bindTextureDirectly(i.TEXTURE_2D, null)), n && (e._MSAAFramebuffer && this._bindUnboundFramebuffer(e._framebuffer), n()), this._bindUnboundFramebuffer(null); }), (e.prototype.flushFramebuffer = function () { this._gl.flush(); }), (e.prototype.restoreDefaultFramebuffer = function () { this._currentRenderTarget ? this.unBindFramebuffer(this._currentRenderTarget) : this._bindUnboundFramebuffer(null), this._cachedViewport && this.setViewport(this._cachedViewport), this.wipeCaches(); }), (e.prototype._resetVertexBufferBinding = function () { this.bindArrayBuffer(null), (this._cachedVertexBuffers = null); }), (e.prototype.createVertexBuffer = function (e) { return this._createVertexBuffer(e, this._gl.STATIC_DRAW); }), (e.prototype._createVertexBuffer = function (e, t) { var n = this._gl.createBuffer(); if (!n) throw new Error("Unable to create vertex buffer"); var i = new f.a(n); return ( this.bindArrayBuffer(i), e instanceof Array ? this._gl.bufferData(this._gl.ARRAY_BUFFER, new Float32Array(e), this._gl.STATIC_DRAW) : this._gl.bufferData(this._gl.ARRAY_BUFFER, e, this._gl.STATIC_DRAW), this._resetVertexBufferBinding(), (i.references = 1), i ); }), (e.prototype.createDynamicVertexBuffer = function (e) { return this._createVertexBuffer(e, this._gl.DYNAMIC_DRAW); }), (e.prototype._resetIndexBufferBinding = function () { this.bindIndexBuffer(null), (this._cachedIndexBuffer = null); }), (e.prototype.createIndexBuffer = function (e, t) { var n = this._gl.createBuffer(), i = new f.a(n); if (!n) throw new Error("Unable to create index buffer"); this.bindIndexBuffer(i); var r = this._normalizeIndexData(e); return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, r, t ? this._gl.DYNAMIC_DRAW : this._gl.STATIC_DRAW), this._resetIndexBufferBinding(), (i.references = 1), (i.is32Bits = 4 === r.BYTES_PER_ELEMENT), i; }), (e.prototype._normalizeIndexData = function (e) { if (e instanceof Uint16Array) return e; if (this._caps.uintIndices) { if (e instanceof Uint32Array) return e; for (var t = 0; t < e.length; t++) if (e[t] >= 65535) return new Uint32Array(e); return new Uint16Array(e); } return new Uint16Array(e); }), (e.prototype.bindArrayBuffer = function (e) { this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.bindBuffer(e, this._gl.ARRAY_BUFFER); }), (e.prototype.bindUniformBlock = function (e, t, n) { var i = e.program, r = this._gl.getUniformBlockIndex(i, t); this._gl.uniformBlockBinding(i, r, n); }), (e.prototype.bindIndexBuffer = function (e) { this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.bindBuffer(e, this._gl.ELEMENT_ARRAY_BUFFER); }), (e.prototype.bindBuffer = function (e, t) { (this._vaoRecordInProgress || this._currentBoundBuffer[t] !== e) && (this._gl.bindBuffer(t, e ? e.underlyingResource : null), (this._currentBoundBuffer[t] = e)); }), (e.prototype.updateArrayBuffer = function (e) { this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, e); }), (e.prototype._vertexAttribPointer = function (e, t, n, i, r, o, a) { var s = this._currentBufferPointers[t], c = !1; s.active ? (s.buffer !== e && ((s.buffer = e), (c = !0)), s.size !== n && ((s.size = n), (c = !0)), s.type !== i && ((s.type = i), (c = !0)), s.normalized !== r && ((s.normalized = r), (c = !0)), s.stride !== o && ((s.stride = o), (c = !0)), s.offset !== a && ((s.offset = a), (c = !0))) : ((c = !0), (s.active = !0), (s.index = t), (s.size = n), (s.type = i), (s.normalized = r), (s.stride = o), (s.offset = a), (s.buffer = e)), (c || this._vaoRecordInProgress) && (this.bindArrayBuffer(e), this._gl.vertexAttribPointer(t, n, i, r, o, a)); }), (e.prototype._bindIndexBufferWithCache = function (e) { null != e && this._cachedIndexBuffer !== e && ((this._cachedIndexBuffer = e), this.bindIndexBuffer(e), (this._uintIndicesCurrentlySet = e.is32Bits)); }), (e.prototype._bindVertexBuffersAttributes = function (e, t) { var n = t.getAttributesNames(); this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.unbindAllAttributes(); for (var i = 0; i < n.length; i++) { var r = t.getAttributeLocation(i); if (r >= 0) { var o = e[n[i]]; if (!o) continue; this._gl.enableVertexAttribArray(r), this._vaoRecordInProgress || (this._vertexAttribArraysEnabled[r] = !0); var a = o.getBuffer(); a && (this._vertexAttribPointer(a, r, o.getSize(), o.type, o.normalized, o.byteStride, o.byteOffset), o.getIsInstanced() && (this._gl.vertexAttribDivisor(r, o.getInstanceDivisor()), this._vaoRecordInProgress || (this._currentInstanceLocations.push(r), this._currentInstanceBuffers.push(a)))); } } }), (e.prototype.recordVertexArrayObject = function (e, t, n) { var i = this._gl.createVertexArray(); return ( (this._vaoRecordInProgress = !0), this._gl.bindVertexArray(i), (this._mustWipeVertexAttributes = !0), this._bindVertexBuffersAttributes(e, n), this.bindIndexBuffer(t), (this._vaoRecordInProgress = !1), this._gl.bindVertexArray(null), i ); }), (e.prototype.bindVertexArrayObject = function (e, t) { this._cachedVertexArrayObject !== e && ((this._cachedVertexArrayObject = e), this._gl.bindVertexArray(e), (this._cachedVertexBuffers = null), (this._cachedIndexBuffer = null), (this._uintIndicesCurrentlySet = null != t && t.is32Bits), (this._mustWipeVertexAttributes = !0)); }), (e.prototype.bindBuffersDirectly = function (e, t, n, i, r) { if (this._cachedVertexBuffers !== e || this._cachedEffectForVertexBuffers !== r) { (this._cachedVertexBuffers = e), (this._cachedEffectForVertexBuffers = r); var o = r.getAttributesCount(); this._unbindVertexArrayObject(), this.unbindAllAttributes(); for (var a = 0, s = 0; s < o; s++) if (s < n.length) { var c = r.getAttributeLocation(s); c >= 0 && (this._gl.enableVertexAttribArray(c), (this._vertexAttribArraysEnabled[c] = !0), this._vertexAttribPointer(e, c, n[s], this._gl.FLOAT, !1, i, a)), (a += 4 * n[s]); } } this._bindIndexBufferWithCache(t); }), (e.prototype._unbindVertexArrayObject = function () { this._cachedVertexArrayObject && ((this._cachedVertexArrayObject = null), this._gl.bindVertexArray(null)); }), (e.prototype.bindBuffers = function (e, t, n) { (this._cachedVertexBuffers === e && this._cachedEffectForVertexBuffers === n) || ((this._cachedVertexBuffers = e), (this._cachedEffectForVertexBuffers = n), this._bindVertexBuffersAttributes(e, n)), this._bindIndexBufferWithCache(t); }), (e.prototype.unbindInstanceAttributes = function () { for (var e, t = 0, n = this._currentInstanceLocations.length; t < n; t++) { var i = this._currentInstanceBuffers[t]; e != i && i.references && ((e = i), this.bindArrayBuffer(i)); var r = this._currentInstanceLocations[t]; this._gl.vertexAttribDivisor(r, 0); } (this._currentInstanceBuffers.length = 0), (this._currentInstanceLocations.length = 0); }), (e.prototype.releaseVertexArrayObject = function (e) { this._gl.deleteVertexArray(e); }), (e.prototype._releaseBuffer = function (e) { return e.references--, 0 === e.references && (this._deleteBuffer(e), !0); }), (e.prototype._deleteBuffer = function (e) { this._gl.deleteBuffer(e.underlyingResource); }), (e.prototype.updateAndBindInstancesBuffer = function (e, t, n) { if ((this.bindArrayBuffer(e), t && this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, t), void 0 !== n[0].index)) this.bindInstancesBuffer(e, n, !0); else for (var i = 0; i < 4; i++) { var r = n[i]; this._vertexAttribArraysEnabled[r] || (this._gl.enableVertexAttribArray(r), (this._vertexAttribArraysEnabled[r] = !0)), this._vertexAttribPointer(e, r, 4, this._gl.FLOAT, !1, 64, 16 * i), this._gl.vertexAttribDivisor(r, 1), this._currentInstanceLocations.push(r), this._currentInstanceBuffers.push(e); } }), (e.prototype.bindInstancesBuffer = function (e, t, n) { void 0 === n && (n = !0), this.bindArrayBuffer(e); var i = 0; if (n) for (var r = 0; r < t.length; r++) { i += 4 * (o = t[r]).attributeSize; } for (r = 0; r < t.length; r++) { var o; void 0 === (o = t[r]).index && (o.index = this._currentEffect.getAttributeLocationByName(o.attributeName)), this._vertexAttribArraysEnabled[o.index] || (this._gl.enableVertexAttribArray(o.index), (this._vertexAttribArraysEnabled[o.index] = !0)), this._vertexAttribPointer(e, o.index, o.attributeSize, o.attributeType || this._gl.FLOAT, o.normalized || !1, i, o.offset), this._gl.vertexAttribDivisor(o.index, void 0 === o.divisor ? 1 : o.divisor), this._currentInstanceLocations.push(o.index), this._currentInstanceBuffers.push(e); } }), (e.prototype.disableInstanceAttributeByName = function (e) { if (this._currentEffect) { var t = this._currentEffect.getAttributeLocationByName(e); this.disableInstanceAttribute(t); } }), (e.prototype.disableInstanceAttribute = function (e) { for (var t, n = !1; -1 !== (t = this._currentInstanceLocations.indexOf(e)); ) this._currentInstanceLocations.splice(t, 1), this._currentInstanceBuffers.splice(t, 1), (n = !0), (t = this._currentInstanceLocations.indexOf(e)); n && (this._gl.vertexAttribDivisor(e, 0), this.disableAttributeByIndex(e)); }), (e.prototype.disableAttributeByIndex = function (e) { this._gl.disableVertexAttribArray(e), (this._vertexAttribArraysEnabled[e] = !1), (this._currentBufferPointers[e].active = !1); }), (e.prototype.draw = function (e, t, n, i) { this.drawElementsType(e ? 0 : 1, t, n, i); }), (e.prototype.drawPointClouds = function (e, t, n) { this.drawArraysType(2, e, t, n); }), (e.prototype.drawUnIndexed = function (e, t, n, i) { this.drawArraysType(e ? 0 : 1, t, n, i); }), (e.prototype.drawElementsType = function (e, t, n, i) { this.applyStates(), this._reportDrawCall(); var r = this._drawMode(e), o = this._uintIndicesCurrentlySet ? this._gl.UNSIGNED_INT : this._gl.UNSIGNED_SHORT, a = this._uintIndicesCurrentlySet ? 4 : 2; i ? this._gl.drawElementsInstanced(r, n, o, t * a, i) : this._gl.drawElements(r, n, o, t * a); }), (e.prototype.drawArraysType = function (e, t, n, i) { this.applyStates(), this._reportDrawCall(); var r = this._drawMode(e); i ? this._gl.drawArraysInstanced(r, t, n, i) : this._gl.drawArrays(r, t, n); }), (e.prototype._drawMode = function (e) { switch (e) { case 0: return this._gl.TRIANGLES; case 2: return this._gl.POINTS; case 1: return this._gl.LINES; case 3: return this._gl.POINTS; case 4: return this._gl.LINES; case 5: return this._gl.LINE_LOOP; case 6: return this._gl.LINE_STRIP; case 7: return this._gl.TRIANGLE_STRIP; case 8: return this._gl.TRIANGLE_FAN; default: return this._gl.TRIANGLES; } }), (e.prototype._reportDrawCall = function () {}), (e.prototype._releaseEffect = function (e) { this._compiledEffects[e._key] && (delete this._compiledEffects[e._key], this._deletePipelineContext(e.getPipelineContext())); }), (e.prototype._deletePipelineContext = function (e) { var t = e; t && t.program && ((t.program.__SPECTOR_rebuildProgram = null), this._gl.deleteProgram(t.program)); }), (e.prototype.createEffect = function (e, t, n, i, o, a, s, c, l) { var u = (e.vertexElement || e.vertex || e) + "+" + (e.fragmentElement || e.fragment || e) + "@" + (o || t.defines); if (this._compiledEffects[u]) { var h = this._compiledEffects[u]; return s && h.isReady() && s(h), h; } var d = new r.a(e, t, n, i, this, o, a, s, c, l); return (d._key = u), (this._compiledEffects[u] = d), d; }), (e._ConcatenateShader = function (e, t, n) { return void 0 === n && (n = ""), n + (t ? t + "\n" : "") + e; }), (e.prototype._compileShader = function (t, n, i, r) { return this._compileRawShader(e._ConcatenateShader(t, i, r), n); }), (e.prototype._compileRawShader = function (e, t) { var n = this._gl, i = n.createShader("vertex" === t ? n.VERTEX_SHADER : n.FRAGMENT_SHADER); if (!i) throw new Error("Something went wrong while compile the shader."); return n.shaderSource(i, e), n.compileShader(i), i; }), (e.prototype.createRawShaderProgram = function (e, t, n, i, r) { void 0 === r && (r = null), (i = i || this._gl); var o = this._compileRawShader(t, "vertex"), a = this._compileRawShader(n, "fragment"); return this._createShaderProgram(e, o, a, i, r); }), (e.prototype.createShaderProgram = function (e, t, n, i, r, o) { void 0 === o && (o = null), (r = r || this._gl); var a = this._webGLVersion > 1 ? "#version 300 es\n#define WEBGL2 \n" : "", s = this._compileShader(t, "vertex", i, a), c = this._compileShader(n, "fragment", i, a); return this._createShaderProgram(e, s, c, r, o); }), (e.prototype.createPipelineContext = function () { var e = new m.a(); return (e.engine = this), this._caps.parallelShaderCompile && (e.isParallelCompiled = !0), e; }), (e.prototype._createShaderProgram = function (e, t, n, i, r) { void 0 === r && (r = null); var o = i.createProgram(); if (((e.program = o), !o)) throw new Error("Unable to create program"); return i.attachShader(o, t), i.attachShader(o, n), i.linkProgram(o), (e.context = i), (e.vertexShader = t), (e.fragmentShader = n), e.isParallelCompiled || this._finalizePipelineContext(e), o; }), (e.prototype._finalizePipelineContext = function (e) { var t = e.context, n = e.vertexShader, i = e.fragmentShader, r = e.program; if (!t.getProgramParameter(r, t.LINK_STATUS)) { var o, a; if (!this._gl.getShaderParameter(n, this._gl.COMPILE_STATUS)) if ((o = this._gl.getShaderInfoLog(n))) throw ((e.vertexCompilationError = o), new Error("VERTEX SHADER " + o)); if (!this._gl.getShaderParameter(i, this._gl.COMPILE_STATUS)) if ((o = this._gl.getShaderInfoLog(i))) throw ((e.fragmentCompilationError = o), new Error("FRAGMENT SHADER " + o)); if ((a = t.getProgramInfoLog(r))) throw ((e.programLinkError = a), new Error(a)); } if (this.validateShaderPrograms && (t.validateProgram(r), !t.getProgramParameter(r, t.VALIDATE_STATUS) && (a = t.getProgramInfoLog(r)))) throw ((e.programValidationError = a), new Error(a)); t.deleteShader(n), t.deleteShader(i), (e.vertexShader = void 0), (e.fragmentShader = void 0), e.onCompiled && (e.onCompiled(), (e.onCompiled = void 0)); }), (e.prototype._preparePipelineContext = function (e, t, n, i, r, o, a) { var s = e; (s.program = i ? this.createRawShaderProgram(s, t, n, void 0, a) : this.createShaderProgram(s, t, n, o, void 0, a)), (s.program.__SPECTOR_rebuildProgram = r); }), (e.prototype._isRenderingStateCompiled = function (e) { var t = e; return !!this._gl.getProgramParameter(t.program, this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR) && (this._finalizePipelineContext(t), !0); }), (e.prototype._executeWhenRenderingStateIsCompiled = function (e, t) { var n = e; if (n.isParallelCompiled) { var i = n.onCompiled; n.onCompiled = i ? function () { i(), t(); } : t; } else t(); }), (e.prototype.getUniforms = function (e, t) { for (var n = new Array(), i = e, r = 0; r < t.length; r++) n.push(this._gl.getUniformLocation(i.program, t[r])); return n; }), (e.prototype.getAttributes = function (e, t) { for (var n = [], i = e, r = 0; r < t.length; r++) try { n.push(this._gl.getAttribLocation(i.program, t[r])); } catch (e) { n.push(-1); } return n; }), (e.prototype.enableEffect = function (e) { e && e !== this._currentEffect && (this.bindSamplers(e), (this._currentEffect = e), e.onBind && e.onBind(e), e._onBindObservable && e._onBindObservable.notifyObservers(e)); }), (e.prototype.setInt = function (e, t) { e && this._gl.uniform1i(e, t); }), (e.prototype.setIntArray = function (e, t) { e && this._gl.uniform1iv(e, t); }), (e.prototype.setIntArray2 = function (e, t) { e && t.length % 2 == 0 && this._gl.uniform2iv(e, t); }), (e.prototype.setIntArray3 = function (e, t) { e && t.length % 3 == 0 && this._gl.uniform3iv(e, t); }), (e.prototype.setIntArray4 = function (e, t) { e && t.length % 4 == 0 && this._gl.uniform4iv(e, t); }), (e.prototype.setArray = function (e, t) { e && this._gl.uniform1fv(e, t); }), (e.prototype.setArray2 = function (e, t) { e && t.length % 2 == 0 && this._gl.uniform2fv(e, t); }), (e.prototype.setArray3 = function (e, t) { e && t.length % 3 == 0 && this._gl.uniform3fv(e, t); }), (e.prototype.setArray4 = function (e, t) { e && t.length % 4 == 0 && this._gl.uniform4fv(e, t); }), (e.prototype.setMatrices = function (e, t) { e && this._gl.uniformMatrix4fv(e, !1, t); }), (e.prototype.setMatrix3x3 = function (e, t) { e && this._gl.uniformMatrix3fv(e, !1, t); }), (e.prototype.setMatrix2x2 = function (e, t) { e && this._gl.uniformMatrix2fv(e, !1, t); }), (e.prototype.setFloat = function (e, t) { e && this._gl.uniform1f(e, t); }), (e.prototype.setFloat2 = function (e, t, n) { e && this._gl.uniform2f(e, t, n); }), (e.prototype.setFloat3 = function (e, t, n, i) { e && this._gl.uniform3f(e, t, n, i); }), (e.prototype.setFloat4 = function (e, t, n, i, r) { e && this._gl.uniform4f(e, t, n, i, r); }), (e.prototype.applyStates = function () { if ((this._depthCullingState.apply(this._gl), this._stencilState.apply(this._gl), this._alphaState.apply(this._gl), this._colorWriteChanged)) { this._colorWriteChanged = !1; var e = this._colorWrite; this._gl.colorMask(e, e, e, e); } }), (e.prototype.setColorWrite = function (e) { e !== this._colorWrite && ((this._colorWriteChanged = !0), (this._colorWrite = e)); }), (e.prototype.getColorWrite = function () { return this._colorWrite; }), Object.defineProperty(e.prototype, "depthCullingState", { get: function () { return this._depthCullingState; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "alphaState", { get: function () { return this._alphaState; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilState", { get: function () { return this._stencilState; }, enumerable: !0, configurable: !0, }), (e.prototype.clearInternalTexturesCache = function () { this._internalTexturesCache = []; }), (e.prototype.wipeCaches = function (e) { (this.preventCacheWipeBetweenFrames && !e) || ((this._currentEffect = null), (this._viewportCached.x = 0), (this._viewportCached.y = 0), (this._viewportCached.z = 0), (this._viewportCached.w = 0), this._unbindVertexArrayObject(), e && ((this._currentProgram = null), this.resetTextureCache(), this._stencilState.reset(), this._depthCullingState.reset(), (this._depthCullingState.depthFunc = this._gl.LEQUAL), this._alphaState.reset(), (this._alphaMode = 1), (this._alphaEquation = 0), (this._colorWrite = !0), (this._colorWriteChanged = !0), (this._unpackFlipYCached = null), this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE), this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0), (this._mustWipeVertexAttributes = !0), this.unbindAllAttributes()), this._resetVertexBufferBinding(), (this._cachedIndexBuffer = null), (this._cachedEffectForVertexBuffers = null), this.bindIndexBuffer(null)); }), (e.prototype._getSamplingParameters = function (e, t) { var n = this._gl, i = n.NEAREST, r = n.NEAREST; switch (e) { case 11: (i = n.LINEAR), (r = t ? n.LINEAR_MIPMAP_NEAREST : n.LINEAR); break; case 3: (i = n.LINEAR), (r = t ? n.LINEAR_MIPMAP_LINEAR : n.LINEAR); break; case 8: (i = n.NEAREST), (r = t ? n.NEAREST_MIPMAP_LINEAR : n.NEAREST); break; case 4: (i = n.NEAREST), (r = t ? n.NEAREST_MIPMAP_NEAREST : n.NEAREST); break; case 5: (i = n.NEAREST), (r = t ? n.LINEAR_MIPMAP_NEAREST : n.LINEAR); break; case 6: (i = n.NEAREST), (r = t ? n.LINEAR_MIPMAP_LINEAR : n.LINEAR); break; case 7: (i = n.NEAREST), (r = n.LINEAR); break; case 1: (i = n.NEAREST), (r = n.NEAREST); break; case 9: (i = n.LINEAR), (r = t ? n.NEAREST_MIPMAP_NEAREST : n.NEAREST); break; case 10: (i = n.LINEAR), (r = t ? n.NEAREST_MIPMAP_LINEAR : n.NEAREST); break; case 2: (i = n.LINEAR), (r = n.LINEAR); break; case 12: (i = n.LINEAR), (r = n.NEAREST); } return { min: r, mag: i }; }), (e.prototype._createTexture = function () { var e = this._gl.createTexture(); if (!e) throw new Error("Unable to create texture"); return e; }), (e.prototype.createTexture = function (t, n, r, o, a, s, c, l, h, d, p, f) { var m = this; void 0 === a && (a = 3), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === h && (h = null), void 0 === d && (d = null), void 0 === p && (p = null); for ( var g = String(t), b = "data:" === g.substr(0, 5), _ = "blob:" === g.substr(0, 5), v = b && -1 !== g.indexOf(";base64,"), y = h || new u.a(this, u.b.Url), C = g.lastIndexOf("."), P = p || (C > -1 ? g.substring(C).toLowerCase() : ""), x = null, T = 0, S = e._TextureLoaders; T < S.length; T++ ) { var O = S[T]; if (O.canLoad(P)) { x = O; break; } } o && o._addPendingData(y), (y.url = g), (y.generateMipMaps = !n), (y.samplingMode = a), (y.invertY = r), this._doNotHandleContextLost || (y._buffer = l); var E = null; s && !h && (E = y.onLoadedObservable.add(s)), h || this._internalTexturesCache.push(y); var M = function (e, t) { o && o._removePendingData(y), E && y.onLoadedObservable.remove(E), i.a.UseFallbackTexture ? m.createTexture(i.a.FallbackTexture, n, y.invertY, o, a, null, c, l, y) : c && c(e || "Unknown error", t); }; if (x) { var A = function (e) { x.loadData(e, y, function (e, t, n, i, r, s) { s ? M("TextureLoader failed to load data") : m._prepareWebGLTexture( y, o, e, t, y.invertY, !n, i, function () { return r(), !1; }, a ); }); }; l ? l instanceof ArrayBuffer ? A(new Uint8Array(l)) : ArrayBuffer.isView(l) ? A(l) : c && c("Unable to load: only ArrayBuffer or ArrayBufferView is supported", null) : this._loadFile( g, function (e) { return A(new Uint8Array(e)); }, void 0, o ? o.offlineProvider : void 0, !0, function (e, t) { M("Unable to load " + (e && e.responseURL, t)); } ); } else { var I = function (e) { _ && !m._doNotHandleContextLost && (y._buffer = e), m._prepareWebGLTexture( y, o, e.width, e.height, y.invertY, n, !1, function (t, n, i) { var r = m._gl, a = e.width === t && e.height === n, s = d ? m._getInternalFormat(d) : ".jpg" === P ? r.RGB : r.RGBA; if (a) return r.texImage2D(r.TEXTURE_2D, 0, s, s, r.UNSIGNED_BYTE, e), !1; var c = m._caps.maxTextureSize; if (e.width > c || e.height > c || !m._supportsHardwareTextureRescaling) return ( m._prepareWorkingCanvas(), !(!m._workingCanvas || !m._workingContext) && ((m._workingCanvas.width = t), (m._workingCanvas.height = n), m._workingContext.drawImage(e, 0, 0, e.width, e.height, 0, 0, t, n), r.texImage2D(r.TEXTURE_2D, 0, s, s, r.UNSIGNED_BYTE, m._workingCanvas), (y.width = t), (y.height = n), !1) ); var l = new u.a(m, u.b.Temp); return ( m._bindTextureDirectly(r.TEXTURE_2D, l, !0), r.texImage2D(r.TEXTURE_2D, 0, s, s, r.UNSIGNED_BYTE, e), m._rescaleTexture(l, y, o, s, function () { m._releaseTexture(l), m._bindTextureDirectly(r.TEXTURE_2D, y, !0), i(); }), !0 ); }, a ); }; !b || v ? l && (l.decoding || l.close) ? I(l) : e._FileToolsLoadImage(g, I, M, o ? o.offlineProvider : null, f) : "string" == typeof l || l instanceof ArrayBuffer || ArrayBuffer.isView(l) || l instanceof Blob ? e._FileToolsLoadImage(l, I, M, o ? o.offlineProvider : null, f) : l && I(l); } return y; }), (e._FileToolsLoadImage = function (e, t, n, i, r) { throw o.a.WarnImport("FileTools"); }), (e.prototype._rescaleTexture = function (e, t, n, i, r) {}), (e.prototype.createRawTexture = function (e, t, n, i, r, a, s, c, l) { throw (void 0 === c && (c = null), void 0 === l && (l = 0), o.a.WarnImport("Engine.RawTexture")); }), (e.prototype.createRawCubeTexture = function (e, t, n, i, r, a, s, c) { throw (void 0 === c && (c = null), o.a.WarnImport("Engine.RawTexture")); }), (e.prototype.createRawTexture3D = function (e, t, n, i, r, a, s, c, l, u) { throw (void 0 === l && (l = null), void 0 === u && (u = 0), o.a.WarnImport("Engine.RawTexture")); }), (e.prototype.createRawTexture2DArray = function (e, t, n, i, r, a, s, c, l, u) { throw (void 0 === l && (l = null), void 0 === u && (u = 0), o.a.WarnImport("Engine.RawTexture")); }), (e.prototype._unpackFlipY = function (e) { this._unpackFlipYCached !== e && (this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL, e ? 1 : 0), this.enableUnpackFlipYCached && (this._unpackFlipYCached = e)); }), (e.prototype._getUnpackAlignement = function () { return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT); }), (e.prototype._getTextureTarget = function (e) { return e.isCube ? this._gl.TEXTURE_CUBE_MAP : e.is3D ? this._gl.TEXTURE_3D : e.is2DArray || e.isMultiview ? this._gl.TEXTURE_2D_ARRAY : this._gl.TEXTURE_2D; }), (e.prototype.updateTextureSamplingMode = function (e, t, n) { void 0 === n && (n = !1); var i = this._getTextureTarget(t), r = this._getSamplingParameters(e, t.generateMipMaps || n); this._setTextureParameterInteger(i, this._gl.TEXTURE_MAG_FILTER, r.mag, t), this._setTextureParameterInteger(i, this._gl.TEXTURE_MIN_FILTER, r.min), n && ((t.generateMipMaps = !0), this._gl.generateMipmap(i)), this._bindTextureDirectly(i, null), (t.samplingMode = e); }), (e.prototype.updateTextureWrappingMode = function (e, t, n, i) { void 0 === n && (n = null), void 0 === i && (i = null); var r = this._getTextureTarget(e); null !== t && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(t), e), (e._cachedWrapU = t)), null !== n && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(n), e), (e._cachedWrapV = n)), (e.is2DArray || e.is3D) && null !== i && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(i), e), (e._cachedWrapR = i)), this._bindTextureDirectly(r, null); }), (e.prototype._setupDepthStencilTexture = function (e, t, n, i, r) { var o = t.width || t, a = t.height || t, s = t.layers || 0; (e.baseWidth = o), (e.baseHeight = a), (e.width = o), (e.height = a), (e.is2DArray = s > 0), (e.depth = s), (e.isReady = !0), (e.samples = 1), (e.generateMipMaps = !1), (e._generateDepthBuffer = !0), (e._generateStencilBuffer = n), (e.samplingMode = i ? 2 : 1), (e.type = 0), (e._comparisonFunction = r); var c = this._gl, l = this._getTextureTarget(e), u = this._getSamplingParameters(e.samplingMode, !1); c.texParameteri(l, c.TEXTURE_MAG_FILTER, u.mag), c.texParameteri(l, c.TEXTURE_MIN_FILTER, u.min), c.texParameteri(l, c.TEXTURE_WRAP_S, c.CLAMP_TO_EDGE), c.texParameteri(l, c.TEXTURE_WRAP_T, c.CLAMP_TO_EDGE), 0 === r ? (c.texParameteri(l, c.TEXTURE_COMPARE_FUNC, 515), c.texParameteri(l, c.TEXTURE_COMPARE_MODE, c.NONE)) : (c.texParameteri(l, c.TEXTURE_COMPARE_FUNC, r), c.texParameteri(l, c.TEXTURE_COMPARE_MODE, c.COMPARE_REF_TO_TEXTURE)); }), (e.prototype._uploadCompressedDataToTextureDirectly = function (e, t, n, i, r, o, a) { void 0 === o && (o = 0), void 0 === a && (a = 0); var s = this._gl, c = s.TEXTURE_2D; e.isCube && (c = s.TEXTURE_CUBE_MAP_POSITIVE_X + o), this._gl.compressedTexImage2D(c, a, t, n, i, 0, r); }), (e.prototype._uploadDataToTextureDirectly = function (e, t, n, i, r, o) { void 0 === n && (n = 0), void 0 === i && (i = 0), void 0 === o && (o = !1); var a = this._gl, s = this._getWebGLTextureType(e.type), c = this._getInternalFormat(e.format), l = void 0 === r ? this._getRGBABufferInternalSizedFormat(e.type, e.format) : this._getInternalFormat(r); this._unpackFlipY(e.invertY); var u = a.TEXTURE_2D; e.isCube && (u = a.TEXTURE_CUBE_MAP_POSITIVE_X + n); var h = Math.round(Math.log(e.width) * Math.LOG2E), d = Math.round(Math.log(e.height) * Math.LOG2E), p = o ? e.width : Math.pow(2, Math.max(h - i, 0)), f = o ? e.height : Math.pow(2, Math.max(d - i, 0)); a.texImage2D(u, i, l, p, f, 0, c, s, t); }), (e.prototype.updateTextureData = function (e, t, n, i, r, o, a, s) { void 0 === a && (a = 0), void 0 === s && (s = 0); var c = this._gl, l = this._getWebGLTextureType(e.type), u = this._getInternalFormat(e.format); this._unpackFlipY(e.invertY); var h = c.TEXTURE_2D; e.isCube && (h = c.TEXTURE_CUBE_MAP_POSITIVE_X + a), c.texSubImage2D(h, s, n, i, r, o, u, l, t); }), (e.prototype._uploadArrayBufferViewToTexture = function (e, t, n, i) { void 0 === n && (n = 0), void 0 === i && (i = 0); var r = this._gl, o = e.isCube ? r.TEXTURE_CUBE_MAP : r.TEXTURE_2D; this._bindTextureDirectly(o, e, !0), this._uploadDataToTextureDirectly(e, t, n, i), this._bindTextureDirectly(o, null, !0); }), (e.prototype._prepareWebGLTextureContinuation = function (e, t, n, i, r) { var o = this._gl; if (o) { var a = this._getSamplingParameters(r, !n); o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, a.mag), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, a.min), n || i || o.generateMipmap(o.TEXTURE_2D), this._bindTextureDirectly(o.TEXTURE_2D, null), t && t._removePendingData(e), e.onLoadedObservable.notifyObservers(e), e.onLoadedObservable.clear(); } }), (e.prototype._prepareWebGLTexture = function (t, n, i, r, o, a, s, c, l) { var u = this; void 0 === l && (l = 3); var h = this.getCaps().maxTextureSize, d = Math.min(h, this.needPOTTextures ? e.GetExponentOfTwo(i, h) : i), p = Math.min(h, this.needPOTTextures ? e.GetExponentOfTwo(r, h) : r), f = this._gl; f && (t._webGLTexture ? (this._bindTextureDirectly(f.TEXTURE_2D, t, !0), this._unpackFlipY(void 0 === o || !!o), (t.baseWidth = i), (t.baseHeight = r), (t.width = d), (t.height = p), (t.isReady = !0), c(d, p, function () { u._prepareWebGLTextureContinuation(t, n, a, s, l); }) || this._prepareWebGLTextureContinuation(t, n, a, s, l)) : n && n._removePendingData(t)); }), (e.prototype._setupFramebufferDepthAttachments = function (e, t, n, i, r) { void 0 === r && (r = 1); var o = this._gl; if (e && t) return this._getDepthStencilBuffer(n, i, r, o.DEPTH_STENCIL, o.DEPTH24_STENCIL8, o.DEPTH_STENCIL_ATTACHMENT); if (t) { var a = o.DEPTH_COMPONENT16; return this._webGLVersion > 1 && (a = o.DEPTH_COMPONENT32F), this._getDepthStencilBuffer(n, i, r, a, a, o.DEPTH_ATTACHMENT); } return e ? this._getDepthStencilBuffer(n, i, r, o.STENCIL_INDEX8, o.STENCIL_INDEX8, o.STENCIL_ATTACHMENT) : null; }), (e.prototype._releaseFramebufferObjects = function (e) { var t = this._gl; e._framebuffer && (t.deleteFramebuffer(e._framebuffer), (e._framebuffer = null)), e._depthStencilBuffer && (t.deleteRenderbuffer(e._depthStencilBuffer), (e._depthStencilBuffer = null)), e._MSAAFramebuffer && (t.deleteFramebuffer(e._MSAAFramebuffer), (e._MSAAFramebuffer = null)), e._MSAARenderBuffer && (t.deleteRenderbuffer(e._MSAARenderBuffer), (e._MSAARenderBuffer = null)); }), (e.prototype._releaseTexture = function (e) { this._releaseFramebufferObjects(e), this._deleteTexture(e._webGLTexture), this.unbindAllTextures(); var t = this._internalTexturesCache.indexOf(e); -1 !== t && this._internalTexturesCache.splice(t, 1), e._lodTextureHigh && e._lodTextureHigh.dispose(), e._lodTextureMid && e._lodTextureMid.dispose(), e._lodTextureLow && e._lodTextureLow.dispose(), e._irradianceTexture && e._irradianceTexture.dispose(); }), (e.prototype._deleteTexture = function (e) { this._gl.deleteTexture(e); }), (e.prototype._setProgram = function (e) { this._currentProgram !== e && (this._gl.useProgram(e), (this._currentProgram = e)); }), (e.prototype.bindSamplers = function (e) { var t = e.getPipelineContext(); this._setProgram(t.program); for (var n = e.getSamplers(), i = 0; i < n.length; i++) { var r = e.getUniform(n[i]); r && (this._boundUniforms[i] = r); } this._currentEffect = null; }), (e.prototype._activateCurrentTexture = function () { this._currentTextureChannel !== this._activeChannel && (this._gl.activeTexture(this._gl.TEXTURE0 + this._activeChannel), (this._currentTextureChannel = this._activeChannel)); }), (e.prototype._bindTextureDirectly = function (e, t, n, i) { void 0 === n && (n = !1), void 0 === i && (i = !1); var r = !1, o = t && t._associatedChannel > -1; return ( n && o && (this._activeChannel = t._associatedChannel), this._boundTexturesCache[this._activeChannel] !== t || i ? (this._activateCurrentTexture(), t && t.isMultiview ? this._gl.bindTexture(e, t ? t._colorTextureArray : null) : this._gl.bindTexture(e, t ? t._webGLTexture : null), (this._boundTexturesCache[this._activeChannel] = t), t && (t._associatedChannel = this._activeChannel)) : n && ((r = !0), this._activateCurrentTexture()), o && !n && this._bindSamplerUniformToChannel(t._associatedChannel, this._activeChannel), r ); }), (e.prototype._bindTexture = function (e, t) { void 0 !== e && (t && (t._associatedChannel = e), (this._activeChannel = e), this._bindTextureDirectly(this._gl.TEXTURE_2D, t)); }), (e.prototype.unbindAllTextures = function () { for (var e = 0; e < this._maxSimultaneousTextures; e++) (this._activeChannel = e), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null), this.webGLVersion > 1 && (this._bindTextureDirectly(this._gl.TEXTURE_3D, null), this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, null)); }), (e.prototype.setTexture = function (e, t, n) { void 0 !== e && (t && (this._boundUniforms[e] = t), this._setTexture(e, n)); }), (e.prototype._bindSamplerUniformToChannel = function (e, t) { var n = this._boundUniforms[e]; n && n._currentState !== t && (this._gl.uniform1i(n, t), (n._currentState = t)); }), (e.prototype._getTextureWrapMode = function (e) { switch (e) { case 1: return this._gl.REPEAT; case 0: return this._gl.CLAMP_TO_EDGE; case 2: return this._gl.MIRRORED_REPEAT; } return this._gl.REPEAT; }), (e.prototype._setTexture = function (e, t, n, i) { if ((void 0 === n && (n = !1), void 0 === i && (i = !1), !t)) return ( null != this._boundTexturesCache[e] && ((this._activeChannel = e), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null), this.webGLVersion > 1 && (this._bindTextureDirectly(this._gl.TEXTURE_3D, null), this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, null))), !1 ); if (t.video) (this._activeChannel = e), t.update(); else if (4 === t.delayLoadState) return t.delayLoad(), !1; var r; (r = i ? t.depthStencilTexture : t.isReady() ? t.getInternalTexture() : t.isCube ? this.emptyCubeTexture : t.is3D ? this.emptyTexture3D : t.is2DArray ? this.emptyTexture2DArray : this.emptyTexture), !n && r && (r._associatedChannel = e); var o = !0; this._boundTexturesCache[e] === r && (n || this._bindSamplerUniformToChannel(r._associatedChannel, e), (o = !1)), (this._activeChannel = e); var a = this._getTextureTarget(r); if ((o && this._bindTextureDirectly(a, r, n), r && !r.isMultiview)) { if (r.isCube && r._cachedCoordinatesMode !== t.coordinatesMode) { r._cachedCoordinatesMode = t.coordinatesMode; var s = 3 !== t.coordinatesMode && 5 !== t.coordinatesMode ? 1 : 0; (t.wrapU = s), (t.wrapV = s); } r._cachedWrapU !== t.wrapU && ((r._cachedWrapU = t.wrapU), this._setTextureParameterInteger(a, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(t.wrapU), r)), r._cachedWrapV !== t.wrapV && ((r._cachedWrapV = t.wrapV), this._setTextureParameterInteger(a, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(t.wrapV), r)), r.is3D && r._cachedWrapR !== t.wrapR && ((r._cachedWrapR = t.wrapR), this._setTextureParameterInteger(a, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(t.wrapR), r)), this._setAnisotropicLevel(a, r, t.anisotropicFilteringLevel); } return !0; }), (e.prototype.setTextureArray = function (e, t, n) { if (void 0 !== e && t) { (this._textureUnits && this._textureUnits.length === n.length) || (this._textureUnits = new Int32Array(n.length)); for (var i = 0; i < n.length; i++) { var r = n[i].getInternalTexture(); r ? ((this._textureUnits[i] = e + i), (r._associatedChannel = e + i)) : (this._textureUnits[i] = -1); } this._gl.uniform1iv(t, this._textureUnits); for (var o = 0; o < n.length; o++) this._setTexture(this._textureUnits[o], n[o], !0); } }), (e.prototype._setAnisotropicLevel = function (e, t, n) { var i = this._caps.textureAnisotropicFilterExtension; 11 !== t.samplingMode && 3 !== t.samplingMode && 2 !== t.samplingMode && (n = 1), i && t._cachedAnisotropicFilteringLevel !== n && (this._setTextureParameterFloat(e, i.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(n, this._caps.maxAnisotropy), t), (t._cachedAnisotropicFilteringLevel = n)); }), (e.prototype._setTextureParameterFloat = function (e, t, n, i) { this._bindTextureDirectly(e, i, !0, !0), this._gl.texParameterf(e, t, n); }), (e.prototype._setTextureParameterInteger = function (e, t, n, i) { i && this._bindTextureDirectly(e, i, !0, !0), this._gl.texParameteri(e, t, n); }), (e.prototype.unbindAllAttributes = function () { if (this._mustWipeVertexAttributes) { this._mustWipeVertexAttributes = !1; for (var e = 0; e < this._caps.maxVertexAttribs; e++) this.disableAttributeByIndex(e); } else { e = 0; for (var t = this._vertexAttribArraysEnabled.length; e < t; e++) e >= this._caps.maxVertexAttribs || !this._vertexAttribArraysEnabled[e] || this.disableAttributeByIndex(e); } }), (e.prototype.releaseEffects = function () { for (var e in this._compiledEffects) { var t = this._compiledEffects[e].getPipelineContext(); this._deletePipelineContext(t); } this._compiledEffects = {}; }), (e.prototype.dispose = function () { this.stopRenderLoop(), this.onBeforeTextureInitObservable && this.onBeforeTextureInitObservable.clear(), this._emptyTexture && (this._releaseTexture(this._emptyTexture), (this._emptyTexture = null)), this._emptyCubeTexture && (this._releaseTexture(this._emptyCubeTexture), (this._emptyCubeTexture = null)), this.releaseEffects(), this.unbindAllAttributes(), (this._boundUniforms = []), d.a.IsWindowObjectExist() && this._renderingCanvas && (this._doNotHandleContextLost || (this._renderingCanvas.removeEventListener("webglcontextlost", this._onContextLost), this._renderingCanvas.removeEventListener("webglcontextrestored", this._onContextRestored))), (this._workingCanvas = null), (this._workingContext = null), (this._currentBufferPointers = []), (this._renderingCanvas = null), (this._currentProgram = null), (this._boundRenderFunction = null), r.a.ResetCache(); for (var e = 0, t = this._activeRequests; e < t.length; e++) { t[e].abort(); } }), (e.prototype.attachContextLostEvent = function (e) { this._renderingCanvas && this._renderingCanvas.addEventListener("webglcontextlost", e, !1); }), (e.prototype.attachContextRestoredEvent = function (e) { this._renderingCanvas && this._renderingCanvas.addEventListener("webglcontextrestored", e, !1); }), (e.prototype.getError = function () { return this._gl.getError(); }), (e.prototype._canRenderToFloatFramebuffer = function () { return this._webGLVersion > 1 ? this._caps.colorBufferFloat : this._canRenderToFramebuffer(1); }), (e.prototype._canRenderToHalfFloatFramebuffer = function () { return this._webGLVersion > 1 ? this._caps.colorBufferFloat : this._canRenderToFramebuffer(2); }), (e.prototype._canRenderToFramebuffer = function (e) { for (var t = this._gl; t.getError() !== t.NO_ERROR; ); var n = !0, i = t.createTexture(); t.bindTexture(t.TEXTURE_2D, i), t.texImage2D(t.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(e), 1, 1, 0, t.RGBA, this._getWebGLTextureType(e), null), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, t.NEAREST), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, t.NEAREST); var r = t.createFramebuffer(); t.bindFramebuffer(t.FRAMEBUFFER, r), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.TEXTURE_2D, i, 0); var o = t.checkFramebufferStatus(t.FRAMEBUFFER); if (((n = (n = n && o === t.FRAMEBUFFER_COMPLETE) && t.getError() === t.NO_ERROR) && (t.clear(t.COLOR_BUFFER_BIT), (n = n && t.getError() === t.NO_ERROR)), n)) { t.bindFramebuffer(t.FRAMEBUFFER, null); var a = t.RGBA, s = t.UNSIGNED_BYTE, c = new Uint8Array(4); t.readPixels(0, 0, 1, 1, a, s, c), (n = n && t.getError() === t.NO_ERROR); } for (t.deleteTexture(i), t.deleteFramebuffer(r), t.bindFramebuffer(t.FRAMEBUFFER, null); !n && t.getError() !== t.NO_ERROR; ); return n; }), (e.prototype._getWebGLTextureType = function (e) { if (1 === this._webGLVersion) { switch (e) { case 1: return this._gl.FLOAT; case 2: return this._gl.HALF_FLOAT_OES; case 0: return this._gl.UNSIGNED_BYTE; case 8: return this._gl.UNSIGNED_SHORT_4_4_4_4; case 9: return this._gl.UNSIGNED_SHORT_5_5_5_1; case 10: return this._gl.UNSIGNED_SHORT_5_6_5; } return this._gl.UNSIGNED_BYTE; } switch (e) { case 3: return this._gl.BYTE; case 0: return this._gl.UNSIGNED_BYTE; case 4: return this._gl.SHORT; case 5: return this._gl.UNSIGNED_SHORT; case 6: return this._gl.INT; case 7: return this._gl.UNSIGNED_INT; case 1: return this._gl.FLOAT; case 2: return this._gl.HALF_FLOAT; case 8: return this._gl.UNSIGNED_SHORT_4_4_4_4; case 9: return this._gl.UNSIGNED_SHORT_5_5_5_1; case 10: return this._gl.UNSIGNED_SHORT_5_6_5; case 11: return this._gl.UNSIGNED_INT_2_10_10_10_REV; case 12: return this._gl.UNSIGNED_INT_24_8; case 13: return this._gl.UNSIGNED_INT_10F_11F_11F_REV; case 14: return this._gl.UNSIGNED_INT_5_9_9_9_REV; case 15: return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV; } return this._gl.UNSIGNED_BYTE; }), (e.prototype._getInternalFormat = function (e) { var t = this._gl.RGBA; switch (e) { case 0: t = this._gl.ALPHA; break; case 1: t = this._gl.LUMINANCE; break; case 2: t = this._gl.LUMINANCE_ALPHA; break; case 6: t = this._gl.RED; break; case 7: t = this._gl.RG; break; case 4: t = this._gl.RGB; break; case 5: t = this._gl.RGBA; } if (this._webGLVersion > 1) switch (e) { case 8: t = this._gl.RED_INTEGER; break; case 9: t = this._gl.RG_INTEGER; break; case 10: t = this._gl.RGB_INTEGER; break; case 11: t = this._gl.RGBA_INTEGER; } return t; }), (e.prototype._getRGBABufferInternalSizedFormat = function (e, t) { if (1 === this._webGLVersion) { if (void 0 !== t) switch (t) { case 0: return this._gl.ALPHA; case 1: return this._gl.LUMINANCE; case 2: return this._gl.LUMINANCE_ALPHA; case 4: return this._gl.RGB; } return this._gl.RGBA; } switch (e) { case 3: switch (t) { case 6: return this._gl.R8_SNORM; case 7: return this._gl.RG8_SNORM; case 4: return this._gl.RGB8_SNORM; case 8: return this._gl.R8I; case 9: return this._gl.RG8I; case 10: return this._gl.RGB8I; case 11: return this._gl.RGBA8I; default: return this._gl.RGBA8_SNORM; } case 0: switch (t) { case 6: return this._gl.R8; case 7: return this._gl.RG8; case 4: return this._gl.RGB8; case 5: return this._gl.RGBA8; case 8: return this._gl.R8UI; case 9: return this._gl.RG8UI; case 10: return this._gl.RGB8UI; case 11: return this._gl.RGBA8UI; case 0: return this._gl.ALPHA; case 1: return this._gl.LUMINANCE; case 2: return this._gl.LUMINANCE_ALPHA; default: return this._gl.RGBA8; } case 4: switch (t) { case 8: return this._gl.R16I; case 9: return this._gl.RG16I; case 10: return this._gl.RGB16I; case 11: default: return this._gl.RGBA16I; } case 5: switch (t) { case 8: return this._gl.R16UI; case 9: return this._gl.RG16UI; case 10: return this._gl.RGB16UI; case 11: default: return this._gl.RGBA16UI; } case 6: switch (t) { case 8: return this._gl.R32I; case 9: return this._gl.RG32I; case 10: return this._gl.RGB32I; case 11: default: return this._gl.RGBA32I; } case 7: switch (t) { case 8: return this._gl.R32UI; case 9: return this._gl.RG32UI; case 10: return this._gl.RGB32UI; case 11: default: return this._gl.RGBA32UI; } case 1: switch (t) { case 6: return this._gl.R32F; case 7: return this._gl.RG32F; case 4: return this._gl.RGB32F; case 5: default: return this._gl.RGBA32F; } case 2: switch (t) { case 6: return this._gl.R16F; case 7: return this._gl.RG16F; case 4: return this._gl.RGB16F; case 5: default: return this._gl.RGBA16F; } case 10: return this._gl.RGB565; case 13: return this._gl.R11F_G11F_B10F; case 14: return this._gl.RGB9_E5; case 8: return this._gl.RGBA4; case 9: return this._gl.RGB5_A1; case 11: switch (t) { case 5: return this._gl.RGB10_A2; case 11: return this._gl.RGB10_A2UI; default: return this._gl.RGB10_A2; } } return this._gl.RGBA8; }), (e.prototype._getRGBAMultiSampleBufferFormat = function (e) { return 1 === e ? this._gl.RGBA32F : 2 === e ? this._gl.RGBA16F : this._gl.RGBA8; }), (e.prototype._loadFile = function (t, n, i, r, o, a) { var s = this, c = e._FileToolsLoadFile(t, n, i, r, o, a); return ( this._activeRequests.push(c), c.onCompleteObservable.add(function (e) { s._activeRequests.splice(s._activeRequests.indexOf(e), 1); }), c ); }), (e._FileToolsLoadFile = function (e, t, n, i, r, a) { throw o.a.WarnImport("FileTools"); }), (e.prototype.readPixels = function (e, t, n, i, r) { void 0 === r && (r = !0); var o = r ? 4 : 3, a = r ? this._gl.RGBA : this._gl.RGB, s = new Uint8Array(i * n * o); return this._gl.readPixels(e, t, n, i, a, this._gl.UNSIGNED_BYTE, s), s; }), (e.isSupported = function () { if (null === this._isSupported) try { var e = g.a.CreateCanvas(1, 1), t = e.getContext("webgl") || e.getContext("experimental-webgl"); this._isSupported = null != t && !!window.WebGLRenderingContext; } catch (e) { this._isSupported = !1; } return this._isSupported; }), (e.CeilingPOT = function (e) { return e--, (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16), ++e; }), (e.FloorPOT = function (e) { return (e |= e >> 1), (e |= e >> 2), (e |= e >> 4), (e |= e >> 8), (e |= e >> 16) - (e >> 1); }), (e.NearestPOT = function (t) { var n = e.CeilingPOT(t), i = e.FloorPOT(t); return n - t > t - i ? i : n; }), (e.GetExponentOfTwo = function (t, n, i) { var r; switch ((void 0 === i && (i = 2), i)) { case 1: r = e.FloorPOT(t); break; case 2: r = e.NearestPOT(t); break; case 3: default: r = e.CeilingPOT(t); } return Math.min(r, n); }), (e.QueueNewFrame = function (e, t) { return d.a.IsWindowObjectExist() ? (t || (t = window), t.requestAnimationFrame ? t.requestAnimationFrame(e) : t.msRequestAnimationFrame ? t.msRequestAnimationFrame(e) : t.webkitRequestAnimationFrame ? t.webkitRequestAnimationFrame(e) : t.mozRequestAnimationFrame ? t.mozRequestAnimationFrame(e) : t.oRequestAnimationFrame ? t.oRequestAnimationFrame(e) : window.setTimeout(e, 16)) : "undefined" != typeof requestAnimationFrame ? requestAnimationFrame(e) : setTimeout(e, 16); }), (e.prototype.getHostDocument = function () { return this._renderingCanvas && this._renderingCanvas.ownerDocument ? this._renderingCanvas.ownerDocument : document; }), (e.ExceptionList = [ { key: "Chrome/63.0", capture: "63\\.0\\.3239\\.(\\d+)", captureConstraint: 108, targets: ["uniformBuffer"] }, { key: "Firefox/58", capture: null, captureConstraint: null, targets: ["uniformBuffer"] }, { key: "Firefox/59", capture: null, captureConstraint: null, targets: ["uniformBuffer"] }, { key: "Chrome/72.+?Mobile", capture: null, captureConstraint: null, targets: ["vao"] }, { key: "Chrome/73.+?Mobile", capture: null, captureConstraint: null, targets: ["vao"] }, { key: "Chrome/74.+?Mobile", capture: null, captureConstraint: null, targets: ["vao"] }, { key: "Mac OS.+Chrome/71", capture: null, captureConstraint: null, targets: ["vao"] }, { key: "Mac OS.+Chrome/72", capture: null, captureConstraint: null, targets: ["vao"] }, ]), (e._TextureLoaders = []), (e.CollisionsEpsilon = 0.001), (e._isSupported = null), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(3), o = n(6), a = n(1), s = n(35), c = n(23), l = (function (e) { function t(n, i, r) { void 0 === i && (i = null), void 0 === r && (r = !0); var s = e.call(this, n, i) || this; return ( (s._forward = new a.e(0, 0, 1)), (s._forwardInverted = new a.e(0, 0, -1)), (s._up = new a.e(0, 1, 0)), (s._right = new a.e(1, 0, 0)), (s._rightInverted = new a.e(-1, 0, 0)), (s._position = a.e.Zero()), (s._rotation = a.e.Zero()), (s._rotationQuaternion = null), (s._scaling = a.e.One()), (s._isDirty = !1), (s._transformToBoneReferal = null), (s._isAbsoluteSynced = !1), (s._billboardMode = t.BILLBOARDMODE_NONE), (s._preserveParentRotationForBillboard = !1), (s.scalingDeterminant = 1), (s._infiniteDistance = !1), (s.ignoreNonUniformScaling = !1), (s.reIntegrateRotationIntoRotationQuaternion = !1), (s._poseMatrix = null), (s._localMatrix = a.a.Zero()), (s._usePivotMatrix = !1), (s._absolutePosition = a.e.Zero()), (s._absoluteScaling = a.e.Zero()), (s._absoluteRotationQuaternion = a.b.Identity()), (s._pivotMatrix = a.a.Identity()), (s._postMultiplyPivotMatrix = !1), (s._isWorldMatrixFrozen = !1), (s._indexInSceneTransformNodesArray = -1), (s.onAfterWorldMatrixUpdateObservable = new o.c()), (s._nonUniformScaling = !1), r && s.getScene().addTransformNode(s), s ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "billboardMode", { get: function () { return this._billboardMode; }, set: function (e) { this._billboardMode !== e && (this._billboardMode = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "preserveParentRotationForBillboard", { get: function () { return this._preserveParentRotationForBillboard; }, set: function (e) { e !== this._preserveParentRotationForBillboard && (this._preserveParentRotationForBillboard = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "infiniteDistance", { get: function () { return this._infiniteDistance; }, set: function (e) { this._infiniteDistance !== e && (this._infiniteDistance = e); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "TransformNode"; }), Object.defineProperty(t.prototype, "position", { get: function () { return this._position; }, set: function (e) { (this._position = e), (this._isDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotation", { get: function () { return this._rotation; }, set: function (e) { (this._rotation = e), (this._rotationQuaternion = null), (this._isDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scaling", { get: function () { return this._scaling; }, set: function (e) { (this._scaling = e), (this._isDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotationQuaternion", { get: function () { return this._rotationQuaternion; }, set: function (e) { (this._rotationQuaternion = e), e && this._rotation.setAll(0), (this._isDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "forward", { get: function () { return a.e.Normalize(a.e.TransformNormal(this.getScene().useRightHandedSystem ? this._forwardInverted : this._forward, this.getWorldMatrix())); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "up", { get: function () { return a.e.Normalize(a.e.TransformNormal(this._up, this.getWorldMatrix())); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return a.e.Normalize(a.e.TransformNormal(this.getScene().useRightHandedSystem ? this._rightInverted : this._right, this.getWorldMatrix())); }, enumerable: !0, configurable: !0, }), (t.prototype.updatePoseMatrix = function (e) { return this._poseMatrix ? (this._poseMatrix.copyFrom(e), this) : ((this._poseMatrix = e.clone()), this); }), (t.prototype.getPoseMatrix = function () { return this._poseMatrix || (this._poseMatrix = a.a.Identity()), this._poseMatrix; }), (t.prototype._isSynchronized = function () { var e = this._cache; if (this.billboardMode !== e.billboardMode || this.billboardMode !== t.BILLBOARDMODE_NONE) return !1; if (e.pivotMatrixUpdated) return !1; if (this.infiniteDistance) return !1; if (!e.position.equals(this._position)) return !1; if (this._rotationQuaternion) { if (!e.rotationQuaternion.equals(this._rotationQuaternion)) return !1; } else if (!e.rotation.equals(this._rotation)) return !1; return !!e.scaling.equals(this._scaling); }), (t.prototype._initCache = function () { e.prototype._initCache.call(this); var t = this._cache; (t.localMatrixUpdated = !1), (t.position = a.e.Zero()), (t.scaling = a.e.Zero()), (t.rotation = a.e.Zero()), (t.rotationQuaternion = new a.b(0, 0, 0, 0)), (t.billboardMode = -1), (t.infiniteDistance = !1); }), (t.prototype.markAsDirty = function (e) { return (this._currentRenderId = Number.MAX_VALUE), (this._isDirty = !0), this; }), Object.defineProperty(t.prototype, "absolutePosition", { get: function () { return this._absolutePosition; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "absoluteScaling", { get: function () { return this._syncAbsoluteScalingAndRotation(), this._absoluteScaling; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "absoluteRotationQuaternion", { get: function () { return this._syncAbsoluteScalingAndRotation(), this._absoluteRotationQuaternion; }, enumerable: !0, configurable: !0, }), (t.prototype.setPreTransformMatrix = function (e) { return this.setPivotMatrix(e, !1); }), (t.prototype.setPivotMatrix = function (e, t) { return ( void 0 === t && (t = !0), this._pivotMatrix.copyFrom(e), (this._usePivotMatrix = !this._pivotMatrix.isIdentity()), (this._cache.pivotMatrixUpdated = !0), (this._postMultiplyPivotMatrix = t), this._postMultiplyPivotMatrix && (this._pivotMatrixInverse ? this._pivotMatrix.invertToRef(this._pivotMatrixInverse) : (this._pivotMatrixInverse = a.a.Invert(this._pivotMatrix))), this ); }), (t.prototype.getPivotMatrix = function () { return this._pivotMatrix; }), (t.prototype.instantiateHierarchy = function (e, t, n) { void 0 === e && (e = null); var i = this.clone("Clone of " + (this.name || this.id), e || this.parent, !0); i && n && n(this, i); for (var r = 0, o = this.getChildTransformNodes(!0); r < o.length; r++) { o[r].instantiateHierarchy(i, t, n); } return i; }), (t.prototype.freezeWorldMatrix = function (e) { return void 0 === e && (e = null), e ? (this._worldMatrix = e) : ((this._isWorldMatrixFrozen = !1), this.computeWorldMatrix(!0)), (this._isDirty = !1), (this._isWorldMatrixFrozen = !0), this; }), (t.prototype.unfreezeWorldMatrix = function () { return (this._isWorldMatrixFrozen = !1), this.computeWorldMatrix(!0), this; }), Object.defineProperty(t.prototype, "isWorldMatrixFrozen", { get: function () { return this._isWorldMatrixFrozen; }, enumerable: !0, configurable: !0, }), (t.prototype.getAbsolutePosition = function () { return this.computeWorldMatrix(), this._absolutePosition; }), (t.prototype.setAbsolutePosition = function (e) { if (!e) return this; var t, n, i; if (void 0 === e.x) { if (arguments.length < 3) return this; (t = arguments[0]), (n = arguments[1]), (i = arguments[2]); } else (t = e.x), (n = e.y), (i = e.z); if (this.parent) { var r = a.c.Matrix[0]; this.parent.getWorldMatrix().invertToRef(r), a.e.TransformCoordinatesFromFloatsToRef(t, n, i, r, this.position); } else (this.position.x = t), (this.position.y = n), (this.position.z = i); return this; }), (t.prototype.setPositionWithLocalVector = function (e) { return this.computeWorldMatrix(), (this.position = a.e.TransformNormal(e, this._localMatrix)), this; }), (t.prototype.getPositionExpressedInLocalSpace = function () { this.computeWorldMatrix(); var e = a.c.Matrix[0]; return this._localMatrix.invertToRef(e), a.e.TransformNormal(this.position, e); }), (t.prototype.locallyTranslate = function (e) { return this.computeWorldMatrix(!0), (this.position = a.e.TransformCoordinates(e, this._localMatrix)), this; }), (t.prototype.lookAt = function (e, n, i, r, o) { void 0 === n && (n = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = c.b.LOCAL); var s = t._lookAtVectorCache, l = o === c.b.LOCAL ? this.position : this.getAbsolutePosition(); if ((e.subtractToRef(l, s), this.setDirection(s, n, i, r), o === c.b.WORLD && this.parent)) if (this.rotationQuaternion) { var u = a.c.Matrix[0]; this.rotationQuaternion.toRotationMatrix(u); var h = a.c.Matrix[1]; this.parent.getWorldMatrix().getRotationMatrixToRef(h), h.invert(), u.multiplyToRef(h, u), this.rotationQuaternion.fromRotationMatrix(u); } else { var d = a.c.Quaternion[0]; a.b.FromEulerVectorToRef(this.rotation, d); u = a.c.Matrix[0]; d.toRotationMatrix(u); h = a.c.Matrix[1]; this.parent.getWorldMatrix().getRotationMatrixToRef(h), h.invert(), u.multiplyToRef(h, u), d.fromRotationMatrix(u), d.toEulerAnglesToRef(this.rotation); } return this; }), (t.prototype.getDirection = function (e) { var t = a.e.Zero(); return this.getDirectionToRef(e, t), t; }), (t.prototype.getDirectionToRef = function (e, t) { return a.e.TransformNormalToRef(e, this.getWorldMatrix(), t), this; }), (t.prototype.setDirection = function (e, t, n, i) { void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 0); var r = -Math.atan2(e.z, e.x) + Math.PI / 2, o = Math.sqrt(e.x * e.x + e.z * e.z), s = -Math.atan2(e.y, o); return this.rotationQuaternion ? a.b.RotationYawPitchRollToRef(r + t, s + n, i, this.rotationQuaternion) : ((this.rotation.x = s + n), (this.rotation.y = r + t), (this.rotation.z = i)), this; }), (t.prototype.setPivotPoint = function (e, t) { void 0 === t && (t = c.b.LOCAL), 0 == this.getScene().getRenderId() && this.computeWorldMatrix(!0); var n = this.getWorldMatrix(); if (t == c.b.WORLD) { var i = a.c.Matrix[0]; n.invertToRef(i), (e = a.e.TransformCoordinates(e, i)); } return this.setPivotMatrix(a.a.Translation(-e.x, -e.y, -e.z), !0); }), (t.prototype.getPivotPoint = function () { var e = a.e.Zero(); return this.getPivotPointToRef(e), e; }), (t.prototype.getPivotPointToRef = function (e) { return (e.x = -this._pivotMatrix.m[12]), (e.y = -this._pivotMatrix.m[13]), (e.z = -this._pivotMatrix.m[14]), this; }), (t.prototype.getAbsolutePivotPoint = function () { var e = a.e.Zero(); return this.getAbsolutePivotPointToRef(e), e; }), (t.prototype.getAbsolutePivotPointToRef = function (e) { return (e.x = this._pivotMatrix.m[12]), (e.y = this._pivotMatrix.m[13]), (e.z = this._pivotMatrix.m[14]), this.getPivotPointToRef(e), a.e.TransformCoordinatesToRef(e, this.getWorldMatrix(), e), this; }), (t.prototype.setParent = function (e) { if (!e && !this.parent) return this; var t = a.c.Quaternion[0], n = a.c.Vector3[0], i = a.c.Vector3[1]; if (e) { var r = a.c.Matrix[0], o = a.c.Matrix[1]; this.computeWorldMatrix(!0), e.computeWorldMatrix(!0), e.getWorldMatrix().invertToRef(o), this.getWorldMatrix().multiplyToRef(o, r), r.decompose(i, t, n); } else this.computeWorldMatrix(!0), this.getWorldMatrix().decompose(i, t, n); return this.rotationQuaternion ? this.rotationQuaternion.copyFrom(t) : t.toEulerAnglesToRef(this.rotation), this.scaling.copyFrom(i), this.position.copyFrom(n), (this.parent = e), this; }), Object.defineProperty(t.prototype, "nonUniformScaling", { get: function () { return this._nonUniformScaling; }, enumerable: !0, configurable: !0, }), (t.prototype._updateNonUniformScalingState = function (e) { return this._nonUniformScaling !== e && ((this._nonUniformScaling = e), !0); }), (t.prototype.attachToBone = function (e, t) { return (this._transformToBoneReferal = t), (this.parent = e), e.getWorldMatrix().determinant() < 0 && (this.scalingDeterminant *= -1), this; }), (t.prototype.detachFromBone = function () { return this.parent ? (this.parent.getWorldMatrix().determinant() < 0 && (this.scalingDeterminant *= -1), (this._transformToBoneReferal = null), (this.parent = null), this) : this; }), (t.prototype.rotate = function (e, n, i) { var r; if ((e.normalize(), this.rotationQuaternion || ((this.rotationQuaternion = this.rotation.toQuaternion()), this.rotation.setAll(0)), i && i !== c.b.LOCAL)) { if (this.parent) { var o = a.c.Matrix[0]; this.parent.getWorldMatrix().invertToRef(o), (e = a.e.TransformNormal(e, o)); } (r = a.b.RotationAxisToRef(e, n, t._rotationAxisCache)).multiplyToRef(this.rotationQuaternion, this.rotationQuaternion); } else (r = a.b.RotationAxisToRef(e, n, t._rotationAxisCache)), this.rotationQuaternion.multiplyToRef(r, this.rotationQuaternion); return this; }), (t.prototype.rotateAround = function (e, t, n) { t.normalize(), this.rotationQuaternion || ((this.rotationQuaternion = a.b.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z)), this.rotation.setAll(0)); var i = a.c.Vector3[0], r = a.c.Vector3[1], o = a.c.Vector3[2], s = a.c.Quaternion[0], c = a.c.Matrix[0], l = a.c.Matrix[1], u = a.c.Matrix[2], h = a.c.Matrix[3]; return ( e.subtractToRef(this.position, i), a.a.TranslationToRef(i.x, i.y, i.z, c), a.a.TranslationToRef(-i.x, -i.y, -i.z, l), a.a.RotationAxisToRef(t, n, u), l.multiplyToRef(u, h), h.multiplyToRef(c, h), h.decompose(r, s, o), this.position.addInPlace(o), s.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion), this ); }), (t.prototype.translate = function (e, t, n) { var i = e.scale(t); if (n && n !== c.b.LOCAL) this.setAbsolutePosition(this.getAbsolutePosition().add(i)); else { var r = this.getPositionExpressedInLocalSpace().add(i); this.setPositionWithLocalVector(r); } return this; }), (t.prototype.addRotation = function (e, t, n) { var i; this.rotationQuaternion ? (i = this.rotationQuaternion) : ((i = a.c.Quaternion[1]), a.b.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, i)); var r = a.c.Quaternion[0]; return a.b.RotationYawPitchRollToRef(t, e, n, r), i.multiplyInPlace(r), this.rotationQuaternion || i.toEulerAnglesToRef(this.rotation), this; }), (t.prototype._getEffectiveParent = function () { return this.parent; }), (t.prototype.computeWorldMatrix = function (e) { if (this._isWorldMatrixFrozen && !this._isDirty) return this._worldMatrix; var n = this.getScene().getRenderId(); if (!this._isDirty && !e && this.isSynchronized()) return (this._currentRenderId = n), this._worldMatrix; var i = this.getScene().activeCamera, r = 0 != (this._billboardMode & t.BILLBOARDMODE_USE_POSITION), o = this._billboardMode !== t.BILLBOARDMODE_NONE && !this.preserveParentRotationForBillboard; o && i && r && (this.lookAt(i.position), (this.billboardMode & t.BILLBOARDMODE_X) !== t.BILLBOARDMODE_X && (this.rotation.x = 0), (this.billboardMode & t.BILLBOARDMODE_Y) !== t.BILLBOARDMODE_Y && (this.rotation.y = 0), (this.billboardMode & t.BILLBOARDMODE_Z) !== t.BILLBOARDMODE_Z && (this.rotation.z = 0)), this._updateCache(); var s = this._cache; (s.pivotMatrixUpdated = !1), (s.billboardMode = this.billboardMode), (s.infiniteDistance = this.infiniteDistance), (this._currentRenderId = n), this._childUpdateId++, (this._isDirty = !1); var c = this._getEffectiveParent(), l = s.scaling, u = s.position; if (this._infiniteDistance) if (!this.parent && i) { var h = i.getWorldMatrix(), d = new a.e(h.m[12], h.m[13], h.m[14]); u.copyFromFloats(this._position.x + d.x, this._position.y + d.y, this._position.z + d.z); } else u.copyFrom(this._position); else u.copyFrom(this._position); l.copyFromFloats(this._scaling.x * this.scalingDeterminant, this._scaling.y * this.scalingDeterminant, this._scaling.z * this.scalingDeterminant); var p = s.rotationQuaternion; if (this._rotationQuaternion) { if (this.reIntegrateRotationIntoRotationQuaternion) this.rotation.lengthSquared() && (this._rotationQuaternion.multiplyInPlace(a.b.RotationYawPitchRoll(this._rotation.y, this._rotation.x, this._rotation.z)), this._rotation.copyFromFloats(0, 0, 0)); p.copyFrom(this._rotationQuaternion); } else a.b.RotationYawPitchRollToRef(this._rotation.y, this._rotation.x, this._rotation.z, p), s.rotation.copyFrom(this._rotation); if (this._usePivotMatrix) { var f = a.c.Matrix[1]; a.a.ScalingToRef(l.x, l.y, l.z, f); var m = a.c.Matrix[0]; p.toRotationMatrix(m), this._pivotMatrix.multiplyToRef(f, a.c.Matrix[4]), a.c.Matrix[4].multiplyToRef(m, this._localMatrix), this._postMultiplyPivotMatrix && this._localMatrix.multiplyToRef(this._pivotMatrixInverse, this._localMatrix), this._localMatrix.addTranslationFromFloats(u.x, u.y, u.z); } else a.a.ComposeToRef(l, p, u, this._localMatrix); if (c && c.getWorldMatrix) { if ((e && c.computeWorldMatrix(), o)) { this._transformToBoneReferal ? c.getWorldMatrix().multiplyToRef(this._transformToBoneReferal.getWorldMatrix(), a.c.Matrix[7]) : a.c.Matrix[7].copyFrom(c.getWorldMatrix()); var g = a.c.Vector3[5], b = a.c.Vector3[6]; a.c.Matrix[7].decompose(b, void 0, g), a.a.ScalingToRef(b.x, b.y, b.z, a.c.Matrix[7]), a.c.Matrix[7].setTranslation(g), this._localMatrix.multiplyToRef(a.c.Matrix[7], this._worldMatrix); } else this._transformToBoneReferal ? (this._localMatrix.multiplyToRef(c.getWorldMatrix(), a.c.Matrix[6]), a.c.Matrix[6].multiplyToRef(this._transformToBoneReferal.getWorldMatrix(), this._worldMatrix)) : this._localMatrix.multiplyToRef(c.getWorldMatrix(), this._worldMatrix); this._markSyncedWithParent(); } else this._worldMatrix.copyFrom(this._localMatrix); if (o && i && this.billboardMode && !r) { var _ = a.c.Vector3[0]; if ( (this._worldMatrix.getTranslationToRef(_), a.c.Matrix[1].copyFrom(i.getViewMatrix()), a.c.Matrix[1].setTranslationFromFloats(0, 0, 0), a.c.Matrix[1].invertToRef(a.c.Matrix[0]), (this.billboardMode & t.BILLBOARDMODE_ALL) !== t.BILLBOARDMODE_ALL) ) { a.c.Matrix[0].decompose(void 0, a.c.Quaternion[0], void 0); var v = a.c.Vector3[1]; a.c.Quaternion[0].toEulerAnglesToRef(v), (this.billboardMode & t.BILLBOARDMODE_X) !== t.BILLBOARDMODE_X && (v.x = 0), (this.billboardMode & t.BILLBOARDMODE_Y) !== t.BILLBOARDMODE_Y && (v.y = 0), (this.billboardMode & t.BILLBOARDMODE_Z) !== t.BILLBOARDMODE_Z && (v.z = 0), a.a.RotationYawPitchRollToRef(v.y, v.x, v.z, a.c.Matrix[0]); } this._worldMatrix.setTranslationFromFloats(0, 0, 0), this._worldMatrix.multiplyToRef(a.c.Matrix[0], this._worldMatrix), this._worldMatrix.setTranslation(a.c.Vector3[0]); } return ( this.ignoreNonUniformScaling ? this._updateNonUniformScalingState(!1) : this._scaling.isNonUniform ? this._updateNonUniformScalingState(!0) : c && c._nonUniformScaling ? this._updateNonUniformScalingState(c._nonUniformScaling) : this._updateNonUniformScalingState(!1), this._afterComputeWorldMatrix(), this._absolutePosition.copyFromFloats(this._worldMatrix.m[12], this._worldMatrix.m[13], this._worldMatrix.m[14]), (this._isAbsoluteSynced = !1), this.onAfterWorldMatrixUpdateObservable.notifyObservers(this), this._poseMatrix || (this._poseMatrix = a.a.Invert(this._worldMatrix)), (this._worldMatrixDeterminantIsDirty = !0), this._worldMatrix ); }), (t.prototype.resetLocalMatrix = function (e) { if ((void 0 === e && (e = !0), this.computeWorldMatrix(), e)) for (var t = this.getChildren(), n = 0; n < t.length; ++n) { var i = t[n]; if (i) { i.computeWorldMatrix(); var r = a.c.Matrix[0]; i._localMatrix.multiplyToRef(this._localMatrix, r); var o = a.c.Quaternion[0]; r.decompose(i.scaling, o, i.position), i.rotationQuaternion ? (i.rotationQuaternion = o) : o.toEulerAnglesToRef(i.rotation); } } this.scaling.copyFromFloats(1, 1, 1), this.position.copyFromFloats(0, 0, 0), this.rotation.copyFromFloats(0, 0, 0), this.rotationQuaternion && (this.rotationQuaternion = a.b.Identity()), (this._worldMatrix = a.a.Identity()); }), (t.prototype._afterComputeWorldMatrix = function () {}), (t.prototype.registerAfterWorldMatrixUpdate = function (e) { return this.onAfterWorldMatrixUpdateObservable.add(e), this; }), (t.prototype.unregisterAfterWorldMatrixUpdate = function (e) { return this.onAfterWorldMatrixUpdateObservable.removeCallback(e), this; }), (t.prototype.getPositionInCameraSpace = function (e) { return void 0 === e && (e = null), e || (e = this.getScene().activeCamera), a.e.TransformCoordinates(this.absolutePosition, e.getViewMatrix()); }), (t.prototype.getDistanceToCamera = function (e) { return void 0 === e && (e = null), e || (e = this.getScene().activeCamera), this.absolutePosition.subtract(e.globalPosition).length(); }), (t.prototype.clone = function (e, n, i) { var o = this, a = r.a.Clone(function () { return new t(e, o.getScene()); }, this); if (((a.name = e), (a.id = e), n && (a.parent = n), !i)) for (var s = this.getDescendants(!0), c = 0; c < s.length; c++) { var l = s[c]; l.clone && l.clone(e + "." + l.name, a); } return a; }), (t.prototype.serialize = function (e) { var t = r.a.Serialize(this, e); return ( (t.type = this.getClassName()), this.parent && (t.parentId = this.parent.id), (t.localMatrix = this.getPivotMatrix().asArray()), (t.isEnabled = this.isEnabled()), this.parent && (t.parentId = this.parent.id), t ); }), (t.Parse = function (e, n, i) { var o = r.a.Parse( function () { return new t(e.name, n); }, e, n, i ); return ( e.localMatrix ? o.setPreTransformMatrix(a.a.FromArray(e.localMatrix)) : e.pivotMatrix && o.setPivotMatrix(a.a.FromArray(e.pivotMatrix)), o.setEnabled(e.isEnabled), e.parentId && (o._waitingParentId = e.parentId), o ); }), (t.prototype.getChildTransformNodes = function (e, n) { var i = []; return ( this._getDescendants(i, e, function (e) { return (!n || n(e)) && e instanceof t; }), i ); }), (t.prototype.dispose = function (t, n) { if ((void 0 === n && (n = !1), this.getScene().stopAnimation(this), this.getScene().removeTransformNode(this), this.onAfterWorldMatrixUpdateObservable.clear(), t)) for (var i = 0, r = this.getChildTransformNodes(!0); i < r.length; i++) { var o = r[i]; (o.parent = null), o.computeWorldMatrix(!0); } e.prototype.dispose.call(this, t, n); }), (t.prototype.normalizeToUnitCube = function (e, t, n) { void 0 === e && (e = !0), void 0 === t && (t = !1); var i = null, r = null; t && (this.rotationQuaternion ? ((r = this.rotationQuaternion.clone()), this.rotationQuaternion.copyFromFloats(0, 0, 0, 1)) : this.rotation && ((i = this.rotation.clone()), this.rotation.copyFromFloats(0, 0, 0))); var o = this.getHierarchyBoundingVectors(e, n), a = o.max.subtract(o.min), s = Math.max(a.x, a.y, a.z); if (0 === s) return this; var c = 1 / s; return this.scaling.scaleInPlace(c), t && (this.rotationQuaternion && r ? this.rotationQuaternion.copyFrom(r) : this.rotation && i && this.rotation.copyFrom(i)), this; }), (t.prototype._syncAbsoluteScalingAndRotation = function () { this._isAbsoluteSynced || (this._worldMatrix.decompose(this._absoluteScaling, this._absoluteRotationQuaternion), (this._isAbsoluteSynced = !0)); }), (t.BILLBOARDMODE_NONE = 0), (t.BILLBOARDMODE_X = 1), (t.BILLBOARDMODE_Y = 2), (t.BILLBOARDMODE_Z = 4), (t.BILLBOARDMODE_ALL = 7), (t.BILLBOARDMODE_USE_POSITION = 128), (t._lookAtVectorCache = new a.e(0, 0, 0)), (t._rotationAxisCache = new a.b()), Object(i.c)([Object(r.o)("position")], t.prototype, "_position", void 0), Object(i.c)([Object(r.o)("rotation")], t.prototype, "_rotation", void 0), Object(i.c)([Object(r.l)("rotationQuaternion")], t.prototype, "_rotationQuaternion", void 0), Object(i.c)([Object(r.o)("scaling")], t.prototype, "_scaling", void 0), Object(i.c)([Object(r.c)("billboardMode")], t.prototype, "_billboardMode", void 0), Object(i.c)([Object(r.c)()], t.prototype, "scalingDeterminant", void 0), Object(i.c)([Object(r.c)("infiniteDistance")], t.prototype, "_infiniteDistance", void 0), Object(i.c)([Object(r.c)()], t.prototype, "ignoreNonUniformScaling", void 0), Object(i.c)([Object(r.c)()], t.prototype, "reIntegrateRotationIntoRotationQuaternion", void 0), t ); })(s.a); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.GameController = t.ETR2RenderingGroup = void 0); const r = n(248), o = n(271), a = n(272), s = n(273), c = n(139), l = n(277), u = n(29), h = n(278), d = n(280), p = n(281), f = n(283), m = n(284), g = n(285), b = n(52), _ = n(286), v = n(237), y = n(288), C = n(289), P = n(48), x = n(19); var T; !(function (e) { (e[(e.SKYBOX = 0)] = "SKYBOX"), (e[(e.TRACK_PIECES = 1)] = "TRACK_PIECES"), (e[(e.CHARACTER = 1)] = "CHARACTER"), (e[(e.PICK_UPS = 1)] = "PICK_UPS"), (e[(e.PARTICLES = 2)] = "PARTICLES"), (e[(e.UI = 3)] = "UI"); })((T = t.ETR2RenderingGroup || (t.ETR2RenderingGroup = {}))); class S { constructor() { (this._isStarted = !1), (this._isPaused = !0), (this._afterAdEvent = void 0), (this._isCheckingFocus = !1), (this._timeIntervalResume = void 0), (this.isRestarting = !1); } static get instance() { return null == this._instance && (this._instance = new S()), this._instance; } initialize(e, t) { (this._canvas = e), (this._scene = t), (this._controllers = new Array()), this._scene.freezeMaterials(), (this._scene.blockMaterialDirtyMechanism = !0), (this._scene.autoClear = !1), (this._scene.autoClearDepthAndStencil = !0), this._scene.setRenderingAutoClearDepthStencil(T.PARTICLES, !1), (this._gameState = b.gameState.getStateFromStore()), b.gameState.subscribe((e) => { this._gameState = e; }), (this._inputController = new a.GameInputContoller(this._scene)), this._controllers.push(this._inputController), (this._soundController = new c.SoundController(this._scene)), this._controllers.push(this._soundController), (this._particleController = new p.ParticleController(this._scene)), this._controllers.push(this._particleController), (this._skyboxController = new l.SkyboxController(this._scene)), this._controllers.push(this._skyboxController), (this._characterController = new r.CharacterController(this._scene)), this._controllers.push(this._characterController), (this._monkeyController = new o.MonkeyController(this._scene)), this._controllers.push(this._monkeyController), (this._coinsController = new h.CoinsController(this._scene)), this._controllers.push(this._coinsController), (this._bonusController = new f.BonusController(this._scene)), this._controllers.push(this._bonusController), (this._cameraController = new d.CameraController(this._scene)), this._controllers.push(this._cameraController), (this._powerupController = new m.PowerupController(this._scene)), this._controllers.push(this._powerupController), (this._characterFXController = new _.CharacterFXController(this._scene)), this._controllers.push(this._characterFXController), (this._shadersController = new v.ShadersController(this._scene)), this._controllers.push(this._shadersController), (this._tutorialController = new g.TutorialController(this._scene)), this._controllers.push(this._tutorialController), (this._dailyChallengesController = new y.DailyChallengesController(this._scene)), this._controllers.push(this._dailyChallengesController), (this._chestController = new C.ChestController(this._scene)), this._controllers.push(this._chestController), (this._trackController = new s.TrackController(this._scene)), this._controllers.push(this._trackController), this._initialize(), this._scene.registerBeforeRender(() => { this._preUpdate(); }), this._scene.registerAfterRender(() => { this._postUpdate(); }), this._initializeEvents(); } _initializeEvents() { u.EventHandler.instance.addListener(u.EventID.OnContinueGame, () => { S.instance.powerup.reset(), S.instance.sound.reset(), this.character.setToResurrectionState(), this._monkeyController.goIdle(), u.EventHandler.instance.fireEvent(u.EventID.OnResumeGame, !0); }), u.EventHandler.instance.addListener(u.EventID.OnEndGame, () => { this._isStarted = !1; }), u.EventHandler.instance.addListener(u.EventID.OnResetGame, this._reset.bind(this)), u.EventHandler.instance.addListener(u.EventID.OnPauseGame, this._pause.bind(this)), u.EventHandler.instance.addListener(u.EventID.OnResumeGame, (e) => { e ? this._resumeWithGrace() : this._resume(); }), u.EventHandler.instance.addListener(u.EventID.OnPlayerDeath, () => { this._isPaused = !0; }), u.EventHandler.instance.addListener(u.EventID.OnPlayGame, () => { (this._isStarted = !0), (this._isPaused = !1); }), u.EventHandler.instance.addListener(u.EventID.OnKeyPress, (e) => { "Escape" == e && 0 == this._isPaused && u.EventHandler.instance.fireEvent(u.EventID.OnPauseGame); }), this._attachDocEvents(); } _attachDocEvents() { window.addEventListener( "blur", () => { this._checkGameFocus(x.WebUtils.isIOS); }, { passive: !1 } ), document.addEventListener( "blur", () => { this._checkGameFocus(); }, { passive: !1 } ); let e = "visibilitychange", t = document; null != t.webkitHidden ? (e = "webkitvisibilitychange") : null != t.mozHidden ? (e = "mozvisibilitychange") : null != t.msHidden && (e = "msvisibilitychange"), document.addEventListener( e, () => { (t = document), ("hidden" == document.visibilityState || t.webkitHidden || t.mozHidden || t.msHidden) && this._checkGameFocus(); }, { passive: !1 } ); } checkGameAfterAd(e) { this._afterAdEvent = e; } _checkGameFocus(e = !1) { return i(this, void 0, void 0, function* () { if (this._isCheckingFocus) return; this._isCheckingFocus = !0; const t = document.hasFocus(); null != this._afterAdEvent && t ? (u.EventHandler.instance.fireEvent(this._afterAdEvent.eventId, this._afterAdEvent.args), (this._afterAdEvent = void 0)) : !this.isGameRunning || (t && !e) ? this.isGameRunning && document.activeElement != this._canvas && this._canvas.focus() : ((this._isPaused = !0), u.EventHandler.instance.fireEvent(u.EventID.OnPauseGame)), 0 == P.GameConfig.IS_AD_PLAYING && (document.hasFocus() ? u.EventHandler.instance.fireEvent(u.EventID.UnmuteAll) : u.EventHandler.instance.fireEvent(u.EventID.MuteAll)), (this._isCheckingFocus = !1); }); } _initialize() { this._controllers.forEach((e) => { e.initialize(); }); } _preUpdate() { this._checkGameFocus(), this._controllers.forEach((e) => { e.preUpdate(); }); } _postUpdate() { this._controllers.forEach((e) => { e.postUpdate(); }); } _pause() { null != this._timeIntervalResume && (clearInterval(this._timeIntervalResume), (this._timeIntervalResume = null)), (this._isPaused = !0), this._controllers.forEach((e) => { e.pause(); }); } _resume() { (this._isPaused = !1), this._controllers.forEach((e) => { e.resume(); }); } _resumeWithGrace() { let e = 3; u.EventHandler.instance.fireEvent(u.EventID.OnResumeCounterChange, e), (this._timeIntervalResume = setInterval(() => { e--, u.EventHandler.instance.fireEvent(u.EventID.OnResumeCounterChange, e), e <= 0 && (clearInterval(this._timeIntervalResume), (this._timeIntervalResume = void 0), this._resume()); }, 1e3)); } _reset() { (this._isStarted = !1), (this._isPaused = !0), this._controllers.forEach((e) => { e.reset(); }); } get isGameStarted() { return this._isStarted; } get isGameRunning() { return this._isStarted && !this._isPaused; } get input() { return this._inputController; } get track() { return this._trackController; } get coins() { return this._coinsController; } get bonus() { return this._bonusController; } get character() { return this._characterController; } get camera() { return this._cameraController; } get sound() { return this._soundController; } get particle() { return this._particleController; } get skybox() { return this._skyboxController; } get tutorial() { return this._tutorialController; } get powerup() { return this._powerupController; } get shader() { return this._shadersController; } get dailyChallenges() { return this._dailyChallengesController; } get gameState() { return this._gameState; } } t.GameController = S; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this._isDirty = !0), (this._areLightsDirty = !0), (this._areLightsDisposed = !1), (this._areAttributesDirty = !0), (this._areTexturesDirty = !0), (this._areFresnelDirty = !0), (this._areMiscDirty = !0), (this._areImageProcessingDirty = !0), (this._normals = !1), (this._uvs = !1), (this._needNormals = !1), (this._needUVs = !1); } return ( Object.defineProperty(e.prototype, "isDirty", { get: function () { return this._isDirty; }, enumerable: !0, configurable: !0, }), (e.prototype.markAsProcessed = function () { (this._isDirty = !1), (this._areAttributesDirty = !1), (this._areTexturesDirty = !1), (this._areFresnelDirty = !1), (this._areLightsDirty = !1), (this._areLightsDisposed = !1), (this._areMiscDirty = !1), (this._areImageProcessingDirty = !1); }), (e.prototype.markAsUnprocessed = function () { this._isDirty = !0; }), (e.prototype.markAllAsDirty = function () { (this._areTexturesDirty = !0), (this._areAttributesDirty = !0), (this._areLightsDirty = !0), (this._areFresnelDirty = !0), (this._areMiscDirty = !0), (this._areImageProcessingDirty = !0), (this._isDirty = !0); }), (e.prototype.markAsImageProcessingDirty = function () { (this._areImageProcessingDirty = !0), (this._isDirty = !0); }), (e.prototype.markAsLightDirty = function (e) { void 0 === e && (e = !1), (this._areLightsDirty = !0), (this._areLightsDisposed = this._areLightsDisposed || e), (this._isDirty = !0); }), (e.prototype.markAsAttributesDirty = function () { (this._areAttributesDirty = !0), (this._isDirty = !0); }), (e.prototype.markAsTexturesDirty = function () { (this._areTexturesDirty = !0), (this._isDirty = !0); }), (e.prototype.markAsFresnelDirty = function () { (this._areFresnelDirty = !0), (this._isDirty = !0); }), (e.prototype.markAsMiscDirty = function () { (this._areMiscDirty = !0), (this._isDirty = !0); }), (e.prototype.rebuild = function () { this._keys && delete this._keys, (this._keys = []); for (var e = 0, t = Object.keys(this); e < t.length; e++) { var n = t[e]; "_" !== n[0] && this._keys.push(n); } }), (e.prototype.isEqual = function (e) { if (this._keys.length !== e._keys.length) return !1; for (var t = 0; t < this._keys.length; t++) { var n = this._keys[t]; if (this[n] !== e[n]) return !1; } return !0; }), (e.prototype.cloneTo = function (e) { this._keys.length !== e._keys.length && (e._keys = this._keys.slice(0)); for (var t = 0; t < this._keys.length; t++) { var n = this._keys[t]; e[n] = this[n]; } }), (e.prototype.reset = function () { for (var e = 0; e < this._keys.length; e++) { var t = this._keys[e]; switch (typeof this[t]) { case "number": this[t] = 0; break; case "string": this[t] = ""; break; default: this[t] = !1; } } }), (e.prototype.toString = function () { for (var e = "", t = 0; t < this._keys.length; t++) { var n = this._keys[t], i = this[n]; switch (typeof i) { case "number": case "string": e += "#define " + n + " " + i + "\n"; break; default: i && (e += "#define " + n + "\n"); } } return e; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return a; }), n.d(t, "b", function () { return s; }); var i = n(10), r = n(3), o = n(26), a = {}, s = (function () { function e(e) { (this.attached = {}), (this.camera = e), (this.checkInputs = function () {}); } return ( (e.prototype.add = function (e) { var t = e.getSimpleName(); this.attached[t] ? i.a.Warn("camera input of type " + t + " already exists on camera") : ((this.attached[t] = e), (e.camera = this.camera), e.checkInputs && (this.checkInputs = this._addCheckInputs(e.checkInputs.bind(e))), this.attachedElement && e.attachControl(this.attachedElement)); }), (e.prototype.remove = function (e) { for (var t in this.attached) { var n = this.attached[t]; n === e && (n.detachControl(this.attachedElement), (n.camera = null), delete this.attached[t], this.rebuildInputCheck()); } }), (e.prototype.removeByType = function (e) { for (var t in this.attached) { var n = this.attached[t]; n.getClassName() === e && (n.detachControl(this.attachedElement), (n.camera = null), delete this.attached[t], this.rebuildInputCheck()); } }), (e.prototype._addCheckInputs = function (e) { var t = this.checkInputs; return function () { t(), e(); }; }), (e.prototype.attachInput = function (e) { this.attachedElement && e.attachControl(this.attachedElement, this.noPreventDefault); }), (e.prototype.attachElement = function (e, t) { if ((void 0 === t && (t = !1), !this.attachedElement)) for (var n in ((t = !o.a.ForceAttachControlToAlwaysPreventDefault && t), (this.attachedElement = e), (this.noPreventDefault = t), this.attached)) this.attached[n].attachControl(e, t); }), (e.prototype.detachElement = function (e, t) { if ((void 0 === t && (t = !1), this.attachedElement === e)) { for (var n in this.attached) this.attached[n].detachControl(e), t && (this.attached[n].camera = null); this.attachedElement = null; } }), (e.prototype.rebuildInputCheck = function () { for (var e in ((this.checkInputs = function () {}), this.attached)) { var t = this.attached[e]; t.checkInputs && (this.checkInputs = this._addCheckInputs(t.checkInputs.bind(t))); } }), (e.prototype.clear = function () { this.attachedElement && this.detachElement(this.attachedElement, !0), (this.attached = {}), (this.attachedElement = null), (this.checkInputs = function () {}); }), (e.prototype.serialize = function (e) { var t = {}; for (var n in this.attached) { var i = this.attached[n], o = r.a.Serialize(i); t[i.getClassName()] = o; } e.inputsmgr = t; }), (e.prototype.parse = function (e) { var t = e.inputsmgr; if (t) for (var n in (this.clear(), t)) { if ((s = a[n])) { var i = t[n], o = r.a.Parse( function () { return new s(); }, i, null ); this.add(o); } } else for (var n in this.attached) { var s; if ((s = a[this.attached[n].getClassName()])) { o = r.a.Parse( function () { return new s(); }, e, null ); this.remove(this.attached[n]), this.add(o); } } }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this._defines = {}), (this._currentRank = 32), (this._maxRank = -1), (this._mesh = null); } return ( (e.prototype.unBindMesh = function () { this._mesh = null; }), (e.prototype.addFallback = function (e, t) { this._defines[e] || (e < this._currentRank && (this._currentRank = e), e > this._maxRank && (this._maxRank = e), (this._defines[e] = new Array())), this._defines[e].push(t); }), (e.prototype.addCPUSkinningFallback = function (e, t) { (this._mesh = t), e < this._currentRank && (this._currentRank = e), e > this._maxRank && (this._maxRank = e); }), Object.defineProperty(e.prototype, "hasMoreFallbacks", { get: function () { return this._currentRank <= this._maxRank; }, enumerable: !0, configurable: !0, }), (e.prototype.reduce = function (e, t) { if (this._mesh && this._mesh.computeBonesUsingShaders && this._mesh.numBoneInfluencers > 0) { (this._mesh.computeBonesUsingShaders = !1), (e = e.replace("#define NUM_BONE_INFLUENCERS " + this._mesh.numBoneInfluencers, "#define NUM_BONE_INFLUENCERS 0")), (t._bonesComputationForcedToCPU = !0); for (var n = this._mesh.getScene(), i = 0; i < n.meshes.length; i++) { var r = n.meshes[i]; if (r.material) { if (r.computeBonesUsingShaders && 0 !== r.numBoneInfluencers) if (r.material.getEffect() === t) r.computeBonesUsingShaders = !1; else if (r.subMeshes) for (var o = 0, a = r.subMeshes; o < a.length; o++) { if (a[o].effect === t) { r.computeBonesUsingShaders = !1; break; } } } else !this._mesh.material && r.computeBonesUsingShaders && r.numBoneInfluencers > 0 && (r.computeBonesUsingShaders = !1); } } else { var s = this._defines[this._currentRank]; if (s) for (i = 0; i < s.length; i++) e = e.replace("#define " + s[i], ""); this._currentRank++; } return e; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return h; }); var i = n(2), r = n(6), o = n(12), a = n(1), s = n(8), c = n(135), l = n(136), u = (n(166), n(209), n(14)), h = (function (e) { function t(t, n, i, o, c, u, h, d, p, f, m, g, b) { void 0 === c && (c = !0), void 0 === u && (u = 0), void 0 === h && (h = !1), void 0 === d && (d = s.a.TRILINEAR_SAMPLINGMODE), void 0 === p && (p = !0), void 0 === f && (f = !1), void 0 === m && (m = !1), void 0 === g && (g = 5), void 0 === b && (b = !1); var _ = e.call(this, null, i, !o) || this; return ( (_.isCube = h), (_.renderParticles = !0), (_.renderSprites = !1), (_.coordinatesMode = s.a.PROJECTION_MODE), (_.ignoreCameraViewport = !1), (_.onBeforeBindObservable = new r.c()), (_.onAfterUnbindObservable = new r.c()), (_.onBeforeRenderObservable = new r.c()), (_.onAfterRenderObservable = new r.c()), (_.onClearObservable = new r.c()), (_.onResizeObservable = new r.c()), (_._currentRefreshId = -1), (_._refreshRate = 1), (_._samples = 1), (_.boundingBoxPosition = a.e.Zero()), (i = _.getScene()) ? ((_.renderList = new Array()), (_._engine = i.getEngine()), (_.name = t), (_.isRenderTarget = !0), (_._initialSizeParameter = n), _._processSizeParameter(n), (_._resizeObserver = _.getScene() .getEngine() .onResizeObservable.add(function () {})), (_._generateMipMaps = !!o), (_._doNotChangeAspectRatio = c), (_._renderingManager = new l.b(i)), (_._renderingManager._useSceneAutoClearSetup = !0), m || ((_._renderTargetOptions = { generateMipMaps: o, type: u, format: g, samplingMode: d, generateDepthBuffer: p, generateStencilBuffer: f }), d === s.a.NEAREST_SAMPLINGMODE && ((_.wrapU = s.a.CLAMP_ADDRESSMODE), (_.wrapV = s.a.CLAMP_ADDRESSMODE)), b || (h ? ((_._texture = i.getEngine().createRenderTargetCubeTexture(_.getRenderSize(), _._renderTargetOptions)), (_.coordinatesMode = s.a.INVCUBIC_MODE), (_._textureMatrix = a.a.Identity())) : (_._texture = i.getEngine().createRenderTargetTexture(_._size, _._renderTargetOptions)))), _) : _ ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "renderList", { get: function () { return this._renderList; }, set: function (e) { (this._renderList = e), this._renderList && this._hookArray(this._renderList); }, enumerable: !0, configurable: !0, }), (t.prototype._hookArray = function (e) { var t = this, n = e.push; e.push = function () { for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r]; var o = 0 === e.length, a = n.apply(e, i); return ( o && t.getScene().meshes.forEach(function (e) { e._markSubMeshesAsLightDirty(); }), a ); }; var i = e.splice; e.splice = function (n, r) { var o = i.apply(e, [n, r]); return ( 0 === e.length && t.getScene().meshes.forEach(function (e) { e._markSubMeshesAsLightDirty(); }), o ); }; }), Object.defineProperty(t.prototype, "onAfterUnbind", { set: function (e) { this._onAfterUnbindObserver && this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver), (this._onAfterUnbindObserver = this.onAfterUnbindObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onBeforeRender", { set: function (e) { this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onAfterRender", { set: function (e) { this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onClear", { set: function (e) { this._onClearObserver && this.onClearObservable.remove(this._onClearObserver), (this._onClearObserver = this.onClearObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "renderTargetOptions", { get: function () { return this._renderTargetOptions; }, enumerable: !0, configurable: !0, }), (t.prototype._onRatioRescale = function () { this._sizeRatio && this.resize(this._initialSizeParameter); }), Object.defineProperty(t.prototype, "boundingBoxSize", { get: function () { return this._boundingBoxSize; }, set: function (e) { if (!this._boundingBoxSize || !this._boundingBoxSize.equals(e)) { this._boundingBoxSize = e; var t = this.getScene(); t && t.markAllMaterialsAsDirty(1); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "depthStencilTexture", { get: function () { var e; return (null === (e = this.getInternalTexture()) || void 0 === e ? void 0 : e._depthStencilTexture) || null; }, enumerable: !0, configurable: !0, }), (t.prototype.createDepthStencilTexture = function (e, t, n) { void 0 === e && (e = 0), void 0 === t && (t = !0), void 0 === n && (n = !1); var i = this.getInternalTexture(); if (this.getScene() && i) { var r = this.getScene().getEngine(); i._depthStencilTexture = r.createDepthStencilTexture(this._size, { bilinearFiltering: t, comparisonFunction: e, generateStencil: n, isCube: this.isCube }); } }), (t.prototype._processSizeParameter = function (e) { e.ratio ? ((this._sizeRatio = e.ratio), (this._size = { width: this._bestReflectionRenderTargetDimension(this._engine.getRenderWidth(), this._sizeRatio), height: this._bestReflectionRenderTargetDimension(this._engine.getRenderHeight(), this._sizeRatio), })) : (this._size = e); }), Object.defineProperty(t.prototype, "samples", { get: function () { return this._samples; }, set: function (e) { if (this._samples !== e) { var t = this.getScene(); t && (this._samples = t.getEngine().updateRenderTargetTextureSampleCount(this._texture, e)); } }, enumerable: !0, configurable: !0, }), (t.prototype.resetRefreshCounter = function () { this._currentRefreshId = -1; }), Object.defineProperty(t.prototype, "refreshRate", { get: function () { return this._refreshRate; }, set: function (e) { (this._refreshRate = e), this.resetRefreshCounter(); }, enumerable: !0, configurable: !0, }), (t.prototype.addPostProcess = function (e) { if (!this._postProcessManager) { var t = this.getScene(); if (!t) return; (this._postProcessManager = new c.a(t)), (this._postProcesses = new Array()); } this._postProcesses.push(e), (this._postProcesses[0].autoClear = !1); }), (t.prototype.clearPostProcesses = function (e) { if ((void 0 === e && (e = !1), this._postProcesses)) { if (e) for (var t = 0, n = this._postProcesses; t < n.length; t++) { n[t].dispose(); } this._postProcesses = []; } }), (t.prototype.removePostProcess = function (e) { if (this._postProcesses) { var t = this._postProcesses.indexOf(e); -1 !== t && (this._postProcesses.splice(t, 1), this._postProcesses.length > 0 && (this._postProcesses[0].autoClear = !1)); } }), (t.prototype._shouldRender = function () { return -1 === this._currentRefreshId || this.refreshRate === this._currentRefreshId ? ((this._currentRefreshId = 1), !0) : (this._currentRefreshId++, !1); }), (t.prototype.getRenderSize = function () { return this.getRenderWidth(); }), (t.prototype.getRenderWidth = function () { return this._size.width ? this._size.width : this._size; }), (t.prototype.getRenderHeight = function () { return this._size.width ? this._size.height : this._size; }), (t.prototype.getRenderLayers = function () { var e = this._size.layers; return e || 0; }), Object.defineProperty(t.prototype, "canRescale", { get: function () { return !0; }, enumerable: !0, configurable: !0, }), (t.prototype.scale = function (e) { var t = Math.max(1, this.getRenderSize() * e); this.resize(t); }), (t.prototype.getReflectionTextureMatrix = function () { return this.isCube ? this._textureMatrix : e.prototype.getReflectionTextureMatrix.call(this); }), (t.prototype.resize = function (e) { var t = this.isCube; this.releaseInternalTexture(); var n = this.getScene(); n && (this._processSizeParameter(e), (this._texture = t ? n.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions) : n.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions)), this.onResizeObservable.hasObservers() && this.onResizeObservable.notifyObservers(this)); }), (t.prototype.render = function (e, t) { if ((void 0 === e && (e = !1), void 0 === t && (t = !1), (s = this.getScene()))) { var n, i = s.getEngine(); if ((void 0 !== this.useCameraPostProcesses && (e = this.useCameraPostProcesses), this._waitingRenderList)) { this.renderList = []; for (var r = 0; r < this._waitingRenderList.length; r++) { var o = this._waitingRenderList[r], a = s.getMeshByID(o); a && this.renderList.push(a); } delete this._waitingRenderList; } if (this.renderListPredicate) { var s; if ((this.renderList ? (this.renderList.length = 0) : (this.renderList = []), !(s = this.getScene()))) return; var c = s.meshes; for (r = 0; r < c.length; r++) { var l = c[r]; this.renderListPredicate(l) && this.renderList.push(l); } } if ( (this.onBeforeBindObservable.notifyObservers(this), this.activeCamera ? ((n = this.activeCamera), i.setViewport(this.activeCamera.viewport, this.getRenderWidth(), this.getRenderHeight()), this.activeCamera !== s.activeCamera && s.setTransformMatrix(this.activeCamera.getViewMatrix(), this.activeCamera.getProjectionMatrix(!0))) : (n = s.activeCamera) && i.setViewport(n.viewport, this.getRenderWidth(), this.getRenderHeight()), (this._defaultRenderListPrepared = !1), this.is2DArray) ) for (var u = 0; u < this.getRenderLayers(); u++) this.renderToTarget(0, e, t, u, n), s.incrementRenderId(), s.resetCachedMaterial(); else if (this.isCube) for (var h = 0; h < 6; h++) this.renderToTarget(h, e, t, void 0, n), s.incrementRenderId(), s.resetCachedMaterial(); else this.renderToTarget(0, e, t, void 0, n); this.onAfterUnbindObservable.notifyObservers(this), s.activeCamera && ((s.getEngine().scenes.length > 1 || (this.activeCamera && this.activeCamera !== s.activeCamera)) && s.setTransformMatrix(s.activeCamera.getViewMatrix(), s.activeCamera.getProjectionMatrix(!0)), i.setViewport(s.activeCamera.viewport)), s.resetCachedMaterial(); } }), (t.prototype._bestReflectionRenderTargetDimension = function (e, t) { var n = e * t, i = u.a.NearestPOT(n + 16384 / (128 + n)); return Math.min(u.a.FloorPOT(e), i); }), (t.prototype._prepareRenderingManager = function (e, t, n, i) { var r = this.getScene(); if (r) { this._renderingManager.reset(); for (var o = r.getRenderId(), a = 0; a < t; a++) { var s = e[a]; if (s) { if (!s.isReady(0 === this.refreshRate)) { this.resetRefreshCounter(); continue; } s._preActivateForIntermediateRendering(o); var c = void 0; if (((c = !(!i || !n) && 0 == (s.layerMask & n.layerMask)), s.isEnabled() && s.isVisible && s.subMeshes && !c && s._activate(o, !0) && s.subMeshes.length)) { s.isAnInstance ? (s = s.sourceMesh) : (s._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = !1), (s._internalAbstractMeshDataInfo._isActiveIntermediate = !0); for (var l = 0; l < s.subMeshes.length; l++) { var u = s.subMeshes[l]; this._renderingManager.dispatch(u, s); } } } } for (var h = 0; h < r.particleSystems.length; h++) { var d = r.particleSystems[h], p = d.emitter; d.isStarted() && p && p.position && p.isEnabled() && e.indexOf(p) >= 0 && this._renderingManager.dispatchParticles(d); } } }), (t.prototype._bindFrameBuffer = function (e, t) { void 0 === e && (e = 0), void 0 === t && (t = 0); var n = this.getScene(); if (n) { var i = n.getEngine(); this._texture && i.bindFramebuffer(this._texture, this.isCube ? e : void 0, void 0, void 0, this.ignoreCameraViewport, 0, t); } }), (t.prototype.unbindFrameBuffer = function (e, t) { var n = this; this._texture && e.unBindFramebuffer(this._texture, this.isCube, function () { n.onAfterRenderObservable.notifyObservers(t); }); }), (t.prototype.renderToTarget = function (e, t, n, i, r) { void 0 === i && (i = 0), void 0 === r && (r = null); var a = this.getScene(); if (a) { var s = a.getEngine(); if (this._texture) { this._postProcessManager ? this._postProcessManager._prepareFrame(this._texture, this._postProcesses) : (t && a.postProcessManager._prepareFrame(this._texture)) || this._bindFrameBuffer(e, i), this.is2DArray ? this.onBeforeRenderObservable.notifyObservers(i) : this.onBeforeRenderObservable.notifyObservers(e); var c = null, l = this.renderList ? this.renderList : a.getActiveMeshes().data, u = this.renderList ? this.renderList.length : a.getActiveMeshes().length; this.getCustomRenderList && (c = this.getCustomRenderList(this.is2DArray ? i : e, l, u)), c ? this._prepareRenderingManager(c, c.length, r, !1) : (this._defaultRenderListPrepared || (this._prepareRenderingManager(l, u, r, !this.renderList), (this._defaultRenderListPrepared = !0)), (c = l)), this.onClearObservable.hasObservers() ? this.onClearObservable.notifyObservers(s) : s.clear(this.clearColor || a.clearColor, !0, !0, !0), this._doNotChangeAspectRatio || a.updateTransformMatrix(!0); for (var h = 0, d = a._beforeRenderTargetDrawStage; h < d.length; h++) { d[h].action(this); } this._renderingManager.render(this.customRenderFunction, c, this.renderParticles, this.renderSprites); for (var p = 0, f = a._afterRenderTargetDrawStage; p < f.length; p++) { f[p].action(this); } this._postProcessManager ? this._postProcessManager._finalizeFrame(!1, this._texture, e, this._postProcesses, this.ignoreCameraViewport) : t && a.postProcessManager._finalizeFrame(!1, this._texture, e), this._doNotChangeAspectRatio || a.updateTransformMatrix(!0), n && o.b.DumpFramebuffer(this.getRenderWidth(), this.getRenderHeight(), s), this.isCube && 5 !== e ? this.onAfterRenderObservable.notifyObservers(e) : (this.isCube && 5 === e && s.generateMipMapsForCubemap(this._texture), this.unbindFrameBuffer(s, e)); } } }), (t.prototype.setRenderingOrder = function (e, t, n, i) { void 0 === t && (t = null), void 0 === n && (n = null), void 0 === i && (i = null), this._renderingManager.setRenderingOrder(e, t, n, i); }), (t.prototype.setRenderingAutoClearDepthStencil = function (e, t) { this._renderingManager.setRenderingAutoClearDepthStencil(e, t), (this._renderingManager._useSceneAutoClearSetup = !1); }), (t.prototype.clone = function () { var e = this.getSize(), n = new t( this.name, e, this.getScene(), this._renderTargetOptions.generateMipMaps, this._doNotChangeAspectRatio, this._renderTargetOptions.type, this.isCube, this._renderTargetOptions.samplingMode, this._renderTargetOptions.generateDepthBuffer, this._renderTargetOptions.generateStencilBuffer ); return (n.hasAlpha = this.hasAlpha), (n.level = this.level), (n.coordinatesMode = this.coordinatesMode), this.renderList && (n.renderList = this.renderList.slice(0)), n; }), (t.prototype.serialize = function () { if (!this.name) return null; var t = e.prototype.serialize.call(this); if (((t.renderTargetSize = this.getRenderSize()), (t.renderList = []), this.renderList)) for (var n = 0; n < this.renderList.length; n++) t.renderList.push(this.renderList[n].id); return t; }), (t.prototype.disposeFramebufferObjects = function () { var e = this.getInternalTexture(), t = this.getScene(); e && t && t.getEngine()._releaseFramebufferObjects(e); }), (t.prototype.dispose = function () { this.onResizeObservable.clear(), this.onClearObservable.clear(), this.onAfterRenderObservable.clear(), this.onAfterUnbindObservable.clear(), this.onBeforeBindObservable.clear(), this.onBeforeRenderObservable.clear(), this._postProcessManager && (this._postProcessManager.dispose(), (this._postProcessManager = null)), this.clearPostProcesses(!0), this._resizeObserver && (this.getScene().getEngine().onResizeObservable.remove(this._resizeObserver), (this._resizeObserver = null)), (this.renderList = null); var t = this.getScene(); if (t) { var n = t.customRenderTargets.indexOf(this); n >= 0 && t.customRenderTargets.splice(n, 1); for (var i = 0, r = t.cameras; i < r.length; i++) { var o = r[i]; (n = o.customRenderTargets.indexOf(this)) >= 0 && o.customRenderTargets.splice(n, 1); } this.depthStencilTexture && this.getScene().getEngine()._releaseTexture(this.depthStencilTexture), e.prototype.dispose.call(this); } }), (t.prototype._rebuild = function () { this.refreshRate === t.REFRESHRATE_RENDER_ONCE && (this.refreshRate = t.REFRESHRATE_RENDER_ONCE), this._postProcessManager && this._postProcessManager._rebuild(); }), (t.prototype.freeRenderingGroups = function () { this._renderingManager && this._renderingManager.freeRenderingGroups(); }), (t.prototype.getViewCount = function () { return 1; }), (t.REFRESHRATE_RENDER_ONCE = 0), (t.REFRESHRATE_RENDER_ONEVERYFRAME = 1), (t.REFRESHRATE_RENDER_ONEVERYTWOFRAMES = 2), t ); })(s.a); s.a._CreateRenderTargetTexture = function (e, t, n, i) { return new h(e, t, n, i); }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(179), r = (function () { function e() {} return ( (e.EnableFor = function (t) { (t._tags = t._tags || {}), (t.hasTags = function () { return e.HasTags(t); }), (t.addTags = function (n) { return e.AddTagsTo(t, n); }), (t.removeTags = function (n) { return e.RemoveTagsFrom(t, n); }), (t.matchesTagsQuery = function (n) { return e.MatchesQuery(t, n); }); }), (e.DisableFor = function (e) { delete e._tags, delete e.hasTags, delete e.addTags, delete e.removeTags, delete e.matchesTagsQuery; }), (e.HasTags = function (e) { if (!e._tags) return !1; var t = e._tags; for (var n in t) if (t.hasOwnProperty(n)) return !0; return !1; }), (e.GetTags = function (e, t) { if ((void 0 === t && (t = !0), !e._tags)) return null; if (t) { var n = []; for (var i in e._tags) e._tags.hasOwnProperty(i) && !0 === e._tags[i] && n.push(i); return n.join(" "); } return e._tags; }), (e.AddTagsTo = function (t, n) { n && "string" == typeof n && n.split(" ").forEach(function (n, i, r) { e._AddTagTo(t, n); }); }), (e._AddTagTo = function (t, n) { "" !== (n = n.trim()) && "true" !== n && "false" !== n && (n.match(/[\s]/) || n.match(/^([!]|([|]|[&]){2})/) || (e.EnableFor(t), (t._tags[n] = !0))); }), (e.RemoveTagsFrom = function (t, n) { if (e.HasTags(t)) { var i = n.split(" "); for (var r in i) e._RemoveTagFrom(t, i[r]); } }), (e._RemoveTagFrom = function (e, t) { delete e._tags[t]; }), (e.MatchesQuery = function (t, n) { return ( void 0 === n || ("" === n ? e.HasTags(t) : i.a.Eval(n, function (n) { return e.HasTags(t) && t._tags[n]; })) ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(2), r = n(1), o = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return (i._normalMatrix = new r.a()), (i.allowShaderHotSwapping = !0), (i._storeEffectOnSubMeshes = !0), i; } return ( Object(i.d)(t, e), (t.prototype.getEffect = function () { return this._activeEffect; }), (t.prototype.isReady = function (e, t) { return !!e && (!e.subMeshes || 0 === e.subMeshes.length || this.isReadyForSubMesh(e, e.subMeshes[0], t)); }), (t.prototype.bindOnlyWorldMatrix = function (e) { this._activeEffect.setMatrix("world", e); }), (t.prototype.bindOnlyNormalMatrix = function (e) { this._activeEffect.setMatrix("normalMatrix", e); }), (t.prototype.bind = function (e, t) { t && this.bindForSubMesh(e, t, t.subMeshes[0]); }), (t.prototype._afterBind = function (t, n) { void 0 === n && (n = null), e.prototype._afterBind.call(this, t), (this.getScene()._cachedEffect = n); }), (t.prototype._mustRebind = function (e, t, n) { return void 0 === n && (n = 1), e.isCachedMaterialInvalid(this, t, n); }), t ); })(n(28).a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }), n.d(t, "b", function () { return o; }); var i = n(2), r = (function () { function e(t) { (this.length = 0), (this.data = new Array(t)), (this._id = e._GlobalId++); } return ( (e.prototype.push = function (e) { (this.data[this.length++] = e), this.length > this.data.length && (this.data.length *= 2); }), (e.prototype.forEach = function (e) { for (var t = 0; t < this.length; t++) e(this.data[t]); }), (e.prototype.sort = function (e) { this.data.sort(e); }), (e.prototype.reset = function () { this.length = 0; }), (e.prototype.dispose = function () { this.reset(), this.data && ((this.data.length = 0), (this.data = [])); }), (e.prototype.concat = function (e) { if (0 !== e.length) { this.length + e.length > this.data.length && (this.data.length = 2 * (this.length + e.length)); for (var t = 0; t < e.length; t++) this.data[this.length++] = (e.data || e)[t]; } }), (e.prototype.indexOf = function (e) { var t = this.data.indexOf(e); return t >= this.length ? -1 : t; }), (e.prototype.contains = function (e) { return -1 !== this.indexOf(e); }), (e._GlobalId = 0), e ); })(), o = (function (e) { function t() { var t = (null !== e && e.apply(this, arguments)) || this; return (t._duplicateId = 0), t; } return ( Object(i.d)(t, e), (t.prototype.push = function (t) { e.prototype.push.call(this, t), t.__smartArrayFlags || (t.__smartArrayFlags = {}), (t.__smartArrayFlags[this._id] = this._duplicateId); }), (t.prototype.pushNoDuplicate = function (e) { return (!e.__smartArrayFlags || e.__smartArrayFlags[this._id] !== this._duplicateId) && (this.push(e), !0); }), (t.prototype.reset = function () { e.prototype.reset.call(this), this._duplicateId++; }), (t.prototype.concatWithNoDuplicate = function (e) { if (0 !== e.length) { this.length + e.length > this.data.length && (this.data.length = 2 * (this.length + e.length)); for (var t = 0; t < e.length; t++) { var n = (e.data || e)[t]; this.pushNoDuplicate(n); } } }), t ); })(r); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.GameConfig = void 0); class i { static get showDebugInfo() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("FPS INFO"); } static get isGodMode() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("GOD MODE"); } static get showColliders() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("COLLIDERS"); } static get showPlayerCollider() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("PLAYER COLLIDER"); } static get showPathPoints() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("PATH POINTS"); } static get canSwitchCamera() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("SECOND CAMERA"); } static get canShowInspector() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("INSPECTOR"); } static get showDeathInfo() { return !!i.IS_DEBUG && i.DEBUG_FEATURES.includes("DEATH INFO"); } } (t.GameConfig = i), (i.DEFAULT_ZONES = ["Base", "Forest", "Narrows", "WaterSlide", "MineCart"]), (i.DEFAULT_REGION = "Machu"), (i.IS_PROD = !1), (i.IS_DEBUG = !1), (i.IS_RELEASE = !0), (i.BUILD_VERSION = "1.0.0"), (i.DEBUG_SELECTED_ZONES = [...i.DEFAULT_ZONES]), (i.DEBUG_MIN_DISTANCE_BETWEEN_BASE_ZONE_CHANGE = 80), (i.MAX_START_PIECES = 10), (i.HAS_AD_BLOCKER = !1), (i.COIN_REWARDS_FROM_AD = 100), (i.IS_AD_PLAYING = !1), (i.DEBUG_FEATURES = i.IS_DEBUG ? ["FPS INFO", "SECOND CAMERA", "INSPECTOR", "DEATH INFO"] : []), (i.ALL_DEBUG_FEATURES = ["FPS INFO", "GOD MODE", "PATH POINTS", "SECOND CAMERA", "INSPECTOR", "COLLIDERS", "PLAYER COLLIDER", "DEATH INFO"]); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(3), o = n(158), a = n(5), s = n(95), c = n(13), l = (function (e) { function t(n, i) { var r = e.call(this, n, i) || this; return ( (r.directIntensity = 1), (r.emissiveIntensity = 1), (r.environmentIntensity = 1), (r.specularIntensity = 1), (r.disableBumpMap = !1), (r.ambientTextureStrength = 1), (r.ambientTextureImpactOnAnalyticalLights = t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS), (r.metallicF0Factor = 0.5), (r.useMetallicF0FactorFromMetallicTexture = !1), (r.ambientColor = new a.a(0, 0, 0)), (r.albedoColor = new a.a(1, 1, 1)), (r.reflectivityColor = new a.a(1, 1, 1)), (r.reflectionColor = new a.a(1, 1, 1)), (r.emissiveColor = new a.a(0, 0, 0)), (r.microSurface = 1), (r.useLightmapAsShadowmap = !1), (r.useAlphaFromAlbedoTexture = !1), (r.forceAlphaTest = !1), (r.alphaCutOff = 0.4), (r.useSpecularOverAlpha = !0), (r.useMicroSurfaceFromReflectivityMapAlpha = !1), (r.useRoughnessFromMetallicTextureAlpha = !0), (r.useRoughnessFromMetallicTextureGreen = !1), (r.useMetallnessFromMetallicTextureBlue = !1), (r.useAmbientOcclusionFromMetallicTextureRed = !1), (r.useAmbientInGrayScale = !1), (r.useAutoMicroSurfaceFromReflectivityMap = !1), (r.useRadianceOverAlpha = !0), (r.useObjectSpaceNormalMap = !1), (r.useParallax = !1), (r.useParallaxOcclusion = !1), (r.parallaxScaleBias = 0.05), (r.disableLighting = !1), (r.forceIrradianceInFragment = !1), (r.maxSimultaneousLights = 4), (r.invertNormalMapX = !1), (r.invertNormalMapY = !1), (r.twoSidedLighting = !1), (r.useAlphaFresnel = !1), (r.useLinearAlphaFresnel = !1), (r.environmentBRDFTexture = null), (r.forceNormalForward = !1), (r.enableSpecularAntiAliasing = !1), (r.useHorizonOcclusion = !0), (r.useRadianceOcclusion = !0), (r.unlit = !1), (r._environmentBRDFTexture = o.a.GetEnvironmentBRDFTexture(i)), r ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "refractionTexture", { get: function () { return this.subSurface.refractionTexture; }, set: function (e) { (this.subSurface.refractionTexture = e), e ? (this.subSurface.isRefractionEnabled = !0) : this.subSurface.linkRefractionWithTransparency || (this.subSurface.isRefractionEnabled = !1); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "indexOfRefraction", { get: function () { return 1 / this.subSurface.indexOfRefraction; }, set: function (e) { this.subSurface.indexOfRefraction = 1 / e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "invertRefractionY", { get: function () { return this.subSurface.invertRefractionY; }, set: function (e) { this.subSurface.invertRefractionY = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "linkRefractionWithTransparency", { get: function () { return this.subSurface.linkRefractionWithTransparency; }, set: function (e) { (this.subSurface.linkRefractionWithTransparency = e), e && (this.subSurface.isRefractionEnabled = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "usePhysicalLightFalloff", { get: function () { return this._lightFalloff === s.a.LIGHTFALLOFF_PHYSICAL; }, set: function (e) { e !== this.usePhysicalLightFalloff && (this._markAllSubMeshesAsTexturesDirty(), (this._lightFalloff = e ? s.a.LIGHTFALLOFF_PHYSICAL : s.a.LIGHTFALLOFF_STANDARD)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useGLTFLightFalloff", { get: function () { return this._lightFalloff === s.a.LIGHTFALLOFF_GLTF; }, set: function (e) { e !== this.useGLTFLightFalloff && (this._markAllSubMeshesAsTexturesDirty(), (this._lightFalloff = e ? s.a.LIGHTFALLOFF_GLTF : s.a.LIGHTFALLOFF_STANDARD)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, set: function (e) { this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorCurvesEnabled", { get: function () { return this.imageProcessingConfiguration.colorCurvesEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorCurvesEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorGradingEnabled", { get: function () { return this.imageProcessingConfiguration.colorGradingEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorGradingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraToneMappingEnabled", { get: function () { return this._imageProcessingConfiguration.toneMappingEnabled; }, set: function (e) { this._imageProcessingConfiguration.toneMappingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraExposure", { get: function () { return this._imageProcessingConfiguration.exposure; }, set: function (e) { this._imageProcessingConfiguration.exposure = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraContrast", { get: function () { return this._imageProcessingConfiguration.contrast; }, set: function (e) { this._imageProcessingConfiguration.contrast = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorGradingTexture", { get: function () { return this._imageProcessingConfiguration.colorGradingTexture; }, set: function (e) { this._imageProcessingConfiguration.colorGradingTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorCurves", { get: function () { return this._imageProcessingConfiguration.colorCurves; }, set: function (e) { this._imageProcessingConfiguration.colorCurves = e; }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "PBRMaterial"; }), (t.prototype.clone = function (e) { var n = this, i = r.a.Clone(function () { return new t(e, n.getScene()); }, this); return (i.id = e), (i.name = e), this.clearCoat.copyTo(i.clearCoat), this.anisotropy.copyTo(i.anisotropy), this.brdf.copyTo(i.brdf), this.sheen.copyTo(i.sheen), this.subSurface.copyTo(i.subSurface), i; }), (t.prototype.serialize = function () { var e = r.a.Serialize(this); return ( (e.customType = "BABYLON.PBRMaterial"), (e.clearCoat = this.clearCoat.serialize()), (e.anisotropy = this.anisotropy.serialize()), (e.brdf = this.brdf.serialize()), (e.sheen = this.sheen.serialize()), (e.subSurface = this.subSurface.serialize()), e ); }), (t.Parse = function (e, n, i) { var o = r.a.Parse( function () { return new t(e.name, n); }, e, n, i ); return ( e.clearCoat && o.clearCoat.parse(e.clearCoat, n, i), e.anisotropy && o.anisotropy.parse(e.anisotropy, n, i), e.brdf && o.brdf.parse(e.brdf, n, i), e.sheen && o.sheen.parse(e.sheen, n, i), e.subSurface && o.subSurface.parse(e.subSurface, n, i), o ); }), (t.PBRMATERIAL_OPAQUE = s.a.PBRMATERIAL_OPAQUE), (t.PBRMATERIAL_ALPHATEST = s.a.PBRMATERIAL_ALPHATEST), (t.PBRMATERIAL_ALPHABLEND = s.a.PBRMATERIAL_ALPHABLEND), (t.PBRMATERIAL_ALPHATESTANDBLEND = s.a.PBRMATERIAL_ALPHATESTANDBLEND), (t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = s.a.DEFAULT_AO_ON_ANALYTICAL_LIGHTS), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "directIntensity", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveIntensity", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "environmentIntensity", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "specularIntensity", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "disableBumpMap", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "albedoTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTextureStrength", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientTextureImpactOnAnalyticalLights", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "opacityTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectivityTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallicTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallic", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "roughness", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallicF0Factor", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useMetallicF0FactorFromMetallicTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "microSurfaceTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "bumpTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", null)], t.prototype, "lightmapTexture", void 0), Object(i.c)([Object(r.e)("ambient"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "ambientColor", void 0), Object(i.c)([Object(r.e)("albedo"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "albedoColor", void 0), Object(i.c)([Object(r.e)("reflectivity"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectivityColor", void 0), Object(i.c)([Object(r.e)("reflection"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionColor", void 0), Object(i.c)([Object(r.e)("emissive"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveColor", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "microSurface", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLightmapAsShadowmap", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "useAlphaFromAlbedoTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "forceAlphaTest", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesAndMiscDirty")], t.prototype, "alphaCutOff", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useSpecularOverAlpha", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useMicroSurfaceFromReflectivityMapAlpha", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRoughnessFromMetallicTextureAlpha", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRoughnessFromMetallicTextureGreen", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useMetallnessFromMetallicTextureBlue", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAmbientOcclusionFromMetallicTextureRed", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAmbientInGrayScale", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAutoMicroSurfaceFromReflectivityMap", void 0), Object(i.c)([Object(r.c)()], t.prototype, "usePhysicalLightFalloff", null), Object(i.c)([Object(r.c)()], t.prototype, "useGLTFLightFalloff", null), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRadianceOverAlpha", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useObjectSpaceNormalMap", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallax", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useParallaxOcclusion", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "parallaxScaleBias", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "disableLighting", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "forceIrradianceInFragment", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "maxSimultaneousLights", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapX", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapY", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "twoSidedLighting", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useAlphaFresnel", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLinearAlphaFresnel", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "environmentBRDFTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "forceNormalForward", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "enableSpecularAntiAliasing", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useHorizonOcclusion", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRadianceOcclusion", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], t.prototype, "unlit", void 0), t ); })(s.a); c.a.RegisteredTypes["BABYLON.PBRMaterial"] = l; }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return u; }), n.d(t, "a", function () { return h; }); var i = n(2), r = n(3), o = n(6), a = n(12), s = n(5), c = n(41), l = n(162), u = (function (e) { function t() { var t = e.call(this) || this; return ( (t.IMAGEPROCESSING = !1), (t.VIGNETTE = !1), (t.VIGNETTEBLENDMODEMULTIPLY = !1), (t.VIGNETTEBLENDMODEOPAQUE = !1), (t.TONEMAPPING = !1), (t.TONEMAPPING_ACES = !1), (t.CONTRAST = !1), (t.COLORCURVES = !1), (t.COLORGRADING = !1), (t.COLORGRADING3D = !1), (t.SAMPLER3DGREENDEPTH = !1), (t.SAMPLER3DBGRMAP = !1), (t.IMAGEPROCESSINGPOSTPROCESS = !1), (t.EXPOSURE = !1), t.rebuild(), t ); } return Object(i.d)(t, e), t; })(c.a), h = (function () { function e() { (this.colorCurves = new l.a()), (this._colorCurvesEnabled = !1), (this._colorGradingEnabled = !1), (this._colorGradingWithGreenDepth = !0), (this._colorGradingBGR = !0), (this._exposure = 1), (this._toneMappingEnabled = !1), (this._toneMappingType = e.TONEMAPPING_STANDARD), (this._contrast = 1), (this.vignetteStretch = 0), (this.vignetteCentreX = 0), (this.vignetteCentreY = 0), (this.vignetteWeight = 1.5), (this.vignetteColor = new s.b(0, 0, 0, 0)), (this.vignetteCameraFov = 0.5), (this._vignetteBlendMode = e.VIGNETTEMODE_MULTIPLY), (this._vignetteEnabled = !1), (this._applyByPostProcess = !1), (this._isEnabled = !0), (this.onUpdateParameters = new o.c()); } return ( Object.defineProperty(e.prototype, "colorCurvesEnabled", { get: function () { return this._colorCurvesEnabled; }, set: function (e) { this._colorCurvesEnabled !== e && ((this._colorCurvesEnabled = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "colorGradingTexture", { get: function () { return this._colorGradingTexture; }, set: function (e) { this._colorGradingTexture !== e && ((this._colorGradingTexture = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "colorGradingEnabled", { get: function () { return this._colorGradingEnabled; }, set: function (e) { this._colorGradingEnabled !== e && ((this._colorGradingEnabled = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "colorGradingWithGreenDepth", { get: function () { return this._colorGradingWithGreenDepth; }, set: function (e) { this._colorGradingWithGreenDepth !== e && ((this._colorGradingWithGreenDepth = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "colorGradingBGR", { get: function () { return this._colorGradingBGR; }, set: function (e) { this._colorGradingBGR !== e && ((this._colorGradingBGR = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "exposure", { get: function () { return this._exposure; }, set: function (e) { this._exposure !== e && ((this._exposure = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "toneMappingEnabled", { get: function () { return this._toneMappingEnabled; }, set: function (e) { this._toneMappingEnabled !== e && ((this._toneMappingEnabled = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "toneMappingType", { get: function () { return this._toneMappingType; }, set: function (e) { this._toneMappingType !== e && ((this._toneMappingType = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "contrast", { get: function () { return this._contrast; }, set: function (e) { this._contrast !== e && ((this._contrast = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "vignetteBlendMode", { get: function () { return this._vignetteBlendMode; }, set: function (e) { this._vignetteBlendMode !== e && ((this._vignetteBlendMode = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "vignetteEnabled", { get: function () { return this._vignetteEnabled; }, set: function (e) { this._vignetteEnabled !== e && ((this._vignetteEnabled = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "applyByPostProcess", { get: function () { return this._applyByPostProcess; }, set: function (e) { this._applyByPostProcess !== e && ((this._applyByPostProcess = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { this._isEnabled !== e && ((this._isEnabled = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), (e.prototype._updateParameters = function () { this.onUpdateParameters.notifyObservers(this); }), (e.prototype.getClassName = function () { return "ImageProcessingConfiguration"; }), (e.PrepareUniforms = function (e, t) { t.EXPOSURE && e.push("exposureLinear"), t.CONTRAST && e.push("contrast"), t.COLORGRADING && e.push("colorTransformSettings"), t.VIGNETTE && (e.push("vInverseScreenSize"), e.push("vignetteSettings1"), e.push("vignetteSettings2")), t.COLORCURVES && l.a.PrepareUniforms(e); }), (e.PrepareSamplers = function (e, t) { t.COLORGRADING && e.push("txColorTransform"); }), (e.prototype.prepareDefines = function (t, n) { if ((void 0 === n && (n = !1), n !== this.applyByPostProcess || !this._isEnabled)) return ( (t.VIGNETTE = !1), (t.TONEMAPPING = !1), (t.TONEMAPPING_ACES = !1), (t.CONTRAST = !1), (t.EXPOSURE = !1), (t.COLORCURVES = !1), (t.COLORGRADING = !1), (t.COLORGRADING3D = !1), (t.IMAGEPROCESSING = !1), void (t.IMAGEPROCESSINGPOSTPROCESS = this.applyByPostProcess && this._isEnabled) ); switch ( ((t.VIGNETTE = this.vignetteEnabled), (t.VIGNETTEBLENDMODEMULTIPLY = this.vignetteBlendMode === e._VIGNETTEMODE_MULTIPLY), (t.VIGNETTEBLENDMODEOPAQUE = !t.VIGNETTEBLENDMODEMULTIPLY), (t.TONEMAPPING = this.toneMappingEnabled), this._toneMappingType) ) { case e.TONEMAPPING_ACES: t.TONEMAPPING_ACES = !0; break; default: t.TONEMAPPING_ACES = !1; } (t.CONTRAST = 1 !== this.contrast), (t.EXPOSURE = 1 !== this.exposure), (t.COLORCURVES = this.colorCurvesEnabled && !!this.colorCurves), (t.COLORGRADING = this.colorGradingEnabled && !!this.colorGradingTexture), t.COLORGRADING ? (t.COLORGRADING3D = this.colorGradingTexture.is3D) : (t.COLORGRADING3D = !1), (t.SAMPLER3DGREENDEPTH = this.colorGradingWithGreenDepth), (t.SAMPLER3DBGRMAP = this.colorGradingBGR), (t.IMAGEPROCESSINGPOSTPROCESS = this.applyByPostProcess), (t.IMAGEPROCESSING = t.VIGNETTE || t.TONEMAPPING || t.CONTRAST || t.EXPOSURE || t.COLORCURVES || t.COLORGRADING); }), (e.prototype.isReady = function () { return !this.colorGradingEnabled || !this.colorGradingTexture || this.colorGradingTexture.isReady(); }), (e.prototype.bind = function (e, t) { if ((this._colorCurvesEnabled && this.colorCurves && l.a.Bind(this.colorCurves, e), this._vignetteEnabled)) { var n = 1 / e.getEngine().getRenderWidth(), i = 1 / e.getEngine().getRenderHeight(); e.setFloat2("vInverseScreenSize", n, i); var r = null != t ? t : i / n, o = Math.tan(0.5 * this.vignetteCameraFov), s = o * r, c = Math.sqrt(s * o); (s = a.b.Mix(s, c, this.vignetteStretch)), (o = a.b.Mix(o, c, this.vignetteStretch)), e.setFloat4("vignetteSettings1", s, o, -s * this.vignetteCentreX, -o * this.vignetteCentreY); var u = -2 * this.vignetteWeight; e.setFloat4("vignetteSettings2", this.vignetteColor.r, this.vignetteColor.g, this.vignetteColor.b, u); } if ((e.setFloat("exposureLinear", this.exposure), e.setFloat("contrast", this.contrast), this.colorGradingTexture)) { e.setTexture("txColorTransform", this.colorGradingTexture); var h = this.colorGradingTexture.getSize().height; e.setFloat4("colorTransformSettings", (h - 1) / h, 0.5 / h, h, this.colorGradingTexture.level); } }), (e.prototype.clone = function () { return r.a.Clone(function () { return new e(); }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.Parse = function (t) { return r.a.Parse( function () { return new e(); }, t, null, null ); }), Object.defineProperty(e, "VIGNETTEMODE_MULTIPLY", { get: function () { return this._VIGNETTEMODE_MULTIPLY; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "VIGNETTEMODE_OPAQUE", { get: function () { return this._VIGNETTEMODE_OPAQUE; }, enumerable: !0, configurable: !0, }), (e.TONEMAPPING_STANDARD = 0), (e.TONEMAPPING_ACES = 1), (e._VIGNETTEMODE_MULTIPLY = 0), (e._VIGNETTEMODE_OPAQUE = 1), Object(i.c)([Object(r.g)()], e.prototype, "colorCurves", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_colorCurvesEnabled", void 0), Object(i.c)([Object(r.m)("colorGradingTexture")], e.prototype, "_colorGradingTexture", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_colorGradingEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_colorGradingWithGreenDepth", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_colorGradingBGR", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_exposure", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_toneMappingEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_toneMappingType", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_contrast", void 0), Object(i.c)([Object(r.c)()], e.prototype, "vignetteStretch", void 0), Object(i.c)([Object(r.c)()], e.prototype, "vignetteCentreX", void 0), Object(i.c)([Object(r.c)()], e.prototype, "vignetteCentreY", void 0), Object(i.c)([Object(r.c)()], e.prototype, "vignetteWeight", void 0), Object(i.c)([Object(r.f)()], e.prototype, "vignetteColor", void 0), Object(i.c)([Object(r.c)()], e.prototype, "vignetteCameraFov", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_vignetteBlendMode", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_vignetteEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_applyByPostProcess", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_isEnabled", void 0), e ); })(); r.a._ImageProcessingConfigurationParser = h.Parse; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(53), r = function (e, t) { return e ? (e.getClassName && "Mesh" === e.getClassName() ? null : e.getClassName && "SubMesh" === e.getClassName() ? e.clone(t) : e.clone ? e.clone() : null) : null; }, o = (function () { function e() {} return ( (e.DeepCopy = function (e, t, n, o) { for (var a in e) if (("_" !== a[0] || (o && -1 !== o.indexOf(a))) && !(i.a.EndsWith(a, "Observable") || (n && -1 !== n.indexOf(a)))) { var s = e[a], c = typeof s; if ("function" !== c) try { if ("object" === c) if (s instanceof Array) { if (((t[a] = []), s.length > 0)) if ("object" == typeof s[0]) for (var l = 0; l < s.length; l++) { var u = r(s[l], t); -1 === t[a].indexOf(u) && t[a].push(u); } else t[a] = s.slice(0); } else t[a] = r(s, t); else t[a] = s; } catch (e) {} } }), e ); })(); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.gameState = t.GameState = t.AbilityUpgradesData = t.DailyChallengeData = t.FlagsData = t.StatsData = t.CurrentDayData = t.CurrentRunData = t.STORAGE_GAME_STATE_KEY = t.POWERUP_FILL_MIN = t.POWERUP_FILL_MAX = void 0); const i = n(222), r = n(29), o = n(233), a = n(139), s = n(156), c = n(269), l = n(234), u = n(40), h = n(48); (t.POWERUP_FILL_MAX = 360), (t.POWERUP_FILL_MIN = 110), (t.STORAGE_GAME_STATE_KEY = "TR2_GAME_STATE"); class d { constructor() { (this.score = 0), (this.distance = 0), (this.coins = 0), (this.currentMeterStreak = 0), (this.powerupFillValue = t.POWERUP_FILL_MAX), (this.powerupFillGlow = ""), (this.powerupFillBlink = ""), (this.deathMessage = ""), (this.deathImagePosition = "0% 0%"), (this.nextDistanceToastThreshold = 250), (this.highScoreToastMessageDone = !1), (this.stumbleThisRun = 0), (this.resurrectsThisRun = 0), (this.powermeterUsedThisRun = 0), (this.powerupsCollectedThisRun = 0), (this.waterslideSurvivedThisRun = 0), (this.minecartSurvivedThisRun = 0), (this.coinsCollectedInWaterSlide = 0), (this.coinsCollectedInMineCart = 0), (this.distanceCoveredInMineCart = 0), (this.distanceCoveredInWaterSlide = 0); } } t.CurrentRunData = d; class p { constructor() { (this.score = 0), (this.distance = 0), (this.coins = 0), (this.stumbleToday = 0), (this.resurrectsToday = 0), (this.powerMeterUsedToday = 0), (this.powerupsCollectedToday = 0), (this.waterSlideSurvivedToday = 0), (this.minecartSurviveToday = 0), (this.coinsCollectedInWaterSlide = 0), (this.coinsCollectedInMineCart = 0), (this.distanceCoveredInMineCart = 0), (this.distanceCoveredInWaterSlide = 0), (this.runs = 0); } } t.CurrentDayData = p; class f { constructor() { (this.highestScore = 0), (this.hsNoSaveMe = 0), (this.longestRun = 0), (this.mostCoins = 0), (this.totalGames = 0), (this.totalDistance = 0), (this.totalCoins = 0), (this.bestDailyStreak = 0); } } t.StatsData = f; class m { constructor() { (this.powerupUplocked = !1), (this.tutorialPhaseState = "phase1"), (this.tutorialZonesDone = []), (this.musicVolume = 50), (this.soundVolume = 50); } } t.FlagsData = m; class g { constructor() { (this.currentChallengeID = -1), (this.currentDayStreak = 0), (this.isChallengeCompleted = !1), (this.pastChallengeID = new Map()); } } t.DailyChallengeData = g; class b { constructor() { (this.abilitiesLevels = new Array()), this.abilitiesLevels.push(0), this.abilitiesLevels.push(0), this.abilitiesLevels.push(0); } } t.AbilityUpgradesData = b; class _ { constructor() { (this.currentRunData = new d()), (this.currentDayData = new p()), (this.currentDayDataFinal = new p()), (this.statsData = new f()), (this.flagsData = new m()), (this.dailyChallengeData = new g()), (this.abilitiesData = new b()); } } (t.GameState = _), (t.gameState = (function () { const e = o.AbiltiesUpgradeModel.fromJson(n(235)), v = l.DailyChallenges.fromJson(n(236)), y = n(270), C = (() => { const e = c.LocalStore.getItem(t.STORAGE_GAME_STATE_KEY); if (e) { const t = JSON.parse(e); return Object.assign(Object.assign({}, t), { currentRunData: new d(), currentDayDataFinal: Object.assign(Object.assign({}, new p()), t.currentDayDataFinal), currentDayData: Object.assign(Object.assign({}, new p()), t.currentDayDataFinal), statsData: Object.assign(Object.assign({}, new f()), t.statsData), flagsData: Object.assign(Object.assign({}, new m()), t.flagsData), dailyChallengeData: Object.assign(Object.assign(Object.assign({}, new g()), t.dailyChallengeData), { pastChallengeID: c.parseToMap(t.dailyChallengeData.pastChallengeID) }), abilitiesData: Object.assign(Object.assign({}, new b()), t.abilitiesData), }); } return new _(); })(), P = i.writable(C), { subscribe: x, update: T } = P, S = () => { T((e) => { const n = Object.assign(Object.assign({}, e), { currentRunData: {}, currentDayData: {}, dailyChallengeData: Object.assign(Object.assign({}, e.dailyChallengeData), { pastChallengeID: c.parseFromMap(e.dailyChallengeData.pastChallengeID) }), }); return c.LocalStore.setItem(t.STORAGE_GAME_STATE_KEY, JSON.stringify(n)), e; }); }; return ( r.EventHandler.instance.addListener(r.EventID.OnTutorialStart, () => { T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX), (e.currentRunData.powerupFillGlow = ""), (e.currentRunData.powerupFillBlink = ""), e)); }), r.EventHandler.instance.addListener(r.EventID.OnMeterReset, () => { T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX), (e.currentRunData.powerupFillGlow = ""), (e.currentRunData.powerupFillBlink = ""), (e.currentRunData.currentMeterStreak = 0), e)); }), r.EventHandler.instance.addListener(r.EventID.OnTutorialComplete, () => { T( (e) => ( (e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX - e.currentRunData.currentMeterStreak * (t.POWERUP_FILL_MAX / 200)), e.currentRunData.powerupFillValue <= t.POWERUP_FILL_MIN && ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), r.EventHandler.instance.fireEvent(r.EventID.OnMeterFull), (e.currentRunData.powerupFillGlow = "fill-glow")), e ) ); }), r.EventHandler.instance.addListener(r.EventID.OnResetCurrentGameData, () => { T((e) => Object.assign(Object.assign({}, e), { currentRunData: new d(), currentDayData: Object.assign(Object.assign({}, new p()), e.currentDayDataFinal) })); }), r.EventHandler.instance.addListener(r.EventID.OnMeterFull, () => { T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), (e.currentRunData.powerupFillGlow = "fill-glow"), e)); }), r.EventHandler.instance.addListener(r.EventID.OnPowerupCooldown, () => { u.GameController.instance.powerup.isTriggeredManually && T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), (e.currentRunData.powerupFillGlow = "fill-glow"), (e.currentRunData.powerupFillBlink = "fill-blink"), e)); }), r.EventHandler.instance.addListener(r.EventID.OnPowerupComplete, (e) => { u.GameController.instance.powerup.isTriggeredManually && e == u.GameController.instance.powerup.meterPowerUpType && T((e) => ((e.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX), (e.currentRunData.powerupFillGlow = ""), (e.currentRunData.powerupFillBlink = ""), (e.currentRunData.currentMeterStreak = 0), e)); }), r.EventHandler.instance.addListener(r.EventID.OnUnlockPowerup, () => { T((e) => ((e.flagsData.powerupUplocked = !0), (e.flagsData.tutorialPhaseState = "phase2"), e)); }), r.EventHandler.instance.addListener(r.EventID.OnChangeTutorialState, (e) => { T((t) => { const n = t.flagsData.tutorialZonesDone; return null == e.zoneDone || n.includes(e.zoneDone) || n.push(e.zoneDone), (t.flagsData.tutorialPhaseState = e.tutorialPhaseState), (t.flagsData.tutorialZonesDone = n), t; }); }), r.EventHandler.instance.addListener(r.EventID.OnPersistGameState, () => { S(); }), r.EventHandler.instance.addListener(r.EventID.OnPlayerDeath, () => { u.GameController.instance.tutorial.isEnabled; }), r.EventHandler.instance.addListener(r.EventID.OnEndGame, () => { u.GameController.instance.tutorial.isEnabled || (T( (e) => ( (e.currentDayDataFinal = Object.assign(Object.assign({}, new p()), e.currentDayData)), (e.currentDayDataFinal.runs += 1), (e.statsData.totalGames += 1), (e.statsData.totalDistance = Math.floor(e.statsData.totalDistance + e.currentRunData.distance)), (e.statsData.totalCoins = Math.floor(e.statsData.totalCoins + e.currentRunData.coins)), e.currentRunData.score > e.statsData.highestScore && (e.statsData.highestScore = Math.floor(e.currentRunData.score)), e.currentRunData.distance > e.statsData.longestRun && (e.statsData.longestRun = Math.floor(e.currentRunData.distance)), e.currentRunData.coins > e.statsData.mostCoins && (e.statsData.mostCoins = Math.floor(e.currentRunData.coins)), e.currentRunData.resurrectsThisRun <= 0 && e.currentRunData.score > e.statsData.hsNoSaveMe && (e.statsData.hsNoSaveMe = Math.floor(e.currentRunData.score)), e ) ), r.EventHandler.instance.fireEvent(r.EventID.OnCheckDailyChallenge), S()); }), r.EventHandler.instance.addListener(r.EventID.OnDailyChallengeDataUpdate, (e) => { T((t) => ((t.dailyChallengeData = e), t.dailyChallengeData.currentDayStreak > t.statsData.bestDailyStreak && (t.statsData.bestDailyStreak = t.dailyChallengeData.currentDayStreak), t)), S(); }), r.EventHandler.instance.addListener(r.EventID.OnResetDayStatData, (e = !1) => { T((t) => ((t.currentDayData = new p()), e && (t.currentDayDataFinal = new p()), t)), S(); }), r.EventHandler.instance.addListener(r.EventID.OnStumble, () => { T((e) => ((e.currentDayData.stumbleToday += 1), (e.currentRunData.stumbleThisRun += 1), e)); }), r.EventHandler.instance.addListener(r.EventID.OnPowerupCollect, () => { T((e) => ((e.currentDayData.powerupsCollectedToday += 1), (e.currentRunData.powerupsCollectedThisRun += 1), e)); }), r.EventHandler.instance.addListener(r.EventID.OnRessurect, () => { T((e) => ((e.currentDayData.resurrectsToday += 1), (e.currentRunData.resurrectsThisRun += 1), e)); }), r.EventHandler.instance.addListener(r.EventID.OnMineCartSurvived, () => { T((e) => ((e.currentDayData.minecartSurviveToday += 1), (e.currentRunData.minecartSurvivedThisRun += 1), e)); }), r.EventHandler.instance.addListener(r.EventID.OnWaterSlideSurvived, () => { T((e) => ((e.currentDayData.waterSlideSurvivedToday += 1), (e.currentRunData.waterslideSurvivedThisRun += 1), e)); }), r.EventHandler.instance.addListener(r.EventID.OnPowerMeterUsed, () => { T((e) => ((e.currentDayData.powerMeterUsedToday += 1), (e.currentRunData.powermeterUsedThisRun += 1), e)); }), r.EventHandler.instance.addListener(r.EventID.PlayerDeathTypeUpdate, (e) => { T((t) => ((t.currentRunData.deathMessage = e.message), (t.currentRunData.deathImagePosition = e.position), t)); }), r.EventHandler.instance.addListener(r.EventID.OnChestReward, (e) => { T((t) => ((t.currentDayData.coins += e), (t.currentRunData.coins += e), (t.statsData.totalCoins += e), t)), S(); }), r.EventHandler.instance.addListener(r.EventID.OnRewardCoins, (e) => { T((t) => ((t.statsData.totalCoins += e), t)), S(); }), h.GameConfig.IS_DEBUG && r.EventHandler.instance.addListener(r.EventID.OnDebugCoinsUpdated, (e) => { T((t) => ((t.statsData.totalCoins = e), t)); }), { getStateFromStore: () => i.get(P), subscribe: x, upgradeAbility: (t) => { T((n) => { const i = e; let o = n.abilitiesData.abilitiesLevels[t]; const s = i.data[t].rule, c = s[o].amount; if (n.statsData.totalCoins < c) return r.EventHandler.instance.fireEvent(r.EventID.NotEnoughCoins), n; n.statsData.totalCoins -= c; const l = s[o].reward, u = { _id: t, _reward: l }; return r.EventHandler.instance.fireEvent(r.EventID.OnAbilityUpgraded, u), r.EventHandler.instance.fireEvent(r.EventID.PlaySFX, a.SoundID.CashRegister), (n.abilitiesData.abilitiesLevels[t] = ++o), n; }), S(); }, changeVolumeState: (e = "", t = 100) => { T( (n) => ( "music" == e ? ((n.flagsData.musicVolume = t), r.EventHandler.instance.fireEvent(r.EventID.MusicVolumeChange, t)) : "sound" == e && ((n.flagsData.soundVolume = t), r.EventHandler.instance.fireEvent(r.EventID.SoundVolumeChange, t)), n ) ), S(); }, abilitiesConfig: e, dailyChallengesConfig: v, creditsConfig: y, updateCoins: (e) => { T((n) => { (n.currentRunData.coins = n.currentRunData.coins + 1), (n.currentDayData.coins = n.currentDayData.coins + 1), (n.currentRunData.score = 10 * (n.currentRunData.coins + n.currentRunData.distance)); const i = n.currentRunData.score; n.currentRunData.score = 10 * (n.currentRunData.coins + n.currentRunData.distance); const o = n.currentRunData.score - i; return ( (n.currentDayData.score += o), n.currentRunData.powerupFillValue > t.POWERUP_FILL_MIN && ((n.currentRunData.currentMeterStreak += 1), (n.currentRunData.powerupFillValue = t.POWERUP_FILL_MAX - n.currentRunData.currentMeterStreak * (t.POWERUP_FILL_MAX / 200)), n.currentRunData.powerupFillValue <= t.POWERUP_FILL_MIN && ((n.currentRunData.powerupFillValue = t.POWERUP_FILL_MIN), r.EventHandler.instance.fireEvent(r.EventID.OnMeterFull), (n.currentRunData.powerupFillGlow = "fill-glow"))), e == s.MovementState.CartRiding ? ((n.currentRunData.coinsCollectedInMineCart += 1), (n.currentDayData.coinsCollectedInMineCart += 1)) : e == s.MovementState.WaterSliding && ((n.currentRunData.coinsCollectedInWaterSlide += 1), (n.currentDayData.coinsCollectedInWaterSlide += 1)), n ); }); }, updateDistance: (e, t) => { T((n) => { n.currentRunData.distance = n.currentRunData.distance + t; const i = n.currentRunData.score; if (((n.currentRunData.score = 10 * (n.currentRunData.coins + n.currentRunData.distance)), !u.GameController.instance.tutorial.isEnabled)) { n.currentDayData.distance = n.currentDayData.distance + t; const r = n.currentRunData.score - i; (n.currentDayData.score += r), e == s.MovementState.CartRiding ? ((n.currentRunData.distanceCoveredInMineCart += t), (n.currentDayData.distanceCoveredInMineCart += t)) : e == s.MovementState.WaterSliding && ((n.currentRunData.distanceCoveredInWaterSlide += t), (n.currentDayData.distanceCoveredInWaterSlide += t)); } return ( n.currentRunData.distance > n.currentRunData.nextDistanceToastThreshold && (r.EventHandler.instance.fireEvent(r.EventID.OnShowDistanceToast, n.currentRunData.nextDistanceToastThreshold), (n.currentRunData.nextDistanceToastThreshold += 250 == n.currentRunData.nextDistanceToastThreshold ? 250 : 500)), n.statsData.highestScore > 100 && n.currentRunData.score > n.statsData.highestScore && !n.currentRunData.highScoreToastMessageDone && ((n.currentRunData.highScoreToastMessageDone = !0), r.EventHandler.instance.fireEvent(r.EventID.OnHudToastMessage, "High Score!"), r.EventHandler.instance.fireEvent(r.EventID.PlaySFX, a.SoundID.Woohoo)), n ); }); }, forceUpdateDistance: (e) => { T((t) => ((t.currentRunData.distance = e), (t.currentRunData.score = 10 * (t.currentRunData.coins + t.currentRunData.distance)), t)); }, } ); })()); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.EndsWith = function (e, t) { return -1 !== e.indexOf(t, e.length - t.length); }), (e.StartsWith = function (e, t) { return 0 === e.indexOf(t); }), (e.Decode = function (e) { if ("undefined" != typeof TextDecoder) return new TextDecoder().decode(e); for (var t = "", n = 0; n < e.byteLength; n++) t += String.fromCharCode(e[n]); return t; }), (e.EncodeArrayBufferToBase64 = function (e) { for ( var t, n, i, r, o, a, s, c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", l = "", u = 0, h = ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength) : new Uint8Array(e); u < h.length; ) (r = (t = h[u++]) >> 2), (o = ((3 & t) << 4) | ((n = u < h.length ? h[u++] : Number.NaN) >> 4)), (a = ((15 & n) << 2) | ((i = u < h.length ? h[u++] : Number.NaN) >> 6)), (s = 63 & i), isNaN(n) ? (a = s = 64) : isNaN(i) && (s = 64), (l += c.charAt(r) + c.charAt(o) + c.charAt(a) + c.charAt(s)); return l; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this.rootNodes = new Array()), (this.cameras = new Array()), (this.lights = new Array()), (this.meshes = new Array()), (this.skeletons = new Array()), (this.particleSystems = new Array()), (this.animations = []), (this.animationGroups = new Array()), (this.multiMaterials = new Array()), (this.materials = new Array()), (this.morphTargetManagers = new Array()), (this.geometries = new Array()), (this.transformNodes = new Array()), (this.actionManagers = new Array()), (this.textures = new Array()), (this.environmentTexture = null); } return ( (e.AddParser = function (e, t) { this._BabylonFileParsers[e] = t; }), (e.GetParser = function (e) { return this._BabylonFileParsers[e] ? this._BabylonFileParsers[e] : null; }), (e.AddIndividualParser = function (e, t) { this._IndividualBabylonFileParsers[e] = t; }), (e.GetIndividualParser = function (e) { return this._IndividualBabylonFileParsers[e] ? this._IndividualBabylonFileParsers[e] : null; }), (e.Parse = function (e, t, n, i) { for (var r in this._BabylonFileParsers) this._BabylonFileParsers.hasOwnProperty(r) && this._BabylonFileParsers[r](e, t, n, i); }), (e.prototype.getNodes = function () { var e = new Array(); return ( (e = (e = (e = (e = e.concat(this.meshes)).concat(this.lights)).concat(this.cameras)).concat(this.transformNodes)), this.skeletons.forEach(function (t) { return (e = e.concat(t.bones)); }), e ); }), (e._BabylonFileParsers = {}), (e._IndividualBabylonFileParsers = {}), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return u; }); var i = n(18), r = n(6), o = n(20), a = n(25), s = n(96), c = n(1), l = n(5), u = (function () { function e(e, t) { var n = this; void 0 === t && (t = !0), (this.originalScene = e), (this._pointerCaptures = {}), (this._lastPointerEvents = {}), (this._sharedGizmoLight = null), (this._renderCamera = null), (this.pickUtilitySceneFirst = !0), (this.shouldRender = !0), (this.onlyCheckPointerDownEvents = !0), (this.processAllEvents = !1), (this.onPointerOutObservable = new r.c()), (this.utilityLayerScene = new i.a(e.getEngine(), { virtual: !0 })), (this.utilityLayerScene.useRightHandedSystem = e.useRightHandedSystem), (this.utilityLayerScene._allowPostProcessClearColor = !1), this.utilityLayerScene.detachControl(), t && ((this._originalPointerObserver = e.onPrePointerObservable.add(function (t, i) { if (n.utilityLayerScene.activeCamera && (n.processAllEvents || t.type === o.a.POINTERMOVE || t.type === o.a.POINTERUP || t.type === o.a.POINTERDOWN)) { (n.utilityLayerScene.pointerX = e.pointerX), (n.utilityLayerScene.pointerY = e.pointerY); var r = t.event; if (e.isPointerCaptured(r.pointerId)) n._pointerCaptures[r.pointerId] = !1; else { var a = t.ray ? n.utilityLayerScene.pickWithRay(t.ray) : n.utilityLayerScene.pick(e.pointerX, e.pointerY); if ((!t.ray && a && (t.ray = a.ray), n.utilityLayerScene.onPrePointerObservable.notifyObservers(t), n.onlyCheckPointerDownEvents && t.type != o.a.POINTERDOWN)) return ( t.skipOnPointerObservable || n.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(t.type, t.event, a)), void (t.type === o.a.POINTERUP && n._pointerCaptures[r.pointerId] && (n._pointerCaptures[r.pointerId] = !1)) ); if (n.utilityLayerScene.autoClearDepthAndStencil || n.pickUtilitySceneFirst) a && a.hit && (t.skipOnPointerObservable || n.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(t.type, t.event, a)), (t.skipOnPointerObservable = !0)); else { var s = t.ray ? e.pickWithRay(t.ray) : e.pick(e.pointerX, e.pointerY), c = t.event; s && a && (0 === a.distance && s.pickedMesh ? n.mainSceneTrackerPredicate && n.mainSceneTrackerPredicate(s.pickedMesh) ? (n._notifyObservers(t, s, c), (t.skipOnPointerObservable = !0)) : t.type === o.a.POINTERDOWN ? (n._pointerCaptures[c.pointerId] = !0) : n._lastPointerEvents[c.pointerId] && (n.onPointerOutObservable.notifyObservers(c.pointerId), delete n._lastPointerEvents[c.pointerId]) : !n._pointerCaptures[c.pointerId] && (a.distance < s.distance || 0 === s.distance) ? (n._notifyObservers(t, a, c), t.skipOnPointerObservable || (t.skipOnPointerObservable = a.distance > 0)) : !n._pointerCaptures[c.pointerId] && a.distance > s.distance && (n.mainSceneTrackerPredicate && n.mainSceneTrackerPredicate(s.pickedMesh) ? (n._notifyObservers(t, s, c), (t.skipOnPointerObservable = !0)) : n._lastPointerEvents[c.pointerId] && (n.onPointerOutObservable.notifyObservers(c.pointerId), delete n._lastPointerEvents[c.pointerId])), t.type === o.a.POINTERUP && n._pointerCaptures[c.pointerId] && (n._pointerCaptures[c.pointerId] = !1)); } } } })), this._originalPointerObserver && e.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)), (this.utilityLayerScene.autoClear = !1), (this._afterRenderObserver = this.originalScene.onAfterCameraRenderObservable.add(function (e) { n.shouldRender && e == n.getRenderCamera() && n.render(); })), (this._sceneDisposeObserver = this.originalScene.onDisposeObservable.add(function () { n.dispose(); })), this._updateCamera(); } return ( (e.prototype.getRenderCamera = function (e) { if (this._renderCamera) return this._renderCamera; var t = void 0; return (t = this.originalScene.activeCameras.length > 1 ? this.originalScene.activeCameras[this.originalScene.activeCameras.length - 1] : this.originalScene.activeCamera), e && t && t.isRigCamera ? t.rigParent : t; }), (e.prototype.setRenderCamera = function (e) { this._renderCamera = e; }), (e.prototype._getSharedGizmoLight = function () { return ( this._sharedGizmoLight || ((this._sharedGizmoLight = new s.a("shared gizmo light", new c.e(0, 1, 0), this.utilityLayerScene)), (this._sharedGizmoLight.intensity = 2), (this._sharedGizmoLight.groundColor = l.a.Gray())), this._sharedGizmoLight ); }), Object.defineProperty(e, "DefaultUtilityLayer", { get: function () { return ( null == e._DefaultUtilityLayer && ((e._DefaultUtilityLayer = new e(a.a.LastCreatedScene)), e._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce(function () { e._DefaultUtilityLayer = null; })), e._DefaultUtilityLayer ); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "DefaultKeepDepthUtilityLayer", { get: function () { return ( null == e._DefaultKeepDepthUtilityLayer && ((e._DefaultKeepDepthUtilityLayer = new e(a.a.LastCreatedScene)), (e._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil = !1), e._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce(function () { e._DefaultKeepDepthUtilityLayer = null; })), e._DefaultKeepDepthUtilityLayer ); }, enumerable: !0, configurable: !0, }), (e.prototype._notifyObservers = function (e, t, n) { e.skipOnPointerObservable || (this.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(e.type, e.event, t)), (this._lastPointerEvents[n.pointerId] = !0)); }), (e.prototype.render = function () { if ((this._updateCamera(), this.utilityLayerScene.activeCamera)) { var e = this.utilityLayerScene.activeCamera.getScene(), t = this.utilityLayerScene.activeCamera; (t._scene = this.utilityLayerScene), t.leftCamera && (t.leftCamera._scene = this.utilityLayerScene), t.rightCamera && (t.rightCamera._scene = this.utilityLayerScene), this.utilityLayerScene.render(!1), (t._scene = e), t.leftCamera && (t.leftCamera._scene = e), t.rightCamera && (t.rightCamera._scene = e); } }), (e.prototype.dispose = function () { this.onPointerOutObservable.clear(), this._afterRenderObserver && this.originalScene.onAfterCameraRenderObservable.remove(this._afterRenderObserver), this._sceneDisposeObserver && this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver), this._originalPointerObserver && this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver), this.utilityLayerScene.dispose(); }), (e.prototype._updateCamera = function () { (this.utilityLayerScene.cameraToUseForPointers = this.getRenderCamera()), (this.utilityLayerScene.activeCamera = this.getRenderCamera()); }), (e._DefaultUtilityLayer = null), (e._DefaultKeepDepthUtilityLayer = null), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.IsWindowObjectExist = function () { return "undefined" != typeof window; }), (e.IsNavigatorAvailable = function () { return "undefined" != typeof navigator; }), (e.GetDOMTextContent = function (e) { for (var t = "", n = e.firstChild; n; ) 3 === n.nodeType && (t += n.textContent), (n = n.nextSibling); return t; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return u; }); var i = n(2), r = n(3), o = n(1), a = n(5), s = n(35), c = n(124), l = n(13), u = (function (e) { function t(n, i) { var r = e.call(this, n, i) || this; return ( (r.diffuse = new a.a(1, 1, 1)), (r.specular = new a.a(1, 1, 1)), (r.falloffType = t.FALLOFF_DEFAULT), (r.intensity = 1), (r._range = Number.MAX_VALUE), (r._inverseSquaredRange = 0), (r._photometricScale = 1), (r._intensityMode = t.INTENSITYMODE_AUTOMATIC), (r._radius = 1e-5), (r.renderPriority = 0), (r._shadowEnabled = !0), (r._excludeWithLayerMask = 0), (r._includeOnlyWithLayerMask = 0), (r._lightmapMode = 0), (r._excludedMeshesIds = new Array()), (r._includedOnlyMeshesIds = new Array()), (r._isLight = !0), r.getScene().addLight(r), (r._uniformBuffer = new c.a(r.getScene().getEngine())), r._buildUniformLayout(), (r.includedOnlyMeshes = new Array()), (r.excludedMeshes = new Array()), r._resyncMeshes(), r ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "range", { get: function () { return this._range; }, set: function (e) { (this._range = e), (this._inverseSquaredRange = 1 / (this.range * this.range)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "intensityMode", { get: function () { return this._intensityMode; }, set: function (e) { (this._intensityMode = e), this._computePhotometricScale(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "radius", { get: function () { return this._radius; }, set: function (e) { (this._radius = e), this._computePhotometricScale(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadowEnabled", { get: function () { return this._shadowEnabled; }, set: function (e) { this._shadowEnabled !== e && ((this._shadowEnabled = e), this._markMeshesAsLightDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "includedOnlyMeshes", { get: function () { return this._includedOnlyMeshes; }, set: function (e) { (this._includedOnlyMeshes = e), this._hookArrayForIncludedOnly(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "excludedMeshes", { get: function () { return this._excludedMeshes; }, set: function (e) { (this._excludedMeshes = e), this._hookArrayForExcluded(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "excludeWithLayerMask", { get: function () { return this._excludeWithLayerMask; }, set: function (e) { (this._excludeWithLayerMask = e), this._resyncMeshes(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "includeOnlyWithLayerMask", { get: function () { return this._includeOnlyWithLayerMask; }, set: function (e) { (this._includeOnlyWithLayerMask = e), this._resyncMeshes(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "lightmapMode", { get: function () { return this._lightmapMode; }, set: function (e) { this._lightmapMode !== e && ((this._lightmapMode = e), this._markMeshesAsLightDirty()); }, enumerable: !0, configurable: !0, }), (t.prototype.transferTexturesToEffect = function (e, t) { return this; }), (t.prototype._bindLight = function (e, t, n, i, r) { void 0 === r && (r = !1); var o = e.toString(), s = !1; if (!r || !this._uniformBuffer._alreadyBound) { if ((this._uniformBuffer.bindToEffect(n, "Light" + o), this._renderId !== t.getRenderId() || !this._uniformBuffer.useUbo)) { this._renderId = t.getRenderId(); var c = this.getScaledIntensity(); this.transferToEffect(n, o), this.diffuse.scaleToRef(c, a.c.Color3[0]), this._uniformBuffer.updateColor4("vLightDiffuse", a.c.Color3[0], this.range, o), i && (this.specular.scaleToRef(c, a.c.Color3[1]), this._uniformBuffer.updateColor4("vLightSpecular", a.c.Color3[1], this.radius, o)), (s = !0); } if ((this.transferTexturesToEffect(n, o), t.shadowsEnabled && this.shadowEnabled)) { var l = this.getShadowGenerator(); l && (l.bindShadowLight(o, n), (s = !0)); } s && this._uniformBuffer.update(); } }), (t.prototype.getClassName = function () { return "Light"; }), (t.prototype.toString = function (e) { var t = "Name: " + this.name; if (((t += ", type: " + ["Point", "Directional", "Spot", "Hemispheric"][this.getTypeID()]), this.animations)) for (var n = 0; n < this.animations.length; n++) t += ", animation[0]: " + this.animations[n].toString(e); return t; }), (t.prototype._syncParentEnabledState = function () { e.prototype._syncParentEnabledState.call(this), this.isDisposed() || this._resyncMeshes(); }), (t.prototype.setEnabled = function (t) { e.prototype.setEnabled.call(this, t), this._resyncMeshes(); }), (t.prototype.getShadowGenerator = function () { return this._shadowGenerator; }), (t.prototype.getAbsolutePosition = function () { return o.e.Zero(); }), (t.prototype.canAffectMesh = function (e) { return ( !e || (!(this.includedOnlyMeshes && this.includedOnlyMeshes.length > 0 && -1 === this.includedOnlyMeshes.indexOf(e)) && !(this.excludedMeshes && this.excludedMeshes.length > 0 && -1 !== this.excludedMeshes.indexOf(e)) && (0 === this.includeOnlyWithLayerMask || 0 != (this.includeOnlyWithLayerMask & e.layerMask)) && !(0 !== this.excludeWithLayerMask && this.excludeWithLayerMask & e.layerMask)) ); }), (t.CompareLightsPriority = function (e, t) { return e.shadowEnabled !== t.shadowEnabled ? (t.shadowEnabled ? 1 : 0) - (e.shadowEnabled ? 1 : 0) : t.renderPriority - e.renderPriority; }), (t.prototype.dispose = function (t, n) { void 0 === n && (n = !1), this._shadowGenerator && (this._shadowGenerator.dispose(), (this._shadowGenerator = null)), this.getScene().stopAnimation(this); for (var i = 0, r = this.getScene().meshes; i < r.length; i++) { r[i]._removeLightSource(this, !0); } this._uniformBuffer.dispose(), this.getScene().removeLight(this), e.prototype.dispose.call(this, t, n); }), (t.prototype.getTypeID = function () { return 0; }), (t.prototype.getScaledIntensity = function () { return this._photometricScale * this.intensity; }), (t.prototype.clone = function (e) { var n = t.GetConstructorFromName(this.getTypeID(), e, this.getScene()); return n ? r.a.Clone(n, this) : null; }), (t.prototype.serialize = function () { var e = r.a.Serialize(this); return ( (e.type = this.getTypeID()), this.parent && (e.parentId = this.parent.id), this.excludedMeshes.length > 0 && ((e.excludedMeshesIds = []), this.excludedMeshes.forEach(function (t) { e.excludedMeshesIds.push(t.id); })), this.includedOnlyMeshes.length > 0 && ((e.includedOnlyMeshesIds = []), this.includedOnlyMeshes.forEach(function (t) { e.includedOnlyMeshesIds.push(t.id); })), r.a.AppendSerializedAnimations(this, e), (e.ranges = this.serializeAnimationRanges()), e ); }), (t.GetConstructorFromName = function (e, t, n) { var i = s.a.Construct("Light_Type_" + e, t, n); return i || null; }), (t.Parse = function (e, n) { var i = t.GetConstructorFromName(e.type, e.name, n); if (!i) return null; var o = r.a.Parse(i, e, n); if ( (e.excludedMeshesIds && (o._excludedMeshesIds = e.excludedMeshesIds), e.includedOnlyMeshesIds && (o._includedOnlyMeshesIds = e.includedOnlyMeshesIds), e.parentId && (o._waitingParentId = e.parentId), void 0 !== e.falloffType && (o.falloffType = e.falloffType), void 0 !== e.lightmapMode && (o.lightmapMode = e.lightmapMode), e.animations) ) { for (var a = 0; a < e.animations.length; a++) { var c = e.animations[a], u = l.a.GetClass("BABYLON.Animation"); u && o.animations.push(u.Parse(c)); } s.a.ParseAnimationRanges(o, e, n); } return e.autoAnimate && n.beginAnimation(o, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), o; }), (t.prototype._hookArrayForExcluded = function (e) { var t = this, n = e.push; e.push = function () { for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r]; for (var o = n.apply(e, i), a = 0, s = i; a < s.length; a++) { var c = s[a]; c._resyncLightSource(t); } return o; }; var i = e.splice; e.splice = function (n, r) { for (var o = i.apply(e, [n, r]), a = 0, s = o; a < s.length; a++) { s[a]._resyncLightSource(t); } return o; }; for (var r = 0, o = e; r < o.length; r++) { o[r]._resyncLightSource(this); } }), (t.prototype._hookArrayForIncludedOnly = function (e) { var t = this, n = e.push; e.push = function () { for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r]; var o = n.apply(e, i); return t._resyncMeshes(), o; }; var i = e.splice; (e.splice = function (n, r) { var o = i.apply(e, [n, r]); return t._resyncMeshes(), o; }), this._resyncMeshes(); }), (t.prototype._resyncMeshes = function () { for (var e = 0, t = this.getScene().meshes; e < t.length; e++) { t[e]._resyncLightSource(this); } }), (t.prototype._markMeshesAsLightDirty = function () { for (var e = 0, t = this.getScene().meshes; e < t.length; e++) { var n = t[e]; -1 !== n.lightSources.indexOf(this) && n._markSubMeshesAsLightDirty(); } }), (t.prototype._computePhotometricScale = function () { (this._photometricScale = this._getPhotometricScale()), this.getScene().resetCachedMaterial(); }), (t.prototype._getPhotometricScale = function () { var e = 0, n = this.getTypeID(), i = this.intensityMode; switch ((i === t.INTENSITYMODE_AUTOMATIC && (i = n === t.LIGHTTYPEID_DIRECTIONALLIGHT ? t.INTENSITYMODE_ILLUMINANCE : t.INTENSITYMODE_LUMINOUSINTENSITY), n)) { case t.LIGHTTYPEID_POINTLIGHT: case t.LIGHTTYPEID_SPOTLIGHT: switch (i) { case t.INTENSITYMODE_LUMINOUSPOWER: e = 1 / (4 * Math.PI); break; case t.INTENSITYMODE_LUMINOUSINTENSITY: e = 1; break; case t.INTENSITYMODE_LUMINANCE: e = this.radius * this.radius; } break; case t.LIGHTTYPEID_DIRECTIONALLIGHT: switch (i) { case t.INTENSITYMODE_ILLUMINANCE: e = 1; break; case t.INTENSITYMODE_LUMINANCE: var r = this.radius; (r = Math.max(r, 0.001)), (e = 2 * Math.PI * (1 - Math.cos(r))); } break; case t.LIGHTTYPEID_HEMISPHERICLIGHT: e = 1; } return e; }), (t.prototype._reorderLightsInScene = function () { var e = this.getScene(); 0 != this._renderPriority && (e.requireLightSorting = !0), this.getScene().sortLightsByPriority(); }), (t.FALLOFF_DEFAULT = 0), (t.FALLOFF_PHYSICAL = 1), (t.FALLOFF_GLTF = 2), (t.FALLOFF_STANDARD = 3), (t.LIGHTMAP_DEFAULT = 0), (t.LIGHTMAP_SPECULAR = 1), (t.LIGHTMAP_SHADOWSONLY = 2), (t.INTENSITYMODE_AUTOMATIC = 0), (t.INTENSITYMODE_LUMINOUSPOWER = 1), (t.INTENSITYMODE_LUMINOUSINTENSITY = 2), (t.INTENSITYMODE_ILLUMINANCE = 3), (t.INTENSITYMODE_LUMINANCE = 4), (t.LIGHTTYPEID_POINTLIGHT = 0), (t.LIGHTTYPEID_DIRECTIONALLIGHT = 1), (t.LIGHTTYPEID_SPOTLIGHT = 2), (t.LIGHTTYPEID_HEMISPHERICLIGHT = 3), Object(i.c)([Object(r.e)()], t.prototype, "diffuse", void 0), Object(i.c)([Object(r.e)()], t.prototype, "specular", void 0), Object(i.c)([Object(r.c)()], t.prototype, "falloffType", void 0), Object(i.c)([Object(r.c)()], t.prototype, "intensity", void 0), Object(i.c)([Object(r.c)()], t.prototype, "range", null), Object(i.c)([Object(r.c)()], t.prototype, "intensityMode", null), Object(i.c)([Object(r.c)()], t.prototype, "radius", null), Object(i.c)([Object(r.c)()], t.prototype, "_renderPriority", void 0), Object(i.c)([Object(r.b)("_reorderLightsInScene")], t.prototype, "renderPriority", void 0), Object(i.c)([Object(r.c)("shadowEnabled")], t.prototype, "_shadowEnabled", void 0), Object(i.c)([Object(r.c)("excludeWithLayerMask")], t.prototype, "_excludeWithLayerMask", void 0), Object(i.c)([Object(r.c)("includeOnlyWithLayerMask")], t.prototype, "_includeOnlyWithLayerMask", void 0), Object(i.c)([Object(r.c)("lightmapMode")], t.prototype, "_lightmapMode", void 0), t ); })(s.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.BuildArray = function (e, t) { for (var n = [], i = 0; i < e; ++i) n.push(t()); return n; }), e ); })(); }, function (e, t, n) { "use strict"; var i = "helperFunctions", r = "const float PI=3.1415926535897932384626433832795;\nconst float LinearEncodePowerApprox=2.2;\nconst float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;\nconst vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);\nconst float Epsilon=0.0000001;\n#define saturate(x) clamp(x,0.0,1.0)\n#define absEps(x) abs(x)+Epsilon\n#define maxEps(x) max(x,Epsilon)\n#define saturateEps(x) clamp(x,Epsilon,1.0)\nmat3 transposeMat3(mat3 inMatrix) {\nvec3 i0=inMatrix[0];\nvec3 i1=inMatrix[1];\nvec3 i2=inMatrix[2];\nmat3 outMatrix=mat3(\nvec3(i0.x,i1.x,i2.x),\nvec3(i0.y,i1.y,i2.y),\nvec3(i0.z,i1.z,i2.z)\n);\nreturn outMatrix;\n}\n\nmat3 inverseMat3(mat3 inMatrix) {\nfloat a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];\nfloat a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];\nfloat a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];\nfloat b01=a22*a11-a12*a21;\nfloat b11=-a22*a10+a12*a20;\nfloat b21=a21*a10-a11*a20;\nfloat det=a00*b01+a01*b11+a02*b21;\nreturn mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\nb11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\nb21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;\n}\nvec3 toLinearSpace(vec3 color)\n{\nreturn pow(color,vec3(LinearEncodePowerApprox));\n}\nvec3 toGammaSpace(vec3 color)\n{\nreturn pow(color,vec3(GammaEncodePowerApprox));\n}\nfloat toGammaSpace(float color)\n{\nreturn pow(color,GammaEncodePowerApprox);\n}\nfloat square(float value)\n{\nreturn value*value;\n}\nfloat pow5(float value) {\nfloat sq=value*value;\nreturn sq*sq*value;\n}\nfloat getLuminance(vec3 color)\n{\nreturn clamp(dot(color,LuminanceEncodeApprox),0.,1.);\n}\n\nfloat getRand(vec2 seed) {\nreturn fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);\n}\nfloat dither(vec2 seed,float varianceAmount) {\nfloat rand=getRand(seed);\nfloat dither=mix(-varianceAmount/255.0,varianceAmount/255.0,rand);\nreturn dither;\n}\n\nconst float rgbdMaxRange=255.0;\nvec4 toRGBD(vec3 color) {\nfloat maxRGB=maxEps(max(color.r,max(color.g,color.b)));\nfloat D=max(rgbdMaxRange/maxRGB,1.);\nD=clamp(floor(D)/255.0,0.,1.);\n\nvec3 rgb=color.rgb*D;\n\nrgb=toGammaSpace(rgb);\nreturn vec4(rgb,D);\n}\nvec3 fromRGBD(vec4 rgbd) {\n\nrgbd.rgb=toLinearSpace(rgbd.rgb);\n\nreturn rgbd.rgb/rgbd.a;\n}\n"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "lightFragmentDeclaration", r = "#ifdef LIGHT{X}\nuniform vec4 vLightData{X};\nuniform vec4 vLightDiffuse{X};\n#ifdef SPECULARTERM\nuniform vec4 vLightSpecular{X};\n#else\nvec4 vLightSpecular{X}=vec4(0.);\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float cascadeBlendFactor{X};\nvarying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying vec4 vPositionFromCamera{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\nuniform highp sampler2DArray depthSampler{X};\nuniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float penumbraDarkness{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\n#else\nuniform highp sampler2DArray shadowSampler{X};\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\n(\nvec3 ( 1.5,0.0,0.0 ),\nvec3 ( 0.0,1.5,0.0 ),\nvec3 ( 0.0,0.0,5.5 ),\nvec3 ( 1.5,0.0,5.5 ),\nvec3 ( 1.5,1.5,0.0 ),\nvec3 ( 1.0,1.0,1.0 ),\nvec3 ( 0.0,1.0,5.5 ),\nvec3 ( 0.5,3.5,0.75 )\n);\nvec3 shadowDebug{X};\n#endif\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nint index{X}=-1;\n#else\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nfloat diff{X}=0.;\n#elif defined(SHADOWCUBE{X})\nuniform samplerCube shadowSampler{X};\n#else\nvarying vec4 vPositionFromLight{X};\nvarying float vDepthMetric{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DShadow shadowSampler{X};\nuniform highp sampler2D depthSampler{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DShadow shadowSampler{X};\n#else\nuniform sampler2D shadowSampler{X};\n#endif\nuniform mat4 lightMatrix{X};\n#endif\nuniform vec4 shadowsInfo{X};\nuniform vec2 depthValues{X};\n#endif\n#ifdef SPOTLIGHT{X}\nuniform vec4 vLightDirection{X};\nuniform vec4 vLightFalloff{X};\n#elif defined(POINTLIGHT{X})\nuniform vec4 vLightFalloff{X};\n#elif defined(HEMILIGHT{X})\nuniform vec3 vLightGround{X};\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform mat4 textureProjectionMatrix{X};\nuniform sampler2D projectionLightSampler{X};\n#endif\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "lightUboDeclaration", r = "#ifdef LIGHT{X}\nuniform Light{X}\n{\nvec4 vLightData;\nvec4 vLightDiffuse;\nvec4 vLightSpecular;\n#ifdef SPOTLIGHT{X}\nvec4 vLightDirection;\nvec4 vLightFalloff;\n#elif defined(POINTLIGHT{X})\nvec4 vLightFalloff;\n#elif defined(HEMILIGHT{X})\nvec3 vLightGround;\n#endif\nvec4 shadowsInfo;\nvec2 depthValues;\n} light{X};\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform mat4 textureProjectionMatrix{X};\nuniform sampler2D projectionLightSampler{X};\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float cascadeBlendFactor{X};\nvarying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\nvarying vec4 vPositionFromCamera{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\nuniform highp sampler2DArray depthSampler{X};\nuniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\nuniform float penumbraDarkness{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DArrayShadow shadowSampler{X};\n#else\nuniform highp sampler2DArray shadowSampler{X};\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\n(\nvec3 ( 1.5,0.0,0.0 ),\nvec3 ( 0.0,1.5,0.0 ),\nvec3 ( 0.0,0.0,5.5 ),\nvec3 ( 1.5,0.0,5.5 ),\nvec3 ( 1.5,1.5,0.0 ),\nvec3 ( 1.0,1.0,1.0 ),\nvec3 ( 0.0,1.0,5.5 ),\nvec3 ( 0.5,3.5,0.75 )\n);\nvec3 shadowDebug{X};\n#endif\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nint index{X}=-1;\n#else\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nfloat diff{X}=0.;\n#elif defined(SHADOWCUBE{X})\nuniform samplerCube shadowSampler{X};\n#else\nvarying vec4 vPositionFromLight{X};\nvarying float vDepthMetric{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DShadow shadowSampler{X};\nuniform highp sampler2D depthSampler{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DShadow shadowSampler{X};\n#else\nuniform sampler2D shadowSampler{X};\n#endif\nuniform mat4 lightMatrix{X};\n#endif\n#endif\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "AbstractScene", function () { return i.a; }), n.d(t, "AbstractActionManager", function () { return r.a; }), n.d(t, "Action", function () { return l; }), n.d(t, "ActionEvent", function () { return u.a; }), n.d(t, "ActionManager", function () { return A; }), n.d(t, "Condition", function () { return d; }), n.d(t, "ValueCondition", function () { return p; }), n.d(t, "PredicateCondition", function () { return f; }), n.d(t, "StateCondition", function () { return m; }), n.d(t, "SwitchBooleanAction", function () { return b; }), n.d(t, "SetStateAction", function () { return _; }), n.d(t, "SetValueAction", function () { return v; }), n.d(t, "IncrementValueAction", function () { return y; }), n.d(t, "PlayAnimationAction", function () { return C; }), n.d(t, "StopAnimationAction", function () { return P; }), n.d(t, "DoNothingAction", function () { return x; }), n.d(t, "CombineAction", function () { return T; }), n.d(t, "ExecuteCodeAction", function () { return S; }), n.d(t, "SetParentAction", function () { return O; }), n.d(t, "PlaySoundAction", function () { return I; }), n.d(t, "StopSoundAction", function () { return D; }), n.d(t, "InterpolateValueAction", function () { return w; }), n.d(t, "Animatable", function () { return F.a; }), n.d(t, "_IAnimationState", function () { return R.b; }), n.d(t, "Animation", function () { return R.a; }), n.d(t, "TargetedAnimation", function () { return N.b; }), n.d(t, "AnimationGroup", function () { return N.a; }), n.d(t, "AnimationPropertiesOverride", function () { return k; }), n.d(t, "EasingFunction", function () { return X; }), n.d(t, "CircleEase", function () { return Y; }), n.d(t, "BackEase", function () { return K; }), n.d(t, "BounceEase", function () { return Z; }), n.d(t, "CubicEase", function () { return q; }), n.d(t, "ElasticEase", function () { return Q; }), n.d(t, "ExponentialEase", function () { return J; }), n.d(t, "PowerEase", function () { return $; }), n.d(t, "QuadraticEase", function () { return ee; }), n.d(t, "QuarticEase", function () { return te; }), n.d(t, "QuinticEase", function () { return ne; }), n.d(t, "SineEase", function () { return ie; }), n.d(t, "BezierCurveEase", function () { return re; }), n.d(t, "RuntimeAnimation", function () { return oe.a; }), n.d(t, "AnimationEvent", function () { return ae.a; }), n.d(t, "AnimationKeyInterpolation", function () { return se.a; }), n.d(t, "AnimationRange", function () { return ce.a; }), n.d(t, "KeepAssets", function () { return le.c; }), n.d(t, "InstantiatedEntries", function () { return le.b; }), n.d(t, "AssetContainer", function () { return le.a; }), n.d(t, "Analyser", function () { return he; }), n.d(t, "AudioEngine", function () { return de; }), n.d(t, "AudioSceneComponent", function () { return _e; }), n.d(t, "Sound", function () { return pe.a; }), n.d(t, "SoundTrack", function () { return fe; }), n.d(t, "WeightedSound", function () { return ve.a; }), n.d(t, "AutoRotationBehavior", function () { return Ce; }), n.d(t, "BouncingBehavior", function () { return Pe; }), n.d(t, "FramingBehavior", function () { return xe; }), n.d(t, "AttachToBoxBehavior", function () { return Se; }), n.d(t, "FadeInOutBehavior", function () { return Oe.a; }), n.d(t, "MultiPointerScaleBehavior", function () { return Ne; }), n.d(t, "PointerDragBehavior", function () { return Fe; }), n.d(t, "SixDofDragBehavior", function () { return ze; }), n.d(t, "Bone", function () { return je.a; }), n.d(t, "BoneIKController", function () { return Ve; }), n.d(t, "BoneLookController", function () { return Ge; }), n.d(t, "Skeleton", function () { return Ue.a; }), n.d(t, "ArcRotateCameraGamepadInput", function () { return Ze; }), n.d(t, "ArcRotateCameraKeyboardMoveInput", function () { return Qe; }), n.d(t, "ArcRotateCameraMouseWheelInput", function () { return Je; }), n.d(t, "ArcRotateCameraPointersInput", function () { return tt; }), n.d(t, "ArcRotateCameraVRDeviceOrientationInput", function () { return it; }), n.d(t, "FlyCameraKeyboardInput", function () { return rt; }), n.d(t, "FlyCameraMouseInput", function () { return ot; }), n.d(t, "FollowCameraKeyboardMoveInput", function () { return at; }), n.d(t, "FollowCameraMouseWheelInput", function () { return st; }), n.d(t, "FollowCameraPointersInput", function () { return ct; }), n.d(t, "FreeCameraDeviceOrientationInput", function () { return ut; }), n.d(t, "FreeCameraGamepadInput", function () { return ht; }), n.d(t, "FreeCameraKeyboardMoveInput", function () { return pt.a; }), n.d(t, "FreeCameraMouseInput", function () { return ft.a; }), n.d(t, "FreeCameraTouchInput", function () { return mt.a; }), n.d(t, "FreeCameraVirtualJoystickInput", function () { return _t; }), n.d(t, "CameraInputTypes", function () { return We.a; }), n.d(t, "CameraInputsManager", function () { return We.b; }), n.d(t, "Camera", function () { return De.a; }), n.d(t, "TargetCamera", function () { return vt.a; }), n.d(t, "FreeCamera", function () { return yt.a; }), n.d(t, "FreeCameraInputsManager", function () { return lt.a; }), n.d(t, "TouchCamera", function () { return Pt; }), n.d(t, "ArcRotateCamera", function () { return xt; }), n.d(t, "ArcRotateCameraInputsManager", function () { return nt; }), n.d(t, "DeviceOrientationCamera", function () { return Tt; }), n.d(t, "FlyCamera", function () { return Ot; }), n.d(t, "FlyCameraInputsManager", function () { return St; }), n.d(t, "FollowCamera", function () { return At; }), n.d(t, "ArcFollowCamera", function () { return It; }), n.d(t, "FollowCameraInputsManager", function () { return Et; }), n.d(t, "GamepadCamera", function () { return Ut; }), n.d(t, "AnaglyphArcRotateCamera", function () { return Zt; }), n.d(t, "AnaglyphFreeCamera", function () { return qt; }), n.d(t, "AnaglyphGamepadCamera", function () { return Qt; }), n.d(t, "AnaglyphUniversalCamera", function () { return Jt; }), n.d(t, "StereoscopicArcRotateCamera", function () { return nn; }), n.d(t, "StereoscopicFreeCamera", function () { return rn; }), n.d(t, "StereoscopicGamepadCamera", function () { return on; }), n.d(t, "StereoscopicUniversalCamera", function () { return an; }), n.d(t, "UniversalCamera", function () { return Gt; }), n.d(t, "VirtualJoysticksCamera", function () { return sn; }), n.d(t, "VRCameraMetrics", function () { return cn; }), n.d(t, "VRDeviceOrientationArcRotateCamera", function () { return yn; }), n.d(t, "VRDeviceOrientationFreeCamera", function () { return Cn; }), n.d(t, "VRDeviceOrientationGamepadCamera", function () { return Pn; }), n.d(t, "OnAfterEnteringVRObservableEvent", function () { return Yn; }), n.d(t, "VRExperienceHelper", function () { return Kn; }), n.d(t, "WebVRFreeCamera", function () { return Sn; }), n.d(t, "Collider", function () { return Qn; }), n.d(t, "DefaultCollisionCoordinator", function () { return Jn; }), n.d(t, "PickingInfo", function () { return Ae.a; }), n.d(t, "IntersectionInfo", function () { return Ie.a; }), n.d(t, "_MeshCollisionData", function () { return $n.a; }), n.d(t, "BoundingBox", function () { return ei.a; }), n.d(t, "BoundingInfo", function () { return ti.a; }), n.d(t, "BoundingSphere", function () { return ni.a; }), n.d(t, "Octree", function () { return oi; }), n.d(t, "OctreeBlock", function () { return ri; }), n.d(t, "OctreeSceneComponent", function () { return ai; }), n.d(t, "Ray", function () { return Re; }), n.d(t, "AxesViewer", function () { return hi; }), n.d(t, "BoneAxesViewer", function () { return di; }), n.d(t, "DebugLayerTab", function () { return pi.DebugLayerTab; }), n.d(t, "DebugLayer", function () { return pi.DebugLayer; }), n.d(t, "PhysicsViewer", function () { return Pi; }), n.d(t, "RayHelper", function () { return Si; }), n.d(t, "SkeletonViewer", function () { return Oi; }), n.d(t, "Constants", function () { return Ei.a; }), n.d(t, "ThinEngine", function () { return Mi.a; }), n.d(t, "Engine", function () { return ue.a; }), n.d(t, "EngineStore", function () { return E.a; }), n.d(t, "NullEngineOptions", function () { return Ai.b; }), n.d(t, "NullEngine", function () { return Ai.a; }), n.d(t, "_OcclusionDataStorage", function () { return Di; }), n.d(t, "_forceTransformFeedbackToBundle", function () { return Ri; }), n.d(t, "EngineView", function () { return wi; }), n.d(t, "WebGLPipelineContext", function () { return Ni.a; }), n.d(t, "WebGL2ShaderProcessor", function () { return ki.a; }), n.d(t, "NativeEngine", function () { return Qi; }), n.d(t, "KeyboardEventTypes", function () { return qe.a; }), n.d(t, "KeyboardInfo", function () { return qe.b; }), n.d(t, "KeyboardInfoPre", function () { return qe.c; }), n.d(t, "PointerEventTypes", function () { return ye.a; }), n.d(t, "PointerInfoBase", function () { return ye.c; }), n.d(t, "PointerInfoPre", function () { return ye.d; }), n.d(t, "PointerInfo", function () { return ye.b; }), n.d(t, "ClipboardEventTypes", function () { return Ji.a; }), n.d(t, "ClipboardInfo", function () { return Ji.b; }), n.d(t, "DaydreamController", function () { return er; }), n.d(t, "GearVRController", function () { return tr; }), n.d(t, "GenericController", function () { return nr; }), n.d(t, "OculusTouchController", function () { return ir; }), n.d(t, "PoseEnabledControllerType", function () { return Mt; }), n.d(t, "PoseEnabledControllerHelper", function () { return Lt; }), n.d(t, "PoseEnabledController", function () { return Ft; }), n.d(t, "ViveController", function () { return rr; }), n.d(t, "WebVRController", function () { return On; }), n.d(t, "WindowsMotionController", function () { return ar; }), n.d(t, "XRWindowsMotionController", function () { return sr; }), n.d(t, "StickValues", function () { return Xe; }), n.d(t, "Gamepad", function () { return Ye; }), n.d(t, "GenericPad", function () { return Ke; }), n.d(t, "GamepadManager", function () { return Bt; }), n.d(t, "GamepadSystemSceneComponent", function () { return Vt; }), n.d(t, "Xbox360Button", function () { return Rt; }), n.d(t, "Xbox360Dpad", function () { return wt; }), n.d(t, "Xbox360Pad", function () { return zt; }), n.d(t, "DualShockButton", function () { return Nt; }), n.d(t, "DualShockDpad", function () { return kt; }), n.d(t, "DualShockPad", function () { return jt; }), n.d(t, "AxisDragGizmo", function () { return ui; }), n.d(t, "AxisScaleGizmo", function () { return cr; }), n.d(t, "BoundingBoxGizmo", function () { return lr; }), n.d(t, "Gizmo", function () { return li; }), n.d(t, "GizmoManager", function () { return gr; }), n.d(t, "PlaneRotationGizmo", function () { return ur; }), n.d(t, "PositionGizmo", function () { return pr; }), n.d(t, "RotationGizmo", function () { return hr; }), n.d(t, "ScaleGizmo", function () { return mr; }), n.d(t, "LightGizmo", function () { return yr; }), n.d(t, "PlaneDragGizmo", function () { return dr; }), n.d(t, "EnvironmentHelper", function () { return Gr; }), n.d(t, "PhotoDome", function () { return Ur; }), n.d(t, "_forceSceneHelpersToBundle", function () { return Eo; }), n.d(t, "VideoDome", function () { return Do; }), n.d(t, "EngineInstrumentation", function () { return wo; }), n.d(t, "SceneInstrumentation", function () { return Lo; }), n.d(t, "_TimeToken", function () { return Ii; }), n.d(t, "EffectLayer", function () { return jo; }), n.d(t, "EffectLayerSceneComponent", function () { return Bo; }), n.d(t, "GlowLayer", function () { return Uo; }), n.d(t, "HighlightLayer", function () { return Xo; }), n.d(t, "Layer", function () { return Yo.a; }), n.d(t, "LayerSceneComponent", function () { return Ko.a; }), n.d(t, "LensFlare", function () { return Zo; }), n.d(t, "LensFlareSystem", function () { return Jo; }), n.d(t, "LensFlareSystemSceneComponent", function () { return $o; }), n.d(t, "Light", function () { return ea.a; }), n.d(t, "ShadowLight", function () { return ta.a; }), n.d(t, "ShadowGenerator", function () { return aa; }), n.d(t, "CascadedShadowGenerator", function () { return va; }), n.d(t, "ShadowGeneratorSceneComponent", function () { return ya; }), n.d(t, "DirectionalLight", function () { return br.a; }), n.d(t, "HemisphericLight", function () { return xn.a; }), n.d(t, "PointLight", function () { return Ca.a; }), n.d(t, "SpotLight", function () { return vr.a; }), n.d(t, "DefaultLoadingScreen", function () { return Pa; }), n.d(t, "_BabylonLoaderRegistered", function () { return ka; }), n.d(t, "BabylonFileLoaderConfiguration", function () { return za; }), n.d(t, "SceneLoaderProgressEvent", function () { return $i.c; }), n.d(t, "SceneLoaderAnimationGroupLoadingMode", function () { return $i.b; }), n.d(t, "SceneLoader", function () { return $i.a; }), n.d(t, "SceneLoaderFlags", function () { return Ha.a; }), n.d(t, "BackgroundMaterial", function () { return Vr; }), n.d(t, "ColorCurves", function () { return Wa.a; }), n.d(t, "EffectFallbacks", function () { return jr.a; }), n.d(t, "Effect", function () { return Xt.a; }), n.d(t, "FresnelParameters", function () { return Xa; }), n.d(t, "ImageProcessingConfigurationDefines", function () { return En.b; }), n.d(t, "ImageProcessingConfiguration", function () { return En.a; }), n.d(t, "Material", function () { return Fo.a; }), n.d(t, "MaterialDefines", function () { return Dr.a; }), n.d(t, "MaterialHelper", function () { return Ir.a; }), n.d(t, "MultiMaterial", function () { return Ta.a; }), n.d(t, "PBRMaterialDefines", function () { return Ya.b; }), n.d(t, "PBRBaseMaterial", function () { return Ya.a; }), n.d(t, "PBRBaseSimpleMaterial", function () { return Ka.a; }), n.d(t, "PBRMaterial", function () { return Hr.a; }), n.d(t, "PBRMetallicRoughnessMaterial", function () { return Za.a; }), n.d(t, "PBRSpecularGlossinessMaterial", function () { return qa; }), n.d(t, "PushMaterial", function () { return Rr.a; }), n.d(t, "ShaderMaterial", function () { return Qa.a; }), n.d(t, "StandardMaterialDefines", function () { return Mn.b; }), n.d(t, "StandardMaterial", function () { return Mn.a; }), n.d(t, "BaseTexture", function () { return Cr.a; }), n.d(t, "ColorGradingTexture", function () { return Ja; }), n.d(t, "CubeTexture", function () { return Ar.a; }), n.d(t, "DynamicTexture", function () { return An.a; }), n.d(t, "EquiRectangularCubeTexture", function () { return $a; }), n.d(t, "HDRCubeTexture", function () { return Ea; }), n.d(t, "InternalTextureSource", function () { return pn.b; }), n.d(t, "InternalTexture", function () { return pn.a; }), n.d(t, "_DDSTextureLoader", function () { return eo; }), n.d(t, "_ENVTextureLoader", function () { return to; }), n.d(t, "_KTXTextureLoader", function () { return ro; }), n.d(t, "_TGATextureLoader", function () { return ts; }), n.d(t, "_BasisTextureLoader", function () { return as; }), n.d(t, "MirrorTexture", function () { return Mr; }), n.d(t, "MultiRenderTarget", function () { return ss; }), n.d(t, "CustomProceduralTexture", function () { return us; }), n.d(t, "NoiseProceduralTexture", function () { return ds; }), n.d(t, "ProceduralTexture", function () { return cs.a; }), n.d(t, "ProceduralTextureSceneComponent", function () { return vs.a; }), n.d(t, "RawCubeTexture", function () { return ys.a; }), n.d(t, "RawTexture", function () { return Cs.a; }), n.d(t, "RawTexture3D", function () { return Ps; }), n.d(t, "RawTexture2DArray", function () { return xs; }), n.d(t, "RefractionTexture", function () { return Ts; }), n.d(t, "RenderTargetTexture", function () { return mn.a; }), n.d(t, "Texture", function () { return ln.a; }), n.d(t, "VideoTexture", function () { return Mo; }), n.d(t, "HtmlElementTexture", function () { return Ss; }), n.d(t, "TexturePacker", function () { return Es; }), n.d(t, "TexturePackerFrame", function () { return Os; }), n.d(t, "UniformBuffer", function () { return fn.a; }), n.d(t, "MaterialFlags", function () { return wr.a; }), n.d(t, "NodeMaterialBlockTargets", function () { return ps; }), n.d(t, "NodeMaterialBlockConnectionPointTypes", function () { return fs; }), n.d(t, "NodeMaterialBlockConnectionPointMode", function () { return ms; }), n.d(t, "NodeMaterialSystemValues", function () { return gs; }), n.d(t, "NodeMaterialConnectionPointCompatibilityStates", function () { return bs; }), n.d(t, "NodeMaterialConnectionPointDirection", function () { return _s; }), n.d(t, "NodeMaterialConnectionPoint", function () { return Ms; }), n.d(t, "NodeMaterialBlock", function () { return Is; }), n.d(t, "NodeMaterialDefines", function () { return zs; }), n.d(t, "NodeMaterial", function () { return js; }), n.d(t, "VertexOutputBlock", function () { return Ls; }), n.d(t, "BonesBlock", function () { return Bs; }), n.d(t, "InstancesBlock", function () { return Vs; }), n.d(t, "MorphTargetsBlock", function () { return Gs; }), n.d(t, "LightInformationBlock", function () { return Us; }), n.d(t, "FragmentOutputBlock", function () { return Ns; }), n.d(t, "ImageProcessingBlock", function () { return Hs; }), n.d(t, "PerturbNormalBlock", function () { return Ws; }), n.d(t, "DiscardBlock", function () { return Xs; }), n.d(t, "FrontFacingBlock", function () { return Ys; }), n.d(t, "DerivativeBlock", function () { return Ks; }), n.d(t, "FogBlock", function () { return Zs; }), n.d(t, "LightBlock", function () { return qs; }), n.d(t, "TextureBlock", function () { return Qs; }), n.d(t, "ReflectionTextureBlock", function () { return Js; }), n.d(t, "InputBlock", function () { return ks; }), n.d(t, "AnimatedInputBlockTypes", function () { return Fs; }), n.d(t, "MultiplyBlock", function () { return $s; }), n.d(t, "AddBlock", function () { return ec; }), n.d(t, "ScaleBlock", function () { return tc; }), n.d(t, "ClampBlock", function () { return nc; }), n.d(t, "CrossBlock", function () { return ic; }), n.d(t, "DotBlock", function () { return rc; }), n.d(t, "TransformBlock", function () { return ws; }), n.d(t, "RemapBlock", function () { return oc; }), n.d(t, "NormalizeBlock", function () { return sc; }), n.d(t, "TrigonometryBlockOperations", function () { return ac; }), n.d(t, "TrigonometryBlock", function () { return cc; }), n.d(t, "ColorMergerBlock", function () { return lc; }), n.d(t, "VectorMergerBlock", function () { return uc; }), n.d(t, "ColorSplitterBlock", function () { return hc; }), n.d(t, "VectorSplitterBlock", function () { return dc; }), n.d(t, "LerpBlock", function () { return pc; }), n.d(t, "DivideBlock", function () { return fc; }), n.d(t, "SubtractBlock", function () { return mc; }), n.d(t, "StepBlock", function () { return gc; }), n.d(t, "OneMinusBlock", function () { return bc; }), n.d(t, "ViewDirectionBlock", function () { return _c; }), n.d(t, "FresnelBlock", function () { return vc; }), n.d(t, "MaxBlock", function () { return yc; }), n.d(t, "MinBlock", function () { return Cc; }), n.d(t, "DistanceBlock", function () { return Pc; }), n.d(t, "LengthBlock", function () { return xc; }), n.d(t, "NegateBlock", function () { return Tc; }), n.d(t, "PowBlock", function () { return Sc; }), n.d(t, "RandomNumberBlock", function () { return Oc; }), n.d(t, "ArcTan2Block", function () { return Ec; }), n.d(t, "SmoothStepBlock", function () { return Mc; }), n.d(t, "ReciprocalBlock", function () { return Ac; }), n.d(t, "ReplaceColorBlock", function () { return Ic; }), n.d(t, "PosterizeBlock", function () { return Rc; }), n.d(t, "WaveBlockKind", function () { return Dc; }), n.d(t, "WaveBlock", function () { return wc; }), n.d(t, "GradientBlockColorStep", function () { return Lc; }), n.d(t, "GradientBlock", function () { return Fc; }), n.d(t, "NLerpBlock", function () { return Nc; }), n.d(t, "WorleyNoise3DBlock", function () { return kc; }), n.d(t, "SimplexPerlin3DBlock", function () { return zc; }), n.d(t, "NormalBlendBlock", function () { return jc; }), n.d(t, "Rotate2dBlock", function () { return Bc; }), n.d(t, "ReflectBlock", function () { return Vc; }), n.d(t, "RefractBlock", function () { return Gc; }), n.d(t, "DesaturateBlock", function () { return Uc; }), n.d(t, "NodeMaterialOptimizer", function () { return Hc; }), n.d(t, "EffectRenderer", function () { return Wc; }), n.d(t, "EffectWrapper", function () { return Xc; }), n.d(t, "Scalar", function () { return z.a; }), n.d(t, "Space", function () { return Be.b; }), n.d(t, "Axis", function () { return Be.a; }), n.d(t, "Color3", function () { return s.a; }), n.d(t, "Color4", function () { return s.b; }), n.d(t, "TmpColors", function () { return s.c; }), n.d(t, "ToGammaSpace", function () { return j.b; }), n.d(t, "ToLinearSpace", function () { return j.c; }), n.d(t, "Epsilon", function () { return j.a; }), n.d(t, "Frustum", function () { return bn.a; }), n.d(t, "Orientation", function () { return L; }), n.d(t, "BezierCurve", function () { return B; }), n.d(t, "Angle", function () { return V; }), n.d(t, "Arc2", function () { return G; }), n.d(t, "Path2", function () { return U; }), n.d(t, "Path3D", function () { return H; }), n.d(t, "Curve3", function () { return W; }), n.d(t, "Plane", function () { return Zn.a; }), n.d(t, "Size", function () { return Tn.a; }), n.d(t, "Vector2", function () { return a.d; }), n.d(t, "Vector3", function () { return a.e; }), n.d(t, "Vector4", function () { return a.f; }), n.d(t, "Quaternion", function () { return a.b; }), n.d(t, "Matrix", function () { return a.a; }), n.d(t, "TmpVectors", function () { return a.c; }), n.d(t, "PositionNormalVertex", function () { return Ao; }), n.d(t, "PositionNormalTextureVertex", function () { return Io; }), n.d(t, "Viewport", function () { return vn.a; }), n.d(t, "SphericalHarmonics", function () { return Wr.a; }), n.d(t, "SphericalPolynomial", function () { return Wr.b; }), n.d(t, "AbstractMesh", function () { return ke.a; }), n.d(t, "Buffer", function () { return wn.a; }), n.d(t, "VertexBuffer", function () { return wn.b; }), n.d(t, "DracoCompression", function () { return Yc.a; }), n.d(t, "CSG", function () { return el; }), n.d(t, "Geometry", function () { return xa.a; }), n.d(t, "GroundMesh", function () { return Ln; }), n.d(t, "TrailMesh", function () { return tl; }), n.d(t, "InstancedMesh", function () { return nl.a; }), n.d(t, "LinesMesh", function () { return xi.b; }), n.d(t, "InstancedLinesMesh", function () { return xi.a; }), n.d(t, "_CreationDataStorage", function () { return Ee.b; }), n.d(t, "_InstancesBatch", function () { return Ee.c; }), n.d(t, "Mesh", function () { return Ee.a; }), n.d(t, "VertexData", function () { return Rn.a; }), n.d(t, "MeshBuilder", function () { return bl; }), n.d(t, "SimplificationSettings", function () { return _l; }), n.d(t, "SimplificationQueue", function () { return vl; }), n.d(t, "SimplificationType", function () { return ml; }), n.d(t, "SimplicationQueueSceneComponent", function () { return Sl; }), n.d(t, "Polygon", function () { return cl; }), n.d(t, "PolygonMeshBuilder", function () { return ll; }), n.d(t, "BaseSubMesh", function () { return Kc.a; }), n.d(t, "SubMesh", function () { return Kc.b; }), n.d(t, "MeshLODLevel", function () { return Ol.a; }), n.d(t, "TransformNode", function () { return si.a; }), n.d(t, "BoxBuilder", function () { return fi.a; }), n.d(t, "TiledBoxBuilder", function () { return rl; }), n.d(t, "DiscBuilder", function () { return il; }), n.d(t, "RibbonBuilder", function () { return wa; }), n.d(t, "SphereBuilder", function () { return mi; }), n.d(t, "HemisphereBuilder", function () { return _r; }), n.d(t, "CylinderBuilder", function () { return jn; }), n.d(t, "TorusBuilder", function () { return kn; }), n.d(t, "TorusKnotBuilder", function () { return ol; }), n.d(t, "LinesBuilder", function () { return Ti; }), n.d(t, "PolygonBuilder", function () { return ul; }), n.d(t, "ShapeBuilder", function () { return La; }), n.d(t, "LatheBuilder", function () { return hl; }), n.d(t, "PlaneBuilder", function () { return Le.a; }), n.d(t, "TiledPlaneBuilder", function () { return dl; }), n.d(t, "GroundBuilder", function () { return Nn; }), n.d(t, "TubeBuilder", function () { return pl; }), n.d(t, "PolyhedronBuilder", function () { return fr; }), n.d(t, "IcoSphereBuilder", function () { return fl; }), n.d(t, "DecalBuilder", function () { return gl; }), n.d(t, "DataBuffer", function () { return zi.a; }), n.d(t, "WebGLDataBuffer", function () { return El.a; }), n.d(t, "MorphTarget", function () { return Ml.a; }), n.d(t, "MorphTargetManager", function () { return Ma.a; }), n.d(t, "RecastJSPlugin", function () { return Al; }), n.d(t, "RecastJSCrowd", function () { return Il; }), n.d(t, "Node", function () { return Ct.a; }), n.d(t, "Database", function () { return Rl; }), n.d(t, "BaseParticleSystem", function () { return Ul; }), n.d(t, "BoxParticleEmitter", function () { return wl; }), n.d(t, "ConeParticleEmitter", function () { return Ll; }), n.d(t, "CylinderParticleEmitter", function () { return Fl; }), n.d(t, "CylinderDirectedParticleEmitter", function () { return Nl; }), n.d(t, "HemisphericParticleEmitter", function () { return kl; }), n.d(t, "PointParticleEmitter", function () { return zl; }), n.d(t, "SphereParticleEmitter", function () { return jl; }), n.d(t, "SphereDirectedParticleEmitter", function () { return Bl; }), n.d(t, "CustomParticleEmitter", function () { return Vl; }), n.d(t, "MeshParticleEmitter", function () { return Gl; }), n.d(t, "GPUParticleSystem", function () { return ru; }), n.d(t, "Particle", function () { return Kl; }), n.d(t, "ParticleHelper", function () { return au; }), n.d(t, "ParticleSystem", function () { return Jl; }), n.d(t, "_IDoNeedToBeInTheBuild", function () { return cu; }), n.d(t, "ParticleSystemSet", function () { return ou; }), n.d(t, "SolidParticle", function () { return lu; }), n.d(t, "ModelShape", function () { return uu; }), n.d(t, "DepthSortedParticle", function () { return hu; }), n.d(t, "SolidParticleSystem", function () { return du; }), n.d(t, "CloudPoint", function () { return pu; }), n.d(t, "PointsGroup", function () { return fu; }), n.d(t, "PointColor", function () { return su; }), n.d(t, "PointsCloudSystem", function () { return mu; }), n.d(t, "SubEmitterType", function () { return Dl; }), n.d(t, "SubEmitter", function () { return Zl; }), n.d(t, "PhysicsEngine", function () { return Aa; }), n.d(t, "PhysicsEngineSceneComponent", function () { return _u; }), n.d(t, "PhysicsHelper", function () { return vu; }), n.d(t, "PhysicsRadialExplosionEventOptions", function () { return Tu; }), n.d(t, "PhysicsUpdraftEventOptions", function () { return Su; }), n.d(t, "PhysicsVortexEventOptions", function () { return Ou; }), n.d(t, "PhysicsRadialImpulseFalloff", function () { return gu; }), n.d(t, "PhysicsUpdraftMode", function () { return bu; }), n.d(t, "PhysicsImpostor", function () { return Ci; }), n.d(t, "PhysicsJoint", function () { return gi; }), n.d(t, "DistanceJoint", function () { return bi; }), n.d(t, "MotorEnabledJoint", function () { return _i; }), n.d(t, "HingeJoint", function () { return vi; }), n.d(t, "Hinge2Joint", function () { return yi; }), n.d(t, "CannonJSPlugin", function () { return Da; }), n.d(t, "AmmoJSPlugin", function () { return Fa; }), n.d(t, "OimoJSPlugin", function () { return Ra; }), n.d(t, "AnaglyphPostProcess", function () { return Kt; }), n.d(t, "BlackAndWhitePostProcess", function () { return Mu; }), n.d(t, "BloomEffect", function () { return Lu; }), n.d(t, "BloomMergePostProcess", function () { return wu; }), n.d(t, "BlurPostProcess", function () { return Er; }), n.d(t, "ChromaticAberrationPostProcess", function () { return Nu; }), n.d(t, "CircleOfConfusionPostProcess", function () { return zu; }), n.d(t, "ColorCorrectionPostProcess", function () { return Bu; }), n.d(t, "ConvolutionPostProcess", function () { return Gu; }), n.d(t, "DepthOfFieldBlurPostProcess", function () { return Uu; }), n.d(t, "DepthOfFieldEffectBlurLevel", function () { return Wu; }), n.d(t, "DepthOfFieldEffect", function () { return Ku; }), n.d(t, "DepthOfFieldMergePostProcessOptions", function () { return Xu; }), n.d(t, "DepthOfFieldMergePostProcess", function () { return Yu; }), n.d(t, "DisplayPassPostProcess", function () { return qu; }), n.d(t, "ExtractHighlightsPostProcess", function () { return Du; }), n.d(t, "FilterPostProcess", function () { return Ju; }), n.d(t, "FxaaPostProcess", function () { return th; }), n.d(t, "GrainPostProcess", function () { return ih; }), n.d(t, "HighlightsPostProcess", function () { return oh; }), n.d(t, "ImageProcessingPostProcess", function () { return Dn; }), n.d(t, "MotionBlurPostProcess", function () { return hh; }), n.d(t, "PassPostProcess", function () { return Ht.b; }), n.d(t, "PassCubePostProcess", function () { return Ht.a; }), n.d(t, "PostProcess", function () { return Wt.a; }), n.d(t, "PostProcessManager", function () { return ua.a; }), n.d(t, "RefractionPostProcess", function () { return ph; }), n.d(t, "DefaultRenderingPipeline", function () { return vh; }), n.d(t, "LensRenderingPipeline", function () { return Ph; }), n.d(t, "SSAO2RenderingPipeline", function () { return Sh; }), n.d(t, "SSAORenderingPipeline", function () { return Eh; }), n.d(t, "StandardRenderingPipeline", function () { return Dh; }), n.d(t, "PostProcessRenderEffect", function () { return Au; }), n.d(t, "PostProcessRenderPipeline", function () { return gh; }), n.d(t, "PostProcessRenderPipelineManager", function () { return bh; }), n.d(t, "PostProcessRenderPipelineManagerSceneComponent", function () { return _h; }), n.d(t, "SharpenPostProcess", function () { return mh; }), n.d(t, "StereoscopicInterlacePostProcessI", function () { return en; }), n.d(t, "StereoscopicInterlacePostProcess", function () { return tn; }), n.d(t, "TonemappingOperator", function () { return wh; }), n.d(t, "TonemapPostProcess", function () { return Lh; }), n.d(t, "VolumetricLightScatteringPostProcess", function () { return zh; }), n.d(t, "VRDistortionCorrectionPostProcess", function () { return hn; }), n.d(t, "VRMultiviewToSingleviewPostProcess", function () { return _n; }), n.d(t, "ScreenSpaceReflectionPostProcess", function () { return Ah; }), n.d(t, "ReflectionProbe", function () { return Na; }), n.d(t, "BoundingBoxRenderer", function () { return jh; }), n.d(t, "DepthRenderer", function () { return la; }), n.d(t, "DepthRendererSceneComponent", function () { return Bh; }), n.d(t, "EdgesRenderer", function () { return Uh; }), n.d(t, "LineEdgesRenderer", function () { return Hh; }), n.d(t, "GeometryBufferRenderer", function () { return ch; }), n.d(t, "GeometryBufferRendererSceneComponent", function () { return lh; }), n.d(t, "OutlineRenderer", function () { return Yh; }), n.d(t, "RenderingGroup", function () { return Kh.a; }), n.d(t, "RenderingGroupInfo", function () { return oa.a; }), n.d(t, "RenderingManager", function () { return oa.b; }), n.d(t, "UtilityLayerRenderer", function () { return ci.a; }), n.d(t, "Scene", function () { return ge.a; }), n.d(t, "SceneComponentConstants", function () { return me.a; }), n.d(t, "Stage", function () { return me.b; }), n.d(t, "Sprite", function () { return Zh; }), n.d(t, "SpriteManager", function () { return $h; }), n.d(t, "SpriteMap", function () { return id; }), n.d(t, "SpritePackedManager", function () { return rd; }), n.d(t, "SpriteSceneComponent", function () { return qh; }), n.d(t, "AlphaState", function () { return od.a; }), n.d(t, "DepthCullingState", function () { return ad.a; }), n.d(t, "StencilState", function () { return sd.a; }), n.d(t, "AndOrNotEvaluator", function () { return cd.a; }), n.d(t, "AssetTaskState", function () { return nd; }), n.d(t, "AbstractAssetTask", function () { return ud; }), n.d(t, "AssetsProgressEvent", function () { return hd; }), n.d(t, "MeshAssetTask", function () { return dd; }), n.d(t, "TextFileAssetTask", function () { return pd; }), n.d(t, "BinaryFileAssetTask", function () { return fd; }), n.d(t, "ImageAssetTask", function () { return md; }), n.d(t, "TextureAssetTask", function () { return gd; }), n.d(t, "CubeTextureAssetTask", function () { return bd; }), n.d(t, "HDRCubeTextureAssetTask", function () { return _d; }), n.d(t, "EquiRectangularCubeTextureAssetTask", function () { return vd; }), n.d(t, "AssetsManager", function () { return yd; }), n.d(t, "BasisTranscodeConfiguration", function () { return is; }), n.d(t, "BasisTools", function () { return rs; }), n.d(t, "DDSTools", function () { return Jr; }), n.d(t, "expandToProperty", function () { return He.b; }), n.d(t, "serialize", function () { return He.c; }), n.d(t, "serializeAsTexture", function () { return He.m; }), n.d(t, "serializeAsColor3", function () { return He.e; }), n.d(t, "serializeAsFresnelParameters", function () { return He.h; }), n.d(t, "serializeAsVector2", function () { return He.n; }), n.d(t, "serializeAsVector3", function () { return He.o; }), n.d(t, "serializeAsMeshReference", function () { return He.k; }), n.d(t, "serializeAsColorCurves", function () { return He.g; }), n.d(t, "serializeAsColor4", function () { return He.f; }), n.d(t, "serializeAsImageProcessingConfiguration", function () { return He.i; }), n.d(t, "serializeAsQuaternion", function () { return He.l; }), n.d(t, "serializeAsMatrix", function () { return He.j; }), n.d(t, "serializeAsCameraReference", function () { return He.d; }), n.d(t, "SerializationHelper", function () { return He.a; }), n.d(t, "Deferred", function () { return Cd.a; }), n.d(t, "EnvironmentTextureTools", function () { return ji.a; }), n.d(t, "MeshExploder", function () { return Pd; }), n.d(t, "FilesInput", function () { return Td; }), n.d(t, "CubeMapToSphericalPolynomialTools", function () { return Xr.a; }), n.d(t, "HDRTools", function () { return Oa; }), n.d(t, "PanoramaToCubeMapTools", function () { return Sa; }), n.d(t, "KhronosTextureContainer", function () { return no; }), n.d(t, "EventState", function () { return o.a; }), n.d(t, "Observer", function () { return o.d; }), n.d(t, "MultiObserver", function () { return o.b; }), n.d(t, "Observable", function () { return o.c; }), n.d(t, "PerformanceMonitor", function () { return Sd.a; }), n.d(t, "RollingAverage", function () { return Sd.b; }), n.d(t, "PromisePolyfill", function () { return Od.a; }), n.d(t, "SceneOptimization", function () { return Ed; }), n.d(t, "TextureOptimization", function () { return Md; }), n.d(t, "HardwareScalingOptimization", function () { return Ad; }), n.d(t, "ShadowsOptimization", function () { return Id; }), n.d(t, "PostProcessesOptimization", function () { return Dd; }), n.d(t, "LensFlaresOptimization", function () { return Rd; }), n.d(t, "CustomOptimization", function () { return wd; }), n.d(t, "ParticlesOptimization", function () { return Ld; }), n.d(t, "RenderTargetsOptimization", function () { return Fd; }), n.d(t, "MergeMeshesOptimization", function () { return Nd; }), n.d(t, "SceneOptimizerOptions", function () { return kd; }), n.d(t, "SceneOptimizer", function () { return zd; }), n.d(t, "SceneSerializer", function () { return Gd; }), n.d(t, "SmartArray", function () { return ii.a; }), n.d(t, "SmartArrayNoDuplicate", function () { return ii.b; }), n.d(t, "StringDictionary", function () { return gt.a; }), n.d(t, "Tags", function () { return Ud.a; }), n.d(t, "TextureTools", function () { return Hd.a; }), n.d(t, "TGATools", function () { return es; }), n.d(t, "Tools", function () { return $e.b; }), n.d(t, "className", function () { return $e.c; }), n.d(t, "AsyncLoop", function () { return $e.a; }), n.d(t, "VideoRecorder", function () { return Wd; }), n.d(t, "JoystickAxis", function () { return dt; }), n.d(t, "VirtualJoystick", function () { return bt; }), n.d(t, "WorkerPool", function () { return Xd.a; }), n.d(t, "Logger", function () { return g.a; }), n.d(t, "_TypeStore", function () { return c.a; }), n.d(t, "FilesInputStore", function () { return xd.a; }), n.d(t, "DeepCopier", function () { return M.a; }), n.d(t, "PivotTools", function () { return we; }), n.d(t, "PrecisionDate", function () { return be.a; }), n.d(t, "ScreenshotTools", function () { return Yd; }), n.d(t, "WebRequest", function () { return ls.a; }), n.d(t, "InspectableType", function () { return ld; }), n.d(t, "BRDFTextureTools", function () { return Kd.a; }), n.d(t, "RGBDTextureTools", function () { return Zd.a; }), n.d(t, "ColorGradient", function () { return Hl; }), n.d(t, "Color3Gradient", function () { return Wl; }), n.d(t, "FactorGradient", function () { return Xl; }), n.d(t, "GradientHelper", function () { return Yl; }), n.d(t, "PerfCounter", function () { return Ro.a; }), n.d(t, "RetryStrategy", function () { return qd.a; }), n.d(t, "CanvasGenerator", function () { return Fn.a; }), n.d(t, "LoadFileError", function () { return Qd.b; }), n.d(t, "RequestFileError", function () { return Qd.d; }), n.d(t, "ReadFileError", function () { return Qd.c; }), n.d(t, "FileTools", function () { return Qd.a; }), n.d(t, "StringTools", function () { return $r.a; }), n.d(t, "DataReader", function () { return Jd.a; }), n.d(t, "MinMaxReducer", function () { return da; }), n.d(t, "DepthReducer", function () { return pa; }), n.d(t, "WebXRCamera", function () { return oo; }), n.d(t, "WebXREnterExitUIButton", function () { return Co; }), n.d(t, "WebXREnterExitUIOptions", function () { return Po; }), n.d(t, "WebXREnterExitUI", function () { return xo; }), n.d(t, "WebXRExperienceHelper", function () { return co; }), n.d(t, "WebXRInput", function () { return _o; }), n.d(t, "WebXRInputSource", function () { return bo; }), n.d(t, "WebXRManagedOutputCanvasOptions", function () { return Bn; }), n.d(t, "WebXRManagedOutputCanvas", function () { return Vn; }), n.d(t, "WebXRState", function () { return zn; }), n.d(t, "WebXRSessionManager", function () { return Gn; }), n.d(t, "WebXRDefaultExperienceOptions", function () { return So; }), n.d(t, "WebXRDefaultExperience", function () { return Oo; }), n.d(t, "WebXRFeatureName", function () { return ao; }), n.d(t, "WebXRFeaturesManager", function () { return so; }), n.d(t, "WebXRHitTestLegacy", function () { return $d; }), n.d(t, "WebXRAnchorSystem", function () { return tp; }), n.d(t, "WebXRPlaneDetector", function () { return ip; }), n.d(t, "WebXRBackgroundRemover", function () { return rp; }), n.d(t, "WebXRMotionControllerTeleportation", function () { return To; }), n.d(t, "WebXRControllerPointerSelection", function () { return yo; }), n.d(t, "IWebXRControllerPhysicsOptions", function () { return op; }), n.d(t, "WebXRControllerPhysics", function () { return ap; }), n.d(t, "WebXRAbstractMotionController", function () { return uo; }), n.d(t, "WebXRControllerComponent", function () { return lo; }), n.d(t, "WebXRGenericTriggerMotionController", function () { return ho; }), n.d(t, "WebXRMicrosoftMixedRealityController", function () { return sp; }), n.d(t, "WebXRMotionControllerManager", function () { return mo; }), n.d(t, "WebXROculusTouchMotionController", function () { return lp; }), n.d(t, "WebXRHTCViveMotionController", function () { return hp; }), n.d(t, "WebXRProfiledMotionController", function () { return fo; }); var i = n(54), r = n(130), o = n(6), a = n(1), s = n(5), c = n(13), l = (function () { function e(e, t) { (this.triggerOptions = e), (this.onBeforeExecuteObservable = new o.c()), e.parameter ? ((this.trigger = e.trigger), (this._triggerParameter = e.parameter)) : e.trigger ? (this.trigger = e.trigger) : (this.trigger = e), (this._nextActiveAction = this), (this._condition = t); } return ( (e.prototype._prepare = function () {}), (e.prototype.getTriggerParameter = function () { return this._triggerParameter; }), (e.prototype._executeCurrent = function (e) { if (this._nextActiveAction._condition) { var t = this._nextActiveAction._condition, n = this._actionManager.getScene().getRenderId(); if (t._evaluationId === n) { if (!t._currentResult) return; } else { if (((t._evaluationId = n), !t.isValid())) return void (t._currentResult = !1); t._currentResult = !0; } } this.onBeforeExecuteObservable.notifyObservers(this), this._nextActiveAction.execute(e), this.skipToNextActiveAction(); }), (e.prototype.execute = function (e) {}), (e.prototype.skipToNextActiveAction = function () { this._nextActiveAction._child ? (this._nextActiveAction._child._actionManager || (this._nextActiveAction._child._actionManager = this._actionManager), (this._nextActiveAction = this._nextActiveAction._child)) : (this._nextActiveAction = this); }), (e.prototype.then = function (e) { return (this._child = e), (e._actionManager = this._actionManager), e._prepare(), e; }), (e.prototype._getProperty = function (e) { return this._actionManager._getProperty(e); }), (e.prototype._getEffectiveTarget = function (e, t) { return this._actionManager._getEffectiveTarget(e, t); }), (e.prototype.serialize = function (e) {}), (e.prototype._serialize = function (e, t) { var n = { type: 1, children: [], name: e.name, properties: e.properties || [] }; if ((this._child && this._child.serialize(n), this._condition)) { var i = this._condition.serialize(); return i.children.push(n), t && t.children.push(i), i; } return t && t.children.push(n), n; }), (e._SerializeValueAsString = function (e) { return "number" == typeof e ? e.toString() : "boolean" == typeof e ? e ? "true" : "false" : e instanceof a.d ? e.x + ", " + e.y : e instanceof a.e ? e.x + ", " + e.y + ", " + e.z : e instanceof s.a ? e.r + ", " + e.g + ", " + e.b : e instanceof s.b ? e.r + ", " + e.g + ", " + e.b + ", " + e.a : e; }), (e._GetTargetProperty = function (e) { return { name: "target", targetType: e._isMesh ? "MeshProperties" : e._isLight ? "LightProperties" : e._isCamera ? "CameraProperties" : "SceneProperties", value: e._isScene ? "Scene" : e.name }; }), e ); })(); c.a.RegisteredTypes["BABYLON.Action"] = l; var u = n(64), h = n(2), d = (function () { function e(e) { this._actionManager = e; } return ( (e.prototype.isValid = function () { return !0; }), (e.prototype._getProperty = function (e) { return this._actionManager._getProperty(e); }), (e.prototype._getEffectiveTarget = function (e, t) { return this._actionManager._getEffectiveTarget(e, t); }), (e.prototype.serialize = function () {}), (e.prototype._serialize = function (e) { return { type: 2, children: [], name: e.name, properties: e.properties }; }), e ); })(), p = (function (e) { function t(n, i, r, o, a) { void 0 === a && (a = t.IsEqual); var s = e.call(this, n) || this; return (s.propertyPath = r), (s.value = o), (s.operator = a), (s._target = i), (s._effectiveTarget = s._getEffectiveTarget(i, s.propertyPath)), (s._property = s._getProperty(s.propertyPath)), s; } return ( Object(h.d)(t, e), Object.defineProperty(t, "IsEqual", { get: function () { return t._IsEqual; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "IsDifferent", { get: function () { return t._IsDifferent; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "IsGreater", { get: function () { return t._IsGreater; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "IsLesser", { get: function () { return t._IsLesser; }, enumerable: !0, configurable: !0, }), (t.prototype.isValid = function () { switch (this.operator) { case t.IsGreater: return this._effectiveTarget[this._property] > this.value; case t.IsLesser: return this._effectiveTarget[this._property] < this.value; case t.IsEqual: case t.IsDifferent: var e; return (e = this.value.equals ? this.value.equals(this._effectiveTarget[this._property]) : this.value === this._effectiveTarget[this._property]), this.operator === t.IsEqual ? e : !e; } return !1; }), (t.prototype.serialize = function () { return this._serialize({ name: "ValueCondition", properties: [ l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }, { name: "value", value: l._SerializeValueAsString(this.value) }, { name: "operator", value: t.GetOperatorName(this.operator) }, ], }); }), (t.GetOperatorName = function (e) { switch (e) { case t._IsEqual: return "IsEqual"; case t._IsDifferent: return "IsDifferent"; case t._IsGreater: return "IsGreater"; case t._IsLesser: return "IsLesser"; default: return ""; } }), (t._IsEqual = 0), (t._IsDifferent = 1), (t._IsGreater = 2), (t._IsLesser = 3), t ); })(d), f = (function (e) { function t(t, n) { var i = e.call(this, t) || this; return (i.predicate = n), i; } return ( Object(h.d)(t, e), (t.prototype.isValid = function () { return this.predicate(); }), t ); })(d), m = (function (e) { function t(t, n, i) { var r = e.call(this, t) || this; return (r.value = i), (r._target = n), r; } return ( Object(h.d)(t, e), (t.prototype.isValid = function () { return this._target.state === this.value; }), (t.prototype.serialize = function () { return this._serialize({ name: "StateCondition", properties: [l._GetTargetProperty(this._target), { name: "value", value: this.value }] }); }), t ); })(d); (c.a.RegisteredTypes["BABYLON.ValueCondition"] = p), (c.a.RegisteredTypes["BABYLON.PredicateCondition"] = f), (c.a.RegisteredTypes["BABYLON.StateCondition"] = m); var g = n(10), b = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, r) || this; return (o.propertyPath = i), (o._target = o._effectiveTarget = n), o; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () { (this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath)); }), (t.prototype.execute = function () { this._effectiveTarget[this._property] = !this._effectiveTarget[this._property]; }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "SwitchBooleanAction", properties: [l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }] }, t); }), t ); })(l), _ = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, r) || this; return (o.value = i), (o._target = n), o; } return ( Object(h.d)(t, e), (t.prototype.execute = function () { this._target.state = this.value; }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "SetStateAction", properties: [l._GetTargetProperty(this._target), { name: "value", value: this.value }] }, t); }), t ); })(l), v = (function (e) { function t(t, n, i, r, o) { var a = e.call(this, t, o) || this; return (a.propertyPath = i), (a.value = r), (a._target = a._effectiveTarget = n), a; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () { (this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath)); }), (t.prototype.execute = function () { (this._effectiveTarget[this._property] = this.value), this._target.markAsDirty && this._target.markAsDirty(this._property); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call( this, { name: "SetValueAction", properties: [l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }, { name: "value", value: l._SerializeValueAsString(this.value) }] }, t ); }), t ); })(l), y = (function (e) { function t(t, n, i, r, o) { var a = e.call(this, t, o) || this; return (a.propertyPath = i), (a.value = r), (a._target = a._effectiveTarget = n), a; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () { (this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath)), "number" != typeof this._effectiveTarget[this._property] && g.a.Warn("Warning: IncrementValueAction can only be used with number values"); }), (t.prototype.execute = function () { (this._effectiveTarget[this._property] += this.value), this._target.markAsDirty && this._target.markAsDirty(this._property); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call( this, { name: "IncrementValueAction", properties: [l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }, { name: "value", value: l._SerializeValueAsString(this.value) }] }, t ); }), t ); })(l), C = (function (e) { function t(t, n, i, r, o, a) { var s = e.call(this, t, a) || this; return (s.from = i), (s.to = r), (s.loop = o), (s._target = n), s; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () {}), (t.prototype.execute = function () { this._actionManager.getScene().beginAnimation(this._target, this.from, this.to, this.loop); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call( this, { name: "PlayAnimationAction", properties: [l._GetTargetProperty(this._target), { name: "from", value: String(this.from) }, { name: "to", value: String(this.to) }, { name: "loop", value: l._SerializeValueAsString(this.loop) || !1 }], }, t ); }), t ); })(l), P = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r._target = n), r; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () {}), (t.prototype.execute = function () { this._actionManager.getScene().stopAnimation(this._target); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "StopAnimationAction", properties: [l._GetTargetProperty(this._target)] }, t); }), t ); })(l), x = (function (e) { function t(t, n) { return void 0 === t && (t = 0), e.call(this, t, n) || this; } return ( Object(h.d)(t, e), (t.prototype.execute = function () {}), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "DoNothingAction", properties: [] }, t); }), t ); })(l), T = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r.children = n), r; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () { for (var e = 0; e < this.children.length; e++) (this.children[e]._actionManager = this._actionManager), this.children[e]._prepare(); }), (t.prototype.execute = function (e) { for (var t = 0; t < this.children.length; t++) this.children[t].execute(e); }), (t.prototype.serialize = function (t) { for (var n = e.prototype._serialize.call(this, { name: "CombineAction", properties: [], combine: [] }, t), i = 0; i < this.children.length; i++) n.combine.push(this.children[i].serialize(null)); return n; }), t ); })(l), S = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r.func = n), r; } return ( Object(h.d)(t, e), (t.prototype.execute = function (e) { this.func(e); }), t ); })(l), O = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, r) || this; return (o._target = n), (o._parent = i), o; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () {}), (t.prototype.execute = function () { if (this._target.parent !== this._parent) { var e = this._parent.getWorldMatrix().clone(); e.invert(), (this._target.position = a.e.TransformCoordinates(this._target.position, e)), (this._target.parent = this._parent); } }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "SetParentAction", properties: [l._GetTargetProperty(this._target), l._GetTargetProperty(this._parent)] }, t); }), t ); })(l); (c.a.RegisteredTypes["BABYLON.SetParentAction"] = O), (c.a.RegisteredTypes["BABYLON.ExecuteCodeAction"] = S), (c.a.RegisteredTypes["BABYLON.DoNothingAction"] = x), (c.a.RegisteredTypes["BABYLON.StopAnimationAction"] = P), (c.a.RegisteredTypes["BABYLON.PlayAnimationAction"] = C), (c.a.RegisteredTypes["BABYLON.IncrementValueAction"] = y), (c.a.RegisteredTypes["BABYLON.SetValueAction"] = v), (c.a.RegisteredTypes["BABYLON.SetStateAction"] = _), (c.a.RegisteredTypes["BABYLON.SetParentAction"] = O); var E = n(25), M = n(51), A = (function (e) { function t(t) { var n = e.call(this) || this; return (n._scene = t || E.a.LastCreatedScene), t.actionManagers.push(n), n; } return ( Object(h.d)(t, e), (t.prototype.dispose = function () { for (var e = this._scene.actionManagers.indexOf(this), n = 0; n < this.actions.length; n++) { var i = this.actions[n]; t.Triggers[i.trigger]--, 0 === t.Triggers[i.trigger] && delete t.Triggers[i.trigger]; } e > -1 && this._scene.actionManagers.splice(e, 1); }), (t.prototype.getScene = function () { return this._scene; }), (t.prototype.hasSpecificTriggers = function (e) { for (var t = 0; t < this.actions.length; t++) { var n = this.actions[t]; if (e.indexOf(n.trigger) > -1) return !0; } return !1; }), (t.prototype.hasSpecificTriggers2 = function (e, t) { for (var n = 0; n < this.actions.length; n++) { var i = this.actions[n]; if (e == i.trigger || t == i.trigger) return !0; } return !1; }), (t.prototype.hasSpecificTrigger = function (e, t) { for (var n = 0; n < this.actions.length; n++) { var i = this.actions[n]; if (i.trigger === e) { if (!t) return !0; if (t(i.getTriggerParameter())) return !0; } } return !1; }), Object.defineProperty(t.prototype, "hasPointerTriggers", { get: function () { for (var e = 0; e < this.actions.length; e++) { var n = this.actions[e]; if (n.trigger >= t.OnPickTrigger && n.trigger <= t.OnPointerOutTrigger) return !0; } return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hasPickTriggers", { get: function () { for (var e = 0; e < this.actions.length; e++) { var n = this.actions[e]; if (n.trigger >= t.OnPickTrigger && n.trigger <= t.OnPickUpTrigger) return !0; } return !1; }, enumerable: !0, configurable: !0, }), (t.prototype.registerAction = function (e) { return e.trigger === t.OnEveryFrameTrigger && this.getScene().actionManager !== this ? (g.a.Warn("OnEveryFrameTrigger can only be used with scene.actionManager"), null) : (this.actions.push(e), t.Triggers[e.trigger] ? t.Triggers[e.trigger]++ : (t.Triggers[e.trigger] = 1), (e._actionManager = this), e._prepare(), e); }), (t.prototype.unregisterAction = function (e) { var n = this.actions.indexOf(e); return -1 !== n && (this.actions.splice(n, 1), (t.Triggers[e.trigger] -= 1), 0 === t.Triggers[e.trigger] && delete t.Triggers[e.trigger], delete e._actionManager, !0); }), (t.prototype.processTrigger = function (e, n) { for (var i = 0; i < this.actions.length; i++) { var r = this.actions[i]; if (r.trigger === e) { if (n && (e === t.OnKeyUpTrigger || e === t.OnKeyDownTrigger)) { var o = r.getTriggerParameter(); if (o && o !== n.sourceEvent.keyCode) { if (!o.toLowerCase) continue; var a = o.toLowerCase(); if (a !== n.sourceEvent.key) { var s = n.sourceEvent.charCode ? n.sourceEvent.charCode : n.sourceEvent.keyCode; if (String.fromCharCode(s).toLowerCase() !== a) continue; } } } r._executeCurrent(n); } } }), (t.prototype._getEffectiveTarget = function (e, t) { for (var n = t.split("."), i = 0; i < n.length - 1; i++) e = e[n[i]]; return e; }), (t.prototype._getProperty = function (e) { var t = e.split("."); return t[t.length - 1]; }), (t.prototype.serialize = function (e) { for (var n = { children: new Array(), name: e, type: 3, properties: new Array() }, i = 0; i < this.actions.length; i++) { var r = { type: 0, children: new Array(), name: t.GetTriggerName(this.actions[i].trigger), properties: new Array() }, o = this.actions[i].triggerOptions; if (o && "number" != typeof o) if (o.parameter instanceof Node) r.properties.push(l._GetTargetProperty(o.parameter)); else { var a = {}; M.a.DeepCopy(o.parameter, a, ["mesh"]), o.parameter && o.parameter.mesh && (a._meshId = o.parameter.mesh.id), r.properties.push({ name: "parameter", targetType: null, value: a }); } this.actions[i].serialize(r), n.children.push(r); } return n; }), (t.Parse = function (e, n, i) { var r = new t(i); null === n ? (i.actionManager = r) : (n.actionManager = r); for ( var o = function (e, t, n, i) { if (null === i) { var r = parseFloat(t); return "true" === t || "false" === t ? "true" === t : isNaN(r) ? t : r; } for (var o = i.split("."), c = t.split(","), l = 0; l < o.length; l++) n = n[o[l]]; if ("boolean" == typeof n) return "true" === c[0]; if ("string" == typeof n) return c[0]; var u = new Array(); for (l = 0; l < c.length; l++) u.push(parseFloat(c[l])); return n instanceof a.e ? a.e.FromArray(u) : n instanceof a.f ? a.f.FromArray(u) : n instanceof s.a ? s.a.FromArray(u) : n instanceof s.b ? s.b.FromArray(u) : parseFloat(c[0]); }, l = function (e, n, a, s, u) { if ((void 0 === u && (u = null), !e.detached)) { var h = new Array(), f = null, m = null, g = e.combine && e.combine.length > 0; if ((2 === e.type ? h.push(r) : h.push(n), g)) { for (var b = new Array(), _ = 0; _ < e.combine.length; _++) l(e.combine[_], t.NothingTrigger, a, s, b); h.push(b); } else for (var v = 0; v < e.properties.length; v++) { var y = e.properties[v].value, C = e.properties[v].name, P = e.properties[v].targetType; "target" === C ? (y = f = null !== P && "SceneProperties" === P ? i : i.getNodeByName(y)) : "parent" === C ? (y = i.getNodeByName(y)) : "sound" === C ? i.getSoundByName && (y = i.getSoundByName(y)) : "propertyPath" !== C ? (y = 2 === e.type && "operator" === C ? p[y] : o(0, y, f, "value" === C ? m : null)) : (m = y), h.push(y); } if ((null === u ? h.push(a) : h.push(null), "InterpolateValueAction" === e.name)) { var T = h[h.length - 2]; (h[h.length - 1] = T), (h[h.length - 2] = a); } var S = (function (e, t) { var n = c.a.GetClass("BABYLON." + e); if (n) { var i = Object.create(n.prototype); return i.constructor.apply(i, t), i; } })(e.name, h); if (S instanceof d && null !== a) { var O = new x(n, a); s ? s.then(O) : r.registerAction(O), (s = O); } null === u ? (S instanceof d ? ((a = S), (S = s)) : ((a = null), s ? s.then(S) : r.registerAction(S))) : u.push(S); for (v = 0; v < e.children.length; v++) l(e.children[v], n, a, S, null); } }, u = 0; u < e.children.length; u++ ) { var h, f = e.children[u]; if (f.properties.length > 0) { var m = f.properties[0].value, g = null === f.properties[0].targetType ? m : i.getMeshByName(m); g._meshId && (g.mesh = i.getMeshByID(g._meshId)), (h = { trigger: t[f.name], parameter: g }); } else h = t[f.name]; for (var b = 0; b < f.children.length; b++) f.detached || l(f.children[b], h, null, null); } }), (t.GetTriggerName = function (e) { switch (e) { case 0: return "NothingTrigger"; case 1: return "OnPickTrigger"; case 2: return "OnLeftPickTrigger"; case 3: return "OnRightPickTrigger"; case 4: return "OnCenterPickTrigger"; case 5: return "OnPickDownTrigger"; case 6: return "OnPickUpTrigger"; case 7: return "OnLongPressTrigger"; case 8: return "OnPointerOverTrigger"; case 9: return "OnPointerOutTrigger"; case 10: return "OnEveryFrameTrigger"; case 11: return "OnIntersectionEnterTrigger"; case 12: return "OnIntersectionExitTrigger"; case 13: return "OnKeyDownTrigger"; case 14: return "OnKeyUpTrigger"; case 15: return "OnPickOutTrigger"; default: return ""; } }), (t.NothingTrigger = 0), (t.OnPickTrigger = 1), (t.OnLeftPickTrigger = 2), (t.OnRightPickTrigger = 3), (t.OnCenterPickTrigger = 4), (t.OnPickDownTrigger = 5), (t.OnDoublePickTrigger = 6), (t.OnPickUpTrigger = 7), (t.OnPickOutTrigger = 16), (t.OnLongPressTrigger = 8), (t.OnPointerOverTrigger = 9), (t.OnPointerOutTrigger = 10), (t.OnEveryFrameTrigger = 11), (t.OnIntersectionEnterTrigger = 12), (t.OnIntersectionExitTrigger = 13), (t.OnKeyDownTrigger = 14), (t.OnKeyUpTrigger = 15), t ); })(r.a), I = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r._sound = n), r; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () {}), (t.prototype.execute = function () { void 0 !== this._sound && this._sound.play(); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "PlaySoundAction", properties: [{ name: "sound", value: this._sound.name }] }, t); }), t ); })(l), D = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r._sound = n), r; } return ( Object(h.d)(t, e), (t.prototype._prepare = function () {}), (t.prototype.execute = function () { void 0 !== this._sound && this._sound.stop(); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call(this, { name: "StopSoundAction", properties: [{ name: "sound", value: this._sound.name }] }, t); }), t ); })(l); (c.a.RegisteredTypes["BABYLON.PlaySoundAction"] = D), (c.a.RegisteredTypes["BABYLON.StopSoundAction"] = D); var R = n(27), w = (function (e) { function t(t, n, i, r, a, s, c, l) { void 0 === a && (a = 1e3); var u = e.call(this, t, s) || this; return ( (u.duration = 1e3), (u.onInterpolationDoneObservable = new o.c()), (u.propertyPath = i), (u.value = r), (u.duration = a), (u.stopOtherAnimations = c), (u.onInterpolationDone = l), (u._target = u._effectiveTarget = n), u ); } return ( Object(h.d)(t, e), (t.prototype._prepare = function () { (this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath)), (this._property = this._getProperty(this.propertyPath)); }), (t.prototype.execute = function () { var e, t = this, n = this._actionManager.getScene(), i = [ { frame: 0, value: this._effectiveTarget[this._property] }, { frame: 100, value: this.value }, ]; if ("number" == typeof this.value) e = R.a.ANIMATIONTYPE_FLOAT; else if (this.value instanceof s.a) e = R.a.ANIMATIONTYPE_COLOR3; else if (this.value instanceof a.e) e = R.a.ANIMATIONTYPE_VECTOR3; else if (this.value instanceof a.a) e = R.a.ANIMATIONTYPE_MATRIX; else { if (!(this.value instanceof a.b)) return void g.a.Warn("InterpolateValueAction: Unsupported type (" + typeof this.value + ")"); e = R.a.ANIMATIONTYPE_QUATERNION; } var r = new R.a("InterpolateValueAction", this._property, (1e3 / this.duration) * 100, e, R.a.ANIMATIONLOOPMODE_CONSTANT); r.setKeys(i), this.stopOtherAnimations && n.stopAnimation(this._effectiveTarget); n.beginDirectAnimation(this._effectiveTarget, [r], 0, 100, !1, 1, function () { t.onInterpolationDoneObservable.notifyObservers(t), t.onInterpolationDone && t.onInterpolationDone(); }); }), (t.prototype.serialize = function (t) { return e.prototype._serialize.call( this, { name: "InterpolateValueAction", properties: [ l._GetTargetProperty(this._target), { name: "propertyPath", value: this.propertyPath }, { name: "value", value: l._SerializeValueAsString(this.value) }, { name: "duration", value: l._SerializeValueAsString(this.duration) }, { name: "stopOtherAnimations", value: l._SerializeValueAsString(this.stopOtherAnimations) || !1 }, ], }, t ); }), t ); })(l); c.a.RegisteredTypes["BABYLON.InterpolateValueAction"] = w; var L, F = n(165), N = n(144), k = function () { (this.enableBlending = !1), (this.blendingSpeed = 0.01), (this.loopMode = R.a.ANIMATIONLOOPMODE_CYCLE); }, z = n(15), j = n(34); !(function (e) { (e[(e.CW = 0)] = "CW"), (e[(e.CCW = 1)] = "CCW"); })(L || (L = {})); var B = (function () { function e() {} return ( (e.Interpolate = function (e, t, n, i, r) { for (var o = 1 - 3 * i + 3 * t, a = 3 * i - 6 * t, s = 3 * t, c = e, l = 0; l < 5; l++) { var u = c * c; (c -= (o * (u * c) + a * u + s * c - e) * (1 / (3 * o * u + 2 * a * c + s))), (c = Math.min(1, Math.max(0, c))); } return 3 * Math.pow(1 - c, 2) * c * n + 3 * (1 - c) * Math.pow(c, 2) * r + Math.pow(c, 3); }), e ); })(), V = (function () { function e(e) { (this._radians = e), this._radians < 0 && (this._radians += 2 * Math.PI); } return ( (e.prototype.degrees = function () { return (180 * this._radians) / Math.PI; }), (e.prototype.radians = function () { return this._radians; }), (e.BetweenTwoPoints = function (t, n) { var i = n.subtract(t); return new e(Math.atan2(i.y, i.x)); }), (e.FromRadians = function (t) { return new e(t); }), (e.FromDegrees = function (t) { return new e((t * Math.PI) / 180); }), e ); })(), G = function (e, t, n) { (this.startPoint = e), (this.midPoint = t), (this.endPoint = n); var i = Math.pow(t.x, 2) + Math.pow(t.y, 2), r = (Math.pow(e.x, 2) + Math.pow(e.y, 2) - i) / 2, o = (i - Math.pow(n.x, 2) - Math.pow(n.y, 2)) / 2, s = (e.x - t.x) * (t.y - n.y) - (t.x - n.x) * (e.y - t.y); (this.centerPoint = new a.d((r * (t.y - n.y) - o * (e.y - t.y)) / s, ((e.x - t.x) * o - (t.x - n.x) * r) / s)), (this.radius = this.centerPoint.subtract(this.startPoint).length()), (this.startAngle = V.BetweenTwoPoints(this.centerPoint, this.startPoint)); var c = this.startAngle.degrees(), l = V.BetweenTwoPoints(this.centerPoint, this.midPoint).degrees(), u = V.BetweenTwoPoints(this.centerPoint, this.endPoint).degrees(); l - c > 180 && (l -= 360), l - c < -180 && (l += 360), u - l > 180 && (u -= 360), u - l < -180 && (u += 360), (this.orientation = l - c < 0 ? L.CW : L.CCW), (this.angle = V.FromDegrees(this.orientation === L.CW ? c - u : u - c)); }, U = (function () { function e(e, t) { (this._points = new Array()), (this._length = 0), (this.closed = !1), this._points.push(new a.d(e, t)); } return ( (e.prototype.addLineTo = function (e, t) { if (this.closed) return this; var n = new a.d(e, t), i = this._points[this._points.length - 1]; return this._points.push(n), (this._length += n.subtract(i).length()), this; }), (e.prototype.addArcTo = function (e, t, n, i, r) { if ((void 0 === r && (r = 36), this.closed)) return this; var o = this._points[this._points.length - 1], s = new a.d(e, t), c = new a.d(n, i), l = new G(o, s, c), u = l.angle.radians() / r; l.orientation === L.CW && (u *= -1); for (var h = l.startAngle.radians() + u, d = 0; d < r; d++) { var p = Math.cos(h) * l.radius + l.centerPoint.x, f = Math.sin(h) * l.radius + l.centerPoint.y; this.addLineTo(p, f), (h += u); } return this; }), (e.prototype.close = function () { return (this.closed = !0), this; }), (e.prototype.length = function () { var e = this._length; if (this.closed) { var t = this._points[this._points.length - 1]; e += this._points[0].subtract(t).length(); } return e; }), (e.prototype.getPoints = function () { return this._points; }), (e.prototype.getPointAtLengthPosition = function (e) { if (e < 0 || e > 1) return a.d.Zero(); for (var t = e * this.length(), n = 0, i = 0; i < this._points.length; i++) { var r = (i + 1) % this._points.length, o = this._points[i], s = this._points[r].subtract(o), c = s.length() + n; if (t >= n && t <= c) { var l = s.normalize(), u = t - n; return new a.d(o.x + l.x * u, o.y + l.y * u); } n = c; } return a.d.Zero(); }), (e.StartingAt = function (t, n) { return new e(t, n); }), e ); })(), H = (function () { function e(e, t, n, i) { void 0 === t && (t = null), void 0 === i && (i = !1), (this.path = e), (this._curve = new Array()), (this._distances = new Array()), (this._tangents = new Array()), (this._normals = new Array()), (this._binormals = new Array()), (this._pointAtData = { id: 0, point: a.e.Zero(), previousPointArrayIndex: 0, position: 0, subPosition: 0, interpolateReady: !1, interpolationMatrix: a.a.Identity() }); for (var r = 0; r < e.length; r++) this._curve[r] = e[r].clone(); (this._raw = n || !1), (this._alignTangentsWithPath = i), this._compute(t, i); } return ( (e.prototype.getCurve = function () { return this._curve; }), (e.prototype.getPoints = function () { return this._curve; }), (e.prototype.length = function () { return this._distances[this._distances.length - 1]; }), (e.prototype.getTangents = function () { return this._tangents; }), (e.prototype.getNormals = function () { return this._normals; }), (e.prototype.getBinormals = function () { return this._binormals; }), (e.prototype.getDistances = function () { return this._distances; }), (e.prototype.getPointAt = function (e) { return this._updatePointAtData(e).point; }), (e.prototype.getTangentAt = function (e, t) { return void 0 === t && (t = !1), this._updatePointAtData(e, t), t ? a.e.TransformCoordinates(a.e.Forward(), this._pointAtData.interpolationMatrix) : this._tangents[this._pointAtData.previousPointArrayIndex]; }), (e.prototype.getNormalAt = function (e, t) { return void 0 === t && (t = !1), this._updatePointAtData(e, t), t ? a.e.TransformCoordinates(a.e.Right(), this._pointAtData.interpolationMatrix) : this._normals[this._pointAtData.previousPointArrayIndex]; }), (e.prototype.getBinormalAt = function (e, t) { return void 0 === t && (t = !1), this._updatePointAtData(e, t), t ? a.e.TransformCoordinates(a.e.UpReadOnly, this._pointAtData.interpolationMatrix) : this._binormals[this._pointAtData.previousPointArrayIndex]; }), (e.prototype.getDistanceAt = function (e) { return this.length() * e; }), (e.prototype.getPreviousPointIndexAt = function (e) { return this._updatePointAtData(e), this._pointAtData.previousPointArrayIndex; }), (e.prototype.getSubPositionAt = function (e) { return this._updatePointAtData(e), this._pointAtData.subPosition; }), (e.prototype.getClosestPositionTo = function (e) { for (var t = Number.MAX_VALUE, n = 0, i = 0; i < this._curve.length - 1; i++) { var r = this._curve[i + 0], o = this._curve[i + 1].subtract(r).normalize(), s = this._distances[i + 1] - this._distances[i + 0], c = Math.min((Math.max(a.e.Dot(o, e.subtract(r).normalize()), 0) * a.e.Distance(r, e)) / s, 1), l = a.e.Distance(r.add(o.scale(c * s)), e); l < t && ((t = l), (n = (this._distances[i + 0] + s * c) / this.length())); } return n; }), (e.prototype.slice = function (t, n) { if ((void 0 === t && (t = 0), void 0 === n && (n = 1), t < 0 && (t = 1 - ((-1 * t) % 1)), n < 0 && (n = 1 - ((-1 * n) % 1)), t > n)) { var i = t; (t = n), (n = i); } var r = this.getCurve(), o = this.getPointAt(t), a = this.getPreviousPointIndexAt(t), s = this.getPointAt(n), c = this.getPreviousPointIndexAt(n) + 1, l = []; return 0 !== t && (a++, l.push(o)), l.push.apply(l, r.slice(a, c)), (1 === n && 1 !== t) || l.push(s), new e(l, this.getNormalAt(t), this._raw, this._alignTangentsWithPath); }), (e.prototype.update = function (e, t, n) { void 0 === t && (t = null), void 0 === n && (n = !1); for (var i = 0; i < e.length; i++) (this._curve[i].x = e[i].x), (this._curve[i].y = e[i].y), (this._curve[i].z = e[i].z); return this._compute(t, n), this; }), (e.prototype._compute = function (e, t) { void 0 === t && (t = !1); var n = this._curve.length; (this._tangents[0] = this._getFirstNonNullVector(0)), this._raw || this._tangents[0].normalize(), (this._tangents[n - 1] = this._curve[n - 1].subtract(this._curve[n - 2])), this._raw || this._tangents[n - 1].normalize(); var i, r, o, s, c, l = this._tangents[0], u = this._normalVector(l, e); (this._normals[0] = u), this._raw || this._normals[0].normalize(), (this._binormals[0] = a.e.Cross(l, this._normals[0])), this._raw || this._binormals[0].normalize(), (this._distances[0] = 0); for (var h = 1; h < n; h++) (i = this._getLastNonNullVector(h)), h < n - 1 && ((r = this._getFirstNonNullVector(h)), (this._tangents[h] = t ? r : i.add(r)), this._tangents[h].normalize()), (this._distances[h] = this._distances[h - 1] + i.length()), (o = this._tangents[h]), (c = this._binormals[h - 1]), (this._normals[h] = a.e.Cross(c, o)), this._raw || (0 === this._normals[h].length() ? ((s = this._normals[h - 1]), (this._normals[h] = s.clone())) : this._normals[h].normalize()), (this._binormals[h] = a.e.Cross(o, this._normals[h])), this._raw || this._binormals[h].normalize(); this._pointAtData.id = NaN; }), (e.prototype._getFirstNonNullVector = function (e) { for (var t = 1, n = this._curve[e + t].subtract(this._curve[e]); 0 === n.length() && e + t + 1 < this._curve.length; ) t++, (n = this._curve[e + t].subtract(this._curve[e])); return n; }), (e.prototype._getLastNonNullVector = function (e) { for (var t = 1, n = this._curve[e].subtract(this._curve[e - t]); 0 === n.length() && e > t + 1; ) t++, (n = this._curve[e].subtract(this._curve[e - t])); return n; }), (e.prototype._normalVector = function (e, t) { var n, i, r = e.length(); (0 === r && (r = 1), null == t) ? ((i = z.a.WithinEpsilon(Math.abs(e.y) / r, 1, j.a) ? z.a.WithinEpsilon(Math.abs(e.x) / r, 1, j.a) ? z.a.WithinEpsilon(Math.abs(e.z) / r, 1, j.a) ? a.e.Zero() : new a.e(0, 0, 1) : new a.e(1, 0, 0) : new a.e(0, -1, 0)), (n = a.e.Cross(e, i))) : ((n = a.e.Cross(e, t)), a.e.CrossToRef(n, e, n)); return n.normalize(), n; }), (e.prototype._updatePointAtData = function (e, t) { if ((void 0 === t && (t = !1), this._pointAtData.id === e)) return this._pointAtData.interpolateReady || this._updateInterpolationMatrix(), this._pointAtData; this._pointAtData.id = e; var n = this.getPoints(); if (e <= 0) return this._setPointAtData(0, 0, n[0], 0, t); if (e >= 1) return this._setPointAtData(1, 1, n[n.length - 1], n.length - 1, t); for (var i, r = n[0], o = 0, s = e * this.length(), c = 1; c < n.length; c++) { i = n[c]; var l = a.e.Distance(r, i); if ((o += l) === s) return this._setPointAtData(e, 1, i, c, t); if (o > s) { var u = (o - s) / l, h = r.subtract(i), d = i.add(h.scaleInPlace(u)); return this._setPointAtData(e, 1 - u, d, c - 1, t); } r = i; } return this._pointAtData; }), (e.prototype._setPointAtData = function (e, t, n, i, r) { return ( (this._pointAtData.point = n), (this._pointAtData.position = e), (this._pointAtData.subPosition = t), (this._pointAtData.previousPointArrayIndex = i), (this._pointAtData.interpolateReady = r), r && this._updateInterpolationMatrix(), this._pointAtData ); }), (e.prototype._updateInterpolationMatrix = function () { this._pointAtData.interpolationMatrix = a.a.Identity(); var e = this._pointAtData.previousPointArrayIndex; if (e !== this._tangents.length - 1) { var t = e + 1, n = this._tangents[e].clone(), i = this._normals[e].clone(), r = this._binormals[e].clone(), o = this._tangents[t].clone(), s = this._normals[t].clone(), c = this._binormals[t].clone(), l = a.b.RotationQuaternionFromAxis(i, r, n), u = a.b.RotationQuaternionFromAxis(s, c, o); a.b.Slerp(l, u, this._pointAtData.subPosition).toRotationMatrix(this._pointAtData.interpolationMatrix); } }), e ); })(), W = (function () { function e(e) { (this._length = 0), (this._points = e), (this._length = this._computeLength(e)); } return ( (e.CreateQuadraticBezier = function (t, n, i, r) { r = r > 2 ? r : 3; for ( var o = new Array(), s = function (e, t, n, i) { return (1 - e) * (1 - e) * t + 2 * e * (1 - e) * n + e * e * i; }, c = 0; c <= r; c++ ) o.push(new a.e(s(c / r, t.x, n.x, i.x), s(c / r, t.y, n.y, i.y), s(c / r, t.z, n.z, i.z))); return new e(o); }), (e.CreateCubicBezier = function (t, n, i, r, o) { o = o > 3 ? o : 4; for ( var s = new Array(), c = function (e, t, n, i, r) { return (1 - e) * (1 - e) * (1 - e) * t + 3 * e * (1 - e) * (1 - e) * n + 3 * e * e * (1 - e) * i + e * e * e * r; }, l = 0; l <= o; l++ ) s.push(new a.e(c(l / o, t.x, n.x, i.x, r.x), c(l / o, t.y, n.y, i.y, r.y), c(l / o, t.z, n.z, i.z, r.z))); return new e(s); }), (e.CreateHermiteSpline = function (t, n, i, r, o) { for (var s = new Array(), c = 1 / o, l = 0; l <= o; l++) s.push(a.e.Hermite(t, n, i, r, l * c)); return new e(s); }), (e.CreateCatmullRomSpline = function (t, n, i) { var r = new Array(), o = 1 / n, s = 0; if (i) { for (var c = t.length, l = 0; l < c; l++) { s = 0; for (var u = 0; u < n; u++) r.push(a.e.CatmullRom(t[l % c], t[(l + 1) % c], t[(l + 2) % c], t[(l + 3) % c], s)), (s += o); } r.push(r[0]); } else { var h = new Array(); h.push(t[0].clone()), Array.prototype.push.apply(h, t), h.push(t[t.length - 1].clone()); for (l = 0; l < h.length - 3; l++) { s = 0; for (u = 0; u < n; u++) r.push(a.e.CatmullRom(h[l], h[l + 1], h[l + 2], h[l + 3], s)), (s += o); } l--, r.push(a.e.CatmullRom(h[l], h[l + 1], h[l + 2], h[l + 3], s)); } return new e(r); }), (e.prototype.getPoints = function () { return this._points; }), (e.prototype.length = function () { return this._length; }), (e.prototype.continue = function (t) { for (var n = this._points[this._points.length - 1], i = this._points.slice(), r = t.getPoints(), o = 1; o < r.length; o++) i.push(r[o].subtract(r[0]).add(n)); return new e(i); }), (e.prototype._computeLength = function (e) { for (var t = 0, n = 1; n < e.length; n++) t += e[n].subtract(e[n - 1]).length(); return t; }), e ); })(), X = (function () { function e() { this._easingMode = e.EASINGMODE_EASEIN; } return ( (e.prototype.setEasingMode = function (e) { var t = Math.min(Math.max(e, 0), 2); this._easingMode = t; }), (e.prototype.getEasingMode = function () { return this._easingMode; }), (e.prototype.easeInCore = function (e) { throw new Error("You must implement this method"); }), (e.prototype.ease = function (t) { switch (this._easingMode) { case e.EASINGMODE_EASEIN: return this.easeInCore(t); case e.EASINGMODE_EASEOUT: return 1 - this.easeInCore(1 - t); } return t >= 0.5 ? 0.5 * (1 - this.easeInCore(2 * (1 - t))) + 0.5 : 0.5 * this.easeInCore(2 * t); }), (e.EASINGMODE_EASEIN = 0), (e.EASINGMODE_EASEOUT = 1), (e.EASINGMODE_EASEINOUT = 2), e ); })(), Y = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return (e = Math.max(0, Math.min(1, e))), 1 - Math.sqrt(1 - e * e); }), t ); })(X), K = (function (e) { function t(t) { void 0 === t && (t = 1); var n = e.call(this) || this; return (n.amplitude = t), n; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { var t = Math.max(0, this.amplitude); return Math.pow(e, 3) - e * t * Math.sin(3.141592653589793 * e); }), t ); })(X), Z = (function (e) { function t(t, n) { void 0 === t && (t = 3), void 0 === n && (n = 2); var i = e.call(this) || this; return (i.bounces = t), (i.bounciness = n), i; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { var t = Math.max(0, this.bounces), n = this.bounciness; n <= 1 && (n = 1.001); var i = Math.pow(n, t), r = 1 - n, o = (1 - i) / r + 0.5 * i, a = e * o, s = Math.log(-a * (1 - n) + 1) / Math.log(n), c = Math.floor(s), l = c + 1, u = (1 - Math.pow(n, c)) / (r * o), h = 0.5 * (u + (1 - Math.pow(n, l)) / (r * o)), d = e - h, p = h - u; return (-Math.pow(1 / n, t - c) / (p * p)) * (d - p) * (d + p); }), t ); })(X), q = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return e * e * e; }), t ); })(X), Q = (function (e) { function t(t, n) { void 0 === t && (t = 3), void 0 === n && (n = 3); var i = e.call(this) || this; return (i.oscillations = t), (i.springiness = n), i; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { var t = Math.max(0, this.oscillations), n = Math.max(0, this.springiness); return (0 == n ? e : (Math.exp(n * e) - 1) / (Math.exp(n) - 1)) * Math.sin((6.283185307179586 * t + 1.5707963267948966) * e); }), t ); })(X), J = (function (e) { function t(t) { void 0 === t && (t = 2); var n = e.call(this) || this; return (n.exponent = t), n; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return this.exponent <= 0 ? e : (Math.exp(this.exponent * e) - 1) / (Math.exp(this.exponent) - 1); }), t ); })(X), $ = (function (e) { function t(t) { void 0 === t && (t = 2); var n = e.call(this) || this; return (n.power = t), n; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { var t = Math.max(0, this.power); return Math.pow(e, t); }), t ); })(X), ee = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return e * e; }), t ); })(X), te = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return e * e * e * e; }), t ); })(X), ne = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return e * e * e * e * e; }), t ); })(X), ie = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return 1 - Math.sin(1.5707963267948966 * (1 - e)); }), t ); })(X), re = (function (e) { function t(t, n, i, r) { void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 1), void 0 === r && (r = 1); var o = e.call(this) || this; return (o.x1 = t), (o.y1 = n), (o.x2 = i), (o.y2 = r), o; } return ( Object(h.d)(t, e), (t.prototype.easeInCore = function (e) { return B.Interpolate(e, this.x1, this.y1, this.x2, this.y2); }), t ); })(X), oe = n(180), ae = n(190), se = n(134), ce = n(146), le = n(119), ue = n(14), he = (function () { function e(e) { (this.SMOOTHING = 0.75), (this.FFT_SIZE = 512), (this.BARGRAPHAMPLITUDE = 256), (this.DEBUGCANVASPOS = { x: 20, y: 20 }), (this.DEBUGCANVASSIZE = { width: 320, height: 200 }), (this._scene = e), (this._audioEngine = ue.a.audioEngine), this._audioEngine.canUseWebAudio && this._audioEngine.audioContext && ((this._webAudioAnalyser = this._audioEngine.audioContext.createAnalyser()), (this._webAudioAnalyser.minDecibels = -140), (this._webAudioAnalyser.maxDecibels = 0), (this._byteFreqs = new Uint8Array(this._webAudioAnalyser.frequencyBinCount)), (this._byteTime = new Uint8Array(this._webAudioAnalyser.frequencyBinCount)), (this._floatFreqs = new Float32Array(this._webAudioAnalyser.frequencyBinCount))); } return ( (e.prototype.getFrequencyBinCount = function () { return this._audioEngine.canUseWebAudio ? this._webAudioAnalyser.frequencyBinCount : 0; }), (e.prototype.getByteFrequencyData = function () { return ( this._audioEngine.canUseWebAudio && ((this._webAudioAnalyser.smoothingTimeConstant = this.SMOOTHING), (this._webAudioAnalyser.fftSize = this.FFT_SIZE), this._webAudioAnalyser.getByteFrequencyData(this._byteFreqs)), this._byteFreqs ); }), (e.prototype.getByteTimeDomainData = function () { return ( this._audioEngine.canUseWebAudio && ((this._webAudioAnalyser.smoothingTimeConstant = this.SMOOTHING), (this._webAudioAnalyser.fftSize = this.FFT_SIZE), this._webAudioAnalyser.getByteTimeDomainData(this._byteTime)), this._byteTime ); }), (e.prototype.getFloatFrequencyData = function () { return ( this._audioEngine.canUseWebAudio && ((this._webAudioAnalyser.smoothingTimeConstant = this.SMOOTHING), (this._webAudioAnalyser.fftSize = this.FFT_SIZE), this._webAudioAnalyser.getFloatFrequencyData(this._floatFreqs)), this._floatFreqs ); }), (e.prototype.drawDebugCanvas = function () { var e = this; if ( this._audioEngine.canUseWebAudio && (this._debugCanvas || ((this._debugCanvas = document.createElement("canvas")), (this._debugCanvas.width = this.DEBUGCANVASSIZE.width), (this._debugCanvas.height = this.DEBUGCANVASSIZE.height), (this._debugCanvas.style.position = "absolute"), (this._debugCanvas.style.top = this.DEBUGCANVASPOS.y + "px"), (this._debugCanvas.style.left = this.DEBUGCANVASPOS.x + "px"), (this._debugCanvasContext = this._debugCanvas.getContext("2d")), document.body.appendChild(this._debugCanvas), (this._registerFunc = function () { e.drawDebugCanvas(); }), this._scene.registerBeforeRender(this._registerFunc)), this._registerFunc && this._debugCanvasContext) ) { var t = this.getByteFrequencyData(); (this._debugCanvasContext.fillStyle = "rgb(0, 0, 0)"), this._debugCanvasContext.fillRect(0, 0, this.DEBUGCANVASSIZE.width, this.DEBUGCANVASSIZE.height); for (var n = 0; n < this.getFrequencyBinCount(); n++) { var i = t[n] / this.BARGRAPHAMPLITUDE, r = this.DEBUGCANVASSIZE.height * i, o = this.DEBUGCANVASSIZE.height - r - 1, a = this.DEBUGCANVASSIZE.width / this.getFrequencyBinCount(), s = (n / this.getFrequencyBinCount()) * 360; (this._debugCanvasContext.fillStyle = "hsl(" + s + ", 100%, 50%)"), this._debugCanvasContext.fillRect(n * a, o, a, r); } } }), (e.prototype.stopDebugCanvas = function () { this._debugCanvas && (this._registerFunc && (this._scene.unregisterBeforeRender(this._registerFunc), (this._registerFunc = null)), document.body.removeChild(this._debugCanvas), (this._debugCanvas = null), (this._debugCanvasContext = null)); }), (e.prototype.connectAudioNodes = function (e, t) { this._audioEngine.canUseWebAudio && (e.connect(this._webAudioAnalyser), this._webAudioAnalyser.connect(t)); }), (e.prototype.dispose = function () { this._audioEngine.canUseWebAudio && this._webAudioAnalyser.disconnect(); }), e ); })(); ue.a.AudioEngineFactory = function (e) { return new de(e); }; var de = (function () { function e(e) { var t = this; void 0 === e && (e = null), (this._audioContext = null), (this._audioContextInitialized = !1), (this._muteButton = null), (this.canUseWebAudio = !1), (this.WarnedWebAudioUnsupported = !1), (this.isMP3supported = !1), (this.isOGGsupported = !1), (this.unlocked = !0), (this.useCustomUnlockedButton = !1), (this.onAudioUnlockedObservable = new o.c()), (this.onAudioLockedObservable = new o.c()), (this._tryToRun = !1), (this._onResize = function () { t._moveButtonToTopLeft(); }), (void 0 === window.AudioContext && void 0 === window.webkitAudioContext) || ((window.AudioContext = window.AudioContext || window.webkitAudioContext), (this.canUseWebAudio = !0)); var n = document.createElement("audio"); this._hostElement = e; try { n && n.canPlayType && n.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/, "") && (this.isMP3supported = !0); } catch (e) {} try { n && n.canPlayType && n.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "") && (this.isOGGsupported = !0); } catch (e) {} } return ( Object.defineProperty(e.prototype, "audioContext", { get: function () { return this._audioContextInitialized ? this.unlocked || this._muteButton || this._displayMuteButton() : this._initializeAudioContext(), this._audioContext; }, enumerable: !0, configurable: !0, }), (e.prototype.lock = function () { this._triggerSuspendedState(); }), (e.prototype.unlock = function () { this._triggerRunningState(); }), (e.prototype._resumeAudioContext = function () { var e; return this._audioContext.resume && (e = this._audioContext.resume()), e || Promise.resolve(); }), (e.prototype._initializeAudioContext = function () { try { this.canUseWebAudio && ((this._audioContext = new AudioContext()), (this.masterGain = this._audioContext.createGain()), (this.masterGain.gain.value = 1), this.masterGain.connect(this._audioContext.destination), (this._audioContextInitialized = !0), "running" === this._audioContext.state && this._triggerRunningState()); } catch (e) { (this.canUseWebAudio = !1), g.a.Error("Web Audio: " + e.message); } }), (e.prototype._triggerRunningState = function () { var e = this; this._tryToRun || ((this._tryToRun = !0), this._resumeAudioContext() .then(function () { (e._tryToRun = !1), e._muteButton && e._hideMuteButton(); }) .catch(function () { (e._tryToRun = !1), (e.unlocked = !1); }), (this.unlocked = !0), this.onAudioUnlockedObservable.notifyObservers(this)); }), (e.prototype._triggerSuspendedState = function () { (this.unlocked = !1), this.onAudioLockedObservable.notifyObservers(this), this._displayMuteButton(); }), (e.prototype._displayMuteButton = function () { var e = this; if (!this.useCustomUnlockedButton && !this._muteButton) { (this._muteButton = document.createElement("BUTTON")), (this._muteButton.className = "babylonUnmuteIcon"), (this._muteButton.id = "babylonUnmuteIconBtn"), (this._muteButton.title = "Unmute"); var t = ".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(" + (window.SVGSVGElement ? "data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E" : "https://cdn.babylonjs.com/Assets/audio.png") + "); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }", n = document.createElement("style"); n.appendChild(document.createTextNode(t)), document.getElementsByTagName("head")[0].appendChild(n), document.body.appendChild(this._muteButton), this._moveButtonToTopLeft(), this._muteButton.addEventListener( "touchend", function () { e._triggerRunningState(); }, !0 ), this._muteButton.addEventListener( "click", function () { e._triggerRunningState(); }, !0 ), window.addEventListener("resize", this._onResize); } }), (e.prototype._moveButtonToTopLeft = function () { this._hostElement && this._muteButton && ((this._muteButton.style.top = this._hostElement.offsetTop + 20 + "px"), (this._muteButton.style.left = this._hostElement.offsetLeft + 20 + "px")); }), (e.prototype._hideMuteButton = function () { this._muteButton && (document.body.removeChild(this._muteButton), (this._muteButton = null)); }), (e.prototype.dispose = function () { this.canUseWebAudio && this._audioContextInitialized && (this._connectedAnalyser && this._audioContext && (this._connectedAnalyser.stopDebugCanvas(), this._connectedAnalyser.dispose(), this.masterGain.disconnect(), this.masterGain.connect(this._audioContext.destination), (this._connectedAnalyser = null)), (this.masterGain.gain.value = 1)), (this.WarnedWebAudioUnsupported = !1), this._hideMuteButton(), window.removeEventListener("resize", this._onResize), this.onAudioUnlockedObservable.clear(), this.onAudioLockedObservable.clear(); }), (e.prototype.getGlobalVolume = function () { return this.canUseWebAudio && this._audioContextInitialized ? this.masterGain.gain.value : -1; }), (e.prototype.setGlobalVolume = function (e) { this.canUseWebAudio && this._audioContextInitialized && (this.masterGain.gain.value = e); }), (e.prototype.connectToAnalyser = function (e) { this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(), this.canUseWebAudio && this._audioContextInitialized && this._audioContext && ((this._connectedAnalyser = e), this.masterGain.disconnect(), this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination)); }), e ); })(), pe = n(137), fe = (function () { function e(e, t) { void 0 === t && (t = {}), (this.id = -1), (this._isInitialized = !1), (this._scene = e), (this.soundCollection = new Array()), (this._options = t), !this._options.mainTrack && this._scene.soundTracks && (this._scene.soundTracks.push(this), (this.id = this._scene.soundTracks.length - 1)); } return ( (e.prototype._initializeSoundTrackAudioGraph = function () { ue.a.audioEngine.canUseWebAudio && ue.a.audioEngine.audioContext && ((this._outputAudioNode = ue.a.audioEngine.audioContext.createGain()), this._outputAudioNode.connect(ue.a.audioEngine.masterGain), this._options && this._options.volume && (this._outputAudioNode.gain.value = this._options.volume), (this._isInitialized = !0)); }), (e.prototype.dispose = function () { if (ue.a.audioEngine && ue.a.audioEngine.canUseWebAudio) { for (this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(); this.soundCollection.length; ) this.soundCollection[0].dispose(); this._outputAudioNode && this._outputAudioNode.disconnect(), (this._outputAudioNode = null); } }), (e.prototype.AddSound = function (e) { this._isInitialized || this._initializeSoundTrackAudioGraph(), ue.a.audioEngine.canUseWebAudio && this._outputAudioNode && e.connectToSoundTrackAudioNode(this._outputAudioNode), e.soundTrackId && (-1 === e.soundTrackId ? this._scene.mainSoundTrack.RemoveSound(e) : this._scene.soundTracks && this._scene.soundTracks[e.soundTrackId].RemoveSound(e)), this.soundCollection.push(e), (e.soundTrackId = this.id); }), (e.prototype.RemoveSound = function (e) { var t = this.soundCollection.indexOf(e); -1 !== t && this.soundCollection.splice(t, 1); }), (e.prototype.setVolume = function (e) { ue.a.audioEngine.canUseWebAudio && this._outputAudioNode && (this._outputAudioNode.gain.value = e); }), (e.prototype.switchPanningModelToHRTF = function () { if (ue.a.audioEngine.canUseWebAudio) for (var e = 0; e < this.soundCollection.length; e++) this.soundCollection[e].switchPanningModelToHRTF(); }), (e.prototype.switchPanningModelToEqualPower = function () { if (ue.a.audioEngine.canUseWebAudio) for (var e = 0; e < this.soundCollection.length; e++) this.soundCollection[e].switchPanningModelToEqualPower(); }), (e.prototype.connectToAnalyser = function (e) { this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(), (this._connectedAnalyser = e), ue.a.audioEngine.canUseWebAudio && this._outputAudioNode && (this._outputAudioNode.disconnect(), this._connectedAnalyser.connectAudioNodes(this._outputAudioNode, ue.a.audioEngine.masterGain)); }), e ); })(), me = n(21), ge = n(18), be = n(76); i.a.AddParser(me.a.NAME_AUDIO, function (e, t, n, i) { var r, o = []; if (((n.sounds = n.sounds || []), void 0 !== e.sounds && null !== e.sounds)) for (var a = 0, s = e.sounds.length; a < s; a++) { var c = e.sounds[a]; ue.a.audioEngine.canUseWebAudio ? (c.url || (c.url = c.name), o[c.url] ? n.sounds.push(pe.a.Parse(c, t, i, o[c.url])) : ((r = pe.a.Parse(c, t, i)), (o[c.url] = r), n.sounds.push(r))) : n.sounds.push(new pe.a(c.name, null, t)); } o = []; }), Object.defineProperty(ge.a.prototype, "mainSoundTrack", { get: function () { var e = this._getComponent(me.a.NAME_AUDIO); return e || ((e = new _e(this)), this._addComponent(e)), this._mainSoundTrack || (this._mainSoundTrack = new fe(this, { mainTrack: !0 })), this._mainSoundTrack; }, enumerable: !0, configurable: !0, }), (ge.a.prototype.getSoundByName = function (e) { var t; for (t = 0; t < this.mainSoundTrack.soundCollection.length; t++) if (this.mainSoundTrack.soundCollection[t].name === e) return this.mainSoundTrack.soundCollection[t]; if (this.soundTracks) for (var n = 0; n < this.soundTracks.length; n++) for (t = 0; t < this.soundTracks[n].soundCollection.length; t++) if (this.soundTracks[n].soundCollection[t].name === e) return this.soundTracks[n].soundCollection[t]; return null; }), Object.defineProperty(ge.a.prototype, "audioEnabled", { get: function () { var e = this._getComponent(me.a.NAME_AUDIO); return e || ((e = new _e(this)), this._addComponent(e)), e.audioEnabled; }, set: function (e) { var t = this._getComponent(me.a.NAME_AUDIO); t || ((t = new _e(this)), this._addComponent(t)), e ? t.enableAudio() : t.disableAudio(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(ge.a.prototype, "headphone", { get: function () { var e = this._getComponent(me.a.NAME_AUDIO); return e || ((e = new _e(this)), this._addComponent(e)), e.headphone; }, set: function (e) { var t = this._getComponent(me.a.NAME_AUDIO); t || ((t = new _e(this)), this._addComponent(t)), e ? t.switchAudioModeForHeadphones() : t.switchAudioModeForNormalSpeakers(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(ge.a.prototype, "audioListenerPositionProvider", { get: function () { var e = this._getComponent(me.a.NAME_AUDIO); return e || ((e = new _e(this)), this._addComponent(e)), e.audioListenerPositionProvider; }, set: function (e) { var t = this._getComponent(me.a.NAME_AUDIO); if ((t || ((t = new _e(this)), this._addComponent(t)), "function" != typeof e)) throw new Error("The value passed to [Scene.audioListenerPositionProvider] must be a function that returns a Vector3"); t.audioListenerPositionProvider = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(ge.a.prototype, "audioPositioningRefreshRate", { get: function () { var e = this._getComponent(me.a.NAME_AUDIO); return e || ((e = new _e(this)), this._addComponent(e)), e.audioPositioningRefreshRate; }, set: function (e) { var t = this._getComponent(me.a.NAME_AUDIO); t || ((t = new _e(this)), this._addComponent(t)), (t.audioPositioningRefreshRate = e); }, enumerable: !0, configurable: !0, }); var _e = (function () { function e(e) { (this.name = me.a.NAME_AUDIO), (this._audioEnabled = !0), (this._headphone = !1), (this.audioPositioningRefreshRate = 500), (this._audioListenerPositionProvider = null), (this._cachedCameraDirection = new a.e()), (this._cachedCameraPosition = new a.e()), (this._lastCheck = 0), (this.scene = e), (e.soundTracks = new Array()), (e.sounds = new Array()); } return ( Object.defineProperty(e.prototype, "audioEnabled", { get: function () { return this._audioEnabled; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "headphone", { get: function () { return this._headphone; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "audioListenerPositionProvider", { get: function () { return this._audioListenerPositionProvider; }, set: function (e) { this._audioListenerPositionProvider = e; }, enumerable: !0, configurable: !0, }), (e.prototype.register = function () { this.scene._afterRenderStage.registerStep(me.a.STEP_AFTERRENDER_AUDIO, this, this._afterRender); }), (e.prototype.rebuild = function () {}), (e.prototype.serialize = function (e) { if (((e.sounds = []), this.scene.soundTracks)) for (var t = 0; t < this.scene.soundTracks.length; t++) for (var n = this.scene.soundTracks[t], i = 0; i < n.soundCollection.length; i++) e.sounds.push(n.soundCollection[i].serialize()); }), (e.prototype.addFromContainer = function (e) { var t = this; e.sounds && e.sounds.forEach(function (e) { e.play(), (e.autoplay = !0), t.scene.mainSoundTrack.AddSound(e); }); }), (e.prototype.removeFromContainer = function (e, t) { var n = this; void 0 === t && (t = !1), e.sounds && e.sounds.forEach(function (e) { e.stop(), (e.autoplay = !1), n.scene.mainSoundTrack.RemoveSound(e), t && e.dispose(); }); }), (e.prototype.dispose = function () { var e = this.scene; if ((e._mainSoundTrack && e.mainSoundTrack.dispose(), e.soundTracks)) for (var t = 0; t < e.soundTracks.length; t++) e.soundTracks[t].dispose(); }), (e.prototype.disableAudio = function () { var e, t = this.scene; for (this._audioEnabled = !1, ue.a.audioEngine && ue.a.audioEngine.audioContext && ue.a.audioEngine.audioContext.suspend(), e = 0; e < t.mainSoundTrack.soundCollection.length; e++) t.mainSoundTrack.soundCollection[e].pause(); if (t.soundTracks) for (e = 0; e < t.soundTracks.length; e++) for (var n = 0; n < t.soundTracks[e].soundCollection.length; n++) t.soundTracks[e].soundCollection[n].pause(); }), (e.prototype.enableAudio = function () { var e, t = this.scene; for (this._audioEnabled = !0, ue.a.audioEngine && ue.a.audioEngine.audioContext && ue.a.audioEngine.audioContext.resume(), e = 0; e < t.mainSoundTrack.soundCollection.length; e++) t.mainSoundTrack.soundCollection[e].isPaused && t.mainSoundTrack.soundCollection[e].play(); if (t.soundTracks) for (e = 0; e < t.soundTracks.length; e++) for (var n = 0; n < t.soundTracks[e].soundCollection.length; n++) t.soundTracks[e].soundCollection[n].isPaused && t.soundTracks[e].soundCollection[n].play(); }), (e.prototype.switchAudioModeForHeadphones = function () { var e = this.scene; if (((this._headphone = !0), e.mainSoundTrack.switchPanningModelToHRTF(), e.soundTracks)) for (var t = 0; t < e.soundTracks.length; t++) e.soundTracks[t].switchPanningModelToHRTF(); }), (e.prototype.switchAudioModeForNormalSpeakers = function () { var e = this.scene; if (((this._headphone = !1), e.mainSoundTrack.switchPanningModelToEqualPower(), e.soundTracks)) for (var t = 0; t < e.soundTracks.length; t++) e.soundTracks[t].switchPanningModelToEqualPower(); }), (e.prototype._afterRender = function () { var e = be.a.Now; if (!(this._lastCheck && e - this._lastCheck < this.audioPositioningRefreshRate)) { this._lastCheck = e; var t = this.scene; if (this._audioEnabled && t._mainSoundTrack && t.soundTracks && (0 !== t._mainSoundTrack.soundCollection.length || 1 !== t.soundTracks.length)) { var n = ue.a.audioEngine; if (n.audioContext) { if (this._audioListenerPositionProvider) { var i = this._audioListenerPositionProvider(); (i.x = i.x || 0), (i.y = i.y || 0), (i.z = i.z || 0), n.audioContext.listener.setPosition(i.x, i.y, i.z); } else { var r; if ((r = t.activeCameras.length > 0 ? t.activeCameras[0] : t.activeCamera)) { this._cachedCameraPosition.equals(r.globalPosition) || (this._cachedCameraPosition.copyFrom(r.globalPosition), n.audioContext.listener.setPosition(r.globalPosition.x, r.globalPosition.y, r.globalPosition.z)), r.rigCameras && r.rigCameras.length > 0 && (r = r.rigCameras[0]); var o = a.a.Invert(r.getViewMatrix()), s = a.e.TransformNormal(new a.e(0, 0, -1), o); s.normalize(), isNaN(s.x) || isNaN(s.y) || isNaN(s.z) || this._cachedCameraDirection.equals(s) || (this._cachedCameraDirection.copyFrom(s), n.audioContext.listener.setOrientation(s.x, s.y, s.z, 0, 1, 0)); } else n.audioContext.listener.setPosition(0, 0, 0); } var c; for (c = 0; c < t.mainSoundTrack.soundCollection.length; c++) { var l = t.mainSoundTrack.soundCollection[c]; l.useCustomAttenuation && l.updateDistanceFromListener(); } if (t.soundTracks) for (c = 0; c < t.soundTracks.length; c++) for (var u = 0; u < t.soundTracks[c].soundCollection.length; u++) (l = t.soundTracks[c].soundCollection[u]).useCustomAttenuation && l.updateDistanceFromListener(); } } } }), e ); })(); pe.a._SceneComponentInitialization = function (e) { var t = e._getComponent(me.a.NAME_AUDIO); t || ((t = new _e(e)), e._addComponent(t)); }; var ve = n(192), ye = n(20), Ce = (function () { function e() { (this._zoomStopsAnimation = !1), (this._idleRotationSpeed = 0.05), (this._idleRotationWaitTime = 2e3), (this._idleRotationSpinupTime = 2e3), (this._isPointerDown = !1), (this._lastFrameTime = null), (this._lastInteractionTime = -1 / 0), (this._cameraRotationSpeed = 0), (this._lastFrameRadius = 0); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return "AutoRotation"; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "zoomStopsAnimation", { get: function () { return this._zoomStopsAnimation; }, set: function (e) { this._zoomStopsAnimation = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "idleRotationSpeed", { get: function () { return this._idleRotationSpeed; }, set: function (e) { this._idleRotationSpeed = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "idleRotationWaitTime", { get: function () { return this._idleRotationWaitTime; }, set: function (e) { this._idleRotationWaitTime = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "idleRotationSpinupTime", { get: function () { return this._idleRotationSpinupTime; }, set: function (e) { this._idleRotationSpinupTime = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rotationInProgress", { get: function () { return Math.abs(this._cameraRotationSpeed) > 0; }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), (e.prototype.attach = function (e) { var t = this; this._attachedCamera = e; var n = this._attachedCamera.getScene(); (this._onPrePointerObservableObserver = n.onPrePointerObservable.add(function (e) { e.type !== ye.a.POINTERDOWN ? e.type === ye.a.POINTERUP && (t._isPointerDown = !1) : (t._isPointerDown = !0); })), (this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(function () { var e = be.a.Now, n = 0; null != t._lastFrameTime && (n = e - t._lastFrameTime), (t._lastFrameTime = e), t._applyUserInteraction(); var i = e - t._lastInteractionTime - t._idleRotationWaitTime, r = Math.max(Math.min(i / t._idleRotationSpinupTime, 1), 0); (t._cameraRotationSpeed = t._idleRotationSpeed * r), t._attachedCamera && (t._attachedCamera.alpha -= t._cameraRotationSpeed * (n / 1e3)); })); }), (e.prototype.detach = function () { if (this._attachedCamera) { var e = this._attachedCamera.getScene(); this._onPrePointerObservableObserver && e.onPrePointerObservable.remove(this._onPrePointerObservableObserver), this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver), (this._attachedCamera = null); } }), (e.prototype._userIsZooming = function () { return !!this._attachedCamera && 0 !== this._attachedCamera.inertialRadiusOffset; }), (e.prototype._shouldAnimationStopForInteraction = function () { if (!this._attachedCamera) return !1; var e = !1; return ( this._lastFrameRadius === this._attachedCamera.radius && 0 !== this._attachedCamera.inertialRadiusOffset && (e = !0), (this._lastFrameRadius = this._attachedCamera.radius), this._zoomStopsAnimation ? e : this._userIsZooming() ); }), (e.prototype._applyUserInteraction = function () { this._userIsMoving() && !this._shouldAnimationStopForInteraction() && (this._lastInteractionTime = be.a.Now); }), (e.prototype._userIsMoving = function () { return ( !!this._attachedCamera && (0 !== this._attachedCamera.inertialAlphaOffset || 0 !== this._attachedCamera.inertialBetaOffset || 0 !== this._attachedCamera.inertialRadiusOffset || 0 !== this._attachedCamera.inertialPanningX || 0 !== this._attachedCamera.inertialPanningY || this._isPointerDown) ); }), e ); })(), Pe = (function () { function e() { (this.transitionDuration = 450), (this.lowerRadiusTransitionRange = 2), (this.upperRadiusTransitionRange = -2), (this._autoTransitionRange = !1), (this._radiusIsAnimating = !1), (this._radiusBounceTransition = null), (this._animatables = new Array()); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return "Bouncing"; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "autoTransitionRange", { get: function () { return this._autoTransitionRange; }, set: function (e) { var t = this; if (this._autoTransitionRange !== e) { this._autoTransitionRange = e; var n = this._attachedCamera; n && (e ? (this._onMeshTargetChangedObserver = n.onMeshTargetChangedObservable.add(function (e) { if (e) { e.computeWorldMatrix(!0); var n = e.getBoundingInfo().diagonalLength; (t.lowerRadiusTransitionRange = 0.05 * n), (t.upperRadiusTransitionRange = 0.05 * n); } })) : this._onMeshTargetChangedObserver && n.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver)); } }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), (e.prototype.attach = function (e) { var t = this; (this._attachedCamera = e), (this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(function () { t._attachedCamera && (t._isRadiusAtLimit(t._attachedCamera.lowerRadiusLimit) && t._applyBoundRadiusAnimation(t.lowerRadiusTransitionRange), t._isRadiusAtLimit(t._attachedCamera.upperRadiusLimit) && t._applyBoundRadiusAnimation(t.upperRadiusTransitionRange)); })); }), (e.prototype.detach = function () { this._attachedCamera && (this._onAfterCheckInputsObserver && this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver), this._onMeshTargetChangedObserver && this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver), (this._attachedCamera = null)); }), (e.prototype._isRadiusAtLimit = function (e) { return !!this._attachedCamera && this._attachedCamera.radius === e && !this._radiusIsAnimating; }), (e.prototype._applyBoundRadiusAnimation = function (t) { var n = this; if (this._attachedCamera) { this._radiusBounceTransition || (e.EasingFunction.setEasingMode(e.EasingMode), (this._radiusBounceTransition = R.a.CreateAnimation("radius", R.a.ANIMATIONTYPE_FLOAT, 60, e.EasingFunction))), (this._cachedWheelPrecision = this._attachedCamera.wheelPrecision), (this._attachedCamera.wheelPrecision = 1 / 0), (this._attachedCamera.inertialRadiusOffset = 0), this.stopAllAnimations(), (this._radiusIsAnimating = !0); var i = R.a.TransitionTo("radius", this._attachedCamera.radius + t, this._attachedCamera, this._attachedCamera.getScene(), 60, this._radiusBounceTransition, this.transitionDuration, function () { return n._clearAnimationLocks(); }); i && this._animatables.push(i); } }), (e.prototype._clearAnimationLocks = function () { (this._radiusIsAnimating = !1), this._attachedCamera && (this._attachedCamera.wheelPrecision = this._cachedWheelPrecision); }), (e.prototype.stopAllAnimations = function () { for (this._attachedCamera && (this._attachedCamera.animations = []); this._animatables.length; ) (this._animatables[0].onAnimationEnd = null), this._animatables[0].stop(), this._animatables.shift(); }), (e.EasingFunction = new K(0.3)), (e.EasingMode = X.EASINGMODE_EASEOUT), e ); })(), xe = (function () { function e() { (this._mode = e.FitFrustumSidesMode), (this._radiusScale = 1), (this._positionScale = 0.5), (this._defaultElevation = 0.3), (this._elevationReturnTime = 1500), (this._elevationReturnWaitTime = 1e3), (this._zoomStopsAnimation = !1), (this._framingTime = 1500), (this.autoCorrectCameraLimitsAndSensibility = !0), (this._isPointerDown = !1), (this._lastInteractionTime = -1 / 0), (this._animatables = new Array()), (this._betaIsAnimating = !1); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return "Framing"; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "mode", { get: function () { return this._mode; }, set: function (e) { this._mode = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "radiusScale", { get: function () { return this._radiusScale; }, set: function (e) { this._radiusScale = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "positionScale", { get: function () { return this._positionScale; }, set: function (e) { this._positionScale = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "defaultElevation", { get: function () { return this._defaultElevation; }, set: function (e) { this._defaultElevation = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "elevationReturnTime", { get: function () { return this._elevationReturnTime; }, set: function (e) { this._elevationReturnTime = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "elevationReturnWaitTime", { get: function () { return this._elevationReturnWaitTime; }, set: function (e) { this._elevationReturnWaitTime = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "zoomStopsAnimation", { get: function () { return this._zoomStopsAnimation; }, set: function (e) { this._zoomStopsAnimation = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "framingTime", { get: function () { return this._framingTime; }, set: function (e) { this._framingTime = e; }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), (e.prototype.attach = function (t) { var n = this; this._attachedCamera = t; var i = this._attachedCamera.getScene(); e.EasingFunction.setEasingMode(e.EasingMode), (this._onPrePointerObservableObserver = i.onPrePointerObservable.add(function (e) { e.type !== ye.a.POINTERDOWN ? e.type === ye.a.POINTERUP && (n._isPointerDown = !1) : (n._isPointerDown = !0); })), (this._onMeshTargetChangedObserver = t.onMeshTargetChangedObservable.add(function (e) { e && n.zoomOnMesh(e); })), (this._onAfterCheckInputsObserver = t.onAfterCheckInputsObservable.add(function () { n._applyUserInteraction(), n._maintainCameraAboveGround(); })); }), (e.prototype.detach = function () { if (this._attachedCamera) { var e = this._attachedCamera.getScene(); this._onPrePointerObservableObserver && e.onPrePointerObservable.remove(this._onPrePointerObservableObserver), this._onAfterCheckInputsObserver && this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver), this._onMeshTargetChangedObserver && this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver), (this._attachedCamera = null); } }), (e.prototype.zoomOnMesh = function (e, t, n) { void 0 === t && (t = !1), void 0 === n && (n = null), e.computeWorldMatrix(!0); var i = e.getBoundingInfo().boundingBox; this.zoomOnBoundingInfo(i.minimumWorld, i.maximumWorld, t, n); }), (e.prototype.zoomOnMeshHierarchy = function (e, t, n) { void 0 === t && (t = !1), void 0 === n && (n = null), e.computeWorldMatrix(!0); var i = e.getHierarchyBoundingVectors(!0); this.zoomOnBoundingInfo(i.min, i.max, t, n); }), (e.prototype.zoomOnMeshesHierarchy = function (e, t, n) { void 0 === t && (t = !1), void 0 === n && (n = null); for (var i = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), r = new a.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), o = 0; o < e.length; o++) { var s = e[o].getHierarchyBoundingVectors(!0); a.e.CheckExtends(s.min, i, r), a.e.CheckExtends(s.max, i, r); } this.zoomOnBoundingInfo(i, r, t, n); }), (e.prototype.zoomOnBoundingInfo = function (t, n, i, r) { var o, s = this; if ((void 0 === i && (i = !1), void 0 === r && (r = null), this._attachedCamera)) { var c = t.y, l = c + (n.y - c) * this._positionScale, u = n.subtract(t).scale(0.5); if (i) o = new a.e(0, l, 0); else { var h = t.add(u); o = new a.e(h.x, l, h.z); } this._vectorTransition || (this._vectorTransition = R.a.CreateAnimation("target", R.a.ANIMATIONTYPE_VECTOR3, 60, e.EasingFunction)), (this._betaIsAnimating = !0); var d = R.a.TransitionTo("target", o, this._attachedCamera, this._attachedCamera.getScene(), 60, this._vectorTransition, this._framingTime); d && this._animatables.push(d); var p = 0; if (this._mode === e.FitFrustumSidesMode) { var f = this._calculateLowerRadiusFromModelBoundingSphere(t, n); this.autoCorrectCameraLimitsAndSensibility && (this._attachedCamera.lowerRadiusLimit = u.length() + this._attachedCamera.minZ), (p = f); } else this._mode === e.IgnoreBoundsSizeMode && ((p = this._calculateLowerRadiusFromModelBoundingSphere(t, n)), this.autoCorrectCameraLimitsAndSensibility && null === this._attachedCamera.lowerRadiusLimit && (this._attachedCamera.lowerRadiusLimit = this._attachedCamera.minZ)); if (this.autoCorrectCameraLimitsAndSensibility) { var m = n.subtract(t).length(); (this._attachedCamera.panningSensibility = 5e3 / m), (this._attachedCamera.wheelPrecision = 100 / p); } this._radiusTransition || (this._radiusTransition = R.a.CreateAnimation("radius", R.a.ANIMATIONTYPE_FLOAT, 60, e.EasingFunction)), (d = R.a.TransitionTo("radius", p, this._attachedCamera, this._attachedCamera.getScene(), 60, this._radiusTransition, this._framingTime, function () { s.stopAllAnimations(), r && r(), s._attachedCamera && s._attachedCamera.useInputToRestoreState && s._attachedCamera.storeState(); })) && this._animatables.push(d); } }), (e.prototype._calculateLowerRadiusFromModelBoundingSphere = function (t, n) { var i = n.subtract(t).length(), r = this._getFrustumSlope(), o = 0.5 * i * this._radiusScale, a = o * Math.sqrt(1 + 1 / (r.x * r.x)), s = o * Math.sqrt(1 + 1 / (r.y * r.y)), c = Math.max(a, s), l = this._attachedCamera; return l ? (l.lowerRadiusLimit && this._mode === e.IgnoreBoundsSizeMode && (c = c < l.lowerRadiusLimit ? l.lowerRadiusLimit : c), l.upperRadiusLimit && (c = c > l.upperRadiusLimit ? l.upperRadiusLimit : c), c) : 0; }), (e.prototype._maintainCameraAboveGround = function () { var t = this; if (!(this._elevationReturnTime < 0)) { var n = be.a.Now - this._lastInteractionTime, i = 0.5 * Math.PI - this._defaultElevation, r = 0.5 * Math.PI; if (this._attachedCamera && !this._betaIsAnimating && this._attachedCamera.beta > r && n >= this._elevationReturnWaitTime) { (this._betaIsAnimating = !0), this.stopAllAnimations(), this._betaTransition || (this._betaTransition = R.a.CreateAnimation("beta", R.a.ANIMATIONTYPE_FLOAT, 60, e.EasingFunction)); var o = R.a.TransitionTo("beta", i, this._attachedCamera, this._attachedCamera.getScene(), 60, this._betaTransition, this._elevationReturnTime, function () { t._clearAnimationLocks(), t.stopAllAnimations(); }); o && this._animatables.push(o); } } }), (e.prototype._getFrustumSlope = function () { var e = this._attachedCamera; if (!e) return a.d.Zero(); var t = e.getScene().getEngine().getAspectRatio(e), n = Math.tan(e.fov / 2), i = n * t; return new a.d(i, n); }), (e.prototype._clearAnimationLocks = function () { this._betaIsAnimating = !1; }), (e.prototype._applyUserInteraction = function () { this.isUserIsMoving && ((this._lastInteractionTime = be.a.Now), this.stopAllAnimations(), this._clearAnimationLocks()); }), (e.prototype.stopAllAnimations = function () { for (this._attachedCamera && (this._attachedCamera.animations = []); this._animatables.length; ) this._animatables[0] && ((this._animatables[0].onAnimationEnd = null), this._animatables[0].stop()), this._animatables.shift(); }), Object.defineProperty(e.prototype, "isUserIsMoving", { get: function () { return ( !!this._attachedCamera && (0 !== this._attachedCamera.inertialAlphaOffset || 0 !== this._attachedCamera.inertialBetaOffset || 0 !== this._attachedCamera.inertialRadiusOffset || 0 !== this._attachedCamera.inertialPanningX || 0 !== this._attachedCamera.inertialPanningY || this._isPointerDown) ); }, enumerable: !0, configurable: !0, }), (e.EasingFunction = new J()), (e.EasingMode = X.EASINGMODE_EASEINOUT), (e.IgnoreBoundsSizeMode = 0), (e.FitFrustumSidesMode = 1), e ); })(), Te = function (e, t, n, i) { void 0 === t && (t = new a.e()), void 0 === n && (n = 0), void 0 === i && (i = !1), (this.direction = e), (this.rotatedDirection = t), (this.diff = n), (this.ignore = i); }, Se = (function () { function e(e) { (this.ui = e), (this.name = "AttachToBoxBehavior"), (this.distanceAwayFromFace = 0.15), (this.distanceAwayFromBottomOfFace = 0.15), (this._faceVectors = [new Te(a.e.Up()), new Te(a.e.Down()), new Te(a.e.Left()), new Te(a.e.Right()), new Te(a.e.Forward()), new Te(a.e.Forward().scaleInPlace(-1))]), (this._tmpMatrix = new a.a()), (this._tmpVector = new a.e()), (this._zeroVector = a.e.Zero()), (this._lookAtTmpMatrix = new a.a()); } return ( (e.prototype.init = function () {}), (e.prototype._closestFace = function (e) { var t = this; return ( this._faceVectors.forEach(function (n) { t._target.rotationQuaternion || (t._target.rotationQuaternion = a.b.RotationYawPitchRoll(t._target.rotation.y, t._target.rotation.x, t._target.rotation.z)), t._target.rotationQuaternion.toRotationMatrix(t._tmpMatrix), a.e.TransformCoordinatesToRef(n.direction, t._tmpMatrix, n.rotatedDirection), (n.diff = a.e.GetAngleBetweenVectors(n.rotatedDirection, e, a.e.Cross(n.rotatedDirection, e))); }), this._faceVectors.reduce(function (e, t) { return e.ignore ? t : t.ignore || e.diff < t.diff ? e : t; }, this._faceVectors[0]) ); }), (e.prototype._lookAtToRef = function (e, t, n) { void 0 === t && (t = new a.e(0, 1, 0)), a.a.LookAtLHToRef(this._zeroVector, e, t, this._lookAtTmpMatrix), this._lookAtTmpMatrix.invert(), a.b.FromRotationMatrixToRef(this._lookAtTmpMatrix, n); }), (e.prototype.attach = function (e) { var t = this; (this._target = e), (this._scene = this._target.getScene()), (this._onRenderObserver = this._scene.onBeforeRenderObservable.add(function () { if (t._scene.activeCamera) { var n = t._scene.activeCamera.position; t._scene.activeCamera.devicePosition && (n = t._scene.activeCamera.devicePosition); var i = t._closestFace(n.subtract(e.position)); t._scene.activeCamera.leftCamera ? t._scene.activeCamera.leftCamera.computeWorldMatrix().getRotationMatrixToRef(t._tmpMatrix) : t._scene.activeCamera.computeWorldMatrix().getRotationMatrixToRef(t._tmpMatrix), a.e.TransformCoordinatesToRef(a.e.Up(), t._tmpMatrix, t._tmpVector), t._faceVectors.forEach(function (e) { i.direction.x && e.direction.x && (e.ignore = !0), i.direction.y && e.direction.y && (e.ignore = !0), i.direction.z && e.direction.z && (e.ignore = !0); }); var r = t._closestFace(t._tmpVector); t._faceVectors.forEach(function (e) { e.ignore = !1; }), t.ui.position.copyFrom(e.position), i.direction.x && (i.rotatedDirection.scaleToRef(e.scaling.x / 2 + t.distanceAwayFromFace, t._tmpVector), t.ui.position.addInPlace(t._tmpVector)), i.direction.y && (i.rotatedDirection.scaleToRef(e.scaling.y / 2 + t.distanceAwayFromFace, t._tmpVector), t.ui.position.addInPlace(t._tmpVector)), i.direction.z && (i.rotatedDirection.scaleToRef(e.scaling.z / 2 + t.distanceAwayFromFace, t._tmpVector), t.ui.position.addInPlace(t._tmpVector)), t.ui.rotationQuaternion || (t.ui.rotationQuaternion = a.b.RotationYawPitchRoll(t.ui.rotation.y, t.ui.rotation.x, t.ui.rotation.z)), i.rotatedDirection.scaleToRef(-1, t._tmpVector), t._lookAtToRef(t._tmpVector, r.rotatedDirection, t.ui.rotationQuaternion), r.direction.x && t.ui.up.scaleToRef(t.distanceAwayFromBottomOfFace - e.scaling.x / 2, t._tmpVector), r.direction.y && t.ui.up.scaleToRef(t.distanceAwayFromBottomOfFace - e.scaling.y / 2, t._tmpVector), r.direction.z && t.ui.up.scaleToRef(t.distanceAwayFromBottomOfFace - e.scaling.z / 2, t._tmpVector), t.ui.position.addInPlace(t._tmpVector); } })); }), (e.prototype.detach = function () { this._scene.onBeforeRenderObservable.remove(this._onRenderObserver); }), e ); })(), Oe = n(193), Ee = n(9), Me = n(58), Ae = n(81), Ie = n(153), De = n(26), Re = (function () { function e(e, t, n) { void 0 === n && (n = Number.MAX_VALUE), (this.origin = e), (this.direction = t), (this.length = n); } return ( (e.prototype.intersectsBoxMinMax = function (t, n, i) { void 0 === i && (i = 0); var r, o, a, s, c = e.TmpVector3[0].copyFromFloats(t.x - i, t.y - i, t.z - i), l = e.TmpVector3[1].copyFromFloats(n.x + i, n.y + i, n.z + i), u = 0, h = Number.MAX_VALUE; if (Math.abs(this.direction.x) < 1e-7) { if (this.origin.x < c.x || this.origin.x > l.x) return !1; } else if (((r = 1 / this.direction.x), (o = (c.x - this.origin.x) * r), (a = (l.x - this.origin.x) * r) === -1 / 0 && (a = 1 / 0), o > a && ((s = o), (o = a), (a = s)), (u = Math.max(o, u)) > (h = Math.min(a, h)))) return !1; if (Math.abs(this.direction.y) < 1e-7) { if (this.origin.y < c.y || this.origin.y > l.y) return !1; } else if (((r = 1 / this.direction.y), (o = (c.y - this.origin.y) * r), (a = (l.y - this.origin.y) * r) === -1 / 0 && (a = 1 / 0), o > a && ((s = o), (o = a), (a = s)), (u = Math.max(o, u)) > (h = Math.min(a, h)))) return !1; if (Math.abs(this.direction.z) < 1e-7) { if (this.origin.z < c.z || this.origin.z > l.z) return !1; } else if (((r = 1 / this.direction.z), (o = (c.z - this.origin.z) * r), (a = (l.z - this.origin.z) * r) === -1 / 0 && (a = 1 / 0), o > a && ((s = o), (o = a), (a = s)), (u = Math.max(o, u)) > (h = Math.min(a, h)))) return !1; return !0; }), (e.prototype.intersectsBox = function (e, t) { return void 0 === t && (t = 0), this.intersectsBoxMinMax(e.minimum, e.maximum, t); }), (e.prototype.intersectsSphere = function (e, t) { void 0 === t && (t = 0); var n = e.center.x - this.origin.x, i = e.center.y - this.origin.y, r = e.center.z - this.origin.z, o = n * n + i * i + r * r, a = e.radius + t, s = a * a; if (o <= s) return !0; var c = n * this.direction.x + i * this.direction.y + r * this.direction.z; return !(c < 0) && o - c * c <= s; }), (e.prototype.intersectsTriangle = function (t, n, i) { var r = e.TmpVector3[0], o = e.TmpVector3[1], s = e.TmpVector3[2], c = e.TmpVector3[3], l = e.TmpVector3[4]; n.subtractToRef(t, r), i.subtractToRef(t, o), a.e.CrossToRef(this.direction, o, s); var u = a.e.Dot(r, s); if (0 === u) return null; var h = 1 / u; this.origin.subtractToRef(t, c); var d = a.e.Dot(c, s) * h; if (d < 0 || d > 1) return null; a.e.CrossToRef(c, r, l); var p = a.e.Dot(this.direction, l) * h; if (p < 0 || d + p > 1) return null; var f = a.e.Dot(o, l) * h; return f > this.length ? null : new Ie.a(1 - d - p, d, f); }), (e.prototype.intersectsPlane = function (e) { var t, n = a.e.Dot(e.normal, this.direction); if (Math.abs(n) < 9.99999997475243e-7) return null; var i = a.e.Dot(e.normal, this.origin); return (t = (-e.d - i) / n) < 0 ? (t < -9.99999997475243e-7 ? null : 0) : t; }), (e.prototype.intersectsAxis = function (e, t) { switch ((void 0 === t && (t = 0), e)) { case "y": return (n = (this.origin.y - t) / this.direction.y) > 0 ? null : new a.e(this.origin.x + this.direction.x * -n, t, this.origin.z + this.direction.z * -n); case "x": return (n = (this.origin.x - t) / this.direction.x) > 0 ? null : new a.e(t, this.origin.y + this.direction.y * -n, this.origin.z + this.direction.z * -n); case "z": var n; return (n = (this.origin.z - t) / this.direction.z) > 0 ? null : new a.e(this.origin.x + this.direction.x * -n, this.origin.y + this.direction.y * -n, t); default: return null; } }), (e.prototype.intersectsMesh = function (t, n) { var i = a.c.Matrix[0]; return t.getWorldMatrix().invertToRef(i), this._tmpRay ? e.TransformToRef(this, i, this._tmpRay) : (this._tmpRay = e.Transform(this, i)), t.intersects(this._tmpRay, n); }), (e.prototype.intersectsMeshes = function (e, t, n) { n ? (n.length = 0) : (n = []); for (var i = 0; i < e.length; i++) { var r = this.intersectsMesh(e[i], t); r.hit && n.push(r); } return n.sort(this._comparePickingInfo), n; }), (e.prototype._comparePickingInfo = function (e, t) { return e.distance < t.distance ? -1 : e.distance > t.distance ? 1 : 0; }), (e.prototype.intersectionSegment = function (t, n, i) { var r = this.origin, o = a.c.Vector3[0], s = a.c.Vector3[1], c = a.c.Vector3[2], l = a.c.Vector3[3]; n.subtractToRef(t, o), this.direction.scaleToRef(e.rayl, c), r.addToRef(c, s), t.subtractToRef(r, l); var u, h, d, p, f = a.e.Dot(o, o), m = a.e.Dot(o, c), g = a.e.Dot(c, c), b = a.e.Dot(o, l), _ = a.e.Dot(c, l), v = f * g - m * m, y = v, C = v; v < e.smallnum ? ((h = 0), (y = 1), (p = _), (C = g)) : ((p = f * _ - m * b), (h = m * _ - g * b) < 0 ? ((h = 0), (p = _), (C = g)) : h > y && ((h = y), (p = _ + m), (C = g))), p < 0 ? ((p = 0), -b < 0 ? (h = 0) : -b > f ? (h = y) : ((h = -b), (y = f))) : p > C && ((p = C), -b + m < 0 ? (h = 0) : -b + m > f ? (h = y) : ((h = -b + m), (y = f))), (u = Math.abs(h) < e.smallnum ? 0 : h / y), (d = Math.abs(p) < e.smallnum ? 0 : p / C); var P = a.c.Vector3[4]; c.scaleToRef(d, P); var x = a.c.Vector3[5]; o.scaleToRef(u, x), x.addInPlace(l); var T = a.c.Vector3[6]; return x.subtractToRef(P, T), d > 0 && d <= this.length && T.lengthSquared() < i * i ? x.length() : -1; }), (e.prototype.update = function (e, t, n, i, r, o, a) { return this.unprojectRayToRef(e, t, n, i, r, o, a), this; }), (e.Zero = function () { return new e(a.e.Zero(), a.e.Zero()); }), (e.CreateNew = function (t, n, i, r, o, a, s) { return e.Zero().update(t, n, i, r, o, a, s); }), (e.CreateNewFromTo = function (t, n, i) { void 0 === i && (i = a.a.IdentityReadOnly); var r = n.subtract(t), o = Math.sqrt(r.x * r.x + r.y * r.y + r.z * r.z); return r.normalize(), e.Transform(new e(t, r, o), i); }), (e.Transform = function (t, n) { var i = new e(new a.e(0, 0, 0), new a.e(0, 0, 0)); return e.TransformToRef(t, n, i), i; }), (e.TransformToRef = function (e, t, n) { a.e.TransformCoordinatesToRef(e.origin, t, n.origin), a.e.TransformNormalToRef(e.direction, t, n.direction), (n.length = e.length); var i = n.direction, r = i.length(); if (0 !== r && 1 !== r) { var o = 1 / r; (i.x *= o), (i.y *= o), (i.z *= o), (n.length *= r); } }), (e.prototype.unprojectRayToRef = function (e, t, n, i, r, o, s) { var c = a.c.Matrix[0]; r.multiplyToRef(o, c), c.multiplyToRef(s, c), c.invert(); var l = a.c.Vector3[0]; (l.x = (e / n) * 2 - 1), (l.y = -((t / i) * 2 - 1)), (l.z = -1); var u = a.c.Vector3[1].copyFromFloats(l.x, l.y, 1), h = a.c.Vector3[2], d = a.c.Vector3[3]; a.e._UnprojectFromInvertedMatrixToRef(l, c, h), a.e._UnprojectFromInvertedMatrixToRef(u, c, d), this.origin.copyFrom(h), d.subtractToRef(h, this.direction), this.direction.normalize(); }), (e.TmpVector3 = Me.a.BuildArray(6, a.e.Zero)), (e.smallnum = 1e-8), (e.rayl = 1e9), e ); })(); (ge.a.prototype.createPickingRay = function (e, t, n, i, r) { void 0 === r && (r = !1); var o = Re.Zero(); return this.createPickingRayToRef(e, t, n, o, i, r), o; }), (ge.a.prototype.createPickingRayToRef = function (e, t, n, i, r, o) { void 0 === o && (o = !1); var s = this.getEngine(); if (!r) { if (!this.activeCamera) return this; r = this.activeCamera; } var c = r.viewport.toGlobal(s.getRenderWidth(), s.getRenderHeight()); return ( (e = e / s.getHardwareScalingLevel() - c.x), (t = t / s.getHardwareScalingLevel() - (s.getRenderHeight() - c.y - c.height)), i.update(e, t, c.width, c.height, n || a.a.IdentityReadOnly, o ? a.a.IdentityReadOnly : r.getViewMatrix(), r.getProjectionMatrix()), this ); }), (ge.a.prototype.createPickingRayInCameraSpace = function (e, t, n) { var i = Re.Zero(); return this.createPickingRayInCameraSpaceToRef(e, t, i, n), i; }), (ge.a.prototype.createPickingRayInCameraSpaceToRef = function (e, t, n, i) { if (!Ae.a) return this; var r = this.getEngine(); if (!i) { if (!this.activeCamera) throw new Error("Active camera not set"); i = this.activeCamera; } var o = i.viewport.toGlobal(r.getRenderWidth(), r.getRenderHeight()), s = a.a.Identity(); return (e = e / r.getHardwareScalingLevel() - o.x), (t = t / r.getHardwareScalingLevel() - (r.getRenderHeight() - o.y - o.height)), n.update(e, t, o.width, o.height, s, s, i.getProjectionMatrix()), this; }), (ge.a.prototype._internalPick = function (e, t, n, i) { if (!Ae.a) return null; for (var r = null, o = 0; o < this.meshes.length; o++) { var a = this.meshes[o]; if (t) { if (!t(a)) continue; } else if (!a.isEnabled() || !a.isVisible || !a.isPickable) continue; var s = e(a.getWorldMatrix()), c = a.intersects(s, n, i); if (c && c.hit && (n || null == r || !(c.distance >= r.distance)) && ((r = c), n)) break; } return r || new Ae.a(); }), (ge.a.prototype._internalMultiPick = function (e, t, n) { if (!Ae.a) return null; for (var i = new Array(), r = 0; r < this.meshes.length; r++) { var o = this.meshes[r]; if (t) { if (!t(o)) continue; } else if (!o.isEnabled() || !o.isVisible || !o.isPickable) continue; var a = e(o.getWorldMatrix()), s = o.intersects(a, !1, n); s && s.hit && i.push(s); } return i; }), (ge.a.prototype.pick = function (e, t, n, i, r, o) { var s = this; if (!Ae.a) return null; var c = this._internalPick( function (n) { return s._tempPickingRay || (s._tempPickingRay = Re.Zero()), s.createPickingRayToRef(e, t, n, s._tempPickingRay, r || null), s._tempPickingRay; }, n, i, o ); return c && (c.ray = this.createPickingRay(e, t, a.a.Identity(), r || null)), c; }), (ge.a.prototype.pickWithRay = function (e, t, n, i) { var r = this, o = this._internalPick( function (t) { return ( r._pickWithRayInverseMatrix || (r._pickWithRayInverseMatrix = a.a.Identity()), t.invertToRef(r._pickWithRayInverseMatrix), r._cachedRayForTransform || (r._cachedRayForTransform = Re.Zero()), Re.TransformToRef(e, r._pickWithRayInverseMatrix, r._cachedRayForTransform), r._cachedRayForTransform ); }, t, n, i ); return o && (o.ray = e), o; }), (ge.a.prototype.multiPick = function (e, t, n, i, r) { var o = this; return this._internalMultiPick( function (n) { return o.createPickingRay(e, t, n, i || null); }, n, r ); }), (ge.a.prototype.multiPickWithRay = function (e, t, n) { var i = this; return this._internalMultiPick( function (t) { return ( i._pickWithRayInverseMatrix || (i._pickWithRayInverseMatrix = a.a.Identity()), t.invertToRef(i._pickWithRayInverseMatrix), i._cachedRayForTransform || (i._cachedRayForTransform = Re.Zero()), Re.TransformToRef(e, i._pickWithRayInverseMatrix, i._cachedRayForTransform), i._cachedRayForTransform ); }, t, n ); }), (De.a.prototype.getForwardRay = function (e, t, n) { void 0 === e && (e = 100), t || (t = this.getWorldMatrix()), n || (n = this.position); var i = this._scene.useRightHandedSystem ? new a.e(0, 0, -1) : new a.e(0, 0, 1), r = a.e.TransformNormal(i, t), o = a.e.Normalize(r); return new Re(n, o, e); }); var we = (function () { function e() {} return ( (e._RemoveAndStorePivotPoint = function (t) { t && 0 === e._PivotCached && (t.getPivotPointToRef(e._OldPivotPoint), e._OldPivotPoint.equalsToFloats(0, 0, 0) || (t.setPivotMatrix(a.a.IdentityReadOnly), e._OldPivotPoint.subtractToRef(t.getPivotPoint(), e._PivotTranslation), e._PivotTmpVector.copyFromFloats(1, 1, 1), e._PivotTmpVector.subtractInPlace(t.scaling), e._PivotTmpVector.multiplyInPlace(e._PivotTranslation), t.position.addInPlace(e._PivotTmpVector))), e._PivotCached++; }), (e._RestorePivotPoint = function (t) { t && !e._OldPivotPoint.equalsToFloats(0, 0, 0) && 1 === e._PivotCached && (t.setPivotPoint(e._OldPivotPoint), e._PivotTmpVector.copyFromFloats(1, 1, 1), e._PivotTmpVector.subtractInPlace(t.scaling), e._PivotTmpVector.multiplyInPlace(e._PivotTranslation), t.position.subtractInPlace(e._PivotTmpVector)), this._PivotCached--; }), (e._PivotCached = 0), (e._OldPivotPoint = new a.e()), (e._PivotTranslation = new a.e()), (e._PivotTmpVector = new a.e()), e ); })(), Le = n(111), Fe = (function () { function e(e) { (this._useAlternatePickedPointAboveMaxDragAngleDragSpeed = -1.1), (this.maxDragAngle = 0), (this._useAlternatePickedPointAboveMaxDragAngle = !1), (this.currentDraggingPointerID = -1), (this.dragging = !1), (this.dragDeltaRatio = 0.2), (this.updateDragPlane = !0), (this._debugMode = !1), (this._moving = !1), (this.onDragObservable = new o.c()), (this.onDragStartObservable = new o.c()), (this.onDragEndObservable = new o.c()), (this.moveAttached = !0), (this.enabled = !0), (this.startAndReleaseDragOnPointerEvents = !0), (this.detachCameraControls = !0), (this.useObjectOrientationForDragging = !0), (this.validateDrag = function (e) { return !0; }), (this._tmpVector = new a.e(0, 0, 0)), (this._alternatePickedPoint = new a.e(0, 0, 0)), (this._worldDragAxis = new a.e(0, 0, 0)), (this._targetPosition = new a.e(0, 0, 0)), (this._attachedElement = null), (this._startDragRay = new Re(new a.e(), new a.e())), (this._lastPointerRay = {}), (this._dragDelta = new a.e()), (this._pointA = new a.e(0, 0, 0)), (this._pointB = new a.e(0, 0, 0)), (this._pointC = new a.e(0, 0, 0)), (this._lineA = new a.e(0, 0, 0)), (this._lineB = new a.e(0, 0, 0)), (this._localAxis = new a.e(0, 0, 0)), (this._lookAt = new a.e(0, 0, 0)), (this._options = e || {}); var t = 0; if ((this._options.dragAxis && t++, this._options.dragPlaneNormal && t++, t > 1)) throw "Multiple drag modes specified in dragBehavior options. Only one expected"; } return ( Object.defineProperty(e.prototype, "options", { get: function () { return this._options; }, set: function (e) { this._options = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "name", { get: function () { return "PointerDrag"; }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), (e.prototype.attach = function (t, n) { var i = this; (this._scene = t.getScene()), (this.attachedNode = t), e._planeScene || (this._debugMode ? (e._planeScene = this._scene) : ((e._planeScene = new ge.a(this._scene.getEngine(), { virtual: !0 })), e._planeScene.detachControl(), this._scene.onDisposeObservable.addOnce(function () { e._planeScene.dispose(), (e._planeScene = null); }))), (this._dragPlane = Ee.a.CreatePlane("pointerDragPlane", this._debugMode ? 1 : 1e4, e._planeScene, !1, Ee.a.DOUBLESIDE)), (this.lastDragPosition = new a.e(0, 0, 0)); var r = n || function (e) { return i.attachedNode == e || e.isDescendantOf(i.attachedNode); }; (this._pointerObserver = this._scene.onPointerObservable.add(function (t, n) { if (i.enabled) if (t.type == ye.a.POINTERDOWN) i.startAndReleaseDragOnPointerEvents && !i.dragging && t.pickInfo && t.pickInfo.hit && t.pickInfo.pickedMesh && t.pickInfo.pickedPoint && t.pickInfo.ray && r(t.pickInfo.pickedMesh) && i._startDrag(t.event.pointerId, t.pickInfo.ray, t.pickInfo.pickedPoint); else if (t.type == ye.a.POINTERUP) i.startAndReleaseDragOnPointerEvents && i.currentDraggingPointerID == t.event.pointerId && i.releaseDrag(); else if (t.type == ye.a.POINTERMOVE) { var o = t.event.pointerId; i.currentDraggingPointerID === e._AnyMouseID && o !== e._AnyMouseID && "mouse" == t.event.pointerType && (i._lastPointerRay[i.currentDraggingPointerID] && ((i._lastPointerRay[o] = i._lastPointerRay[i.currentDraggingPointerID]), delete i._lastPointerRay[i.currentDraggingPointerID]), (i.currentDraggingPointerID = o)), i._lastPointerRay[o] || (i._lastPointerRay[o] = new Re(new a.e(), new a.e())), t.pickInfo && t.pickInfo.ray && (i._lastPointerRay[o].origin.copyFrom(t.pickInfo.ray.origin), i._lastPointerRay[o].direction.copyFrom(t.pickInfo.ray.direction), i.currentDraggingPointerID == o && i.dragging && i._moveDrag(t.pickInfo.ray)); } })), (this._beforeRenderObserver = this._scene.onBeforeRenderObservable.add(function () { i._moving && i.moveAttached && (we._RemoveAndStorePivotPoint(i.attachedNode), i._targetPosition.subtractToRef(i.attachedNode.absolutePosition, i._tmpVector), i._tmpVector.scaleInPlace(i.dragDeltaRatio), i.attachedNode.getAbsolutePosition().addToRef(i._tmpVector, i._tmpVector), i.validateDrag(i._tmpVector) && i.attachedNode.setAbsolutePosition(i._tmpVector), we._RestorePivotPoint(i.attachedNode)); })); }), (e.prototype.releaseDrag = function () { this.dragging && (this.onDragEndObservable.notifyObservers({ dragPlanePoint: this.lastDragPosition, pointerId: this.currentDraggingPointerID }), (this.dragging = !1)), (this.currentDraggingPointerID = -1), (this._moving = !1), this.detachCameraControls && this._attachedElement && this._scene.activeCamera && !this._scene.activeCamera.leftCamera && this._scene.activeCamera.attachControl(this._attachedElement, !this._scene.activeCamera.inputs || this._scene.activeCamera.inputs.noPreventDefault); }), (e.prototype.startDrag = function (t, n, i) { void 0 === t && (t = e._AnyMouseID), this._startDrag(t, n, i); var r = this._lastPointerRay[t]; t === e._AnyMouseID && (r = this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]), r && this._moveDrag(r); }), (e.prototype._startDrag = function (e, t, n) { if (this._scene.activeCamera && !this.dragging && this.attachedNode) { we._RemoveAndStorePivotPoint(this.attachedNode), t ? (this._startDragRay.direction.copyFrom(t.direction), this._startDragRay.origin.copyFrom(t.origin)) : (this._startDragRay.origin.copyFrom(this._scene.activeCamera.position), this.attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector), this._tmpVector.subtractToRef(this._scene.activeCamera.position, this._startDragRay.direction)), this._updateDragPlanePosition(this._startDragRay, n || this._tmpVector); var i = this._pickWithRayOnDragPlane(this._startDragRay); i && ((this.dragging = !0), (this.currentDraggingPointerID = e), this.lastDragPosition.copyFrom(i), this.onDragStartObservable.notifyObservers({ dragPlanePoint: i, pointerId: this.currentDraggingPointerID }), this._targetPosition.copyFrom(this.attachedNode.absolutePosition), this.detachCameraControls && this._scene.activeCamera && this._scene.activeCamera.inputs && !this._scene.activeCamera.leftCamera && (this._scene.activeCamera.inputs.attachedElement ? ((this._attachedElement = this._scene.activeCamera.inputs.attachedElement), this._scene.activeCamera.detachControl(this._scene.activeCamera.inputs.attachedElement)) : (this._attachedElement = null))), we._RestorePivotPoint(this.attachedNode); } }), (e.prototype._moveDrag = function (e) { this._moving = !0; var t = this._pickWithRayOnDragPlane(e); if (t) { this.updateDragPlane && this._updateDragPlanePosition(e, t); var n = 0; this._options.dragAxis ? (this.useObjectOrientationForDragging ? a.e.TransformCoordinatesToRef(this._options.dragAxis, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._worldDragAxis) : this._worldDragAxis.copyFrom(this._options.dragAxis), t.subtractToRef(this.lastDragPosition, this._tmpVector), (n = a.e.Dot(this._tmpVector, this._worldDragAxis)), this._worldDragAxis.scaleToRef(n, this._dragDelta)) : ((n = this._dragDelta.length()), t.subtractToRef(this.lastDragPosition, this._dragDelta)), this._targetPosition.addInPlace(this._dragDelta), this.onDragObservable.notifyObservers({ dragDistance: n, delta: this._dragDelta, dragPlanePoint: t, dragPlaneNormal: this._dragPlane.forward, pointerId: this.currentDraggingPointerID }), this.lastDragPosition.copyFrom(t); } }), (e.prototype._pickWithRayOnDragPlane = function (t) { var n = this; if (!t) return null; var i = Math.acos(a.e.Dot(this._dragPlane.forward, t.direction)); if ((i > Math.PI / 2 && (i = Math.PI - i), this.maxDragAngle > 0 && i > this.maxDragAngle)) { if (this._useAlternatePickedPointAboveMaxDragAngle) { this._tmpVector.copyFrom(t.direction), this.attachedNode.absolutePosition.subtractToRef(t.origin, this._alternatePickedPoint), this._alternatePickedPoint.normalize(), this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed * a.e.Dot(this._alternatePickedPoint, this._tmpVector)), this._tmpVector.addInPlace(this._alternatePickedPoint); var r = a.e.Dot(this._dragPlane.forward, this._tmpVector); return ( this._dragPlane.forward.scaleToRef(-r, this._alternatePickedPoint), this._alternatePickedPoint.addInPlace(this._tmpVector), this._alternatePickedPoint.addInPlace(this.attachedNode.absolutePosition), this._alternatePickedPoint ); } return null; } var o = e._planeScene.pickWithRay(t, function (e) { return e == n._dragPlane; }); return o && o.hit && o.pickedMesh && o.pickedPoint ? o.pickedPoint : null; }), (e.prototype._updateDragPlanePosition = function (e, t) { this._pointA.copyFrom(t), this._options.dragAxis ? (this.useObjectOrientationForDragging ? a.e.TransformCoordinatesToRef(this._options.dragAxis, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._localAxis) : this._localAxis.copyFrom(this._options.dragAxis), this._pointA.addToRef(this._localAxis, this._pointB), e.origin.subtractToRef(this._pointA, this._pointC), this._pointA.addToRef(this._pointC.normalize(), this._pointC), this._pointB.subtractToRef(this._pointA, this._lineA), this._pointC.subtractToRef(this._pointA, this._lineB), a.e.CrossToRef(this._lineA, this._lineB, this._lookAt), a.e.CrossToRef(this._lineA, this._lookAt, this._lookAt), this._lookAt.normalize(), this._dragPlane.position.copyFrom(this._pointA), this._pointA.addToRef(this._lookAt, this._lookAt), this._dragPlane.lookAt(this._lookAt)) : this._options.dragPlaneNormal ? (this.useObjectOrientationForDragging ? a.e.TransformCoordinatesToRef(this._options.dragPlaneNormal, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._localAxis) : this._localAxis.copyFrom(this._options.dragPlaneNormal), this._dragPlane.position.copyFrom(this._pointA), this._pointA.addToRef(this._localAxis, this._lookAt), this._dragPlane.lookAt(this._lookAt)) : (this._dragPlane.position.copyFrom(this._pointA), this._dragPlane.lookAt(e.origin)), this._dragPlane.position.copyFrom(this.attachedNode.absolutePosition), this._dragPlane.computeWorldMatrix(!0); }), (e.prototype.detach = function () { this._pointerObserver && this._scene.onPointerObservable.remove(this._pointerObserver), this._beforeRenderObserver && this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver), this.releaseDrag(); }), (e._AnyMouseID = -2), e ); })(), Ne = (function () { function e() { (this._startDistance = 0), (this._initialScale = new a.e(0, 0, 0)), (this._targetScale = new a.e(0, 0, 0)), (this._sceneRenderObserver = null), (this._dragBehaviorA = new Fe({})), (this._dragBehaviorA.moveAttached = !1), (this._dragBehaviorB = new Fe({})), (this._dragBehaviorB.moveAttached = !1); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return "MultiPointerScale"; }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), (e.prototype._getCurrentDistance = function () { return this._dragBehaviorA.lastDragPosition.subtract(this._dragBehaviorB.lastDragPosition).length(); }), (e.prototype.attach = function (e) { var t = this; (this._ownerNode = e), this._dragBehaviorA.onDragStartObservable.add(function (n) { t._dragBehaviorA.dragging && t._dragBehaviorB.dragging && (t._dragBehaviorA.currentDraggingPointerID == t._dragBehaviorB.currentDraggingPointerID ? t._dragBehaviorA.releaseDrag() : (t._initialScale.copyFrom(e.scaling), (t._startDistance = t._getCurrentDistance()))); }), this._dragBehaviorB.onDragStartObservable.add(function (n) { t._dragBehaviorA.dragging && t._dragBehaviorB.dragging && (t._dragBehaviorA.currentDraggingPointerID == t._dragBehaviorB.currentDraggingPointerID ? t._dragBehaviorB.releaseDrag() : (t._initialScale.copyFrom(e.scaling), (t._startDistance = t._getCurrentDistance()))); }), [this._dragBehaviorA, this._dragBehaviorB].forEach(function (e) { e.onDragObservable.add(function () { if (t._dragBehaviorA.dragging && t._dragBehaviorB.dragging) { var e = t._getCurrentDistance() / t._startDistance; t._initialScale.scaleToRef(e, t._targetScale); } }); }), e.addBehavior(this._dragBehaviorA), e.addBehavior(this._dragBehaviorB), (this._sceneRenderObserver = e.getScene().onBeforeRenderObservable.add(function () { if (t._dragBehaviorA.dragging && t._dragBehaviorB.dragging) { var n = t._targetScale.subtract(e.scaling).scaleInPlace(0.1); n.length() > 0.01 && e.scaling.addInPlace(n); } })); }), (e.prototype.detach = function () { var e = this; this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver), [this._dragBehaviorA, this._dragBehaviorB].forEach(function (t) { t.onDragStartObservable.clear(), t.onDragObservable.clear(), e._ownerNode.removeBehavior(t); }); }), e ); })(), ke = n(31), ze = (function () { function e() { (this._sceneRenderObserver = null), (this._targetPosition = new a.e(0, 0, 0)), (this._moving = !1), (this._startingOrientation = new a.b()), (this.zDragFactor = 3), (this.rotateDraggedObject = !0), (this.dragging = !1), (this.dragDeltaRatio = 0.2), (this.currentDraggingPointerID = -1), (this.detachCameraControls = !0), (this.onDragStartObservable = new o.c()), (this.onDragEndObservable = new o.c()); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return "SixDofDrag"; }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), Object.defineProperty(e.prototype, "_pointerCamera", { get: function () { return this._scene.cameraToUseForPointers ? this._scene.cameraToUseForPointers : this._scene.activeCamera; }, enumerable: !0, configurable: !0, }), (e.prototype.attach = function (t) { var n = this; (this._ownerNode = t), (this._scene = this._ownerNode.getScene()), e._virtualScene || ((e._virtualScene = new ge.a(this._scene.getEngine())), e._virtualScene.detachControl(), this._scene.getEngine().scenes.pop()); var i = null, r = new a.e(0, 0, 0); (this._virtualOriginMesh = new ke.a("", e._virtualScene)), (this._virtualOriginMesh.rotationQuaternion = new a.b()), (this._virtualDragMesh = new ke.a("", e._virtualScene)), (this._virtualDragMesh.rotationQuaternion = new a.b()); var o = null; this._pointerObserver = this._scene.onPointerObservable.add(function (e, t) { if (e.type == ye.a.POINTERDOWN) { if (!n.dragging && e.pickInfo && e.pickInfo.hit && e.pickInfo.pickedMesh && e.pickInfo.ray && ((h = e.pickInfo.pickedMesh), n._ownerNode == h || h.isDescendantOf(n._ownerNode))) { n._pointerCamera && n._pointerCamera.cameraRigMode == De.a.RIG_MODE_NONE && e.pickInfo.ray.origin.copyFrom(n._pointerCamera.globalPosition), (i = n._ownerNode), we._RemoveAndStorePivotPoint(i), r.copyFrom(e.pickInfo.ray.origin), n._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin), n._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)), n._virtualOriginMesh.removeChild(n._virtualDragMesh), i.computeWorldMatrix(), n._virtualDragMesh.position.copyFrom(i.absolutePosition), i.rotationQuaternion || (i.rotationQuaternion = a.b.RotationYawPitchRoll(i.rotation.y, i.rotation.x, i.rotation.z)); var s = i.parent; i.setParent(null), n._virtualDragMesh.rotationQuaternion.copyFrom(i.rotationQuaternion), i.setParent(s), n._virtualOriginMesh.addChild(n._virtualDragMesh), n._targetPosition.copyFrom(n._virtualDragMesh.absolutePosition), (n.dragging = !0), (n.currentDraggingPointerID = e.event.pointerId), n.detachCameraControls && n._pointerCamera && !n._pointerCamera.leftCamera && (n._pointerCamera.inputs.attachedElement ? ((o = n._pointerCamera.inputs.attachedElement), n._pointerCamera.detachControl(n._pointerCamera.inputs.attachedElement)) : (o = null)), we._RestorePivotPoint(i), n.onDragStartObservable.notifyObservers({}); } } else if (e.type == ye.a.POINTERUP) n.currentDraggingPointerID == e.event.pointerId && ((n.dragging = !1), (n._moving = !1), (n.currentDraggingPointerID = -1), (i = null), n._virtualOriginMesh.removeChild(n._virtualDragMesh), n.detachCameraControls && o && n._pointerCamera && !n._pointerCamera.leftCamera && n._pointerCamera.attachControl(o, !0), n.onDragEndObservable.notifyObservers({})); else if (e.type == ye.a.POINTERMOVE && n.currentDraggingPointerID == e.event.pointerId && n.dragging && e.pickInfo && e.pickInfo.ray && i) { var c = n.zDragFactor; n._pointerCamera && n._pointerCamera.cameraRigMode == De.a.RIG_MODE_NONE && (e.pickInfo.ray.origin.copyFrom(n._pointerCamera.globalPosition), (c = 0)); var l = e.pickInfo.ray.origin.subtract(r); r.copyFrom(e.pickInfo.ray.origin); var u = -a.e.Dot(l, e.pickInfo.ray.direction); n._virtualOriginMesh.addChild(n._virtualDragMesh), (n._virtualDragMesh.position.z -= n._virtualDragMesh.position.z < 1 ? u * n.zDragFactor : u * c * n._virtualDragMesh.position.z), n._virtualDragMesh.position.z < 0 && (n._virtualDragMesh.position.z = 0), n._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin), n._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)), n._virtualOriginMesh.removeChild(n._virtualDragMesh), n._targetPosition.copyFrom(n._virtualDragMesh.absolutePosition), i.parent && a.e.TransformCoordinatesToRef(n._targetPosition, a.a.Invert(i.parent.getWorldMatrix()), n._targetPosition), n._moving || n._startingOrientation.copyFrom(n._virtualDragMesh.rotationQuaternion), (n._moving = !0); } var h; }); var s = new a.b(); this._sceneRenderObserver = t.getScene().onBeforeRenderObservable.add(function () { if (n.dragging && n._moving && i) { if ((we._RemoveAndStorePivotPoint(i), i.position.addInPlace(n._targetPosition.subtract(i.position).scale(n.dragDeltaRatio)), n.rotateDraggedObject)) { s.copyFrom(n._startingOrientation), (s.x = -s.x), (s.y = -s.y), (s.z = -s.z), n._virtualDragMesh.rotationQuaternion.multiplyToRef(s, s), a.b.RotationYawPitchRollToRef(s.toEulerAngles("xyz").y, 0, 0, s), s.multiplyToRef(n._startingOrientation, s); var e = i.parent; (!e || (e.scaling && !e.scaling.isNonUniformWithinEpsilon(0.001))) && (i.setParent(null), a.b.SlerpToRef(i.rotationQuaternion, s, n.dragDeltaRatio, i.rotationQuaternion), i.setParent(e)); } we._RestorePivotPoint(i); } }); }), (e.prototype.detach = function () { this._scene && this._scene.onPointerObservable.remove(this._pointerObserver), this._ownerNode && this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver), this._virtualOriginMesh && this._virtualOriginMesh.dispose(), this._virtualDragMesh && this._virtualDragMesh.dispose(), this.onDragEndObservable.clear(), this.onDragStartObservable.clear(); }), e ); })(), je = n(110), Be = n(23), Ve = (function () { function e(e, t, n) { if ( ((this.targetPosition = a.e.Zero()), (this.poleTargetPosition = a.e.Zero()), (this.poleTargetLocalOffset = a.e.Zero()), (this.poleAngle = 0), (this.slerpAmount = 1), (this._bone1Quat = a.b.Identity()), (this._bone1Mat = a.a.Identity()), (this._bone2Ang = Math.PI), (this._maxAngle = Math.PI), (this._rightHandedSystem = !1), (this._bendAxis = a.e.Right()), (this._slerping = !1), (this._adjustRoll = 0), (this._bone2 = t), (this._bone1 = t.getParent()), this._bone1) ) { this.mesh = e; var i = t.getPosition(); if ( (t.getAbsoluteTransform().determinant() > 0 && ((this._rightHandedSystem = !0), (this._bendAxis.x = 0), (this._bendAxis.y = 0), (this._bendAxis.z = -1), i.x > i.y && i.x > i.z && ((this._adjustRoll = 0.5 * Math.PI), (this._bendAxis.z = 1))), this._bone1.length) ) { var r = this._bone1.getScale(), o = this._bone2.getScale(); (this._bone1Length = this._bone1.length * r.y * this.mesh.scaling.y), (this._bone2Length = this._bone2.length * o.y * this.mesh.scaling.y); } else if (this._bone1.children[0]) { e.computeWorldMatrix(!0); var s = this._bone2.children[0].getAbsolutePosition(e), c = this._bone2.getAbsolutePosition(e), l = this._bone1.getAbsolutePosition(e); (this._bone1Length = a.e.Distance(s, c)), (this._bone2Length = a.e.Distance(c, l)); } this._bone1.getRotationMatrixToRef(Be.b.WORLD, e, this._bone1Mat), (this.maxAngle = Math.PI), n && (n.targetMesh && ((this.targetMesh = n.targetMesh), this.targetMesh.computeWorldMatrix(!0)), n.poleTargetMesh ? ((this.poleTargetMesh = n.poleTargetMesh), this.poleTargetMesh.computeWorldMatrix(!0)) : n.poleTargetBone ? (this.poleTargetBone = n.poleTargetBone) : this._bone1.getParent() && (this.poleTargetBone = this._bone1.getParent()), n.poleTargetLocalOffset && this.poleTargetLocalOffset.copyFrom(n.poleTargetLocalOffset), n.poleAngle && (this.poleAngle = n.poleAngle), n.bendAxis && this._bendAxis.copyFrom(n.bendAxis), n.maxAngle && (this.maxAngle = n.maxAngle), n.slerpAmount && (this.slerpAmount = n.slerpAmount)); } } return ( Object.defineProperty(e.prototype, "maxAngle", { get: function () { return this._maxAngle; }, set: function (e) { this._setMaxAngle(e); }, enumerable: !0, configurable: !0, }), (e.prototype._setMaxAngle = function (e) { e < 0 && (e = 0), (e > Math.PI || null == e) && (e = Math.PI), (this._maxAngle = e); var t = this._bone1Length, n = this._bone2Length; this._maxReach = Math.sqrt(t * t + n * n - 2 * t * n * Math.cos(e)); }), (e.prototype.update = function () { var t = this._bone1; if (t) { var n = this.targetPosition, i = this.poleTargetPosition, r = e._tmpMats[0], o = e._tmpMats[1]; this.targetMesh && n.copyFrom(this.targetMesh.getAbsolutePosition()), this.poleTargetBone ? this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset, this.mesh, i) : this.poleTargetMesh && a.e.TransformCoordinatesToRef(this.poleTargetLocalOffset, this.poleTargetMesh.getWorldMatrix(), i); var s = e._tmpVecs[0], c = e._tmpVecs[1], l = e._tmpVecs[2], u = e._tmpVecs[3], h = e._tmpVecs[4], d = e._tmpQuat; t.getAbsolutePositionToRef(this.mesh, s), i.subtractToRef(s, h), 0 == h.x && 0 == h.y && 0 == h.z ? (h.y = 1) : h.normalize(), n.subtractToRef(s, u), u.normalize(), a.e.CrossToRef(u, h, c), c.normalize(), a.e.CrossToRef(u, c, l), l.normalize(), a.a.FromXYZAxesToRef(l, u, c, r); var p = this._bone1Length, f = this._bone2Length, m = a.e.Distance(s, n); this._maxReach > 0 && (m = Math.min(this._maxReach, m)); var g = (f * f + m * m - p * p) / (2 * f * m), b = (m * m + p * p - f * f) / (2 * m * p); g > 1 && (g = 1), b > 1 && (b = 1), g < -1 && (g = -1), b < -1 && (b = -1); var _ = Math.acos(g), v = Math.acos(b), y = -_ - v; if (this._rightHandedSystem) a.a.RotationYawPitchRollToRef(0, 0, this._adjustRoll, o), o.multiplyToRef(r, r), a.a.RotationAxisToRef(this._bendAxis, v, o), o.multiplyToRef(r, r); else { var C = e._tmpVecs[5]; C.copyFrom(this._bendAxis), (C.x *= -1), a.a.RotationAxisToRef(C, -v, o), o.multiplyToRef(r, r); } this.poleAngle && (a.a.RotationAxisToRef(u, this.poleAngle, o), r.multiplyToRef(o, r)), this._bone1 && (this.slerpAmount < 1 ? (this._slerping || a.b.FromRotationMatrixToRef(this._bone1Mat, this._bone1Quat), a.b.FromRotationMatrixToRef(r, d), a.b.SlerpToRef(this._bone1Quat, d, this.slerpAmount, this._bone1Quat), (y = this._bone2Ang * (1 - this.slerpAmount) + y * this.slerpAmount), this._bone1.setRotationQuaternion(this._bone1Quat, Be.b.WORLD, this.mesh), (this._slerping = !0)) : (this._bone1.setRotationMatrix(r, Be.b.WORLD, this.mesh), this._bone1Mat.copyFrom(r), (this._slerping = !1))), this._bone2.setAxisAngle(this._bendAxis, y, Be.b.LOCAL), (this._bone2Ang = y); } }), (e._tmpVecs = [a.e.Zero(), a.e.Zero(), a.e.Zero(), a.e.Zero(), a.e.Zero(), a.e.Zero()]), (e._tmpQuat = a.b.Identity()), (e._tmpMats = [a.a.Identity(), a.a.Identity()]), e ); })(), Ge = (function () { function e(e, t, n, i) { if ( ((this.upAxis = a.e.Up()), (this.upAxisSpace = Be.b.LOCAL), (this.adjustYaw = 0), (this.adjustPitch = 0), (this.adjustRoll = 0), (this.slerpAmount = 1), (this._boneQuat = a.b.Identity()), (this._slerping = !1), (this._firstFrameSkipped = !1), (this._fowardAxis = a.e.Forward()), (this.mesh = e), (this.bone = t), (this.target = n), i && (i.adjustYaw && (this.adjustYaw = i.adjustYaw), i.adjustPitch && (this.adjustPitch = i.adjustPitch), i.adjustRoll && (this.adjustRoll = i.adjustRoll), null != i.maxYaw ? (this.maxYaw = i.maxYaw) : (this.maxYaw = Math.PI), null != i.minYaw ? (this.minYaw = i.minYaw) : (this.minYaw = -Math.PI), null != i.maxPitch ? (this.maxPitch = i.maxPitch) : (this.maxPitch = Math.PI), null != i.minPitch ? (this.minPitch = i.minPitch) : (this.minPitch = -Math.PI), null != i.slerpAmount && (this.slerpAmount = i.slerpAmount), null != i.upAxis && (this.upAxis = i.upAxis), null != i.upAxisSpace && (this.upAxisSpace = i.upAxisSpace), null != i.yawAxis || null != i.pitchAxis)) ) { var r = Be.a.Y, o = Be.a.X; null != i.yawAxis && (r = i.yawAxis.clone()).normalize(), null != i.pitchAxis && (o = i.pitchAxis.clone()).normalize(); var s = a.e.Cross(o, r); (this._transformYawPitch = a.a.Identity()), a.a.FromXYZAxesToRef(o, r, s, this._transformYawPitch), (this._transformYawPitchInv = this._transformYawPitch.clone()), this._transformYawPitch.invert(); } t.getParent() || this.upAxisSpace != Be.b.BONE || (this.upAxisSpace = Be.b.LOCAL); } return ( Object.defineProperty(e.prototype, "minYaw", { get: function () { return this._minYaw; }, set: function (e) { (this._minYaw = e), (this._minYawSin = Math.sin(e)), (this._minYawCos = Math.cos(e)), null != this._maxYaw && ((this._midYawConstraint = 0.5 * this._getAngleDiff(this._minYaw, this._maxYaw) + this._minYaw), (this._yawRange = this._maxYaw - this._minYaw)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "maxYaw", { get: function () { return this._maxYaw; }, set: function (e) { (this._maxYaw = e), (this._maxYawSin = Math.sin(e)), (this._maxYawCos = Math.cos(e)), null != this._minYaw && ((this._midYawConstraint = 0.5 * this._getAngleDiff(this._minYaw, this._maxYaw) + this._minYaw), (this._yawRange = this._maxYaw - this._minYaw)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "minPitch", { get: function () { return this._minPitch; }, set: function (e) { (this._minPitch = e), (this._minPitchTan = Math.tan(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "maxPitch", { get: function () { return this._maxPitch; }, set: function (e) { (this._maxPitch = e), (this._maxPitchTan = Math.tan(e)); }, enumerable: !0, configurable: !0, }), (e.prototype.update = function () { if (this.slerpAmount < 1 && !this._firstFrameSkipped) this._firstFrameSkipped = !0; else { var t = this.bone, n = e._tmpVecs[0]; t.getAbsolutePositionToRef(this.mesh, n); var i = this.target, r = e._tmpMats[0], o = e._tmpMats[1], s = this.mesh, c = t.getParent(), l = e._tmpVecs[1]; l.copyFrom(this.upAxis), this.upAxisSpace == Be.b.BONE && c ? (this._transformYawPitch && a.e.TransformCoordinatesToRef(l, this._transformYawPitchInv, l), c.getDirectionToRef(l, this.mesh, l)) : this.upAxisSpace == Be.b.LOCAL && (s.getDirectionToRef(l, l), (1 == s.scaling.x && 1 == s.scaling.y && 1 == s.scaling.z) || l.normalize()); var u = !1, h = !1; if (((this._maxYaw == Math.PI && this._minYaw == -Math.PI) || (u = !0), (this._maxPitch == Math.PI && this._minPitch == -Math.PI) || (h = !0), u || h)) { var d = e._tmpMats[2], p = e._tmpMats[3]; if (this.upAxisSpace == Be.b.BONE && 1 == l.y && c) c.getRotationMatrixToRef(Be.b.WORLD, this.mesh, d); else if (this.upAxisSpace != Be.b.LOCAL || 1 != l.y || c) { (m = e._tmpVecs[2]).copyFrom(this._fowardAxis), this._transformYawPitch && a.e.TransformCoordinatesToRef(m, this._transformYawPitchInv, m), c ? c.getDirectionToRef(m, this.mesh, m) : s.getDirectionToRef(m, m); var f = a.e.Cross(l, m); f.normalize(); var m = a.e.Cross(f, l); a.a.FromXYZAxesToRef(f, l, m, d); } else d.copyFrom(s.getWorldMatrix()); d.invertToRef(p); var g = null; if (h) { var b = e._tmpVecs[3]; i.subtractToRef(n, b), a.e.TransformCoordinatesToRef(b, p, b), (g = Math.sqrt(b.x * b.x + b.z * b.z)); var _ = Math.atan2(b.y, g), v = _; _ > this._maxPitch ? ((b.y = this._maxPitchTan * g), (v = this._maxPitch)) : _ < this._minPitch && ((b.y = this._minPitchTan * g), (v = this._minPitch)), _ != v && (a.e.TransformCoordinatesToRef(b, d, b), b.addInPlace(n), (i = b)); } if (u) { b = e._tmpVecs[4]; i.subtractToRef(n, b), a.e.TransformCoordinatesToRef(b, p, b); var y = Math.atan2(b.x, b.z), C = y; if ( ((y > this._maxYaw || y < this._minYaw) && (null == g && (g = Math.sqrt(b.x * b.x + b.z * b.z)), this._yawRange > Math.PI ? this._isAngleBetween(y, this._maxYaw, this._midYawConstraint) ? ((b.z = this._maxYawCos * g), (b.x = this._maxYawSin * g), (C = this._maxYaw)) : this._isAngleBetween(y, this._midYawConstraint, this._minYaw) && ((b.z = this._minYawCos * g), (b.x = this._minYawSin * g), (C = this._minYaw)) : y > this._maxYaw ? ((b.z = this._maxYawCos * g), (b.x = this._maxYawSin * g), (C = this._maxYaw)) : y < this._minYaw && ((b.z = this._minYawCos * g), (b.x = this._minYawSin * g), (C = this._minYaw))), this._slerping && this._yawRange > Math.PI) ) { var P = e._tmpVecs[8]; P.copyFrom(Be.a.Z), this._transformYawPitch && a.e.TransformCoordinatesToRef(P, this._transformYawPitchInv, P); var x = e._tmpMats[4]; this._boneQuat.toRotationMatrix(x), this.mesh.getWorldMatrix().multiplyToRef(x, x), a.e.TransformCoordinatesToRef(P, x, P), a.e.TransformCoordinatesToRef(P, p, P); var T = Math.atan2(P.x, P.z); if (this._getAngleBetween(T, y) > this._getAngleBetween(T, this._midYawConstraint)) { null == g && (g = Math.sqrt(b.x * b.x + b.z * b.z)); var S = this._getAngleBetween(T, this._maxYaw); this._getAngleBetween(T, this._minYaw) < S ? ((C = T + 0.75 * Math.PI), (b.z = Math.cos(C) * g), (b.x = Math.sin(C) * g)) : ((C = T - 0.75 * Math.PI), (b.z = Math.cos(C) * g), (b.x = Math.sin(C) * g)); } } y != C && (a.e.TransformCoordinatesToRef(b, d, b), b.addInPlace(n), (i = b)); } } var O = e._tmpVecs[5], E = e._tmpVecs[6], M = e._tmpVecs[7], A = e._tmpQuat; i.subtractToRef(n, O), O.normalize(), a.e.CrossToRef(l, O, E), E.normalize(), a.e.CrossToRef(O, E, M), M.normalize(), a.a.FromXYZAxesToRef(E, M, O, r), (0 === E.x && 0 === E.y && 0 === E.z) || (0 === M.x && 0 === M.y && 0 === M.z) || (0 === O.x && 0 === O.y && 0 === O.z) || ((this.adjustYaw || this.adjustPitch || this.adjustRoll) && (a.a.RotationYawPitchRollToRef(this.adjustYaw, this.adjustPitch, this.adjustRoll, o), o.multiplyToRef(r, r)), this.slerpAmount < 1 ? (this._slerping || this.bone.getRotationQuaternionToRef(Be.b.WORLD, this.mesh, this._boneQuat), this._transformYawPitch && this._transformYawPitch.multiplyToRef(r, r), a.b.FromRotationMatrixToRef(r, A), a.b.SlerpToRef(this._boneQuat, A, this.slerpAmount, this._boneQuat), this.bone.setRotationQuaternion(this._boneQuat, Be.b.WORLD, this.mesh), (this._slerping = !0)) : (this._transformYawPitch && this._transformYawPitch.multiplyToRef(r, r), this.bone.setRotationMatrix(r, Be.b.WORLD, this.mesh), (this._slerping = !1))); } }), (e.prototype._getAngleDiff = function (e, t) { var n = t - e; return (n %= 2 * Math.PI) > Math.PI ? (n -= 2 * Math.PI) : n < -Math.PI && (n += 2 * Math.PI), n; }), (e.prototype._getAngleBetween = function (e, t) { var n = 0; return (n = (e = (e %= 2 * Math.PI) < 0 ? e + 2 * Math.PI : e) < (t = (t %= 2 * Math.PI) < 0 ? t + 2 * Math.PI : t) ? t - e : e - t) > Math.PI && (n = 2 * Math.PI - n), n; }), (e.prototype._isAngleBetween = function (e, t, n) { if (((e = (e %= 2 * Math.PI) < 0 ? e + 2 * Math.PI : e), (t = (t %= 2 * Math.PI) < 0 ? t + 2 * Math.PI : t) < (n = (n %= 2 * Math.PI) < 0 ? n + 2 * Math.PI : n))) { if (e > t && e < n) return !0; } else if (e > n && e < t) return !0; return !1; }), (e._tmpVecs = Me.a.BuildArray(10, a.e.Zero)), (e._tmpQuat = a.b.Identity()), (e._tmpMats = Me.a.BuildArray(5, a.a.Identity)), e ); })(), Ue = n(129), He = n(3), We = n(42), Xe = function (e, t) { (this.x = e), (this.y = t); }, Ye = (function () { function e(t, n, i, r, o, a, s) { void 0 === r && (r = 0), void 0 === o && (o = 1), void 0 === a && (a = 2), void 0 === s && (s = 3), (this.id = t), (this.index = n), (this.browserGamepad = i), (this._leftStick = { x: 0, y: 0 }), (this._rightStick = { x: 0, y: 0 }), (this._isConnected = !0), (this._invertLeftStickY = !1), (this.type = e.GAMEPAD), (this._leftStickAxisX = r), (this._leftStickAxisY = o), (this._rightStickAxisX = a), (this._rightStickAxisY = s), this.browserGamepad.axes.length >= 2 && (this._leftStick = { x: this.browserGamepad.axes[this._leftStickAxisX], y: this.browserGamepad.axes[this._leftStickAxisY] }), this.browserGamepad.axes.length >= 4 && (this._rightStick = { x: this.browserGamepad.axes[this._rightStickAxisX], y: this.browserGamepad.axes[this._rightStickAxisY] }); } return ( Object.defineProperty(e.prototype, "isConnected", { get: function () { return this._isConnected; }, enumerable: !0, configurable: !0, }), (e.prototype.onleftstickchanged = function (e) { this._onleftstickchanged = e; }), (e.prototype.onrightstickchanged = function (e) { this._onrightstickchanged = e; }), Object.defineProperty(e.prototype, "leftStick", { get: function () { return this._leftStick; }, set: function (e) { !this._onleftstickchanged || (this._leftStick.x === e.x && this._leftStick.y === e.y) || this._onleftstickchanged(e), (this._leftStick = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rightStick", { get: function () { return this._rightStick; }, set: function (e) { !this._onrightstickchanged || (this._rightStick.x === e.x && this._rightStick.y === e.y) || this._onrightstickchanged(e), (this._rightStick = e); }, enumerable: !0, configurable: !0, }), (e.prototype.update = function () { this._leftStick && ((this.leftStick = { x: this.browserGamepad.axes[this._leftStickAxisX], y: this.browserGamepad.axes[this._leftStickAxisY] }), this._invertLeftStickY && (this.leftStick.y *= -1)), this._rightStick && (this.rightStick = { x: this.browserGamepad.axes[this._rightStickAxisX], y: this.browserGamepad.axes[this._rightStickAxisY] }); }), (e.prototype.dispose = function () {}), (e.GAMEPAD = 0), (e.GENERIC = 1), (e.XBOX = 2), (e.POSE_ENABLED = 3), (e.DUALSHOCK = 4), e ); })(), Ke = (function (e) { function t(t, n, i) { var r = e.call(this, t, n, i) || this; return (r.onButtonDownObservable = new o.c()), (r.onButtonUpObservable = new o.c()), (r.type = Ye.GENERIC), (r._buttons = new Array(i.buttons.length)), r; } return ( Object(h.d)(t, e), (t.prototype.onbuttondown = function (e) { this._onbuttondown = e; }), (t.prototype.onbuttonup = function (e) { this._onbuttonup = e; }), (t.prototype._setButtonValue = function (e, t, n) { return ( e !== t && (1 === e && (this._onbuttondown && this._onbuttondown(n), this.onButtonDownObservable.notifyObservers(n)), 0 === e && (this._onbuttonup && this._onbuttonup(n), this.onButtonUpObservable.notifyObservers(n))), e ); }), (t.prototype.update = function () { e.prototype.update.call(this); for (var t = 0; t < this._buttons.length; t++) this._buttons[t] = this._setButtonValue(this.browserGamepad.buttons[t].value, this._buttons[t], t); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(); }), t ); })(Ye), Ze = (function () { function e() { (this.gamepadRotationSensibility = 80), (this.gamepadMoveSensibility = 40), (this._yAxisScale = 1); } return ( Object.defineProperty(e.prototype, "invertYAxis", { get: function () { return 1 !== this._yAxisScale; }, set: function (e) { this._yAxisScale = e ? -1 : 1; }, enumerable: !0, configurable: !0, }), (e.prototype.attachControl = function (e, t) { var n = this, i = this.camera.getScene().gamepadManager; (this._onGamepadConnectedObserver = i.onGamepadConnectedObservable.add(function (e) { e.type !== Ye.POSE_ENABLED && ((n.gamepad && e.type !== Ye.XBOX) || (n.gamepad = e)); })), (this._onGamepadDisconnectedObserver = i.onGamepadDisconnectedObservable.add(function (e) { n.gamepad === e && (n.gamepad = null); })), (this.gamepad = i.getGamepadByType(Ye.XBOX)); }), (e.prototype.detachControl = function (e) { this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver), this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver), (this.gamepad = null); }), (e.prototype.checkInputs = function () { if (this.gamepad) { var e = this.camera, t = this.gamepad.rightStick; if (t) { if (0 != t.x) { var n = t.x / this.gamepadRotationSensibility; 0 != n && Math.abs(n) > 0.005 && (e.inertialAlphaOffset += n); } if (0 != t.y) { var i = (t.y / this.gamepadRotationSensibility) * this._yAxisScale; 0 != i && Math.abs(i) > 0.005 && (e.inertialBetaOffset += i); } } var r = this.gamepad.leftStick; if (r && 0 != r.y) { var o = r.y / this.gamepadMoveSensibility; 0 != o && Math.abs(o) > 0.005 && (this.camera.inertialRadiusOffset -= o); } } }), (e.prototype.getClassName = function () { return "ArcRotateCameraGamepadInput"; }), (e.prototype.getSimpleName = function () { return "gamepad"; }), Object(h.c)([Object(He.c)()], e.prototype, "gamepadRotationSensibility", void 0), Object(h.c)([Object(He.c)()], e.prototype, "gamepadMoveSensibility", void 0), e ); })(); We.a.ArcRotateCameraGamepadInput = Ze; var qe = n(89), Qe = (function () { function e() { (this.keysUp = [38]), (this.keysDown = [40]), (this.keysLeft = [37]), (this.keysRight = [39]), (this.keysReset = [220]), (this.panningSensibility = 50), (this.zoomingSensibility = 25), (this.useAltToZoom = !0), (this.angularSpeed = 0.01), (this._keys = new Array()); } return ( (e.prototype.attachControl = function (e, t) { var n = this; this._onCanvasBlurObserver || ((this._scene = this.camera.getScene()), (this._engine = this._scene.getEngine()), (this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () { n._keys = []; })), (this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) { var i, r = e.event; r.metaKey || (e.type === qe.a.KEYDOWN ? ((n._ctrlPressed = r.ctrlKey), (n._altPressed = r.altKey), (-1 !== n.keysUp.indexOf(r.keyCode) || -1 !== n.keysDown.indexOf(r.keyCode) || -1 !== n.keysLeft.indexOf(r.keyCode) || -1 !== n.keysRight.indexOf(r.keyCode) || -1 !== n.keysReset.indexOf(r.keyCode)) && (-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), r.preventDefault && (t || r.preventDefault()))) : (-1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode) && -1 === n.keysReset.indexOf(r.keyCode)) || ((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), r.preventDefault && (t || r.preventDefault()))); }))); }), (e.prototype.detachControl = function (e) { this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), (this._onKeyboardObserver = null), (this._onCanvasBlurObserver = null)), (this._keys = []); }), (e.prototype.checkInputs = function () { if (this._onKeyboardObserver) for (var e = this.camera, t = 0; t < this._keys.length; t++) { var n = this._keys[t]; -1 !== this.keysLeft.indexOf(n) ? this._ctrlPressed && this.camera._useCtrlForPanning ? (e.inertialPanningX -= 1 / this.panningSensibility) : (e.inertialAlphaOffset -= this.angularSpeed) : -1 !== this.keysUp.indexOf(n) ? this._ctrlPressed && this.camera._useCtrlForPanning ? (e.inertialPanningY += 1 / this.panningSensibility) : this._altPressed && this.useAltToZoom ? (e.inertialRadiusOffset += 1 / this.zoomingSensibility) : (e.inertialBetaOffset -= this.angularSpeed) : -1 !== this.keysRight.indexOf(n) ? this._ctrlPressed && this.camera._useCtrlForPanning ? (e.inertialPanningX += 1 / this.panningSensibility) : (e.inertialAlphaOffset += this.angularSpeed) : -1 !== this.keysDown.indexOf(n) ? this._ctrlPressed && this.camera._useCtrlForPanning ? (e.inertialPanningY -= 1 / this.panningSensibility) : this._altPressed && this.useAltToZoom ? (e.inertialRadiusOffset -= 1 / this.zoomingSensibility) : (e.inertialBetaOffset += this.angularSpeed) : -1 !== this.keysReset.indexOf(n) && e.useInputToRestoreState && e.restoreState(); } }), (e.prototype.getClassName = function () { return "ArcRotateCameraKeyboardMoveInput"; }), (e.prototype.getSimpleName = function () { return "keyboard"; }), Object(h.c)([Object(He.c)()], e.prototype, "keysUp", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysDown", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysLeft", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRight", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysReset", void 0), Object(h.c)([Object(He.c)()], e.prototype, "panningSensibility", void 0), Object(h.c)([Object(He.c)()], e.prototype, "zoomingSensibility", void 0), Object(h.c)([Object(He.c)()], e.prototype, "useAltToZoom", void 0), Object(h.c)([Object(He.c)()], e.prototype, "angularSpeed", void 0), e ); })(); We.a.ArcRotateCameraKeyboardMoveInput = Qe; var Je = (function () { function e() { (this.wheelPrecision = 3), (this.wheelDeltaPercentage = 0); } return ( (e.prototype.computeDeltaFromMouseWheelLegacyEvent = function (e, t) { var n = 0.01 * e * this.wheelDeltaPercentage * t; return e > 0 ? n / (1 + this.wheelDeltaPercentage) : n * (1 + this.wheelDeltaPercentage); }), (e.prototype.attachControl = function (e, t) { var n = this; (this._wheel = function (e, i) { if (e.type === ye.a.POINTERWHEEL) { var r = e.event, o = 0, a = r, s = 0; if (((s = a.wheelDelta ? a.wheelDelta : 60 * -(r.deltaY || r.detail)), n.wheelDeltaPercentage)) { if ((o = n.computeDeltaFromMouseWheelLegacyEvent(s, n.camera.radius)) > 0) { for (var c = n.camera.radius, l = n.camera.inertialRadiusOffset + o, u = 0; u < 20 && Math.abs(l) > 0.001; u++) (c -= l), (l *= n.camera.inertia); (c = z.a.Clamp(c, 0, Number.MAX_VALUE)), (o = n.computeDeltaFromMouseWheelLegacyEvent(s, c)); } } else o = s / (40 * n.wheelPrecision); o && (n.camera.inertialRadiusOffset += o), r.preventDefault && (t || r.preventDefault()); } }), (this._observer = this.camera.getScene().onPointerObservable.add(this._wheel, ye.a.POINTERWHEEL)); }), (e.prototype.detachControl = function (e) { this._observer && e && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null), (this._wheel = null)); }), (e.prototype.getClassName = function () { return "ArcRotateCameraMouseWheelInput"; }), (e.prototype.getSimpleName = function () { return "mousewheel"; }), Object(h.c)([Object(He.c)()], e.prototype, "wheelPrecision", void 0), Object(h.c)([Object(He.c)()], e.prototype, "wheelDeltaPercentage", void 0), e ); })(); We.a.ArcRotateCameraMouseWheelInput = Je; var $e = n(12), et = (function () { function e() { this.buttons = [0, 1, 2]; } return ( (e.prototype.attachControl = function (e, t) { var n = this, i = this.camera.getEngine(), r = 0, o = null; (this.pointA = null), (this.pointB = null), (this._altKey = !1), (this._ctrlKey = !1), (this._metaKey = !1), (this._shiftKey = !1), (this._buttonsPressed = 0), (this._pointerInput = function (a, s) { var c = a.event, l = "touch" === c.pointerType; if (!i.isInVRExclusivePointerMode && (a.type === ye.a.POINTERMOVE || -1 !== n.buttons.indexOf(c.button))) { var u = c.srcElement || c.target; if (((n._altKey = c.altKey), (n._ctrlKey = c.ctrlKey), (n._metaKey = c.metaKey), (n._shiftKey = c.shiftKey), (n._buttonsPressed = c.buttons), i.isPointerLock)) { var h = c.movementX || c.mozMovementX || c.webkitMovementX || c.msMovementX || 0, d = c.movementY || c.mozMovementY || c.webkitMovementY || c.msMovementY || 0; n.onTouch(null, h, d), (n.pointA = null), (n.pointB = null); } else if (a.type === ye.a.POINTERDOWN && u) { try { u.setPointerCapture(c.pointerId); } catch (e) {} null === n.pointA ? (n.pointA = { x: c.clientX, y: c.clientY, pointerId: c.pointerId, type: c.pointerType }) : null === n.pointB && (n.pointB = { x: c.clientX, y: c.clientY, pointerId: c.pointerId, type: c.pointerType }), n.onButtonDown(c), t || (c.preventDefault(), e.focus()); } else if (a.type === ye.a.POINTERDOUBLETAP) n.onDoubleTap(c.pointerType); else if (a.type === ye.a.POINTERUP && u) { try { u.releasePointerCapture(c.pointerId); } catch (e) {} l || (n.pointB = null), i._badOS ? (n.pointA = n.pointB = null) : n.pointB && n.pointA && n.pointA.pointerId == c.pointerId ? ((n.pointA = n.pointB), (n.pointB = null)) : n.pointA && n.pointB && n.pointB.pointerId == c.pointerId ? (n.pointB = null) : (n.pointA = n.pointB = null), (0 !== r || o) && (n.onMultiTouch(n.pointA, n.pointB, r, 0, o, null), (r = 0), (o = null)), n.onButtonUp(c), t || c.preventDefault(); } else if (a.type === ye.a.POINTERMOVE) if ((t || c.preventDefault(), n.pointA && null === n.pointB)) { (h = c.clientX - n.pointA.x), (d = c.clientY - n.pointA.y); n.onTouch(n.pointA, h, d), (n.pointA.x = c.clientX), (n.pointA.y = c.clientY); } else if (n.pointA && n.pointB) { var p = n.pointA.pointerId === c.pointerId ? n.pointA : n.pointB; (p.x = c.clientX), (p.y = c.clientY); var f = n.pointA.x - n.pointB.x, m = n.pointA.y - n.pointB.y, g = f * f + m * m, b = { x: (n.pointA.x + n.pointB.x) / 2, y: (n.pointA.y + n.pointB.y) / 2, pointerId: c.pointerId, type: a.type }; n.onMultiTouch(n.pointA, n.pointB, r, g, o, b), (o = b), (r = g); } } }), (this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, ye.a.POINTERDOWN | ye.a.POINTERUP | ye.a.POINTERMOVE)), (this._onLostFocus = function () { (n.pointA = n.pointB = null), (r = 0), (o = null), n.onLostFocus(); }), e.addEventListener("contextmenu", this.onContextMenu.bind(this), !1); var a = this.camera.getScene().getEngine().getHostWindow(); a && $e.b.RegisterTopRootEvents(a, [{ name: "blur", handler: this._onLostFocus }]); }), (e.prototype.detachControl = function (e) { if (this._onLostFocus) { var t = this.camera.getScene().getEngine().getHostWindow(); t && $e.b.UnregisterTopRootEvents(t, [{ name: "blur", handler: this._onLostFocus }]); } e && this._observer && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null), this.onContextMenu && e.removeEventListener("contextmenu", this.onContextMenu), (this._onLostFocus = null)), (this._altKey = !1), (this._ctrlKey = !1), (this._metaKey = !1), (this._shiftKey = !1), (this._buttonsPressed = 0); }), (e.prototype.getClassName = function () { return "BaseCameraPointersInput"; }), (e.prototype.getSimpleName = function () { return "pointers"; }), (e.prototype.onDoubleTap = function (e) {}), (e.prototype.onTouch = function (e, t, n) {}), (e.prototype.onMultiTouch = function (e, t, n, i, r, o) {}), (e.prototype.onContextMenu = function (e) { e.preventDefault(); }), (e.prototype.onButtonDown = function (e) {}), (e.prototype.onButtonUp = function (e) {}), (e.prototype.onLostFocus = function () {}), Object(h.c)([Object(He.c)()], e.prototype, "buttons", void 0), e ); })(), tt = (function (e) { function t() { var t = (null !== e && e.apply(this, arguments)) || this; return ( (t.buttons = [0, 1, 2]), (t.angularSensibilityX = 1e3), (t.angularSensibilityY = 1e3), (t.pinchPrecision = 12), (t.pinchDeltaPercentage = 0), (t.useNaturalPinchZoom = !1), (t.panningSensibility = 1e3), (t.multiTouchPanning = !0), (t.multiTouchPanAndZoom = !0), (t.pinchInwards = !0), (t._isPanClick = !1), (t._twoFingerActivityCount = 0), (t._isPinching = !1), t ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ArcRotateCameraPointersInput"; }), (t.prototype.onTouch = function (e, t, n) { 0 !== this.panningSensibility && ((this._ctrlKey && this.camera._useCtrlForPanning) || this._isPanClick) ? ((this.camera.inertialPanningX += -t / this.panningSensibility), (this.camera.inertialPanningY += n / this.panningSensibility)) : ((this.camera.inertialAlphaOffset -= t / this.angularSensibilityX), (this.camera.inertialBetaOffset -= n / this.angularSensibilityY)); }), (t.prototype.onDoubleTap = function (e) { this.camera.useInputToRestoreState && this.camera.restoreState(); }), (t.prototype.onMultiTouch = function (e, t, n, i, r, o) { if (!((0 === n && null === r) || (0 === i && null === o))) { var a = this.pinchInwards ? 1 : -1; if (this.multiTouchPanAndZoom) { if ( (this.useNaturalPinchZoom ? (this.camera.radius = (this.camera.radius * Math.sqrt(n)) / Math.sqrt(i)) : this.pinchDeltaPercentage ? (this.camera.inertialRadiusOffset += 0.001 * (i - n) * this.camera.radius * this.pinchDeltaPercentage) : (this.camera.inertialRadiusOffset += (i - n) / ((this.pinchPrecision * a * (this.angularSensibilityX + this.angularSensibilityY)) / 2)), 0 !== this.panningSensibility && r && o) ) { var s = o.x - r.x, c = o.y - r.y; (this.camera.inertialPanningX += -s / this.panningSensibility), (this.camera.inertialPanningY += c / this.panningSensibility); } } else { this._twoFingerActivityCount++; var l = Math.sqrt(n), u = Math.sqrt(i); if (this._isPinching || (this._twoFingerActivityCount < 20 && Math.abs(u - l) > this.camera.pinchToPanMaxDistance)) this.pinchDeltaPercentage ? (this.camera.inertialRadiusOffset += 0.001 * (i - n) * this.camera.radius * this.pinchDeltaPercentage) : (this.camera.inertialRadiusOffset += (i - n) / ((this.pinchPrecision * a * (this.angularSensibilityX + this.angularSensibilityY)) / 2)), (this._isPinching = !0); else if (0 !== this.panningSensibility && this.multiTouchPanning && o && r) { (s = o.x - r.x), (c = o.y - r.y); (this.camera.inertialPanningX += -s / this.panningSensibility), (this.camera.inertialPanningY += c / this.panningSensibility); } } } }), (t.prototype.onButtonDown = function (e) { this._isPanClick = e.button === this.camera._panningMouseButton; }), (t.prototype.onButtonUp = function (e) { (this._twoFingerActivityCount = 0), (this._isPinching = !1); }), (t.prototype.onLostFocus = function () { (this._isPanClick = !1), (this._twoFingerActivityCount = 0), (this._isPinching = !1); }), Object(h.c)([Object(He.c)()], t.prototype, "buttons", void 0), Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityX", void 0), Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityY", void 0), Object(h.c)([Object(He.c)()], t.prototype, "pinchPrecision", void 0), Object(h.c)([Object(He.c)()], t.prototype, "pinchDeltaPercentage", void 0), Object(h.c)([Object(He.c)()], t.prototype, "useNaturalPinchZoom", void 0), Object(h.c)([Object(He.c)()], t.prototype, "panningSensibility", void 0), Object(h.c)([Object(He.c)()], t.prototype, "multiTouchPanning", void 0), Object(h.c)([Object(He.c)()], t.prototype, "multiTouchPanAndZoom", void 0), t ); })(et); We.a.ArcRotateCameraPointersInput = tt; var nt = (function (e) { function t(t) { return e.call(this, t) || this; } return ( Object(h.d)(t, e), (t.prototype.addMouseWheel = function () { return this.add(new Je()), this; }), (t.prototype.addPointers = function () { return this.add(new tt()), this; }), (t.prototype.addKeyboard = function () { return this.add(new Qe()), this; }), t ); })(We.b); nt.prototype.addVRDeviceOrientation = function () { return this.add(new it()), this; }; var it = (function () { function e() { (this.alphaCorrection = 1), (this.gammaCorrection = 1), (this._alpha = 0), (this._gamma = 0), (this._dirty = !1), (this._deviceOrientationHandler = this._onOrientationEvent.bind(this)); } return ( (e.prototype.attachControl = function (e, t) { var n = this; this.camera.attachControl(e, t); var i = this.camera.getScene().getEngine().getHostWindow(); i && ("undefined" != typeof DeviceOrientationEvent && "function" == typeof DeviceOrientationEvent.requestPermission ? DeviceOrientationEvent.requestPermission() .then(function (e) { "granted" === e ? i.addEventListener("deviceorientation", n._deviceOrientationHandler) : $e.b.Warn("Permission not granted."); }) .catch(function (e) { $e.b.Error(e); }) : i.addEventListener("deviceorientation", this._deviceOrientationHandler)); }), (e.prototype._onOrientationEvent = function (e) { null !== e.alpha && (this._alpha = (0 | +e.alpha) * this.alphaCorrection), null !== e.gamma && (this._gamma = (0 | +e.gamma) * this.gammaCorrection), (this._dirty = !0); }), (e.prototype.checkInputs = function () { this._dirty && ((this._dirty = !1), this._gamma < 0 && (this._gamma = 180 + this._gamma), (this.camera.alpha = (((-this._alpha / 180) * Math.PI) % Math.PI) * 2), (this.camera.beta = (this._gamma / 180) * Math.PI)); }), (e.prototype.detachControl = function (e) { window.removeEventListener("deviceorientation", this._deviceOrientationHandler); }), (e.prototype.getClassName = function () { return "ArcRotateCameraVRDeviceOrientationInput"; }), (e.prototype.getSimpleName = function () { return "VRDeviceOrientation"; }), e ); })(); We.a.ArcRotateCameraVRDeviceOrientationInput = it; var rt = (function () { function e() { (this.keysForward = [87]), (this.keysBackward = [83]), (this.keysUp = [69]), (this.keysDown = [81]), (this.keysRight = [68]), (this.keysLeft = [65]), (this._keys = new Array()); } return ( (e.prototype.attachControl = function (e, t) { var n = this; this._onCanvasBlurObserver || ((this._scene = this.camera.getScene()), (this._engine = this._scene.getEngine()), (this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () { n._keys = []; })), (this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) { var i, r = e.event; e.type === qe.a.KEYDOWN ? (-1 === n.keysForward.indexOf(r.keyCode) && -1 === n.keysBackward.indexOf(r.keyCode) && -1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode)) || (-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), t || r.preventDefault()) : (-1 === n.keysForward.indexOf(r.keyCode) && -1 === n.keysBackward.indexOf(r.keyCode) && -1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode)) || ((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), t || r.preventDefault()); }))); }), (e.prototype.detachControl = function (e) { this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), (this._onKeyboardObserver = null), (this._onCanvasBlurObserver = null)), (this._keys = []); }), (e.prototype.getClassName = function () { return "FlyCameraKeyboardInput"; }), (e.prototype._onLostFocus = function (e) { this._keys = []; }), (e.prototype.getSimpleName = function () { return "keyboard"; }), (e.prototype.checkInputs = function () { if (this._onKeyboardObserver) for (var e = this.camera, t = 0; t < this._keys.length; t++) { var n = this._keys[t], i = e._computeLocalCameraSpeed(); -1 !== this.keysForward.indexOf(n) ? e._localDirection.copyFromFloats(0, 0, i) : -1 !== this.keysBackward.indexOf(n) ? e._localDirection.copyFromFloats(0, 0, -i) : -1 !== this.keysUp.indexOf(n) ? e._localDirection.copyFromFloats(0, i, 0) : -1 !== this.keysDown.indexOf(n) ? e._localDirection.copyFromFloats(0, -i, 0) : -1 !== this.keysRight.indexOf(n) ? e._localDirection.copyFromFloats(i, 0, 0) : -1 !== this.keysLeft.indexOf(n) && e._localDirection.copyFromFloats(-i, 0, 0), e.getScene().useRightHandedSystem && (e._localDirection.z *= -1), e.getViewMatrix().invertToRef(e._cameraTransformMatrix), a.e.TransformNormalToRef(e._localDirection, e._cameraTransformMatrix, e._transformedDirection), e.cameraDirection.addInPlace(e._transformedDirection); } }), Object(h.c)([Object(He.c)()], e.prototype, "keysForward", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysBackward", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysUp", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysDown", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRight", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysLeft", void 0), e ); })(); We.a.FlyCameraKeyboardInput = rt; var ot = (function () { function e(e) { void 0 === e && (e = !0), (this.buttons = [0, 1, 2]), (this.buttonsYaw = [-1, 0, 1]), (this.buttonsPitch = [-1, 0, 1]), (this.buttonsRoll = [2]), (this.activeButton = -1), (this.angularSensibility = 1e3), (this.previousPosition = null); } return ( (e.prototype.attachControl = function (e, t) { var n = this; (this.element = e), (this.noPreventDefault = t), (this._observer = this.camera.getScene().onPointerObservable.add(function (e, t) { n._pointerInput(e, t); }, ye.a.POINTERDOWN | ye.a.POINTERUP | ye.a.POINTERMOVE)), (this._rollObserver = this.camera.getScene().onBeforeRenderObservable.add(function () { n.camera.rollCorrect && n.camera.restoreRoll(n.camera.rollCorrect); })), (this._mousemoveCallback = function (e) { n._onMouseMove(e); }), e.addEventListener("mousemove", this._mousemoveCallback, !1); }), (e.prototype.detachControl = function (e) { this._observer && e && (this.camera.getScene().onPointerObservable.remove(this._observer), this.camera.getScene().onBeforeRenderObservable.remove(this._rollObserver), this._mousemoveCallback && e.removeEventListener("mousemove", this._mousemoveCallback), (this._observer = null), (this._rollObserver = null), (this.previousPosition = null), (this.noPreventDefault = void 0)); }), (e.prototype.getClassName = function () { return "FlyCameraMouseInput"; }), (e.prototype.getSimpleName = function () { return "mouse"; }), (e.prototype._pointerInput = function (e, t) { var n = e.event, i = this.camera.getEngine(); if (!i.isInVRExclusivePointerMode && (this.touchEnabled || "touch" !== n.pointerType) && (e.type === ye.a.POINTERMOVE || -1 !== this.buttons.indexOf(n.button))) { var r = n.srcElement || n.target; if (e.type === ye.a.POINTERDOWN && r) { try { r.setPointerCapture(n.pointerId); } catch (n) {} (this.previousPosition = { x: n.clientX, y: n.clientY }), (this.activeButton = n.button), this.noPreventDefault || (n.preventDefault(), this.element.focus()); } else if (e.type === ye.a.POINTERUP && r) { try { r.releasePointerCapture(n.pointerId); } catch (n) {} (this.activeButton = -1), (this.previousPosition = null), this.noPreventDefault || n.preventDefault(); } else if (e.type === ye.a.POINTERMOVE) { if (!this.previousPosition || i.isPointerLock) return; var o = n.clientX - this.previousPosition.x, a = n.clientY - this.previousPosition.y; this.rotateCamera(o, a), (this.previousPosition = { x: n.clientX, y: n.clientY }), this.noPreventDefault || n.preventDefault(); } } }), (e.prototype._onMouseMove = function (e) { var t = this.camera.getEngine(); if (t.isPointerLock && !t.isInVRExclusivePointerMode) { var n = e.movementX || e.mozMovementX || e.webkitMovementX || e.msMovementX || 0, i = e.movementY || e.mozMovementY || e.webkitMovementY || e.msMovementY || 0; this.rotateCamera(n, i), (this.previousPosition = null), this.noPreventDefault || e.preventDefault(); } }), (e.prototype.rotateCamera = function (e, t) { var n = this, i = this.camera; this.camera.getScene().useRightHandedSystem && (e *= -1), i.parent && i.parent._getWorldMatrixDeterminant() < 0 && (e *= -1); var r, o = e / this.angularSensibility, s = t / this.angularSensibility, c = a.b.RotationYawPitchRoll(i.rotation.y, i.rotation.x, i.rotation.z); if ( (this.buttonsPitch.some(function (e) { return e === n.activeButton; }) && ((r = a.b.RotationAxis(Be.a.X, s)), c.multiplyInPlace(r)), this.buttonsYaw.some(function (e) { return e === n.activeButton; })) ) { (r = a.b.RotationAxis(Be.a.Y, o)), c.multiplyInPlace(r); var l = i.bankedTurnLimit + i._trackRoll; if (i.bankedTurn && -l < i.rotation.z && i.rotation.z < l) { var u = i.bankedTurnMultiplier * -o; (r = a.b.RotationAxis(Be.a.Z, u)), c.multiplyInPlace(r); } } this.buttonsRoll.some(function (e) { return e === n.activeButton; }) && ((r = a.b.RotationAxis(Be.a.Z, -o)), (i._trackRoll -= o), c.multiplyInPlace(r)), c.toEulerAnglesToRef(i.rotation); }), Object(h.c)([Object(He.c)()], e.prototype, "buttons", void 0), Object(h.c)([Object(He.c)()], e.prototype, "angularSensibility", void 0), e ); })(); We.a.FlyCameraMouseInput = ot; var at = (function () { function e() { (this.keysHeightOffsetIncr = [38]), (this.keysHeightOffsetDecr = [40]), (this.keysHeightOffsetModifierAlt = !1), (this.keysHeightOffsetModifierCtrl = !1), (this.keysHeightOffsetModifierShift = !1), (this.keysRotationOffsetIncr = [37]), (this.keysRotationOffsetDecr = [39]), (this.keysRotationOffsetModifierAlt = !1), (this.keysRotationOffsetModifierCtrl = !1), (this.keysRotationOffsetModifierShift = !1), (this.keysRadiusIncr = [40]), (this.keysRadiusDecr = [38]), (this.keysRadiusModifierAlt = !0), (this.keysRadiusModifierCtrl = !1), (this.keysRadiusModifierShift = !1), (this.heightSensibility = 1), (this.rotationSensibility = 1), (this.radiusSensibility = 1), (this._keys = new Array()); } return ( (e.prototype.attachControl = function (e, t) { var n = this; this._onCanvasBlurObserver || ((this._scene = this.camera.getScene()), (this._engine = this._scene.getEngine()), (this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () { n._keys = []; })), (this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) { var i, r = e.event; r.metaKey || (e.type === qe.a.KEYDOWN ? ((n._ctrlPressed = r.ctrlKey), (n._altPressed = r.altKey), (n._shiftPressed = r.shiftKey), (-1 !== n.keysHeightOffsetIncr.indexOf(r.keyCode) || -1 !== n.keysHeightOffsetDecr.indexOf(r.keyCode) || -1 !== n.keysRotationOffsetIncr.indexOf(r.keyCode) || -1 !== n.keysRotationOffsetDecr.indexOf(r.keyCode) || -1 !== n.keysRadiusIncr.indexOf(r.keyCode) || -1 !== n.keysRadiusDecr.indexOf(r.keyCode)) && (-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), r.preventDefault && (t || r.preventDefault()))) : (-1 === n.keysHeightOffsetIncr.indexOf(r.keyCode) && -1 === n.keysHeightOffsetDecr.indexOf(r.keyCode) && -1 === n.keysRotationOffsetIncr.indexOf(r.keyCode) && -1 === n.keysRotationOffsetDecr.indexOf(r.keyCode) && -1 === n.keysRadiusIncr.indexOf(r.keyCode) && -1 === n.keysRadiusDecr.indexOf(r.keyCode)) || ((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), r.preventDefault && (t || r.preventDefault()))); }))); }), (e.prototype.detachControl = function (e) { this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), (this._onKeyboardObserver = null), (this._onCanvasBlurObserver = null)), (this._keys = []); }), (e.prototype.checkInputs = function () { var e = this; this._onKeyboardObserver && this._keys.forEach(function (t) { -1 !== e.keysHeightOffsetIncr.indexOf(t) && e._modifierHeightOffset() ? (e.camera.heightOffset += e.heightSensibility) : -1 !== e.keysHeightOffsetDecr.indexOf(t) && e._modifierHeightOffset() ? (e.camera.heightOffset -= e.heightSensibility) : -1 !== e.keysRotationOffsetIncr.indexOf(t) && e._modifierRotationOffset() ? ((e.camera.rotationOffset += e.rotationSensibility), (e.camera.rotationOffset %= 360)) : -1 !== e.keysRotationOffsetDecr.indexOf(t) && e._modifierRotationOffset() ? ((e.camera.rotationOffset -= e.rotationSensibility), (e.camera.rotationOffset %= 360)) : -1 !== e.keysRadiusIncr.indexOf(t) && e._modifierRadius() ? (e.camera.radius += e.radiusSensibility) : -1 !== e.keysRadiusDecr.indexOf(t) && e._modifierRadius() && (e.camera.radius -= e.radiusSensibility); }); }), (e.prototype.getClassName = function () { return "FollowCameraKeyboardMoveInput"; }), (e.prototype.getSimpleName = function () { return "keyboard"; }), (e.prototype._modifierHeightOffset = function () { return this.keysHeightOffsetModifierAlt === this._altPressed && this.keysHeightOffsetModifierCtrl === this._ctrlPressed && this.keysHeightOffsetModifierShift === this._shiftPressed; }), (e.prototype._modifierRotationOffset = function () { return this.keysRotationOffsetModifierAlt === this._altPressed && this.keysRotationOffsetModifierCtrl === this._ctrlPressed && this.keysRotationOffsetModifierShift === this._shiftPressed; }), (e.prototype._modifierRadius = function () { return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed; }), Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetIncr", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetDecr", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetModifierAlt", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetModifierCtrl", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysHeightOffsetModifierShift", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetIncr", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetDecr", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetModifierAlt", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetModifierCtrl", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRotationOffsetModifierShift", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusIncr", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusDecr", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusModifierAlt", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusModifierCtrl", void 0), Object(h.c)([Object(He.c)()], e.prototype, "keysRadiusModifierShift", void 0), Object(h.c)([Object(He.c)()], e.prototype, "heightSensibility", void 0), Object(h.c)([Object(He.c)()], e.prototype, "rotationSensibility", void 0), Object(h.c)([Object(He.c)()], e.prototype, "radiusSensibility", void 0), e ); })(); We.a.FollowCameraKeyboardMoveInput = at; var st = (function () { function e() { (this.axisControlRadius = !0), (this.axisControlHeight = !1), (this.axisControlRotation = !1), (this.wheelPrecision = 3), (this.wheelDeltaPercentage = 0); } return ( (e.prototype.attachControl = function (e, t) { var n = this; (this._wheel = function (e, i) { if (e.type === ye.a.POINTERWHEEL) { var r = e.event, o = 0, a = Math.max(-1, Math.min(1, r.deltaY || r.wheelDelta || -r.detail)); n.wheelDeltaPercentage ? n.axisControlRadius ? (o = 0.01 * a * n.wheelDeltaPercentage * n.camera.radius) : n.axisControlHeight ? (o = 0.01 * a * n.wheelDeltaPercentage * n.camera.heightOffset) : n.axisControlRotation && (o = 0.01 * a * n.wheelDeltaPercentage * n.camera.rotationOffset) : (o = a * n.wheelPrecision), o && (n.axisControlRadius ? (n.camera.radius += o) : n.axisControlHeight ? (n.camera.heightOffset -= o) : n.axisControlRotation && (n.camera.rotationOffset -= o)), r.preventDefault && (t || r.preventDefault()); } }), (this._observer = this.camera.getScene().onPointerObservable.add(this._wheel, ye.a.POINTERWHEEL)); }), (e.prototype.detachControl = function (e) { this._observer && e && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null), (this._wheel = null)); }), (e.prototype.getClassName = function () { return "ArcRotateCameraMouseWheelInput"; }), (e.prototype.getSimpleName = function () { return "mousewheel"; }), Object(h.c)([Object(He.c)()], e.prototype, "axisControlRadius", void 0), Object(h.c)([Object(He.c)()], e.prototype, "axisControlHeight", void 0), Object(h.c)([Object(He.c)()], e.prototype, "axisControlRotation", void 0), Object(h.c)([Object(He.c)()], e.prototype, "wheelPrecision", void 0), Object(h.c)([Object(He.c)()], e.prototype, "wheelDeltaPercentage", void 0), e ); })(); We.a.FollowCameraMouseWheelInput = st; var ct = (function (e) { function t() { var t = (null !== e && e.apply(this, arguments)) || this; return ( (t.angularSensibilityX = 1), (t.angularSensibilityY = 1), (t.pinchPrecision = 1e4), (t.pinchDeltaPercentage = 0), (t.axisXControlRadius = !1), (t.axisXControlHeight = !1), (t.axisXControlRotation = !0), (t.axisYControlRadius = !1), (t.axisYControlHeight = !0), (t.axisYControlRotation = !1), (t.axisPinchControlRadius = !0), (t.axisPinchControlHeight = !1), (t.axisPinchControlRotation = !1), (t.warningEnable = !0), (t._warningCounter = 0), t ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "FollowCameraPointersInput"; }), (t.prototype.onTouch = function (e, t, n) { this._warning(), this.axisXControlRotation ? (this.camera.rotationOffset += t / this.angularSensibilityX) : this.axisYControlRotation && (this.camera.rotationOffset += n / this.angularSensibilityX), this.axisXControlHeight ? (this.camera.heightOffset += t / this.angularSensibilityY) : this.axisYControlHeight && (this.camera.heightOffset += n / this.angularSensibilityY), this.axisXControlRadius ? (this.camera.radius -= t / this.angularSensibilityY) : this.axisYControlRadius && (this.camera.radius -= n / this.angularSensibilityY); }), (t.prototype.onMultiTouch = function (e, t, n, i, r, o) { if (!((0 === n && null === r) || (0 === i && null === o))) { var a = (i - n) / ((this.pinchPrecision * (this.angularSensibilityX + this.angularSensibilityY)) / 2); this.pinchDeltaPercentage ? ((a *= 0.01 * this.pinchDeltaPercentage), this.axisPinchControlRotation && (this.camera.rotationOffset += a * this.camera.rotationOffset), this.axisPinchControlHeight && (this.camera.heightOffset += a * this.camera.heightOffset), this.axisPinchControlRadius && (this.camera.radius -= a * this.camera.radius)) : (this.axisPinchControlRotation && (this.camera.rotationOffset += a), this.axisPinchControlHeight && (this.camera.heightOffset += a), this.axisPinchControlRadius && (this.camera.radius -= a)); } }), (t.prototype._warning = function () { if (this.warningEnable && this._warningCounter++ % 100 == 0); }), Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityX", void 0), Object(h.c)([Object(He.c)()], t.prototype, "angularSensibilityY", void 0), Object(h.c)([Object(He.c)()], t.prototype, "pinchPrecision", void 0), Object(h.c)([Object(He.c)()], t.prototype, "pinchDeltaPercentage", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisXControlRadius", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisXControlHeight", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisXControlRotation", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisYControlRadius", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisYControlHeight", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisYControlRotation", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisPinchControlRadius", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisPinchControlHeight", void 0), Object(h.c)([Object(He.c)()], t.prototype, "axisPinchControlRotation", void 0), t ); })(et); We.a.FollowCameraPointersInput = ct; var lt = n(120); lt.a.prototype.addDeviceOrientation = function () { return this._deviceOrientationInput || ((this._deviceOrientationInput = new ut()), this.add(this._deviceOrientationInput)), this; }; var ut = (function () { function e() { var e = this; (this._screenOrientationAngle = 0), (this._screenQuaternion = new a.b()), (this._alpha = 0), (this._beta = 0), (this._gamma = 0), (this._onDeviceOrientationChangedObservable = new o.c()), (this._orientationChanged = function () { (e._screenOrientationAngle = void 0 !== window.orientation ? +window.orientation : window.screen.orientation && window.screen.orientation.angle ? window.screen.orientation.angle : 0), (e._screenOrientationAngle = -$e.b.ToRadians(e._screenOrientationAngle / 2)), e._screenQuaternion.copyFromFloats(0, Math.sin(e._screenOrientationAngle), 0, Math.cos(e._screenOrientationAngle)); }), (this._deviceOrientation = function (t) { (e._alpha = null !== t.alpha ? t.alpha : 0), (e._beta = null !== t.beta ? t.beta : 0), (e._gamma = null !== t.gamma ? t.gamma : 0), null !== t.alpha && e._onDeviceOrientationChangedObservable.notifyObservers(); }), (this._constantTranform = new a.b(-Math.sqrt(0.5), 0, 0, Math.sqrt(0.5))), this._orientationChanged(); } return ( (e.WaitForOrientationChangeAsync = function (e) { return new Promise(function (t, n) { var i = !1, r = function () { window.removeEventListener("deviceorientation", r), (i = !0), t(); }; e && setTimeout(function () { i || (window.removeEventListener("deviceorientation", r), n("WaitForOrientationChangeAsync timed out")); }, e), "undefined" != typeof DeviceOrientationEvent && "function" == typeof DeviceOrientationEvent.requestPermission ? DeviceOrientationEvent.requestPermission() .then(function (e) { "granted" == e ? window.addEventListener("deviceorientation", r) : $e.b.Warn("Permission not granted."); }) .catch(function (e) { $e.b.Error(e); }) : window.addEventListener("deviceorientation", r); }); }), Object.defineProperty(e.prototype, "camera", { get: function () { return this._camera; }, set: function (e) { var t = this; (this._camera = e), null == this._camera || this._camera.rotationQuaternion || (this._camera.rotationQuaternion = new a.b()), this._camera && this._camera.onDisposeObservable.add(function () { t._onDeviceOrientationChangedObservable.clear(); }); }, enumerable: !0, configurable: !0, }), (e.prototype.attachControl = function (e, t) { var n = this, i = this.camera.getScene().getEngine().getHostWindow(); if (i) { var r = function () { i.addEventListener("orientationchange", n._orientationChanged), i.addEventListener("deviceorientation", n._deviceOrientation), n._orientationChanged(); }; "undefined" != typeof DeviceOrientationEvent && "function" == typeof DeviceOrientationEvent.requestPermission ? DeviceOrientationEvent.requestPermission() .then(function (e) { "granted" === e ? r() : $e.b.Warn("Permission not granted."); }) .catch(function (e) { $e.b.Error(e); }) : r(); } }), (e.prototype.detachControl = function (e) { window.removeEventListener("orientationchange", this._orientationChanged), window.removeEventListener("deviceorientation", this._deviceOrientation), (this._alpha = 0); }), (e.prototype.checkInputs = function () { this._alpha && (a.b.RotationYawPitchRollToRef($e.b.ToRadians(this._alpha), $e.b.ToRadians(this._beta), -$e.b.ToRadians(this._gamma), this.camera.rotationQuaternion), this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion), this._camera.rotationQuaternion.multiplyInPlace(this._constantTranform), (this._camera.rotationQuaternion.z *= -1), (this._camera.rotationQuaternion.w *= -1)); }), (e.prototype.getClassName = function () { return "FreeCameraDeviceOrientationInput"; }), (e.prototype.getSimpleName = function () { return "deviceOrientation"; }), e ); })(); We.a.FreeCameraDeviceOrientationInput = ut; var ht = (function () { function e() { (this.gamepadAngularSensibility = 200), (this.gamepadMoveSensibility = 40), (this._yAxisScale = 1), (this._cameraTransform = a.a.Identity()), (this._deltaTransform = a.e.Zero()), (this._vector3 = a.e.Zero()), (this._vector2 = a.d.Zero()); } return ( Object.defineProperty(e.prototype, "invertYAxis", { get: function () { return 1 !== this._yAxisScale; }, set: function (e) { this._yAxisScale = e ? -1 : 1; }, enumerable: !0, configurable: !0, }), (e.prototype.attachControl = function (e, t) { var n = this, i = this.camera.getScene().gamepadManager; (this._onGamepadConnectedObserver = i.onGamepadConnectedObservable.add(function (e) { e.type !== Ye.POSE_ENABLED && ((n.gamepad && e.type !== Ye.XBOX) || (n.gamepad = e)); })), (this._onGamepadDisconnectedObserver = i.onGamepadDisconnectedObservable.add(function (e) { n.gamepad === e && (n.gamepad = null); })), (this.gamepad = i.getGamepadByType(Ye.XBOX)); }), (e.prototype.detachControl = function (e) { this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver), this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver), (this.gamepad = null); }), (e.prototype.checkInputs = function () { if (this.gamepad && this.gamepad.leftStick) { var e = this.camera, t = this.gamepad.leftStick, n = t.x / this.gamepadMoveSensibility, i = t.y / this.gamepadMoveSensibility; (t.x = Math.abs(n) > 0.005 ? 0 + n : 0), (t.y = Math.abs(i) > 0.005 ? 0 + i : 0); var r = this.gamepad.rightStick; if (r) { var o = r.x / this.gamepadAngularSensibility, s = (r.y / this.gamepadAngularSensibility) * this._yAxisScale; (r.x = Math.abs(o) > 0.001 ? 0 + o : 0), (r.y = Math.abs(s) > 0.001 ? 0 + s : 0); } else r = { x: 0, y: 0 }; e.rotationQuaternion ? e.rotationQuaternion.toRotationMatrix(this._cameraTransform) : a.a.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, 0, this._cameraTransform); var c = 50 * e._computeLocalCameraSpeed(); this._vector3.copyFromFloats(t.x * c, 0, -t.y * c), a.e.TransformCoordinatesToRef(this._vector3, this._cameraTransform, this._deltaTransform), e.cameraDirection.addInPlace(this._deltaTransform), this._vector2.copyFromFloats(r.y, r.x), e.cameraRotation.addInPlace(this._vector2); } }), (e.prototype.getClassName = function () { return "FreeCameraGamepadInput"; }), (e.prototype.getSimpleName = function () { return "gamepad"; }), Object(h.c)([Object(He.c)()], e.prototype, "gamepadAngularSensibility", void 0), Object(h.c)([Object(He.c)()], e.prototype, "gamepadMoveSensibility", void 0), e ); })(); We.a.FreeCameraGamepadInput = ht; var dt, pt = n(194), ft = n(195), mt = n(196), gt = n(151); !(function (e) { (e[(e.X = 0)] = "X"), (e[(e.Y = 1)] = "Y"), (e[(e.Z = 2)] = "Z"); })(dt || (dt = {})); var bt = (function () { function e(t) { var n = this; if ( ((this._leftJoystick = !!t), e._globalJoystickIndex++, (this._axisTargetedByLeftAndRight = dt.X), (this._axisTargetedByUpAndDown = dt.Y), (this.reverseLeftRight = !1), (this.reverseUpDown = !1), (this._touches = new gt.a()), (this.deltaPosition = a.e.Zero()), (this._joystickSensibility = 25), (this._inversedSensibility = 1 / (this._joystickSensibility / 1e3)), (this._onResize = function (t) { (e.vjCanvasWidth = window.innerWidth), (e.vjCanvasHeight = window.innerHeight), e.Canvas && ((e.Canvas.width = e.vjCanvasWidth), (e.Canvas.height = e.vjCanvasHeight)), (e.halfWidth = e.vjCanvasWidth / 2); }), !e.Canvas) ) { window.addEventListener("resize", this._onResize, !1), (e.Canvas = document.createElement("canvas")), (e.vjCanvasWidth = window.innerWidth), (e.vjCanvasHeight = window.innerHeight), (e.Canvas.width = window.innerWidth), (e.Canvas.height = window.innerHeight), (e.Canvas.style.width = "100%"), (e.Canvas.style.height = "100%"), (e.Canvas.style.position = "absolute"), (e.Canvas.style.backgroundColor = "transparent"), (e.Canvas.style.top = "0px"), (e.Canvas.style.left = "0px"), (e.Canvas.style.zIndex = "5"), (e.Canvas.style.msTouchAction = "none"), e.Canvas.setAttribute("touch-action", "none"); var i = e.Canvas.getContext("2d"); if (!i) throw new Error("Unable to create canvas for virtual joystick"); (e.vjCanvasContext = i), (e.vjCanvasContext.strokeStyle = "#ffffff"), (e.vjCanvasContext.lineWidth = 2), document.body.appendChild(e.Canvas); } (e.halfWidth = e.Canvas.width / 2), (this.pressed = !1), (this._joystickColor = "cyan"), (this._joystickPointerID = -1), (this._joystickPointerPos = new a.d(0, 0)), (this._joystickPreviousPointerPos = new a.d(0, 0)), (this._joystickPointerStartPos = new a.d(0, 0)), (this._deltaJoystickVector = new a.d(0, 0)), (this._onPointerDownHandlerRef = function (e) { n._onPointerDown(e); }), (this._onPointerMoveHandlerRef = function (e) { n._onPointerMove(e); }), (this._onPointerUpHandlerRef = function (e) { n._onPointerUp(e); }), e.Canvas.addEventListener("pointerdown", this._onPointerDownHandlerRef, !1), e.Canvas.addEventListener("pointermove", this._onPointerMoveHandlerRef, !1), e.Canvas.addEventListener("pointerup", this._onPointerUpHandlerRef, !1), e.Canvas.addEventListener("pointerout", this._onPointerUpHandlerRef, !1), e.Canvas.addEventListener( "contextmenu", function (e) { e.preventDefault(); }, !1 ), requestAnimationFrame(function () { n._drawVirtualJoystick(); }); } return ( (e.prototype.setJoystickSensibility = function (e) { (this._joystickSensibility = e), (this._inversedSensibility = 1 / (this._joystickSensibility / 1e3)); }), (e.prototype._onPointerDown = function (t) { t.preventDefault(), (!0 === this._leftJoystick ? t.clientX < e.halfWidth : t.clientX > e.halfWidth) && this._joystickPointerID < 0 ? ((this._joystickPointerID = t.pointerId), (this._joystickPointerStartPos.x = t.clientX), (this._joystickPointerStartPos.y = t.clientY), (this._joystickPointerPos = this._joystickPointerStartPos.clone()), (this._joystickPreviousPointerPos = this._joystickPointerStartPos.clone()), (this._deltaJoystickVector.x = 0), (this._deltaJoystickVector.y = 0), (this.pressed = !0), this._touches.add(t.pointerId.toString(), t)) : e._globalJoystickIndex < 2 && this._action && (this._action(), this._touches.add(t.pointerId.toString(), { x: t.clientX, y: t.clientY, prevX: t.clientX, prevY: t.clientY })); }), (e.prototype._onPointerMove = function (e) { if (this._joystickPointerID == e.pointerId) { (this._joystickPointerPos.x = e.clientX), (this._joystickPointerPos.y = e.clientY), (this._deltaJoystickVector = this._joystickPointerPos.clone()), (this._deltaJoystickVector = this._deltaJoystickVector.subtract(this._joystickPointerStartPos)); var t = ((this.reverseLeftRight ? -1 : 1) * this._deltaJoystickVector.x) / this._inversedSensibility; switch (this._axisTargetedByLeftAndRight) { case dt.X: this.deltaPosition.x = Math.min(1, Math.max(-1, t)); break; case dt.Y: this.deltaPosition.y = Math.min(1, Math.max(-1, t)); break; case dt.Z: this.deltaPosition.z = Math.min(1, Math.max(-1, t)); } var n = ((this.reverseUpDown ? 1 : -1) * this._deltaJoystickVector.y) / this._inversedSensibility; switch (this._axisTargetedByUpAndDown) { case dt.X: this.deltaPosition.x = Math.min(1, Math.max(-1, n)); break; case dt.Y: this.deltaPosition.y = Math.min(1, Math.max(-1, n)); break; case dt.Z: this.deltaPosition.z = Math.min(1, Math.max(-1, n)); } } else { var i = this._touches.get(e.pointerId.toString()); i && ((i.x = e.clientX), (i.y = e.clientY)); } }), (e.prototype._onPointerUp = function (t) { if (this._joystickPointerID == t.pointerId) e.vjCanvasContext.clearRect(this._joystickPointerStartPos.x - 64, this._joystickPointerStartPos.y - 64, 128, 128), e.vjCanvasContext.clearRect(this._joystickPreviousPointerPos.x - 42, this._joystickPreviousPointerPos.y - 42, 84, 84), (this._joystickPointerID = -1), (this.pressed = !1); else { var n = this._touches.get(t.pointerId.toString()); n && e.vjCanvasContext.clearRect(n.prevX - 44, n.prevY - 44, 88, 88); } (this._deltaJoystickVector.x = 0), (this._deltaJoystickVector.y = 0), this._touches.remove(t.pointerId.toString()); }), (e.prototype.setJoystickColor = function (e) { this._joystickColor = e; }), (e.prototype.setActionOnTouch = function (e) { this._action = e; }), (e.prototype.setAxisForLeftRight = function (e) { switch (e) { case dt.X: case dt.Y: case dt.Z: this._axisTargetedByLeftAndRight = e; break; default: this._axisTargetedByLeftAndRight = dt.X; } }), (e.prototype.setAxisForUpDown = function (e) { switch (e) { case dt.X: case dt.Y: case dt.Z: this._axisTargetedByUpAndDown = e; break; default: this._axisTargetedByUpAndDown = dt.Y; } }), (e.prototype._drawVirtualJoystick = function () { var t = this; this.pressed && this._touches.forEach(function (n, i) { i.pointerId === t._joystickPointerID ? (e.vjCanvasContext.clearRect(t._joystickPointerStartPos.x - 64, t._joystickPointerStartPos.y - 64, 128, 128), e.vjCanvasContext.clearRect(t._joystickPreviousPointerPos.x - 42, t._joystickPreviousPointerPos.y - 42, 84, 84), e.vjCanvasContext.beginPath(), (e.vjCanvasContext.lineWidth = 6), (e.vjCanvasContext.strokeStyle = t._joystickColor), e.vjCanvasContext.arc(t._joystickPointerStartPos.x, t._joystickPointerStartPos.y, 40, 0, 2 * Math.PI, !0), e.vjCanvasContext.stroke(), e.vjCanvasContext.closePath(), e.vjCanvasContext.beginPath(), (e.vjCanvasContext.strokeStyle = t._joystickColor), (e.vjCanvasContext.lineWidth = 2), e.vjCanvasContext.arc(t._joystickPointerStartPos.x, t._joystickPointerStartPos.y, 60, 0, 2 * Math.PI, !0), e.vjCanvasContext.stroke(), e.vjCanvasContext.closePath(), e.vjCanvasContext.beginPath(), (e.vjCanvasContext.strokeStyle = t._joystickColor), e.vjCanvasContext.arc(t._joystickPointerPos.x, t._joystickPointerPos.y, 40, 0, 2 * Math.PI, !0), e.vjCanvasContext.stroke(), e.vjCanvasContext.closePath(), (t._joystickPreviousPointerPos = t._joystickPointerPos.clone())) : (e.vjCanvasContext.clearRect(i.prevX - 44, i.prevY - 44, 88, 88), e.vjCanvasContext.beginPath(), (e.vjCanvasContext.fillStyle = "white"), e.vjCanvasContext.beginPath(), (e.vjCanvasContext.strokeStyle = "red"), (e.vjCanvasContext.lineWidth = 6), e.vjCanvasContext.arc(i.x, i.y, 40, 0, 2 * Math.PI, !0), e.vjCanvasContext.stroke(), e.vjCanvasContext.closePath(), (i.prevX = i.x), (i.prevY = i.y)); }), requestAnimationFrame(function () { t._drawVirtualJoystick(); }); }), (e.prototype.releaseCanvas = function () { e.Canvas && (e.Canvas.removeEventListener("pointerdown", this._onPointerDownHandlerRef), e.Canvas.removeEventListener("pointermove", this._onPointerMoveHandlerRef), e.Canvas.removeEventListener("pointerup", this._onPointerUpHandlerRef), e.Canvas.removeEventListener("pointerout", this._onPointerUpHandlerRef), window.removeEventListener("resize", this._onResize), document.body.removeChild(e.Canvas), (e.Canvas = null)); }), (e._globalJoystickIndex = 0), e ); })(); lt.a.prototype.addVirtualJoystick = function () { return this.add(new _t()), this; }; var _t = (function () { function e() {} return ( (e.prototype.getLeftJoystick = function () { return this._leftjoystick; }), (e.prototype.getRightJoystick = function () { return this._rightjoystick; }), (e.prototype.checkInputs = function () { if (this._leftjoystick) { var e = this.camera, t = 50 * e._computeLocalCameraSpeed(), n = a.a.RotationYawPitchRoll(e.rotation.y, e.rotation.x, 0), i = a.e.TransformCoordinates(new a.e(this._leftjoystick.deltaPosition.x * t, this._leftjoystick.deltaPosition.y * t, this._leftjoystick.deltaPosition.z * t), n); (e.cameraDirection = e.cameraDirection.add(i)), (e.cameraRotation = e.cameraRotation.addVector3(this._rightjoystick.deltaPosition)), this._leftjoystick.pressed || (this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9)), this._rightjoystick.pressed || (this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9)); } }), (e.prototype.attachControl = function (e, t) { (this._leftjoystick = new bt(!0)), this._leftjoystick.setAxisForUpDown(dt.Z), this._leftjoystick.setAxisForLeftRight(dt.X), this._leftjoystick.setJoystickSensibility(0.15), (this._rightjoystick = new bt(!1)), this._rightjoystick.setAxisForUpDown(dt.X), this._rightjoystick.setAxisForLeftRight(dt.Y), (this._rightjoystick.reverseUpDown = !0), this._rightjoystick.setJoystickSensibility(0.05), this._rightjoystick.setJoystickColor("yellow"); }), (e.prototype.detachControl = function (e) { this._leftjoystick.releaseCanvas(), this._rightjoystick.releaseCanvas(); }), (e.prototype.getClassName = function () { return "FreeCameraVirtualJoystickInput"; }), (e.prototype.getSimpleName = function () { return "virtualJoystick"; }), e ); })(); We.a.FreeCameraVirtualJoystickInput = _t; var vt = n(102), yt = n(67), Ct = n(35); Ct.a.AddNodeConstructor("TouchCamera", function (e, t) { return function () { return new Pt(e, a.e.Zero(), t); }; }); var Pt = (function (e) { function t(t, n, i) { var r = e.call(this, t, n, i) || this; return r.inputs.addTouch(), r._setupInputs(), r; } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "touchAngularSensibility", { get: function () { var e = this.inputs.attached.touch; return e ? e.touchAngularSensibility : 0; }, set: function (e) { var t = this.inputs.attached.touch; t && (t.touchAngularSensibility = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "touchMoveSensibility", { get: function () { var e = this.inputs.attached.touch; return e ? e.touchMoveSensibility : 0; }, set: function (e) { var t = this.inputs.attached.touch; t && (t.touchMoveSensibility = e); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "TouchCamera"; }), (t.prototype._setupInputs = function () { var e = this.inputs.attached.mouse; e && (e.touchEnabled = !1); }), t ); })(yt.a); Ct.a.AddNodeConstructor("ArcRotateCamera", function (e, t) { return function () { return new xt(e, 0, 0, 1, a.e.Zero(), t); }; }); var xt = (function (e) { function t(t, n, i, r, s, c, l) { void 0 === l && (l = !0); var u = e.call(this, t, a.e.Zero(), c, l) || this; return ( (u._upVector = a.e.Up()), (u.inertialAlphaOffset = 0), (u.inertialBetaOffset = 0), (u.inertialRadiusOffset = 0), (u.lowerAlphaLimit = null), (u.upperAlphaLimit = null), (u.lowerBetaLimit = 0.01), (u.upperBetaLimit = Math.PI - 0.01), (u.lowerRadiusLimit = null), (u.upperRadiusLimit = null), (u.inertialPanningX = 0), (u.inertialPanningY = 0), (u.pinchToPanMaxDistance = 20), (u.panningDistanceLimit = null), (u.panningOriginTarget = a.e.Zero()), (u.panningInertia = 0.9), (u.zoomOnFactor = 1), (u.targetScreenOffset = a.d.Zero()), (u.allowUpsideDown = !0), (u.useInputToRestoreState = !0), (u._viewMatrix = new a.a()), (u.panningAxis = new a.e(1, 1, 0)), (u.onMeshTargetChangedObservable = new o.c()), (u.checkCollisions = !1), (u.collisionRadius = new a.e(0.5, 0.5, 0.5)), (u._previousPosition = a.e.Zero()), (u._collisionVelocity = a.e.Zero()), (u._newPosition = a.e.Zero()), (u._computationVector = a.e.Zero()), (u._onCollisionPositionChange = function (e, t, n) { void 0 === n && (n = null), n ? (u.setPosition(t), u.onCollide && u.onCollide(n)) : u._previousPosition.copyFrom(u._position); var i = Math.cos(u.alpha), r = Math.sin(u.alpha), o = Math.cos(u.beta), a = Math.sin(u.beta); 0 === a && (a = 1e-4); var s = u._getTargetPosition(); u._computationVector.copyFromFloats(u.radius * i * a, u.radius * o, u.radius * r * a), s.addToRef(u._computationVector, u._newPosition), u._position.copyFrom(u._newPosition); var c = u.upVector; u.allowUpsideDown && u.beta < 0 && (c = (c = c.clone()).negate()), u._computeViewMatrix(u._position, s, c), u._viewMatrix.addAtIndex(12, u.targetScreenOffset.x), u._viewMatrix.addAtIndex(13, u.targetScreenOffset.y), (u._collisionTriggered = !1); }), (u._target = a.e.Zero()), s && u.setTarget(s), (u.alpha = n), (u.beta = i), (u.radius = r), u.getViewMatrix(), (u.inputs = new nt(u)), u.inputs.addKeyboard().addMouseWheel().addPointers(), u ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "target", { get: function () { return this._target; }, set: function (e) { this.setTarget(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "position", { get: function () { return this._position; }, set: function (e) { this.setPosition(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "upVector", { get: function () { return this._upVector; }, set: function (e) { this._upToYMatrix || ((this._YToUpMatrix = new a.a()), (this._upToYMatrix = new a.a()), (this._upVector = a.e.Zero())), e.normalize(), this._upVector.copyFrom(e), this.setMatUp(); }, enumerable: !0, configurable: !0, }), (t.prototype.setMatUp = function () { a.a.RotationAlignToRef(a.e.UpReadOnly, this._upVector, this._YToUpMatrix), a.a.RotationAlignToRef(this._upVector, a.e.UpReadOnly, this._upToYMatrix); }), Object.defineProperty(t.prototype, "angularSensibilityX", { get: function () { var e = this.inputs.attached.pointers; return e ? e.angularSensibilityX : 0; }, set: function (e) { var t = this.inputs.attached.pointers; t && (t.angularSensibilityX = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "angularSensibilityY", { get: function () { var e = this.inputs.attached.pointers; return e ? e.angularSensibilityY : 0; }, set: function (e) { var t = this.inputs.attached.pointers; t && (t.angularSensibilityY = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "pinchPrecision", { get: function () { var e = this.inputs.attached.pointers; return e ? e.pinchPrecision : 0; }, set: function (e) { var t = this.inputs.attached.pointers; t && (t.pinchPrecision = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "pinchDeltaPercentage", { get: function () { var e = this.inputs.attached.pointers; return e ? e.pinchDeltaPercentage : 0; }, set: function (e) { var t = this.inputs.attached.pointers; t && (t.pinchDeltaPercentage = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useNaturalPinchZoom", { get: function () { var e = this.inputs.attached.pointers; return !!e && e.useNaturalPinchZoom; }, set: function (e) { var t = this.inputs.attached.pointers; t && (t.useNaturalPinchZoom = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "panningSensibility", { get: function () { var e = this.inputs.attached.pointers; return e ? e.panningSensibility : 0; }, set: function (e) { var t = this.inputs.attached.pointers; t && (t.panningSensibility = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysUp", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysUp : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysUp = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysDown", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysDown : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysDown = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysLeft", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysLeft : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysLeft = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysRight", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysRight : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysRight = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "wheelPrecision", { get: function () { var e = this.inputs.attached.mousewheel; return e ? e.wheelPrecision : 0; }, set: function (e) { var t = this.inputs.attached.mousewheel; t && (t.wheelPrecision = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "wheelDeltaPercentage", { get: function () { var e = this.inputs.attached.mousewheel; return e ? e.wheelDeltaPercentage : 0; }, set: function (e) { var t = this.inputs.attached.mousewheel; t && (t.wheelDeltaPercentage = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bouncingBehavior", { get: function () { return this._bouncingBehavior; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useBouncingBehavior", { get: function () { return null != this._bouncingBehavior; }, set: function (e) { e !== this.useBouncingBehavior && (e ? ((this._bouncingBehavior = new Pe()), this.addBehavior(this._bouncingBehavior)) : this._bouncingBehavior && (this.removeBehavior(this._bouncingBehavior), (this._bouncingBehavior = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "framingBehavior", { get: function () { return this._framingBehavior; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useFramingBehavior", { get: function () { return null != this._framingBehavior; }, set: function (e) { e !== this.useFramingBehavior && (e ? ((this._framingBehavior = new xe()), this.addBehavior(this._framingBehavior)) : this._framingBehavior && (this.removeBehavior(this._framingBehavior), (this._framingBehavior = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "autoRotationBehavior", { get: function () { return this._autoRotationBehavior; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useAutoRotationBehavior", { get: function () { return null != this._autoRotationBehavior; }, set: function (e) { e !== this.useAutoRotationBehavior && (e ? ((this._autoRotationBehavior = new Ce()), this.addBehavior(this._autoRotationBehavior)) : this._autoRotationBehavior && (this.removeBehavior(this._autoRotationBehavior), (this._autoRotationBehavior = null))); }, enumerable: !0, configurable: !0, }), (t.prototype._initCache = function () { e.prototype._initCache.call(this), (this._cache._target = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (this._cache.alpha = void 0), (this._cache.beta = void 0), (this._cache.radius = void 0), (this._cache.targetScreenOffset = a.d.Zero()); }), (t.prototype._updateCache = function (t) { t || e.prototype._updateCache.call(this), this._cache._target.copyFrom(this._getTargetPosition()), (this._cache.alpha = this.alpha), (this._cache.beta = this.beta), (this._cache.radius = this.radius), this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset); }), (t.prototype._getTargetPosition = function () { if (this._targetHost && this._targetHost.getAbsolutePosition) { var e = this._targetHost.absolutePosition; this._targetBoundingCenter ? e.addToRef(this._targetBoundingCenter, this._target) : this._target.copyFrom(e); } var t = this._getLockedTargetPosition(); return t || this._target; }), (t.prototype.storeState = function () { return ( (this._storedAlpha = this.alpha), (this._storedBeta = this.beta), (this._storedRadius = this.radius), (this._storedTarget = this._getTargetPosition().clone()), (this._storedTargetScreenOffset = this.targetScreenOffset.clone()), e.prototype.storeState.call(this) ); }), (t.prototype._restoreStateValues = function () { return ( !!e.prototype._restoreStateValues.call(this) && (this.setTarget(this._storedTarget.clone()), (this.alpha = this._storedAlpha), (this.beta = this._storedBeta), (this.radius = this._storedRadius), (this.targetScreenOffset = this._storedTargetScreenOffset.clone()), (this.inertialAlphaOffset = 0), (this.inertialBetaOffset = 0), (this.inertialRadiusOffset = 0), (this.inertialPanningX = 0), (this.inertialPanningY = 0), !0) ); }), (t.prototype._isSynchronizedViewMatrix = function () { return ( !!e.prototype._isSynchronizedViewMatrix.call(this) && this._cache._target.equals(this._getTargetPosition()) && this._cache.alpha === this.alpha && this._cache.beta === this.beta && this._cache.radius === this.radius && this._cache.targetScreenOffset.equals(this.targetScreenOffset) ); }), (t.prototype.attachControl = function (e, t, n, i) { var r = this; void 0 === n && (n = !0), void 0 === i && (i = 2), (this._useCtrlForPanning = n), (this._panningMouseButton = i), this.inputs.attachElement(e, t), (this._reset = function () { (r.inertialAlphaOffset = 0), (r.inertialBetaOffset = 0), (r.inertialRadiusOffset = 0), (r.inertialPanningX = 0), (r.inertialPanningY = 0); }); }), (t.prototype.detachControl = function (e) { this.inputs.detachElement(e), this._reset && this._reset(); }), (t.prototype._checkInputs = function () { if (!this._collisionTriggered) { if ((this.inputs.checkInputs(), 0 !== this.inertialAlphaOffset || 0 !== this.inertialBetaOffset || 0 !== this.inertialRadiusOffset)) { var t = this.inertialAlphaOffset; this.beta <= 0 && (t *= -1), this.getScene().useRightHandedSystem && (t *= -1), this.parent && this.parent._getWorldMatrixDeterminant() < 0 && (t *= -1), (this.alpha += t), (this.beta += this.inertialBetaOffset), (this.radius -= this.inertialRadiusOffset), (this.inertialAlphaOffset *= this.inertia), (this.inertialBetaOffset *= this.inertia), (this.inertialRadiusOffset *= this.inertia), Math.abs(this.inertialAlphaOffset) < j.a && (this.inertialAlphaOffset = 0), Math.abs(this.inertialBetaOffset) < j.a && (this.inertialBetaOffset = 0), Math.abs(this.inertialRadiusOffset) < this.speed * j.a && (this.inertialRadiusOffset = 0); } if (0 !== this.inertialPanningX || 0 !== this.inertialPanningY) { if ( (this._localDirection || ((this._localDirection = a.e.Zero()), (this._transformedDirection = a.e.Zero())), this._localDirection.copyFromFloats(this.inertialPanningX, this.inertialPanningY, this.inertialPanningY), this._localDirection.multiplyInPlace(this.panningAxis), this._viewMatrix.invertToRef(this._cameraTransformMatrix), a.e.TransformNormalToRef(this._localDirection, this._cameraTransformMatrix, this._transformedDirection), this.panningAxis.y || (this._transformedDirection.y = 0), !this._targetHost) ) if (this.panningDistanceLimit) this._transformedDirection.addInPlace(this._target), a.e.DistanceSquared(this._transformedDirection, this.panningOriginTarget) <= this.panningDistanceLimit * this.panningDistanceLimit && this._target.copyFrom(this._transformedDirection); else this._target.addInPlace(this._transformedDirection); (this.inertialPanningX *= this.panningInertia), (this.inertialPanningY *= this.panningInertia), Math.abs(this.inertialPanningX) < this.speed * j.a && (this.inertialPanningX = 0), Math.abs(this.inertialPanningY) < this.speed * j.a && (this.inertialPanningY = 0); } this._checkLimits(), e.prototype._checkInputs.call(this); } }), (t.prototype._checkLimits = function () { null === this.lowerBetaLimit || void 0 === this.lowerBetaLimit ? this.allowUpsideDown && this.beta > Math.PI && (this.beta = this.beta - 2 * Math.PI) : this.beta < this.lowerBetaLimit && (this.beta = this.lowerBetaLimit), null === this.upperBetaLimit || void 0 === this.upperBetaLimit ? this.allowUpsideDown && this.beta < -Math.PI && (this.beta = this.beta + 2 * Math.PI) : this.beta > this.upperBetaLimit && (this.beta = this.upperBetaLimit), null !== this.lowerAlphaLimit && this.alpha < this.lowerAlphaLimit && (this.alpha = this.lowerAlphaLimit), null !== this.upperAlphaLimit && this.alpha > this.upperAlphaLimit && (this.alpha = this.upperAlphaLimit), null !== this.lowerRadiusLimit && this.radius < this.lowerRadiusLimit && ((this.radius = this.lowerRadiusLimit), (this.inertialRadiusOffset = 0)), null !== this.upperRadiusLimit && this.radius > this.upperRadiusLimit && ((this.radius = this.upperRadiusLimit), (this.inertialRadiusOffset = 0)); }), (t.prototype.rebuildAnglesAndRadius = function () { this._position.subtractToRef(this._getTargetPosition(), this._computationVector), (0 === this._upVector.x && 1 === this._upVector.y && 0 === this._upVector.z) || a.e.TransformCoordinatesToRef(this._computationVector, this._upToYMatrix, this._computationVector), (this.radius = this._computationVector.length()), 0 === this.radius && (this.radius = 1e-4), 0 === this._computationVector.x && 0 === this._computationVector.z ? (this.alpha = Math.PI / 2) : (this.alpha = Math.acos(this._computationVector.x / Math.sqrt(Math.pow(this._computationVector.x, 2) + Math.pow(this._computationVector.z, 2)))), this._computationVector.z < 0 && (this.alpha = 2 * Math.PI - this.alpha), (this.beta = Math.acos(this._computationVector.y / this.radius)), this._checkLimits(); }), (t.prototype.setPosition = function (e) { this._position.equals(e) || (this._position.copyFrom(e), this.rebuildAnglesAndRadius()); }), (t.prototype.setTarget = function (e, t, n) { if ((void 0 === t && (t = !1), void 0 === n && (n = !1), e.getBoundingInfo)) (this._targetBoundingCenter = t ? e.getBoundingInfo().boundingBox.centerWorld.clone() : null), e.computeWorldMatrix(), (this._targetHost = e), (this._target = this._getTargetPosition()), this.onMeshTargetChangedObservable.notifyObservers(this._targetHost); else { var i = e, r = this._getTargetPosition(); if (r && !n && r.equals(i)) return; (this._targetHost = null), (this._target = i), (this._targetBoundingCenter = null), this.onMeshTargetChangedObservable.notifyObservers(null); } this.rebuildAnglesAndRadius(); }), (t.prototype._getViewMatrix = function () { var e = Math.cos(this.alpha), t = Math.sin(this.alpha), n = Math.cos(this.beta), i = Math.sin(this.beta); 0 === i && (i = 1e-4); var r = this._getTargetPosition(); if ( (this._computationVector.copyFromFloats(this.radius * e * i, this.radius * n, this.radius * t * i), (0 === this._upVector.x && 1 === this._upVector.y && 0 === this._upVector.z) || a.e.TransformCoordinatesToRef(this._computationVector, this._YToUpMatrix, this._computationVector), r.addToRef(this._computationVector, this._newPosition), this.getScene().collisionsEnabled && this.checkCollisions) ) { var o = this.getScene().collisionCoordinator; this._collider || (this._collider = o.createCollider()), (this._collider._radius = this.collisionRadius), this._newPosition.subtractToRef(this._position, this._collisionVelocity), (this._collisionTriggered = !0), o.getNewPosition(this._position, this._collisionVelocity, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId); } else { this._position.copyFrom(this._newPosition); var s = this.upVector; this.allowUpsideDown && i < 0 && (s = s.negate()), this._computeViewMatrix(this._position, r, s), this._viewMatrix.addAtIndex(12, this.targetScreenOffset.x), this._viewMatrix.addAtIndex(13, this.targetScreenOffset.y); } return (this._currentTarget = r), this._viewMatrix; }), (t.prototype.zoomOn = function (e, t) { void 0 === t && (t = !1), (e = e || this.getScene().meshes); var n = Ee.a.MinMax(e), i = a.e.Distance(n.min, n.max); (this.radius = i * this.zoomOnFactor), this.focusOn({ min: n.min, max: n.max, distance: i }, t); }), (t.prototype.focusOn = function (e, t) { var n, i; if ((void 0 === t && (t = !1), void 0 === e.min)) { var r = e || this.getScene().meshes; (n = Ee.a.MinMax(r)), (i = a.e.Distance(n.min, n.max)); } else { (n = e), (i = e.distance); } (this._target = Ee.a.Center(n)), t || (this.maxZ = 2 * i); }), (t.prototype.createRigCamera = function (e, n) { var i = 0; switch (this.cameraRigMode) { case De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH: case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL: case De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER: case De.a.RIG_MODE_STEREOSCOPIC_INTERLACED: case De.a.RIG_MODE_VR: i = this._cameraRigParams.stereoHalfAngle * (0 === n ? 1 : -1); break; case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED: i = this._cameraRigParams.stereoHalfAngle * (0 === n ? -1 : 1); } var r = new t(e, this.alpha + i, this.beta, this.radius, this._target, this.getScene()); return (r._cameraRigParams = {}), (r.isRigCamera = !0), (r.rigParent = this), r; }), (t.prototype._updateRigCameras = function () { var t = this._rigCameras[0], n = this._rigCameras[1]; switch (((t.beta = n.beta = this.beta), this.cameraRigMode)) { case De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH: case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL: case De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER: case De.a.RIG_MODE_STEREOSCOPIC_INTERLACED: case De.a.RIG_MODE_VR: (t.alpha = this.alpha - this._cameraRigParams.stereoHalfAngle), (n.alpha = this.alpha + this._cameraRigParams.stereoHalfAngle); break; case De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED: (t.alpha = this.alpha + this._cameraRigParams.stereoHalfAngle), (n.alpha = this.alpha - this._cameraRigParams.stereoHalfAngle); } e.prototype._updateRigCameras.call(this); }), (t.prototype.dispose = function () { this.inputs.clear(), e.prototype.dispose.call(this); }), (t.prototype.getClassName = function () { return "ArcRotateCamera"; }), Object(h.c)([Object(He.c)()], t.prototype, "alpha", void 0), Object(h.c)([Object(He.c)()], t.prototype, "beta", void 0), Object(h.c)([Object(He.c)()], t.prototype, "radius", void 0), Object(h.c)([Object(He.o)("target")], t.prototype, "_target", void 0), Object(h.c)([Object(He.o)("upVector")], t.prototype, "_upVector", void 0), Object(h.c)([Object(He.c)()], t.prototype, "inertialAlphaOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "inertialBetaOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "inertialRadiusOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lowerAlphaLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "upperAlphaLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lowerBetaLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "upperBetaLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lowerRadiusLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "upperRadiusLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "inertialPanningX", void 0), Object(h.c)([Object(He.c)()], t.prototype, "inertialPanningY", void 0), Object(h.c)([Object(He.c)()], t.prototype, "pinchToPanMaxDistance", void 0), Object(h.c)([Object(He.c)()], t.prototype, "panningDistanceLimit", void 0), Object(h.c)([Object(He.o)()], t.prototype, "panningOriginTarget", void 0), Object(h.c)([Object(He.c)()], t.prototype, "panningInertia", void 0), Object(h.c)([Object(He.c)()], t.prototype, "zoomOnFactor", void 0), Object(h.c)([Object(He.c)()], t.prototype, "targetScreenOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "allowUpsideDown", void 0), Object(h.c)([Object(He.c)()], t.prototype, "useInputToRestoreState", void 0), t ); })(vt.a); Ct.a.AddNodeConstructor("DeviceOrientationCamera", function (e, t) { return function () { return new Tt(e, a.e.Zero(), t); }; }); var Tt = (function (e) { function t(t, n, i) { var r = e.call(this, t, n, i) || this; return ( (r._tmpDragQuaternion = new a.b()), (r._disablePointerInputWhenUsingDeviceOrientation = !0), (r._dragFactor = 0), (r._quaternionCache = new a.b()), r.inputs.addDeviceOrientation(), r.inputs._deviceOrientationInput && r.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce(function () { r._disablePointerInputWhenUsingDeviceOrientation && r.inputs._mouseInput && ((r.inputs._mouseInput._allowCameraRotation = !1), r.inputs._mouseInput.onPointerMovedObservable.add(function (e) { 0 != r._dragFactor && (r._initialQuaternion || (r._initialQuaternion = new a.b()), a.b.FromEulerAnglesToRef(0, e.offsetX * r._dragFactor, 0, r._tmpDragQuaternion), r._initialQuaternion.multiplyToRef(r._tmpDragQuaternion, r._initialQuaternion)); })); }), r ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "disablePointerInputWhenUsingDeviceOrientation", { get: function () { return this._disablePointerInputWhenUsingDeviceOrientation; }, set: function (e) { this._disablePointerInputWhenUsingDeviceOrientation = e; }, enumerable: !0, configurable: !0, }), (t.prototype.enableHorizontalDragging = function (e) { void 0 === e && (e = 1 / 300), (this._dragFactor = e); }), (t.prototype.getClassName = function () { return "DeviceOrientationCamera"; }), (t.prototype._checkInputs = function () { e.prototype._checkInputs.call(this), this._quaternionCache.copyFrom(this.rotationQuaternion), this._initialQuaternion && this._initialQuaternion.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion); }), (t.prototype.resetToCurrentRotation = function (e) { var t = this; void 0 === e && (e = Be.a.Y), this.rotationQuaternion && (this._initialQuaternion || (this._initialQuaternion = new a.b()), this._initialQuaternion.copyFrom(this._quaternionCache || this.rotationQuaternion), ["x", "y", "z"].forEach(function (n) { e[n] ? (t._initialQuaternion[n] *= -1) : (t._initialQuaternion[n] = 0); }), this._initialQuaternion.normalize(), this._initialQuaternion.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion)); }), t ); })(yt.a), St = (function (e) { function t(t) { return e.call(this, t) || this; } return ( Object(h.d)(t, e), (t.prototype.addKeyboard = function () { return this.add(new rt()), this; }), (t.prototype.addMouse = function (e) { return void 0 === e && (e = !0), this.add(new ot(e)), this; }), t ); })(We.b), Ot = (function (e) { function t(t, n, i, r) { void 0 === r && (r = !0); var o = e.call(this, t, n, i, r) || this; return ( (o.ellipsoid = new a.e(1, 1, 1)), (o.ellipsoidOffset = new a.e(0, 0, 0)), (o.checkCollisions = !1), (o.applyGravity = !1), (o.cameraDirection = a.e.Zero()), (o._trackRoll = 0), (o.rollCorrect = 100), (o.bankedTurn = !1), (o.bankedTurnLimit = Math.PI / 2), (o.bankedTurnMultiplier = 1), (o._needMoveForGravity = !1), (o._oldPosition = a.e.Zero()), (o._diffPosition = a.e.Zero()), (o._newPosition = a.e.Zero()), (o._collisionMask = -1), (o._onCollisionPositionChange = function (e, t, n) { void 0 === n && (n = null); var i; (i = t), o._newPosition.copyFrom(i), o._newPosition.subtractToRef(o._oldPosition, o._diffPosition), o._diffPosition.length() > ue.a.CollisionsEpsilon && (o.position.addInPlace(o._diffPosition), o.onCollide && n && o.onCollide(n)); }), (o.inputs = new St(o)), o.inputs.addKeyboard().addMouse(), o ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "angularSensibility", { get: function () { var e = this.inputs.attached.mouse; return e ? e.angularSensibility : 0; }, set: function (e) { var t = this.inputs.attached.mouse; t && (t.angularSensibility = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysForward", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysForward : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysForward = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysBackward", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysBackward : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysBackward = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysUp", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysUp : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysUp = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysDown", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysDown : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysDown = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysLeft", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysLeft : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysLeft = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysRight", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysRight : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysRight = e); }, enumerable: !0, configurable: !0, }), (t.prototype.attachControl = function (e, t) { this.inputs.attachElement(e, t); }), (t.prototype.detachControl = function (e) { this.inputs.detachElement(e), (this.cameraDirection = new a.e(0, 0, 0)); }), Object.defineProperty(t.prototype, "collisionMask", { get: function () { return this._collisionMask; }, set: function (e) { this._collisionMask = isNaN(e) ? -1 : e; }, enumerable: !0, configurable: !0, }), (t.prototype._collideWithWorld = function (e) { (this.parent ? a.e.TransformCoordinates(this.position, this.parent.getWorldMatrix()) : this.position).subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition), this._oldPosition.addInPlace(this.ellipsoidOffset); var t = this.getScene().collisionCoordinator; this._collider || (this._collider = t.createCollider()), (this._collider._radius = this.ellipsoid), (this._collider.collisionMask = this._collisionMask); var n = e; this.applyGravity && (n = e.add(this.getScene().gravity)), t.getNewPosition(this._oldPosition, n, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId); }), (t.prototype._checkInputs = function () { this._localDirection || ((this._localDirection = a.e.Zero()), (this._transformedDirection = a.e.Zero())), this.inputs.checkInputs(), e.prototype._checkInputs.call(this); }), (t.prototype._decideIfNeedsToMove = function () { return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0; }), (t.prototype._updatePosition = function () { this.checkCollisions && this.getScene().collisionsEnabled ? this._collideWithWorld(this.cameraDirection) : e.prototype._updatePosition.call(this); }), (t.prototype.restoreRoll = function (e) { var t = this._trackRoll, n = t - this.rotation.z; Math.abs(n) >= 0.001 && ((this.rotation.z += n / e), Math.abs(t - this.rotation.z) <= 0.001 && (this.rotation.z = t)); }), (t.prototype.dispose = function () { this.inputs.clear(), e.prototype.dispose.call(this); }), (t.prototype.getClassName = function () { return "FlyCamera"; }), Object(h.c)([Object(He.o)()], t.prototype, "ellipsoid", void 0), Object(h.c)([Object(He.o)()], t.prototype, "ellipsoidOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "checkCollisions", void 0), Object(h.c)([Object(He.c)()], t.prototype, "applyGravity", void 0), t ); })(vt.a), Et = (function (e) { function t(t) { return e.call(this, t) || this; } return ( Object(h.d)(t, e), (t.prototype.addKeyboard = function () { return this.add(new at()), this; }), (t.prototype.addMouseWheel = function () { return this.add(new st()), this; }), (t.prototype.addPointers = function () { return this.add(new ct()), this; }), (t.prototype.addVRDeviceOrientation = function () { return this; }), t ); })(We.b); Ct.a.AddNodeConstructor("FollowCamera", function (e, t) { return function () { return new At(e, a.e.Zero(), t); }; }), Ct.a.AddNodeConstructor("ArcFollowCamera", function (e, t) { return function () { return new It(e, 0, 0, 1, null, t); }; }); var Mt, At = (function (e) { function t(t, n, i, r) { void 0 === r && (r = null); var o = e.call(this, t, n, i) || this; return ( (o.radius = 12), (o.lowerRadiusLimit = null), (o.upperRadiusLimit = null), (o.rotationOffset = 0), (o.lowerRotationOffsetLimit = null), (o.upperRotationOffsetLimit = null), (o.heightOffset = 4), (o.lowerHeightOffsetLimit = null), (o.upperHeightOffsetLimit = null), (o.cameraAcceleration = 0.05), (o.maxCameraSpeed = 20), (o.lockedTarget = r), (o.inputs = new Et(o)), o.inputs.addKeyboard().addMouseWheel().addPointers(), o ); } return ( Object(h.d)(t, e), (t.prototype._follow = function (e) { if (e) { var t; if (e.rotationQuaternion) { var n = new a.a(); e.rotationQuaternion.toRotationMatrix(n), (t = Math.atan2(n.m[8], n.m[10])); } else t = e.rotation.y; var i = $e.b.ToRadians(this.rotationOffset) + t, r = e.getAbsolutePosition(), o = r.x + Math.sin(i) * this.radius, s = r.z + Math.cos(i) * this.radius, c = o - this.position.x, l = r.y + this.heightOffset - this.position.y, u = s - this.position.z, h = c * this.cameraAcceleration * 2, d = l * this.cameraAcceleration, p = u * this.cameraAcceleration * 2; (h > this.maxCameraSpeed || h < -this.maxCameraSpeed) && (h = h < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed), (d > this.maxCameraSpeed || d < -this.maxCameraSpeed) && (d = d < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed), (p > this.maxCameraSpeed || p < -this.maxCameraSpeed) && (p = p < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed), (this.position = new a.e(this.position.x + h, this.position.y + d, this.position.z + p)), this.setTarget(r); } }), (t.prototype.attachControl = function (e, t) { this.inputs.attachElement(e, t), (this._reset = function () {}); }), (t.prototype.detachControl = function (e) { this.inputs.detachElement(e), this._reset && this._reset(); }), (t.prototype._checkInputs = function () { this.inputs.checkInputs(), this._checkLimits(), e.prototype._checkInputs.call(this), this.lockedTarget && this._follow(this.lockedTarget); }), (t.prototype._checkLimits = function () { null !== this.lowerRadiusLimit && this.radius < this.lowerRadiusLimit && (this.radius = this.lowerRadiusLimit), null !== this.upperRadiusLimit && this.radius > this.upperRadiusLimit && (this.radius = this.upperRadiusLimit), null !== this.lowerHeightOffsetLimit && this.heightOffset < this.lowerHeightOffsetLimit && (this.heightOffset = this.lowerHeightOffsetLimit), null !== this.upperHeightOffsetLimit && this.heightOffset > this.upperHeightOffsetLimit && (this.heightOffset = this.upperHeightOffsetLimit), null !== this.lowerRotationOffsetLimit && this.rotationOffset < this.lowerRotationOffsetLimit && (this.rotationOffset = this.lowerRotationOffsetLimit), null !== this.upperRotationOffsetLimit && this.rotationOffset > this.upperRotationOffsetLimit && (this.rotationOffset = this.upperRotationOffsetLimit); }), (t.prototype.getClassName = function () { return "FollowCamera"; }), Object(h.c)([Object(He.c)()], t.prototype, "radius", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lowerRadiusLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "upperRadiusLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "rotationOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lowerRotationOffsetLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "upperRotationOffsetLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "heightOffset", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lowerHeightOffsetLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "upperHeightOffsetLimit", void 0), Object(h.c)([Object(He.c)()], t.prototype, "cameraAcceleration", void 0), Object(h.c)([Object(He.c)()], t.prototype, "maxCameraSpeed", void 0), Object(h.c)([Object(He.k)("lockedTargetId")], t.prototype, "lockedTarget", void 0), t ); })(vt.a), It = (function (e) { function t(t, n, i, r, o, s) { var c = e.call(this, t, a.e.Zero(), s) || this; return (c.alpha = n), (c.beta = i), (c.radius = r), (c.target = o), (c._cartesianCoordinates = a.e.Zero()), c._follow(), c; } return ( Object(h.d)(t, e), (t.prototype._follow = function () { if (this.target) { (this._cartesianCoordinates.x = this.radius * Math.cos(this.alpha) * Math.cos(this.beta)), (this._cartesianCoordinates.y = this.radius * Math.sin(this.beta)), (this._cartesianCoordinates.z = this.radius * Math.sin(this.alpha) * Math.cos(this.beta)); var e = this.target.getAbsolutePosition(); (this.position = e.add(this._cartesianCoordinates)), this.setTarget(e); } }), (t.prototype._checkInputs = function () { e.prototype._checkInputs.call(this), this._follow(); }), (t.prototype.getClassName = function () { return "ArcFollowCamera"; }), t ); })(vt.a), Dt = n(56); !(function (e) { (e[(e.VIVE = 0)] = "VIVE"), (e[(e.OCULUS = 1)] = "OCULUS"), (e[(e.WINDOWS = 2)] = "WINDOWS"), (e[(e.GEAR_VR = 3)] = "GEAR_VR"), (e[(e.DAYDREAM = 4)] = "DAYDREAM"), (e[(e.GENERIC = 5)] = "GENERIC"); })(Mt || (Mt = {})); var Rt, wt, Lt = (function () { function e() {} return ( (e.InitiateController = function (e) { for (var t = 0, n = this._ControllerFactories; t < n.length; t++) { var i = n[t]; if (i.canCreate(e)) return i.create(e); } if (this._DefaultControllerFactory) return this._DefaultControllerFactory(e); throw "The type of gamepad you are trying to load needs to be imported first or is not supported."; }), (e._ControllerFactories = []), (e._DefaultControllerFactory = null), e ); })(), Ft = (function (e) { function t(t) { var n = e.call(this, t.id, t.index, t) || this; return ( (n.isXR = !1), (n._deviceRoomPosition = a.e.Zero()), (n._deviceRoomRotationQuaternion = new a.b()), (n.devicePosition = a.e.Zero()), (n.deviceRotationQuaternion = new a.b()), (n.deviceScaleFactor = 1), (n._trackPosition = !0), (n._maxRotationDistFromHeadset = Math.PI / 5), (n._draggedRoomRotation = 0), (n._leftHandSystemQuaternion = new a.b()), (n._deviceToWorld = a.a.Identity()), (n._pointingPoseNode = null), (n._workingMatrix = a.a.Identity()), (n._meshAttachedObservable = new o.c()), (n.type = Ye.POSE_ENABLED), (n.controllerType = Mt.GENERIC), (n.position = a.e.Zero()), (n.rotationQuaternion = new a.b()), (n._calculatedPosition = a.e.Zero()), (n._calculatedRotation = new a.b()), a.b.RotationYawPitchRollToRef(Math.PI, 0, 0, n._leftHandSystemQuaternion), n ); } return ( Object(h.d)(t, e), (t.prototype._disableTrackPosition = function (e) { this._trackPosition && (this._calculatedPosition.copyFrom(e), (this._trackPosition = !1)); }), (t.prototype.update = function () { e.prototype.update.call(this), this._updatePoseAndMesh(); }), (t.prototype._updatePoseAndMesh = function () { if (!this.isXR) { var e = this.browserGamepad.pose; if ((this.updateFromDevice(e), !this._trackPosition && E.a.LastCreatedScene && E.a.LastCreatedScene.activeCamera && E.a.LastCreatedScene.activeCamera.devicePosition)) if (((t = E.a.LastCreatedScene.activeCamera)._computeDevicePosition(), this._deviceToWorld.setTranslation(t.devicePosition), t.deviceRotationQuaternion)) { var t; (t = t)._deviceRoomRotationQuaternion.toEulerAnglesToRef(a.c.Vector3[0]); var n = Math.atan2(Math.sin(a.c.Vector3[0].y - this._draggedRoomRotation), Math.cos(a.c.Vector3[0].y - this._draggedRoomRotation)); if (Math.abs(n) > this._maxRotationDistFromHeadset) { var i = n - (n < 0 ? -this._maxRotationDistFromHeadset : this._maxRotationDistFromHeadset); this._draggedRoomRotation += i; var r = Math.sin(-i), o = Math.cos(-i); (this._calculatedPosition.x = this._calculatedPosition.x * o - this._calculatedPosition.z * r), (this._calculatedPosition.z = this._calculatedPosition.x * r + this._calculatedPosition.z * o); } } a.e.TransformCoordinatesToRef(this._calculatedPosition, this._deviceToWorld, this.devicePosition), this._deviceToWorld.getRotationMatrixToRef(this._workingMatrix), a.b.FromRotationMatrixToRef(this._workingMatrix, this.deviceRotationQuaternion), this.deviceRotationQuaternion.multiplyInPlace(this._calculatedRotation), this._mesh && (this._mesh.position.copyFrom(this.devicePosition), this._mesh.rotationQuaternion && this._mesh.rotationQuaternion.copyFrom(this.deviceRotationQuaternion)); } }), (t.prototype.updateFromDevice = function (e) { if (!this.isXR && e) { (this.rawPose = e), e.position && (this._deviceRoomPosition.copyFromFloats(e.position[0], e.position[1], -e.position[2]), this._mesh && this._mesh.getScene().useRightHandedSystem && (this._deviceRoomPosition.z *= -1), this._trackPosition && this._deviceRoomPosition.scaleToRef(this.deviceScaleFactor, this._calculatedPosition), this._calculatedPosition.addInPlace(this.position)); var t = this.rawPose; e.orientation && t.orientation && 4 === t.orientation.length && (this._deviceRoomRotationQuaternion.copyFromFloats(t.orientation[0], t.orientation[1], -t.orientation[2], -t.orientation[3]), this._mesh && (this._mesh.getScene().useRightHandedSystem ? ((this._deviceRoomRotationQuaternion.z *= -1), (this._deviceRoomRotationQuaternion.w *= -1)) : this._deviceRoomRotationQuaternion.multiplyToRef(this._leftHandSystemQuaternion, this._deviceRoomRotationQuaternion)), this._deviceRoomRotationQuaternion.multiplyToRef(this.rotationQuaternion, this._calculatedRotation)); } }), (t.prototype.attachToMesh = function (e) { if ( (this._mesh && (this._mesh.parent = null), (this._mesh = e), this._poseControlledCamera && (this._mesh.parent = this._poseControlledCamera), this._mesh.rotationQuaternion || (this._mesh.rotationQuaternion = new a.b()), !this.isXR && (this._updatePoseAndMesh(), this._pointingPoseNode)) ) { for (var t = [], n = this._pointingPoseNode; n.parent; ) t.push(n.parent), (n = n.parent); t.reverse().forEach(function (e) { e.computeWorldMatrix(!0); }); } this._meshAttachedObservable.notifyObservers(e); }), (t.prototype.attachToPoseControlledCamera = function (e) { (this._poseControlledCamera = e), this._mesh && (this._mesh.parent = this._poseControlledCamera); }), (t.prototype.dispose = function () { this._mesh && this._mesh.dispose(), (this._mesh = null), e.prototype.dispose.call(this); }), Object.defineProperty(t.prototype, "mesh", { get: function () { return this._mesh; }, enumerable: !0, configurable: !0, }), (t.prototype.getForwardRay = function (e) { if ((void 0 === e && (e = 100), !this.mesh)) return new Re(a.e.Zero(), new a.e(0, 0, 1), e); var t = this._pointingPoseNode ? this._pointingPoseNode.getWorldMatrix() : this.mesh.getWorldMatrix(), n = t.getTranslation(), i = new a.e(0, 0, -1), r = a.e.TransformNormal(i, t), o = a.e.Normalize(r); return new Re(n, o, e); }), (t.POINTING_POSE = "POINTING_POSE"), t ); })(Ye); !(function (e) { (e[(e.A = 0)] = "A"), (e[(e.B = 1)] = "B"), (e[(e.X = 2)] = "X"), (e[(e.Y = 3)] = "Y"), (e[(e.LB = 4)] = "LB"), (e[(e.RB = 5)] = "RB"), (e[(e.Back = 8)] = "Back"), (e[(e.Start = 9)] = "Start"), (e[(e.LeftStick = 10)] = "LeftStick"), (e[(e.RightStick = 11)] = "RightStick"); })(Rt || (Rt = {})), (function (e) { (e[(e.Up = 12)] = "Up"), (e[(e.Down = 13)] = "Down"), (e[(e.Left = 14)] = "Left"), (e[(e.Right = 15)] = "Right"); })(wt || (wt = {})); var Nt, kt, zt = (function (e) { function t(t, n, i, r) { void 0 === r && (r = !1); var a = e.call(this, t, n, i, 0, 1, 2, 3) || this; return ( (a._leftTrigger = 0), (a._rightTrigger = 0), (a.onButtonDownObservable = new o.c()), (a.onButtonUpObservable = new o.c()), (a.onPadDownObservable = new o.c()), (a.onPadUpObservable = new o.c()), (a._buttonA = 0), (a._buttonB = 0), (a._buttonX = 0), (a._buttonY = 0), (a._buttonBack = 0), (a._buttonStart = 0), (a._buttonLB = 0), (a._buttonRB = 0), (a._buttonLeftStick = 0), (a._buttonRightStick = 0), (a._dPadUp = 0), (a._dPadDown = 0), (a._dPadLeft = 0), (a._dPadRight = 0), (a._isXboxOnePad = !1), (a.type = Ye.XBOX), (a._isXboxOnePad = r), a ); } return ( Object(h.d)(t, e), (t.prototype.onlefttriggerchanged = function (e) { this._onlefttriggerchanged = e; }), (t.prototype.onrighttriggerchanged = function (e) { this._onrighttriggerchanged = e; }), Object.defineProperty(t.prototype, "leftTrigger", { get: function () { return this._leftTrigger; }, set: function (e) { this._onlefttriggerchanged && this._leftTrigger !== e && this._onlefttriggerchanged(e), (this._leftTrigger = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rightTrigger", { get: function () { return this._rightTrigger; }, set: function (e) { this._onrighttriggerchanged && this._rightTrigger !== e && this._onrighttriggerchanged(e), (this._rightTrigger = e); }, enumerable: !0, configurable: !0, }), (t.prototype.onbuttondown = function (e) { this._onbuttondown = e; }), (t.prototype.onbuttonup = function (e) { this._onbuttonup = e; }), (t.prototype.ondpaddown = function (e) { this._ondpaddown = e; }), (t.prototype.ondpadup = function (e) { this._ondpadup = e; }), (t.prototype._setButtonValue = function (e, t, n) { return ( e !== t && (1 === e && (this._onbuttondown && this._onbuttondown(n), this.onButtonDownObservable.notifyObservers(n)), 0 === e && (this._onbuttonup && this._onbuttonup(n), this.onButtonUpObservable.notifyObservers(n))), e ); }), (t.prototype._setDPadValue = function (e, t, n) { return e !== t && (1 === e && (this._ondpaddown && this._ondpaddown(n), this.onPadDownObservable.notifyObservers(n)), 0 === e && (this._ondpadup && this._ondpadup(n), this.onPadUpObservable.notifyObservers(n))), e; }), Object.defineProperty(t.prototype, "buttonA", { get: function () { return this._buttonA; }, set: function (e) { this._buttonA = this._setButtonValue(e, this._buttonA, Rt.A); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonB", { get: function () { return this._buttonB; }, set: function (e) { this._buttonB = this._setButtonValue(e, this._buttonB, Rt.B); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonX", { get: function () { return this._buttonX; }, set: function (e) { this._buttonX = this._setButtonValue(e, this._buttonX, Rt.X); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonY", { get: function () { return this._buttonY; }, set: function (e) { this._buttonY = this._setButtonValue(e, this._buttonY, Rt.Y); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonStart", { get: function () { return this._buttonStart; }, set: function (e) { this._buttonStart = this._setButtonValue(e, this._buttonStart, Rt.Start); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonBack", { get: function () { return this._buttonBack; }, set: function (e) { this._buttonBack = this._setButtonValue(e, this._buttonBack, Rt.Back); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonLB", { get: function () { return this._buttonLB; }, set: function (e) { this._buttonLB = this._setButtonValue(e, this._buttonLB, Rt.LB); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonRB", { get: function () { return this._buttonRB; }, set: function (e) { this._buttonRB = this._setButtonValue(e, this._buttonRB, Rt.RB); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonLeftStick", { get: function () { return this._buttonLeftStick; }, set: function (e) { this._buttonLeftStick = this._setButtonValue(e, this._buttonLeftStick, Rt.LeftStick); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonRightStick", { get: function () { return this._buttonRightStick; }, set: function (e) { this._buttonRightStick = this._setButtonValue(e, this._buttonRightStick, Rt.RightStick); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadUp", { get: function () { return this._dPadUp; }, set: function (e) { this._dPadUp = this._setDPadValue(e, this._dPadUp, wt.Up); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadDown", { get: function () { return this._dPadDown; }, set: function (e) { this._dPadDown = this._setDPadValue(e, this._dPadDown, wt.Down); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadLeft", { get: function () { return this._dPadLeft; }, set: function (e) { this._dPadLeft = this._setDPadValue(e, this._dPadLeft, wt.Left); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadRight", { get: function () { return this._dPadRight; }, set: function (e) { this._dPadRight = this._setDPadValue(e, this._dPadRight, wt.Right); }, enumerable: !0, configurable: !0, }), (t.prototype.update = function () { e.prototype.update.call(this), this._isXboxOnePad, (this.buttonA = this.browserGamepad.buttons[0].value), (this.buttonB = this.browserGamepad.buttons[1].value), (this.buttonX = this.browserGamepad.buttons[2].value), (this.buttonY = this.browserGamepad.buttons[3].value), (this.buttonLB = this.browserGamepad.buttons[4].value), (this.buttonRB = this.browserGamepad.buttons[5].value), (this.leftTrigger = this.browserGamepad.buttons[6].value), (this.rightTrigger = this.browserGamepad.buttons[7].value), (this.buttonBack = this.browserGamepad.buttons[8].value), (this.buttonStart = this.browserGamepad.buttons[9].value), (this.buttonLeftStick = this.browserGamepad.buttons[10].value), (this.buttonRightStick = this.browserGamepad.buttons[11].value), (this.dPadUp = this.browserGamepad.buttons[12].value), (this.dPadDown = this.browserGamepad.buttons[13].value), (this.dPadLeft = this.browserGamepad.buttons[14].value), (this.dPadRight = this.browserGamepad.buttons[15].value); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(), this.onPadDownObservable.clear(), this.onPadUpObservable.clear(); }), t ); })(Ye); !(function (e) { (e[(e.Cross = 0)] = "Cross"), (e[(e.Circle = 1)] = "Circle"), (e[(e.Square = 2)] = "Square"), (e[(e.Triangle = 3)] = "Triangle"), (e[(e.L1 = 4)] = "L1"), (e[(e.R1 = 5)] = "R1"), (e[(e.Share = 8)] = "Share"), (e[(e.Options = 9)] = "Options"), (e[(e.LeftStick = 10)] = "LeftStick"), (e[(e.RightStick = 11)] = "RightStick"); })(Nt || (Nt = {})), (function (e) { (e[(e.Up = 12)] = "Up"), (e[(e.Down = 13)] = "Down"), (e[(e.Left = 14)] = "Left"), (e[(e.Right = 15)] = "Right"); })(kt || (kt = {})); var jt = (function (e) { function t(t, n, i) { var r = e.call(this, t.replace("STANDARD GAMEPAD", "SONY PLAYSTATION DUALSHOCK"), n, i, 0, 1, 2, 3) || this; return ( (r._leftTrigger = 0), (r._rightTrigger = 0), (r.onButtonDownObservable = new o.c()), (r.onButtonUpObservable = new o.c()), (r.onPadDownObservable = new o.c()), (r.onPadUpObservable = new o.c()), (r._buttonCross = 0), (r._buttonCircle = 0), (r._buttonSquare = 0), (r._buttonTriangle = 0), (r._buttonShare = 0), (r._buttonOptions = 0), (r._buttonL1 = 0), (r._buttonR1 = 0), (r._buttonLeftStick = 0), (r._buttonRightStick = 0), (r._dPadUp = 0), (r._dPadDown = 0), (r._dPadLeft = 0), (r._dPadRight = 0), (r.type = Ye.DUALSHOCK), r ); } return ( Object(h.d)(t, e), (t.prototype.onlefttriggerchanged = function (e) { this._onlefttriggerchanged = e; }), (t.prototype.onrighttriggerchanged = function (e) { this._onrighttriggerchanged = e; }), Object.defineProperty(t.prototype, "leftTrigger", { get: function () { return this._leftTrigger; }, set: function (e) { this._onlefttriggerchanged && this._leftTrigger !== e && this._onlefttriggerchanged(e), (this._leftTrigger = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rightTrigger", { get: function () { return this._rightTrigger; }, set: function (e) { this._onrighttriggerchanged && this._rightTrigger !== e && this._onrighttriggerchanged(e), (this._rightTrigger = e); }, enumerable: !0, configurable: !0, }), (t.prototype.onbuttondown = function (e) { this._onbuttondown = e; }), (t.prototype.onbuttonup = function (e) { this._onbuttonup = e; }), (t.prototype.ondpaddown = function (e) { this._ondpaddown = e; }), (t.prototype.ondpadup = function (e) { this._ondpadup = e; }), (t.prototype._setButtonValue = function (e, t, n) { return ( e !== t && (1 === e && (this._onbuttondown && this._onbuttondown(n), this.onButtonDownObservable.notifyObservers(n)), 0 === e && (this._onbuttonup && this._onbuttonup(n), this.onButtonUpObservable.notifyObservers(n))), e ); }), (t.prototype._setDPadValue = function (e, t, n) { return e !== t && (1 === e && (this._ondpaddown && this._ondpaddown(n), this.onPadDownObservable.notifyObservers(n)), 0 === e && (this._ondpadup && this._ondpadup(n), this.onPadUpObservable.notifyObservers(n))), e; }), Object.defineProperty(t.prototype, "buttonCross", { get: function () { return this._buttonCross; }, set: function (e) { this._buttonCross = this._setButtonValue(e, this._buttonCross, Nt.Cross); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonCircle", { get: function () { return this._buttonCircle; }, set: function (e) { this._buttonCircle = this._setButtonValue(e, this._buttonCircle, Nt.Circle); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonSquare", { get: function () { return this._buttonSquare; }, set: function (e) { this._buttonSquare = this._setButtonValue(e, this._buttonSquare, Nt.Square); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonTriangle", { get: function () { return this._buttonTriangle; }, set: function (e) { this._buttonTriangle = this._setButtonValue(e, this._buttonTriangle, Nt.Triangle); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonOptions", { get: function () { return this._buttonOptions; }, set: function (e) { this._buttonOptions = this._setButtonValue(e, this._buttonOptions, Nt.Options); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonShare", { get: function () { return this._buttonShare; }, set: function (e) { this._buttonShare = this._setButtonValue(e, this._buttonShare, Nt.Share); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonL1", { get: function () { return this._buttonL1; }, set: function (e) { this._buttonL1 = this._setButtonValue(e, this._buttonL1, Nt.L1); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonR1", { get: function () { return this._buttonR1; }, set: function (e) { this._buttonR1 = this._setButtonValue(e, this._buttonR1, Nt.R1); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonLeftStick", { get: function () { return this._buttonLeftStick; }, set: function (e) { this._buttonLeftStick = this._setButtonValue(e, this._buttonLeftStick, Nt.LeftStick); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buttonRightStick", { get: function () { return this._buttonRightStick; }, set: function (e) { this._buttonRightStick = this._setButtonValue(e, this._buttonRightStick, Nt.RightStick); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadUp", { get: function () { return this._dPadUp; }, set: function (e) { this._dPadUp = this._setDPadValue(e, this._dPadUp, kt.Up); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadDown", { get: function () { return this._dPadDown; }, set: function (e) { this._dPadDown = this._setDPadValue(e, this._dPadDown, kt.Down); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadLeft", { get: function () { return this._dPadLeft; }, set: function (e) { this._dPadLeft = this._setDPadValue(e, this._dPadLeft, kt.Left); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dPadRight", { get: function () { return this._dPadRight; }, set: function (e) { this._dPadRight = this._setDPadValue(e, this._dPadRight, kt.Right); }, enumerable: !0, configurable: !0, }), (t.prototype.update = function () { e.prototype.update.call(this), (this.buttonCross = this.browserGamepad.buttons[0].value), (this.buttonCircle = this.browserGamepad.buttons[1].value), (this.buttonSquare = this.browserGamepad.buttons[2].value), (this.buttonTriangle = this.browserGamepad.buttons[3].value), (this.buttonL1 = this.browserGamepad.buttons[4].value), (this.buttonR1 = this.browserGamepad.buttons[5].value), (this.leftTrigger = this.browserGamepad.buttons[6].value), (this.rightTrigger = this.browserGamepad.buttons[7].value), (this.buttonShare = this.browserGamepad.buttons[8].value), (this.buttonOptions = this.browserGamepad.buttons[9].value), (this.buttonLeftStick = this.browserGamepad.buttons[10].value), (this.buttonRightStick = this.browserGamepad.buttons[11].value), (this.dPadUp = this.browserGamepad.buttons[12].value), (this.dPadDown = this.browserGamepad.buttons[13].value), (this.dPadLeft = this.browserGamepad.buttons[14].value), (this.dPadRight = this.browserGamepad.buttons[15].value); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(), this.onPadDownObservable.clear(), this.onPadUpObservable.clear(); }), t ); })(Ye), Bt = (function () { function e(e) { var t = this; if ( ((this._scene = e), (this._babylonGamepads = []), (this._oneGamepadConnected = !1), (this._isMonitoring = !1), (this.onGamepadDisconnectedObservable = new o.c()), Dt.a.IsWindowObjectExist() ? ((this._gamepadEventSupported = "GamepadEvent" in window), (this._gamepadSupport = navigator.getGamepads || navigator.webkitGetGamepads || navigator.msGetGamepads || navigator.webkitGamepads)) : (this._gamepadEventSupported = !1), (this.onGamepadConnectedObservable = new o.c(function (e) { for (var n in t._babylonGamepads) { var i = t._babylonGamepads[n]; i && i._isConnected && t.onGamepadConnectedObservable.notifyObserver(e, i); } })), (this._onGamepadConnectedEvent = function (e) { var n, i = e.gamepad; (i.index in t._babylonGamepads && t._babylonGamepads[i.index].isConnected) || (t._babylonGamepads[i.index] ? (((n = t._babylonGamepads[i.index]).browserGamepad = i), (n._isConnected = !0)) : (n = t._addNewGamepad(i)), t.onGamepadConnectedObservable.notifyObservers(n), t._startMonitoringGamepads()); }), (this._onGamepadDisconnectedEvent = function (e) { var n = e.gamepad; for (var i in t._babylonGamepads) if (t._babylonGamepads[i].index === n.index) { var r = t._babylonGamepads[i]; (r._isConnected = !1), t.onGamepadDisconnectedObservable.notifyObservers(r), r.dispose && r.dispose(); break; } }), this._gamepadSupport) ) if ((this._updateGamepadObjects(), this._babylonGamepads.length && this._startMonitoringGamepads(), this._gamepadEventSupported)) { var n = this._scene ? this._scene.getEngine().getHostWindow() : window; n && (n.addEventListener("gamepadconnected", this._onGamepadConnectedEvent, !1), n.addEventListener("gamepaddisconnected", this._onGamepadDisconnectedEvent, !1)); } else this._startMonitoringGamepads(); } return ( Object.defineProperty(e.prototype, "gamepads", { get: function () { return this._babylonGamepads; }, enumerable: !0, configurable: !0, }), (e.prototype.getGamepadByType = function (e) { void 0 === e && (e = Ye.XBOX); for (var t = 0, n = this._babylonGamepads; t < n.length; t++) { var i = n[t]; if (i && i.type === e) return i; } return null; }), (e.prototype.dispose = function () { this._gamepadEventSupported && (this._onGamepadConnectedEvent && window.removeEventListener("gamepadconnected", this._onGamepadConnectedEvent), this._onGamepadDisconnectedEvent && window.removeEventListener("gamepaddisconnected", this._onGamepadDisconnectedEvent), (this._onGamepadConnectedEvent = null), (this._onGamepadDisconnectedEvent = null)), this._babylonGamepads.forEach(function (e) { e.dispose(); }), this.onGamepadConnectedObservable.clear(), this.onGamepadDisconnectedObservable.clear(), (this._oneGamepadConnected = !1), this._stopMonitoringGamepads(), (this._babylonGamepads = []); }), (e.prototype._addNewGamepad = function (e) { var t; this._oneGamepadConnected || (this._oneGamepadConnected = !0); var n = -1 !== e.id.search("054c"), i = -1 !== e.id.search("Xbox One"); return ( (t = i || -1 !== e.id.search("Xbox 360") || -1 !== e.id.search("xinput") ? new zt(e.id, e.index, e, i) : n ? new jt(e.id, e.index, e) : e.pose ? Lt.InitiateController(e) : new Ke(e.id, e.index, e)), (this._babylonGamepads[t.index] = t), t ); }), (e.prototype._startMonitoringGamepads = function () { this._isMonitoring || ((this._isMonitoring = !0), this._scene || this._checkGamepadsStatus()); }), (e.prototype._stopMonitoringGamepads = function () { this._isMonitoring = !1; }), (e.prototype._checkGamepadsStatus = function () { var e = this; for (var t in (this._updateGamepadObjects(), this._babylonGamepads)) { var n = this._babylonGamepads[t]; n && n.isConnected && n.update(); } this._isMonitoring && !this._scene && ue.a.QueueNewFrame(function () { e._checkGamepadsStatus(); }); }), (e.prototype._updateGamepadObjects = function () { for (var e = navigator.getGamepads ? navigator.getGamepads() : navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : [], t = 0; t < e.length; t++) { var n = e[t]; if (n) if (this._babylonGamepads[n.index]) (this._babylonGamepads[t].browserGamepad = n), this._babylonGamepads[t].isConnected || ((this._babylonGamepads[t]._isConnected = !0), this.onGamepadConnectedObservable.notifyObservers(this._babylonGamepads[t])); else { var i = this._addNewGamepad(n); this.onGamepadConnectedObservable.notifyObservers(i); } } }), e ); })(); Object.defineProperty(ge.a.prototype, "gamepadManager", { get: function () { if (!this._gamepadManager) { this._gamepadManager = new Bt(this); var e = this._getComponent(me.a.NAME_GAMEPAD); e || ((e = new Vt(this)), this._addComponent(e)); } return this._gamepadManager; }, enumerable: !0, configurable: !0, }), (lt.a.prototype.addGamepad = function () { return this.add(new ht()), this; }), (nt.prototype.addGamepad = function () { return this.add(new Ze()), this; }); var Vt = (function () { function e(e) { (this.name = me.a.NAME_GAMEPAD), (this.scene = e); } return ( (e.prototype.register = function () { this.scene._beforeCameraUpdateStage.registerStep(me.a.STEP_BEFORECAMERAUPDATE_GAMEPAD, this, this._beforeCameraUpdate); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () { var e = this.scene._gamepadManager; e && (e.dispose(), (this.scene._gamepadManager = null)); }), (e.prototype._beforeCameraUpdate = function () { var e = this.scene._gamepadManager; e && e._isMonitoring && e._checkGamepadsStatus(); }), e ); })(); Ct.a.AddNodeConstructor("FreeCamera", function (e, t) { return function () { return new Gt(e, a.e.Zero(), t); }; }); var Gt = (function (e) { function t(t, n, i) { var r = e.call(this, t, n, i) || this; return r.inputs.addGamepad(), r; } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "gamepadAngularSensibility", { get: function () { var e = this.inputs.attached.gamepad; return e ? e.gamepadAngularSensibility : 0; }, set: function (e) { var t = this.inputs.attached.gamepad; t && (t.gamepadAngularSensibility = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "gamepadMoveSensibility", { get: function () { var e = this.inputs.attached.gamepad; return e ? e.gamepadMoveSensibility : 0; }, set: function (e) { var t = this.inputs.attached.gamepad; t && (t.gamepadMoveSensibility = e); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "UniversalCamera"; }), t ); })(Pt); (De.a._createDefaultParsedCamera = function (e, t) { return new Gt(e, a.e.Zero(), t); }), Ct.a.AddNodeConstructor("GamepadCamera", function (e, t) { return function () { return new Ut(e, a.e.Zero(), t); }; }); var Ut = (function (e) { function t(t, n, i) { return e.call(this, t, n, i) || this; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "GamepadCamera"; }), t ); })(Gt), Ht = n(107), Wt = n(24), Xt = n(7), Yt = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D leftSampler;\nvoid main(void)\n{\nvec4 leftFrag=texture2D(leftSampler,vUV);\nleftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);\nvec4 rightFrag=texture2D(textureSampler,vUV);\nrightFrag=vec4(rightFrag.r,1.0,1.0,1.0);\ngl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);\n}"; Xt.a.ShadersStore.anaglyphPixelShader = Yt; var Kt = (function (e) { function t(t, n, i, r, o, a) { var s = e.call(this, t, "anaglyph", null, ["leftSampler"], n, i[1], r, o, a) || this; return ( (s._passedProcess = i[0]._rigPostProcess), s.onApplyObservable.add(function (e) { e.setTextureFromPostProcess("leftSampler", s._passedProcess); }), s ); } return Object(h.d)(t, e), t; })(Wt.a); (De.a._setStereoscopicAnaglyphRigMode = function (e) { (e._rigCameras[0]._rigPostProcess = new Ht.b(e.name + "_passthru", 1, e._rigCameras[0])), (e._rigCameras[1]._rigPostProcess = new Kt(e.name + "_anaglyph", 1, e._rigCameras)); }), Ct.a.AddNodeConstructor("AnaglyphArcRotateCamera", function (e, t, n) { return function () { return new Zt(e, 0, 0, 1, a.e.Zero(), n.interaxial_distance, t); }; }); var Zt = (function (e) { function t(t, n, i, r, o, a, s) { var c = e.call(this, t, n, i, r, o, s) || this; return (c.interaxialDistance = a), c.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: a }), c; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "AnaglyphArcRotateCamera"; }), t ); })(xt); Ct.a.AddNodeConstructor("AnaglyphFreeCamera", function (e, t, n) { return function () { return new qt(e, a.e.Zero(), n.interaxial_distance, t); }; }); var qt = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, n, r) || this; return (o.interaxialDistance = i), o.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i }), o; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "AnaglyphFreeCamera"; }), t ); })(yt.a); Ct.a.AddNodeConstructor("AnaglyphGamepadCamera", function (e, t, n) { return function () { return new Qt(e, a.e.Zero(), n.interaxial_distance, t); }; }); var Qt = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, n, r) || this; return (o.interaxialDistance = i), o.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i }), o; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "AnaglyphGamepadCamera"; }), t ); })(Ut); Ct.a.AddNodeConstructor("AnaglyphUniversalCamera", function (e, t, n) { return function () { return new Jt(e, a.e.Zero(), n.interaxial_distance, t); }; }); var Jt = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, n, r) || this; return (o.interaxialDistance = i), o.setCameraRigMode(De.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i }), o; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "AnaglyphUniversalCamera"; }), t ); })(Gt), $t = "const vec3 TWO=vec3(2.0,2.0,2.0);\nvarying vec2 vUV;\nuniform sampler2D camASampler;\nuniform sampler2D textureSampler;\nuniform vec2 stepSize;\nvoid main(void)\n{\nbool useCamA;\nbool useCamB;\nvec2 texCoord1;\nvec2 texCoord2;\nvec3 frag1;\nvec3 frag2;\n#ifdef IS_STEREOSCOPIC_HORIZ\nuseCamB=vUV.x>0.5;\nuseCamA=!useCamB;\ntexCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);\ntexCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\n#else\n#ifdef IS_STEREOSCOPIC_INTERLACED\nfloat rowNum=floor(vUV.y/stepSize.y);\nuseCamA=mod(rowNum,2.0) == 1.0;\nuseCamB=mod(rowNum,2.0) == 0.0;\ntexCoord1=vec2(vUV.x,vUV.y);\ntexCoord2=vec2(vUV.x,vUV.y);\n#else\nuseCamB=vUV.y>0.5;\nuseCamA=!useCamB;\ntexCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);\ntexCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\n#endif\n#endif\n\nif (useCamB){\nfrag1=texture2D(textureSampler,texCoord1).rgb;\nfrag2=texture2D(textureSampler,texCoord2).rgb;\n}else if (useCamA){\nfrag1=texture2D(camASampler ,texCoord1).rgb;\nfrag2=texture2D(camASampler ,texCoord2).rgb;\n}else {\ndiscard;\n}\ngl_FragColor=vec4((frag1+frag2)/TWO,1.0);\n}\n"; Xt.a.ShadersStore.stereoscopicInterlacePixelShader = $t; var en = (function (e) { function t(t, n, i, r, o, s, c) { var l = e.call(this, t, "stereoscopicInterlace", ["stepSize"], ["camASampler"], 1, n[1], o, s, c, r ? "#define IS_STEREOSCOPIC_INTERLACED 1" : i ? "#define IS_STEREOSCOPIC_HORIZ 1" : void 0) || this; return ( (l._passedProcess = n[0]._rigPostProcess), (l._stepSize = new a.d(1 / l.width, 1 / l.height)), l.onSizeChangedObservable.add(function () { l._stepSize = new a.d(1 / l.width, 1 / l.height); }), l.onApplyObservable.add(function (e) { e.setTextureFromPostProcess("camASampler", l._passedProcess), e.setFloat2("stepSize", l._stepSize.x, l._stepSize.y); }), l ); } return Object(h.d)(t, e), t; })(Wt.a), tn = (function (e) { function t(t, n, i, r, o, s) { var c = e.call(this, t, "stereoscopicInterlace", ["stepSize"], ["camASampler"], 1, n[1], r, o, s, i ? "#define IS_STEREOSCOPIC_HORIZ 1" : void 0) || this; return ( (c._passedProcess = n[0]._rigPostProcess), (c._stepSize = new a.d(1 / c.width, 1 / c.height)), c.onSizeChangedObservable.add(function () { c._stepSize = new a.d(1 / c.width, 1 / c.height); }), c.onApplyObservable.add(function (e) { e.setTextureFromPostProcess("camASampler", c._passedProcess), e.setFloat2("stepSize", c._stepSize.x, c._stepSize.y); }), c ); } return Object(h.d)(t, e), t; })(Wt.a); (De.a._setStereoscopicRigMode = function (e) { var t = e.cameraRigMode === De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL || e.cameraRigMode === De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED, n = e.cameraRigMode === De.a.RIG_MODE_STEREOSCOPIC_INTERLACED; (e._rigCameras[0]._rigPostProcess = new Ht.b(e.name + "_passthru", 1, e._rigCameras[0])), (e._rigCameras[1]._rigPostProcess = new en(e.name + "_stereoInterlace", e._rigCameras, t, n)); }), Ct.a.AddNodeConstructor("StereoscopicArcRotateCamera", function (e, t, n) { return function () { return new nn(e, 0, 0, 1, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t); }; }); var nn = (function (e) { function t(t, n, i, r, o, a, s, c) { var l = e.call(this, t, n, i, r, o, c) || this; return (l.interaxialDistance = a), (l.isStereoscopicSideBySide = s), l.setCameraRigMode(s ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: a }), l; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "StereoscopicArcRotateCamera"; }), t ); })(xt); Ct.a.AddNodeConstructor("StereoscopicFreeCamera", function (e, t, n) { return function () { return new rn(e, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t); }; }); var rn = (function (e) { function t(t, n, i, r, o) { var a = e.call(this, t, n, o) || this; return (a.interaxialDistance = i), (a.isStereoscopicSideBySide = r), a.setCameraRigMode(r ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: i }), a; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "StereoscopicFreeCamera"; }), t ); })(yt.a); Ct.a.AddNodeConstructor("StereoscopicGamepadCamera", function (e, t, n) { return function () { return new on(e, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t); }; }); var on = (function (e) { function t(t, n, i, r, o) { var a = e.call(this, t, n, o) || this; return (a.interaxialDistance = i), (a.isStereoscopicSideBySide = r), a.setCameraRigMode(r ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: i }), a; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "StereoscopicGamepadCamera"; }), t ); })(Ut); Ct.a.AddNodeConstructor("StereoscopicFreeCamera", function (e, t, n) { return function () { return new an(e, a.e.Zero(), n.interaxial_distance, n.isStereoscopicSideBySide, t); }; }); var an = (function (e) { function t(t, n, i, r, o) { var a = e.call(this, t, n, o) || this; return (a.interaxialDistance = i), (a.isStereoscopicSideBySide = r), a.setCameraRigMode(r ? De.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : De.a.RIG_MODE_STEREOSCOPIC_OVERUNDER, { interaxialDistance: i }), a; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "StereoscopicUniversalCamera"; }), t ); })(Gt); Ct.a.AddNodeConstructor("VirtualJoysticksCamera", function (e, t) { return function () { return new sn(e, a.e.Zero(), t); }; }); var sn = (function (e) { function t(t, n, i) { var r = e.call(this, t, n, i) || this; return r.inputs.addVirtualJoystick(), r; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VirtualJoysticksCamera"; }), t ); })(yt.a), cn = (function () { function e() { (this.compensateDistortion = !0), (this.multiviewEnabled = !1); } return ( Object.defineProperty(e.prototype, "aspectRatio", { get: function () { return this.hResolution / (2 * this.vResolution); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "aspectRatioFov", { get: function () { return 2 * Math.atan((this.postProcessScaleFactor * this.vScreenSize) / (2 * this.eyeToScreenDistance)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "leftHMatrix", { get: function () { var e = (4 * (this.hScreenSize / 4 - this.lensSeparationDistance / 2)) / this.hScreenSize; return a.a.Translation(e, 0, 0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rightHMatrix", { get: function () { var e = (4 * (this.hScreenSize / 4 - this.lensSeparationDistance / 2)) / this.hScreenSize; return a.a.Translation(-e, 0, 0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "leftPreViewMatrix", { get: function () { return a.a.Translation(0.5 * this.interpupillaryDistance, 0, 0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rightPreViewMatrix", { get: function () { return a.a.Translation(-0.5 * this.interpupillaryDistance, 0, 0); }, enumerable: !0, configurable: !0, }), (e.GetDefault = function () { var t = new e(); return ( (t.hResolution = 1280), (t.vResolution = 800), (t.hScreenSize = 0.149759993), (t.vScreenSize = 0.0935999975), (t.vScreenCenter = 0.0467999987), (t.eyeToScreenDistance = 0.0410000011), (t.lensSeparationDistance = 0.063500002), (t.interpupillaryDistance = 0.064000003), (t.distortionK = [1, 0.219999999, 0.239999995, 0]), (t.chromaAbCorrection = [0.995999992, -0.00400000019, 1.01400006, 0]), (t.postProcessScaleFactor = 1.714605507808412), (t.lensCenterOffset = 0.151976421), t ); }), e ); })(), ln = n(8), un = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 LensCenter;\nuniform vec2 Scale;\nuniform vec2 ScaleIn;\nuniform vec4 HmdWarpParam;\nvec2 HmdWarp(vec2 in01) {\nvec2 theta=(in01-LensCenter)*ScaleIn;\nfloat rSq=theta.x*theta.x+theta.y*theta.y;\nvec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);\nreturn LensCenter+Scale*rvector;\n}\nvoid main(void)\n{\nvec2 tc=HmdWarp(vUV);\nif (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0)\ngl_FragColor=vec4(0.0,0.0,0.0,0.0);\nelse{\ngl_FragColor=texture2D(textureSampler,tc);\n}\n}"; Xt.a.ShadersStore.vrDistortionCorrectionPixelShader = un; var hn = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, "vrDistortionCorrection", ["LensCenter", "Scale", "ScaleIn", "HmdWarpParam"], null, r.postProcessScaleFactor, n, ln.a.BILINEAR_SAMPLINGMODE) || this; return ( (o._isRightEye = i), (o._distortionFactors = r.distortionK), (o._postProcessScaleFactor = r.postProcessScaleFactor), (o._lensCenterOffset = r.lensCenterOffset), (o.adaptScaleToCurrentViewport = !0), o.onSizeChangedObservable.add(function () { (o._scaleIn = new a.d(2, 2 / o.aspectRatio)), (o._scaleFactor = new a.d((1 / o._postProcessScaleFactor) * 0.5, (1 / o._postProcessScaleFactor) * 0.5 * o.aspectRatio)), (o._lensCenter = new a.d(o._isRightEye ? 0.5 - 0.5 * o._lensCenterOffset : 0.5 + 0.5 * o._lensCenterOffset, 0.5)); }), o.onApplyObservable.add(function (e) { e.setFloat2("LensCenter", o._lensCenter.x, o._lensCenter.y), e.setFloat2("Scale", o._scaleFactor.x, o._scaleFactor.y), e.setFloat2("ScaleIn", o._scaleIn.x, o._scaleIn.y), e.setFloat4("HmdWarpParam", o._distortionFactors[0], o._distortionFactors[1], o._distortionFactors[2], o._distortionFactors[3]); }), o ); } return Object(h.d)(t, e), t; })(Wt.a), dn = "precision mediump sampler2DArray;\nvarying vec2 vUV;\nuniform sampler2DArray multiviewSampler;\nuniform int imageIndex;\nvoid main(void)\n{\ngl_FragColor=texture(multiviewSampler,vec3(vUV,imageIndex));\n}"; Xt.a.ShadersStore.vrMultiviewToSingleviewPixelShader = dn; var pn = n(32), fn = n(124), mn = n(44), gn = (function (e) { function t(t, n) { void 0 === n && (n = 512); var i = e.call(this, "multiview rtt", n, t, !1, !0, pn.b.Unknown, !1, void 0, !1, !1, !0, void 0, !0) || this, r = t.getEngine().createMultiviewRenderTargetTexture(i.getRenderWidth(), i.getRenderHeight()); return (r.isMultiview = !0), (r.format = 5), (i._texture = r), (i.samples = i._engine.getCaps().maxSamples || i.samples), i; } return ( Object(h.d)(t, e), (t.prototype._bindFrameBuffer = function (e) { void 0 === e && (e = 0), this._texture && this.getScene().getEngine().bindMultiviewFramebuffer(this._texture); }), (t.prototype.getViewCount = function () { return 2; }), t ); })(mn.a), bn = n(128); (ue.a.prototype.createMultiviewRenderTargetTexture = function (e, t) { var n = this._gl; if (!this.getCaps().multiview) throw "Multiview is not supported"; var i = new pn.a(this, pn.b.Unknown, !0); return ( (i.width = e), (i.height = t), (i._framebuffer = n.createFramebuffer()), (i._colorTextureArray = n.createTexture()), n.bindTexture(n.TEXTURE_2D_ARRAY, i._colorTextureArray), n.texStorage3D(n.TEXTURE_2D_ARRAY, 1, n.RGBA8, e, t, 2), (i._depthStencilTextureArray = n.createTexture()), n.bindTexture(n.TEXTURE_2D_ARRAY, i._depthStencilTextureArray), n.texStorage3D(n.TEXTURE_2D_ARRAY, 1, n.DEPTH32F_STENCIL8, e, t, 2), (i.isReady = !0), i ); }), (ue.a.prototype.bindMultiviewFramebuffer = function (e) { var t = this._gl, n = this.getCaps().oculusMultiview || this.getCaps().multiview; if ((this.bindFramebuffer(e, void 0, void 0, void 0, !0), t.bindFramebuffer(t.DRAW_FRAMEBUFFER, e._framebuffer), !e._colorTextureArray || !e._depthStencilTextureArray)) throw "Invalid multiview frame buffer"; this.getCaps().oculusMultiview ? (n.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, e.samples, 0, 2), n.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, e._depthStencilTextureArray, 0, e.samples, 0, 2)) : (n.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, 0, 2), n.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, e._depthStencilTextureArray, 0, 0, 2)); }), (De.a.prototype._useMultiviewToSingleView = !1), (De.a.prototype._multiviewTexture = null), (De.a.prototype._resizeOrCreateMultiviewTexture = function (e, t) { this._multiviewTexture ? (this._multiviewTexture.getRenderWidth() == e && this._multiviewTexture.getRenderHeight() == t) || (this._multiviewTexture.dispose(), (this._multiviewTexture = new gn(this.getScene(), { width: e, height: t }))) : (this._multiviewTexture = new gn(this.getScene(), { width: e, height: t })); }), (ge.a.prototype._transformMatrixR = a.a.Zero()), (ge.a.prototype._multiviewSceneUbo = null), (ge.a.prototype._createMultiviewUbo = function () { (this._multiviewSceneUbo = new fn.a(this.getEngine(), void 0, !0)), this._multiviewSceneUbo.addUniform("viewProjection", 16), this._multiviewSceneUbo.addUniform("viewProjectionR", 16), this._multiviewSceneUbo.addUniform("view", 16); }), (ge.a.prototype._updateMultiviewUbo = function (e, t) { e && t && e.multiplyToRef(t, this._transformMatrixR), e && t && (e.multiplyToRef(t, a.c.Matrix[0]), bn.a.GetRightPlaneToRef(a.c.Matrix[0], this._frustumPlanes[3])), this._multiviewSceneUbo && (this._multiviewSceneUbo.updateMatrix("viewProjection", this.getTransformMatrix()), this._multiviewSceneUbo.updateMatrix("viewProjectionR", this._transformMatrixR), this._multiviewSceneUbo.updateMatrix("view", this._viewMatrix), this._multiviewSceneUbo.update()); }), (ge.a.prototype._renderMultiviewToSingleView = function (e) { e._resizeOrCreateMultiviewTexture( e._rigPostProcess && e._rigPostProcess && e._rigPostProcess.width > 0 ? e._rigPostProcess.width : this.getEngine().getRenderWidth(!0), e._rigPostProcess && e._rigPostProcess && e._rigPostProcess.height > 0 ? e._rigPostProcess.height : this.getEngine().getRenderHeight(!0) ), this._multiviewSceneUbo || this._createMultiviewUbo(), (e.outputRenderTarget = e._multiviewTexture), this._renderForCamera(e), (e.outputRenderTarget = null); for (var t = 0; t < e._rigCameras.length; t++) { var n = this.getEngine(); (this._activeCamera = e._rigCameras[t]), n.setViewport(this._activeCamera.viewport), this.postProcessManager && (this.postProcessManager._prepareFrame(), this.postProcessManager._finalizeFrame(this._activeCamera.isIntermediate)); } }); var _n = (function (e) { function t(t, n, i) { var r = e.call(this, t, "vrMultiviewToSingleview", ["imageIndex"], ["multiviewSampler"], i, n, ln.a.BILINEAR_SAMPLINGMODE) || this; return ( r.onSizeChangedObservable.add(function () {}), r.onApplyObservable.add(function (e) { n._scene.activeCamera && n._scene.activeCamera.isLeftCamera ? e.setInt("imageIndex", 0) : e.setInt("imageIndex", 1), e.setTexture("multiviewSampler", n._multiviewTexture); }), r ); } return Object(h.d)(t, e), t; })(Wt.a), vn = n(77); (De.a._setVRRigMode = function (e, t) { var n = t.vrCameraMetrics || cn.GetDefault(); (e._rigCameras[0]._cameraRigParams.vrMetrics = n), (e._rigCameras[0].viewport = new vn.a(0, 0, 0.5, 1)), (e._rigCameras[0]._cameraRigParams.vrWorkMatrix = new a.a()), (e._rigCameras[0]._cameraRigParams.vrHMatrix = n.leftHMatrix), (e._rigCameras[0]._cameraRigParams.vrPreViewMatrix = n.leftPreViewMatrix), (e._rigCameras[0].getProjectionMatrix = e._rigCameras[0]._getVRProjectionMatrix), (e._rigCameras[1]._cameraRigParams.vrMetrics = n), (e._rigCameras[1].viewport = new vn.a(0.5, 0, 0.5, 1)), (e._rigCameras[1]._cameraRigParams.vrWorkMatrix = new a.a()), (e._rigCameras[1]._cameraRigParams.vrHMatrix = n.rightHMatrix), (e._rigCameras[1]._cameraRigParams.vrPreViewMatrix = n.rightPreViewMatrix), (e._rigCameras[1].getProjectionMatrix = e._rigCameras[1]._getVRProjectionMatrix), n.multiviewEnabled && (e.getScene().getEngine().getCaps().multiview ? ((e._useMultiviewToSingleView = !0), (e._rigPostProcess = new _n("VRMultiviewToSingleview", e, n.postProcessScaleFactor))) : (g.a.Warn("Multiview is not supported, falling back to standard rendering"), (n.multiviewEnabled = !1))), n.compensateDistortion && ((e._rigCameras[0]._rigPostProcess = new hn("VR_Distort_Compensation_Left", e._rigCameras[0], !1, n)), (e._rigCameras[1]._rigPostProcess = new hn("VR_Distort_Compensation_Right", e._rigCameras[1], !0, n))); }), Ct.a.AddNodeConstructor("VRDeviceOrientationFreeCamera", function (e, t) { return function () { return new yn(e, 0, 0, 1, a.e.Zero(), t); }; }); var yn = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === s && (s = !0), void 0 === c && (c = cn.GetDefault()); var l = e.call(this, t, n, i, r, o, a) || this; return (c.compensateDistortion = s), l.setCameraRigMode(De.a.RIG_MODE_VR, { vrCameraMetrics: c }), l.inputs.addVRDeviceOrientation(), l; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VRDeviceOrientationArcRotateCamera"; }), t ); })(xt); Ct.a.AddNodeConstructor("VRDeviceOrientationFreeCamera", function (e, t) { return function () { return new Cn(e, a.e.Zero(), t); }; }); var Cn = (function (e) { function t(t, n, i, r, o) { void 0 === r && (r = !0), void 0 === o && (o = cn.GetDefault()); var a = e.call(this, t, n, i) || this; return (o.compensateDistortion = r), a.setCameraRigMode(De.a.RIG_MODE_VR, { vrCameraMetrics: o }), a; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VRDeviceOrientationFreeCamera"; }), t ); })(Tt); Ct.a.AddNodeConstructor("VRDeviceOrientationGamepadCamera", function (e, t) { return function () { return new Pn(e, a.e.Zero(), t); }; }); var Pn = (function (e) { function t(t, n, i, r, o) { void 0 === r && (r = !0), void 0 === o && (o = cn.GetDefault()); var a = e.call(this, t, n, i, r, o) || this; return a.inputs.addGamepad(), a; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VRDeviceOrientationGamepadCamera"; }), t ); })(Cn), xn = n(96); De.a._setWebVRRigMode = function (e, t) { if (t.vrDisplay) { var n = t.vrDisplay.getEyeParameters("left"), i = t.vrDisplay.getEyeParameters("right"); (e._rigCameras[0].viewport = new vn.a(0, 0, 0.5, 1)), e._rigCameras[0].setCameraRigParameter("left", !0), e._rigCameras[0].setCameraRigParameter("specs", t.specs), e._rigCameras[0].setCameraRigParameter("eyeParameters", n), e._rigCameras[0].setCameraRigParameter("frameData", t.frameData), e._rigCameras[0].setCameraRigParameter("parentCamera", t.parentCamera), (e._rigCameras[0]._cameraRigParams.vrWorkMatrix = new a.a()), (e._rigCameras[0].getProjectionMatrix = e._getWebVRProjectionMatrix), (e._rigCameras[0].parent = e), (e._rigCameras[0]._getViewMatrix = e._getWebVRViewMatrix), (e._rigCameras[1].viewport = new vn.a(0.5, 0, 0.5, 1)), e._rigCameras[1].setCameraRigParameter("eyeParameters", i), e._rigCameras[1].setCameraRigParameter("specs", t.specs), e._rigCameras[1].setCameraRigParameter("frameData", t.frameData), e._rigCameras[1].setCameraRigParameter("parentCamera", t.parentCamera), (e._rigCameras[1]._cameraRigParams.vrWorkMatrix = new a.a()), (e._rigCameras[1].getProjectionMatrix = e._getWebVRProjectionMatrix), (e._rigCameras[1].parent = e), (e._rigCameras[1]._getViewMatrix = e._getWebVRViewMatrix); } }; var Tn = n(109); Object.defineProperty(ue.a.prototype, "isInVRExclusivePointerMode", { get: function () { return this._vrExclusivePointerMode; }, enumerable: !0, configurable: !0, }), (ue.a.prototype._prepareVRComponent = function () { (this._vrSupported = !1), (this._vrExclusivePointerMode = !1), (this.onVRDisplayChangedObservable = new o.c()), (this.onVRRequestPresentComplete = new o.c()), (this.onVRRequestPresentStart = new o.c()); }), (ue.a.prototype.isVRDevicePresent = function () { return !!this._vrDisplay; }), (ue.a.prototype.getVRDevice = function () { return this._vrDisplay; }), (ue.a.prototype.initWebVR = function () { return this.initWebVRAsync(), this.onVRDisplayChangedObservable; }), (ue.a.prototype.initWebVRAsync = function () { var e = this, t = function () { var t = { vrDisplay: e._vrDisplay, vrSupported: e._vrSupported }; e.onVRDisplayChangedObservable.notifyObservers(t), (e._webVRInitPromise = new Promise(function (e) { e(t); })); }; if (!this._onVrDisplayConnect) { (this._onVrDisplayConnect = function (n) { (e._vrDisplay = n.display), t(); }), (this._onVrDisplayDisconnect = function () { e._vrDisplay.cancelAnimationFrame(e._frameHandler), (e._vrDisplay = void 0), (e._frameHandler = ue.a.QueueNewFrame(e._boundRenderFunction)), t(); }), (this._onVrDisplayPresentChange = function () { e._vrExclusivePointerMode = e._vrDisplay && e._vrDisplay.isPresenting; }); var n = this.getHostWindow(); n && (n.addEventListener("vrdisplayconnect", this._onVrDisplayConnect), n.addEventListener("vrdisplaydisconnect", this._onVrDisplayDisconnect), n.addEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange)); } return (this._webVRInitPromise = this._webVRInitPromise || this._getVRDisplaysAsync()), this._webVRInitPromise.then(t), this._webVRInitPromise; }), (ue.a.prototype._getVRDisplaysAsync = function () { var e = this; return new Promise(function (t) { navigator.getVRDisplays ? navigator.getVRDisplays().then(function (n) { (e._vrSupported = !0), (e._vrDisplay = n[0]), t({ vrDisplay: e._vrDisplay, vrSupported: e._vrSupported }); }) : ((e._vrDisplay = void 0), (e._vrSupported = !1), t({ vrDisplay: e._vrDisplay, vrSupported: e._vrSupported })); }); }), (ue.a.prototype.enableVR = function (e) { var t = this; if (this._vrDisplay && !this._vrDisplay.isPresenting) { this.onVRRequestPresentStart.notifyObservers(this); var n = { highRefreshRate: !!this.vrPresentationAttributes && this.vrPresentationAttributes.highRefreshRate, foveationLevel: this.vrPresentationAttributes ? this.vrPresentationAttributes.foveationLevel : 1, multiview: (this.getCaps().multiview || this.getCaps().oculusMultiview) && e.useMultiview, }; this._vrDisplay .requestPresent([Object(h.a)({ source: this.getRenderingCanvas(), attributes: n }, n)]) .then(function () { t.onVRRequestPresentComplete.notifyObservers(!0), t._onVRFullScreenTriggered(); }) .catch(function () { t.onVRRequestPresentComplete.notifyObservers(!1); }); } }), (ue.a.prototype._onVRFullScreenTriggered = function () { if (this._vrDisplay && this._vrDisplay.isPresenting) { (this._oldSize = new Tn.a(this.getRenderWidth(), this.getRenderHeight())), (this._oldHardwareScaleFactor = this.getHardwareScalingLevel()); var e = this._vrDisplay.getEyeParameters("left"); this.setHardwareScalingLevel(1), this.setSize(2 * e.renderWidth, e.renderHeight); } else this.setHardwareScalingLevel(this._oldHardwareScaleFactor), this.setSize(this._oldSize.width, this._oldSize.height); }), (ue.a.prototype.disableVR = function () { var e = this; this._vrDisplay && this._vrDisplay.isPresenting && this._vrDisplay .exitPresent() .then(function () { return e._onVRFullScreenTriggered(); }) .catch(function () { return e._onVRFullScreenTriggered(); }), Dt.a.IsWindowObjectExist() && (window.removeEventListener("vrdisplaypointerrestricted", this._onVRDisplayPointerRestricted), window.removeEventListener("vrdisplaypointerunrestricted", this._onVRDisplayPointerUnrestricted), this._onVrDisplayConnect && (window.removeEventListener("vrdisplayconnect", this._onVrDisplayConnect), this._onVrDisplayDisconnect && window.removeEventListener("vrdisplaydisconnect", this._onVrDisplayDisconnect), this._onVrDisplayPresentChange && window.removeEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange), (this._onVrDisplayConnect = null), (this._onVrDisplayDisconnect = null))); }), (ue.a.prototype._connectVREvents = function (e, t) { var n = this; if ( ((this._onVRDisplayPointerRestricted = function () { e && e.requestPointerLock(); }), (this._onVRDisplayPointerUnrestricted = function () { if (t) t.exitPointerLock && t.exitPointerLock(); else { var e = n.getHostWindow(); e.document && e.document.exitPointerLock && e.document.exitPointerLock(); } }), Dt.a.IsWindowObjectExist()) ) { var i = this.getHostWindow(); i.addEventListener("vrdisplaypointerrestricted", this._onVRDisplayPointerRestricted, !1), i.addEventListener("vrdisplaypointerunrestricted", this._onVRDisplayPointerUnrestricted, !1); } }), (ue.a.prototype._submitVRFrame = function () { if (this._vrDisplay && this._vrDisplay.isPresenting) try { this._vrDisplay.submitFrame(); } catch (e) { $e.b.Warn("webVR submitFrame has had an unexpected failure: " + e); } }), (ue.a.prototype.isVRPresenting = function () { return this._vrDisplay && this._vrDisplay.isPresenting; }), (ue.a.prototype._requestVRFrame = function () { this._frameHandler = ue.a.QueueNewFrame(this._boundRenderFunction, this._vrDisplay); }), Ct.a.AddNodeConstructor("WebVRFreeCamera", function (e, t) { return function () { return new Sn(e, a.e.Zero(), t); }; }), Ct.a.AddNodeConstructor("WebVRGamepadCamera", function (e, t) { return function () { return new Sn(e, a.e.Zero(), t); }; }); var Sn = (function (e) { function t(t, n, i, r) { void 0 === r && (r = {}); var s = e.call(this, t, n, i) || this; (s.webVROptions = r), (s._vrDevice = null), (s.rawPose = null), (s._specsVersion = "1.1"), (s._attached = !1), (s._descendants = []), (s._deviceRoomPosition = a.e.Zero()), (s._deviceRoomRotationQuaternion = a.b.Identity()), (s._standingMatrix = null), (s.devicePosition = a.e.Zero()), (s.deviceRotationQuaternion = a.b.Identity()), (s.deviceScaleFactor = 1), (s._deviceToWorld = a.a.Identity()), (s._worldToDevice = a.a.Identity()), (s.controllers = []), (s.onControllersAttachedObservable = new o.c()), (s.onControllerMeshLoadedObservable = new o.c()), (s.onPoseUpdatedFromDeviceObservable = new o.c()), (s._poseSet = !1), (s.rigParenting = !0), (s._defaultHeight = void 0), (s._htmlElementAttached = null), (s._detachIfAttached = function () { var e = s.getEngine().getVRDevice(); e && !e.isPresenting && s._htmlElementAttached && s.detachControl(s._htmlElementAttached); }), (s._workingVector = a.e.Zero()), (s._oneVector = a.e.One()), (s._workingMatrix = a.a.Identity()), (s._tmpMatrix = new a.a()), (s._cache.position = a.e.Zero()), r.defaultHeight && ((s._defaultHeight = r.defaultHeight), (s.position.y = s._defaultHeight)), (s.minZ = 0.1), 5 === arguments.length && (s.webVROptions = arguments[4]), null == s.webVROptions.trackPosition && (s.webVROptions.trackPosition = !0), null == s.webVROptions.controllerMeshes && (s.webVROptions.controllerMeshes = !0), null == s.webVROptions.defaultLightingOnControllers && (s.webVROptions.defaultLightingOnControllers = !0), (s.rotationQuaternion = new a.b()), s.webVROptions && s.webVROptions.positionScale && (s.deviceScaleFactor = s.webVROptions.positionScale); var c = s.getEngine(); return ( (s._onVREnabled = function (e) { e && s.initControllers(); }), c.onVRRequestPresentComplete.add(s._onVREnabled), c.initWebVR().add(function (e) { e.vrDisplay && s._vrDevice !== e.vrDisplay && ((s._vrDevice = e.vrDisplay), s.setCameraRigMode(De.a.RIG_MODE_WEBVR, { parentCamera: s, vrDisplay: s._vrDevice, frameData: s._frameData, specs: s._specsVersion }), s._attached && s.getEngine().enableVR(s.webVROptions)); }), "undefined" != typeof VRFrameData && (s._frameData = new VRFrameData()), r.useMultiview && (s.getScene().getEngine().getCaps().multiview ? ((s._useMultiviewToSingleView = !0), (s._rigPostProcess = new _n("VRMultiviewToSingleview", s, 1))) : (g.a.Warn("Multiview is not supported, falling back to standard rendering"), (s._useMultiviewToSingleView = !1))), i.onBeforeCameraRenderObservable.add(function (e) { e.parent === s && s.rigParenting && ((s._descendants = s.getDescendants(!0, function (e) { var t = s.controllers.some(function (t) { return t._mesh === e; }), n = -1 !== s._rigCameras.indexOf(e); return !t && !n; })), s._descendants.forEach(function (t) { t.parent = e; })); }), i.onAfterCameraRenderObservable.add(function (e) { e.parent === s && s.rigParenting && s._descendants.forEach(function (e) { e.parent = s; }); }), s ); } return ( Object(h.d)(t, e), (t.prototype.deviceDistanceToRoomGround = function () { return this._standingMatrix ? (this._standingMatrix.getTranslationToRef(this._workingVector), this._deviceRoomPosition.y + this._workingVector.y) : this._defaultHeight || 0; }), (t.prototype.useStandingMatrix = function (e) { var t = this; void 0 === e && (e = function (e) {}), this.getEngine() .initWebVRAsync() .then(function (n) { n.vrDisplay && n.vrDisplay.stageParameters && n.vrDisplay.stageParameters.sittingToStandingTransform && t.webVROptions.trackPosition ? ((t._standingMatrix = new a.a()), a.a.FromFloat32ArrayToRefScaled(n.vrDisplay.stageParameters.sittingToStandingTransform, 0, 1, t._standingMatrix), t.getScene().useRightHandedSystem || (t._standingMatrix && t._standingMatrix.toggleModelMatrixHandInPlace()), e(!0)) : e(!1); }); }), (t.prototype.useStandingMatrixAsync = function () { var e = this; return new Promise(function (t) { e.useStandingMatrix(function (e) { t(e); }); }); }), (t.prototype.dispose = function () { this._detachIfAttached(), this.getEngine().onVRRequestPresentComplete.removeCallback(this._onVREnabled), this._updateCacheWhenTrackingDisabledObserver && this._scene.onBeforeRenderObservable.remove(this._updateCacheWhenTrackingDisabledObserver), e.prototype.dispose.call(this); }), (t.prototype.getControllerByName = function (e) { for (var t = 0, n = this.controllers; t < n.length; t++) { var i = n[t]; if (i.hand === e) return i; } return null; }), Object.defineProperty(t.prototype, "leftController", { get: function () { return this._leftController || (this._leftController = this.getControllerByName("left")), this._leftController; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rightController", { get: function () { return this._rightController || (this._rightController = this.getControllerByName("right")), this._rightController; }, enumerable: !0, configurable: !0, }), (t.prototype.getForwardRay = function (t) { return void 0 === t && (t = 100), this.leftCamera ? e.prototype.getForwardRay.call(this, t, this.leftCamera.getWorldMatrix(), this.leftCamera.globalPosition) : e.prototype.getForwardRay.call(this, t); }), (t.prototype._checkInputs = function () { this._vrDevice && this._vrDevice.isPresenting && (this._vrDevice.getFrameData(this._frameData), this.updateFromDevice(this._frameData.pose)), e.prototype._checkInputs.call(this); }), (t.prototype.updateFromDevice = function (e) { e && e.orientation && 4 === e.orientation.length && ((this.rawPose = e), this._deviceRoomRotationQuaternion.copyFromFloats(e.orientation[0], e.orientation[1], -e.orientation[2], -e.orientation[3]), this.getScene().useRightHandedSystem && ((this._deviceRoomRotationQuaternion.z *= -1), (this._deviceRoomRotationQuaternion.w *= -1)), this.webVROptions.trackPosition && this.rawPose.position && (this._deviceRoomPosition.copyFromFloats(this.rawPose.position[0], this.rawPose.position[1], -this.rawPose.position[2]), this.getScene().useRightHandedSystem && (this._deviceRoomPosition.z *= -1)), (this._poseSet = !0)); }), (t.prototype.attachControl = function (t, n) { e.prototype.attachControl.call(this, t, n), (this._attached = !0), (this._htmlElementAttached = t), (n = !De.a.ForceAttachControlToAlwaysPreventDefault && n), this._vrDevice && this.getEngine().enableVR(this.webVROptions); var i = this._scene.getEngine().getHostWindow(); i && i.addEventListener("vrdisplaypresentchange", this._detachIfAttached); }), (t.prototype.detachControl = function (t) { this.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver), this.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver), e.prototype.detachControl.call(this, t), (this._attached = !1), this.getEngine().disableVR(), window.removeEventListener("vrdisplaypresentchange", this._detachIfAttached); }), (t.prototype.getClassName = function () { return "WebVRFreeCamera"; }), (t.prototype.resetToCurrentRotation = function () { this._vrDevice.resetPose(); }), (t.prototype._updateRigCameras = function () { var e = this._rigCameras[0], t = this._rigCameras[1]; e.rotationQuaternion.copyFrom(this._deviceRoomRotationQuaternion), t.rotationQuaternion.copyFrom(this._deviceRoomRotationQuaternion), e.position.copyFrom(this._deviceRoomPosition), t.position.copyFrom(this._deviceRoomPosition); }), (t.prototype._correctPositionIfNotTrackPosition = function (e, t) { void 0 === t && (t = !1), this.rawPose && this.rawPose.position && !this.webVROptions.trackPosition && (a.a.TranslationToRef(this.rawPose.position[0], this.rawPose.position[1], -this.rawPose.position[2], this._tmpMatrix), t || this._tmpMatrix.invert(), this._tmpMatrix.multiplyToRef(e, e)); }), (t.prototype._updateCache = function (t) { var n = this; (this.rotationQuaternion.equals(this._cache.rotationQuaternion) && this.position.equals(this._cache.position)) || (this.updateCacheCalled || ((this.updateCacheCalled = !0), this.update()), this.rotationQuaternion.toRotationMatrix(this._workingMatrix), a.e.TransformCoordinatesToRef(this._deviceRoomPosition, this._workingMatrix, this._workingVector), this.devicePosition.subtractToRef(this._workingVector, this._workingVector), a.a.ComposeToRef(this._oneVector, this.rotationQuaternion, this._workingVector, this._deviceToWorld), this._deviceToWorld.getTranslationToRef(this._workingVector), this._workingVector.addInPlace(this.position), this._workingVector.subtractInPlace(this._cache.position), this._deviceToWorld.setTranslation(this._workingVector), this._deviceToWorld.invertToRef(this._worldToDevice), this.controllers.forEach(function (e) { e._deviceToWorld.copyFrom(n._deviceToWorld), n._correctPositionIfNotTrackPosition(e._deviceToWorld), e.update(); })), t || e.prototype._updateCache.call(this), (this.updateCacheCalled = !1); }), (t.prototype._computeDevicePosition = function () { a.e.TransformCoordinatesToRef(this._deviceRoomPosition, this._deviceToWorld, this.devicePosition); }), (t.prototype.update = function () { this._computeDevicePosition(), a.a.FromQuaternionToRef(this._deviceRoomRotationQuaternion, this._workingMatrix), this._workingMatrix.multiplyToRef(this._deviceToWorld, this._workingMatrix), a.b.FromRotationMatrixToRef(this._workingMatrix, this.deviceRotationQuaternion), this._poseSet && this.onPoseUpdatedFromDeviceObservable.notifyObservers(null), e.prototype.update.call(this); }), (t.prototype._getViewMatrix = function () { return a.a.Identity(); }), (t.prototype._getWebVRViewMatrix = function () { var e = this._cameraRigParams.parentCamera; e._updateCache(); var t = this._cameraRigParams.left ? this._cameraRigParams.frameData.leftViewMatrix : this._cameraRigParams.frameData.rightViewMatrix; return ( a.a.FromArrayToRef(t, 0, this._webvrViewMatrix), this.getScene().useRightHandedSystem || this._webvrViewMatrix.toggleModelMatrixHandInPlace(), this._webvrViewMatrix.getRotationMatrixToRef(this._cameraRotationMatrix), a.e.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint), this.position.addToRef(this._transformedReferencePoint, this._currentTarget), 1 !== e.deviceScaleFactor && (this._webvrViewMatrix.invert(), e.deviceScaleFactor && (this._webvrViewMatrix.multiplyAtIndex(12, e.deviceScaleFactor), this._webvrViewMatrix.multiplyAtIndex(13, e.deviceScaleFactor), this._webvrViewMatrix.multiplyAtIndex(14, e.deviceScaleFactor)), this._webvrViewMatrix.invert()), e._correctPositionIfNotTrackPosition(this._webvrViewMatrix, !0), e._worldToDevice.multiplyToRef(this._webvrViewMatrix, this._webvrViewMatrix), (this._workingMatrix = this._workingMatrix || a.a.Identity()), this._webvrViewMatrix.invertToRef(this._workingMatrix), this._workingMatrix.multiplyToRef(e.getWorldMatrix(), this._workingMatrix), this._workingMatrix.getTranslationToRef(this._globalPosition), this._markSyncedWithParent(), this._webvrViewMatrix ); }), (t.prototype._getWebVRProjectionMatrix = function () { var e = this.parent; (e._vrDevice.depthNear = e.minZ), (e._vrDevice.depthFar = e.maxZ); var t = this._cameraRigParams.left ? this._cameraRigParams.frameData.leftProjectionMatrix : this._cameraRigParams.frameData.rightProjectionMatrix; return a.a.FromArrayToRef(t, 0, this._projectionMatrix), this.getScene().useRightHandedSystem || this._projectionMatrix.toggleProjectionMatrixHandInPlace(), this._projectionMatrix; }), (t.prototype.initControllers = function () { var e = this; this.controllers = []; var t = this.getScene().gamepadManager; (this._onGamepadDisconnectedObserver = t.onGamepadDisconnectedObservable.add(function (t) { if (t.type === Ye.POSE_ENABLED) { var n = t; n.defaultModel && n.defaultModel.setEnabled(!1), "right" === n.hand && (e._rightController = null), "left" === n.hand && (e._leftController = null); var i = e.controllers.indexOf(n); -1 !== i && e.controllers.splice(i, 1); } })), (this._onGamepadConnectedObserver = t.onGamepadConnectedObservable.add(function (t) { if (t.type === Ye.POSE_ENABLED) { var n = t; if ( (e.webVROptions.trackPosition || (n._disableTrackPosition(new a.e("left" == n.hand ? -0.15 : 0.15, -0.5, 0.25)), e._updateCacheWhenTrackingDisabledObserver || (e._updateCacheWhenTrackingDisabledObserver = e._scene.onBeforeRenderObservable.add(function () { e._updateCache(); }))), (n.deviceScaleFactor = e.deviceScaleFactor), n._deviceToWorld.copyFrom(e._deviceToWorld), e._correctPositionIfNotTrackPosition(n._deviceToWorld), e.webVROptions.controllerMeshes && (n.defaultModel ? n.defaultModel.setEnabled(!0) : n.initControllerMesh(e.getScene(), function (t) { if ((t.scaling.scaleInPlace(e.deviceScaleFactor), e.onControllerMeshLoadedObservable.notifyObservers(n), e.webVROptions.defaultLightingOnControllers)) { e._lightOnControllers || (e._lightOnControllers = new xn.a("vrControllersLight", new a.e(0, 1, 0), e.getScene())); var i = function (e, t) { var n = e.getChildren(); n && 0 !== n.length && n.forEach(function (e) { t.includedOnlyMeshes.push(e), i(e, t); }); }; e._lightOnControllers.includedOnlyMeshes.push(t), i(t, e._lightOnControllers); } })), n.attachToPoseControlledCamera(e), -1 === e.controllers.indexOf(n)) ) { e.controllers.push(n); for (var i = !1, r = 0; r < e.controllers.length; r++) e.controllers[r].controllerType === Mt.VIVE && (i ? (e.controllers[r].hand = "right") : ((i = !0), (e.controllers[r].hand = "left"))); e.controllers.length >= 2 && e.onControllersAttachedObservable.notifyObservers(e.controllers); } } })); }), t ); })(yt.a), On = (function (e) { function t(t) { var n = e.call(this, t) || this; return ( (n.onTriggerStateChangedObservable = new o.c()), (n.onMainButtonStateChangedObservable = new o.c()), (n.onSecondaryButtonStateChangedObservable = new o.c()), (n.onPadStateChangedObservable = new o.c()), (n.onPadValuesChangedObservable = new o.c()), (n.pad = { x: 0, y: 0 }), (n._changes = { pressChanged: !1, touchChanged: !1, valueChanged: !1, changed: !1 }), (n._buttons = new Array(t.buttons.length)), (n.hand = t.hand), n ); } return ( Object(h.d)(t, e), (t.prototype.onButtonStateChange = function (e) { this._onButtonStateChange = e; }), Object.defineProperty(t.prototype, "defaultModel", { get: function () { return this._defaultModel; }, enumerable: !0, configurable: !0, }), (t.prototype.update = function () { e.prototype.update.call(this); for (var t = 0; t < this._buttons.length; t++) this._setButtonValue(this.browserGamepad.buttons[t], this._buttons[t], t); (this.leftStick.x === this.pad.x && this.leftStick.y === this.pad.y) || ((this.pad.x = this.leftStick.x), (this.pad.y = this.leftStick.y), this.onPadValuesChangedObservable.notifyObservers(this.pad)); }), (t.prototype._setButtonValue = function (e, t, n) { e || (e = { pressed: !1, touched: !1, value: 0 }), t ? (this._checkChanges(e, t), this._changes.changed && (this._onButtonStateChange && this._onButtonStateChange(this.index, n, e), this._handleButtonChange(n, e, this._changes)), (this._buttons[n].pressed = e.pressed), (this._buttons[n].touched = e.touched), (this._buttons[n].value = e.value < 1e-8 ? 0 : e.value)) : (this._buttons[n] = { pressed: e.pressed, touched: e.touched, value: e.value }); }), (t.prototype._checkChanges = function (e, t) { return ( (this._changes.pressChanged = e.pressed !== t.pressed), (this._changes.touchChanged = e.touched !== t.touched), (this._changes.valueChanged = e.value !== t.value), (this._changes.changed = this._changes.pressChanged || this._changes.touchChanged || this._changes.valueChanged), this._changes ); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), (this._defaultModel = null), this.onTriggerStateChangedObservable.clear(), this.onMainButtonStateChangedObservable.clear(), this.onSecondaryButtonStateChangedObservable.clear(), this.onPadStateChangedObservable.clear(), this.onPadValuesChangedObservable.clear(); }), t ); })(Ft), En = n(50), Mn = n(33), An = n(75), In = (n(140), n(59), n(141), "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\n#include\n#include\nvoid main(void)\n{\nvec4 result=texture2D(textureSampler,vUV);\n#ifdef IMAGEPROCESSING\n#ifndef FROMLINEARSPACE\n\nresult.rgb=toLinearSpace(result.rgb);\n#endif\nresult=applyImageProcessing(result);\n#else\n\n#ifdef FROMLINEARSPACE\nresult=applyImageProcessing(result);\n#endif\n#endif\ngl_FragColor=result;\n}"); Xt.a.ShadersStore.imageProcessingPixelShader = In; n(208); var Dn = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === i && (i = null), void 0 === s && (s = 0); var l = e.call(this, t, "imageProcessing", [], [], n, i, r, o, a, null, s, "postprocess", null, !0) || this; return ( (l._fromLinearSpace = !0), (l._defines = { IMAGEPROCESSING: !1, VIGNETTE: !1, VIGNETTEBLENDMODEMULTIPLY: !1, VIGNETTEBLENDMODEOPAQUE: !1, TONEMAPPING: !1, TONEMAPPING_ACES: !1, CONTRAST: !1, COLORCURVES: !1, COLORGRADING: !1, COLORGRADING3D: !1, FROMLINEARSPACE: !1, SAMPLER3DGREENDEPTH: !1, SAMPLER3DBGRMAP: !1, IMAGEPROCESSINGPOSTPROCESS: !1, EXPOSURE: !1, }), c ? ((c.applyByPostProcess = !0), l._attachImageProcessingConfiguration(c, !0), (l.fromLinearSpace = !1)) : (l._attachImageProcessingConfiguration(null, !0), (l.imageProcessingConfiguration.applyByPostProcess = !0)), (l.onApply = function (e) { l.imageProcessingConfiguration.bind(e, l.aspectRatio); }), l ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, set: function (e) { (e.applyByPostProcess = !0), this._attachImageProcessingConfiguration(e); }, enumerable: !0, configurable: !0, }), (t.prototype._attachImageProcessingConfiguration = function (e, t) { var n = this; if ((void 0 === t && (t = !1), e !== this._imageProcessingConfiguration)) { if ((this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e)) this._imageProcessingConfiguration = e; else { var i = null, r = this.getEngine(), o = this.getCamera(); if (o) i = o.getScene(); else if (r && r.scenes) { var a = r.scenes; i = a[a.length - 1]; } else i = E.a.LastCreatedScene; this._imageProcessingConfiguration = i.imageProcessingConfiguration; } this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () { n._updateParameters(); })), t || this._updateParameters(); } }), Object.defineProperty(t.prototype, "colorCurves", { get: function () { return this.imageProcessingConfiguration.colorCurves; }, set: function (e) { this.imageProcessingConfiguration.colorCurves = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "colorCurvesEnabled", { get: function () { return this.imageProcessingConfiguration.colorCurvesEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorCurvesEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "colorGradingTexture", { get: function () { return this.imageProcessingConfiguration.colorGradingTexture; }, set: function (e) { this.imageProcessingConfiguration.colorGradingTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "colorGradingEnabled", { get: function () { return this.imageProcessingConfiguration.colorGradingEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorGradingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "exposure", { get: function () { return this.imageProcessingConfiguration.exposure; }, set: function (e) { this.imageProcessingConfiguration.exposure = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "toneMappingEnabled", { get: function () { return this._imageProcessingConfiguration.toneMappingEnabled; }, set: function (e) { this._imageProcessingConfiguration.toneMappingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "toneMappingType", { get: function () { return this._imageProcessingConfiguration.toneMappingType; }, set: function (e) { this._imageProcessingConfiguration.toneMappingType = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "contrast", { get: function () { return this.imageProcessingConfiguration.contrast; }, set: function (e) { this.imageProcessingConfiguration.contrast = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteStretch", { get: function () { return this.imageProcessingConfiguration.vignetteStretch; }, set: function (e) { this.imageProcessingConfiguration.vignetteStretch = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteCentreX", { get: function () { return this.imageProcessingConfiguration.vignetteCentreX; }, set: function (e) { this.imageProcessingConfiguration.vignetteCentreX = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteCentreY", { get: function () { return this.imageProcessingConfiguration.vignetteCentreY; }, set: function (e) { this.imageProcessingConfiguration.vignetteCentreY = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteWeight", { get: function () { return this.imageProcessingConfiguration.vignetteWeight; }, set: function (e) { this.imageProcessingConfiguration.vignetteWeight = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteColor", { get: function () { return this.imageProcessingConfiguration.vignetteColor; }, set: function (e) { this.imageProcessingConfiguration.vignetteColor = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteCameraFov", { get: function () { return this.imageProcessingConfiguration.vignetteCameraFov; }, set: function (e) { this.imageProcessingConfiguration.vignetteCameraFov = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteBlendMode", { get: function () { return this.imageProcessingConfiguration.vignetteBlendMode; }, set: function (e) { this.imageProcessingConfiguration.vignetteBlendMode = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "vignetteEnabled", { get: function () { return this.imageProcessingConfiguration.vignetteEnabled; }, set: function (e) { this.imageProcessingConfiguration.vignetteEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fromLinearSpace", { get: function () { return this._fromLinearSpace; }, set: function (e) { this._fromLinearSpace !== e && ((this._fromLinearSpace = e), this._updateParameters()); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "ImageProcessingPostProcess"; }), (t.prototype._updateParameters = function () { (this._defines.FROMLINEARSPACE = this._fromLinearSpace), this.imageProcessingConfiguration.prepareDefines(this._defines, !0); var e = ""; for (var t in this._defines) this._defines[t] && (e += "#define " + t + ";\r\n"); var n = ["textureSampler"], i = ["scale"]; En.a && (En.a.PrepareSamplers(n, this._defines), En.a.PrepareUniforms(i, this._defines)), this.updateEffect(e, i, n); }), (t.prototype.dispose = function (t) { e.prototype.dispose.call(this, t), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), this._imageProcessingConfiguration && (this.imageProcessingConfiguration.applyByPostProcess = !1); }), Object(h.c)([Object(He.c)()], t.prototype, "_fromLinearSpace", void 0), t ); })(Wt.a), Rn = n(16), wn = n(4); Ee.a._GroundMeshParser = function (e, t) { return Ln.Parse(e, t); }; var Ln = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return (i.generateOctree = !1), i; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "GroundMesh"; }), Object.defineProperty(t.prototype, "subdivisions", { get: function () { return Math.min(this._subdivisionsX, this._subdivisionsY); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "subdivisionsX", { get: function () { return this._subdivisionsX; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "subdivisionsY", { get: function () { return this._subdivisionsY; }, enumerable: !0, configurable: !0, }), (t.prototype.optimize = function (e, t) { void 0 === t && (t = 32), (this._subdivisionsX = e), (this._subdivisionsY = e), this.subdivide(e); this.createOrUpdateSubmeshesOctree && this.createOrUpdateSubmeshesOctree(t); }), (t.prototype.getHeightAtCoordinates = function (e, t) { var n = this.getWorldMatrix(), i = a.c.Matrix[5]; n.invertToRef(i); var r = a.c.Vector3[8]; if ((a.e.TransformCoordinatesFromFloatsToRef(e, 0, t, i, r), (e = r.x), (t = r.z), e < this._minX || e > this._maxX || t < this._minZ || t > this._maxZ)) return this.position.y; (this._heightQuads && 0 != this._heightQuads.length) || (this._initHeightQuads(), this._computeHeightQuads()); var o = this._getFacetAt(e, t), s = -(o.x * e + o.z * t + o.w) / o.y; return a.e.TransformCoordinatesFromFloatsToRef(0, s, 0, n, r), r.y; }), (t.prototype.getNormalAtCoordinates = function (e, t) { var n = new a.e(0, 1, 0); return this.getNormalAtCoordinatesToRef(e, t, n), n; }), (t.prototype.getNormalAtCoordinatesToRef = function (e, t, n) { var i = this.getWorldMatrix(), r = a.c.Matrix[5]; i.invertToRef(r); var o = a.c.Vector3[8]; if ((a.e.TransformCoordinatesFromFloatsToRef(e, 0, t, r, o), (e = o.x), (t = o.z), e < this._minX || e > this._maxX || t < this._minZ || t > this._maxZ)) return this; (this._heightQuads && 0 != this._heightQuads.length) || (this._initHeightQuads(), this._computeHeightQuads()); var s = this._getFacetAt(e, t); return a.e.TransformNormalFromFloatsToRef(s.x, s.y, s.z, i, n), this; }), (t.prototype.updateCoordinateHeights = function () { return (this._heightQuads && 0 != this._heightQuads.length) || this._initHeightQuads(), this._computeHeightQuads(), this; }), (t.prototype._getFacetAt = function (e, t) { var n = Math.floor(((e + this._maxX) * this._subdivisionsX) / this._width), i = Math.floor((-(t + this._maxZ) * this._subdivisionsY) / this._height + this._subdivisionsY), r = this._heightQuads[i * this._subdivisionsX + n]; return t < r.slope.x * e + r.slope.y ? r.facet1 : r.facet2; }), (t.prototype._initHeightQuads = function () { var e = this._subdivisionsX, t = this._subdivisionsY; this._heightQuads = new Array(); for (var n = 0; n < t; n++) for (var i = 0; i < e; i++) { var r = { slope: a.d.Zero(), facet1: new a.f(0, 0, 0, 0), facet2: new a.f(0, 0, 0, 0) }; this._heightQuads[n * e + i] = r; } return this; }), (t.prototype._computeHeightQuads = function () { var e = this.getVerticesData(wn.b.PositionKind); if (!e) return this; for ( var t = a.c.Vector3[3], n = a.c.Vector3[2], i = a.c.Vector3[1], r = a.c.Vector3[0], o = a.c.Vector3[4], s = a.c.Vector3[5], c = a.c.Vector3[6], l = a.c.Vector3[7], u = a.c.Vector3[8], h = 0, d = 0, p = 0, f = 0, m = 0, g = 0, b = 0, _ = this._subdivisionsX, v = this._subdivisionsY, y = 0; y < v; y++ ) for (var C = 0; C < _; C++) { (h = 3 * C), (d = y * (_ + 1) * 3), (p = (y + 1) * (_ + 1) * 3), (t.x = e[d + h]), (t.y = e[d + h + 1]), (t.z = e[d + h + 2]), (n.x = e[d + h + 3]), (n.y = e[d + h + 4]), (n.z = e[d + h + 5]), (i.x = e[p + h]), (i.y = e[p + h + 1]), (i.z = e[p + h + 2]), (r.x = e[p + h + 3]), (r.y = e[p + h + 4]), (r.z = e[p + h + 5]), (f = (r.z - t.z) / (r.x - t.x)), (m = t.z - f * t.x), n.subtractToRef(t, o), i.subtractToRef(t, s), r.subtractToRef(t, c), a.e.CrossToRef(c, s, l), a.e.CrossToRef(o, c, u), l.normalize(), u.normalize(), (g = -(l.x * t.x + l.y * t.y + l.z * t.z)), (b = -(u.x * n.x + u.y * n.y + u.z * n.z)); var P = this._heightQuads[y * _ + C]; P.slope.copyFromFloats(f, m), P.facet1.copyFromFloats(l.x, l.y, l.z, g), P.facet2.copyFromFloats(u.x, u.y, u.z, b); } return this; }), (t.prototype.serialize = function (t) { e.prototype.serialize.call(this, t), (t.subdivisionsX = this._subdivisionsX), (t.subdivisionsY = this._subdivisionsY), (t.minX = this._minX), (t.maxX = this._maxX), (t.minZ = this._minZ), (t.maxZ = this._maxZ), (t.width = this._width), (t.height = this._height); }), (t.Parse = function (e, n) { var i = new t(e.name, n); return ( (i._subdivisionsX = e.subdivisionsX || 1), (i._subdivisionsY = e.subdivisionsY || 1), (i._minX = e.minX), (i._maxX = e.maxX), (i._minZ = e.minZ), (i._maxZ = e.maxZ), (i._width = e.width), (i._height = e.height), i ); }), t ); })(Ee.a), Fn = n(112); (Rn.a.CreateGround = function (e) { var t, n, i = [], r = [], o = [], s = [], c = e.width || 1, l = e.height || 1, u = e.subdivisionsX || e.subdivisions || 1, h = e.subdivisionsY || e.subdivisions || 1; for (t = 0; t <= h; t++) for (n = 0; n <= u; n++) { var d = new a.e((n * c) / u - c / 2, 0, ((h - t) * l) / h - l / 2), p = new a.e(0, 1, 0); r.push(d.x, d.y, d.z), o.push(p.x, p.y, p.z), s.push(n / u, 1 - t / h); } for (t = 0; t < h; t++) for (n = 0; n < u; n++) i.push(n + 1 + (t + 1) * (u + 1)), i.push(n + 1 + t * (u + 1)), i.push(n + t * (u + 1)), i.push(n + (t + 1) * (u + 1)), i.push(n + 1 + (t + 1) * (u + 1)), i.push(n + t * (u + 1)); var f = new Rn.a(); return (f.indices = i), (f.positions = r), (f.normals = o), (f.uvs = s), f; }), (Rn.a.CreateTiledGround = function (e) { var t, n, i, r, o = void 0 !== e.xmin && null !== e.xmin ? e.xmin : -1, s = void 0 !== e.zmin && null !== e.zmin ? e.zmin : -1, c = void 0 !== e.xmax && null !== e.xmax ? e.xmax : 1, l = void 0 !== e.zmax && null !== e.zmax ? e.zmax : 1, u = e.subdivisions || { w: 1, h: 1 }, h = e.precision || { w: 1, h: 1 }, d = new Array(), p = new Array(), f = new Array(), m = new Array(); (u.h = u.h < 1 ? 1 : u.h), (u.w = u.w < 1 ? 1 : u.w), (h.w = h.w < 1 ? 1 : h.w), (h.h = h.h < 1 ? 1 : h.h); var g = (c - o) / u.w, b = (l - s) / u.h; function _(e, i, r, o) { var s = p.length / 3, c = h.w + 1; for (t = 0; t < h.h; t++) for (n = 0; n < h.w; n++) { var l = [s + n + t * c, s + (n + 1) + t * c, s + (n + 1) + (t + 1) * c, s + n + (t + 1) * c]; d.push(l[1]), d.push(l[2]), d.push(l[3]), d.push(l[0]), d.push(l[1]), d.push(l[3]); } var u = a.e.Zero(), g = new a.e(0, 1, 0); for (t = 0; t <= h.h; t++) for (u.z = (t * (o - i)) / h.h + i, n = 0; n <= h.w; n++) (u.x = (n * (r - e)) / h.w + e), (u.y = 0), p.push(u.x, u.y, u.z), f.push(g.x, g.y, g.z), m.push(n / h.w, t / h.h); } for (i = 0; i < u.h; i++) for (r = 0; r < u.w; r++) _(o + r * g, s + i * b, o + (r + 1) * g, s + (i + 1) * b); var v = new Rn.a(); return (v.indices = d), (v.positions = p), (v.normals = f), (v.uvs = m), v; }), (Rn.a.CreateGroundFromHeightMap = function (e) { var t, n, i = [], r = [], o = [], c = [], l = e.colorFilter || new s.a(0.3, 0.59, 0.11), u = e.alphaFilter || 0, h = !1; if (e.minHeight > e.maxHeight) { h = !0; var d = e.maxHeight; (e.maxHeight = e.minHeight), (e.minHeight = d); } for (t = 0; t <= e.subdivisions; t++) for (n = 0; n <= e.subdivisions; n++) { var p = new a.e((n * e.width) / e.subdivisions - e.width / 2, 0, ((e.subdivisions - t) * e.height) / e.subdivisions - e.height / 2), f = 4 * (((((p.x + e.width / 2) / e.width) * (e.bufferWidth - 1)) | 0) + (((1 - (p.z + e.height / 2) / e.height) * (e.bufferHeight - 1)) | 0) * e.bufferWidth), m = e.buffer[f] / 255, g = e.buffer[f + 1] / 255, b = e.buffer[f + 2] / 255, _ = e.buffer[f + 3] / 255; h && ((m = 1 - m), (g = 1 - g), (b = 1 - b)); var v = m * l.r + g * l.g + b * l.b; (p.y = _ >= u ? e.minHeight + (e.maxHeight - e.minHeight) * v : e.minHeight - j.a), r.push(p.x, p.y, p.z), o.push(0, 0, 0), c.push(n / e.subdivisions, 1 - t / e.subdivisions); } for (t = 0; t < e.subdivisions; t++) for (n = 0; n < e.subdivisions; n++) { var y = n + 1 + (t + 1) * (e.subdivisions + 1), C = n + 1 + t * (e.subdivisions + 1), P = n + t * (e.subdivisions + 1), x = n + (t + 1) * (e.subdivisions + 1), T = r[3 * y + 1] >= e.minHeight, S = r[3 * C + 1] >= e.minHeight, O = r[3 * P + 1] >= e.minHeight; T && S && O && (i.push(y), i.push(C), i.push(P)), r[3 * x + 1] >= e.minHeight && T && O && (i.push(x), i.push(y), i.push(P)); } Rn.a.ComputeNormals(r, i, o); var E = new Rn.a(); return (E.indices = i), (E.positions = r), (E.normals = o), (E.uvs = c), E; }), (Ee.a.CreateGround = function (e, t, n, i, r, o) { var a = { width: t, height: n, subdivisions: i, updatable: o }; return Nn.CreateGround(e, a, r); }), (Ee.a.CreateTiledGround = function (e, t, n, i, r, o, a, s, c) { var l = { xmin: t, zmin: n, xmax: i, zmax: r, subdivisions: o, precision: a, updatable: c }; return Nn.CreateTiledGround(e, l, s); }), (Ee.a.CreateGroundFromHeightMap = function (e, t, n, i, r, o, a, s, c, l, u) { var h = { width: n, height: i, subdivisions: r, minHeight: o, maxHeight: a, updatable: c, onReady: l, alphaFilter: u }; return Nn.CreateGroundFromHeightMap(e, t, h, s); }); var Nn = (function () { function e() {} return ( (e.CreateGround = function (e, t, n) { var i = new Ln(e, n); return ( i._setReady(!1), (i._subdivisionsX = t.subdivisionsX || t.subdivisions || 1), (i._subdivisionsY = t.subdivisionsY || t.subdivisions || 1), (i._width = t.width || 1), (i._height = t.height || 1), (i._maxX = i._width / 2), (i._maxZ = i._height / 2), (i._minX = -i._maxX), (i._minZ = -i._maxZ), Rn.a.CreateGround(t).applyToMesh(i, t.updatable), i._setReady(!0), i ); }), (e.CreateTiledGround = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return Rn.a.CreateTiledGround(t).applyToMesh(i, t.updatable), i; }), (e.CreateGroundFromHeightMap = function (e, t, n, i) { void 0 === i && (i = null); var r = n.width || 10, o = n.height || 10, a = n.subdivisions || 1, c = n.minHeight || 0, l = n.maxHeight || 1, u = n.colorFilter || new s.a(0.3, 0.59, 0.11), h = n.alphaFilter || 0, d = n.updatable, p = n.onReady; i = i || E.a.LastCreatedScene; var f = new Ln(e, i); (f._subdivisionsX = a), (f._subdivisionsY = a), (f._width = r), (f._height = o), (f._maxX = f._width / 2), (f._maxZ = f._height / 2), (f._minX = -f._maxX), (f._minZ = -f._maxZ), f._setReady(!1); return ( $e.b.LoadImage( t, function (e) { var t = e.width, n = e.height, s = Fn.a.CreateCanvas(t, n).getContext("2d"); if (!s) throw new Error("Unable to get 2d context for CreateGroundFromHeightMap"); if (!i.isDisposed) { s.drawImage(e, 0, 0); var m = s.getImageData(0, 0, t, n).data; Rn.a.CreateGroundFromHeightMap({ width: r, height: o, subdivisions: a, minHeight: c, maxHeight: l, colorFilter: u, buffer: m, bufferWidth: t, bufferHeight: n, alphaFilter: h }).applyToMesh(f, d), p && p(f), f._setReady(!0); } }, function () {}, i.offlineProvider ), f ); }), e ); })(); (Rn.a.CreateTorus = function (e) { for (var t = [], n = [], i = [], r = [], o = e.diameter || 1, s = e.thickness || 0.5, c = e.tessellation || 16, l = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, u = c + 1, h = 0; h <= c; h++) for (var d = h / c, p = (h * Math.PI * 2) / c - Math.PI / 2, f = a.a.Translation(o / 2, 0, 0).multiply(a.a.RotationY(p)), m = 0; m <= c; m++) { var g = 1 - m / c, b = (m * Math.PI * 2) / c + Math.PI, _ = Math.cos(b), v = Math.sin(b), y = new a.e(_, v, 0), C = y.scale(s / 2), P = new a.d(d, g); (C = a.e.TransformCoordinates(C, f)), (y = a.e.TransformNormal(y, f)), n.push(C.x, C.y, C.z), i.push(y.x, y.y, y.z), r.push(P.x, P.y); var x = (h + 1) % u, T = (m + 1) % u; t.push(h * u + m), t.push(h * u + T), t.push(x * u + m), t.push(h * u + T), t.push(x * u + T), t.push(x * u + m); } Rn.a._ComputeSides(l, n, t, i, r, e.frontUVs, e.backUVs); var S = new Rn.a(); return (S.indices = t), (S.positions = n), (S.normals = i), (S.uvs = r), S; }), (Ee.a.CreateTorus = function (e, t, n, i, r, o, a) { var s = { diameter: t, thickness: n, tessellation: i, sideOrientation: a, updatable: o }; return kn.CreateTorus(e, s, r); }); var kn = (function () { function e() {} return ( (e.CreateTorus = function (e, t, n) { var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTorus(t).applyToMesh(i, t.updatable), i; }), e ); })(); (Rn.a.CreateCylinder = function (e) { var t = e.height || 2, n = 0 === e.diameterTop ? 0 : e.diameterTop || e.diameter || 1, i = 0 === e.diameterBottom ? 0 : e.diameterBottom || e.diameter || 1; (n = n || 1e-5), (i = i || 1e-5); var r, o = e.tessellation || 24, c = e.subdivisions || 1, l = !!e.hasRings, u = !!e.enclose, h = 0 === e.cap ? 0 : e.cap || Ee.a.CAP_ALL, d = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1, p = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, f = e.faceUV || new Array(3), m = e.faceColors, g = 2 + (1 + (1 !== d && u ? 2 : 0)) * (l ? c : 1); for (r = 0; r < g; r++) m && void 0 === m[r] && (m[r] = new s.b(1, 1, 1, 1)); for (r = 0; r < g; r++) f && void 0 === f[r] && (f[r] = new a.f(0, 0, 1, 1)); var b, _, v, y, C, P, x = new Array(), T = new Array(), S = new Array(), O = new Array(), E = new Array(), M = (2 * Math.PI * d) / o, A = (i - n) / 2 / t, I = a.e.Zero(), D = a.e.Zero(), R = a.e.Zero(), w = a.e.Zero(), L = a.e.Zero(), F = Be.a.Y, N = 1, k = 1, z = 0, j = 0; for (y = 0; y <= c; y++) for (v = ((_ = y / c) * (n - i) + i) / 2, N = l && 0 !== y && y !== c ? 2 : 1, P = 0; P < N; P++) { for (l && (k += P), u && (k += 2 * P), C = 0; C <= o; C++) (b = C * M), (I.x = Math.cos(-b) * v), (I.y = -t / 2 + _ * t), (I.z = Math.sin(-b) * v), 0 === n && y === c ? ((D.x = S[S.length - 3 * (o + 1)]), (D.y = S[S.length - 3 * (o + 1) + 1]), (D.z = S[S.length - 3 * (o + 1) + 2])) : ((D.x = I.x), (D.z = I.z), (D.y = Math.sqrt(D.x * D.x + D.z * D.z) * A), D.normalize()), 0 === C && (R.copyFrom(I), w.copyFrom(D)), T.push(I.x, I.y, I.z), S.push(D.x, D.y, D.z), (j = l ? (z !== k ? f[k].y : f[k].w) : f[k].y + (f[k].w - f[k].y) * _), O.push(f[k].x + ((f[k].z - f[k].x) * C) / o, j), m && E.push(m[k].r, m[k].g, m[k].b, m[k].a); 1 !== d && u && (T.push(I.x, I.y, I.z), T.push(0, I.y, 0), T.push(0, I.y, 0), T.push(R.x, R.y, R.z), a.e.CrossToRef(F, D, L), L.normalize(), S.push(L.x, L.y, L.z, L.x, L.y, L.z), a.e.CrossToRef(w, F, L), L.normalize(), S.push(L.x, L.y, L.z, L.x, L.y, L.z), (j = l ? (z !== k ? f[k + 1].y : f[k + 1].w) : f[k + 1].y + (f[k + 1].w - f[k + 1].y) * _), O.push(f[k + 1].x, j), O.push(f[k + 1].z, j), (j = l ? (z !== k ? f[k + 2].y : f[k + 2].w) : f[k + 2].y + (f[k + 2].w - f[k + 2].y) * _), O.push(f[k + 2].x, j), O.push(f[k + 2].z, j), m && (E.push(m[k + 1].r, m[k + 1].g, m[k + 1].b, m[k + 1].a), E.push(m[k + 1].r, m[k + 1].g, m[k + 1].b, m[k + 1].a), E.push(m[k + 2].r, m[k + 2].g, m[k + 2].b, m[k + 2].a), E.push(m[k + 2].r, m[k + 2].g, m[k + 2].b, m[k + 2].a))), z !== k && (z = k); } var B = 1 !== d && u ? o + 4 : o; for (y = 0, k = 0; k < c; k++) { var V = 0, G = 0, U = 0, H = 0; for (C = 0; C < o; C++) (V = y * (B + 1) + C), (G = (y + 1) * (B + 1) + C), (U = y * (B + 1) + (C + 1)), (H = (y + 1) * (B + 1) + (C + 1)), x.push(V, G, U), x.push(H, U, G); 1 !== d && u && (x.push(V + 2, G + 2, U + 2), x.push(H + 2, U + 2, G + 2), x.push(V + 4, G + 4, U + 4), x.push(H + 4, U + 4, G + 4)), (y = l ? y + 2 : y + 1); } var W = function (e) { var r = e ? n / 2 : i / 2; if (0 !== r) { var s, c, l, u = e ? f[g - 1] : f[0], h = null; m && (h = e ? m[g - 1] : m[0]); var p = T.length / 3, b = e ? t / 2 : -t / 2, _ = new a.e(0, b, 0); T.push(_.x, _.y, _.z), S.push(0, e ? 1 : -1, 0), O.push(u.x + 0.5 * (u.z - u.x), u.y + 0.5 * (u.w - u.y)), h && E.push(h.r, h.g, h.b, h.a); var v = new a.d(0.5, 0.5); for (l = 0; l <= o; l++) { s = (2 * Math.PI * l * d) / o; var y = Math.cos(-s), C = Math.sin(-s); c = new a.e(y * r, b, C * r); var P = new a.d(y * v.x + 0.5, C * v.y + 0.5); T.push(c.x, c.y, c.z), S.push(0, e ? 1 : -1, 0), O.push(u.x + (u.z - u.x) * P.x, u.y + (u.w - u.y) * P.y), h && E.push(h.r, h.g, h.b, h.a); } for (l = 0; l < o; l++) e ? (x.push(p), x.push(p + (l + 2)), x.push(p + (l + 1))) : (x.push(p), x.push(p + (l + 1)), x.push(p + (l + 2))); } }; (h !== Ee.a.CAP_START && h !== Ee.a.CAP_ALL) || W(!1), (h !== Ee.a.CAP_END && h !== Ee.a.CAP_ALL) || W(!0), Rn.a._ComputeSides(p, T, x, S, O, e.frontUVs, e.backUVs); var X = new Rn.a(); return (X.indices = x), (X.positions = T), (X.normals = S), (X.uvs = O), m && (X.colors = E), X; }), (Ee.a.CreateCylinder = function (e, t, n, i, r, o, a, s, c) { (void 0 !== a && a instanceof ge.a) || (void 0 !== a && ((c = s || Ee.a.DEFAULTSIDE), (s = a)), (a = o), (o = 1)); var l = { height: t, diameterTop: n, diameterBottom: i, tessellation: r, subdivisions: o, sideOrientation: c, updatable: s }; return jn.CreateCylinder(e, l, a); }); var zn, jn = (function () { function e() {} return ( (e.CreateCylinder = function (e, t, n) { var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateCylinder(t).applyToMesh(i, t.updatable), i; }), e ); })(), Bn = (function () { function e() {} return ( (e.GetDefaults = function () { var t = new e(); return ( (t.canvasOptions = { antialias: !0, depth: !0, stencil: !1, alpha: !0, multiview: !1, framebufferScaleFactor: 1 }), (t.newCanvasCssStyle = "position:absolute; bottom:0px;right:0px;z-index:10;width:90%;height:100%;background-color: #000000;"), t ); }), e ); })(), Vn = (function () { function e(e, t) { var n = this; if ((void 0 === t && (t = Bn.GetDefaults()), (this._options = t), (this._canvas = null), (this.xrLayer = null), (this._engine = e.scene.getEngine()), t.canvasElement)) this._setManagedOutputCanvas(t.canvasElement); else { var i = document.createElement("canvas"); (i.style.cssText = this._options.newCanvasCssStyle || "position:absolute; bottom:0px;right:0px;"), this._setManagedOutputCanvas(i); } e.onXRSessionInit.add(function () { n._addCanvas(); }), e.onXRSessionEnded.add(function () { n._removeCanvas(); }); } return ( (e.prototype.dispose = function () { this._removeCanvas(), this._setManagedOutputCanvas(null); }), (e.prototype.initializeXRLayerAsync = function (e) { var t = this, n = function () { return new XRWebGLLayer(e, t.canvasContext, t._options.canvasOptions); }; return this.canvasContext.makeXRCompatible ? this.canvasContext.makeXRCompatible().then(function () { return (t.xrLayer = n()), t.xrLayer; }) : ((this.xrLayer = n()), Promise.resolve(this.xrLayer)); }), (e.prototype._addCanvas = function () { this._canvas && this._canvas !== this._engine.getRenderingCanvas() && document.body.appendChild(this._canvas); }), (e.prototype._removeCanvas = function () { this._canvas && document.body.contains(this._canvas) && this._canvas !== this._engine.getRenderingCanvas() && document.body.removeChild(this._canvas); }), (e.prototype._setManagedOutputCanvas = function (e) { this._removeCanvas(), e ? ((this._canvas = e), (this.canvasContext = this._canvas.getContext("webgl2")), this.canvasContext || (this.canvasContext = this._canvas.getContext("webgl"))) : ((this._canvas = null), (this.canvasContext = null)); }), e ); })(), Gn = (function () { function e(e) { (this.scene = e), (this._sessionEnded = !1), (this.baseLayer = null), (this.currentTimestamp = -1), (this.defaultHeightCompensation = 1.7), (this.onXRFrameObservable = new o.c()), (this.onXRReferenceSpaceChanged = new o.c()), (this.onXRSessionEnded = new o.c()), (this.onXRSessionInit = new o.c()); } return ( Object.defineProperty(e.prototype, "referenceSpace", { get: function () { return this._referenceSpace; }, set: function (e) { (this._referenceSpace = e), this.onXRReferenceSpaceChanged.notifyObservers(this._referenceSpace); }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this._sessionEnded || this.exitXRAsync(), this.onXRFrameObservable.clear(), this.onXRSessionEnded.clear(), this.onXRReferenceSpaceChanged.clear(), this.onXRSessionInit.clear(); }), (e.prototype.exitXRAsync = function () { return this.session && !this._sessionEnded ? this.session.end().catch(function (e) { g.a.Warn("could not end XR session. It has ended already."); }) : Promise.resolve(); }), (e.prototype.getRenderTargetTextureForEye = function (e) { return this._rttProvider.getRenderTargetForEye(e); }), (e.prototype.getWebXRRenderTarget = function (e) { var t = this.scene.getEngine(); return this._xrNavigator.xr.native ? this._xrNavigator.xr.getWebXRRenderTarget(t) : (((e = e || {}).canvasElement = t.getRenderingCanvas() || void 0), new Vn(this, e)); }), (e.prototype.initializeAsync = function () { return (this._xrNavigator = navigator), this._xrNavigator.xr ? Promise.resolve() : Promise.reject("WebXR not available"); }), (e.prototype.initializeSessionAsync = function (e, t) { var n = this; return ( void 0 === e && (e = "immersive-vr"), void 0 === t && (t = {}), this._xrNavigator.xr.requestSession(e, t).then(function (e) { return ( (n.session = e), n.onXRSessionInit.notifyObservers(e), (n._sessionEnded = !1), n.session.addEventListener( "end", function () { var e = n.scene.getEngine(); (n._sessionEnded = !0), (n._rttProvider = null), (e.framebufferDimensionsObject = null), e.restoreDefaultFramebuffer(), (e.customAnimationFrameRequester = null), n.onXRSessionEnded.notifyObservers(null), e._renderLoop(); }, { once: !0 } ), n.session ); }) ); }), (e.prototype.isSessionSupportedAsync = function (t) { return e.IsSessionSupportedAsync(t); }), (e.prototype.resetReferenceSpace = function () { this.referenceSpace = this.baseReferenceSpace; }), (e.prototype.runXRRenderLoop = function () { var e = this, t = this.scene.getEngine(); if ( ((t.customAnimationFrameRequester = { requestAnimationFrame: this.session.requestAnimationFrame.bind(this.session), renderFunction: function (n, i) { e._sessionEnded || ((e.currentFrame = i), (e.currentTimestamp = n), i && (e.onXRFrameObservable.notifyObservers(i), (t.framebufferDimensionsObject = e.baseLayer), t._renderLoop(), (t.framebufferDimensionsObject = null))); }, }), this._xrNavigator.xr.native) ) this._rttProvider = this._xrNavigator.xr.getNativeRenderTargetProvider(this.session, this._createRenderTargetTexture.bind(this)); else { var n = this._createRenderTargetTexture(this.baseLayer.framebufferWidth, this.baseLayer.framebufferHeight, this.baseLayer.framebuffer); (this._rttProvider = { getRenderTargetForEye: function () { return n; }, }), (t.framebufferDimensionsObject = this.baseLayer); } window.cancelAnimationFrame && window.cancelAnimationFrame(t._frameHandler), t._renderLoop(); }), (e.prototype.setReferenceSpaceTypeAsync = function (e) { var t = this; return ( void 0 === e && (e = "local-floor"), this.session .requestReferenceSpace(e) .then( function (e) { return e; }, function (e) { return ( g.a.Error("XR.requestReferenceSpace failed for the following reason: "), g.a.Error(e), g.a.Log('Defaulting to universally-supported "viewer" reference space type.'), t.session.requestReferenceSpace("viewer").then( function (e) { var n = new XRRigidTransform({ x: 0, y: -t.defaultHeightCompensation, z: 0 }); return e.getOffsetReferenceSpace(n); }, function (e) { throw (g.a.Error(e), 'XR initialization failed: required "viewer" reference space type not supported.'); } ) ); } ) .then(function (e) { return ( (t.referenceSpace = t.baseReferenceSpace = e), t.session.requestReferenceSpace("viewer").then(function (e) { t.viewerReferenceSpace = e; }), t.referenceSpace ); }) ); }), (e.prototype.updateRenderStateAsync = function (e) { return e.baseLayer && (this.baseLayer = e.baseLayer), this.session.updateRenderState(e); }), (e.IsSessionSupportedAsync = function (e) { if (!navigator.xr) return Promise.resolve(!1); var t = navigator.xr.isSessionSupported || navigator.xr.supportsSession; return t ? t .call(navigator.xr, e) .then(function (e) { var t = void 0 === e || e; return Promise.resolve(t); }) .catch(function (e) { return g.a.Warn(e), Promise.resolve(!1); }) : Promise.resolve(!1); }), (e.prototype._createRenderTargetTexture = function (e, t, n) { void 0 === n && (n = null); var i = new pn.a(this.scene.getEngine(), pn.b.Unknown, !0); (i.width = e), (i.height = t), (i._framebuffer = n); var r = new mn.a("XR renderTargetTexture", { width: e, height: t }, this.scene, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, !0); return (r._texture = i), r; }), e ); })(); !(function (e) { (e[(e.ENTERING_XR = 0)] = "ENTERING_XR"), (e[(e.EXITING_XR = 1)] = "EXITING_XR"), (e[(e.IN_XR = 2)] = "IN_XR"), (e[(e.NOT_IN_XR = 3)] = "NOT_IN_XR"); })(zn || (zn = {})); var Un, Hn = (function () { function e(t, n) { if ( (void 0 === n && (n = null), (this.scene = t), (this._pointerDownOnMeshAsked = !1), (this._isActionableMesh = !1), (this._teleportationRequestInitiated = !1), (this._teleportationBackRequestInitiated = !1), (this._rotationRightAsked = !1), (this._rotationLeftAsked = !1), (this._dpadPressed = !0), (this._activePointer = !1), (this._id = e._idCounter++), n) ) this._gazeTracker = n.clone("gazeTracker"); else { (this._gazeTracker = Ee.a.CreateTorus("gazeTracker", 0.0035, 0.0025, 20, t, !1)), this._gazeTracker.bakeCurrentTransformIntoVertices(), (this._gazeTracker.isPickable = !1), (this._gazeTracker.isVisible = !1); var i = new Mn.a("targetMat", t); (i.specularColor = s.a.Black()), (i.emissiveColor = new s.a(0.7, 0.7, 0.7)), (i.backFaceCulling = !1), (this._gazeTracker.material = i); } } return ( (e.prototype._getForwardRay = function (e) { return new Re(a.e.Zero(), new a.e(0, 0, e)); }), (e.prototype._selectionPointerDown = function () { (this._pointerDownOnMeshAsked = !0), this._currentHit && this.scene.simulatePointerDown(this._currentHit, { pointerId: this._id }); }), (e.prototype._selectionPointerUp = function () { this._currentHit && this.scene.simulatePointerUp(this._currentHit, { pointerId: this._id }), (this._pointerDownOnMeshAsked = !1); }), (e.prototype._activatePointer = function () { this._activePointer = !0; }), (e.prototype._deactivatePointer = function () { this._activePointer = !1; }), (e.prototype._updatePointerDistance = function (e) { void 0 === e && (e = 100); }), (e.prototype.dispose = function () { (this._interactionsEnabled = !1), (this._teleportationEnabled = !1), this._gazeTracker && this._gazeTracker.dispose(); }), (e._idCounter = 0), e ); })(), Wn = (function (e) { function t(t, n, i) { var r = e.call(this, n, i) || this; (r.webVRController = t), (r._laserPointer = Ee.a.CreateCylinder("laserPointer", 1, 0.004, 2e-4, 20, 1, n, !1)); var o = new Mn.a("laserPointerMat", n); if ( ((o.emissiveColor = new s.a(0.7, 0.7, 0.7)), (o.alpha = 0.6), (r._laserPointer.material = o), (r._laserPointer.rotation.x = Math.PI / 2), (r._laserPointer.position.z = -0.5), (r._laserPointer.isVisible = !1), (r._laserPointer.isPickable = !1), !t.mesh) ) { var a = new Ee.a("preloadControllerMesh", n), c = new Ee.a(Ft.POINTING_POSE, n); (c.rotation.x = -0.7), a.addChild(c), t.attachToMesh(a); } return ( r._setLaserPointerParent(t.mesh), (r._meshAttachedObserver = t._meshAttachedObservable.add(function (e) { r._setLaserPointerParent(e); })), r ); } return ( Object(h.d)(t, e), (t.prototype._getForwardRay = function (e) { return this.webVRController.getForwardRay(e); }), (t.prototype._activatePointer = function () { e.prototype._activatePointer.call(this), (this._laserPointer.isVisible = !0); }), (t.prototype._deactivatePointer = function () { e.prototype._deactivatePointer.call(this), (this._laserPointer.isVisible = !1); }), (t.prototype._setLaserPointerColor = function (e) { this._laserPointer.material.emissiveColor = e; }), (t.prototype._setLaserPointerLightingDisabled = function (e) { this._laserPointer.material.disableLighting = e; }), (t.prototype._setLaserPointerParent = function (e) { var t = function (e) { (e.isPickable = !1), e.getChildMeshes().forEach(function (e) { t(e); }); }; t(e); var n = e.getChildren(void 0, !1), i = e; this.webVRController._pointingPoseNode = null; for (var r = 0; r < n.length; r++) if (n[r].name && n[r].name.indexOf(Ft.POINTING_POSE) >= 0) { (i = n[r]), (this.webVRController._pointingPoseNode = i); break; } this._laserPointer.parent = i; }), (t.prototype._updatePointerDistance = function (e) { void 0 === e && (e = 100), (this._laserPointer.scaling.y = e), (this._laserPointer.position.z = -e / 2); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this._laserPointer.dispose(), this._meshAttachedObserver && this.webVRController._meshAttachedObservable.remove(this._meshAttachedObserver); }), t ); })(Hn), Xn = (function (e) { function t(t, n) { var i = e.call(this, n) || this; return (i.getCamera = t), i; } return ( Object(h.d)(t, e), (t.prototype._getForwardRay = function (e) { var t = this.getCamera(); return t ? t.getForwardRay(e) : new Re(a.e.Zero(), a.e.Forward()); }), t ); })(Hn), Yn = function () {}, Kn = (function () { function e(t, n) { var i = this; if ( (void 0 === n && (n = {}), (this.webVROptions = n), (this._webVRsupported = !1), (this._webVRready = !1), (this._webVRrequesting = !1), (this._webVRpresenting = !1), (this._fullscreenVRpresenting = !1), (this.enableGazeEvenWhenNoPointerLock = !1), (this.exitVROnDoubleTap = !0), (this.onEnteringVRObservable = new o.c()), (this.onAfterEnteringVRObservable = new o.c()), (this.onExitingVRObservable = new o.c()), (this.onControllerMeshLoadedObservable = new o.c()), (this._useCustomVRButton = !1), (this._teleportationRequested = !1), (this._teleportActive = !1), (this._floorMeshesCollection = []), (this._teleportationMode = e.TELEPORTATIONMODE_CONSTANTTIME), (this._teleportationTime = 122), (this._teleportationSpeed = 20), (this._rotationAllowed = !0), (this._teleportBackwardsVector = new a.e(0, -1, -1)), (this._isDefaultTeleportationTarget = !0), (this._teleportationFillColor = "#444444"), (this._teleportationBorderColor = "#FFFFFF"), (this._rotationAngle = 0), (this._haloCenter = new a.e(0, 0, 0)), (this._padSensibilityUp = 0.65), (this._padSensibilityDown = 0.35), (this._leftController = null), (this._rightController = null), (this._gazeColor = new s.a(0.7, 0.7, 0.7)), (this._laserColor = new s.a(0.7, 0.7, 0.7)), (this._pickedLaserColor = new s.a(0.2, 0.2, 1)), (this._pickedGazeColor = new s.a(0, 0, 1)), (this.onNewMeshSelected = new o.c()), (this.onMeshSelectedWithController = new o.c()), (this.onNewMeshPicked = new o.c()), (this.onBeforeCameraTeleport = new o.c()), (this.onAfterCameraTeleport = new o.c()), (this.onSelectedMeshUnselected = new o.c()), (this.teleportationEnabled = !0), (this._teleportationInitialized = !1), (this._interactionsEnabled = !1), (this._interactionsRequested = !1), (this._displayGaze = !0), (this._displayLaserPointer = !0), (this.updateGazeTrackerScale = !0), (this.updateGazeTrackerColor = !0), (this.updateControllerLaserColor = !0), (this.requestPointerLockOnFullScreen = !0), (this.xrTestDone = !1), (this._onResize = function () { i.moveButtonToBottomRight(), i._fullscreenVRpresenting && i._webVRready && i.exitVR(); }), (this._onFullscreenChange = function () { var e = document; void 0 !== e.fullscreen ? (i._fullscreenVRpresenting = document.fullscreen) : void 0 !== e.mozFullScreen ? (i._fullscreenVRpresenting = e.mozFullScreen) : void 0 !== e.webkitIsFullScreen ? (i._fullscreenVRpresenting = e.webkitIsFullScreen) : void 0 !== e.msIsFullScreen ? (i._fullscreenVRpresenting = e.msIsFullScreen) : void 0 !== document.msFullscreenElement && (i._fullscreenVRpresenting = document.msFullscreenElement), !i._fullscreenVRpresenting && i._inputElement && (i.exitVR(), !i._useCustomVRButton && i._btnVR && ((i._btnVR.style.top = i._inputElement.offsetTop + i._inputElement.offsetHeight - 70 + "px"), (i._btnVR.style.left = i._inputElement.offsetLeft + i._inputElement.offsetWidth - 100 + "px"), i.updateButtonVisibility())); }), (this._cachedAngularSensibility = { angularSensibilityX: null, angularSensibilityY: null, angularSensibility: null }), (this.beforeRender = function () { i._leftController && i._leftController._activePointer && i._castRayAndSelectObject(i._leftController), i._rightController && i._rightController._activePointer && i._castRayAndSelectObject(i._rightController), i._noControllerIsActive && (i._scene.getEngine().isPointerLock || i.enableGazeEvenWhenNoPointerLock) ? i._castRayAndSelectObject(i._cameraGazer) : (i._cameraGazer._gazeTracker.isVisible = !1); }), (this._onNewGamepadConnected = function (e) { if (e.type !== Ye.POSE_ENABLED) e.leftStick && e.onleftstickchanged(function (e) { i._teleportationInitialized && i.teleportationEnabled && ((!i._leftController && !i._rightController) || (i._leftController && !i._leftController._activePointer && i._rightController && !i._rightController._activePointer)) && (i._checkTeleportWithRay(e, i._cameraGazer), i._checkTeleportBackwards(e, i._cameraGazer)); }), e.rightStick && e.onrightstickchanged(function (e) { i._teleportationInitialized && i._checkRotate(e, i._cameraGazer); }), e.type === Ye.XBOX && (e.onbuttondown(function (e) { i._interactionsEnabled && e === Rt.A && i._cameraGazer._selectionPointerDown(); }), e.onbuttonup(function (e) { i._interactionsEnabled && e === Rt.A && i._cameraGazer._selectionPointerUp(); })); else { var t = e, n = new Wn(t, i._scene, i._cameraGazer._gazeTracker); "right" === t.hand || (i._leftController && i._leftController.webVRController != t) ? (i._rightController = n) : (i._leftController = n), i._tryEnableInteractionOnController(n); } }), (this._tryEnableInteractionOnController = function (e) { i._interactionsRequested && !e._interactionsEnabled && i._enableInteractionOnController(e), i._teleportationRequested && !e._teleportationEnabled && i._enableTeleportationOnController(e); }), (this._onNewGamepadDisconnected = function (e) { e instanceof On && ("left" === e.hand && null != i._leftController && (i._leftController.dispose(), (i._leftController = null)), "right" === e.hand && null != i._rightController && (i._rightController.dispose(), (i._rightController = null))); }), (this._workingVector = a.e.Zero()), (this._workingQuaternion = a.b.Identity()), (this._workingMatrix = a.a.Identity()), (this._scene = t), (this._inputElement = t.getEngine().getInputElement()), "getVRDisplays" in navigator || (n.useXR = !0), void 0 === n.createFallbackVRDeviceOrientationFreeCamera && (n.createFallbackVRDeviceOrientationFreeCamera = !0), void 0 === n.createDeviceOrientationCamera && (n.createDeviceOrientationCamera = !0), void 0 === n.laserToggle && (n.laserToggle = !0), void 0 === n.defaultHeight && (n.defaultHeight = 1.7), n.useCustomVRButton && ((this._useCustomVRButton = !0), n.customVRButton && (this._btnVR = n.customVRButton)), n.rayLength && (this._rayLength = n.rayLength), (this._defaultHeight = n.defaultHeight), n.positionScale && ((this._rayLength *= n.positionScale), (this._defaultHeight *= n.positionScale)), (this._hasEnteredVR = !1), this._scene.activeCamera ? (this._position = this._scene.activeCamera.position.clone()) : (this._position = new a.e(0, this._defaultHeight, 0)), n.createDeviceOrientationCamera || !this._scene.activeCamera) ) { if ( ((this._deviceOrientationCamera = new Tt("deviceOrientationVRHelper", this._position.clone(), t)), this._scene.activeCamera && ((this._deviceOrientationCamera.minZ = this._scene.activeCamera.minZ), (this._deviceOrientationCamera.maxZ = this._scene.activeCamera.maxZ), this._scene.activeCamera instanceof vt.a && this._scene.activeCamera.rotation)) ) { var r = this._scene.activeCamera; r.rotationQuaternion ? this._deviceOrientationCamera.rotationQuaternion.copyFrom(r.rotationQuaternion) : this._deviceOrientationCamera.rotationQuaternion.copyFrom(a.b.RotationYawPitchRoll(r.rotation.y, r.rotation.x, r.rotation.z)), (this._deviceOrientationCamera.rotation = r.rotation.clone()); } (this._scene.activeCamera = this._deviceOrientationCamera), this._inputElement && this._scene.activeCamera.attachControl(this._inputElement); } else this._existingCamera = this._scene.activeCamera; this.webVROptions.useXR && navigator.xr ? Gn.IsSessionSupportedAsync("immersive-vr").then(function (e) { e ? (g.a.Log("Using WebXR. It is recommended to use the WebXRDefaultExperience directly"), t.createDefaultXRExperienceAsync({ floorMeshes: n.floorMeshes || [] }).then(function (e) { (i.xr = e), (i.xrTestDone = !0), (i._cameraGazer = new Xn(function () { return i.xr.baseExperience.camera; }, t)), i.xr.baseExperience.onStateChangedObservable.add(function (e) { switch (e) { case zn.ENTERING_XR: i.onEnteringVRObservable.notifyObservers(i), i._interactionsEnabled || i.xr.pointerSelection.detach(), (i.xr.pointerSelection.displayLaserPointer = i._displayLaserPointer); break; case zn.EXITING_XR: i.onExitingVRObservable.notifyObservers(i), i._scene.getEngine().resize(); break; case zn.IN_XR: i._hasEnteredVR = !0; break; case zn.NOT_IN_XR: i._hasEnteredVR = !1; } }); })) : i.completeVRInit(t, n); }) : this.completeVRInit(t, n); } return ( Object.defineProperty(e.prototype, "onEnteringVR", { get: function () { return this.onEnteringVRObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onExitingVR", { get: function () { return this.onExitingVRObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onControllerMeshLoaded", { get: function () { return this.onControllerMeshLoadedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "teleportationTarget", { get: function () { return this._teleportationTarget; }, set: function (e) { e && ((e.name = "teleportationTarget"), (this._isDefaultTeleportationTarget = !1), (this._teleportationTarget = e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "gazeTrackerMesh", { get: function () { return this._cameraGazer._gazeTracker; }, set: function (e) { e && (this._cameraGazer._gazeTracker && this._cameraGazer._gazeTracker.dispose(), this._leftController && this._leftController._gazeTracker && this._leftController._gazeTracker.dispose(), this._rightController && this._rightController._gazeTracker && this._rightController._gazeTracker.dispose(), (this._cameraGazer._gazeTracker = e), this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(), (this._cameraGazer._gazeTracker.isPickable = !1), (this._cameraGazer._gazeTracker.isVisible = !1), (this._cameraGazer._gazeTracker.name = "gazeTracker"), this._leftController && (this._leftController._gazeTracker = this._cameraGazer._gazeTracker.clone("gazeTracker")), this._rightController && (this._rightController._gazeTracker = this._cameraGazer._gazeTracker.clone("gazeTracker"))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "leftControllerGazeTrackerMesh", { get: function () { return this._leftController ? this._leftController._gazeTracker : null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rightControllerGazeTrackerMesh", { get: function () { return this._rightController ? this._rightController._gazeTracker : null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "displayGaze", { get: function () { return this._displayGaze; }, set: function (e) { (this._displayGaze = e), e || ((this._cameraGazer._gazeTracker.isVisible = !1), this._leftController && (this._leftController._gazeTracker.isVisible = !1), this._rightController && (this._rightController._gazeTracker.isVisible = !1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "displayLaserPointer", { get: function () { return this._displayLaserPointer; }, set: function (e) { (this._displayLaserPointer = e), e ? (this._rightController && this._rightController._activatePointer(), this._leftController && this._leftController._activatePointer()) : (this._rightController && (this._rightController._deactivatePointer(), (this._rightController._gazeTracker.isVisible = !1)), this._leftController && (this._leftController._deactivatePointer(), (this._leftController._gazeTracker.isVisible = !1))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "deviceOrientationCamera", { get: function () { return this._deviceOrientationCamera; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "currentVRCamera", { get: function () { return this._webVRready ? this._webVRCamera : this._scene.activeCamera; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "webVRCamera", { get: function () { return this._webVRCamera; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "vrDeviceOrientationCamera", { get: function () { return this._vrDeviceOrientationCamera; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "vrButton", { get: function () { return this._btnVR; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "_teleportationRequestInitiated", { get: function () { return ( this._cameraGazer._teleportationRequestInitiated || (null !== this._leftController && this._leftController._teleportationRequestInitiated) || (null !== this._rightController && this._rightController._teleportationRequestInitiated) ); }, enumerable: !0, configurable: !0, }), (e.prototype.completeVRInit = function (e, t) { var n = this; if ( ((this.xrTestDone = !0), t.createFallbackVRDeviceOrientationFreeCamera && (t.useMultiview && (t.vrDeviceOrientationCameraMetrics || (t.vrDeviceOrientationCameraMetrics = cn.GetDefault()), (t.vrDeviceOrientationCameraMetrics.multiviewEnabled = !0)), (this._vrDeviceOrientationCamera = new Cn("VRDeviceOrientationVRHelper", this._position, this._scene, !0, t.vrDeviceOrientationCameraMetrics)), (this._vrDeviceOrientationCamera.angularSensibility = Number.MAX_VALUE)), (this._webVRCamera = new Sn("WebVRHelper", this._position, this._scene, t)), this._webVRCamera.useStandingMatrix(), (this._cameraGazer = new Xn(function () { return n.currentVRCamera; }, e)), !this._useCustomVRButton) ) { (this._btnVR = document.createElement("BUTTON")), (this._btnVR.className = "babylonVRicon"), (this._btnVR.id = "babylonVRiconbtn"), (this._btnVR.title = "Click to switch to VR"); var i = ".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(" + (window.SVGSVGElement ? "data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A" : "https://cdn.babylonjs.com/Assets/vrButton.png") + "); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }"; i += ".babylonVRicon.vrdisplaypresenting { display: none; }"; var r = document.createElement("style"); r.appendChild(document.createTextNode(i)), document.getElementsByTagName("head")[0].appendChild(r), this.moveButtonToBottomRight(); } this._btnVR && this._btnVR.addEventListener("click", function () { n.isInVRMode ? n._scene.getEngine().disableVR() : n.enterVR(); }); var o = this._scene.getEngine().getHostWindow(); o && (o.addEventListener("resize", this._onResize), document.addEventListener("fullscreenchange", this._onFullscreenChange, !1), document.addEventListener("mozfullscreenchange", this._onFullscreenChange, !1), document.addEventListener("webkitfullscreenchange", this._onFullscreenChange, !1), document.addEventListener("msfullscreenchange", this._onFullscreenChange, !1), (document.onmsfullscreenchange = this._onFullscreenChange), t.createFallbackVRDeviceOrientationFreeCamera ? this.displayVRButton() : this._scene.getEngine().onVRDisplayChangedObservable.add(function (e) { e.vrDisplay && n.displayVRButton(); }), (this._onKeyDown = function (e) { 27 === e.keyCode && n.isInVRMode && n.exitVR(); }), document.addEventListener("keydown", this._onKeyDown), this._scene.onPrePointerObservable.add( function () { n._hasEnteredVR && n.exitVROnDoubleTap && (n.exitVR(), n._fullscreenVRpresenting && n._scene.getEngine().exitFullscreen()); }, ye.a.POINTERDOUBLETAP, !1 ), (this._onVRDisplayChanged = function (e) { return n.onVRDisplayChanged(e); }), (this._onVrDisplayPresentChange = function () { return n.onVrDisplayPresentChange(); }), (this._onVRRequestPresentStart = function () { (n._webVRrequesting = !0), n.updateButtonVisibility(); }), (this._onVRRequestPresentComplete = function () { (n._webVRrequesting = !1), n.updateButtonVisibility(); }), e.getEngine().onVRDisplayChangedObservable.add(this._onVRDisplayChanged), e.getEngine().onVRRequestPresentStart.add(this._onVRRequestPresentStart), e.getEngine().onVRRequestPresentComplete.add(this._onVRRequestPresentComplete), o.addEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange), e.onDisposeObservable.add(function () { n.dispose(); }), this._webVRCamera.onControllerMeshLoadedObservable.add(function (e) { return n._onDefaultMeshLoaded(e); }), this._scene.gamepadManager.onGamepadConnectedObservable.add(this._onNewGamepadConnected), this._scene.gamepadManager.onGamepadDisconnectedObservable.add(this._onNewGamepadDisconnected), this.updateButtonVisibility(), (this._circleEase = new Y()), this._circleEase.setEasingMode(X.EASINGMODE_EASEINOUT), (this._teleportationEasing = this._circleEase), e.onPointerObservable.add(function (t) { n._interactionsEnabled && e.activeCamera === n.vrDeviceOrientationCamera && "mouse" === t.event.pointerType && (t.type === ye.a.POINTERDOWN ? n._cameraGazer._selectionPointerDown() : t.type === ye.a.POINTERUP && n._cameraGazer._selectionPointerUp()); }), this.webVROptions.floorMeshes && this.enableTeleportation({ floorMeshes: this.webVROptions.floorMeshes })); }), (e.prototype._onDefaultMeshLoaded = function (e) { this._leftController && this._leftController.webVRController == e && e.mesh && this._leftController._setLaserPointerParent(e.mesh), this._rightController && this._rightController.webVRController == e && e.mesh && this._rightController._setLaserPointerParent(e.mesh); try { this.onControllerMeshLoadedObservable.notifyObservers(e); } catch (e) { g.a.Warn("Error in your custom logic onControllerMeshLoaded: " + e); } }), Object.defineProperty(e.prototype, "isInVRMode", { get: function () { return (this.xr && this.webVROptions.useXR && this.xr.baseExperience.state === zn.IN_XR) || this._webVRpresenting || this._fullscreenVRpresenting; }, enumerable: !0, configurable: !0, }), (e.prototype.onVrDisplayPresentChange = function () { var e = this._scene.getEngine().getVRDevice(); if (e) { var t = this._webVRpresenting; (this._webVRpresenting = e.isPresenting), t && !this._webVRpresenting && this.exitVR(); } else g.a.Warn("Detected VRDisplayPresentChange on an unknown VRDisplay. Did you can enterVR on the vrExperienceHelper?"); this.updateButtonVisibility(); }), (e.prototype.onVRDisplayChanged = function (e) { (this._webVRsupported = e.vrSupported), (this._webVRready = !!e.vrDisplay), (this._webVRpresenting = e.vrDisplay && e.vrDisplay.isPresenting), this.updateButtonVisibility(); }), (e.prototype.moveButtonToBottomRight = function () { if (this._inputElement && !this._useCustomVRButton && this._btnVR) { var e = this._inputElement.getBoundingClientRect(); (this._btnVR.style.top = e.top + e.height - 70 + "px"), (this._btnVR.style.left = e.left + e.width - 100 + "px"); } }), (e.prototype.displayVRButton = function () { this._useCustomVRButton || this._btnVRDisplayed || !this._btnVR || (document.body.appendChild(this._btnVR), (this._btnVRDisplayed = !0)); }), (e.prototype.updateButtonVisibility = function () { this._btnVR && !this._useCustomVRButton && ((this._btnVR.className = "babylonVRicon"), this.isInVRMode ? (this._btnVR.className += " vrdisplaypresenting") : (this._webVRready && (this._btnVR.className += " vrdisplayready"), this._webVRsupported && (this._btnVR.className += " vrdisplaysupported"), this._webVRrequesting && (this._btnVR.className += " vrdisplayrequesting"))); }), (e.prototype.enterVR = function () { var e = this; if (this.xr) this.xr.baseExperience.enterXRAsync("immersive-vr", "local-floor", this.xr.renderTarget); else { if (this.onEnteringVRObservable) try { this.onEnteringVRObservable.notifyObservers(this); } catch (e) { g.a.Warn("Error in your custom logic onEnteringVR: " + e); } if (this._scene.activeCamera) { if ( ((this._position = this._scene.activeCamera.position.clone()), this.vrDeviceOrientationCamera && ((this.vrDeviceOrientationCamera.rotation = a.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles()), (this.vrDeviceOrientationCamera.angularSensibility = 2e3)), this.webVRCamera) ) { var t = this.webVRCamera.deviceRotationQuaternion.toEulerAngles().y, n = a.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles().y - t, i = this.webVRCamera.rotationQuaternion.toEulerAngles().y; this.webVRCamera.rotationQuaternion = a.b.FromEulerAngles(0, i + n, 0); } (this._existingCamera = this._scene.activeCamera), this._existingCamera.angularSensibilityX && ((this._cachedAngularSensibility.angularSensibilityX = this._existingCamera.angularSensibilityX), (this._existingCamera.angularSensibilityX = Number.MAX_VALUE)), this._existingCamera.angularSensibilityY && ((this._cachedAngularSensibility.angularSensibilityY = this._existingCamera.angularSensibilityY), (this._existingCamera.angularSensibilityY = Number.MAX_VALUE)), this._existingCamera.angularSensibility && ((this._cachedAngularSensibility.angularSensibility = this._existingCamera.angularSensibility), (this._existingCamera.angularSensibility = Number.MAX_VALUE)); } this._webVRrequesting || (this._webVRready ? this._webVRpresenting || (this._scene.getEngine().onVRRequestPresentComplete.addOnce(function (t) { e.onAfterEnteringVRObservable.notifyObservers({ success: t }); }), (this._webVRCamera.position = this._position), (this._scene.activeCamera = this._webVRCamera)) : this._vrDeviceOrientationCamera && ((this._vrDeviceOrientationCamera.position = this._position), this._scene.activeCamera && (this._vrDeviceOrientationCamera.minZ = this._scene.activeCamera.minZ), (this._scene.activeCamera = this._vrDeviceOrientationCamera), this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen), this.updateButtonVisibility(), this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce(function () { e.onAfterEnteringVRObservable.notifyObservers({ success: !0 }); })), this._scene.activeCamera && this._inputElement && this._scene.activeCamera.attachControl(this._inputElement), this._interactionsEnabled && this._scene.registerBeforeRender(this.beforeRender), this._displayLaserPointer && [this._leftController, this._rightController].forEach(function (e) { e && e._activatePointer(); }), (this._hasEnteredVR = !0)); } }), (e.prototype.exitVR = function () { if (this.xr) this.xr.baseExperience.exitXRAsync(); else if (this._hasEnteredVR) { if (this.onExitingVRObservable) try { this.onExitingVRObservable.notifyObservers(this); } catch (e) { g.a.Warn("Error in your custom logic onExitingVR: " + e); } this._webVRpresenting && this._scene.getEngine().disableVR(), this._scene.activeCamera && (this._position = this._scene.activeCamera.position.clone()), this.vrDeviceOrientationCamera && (this.vrDeviceOrientationCamera.angularSensibility = Number.MAX_VALUE), this._deviceOrientationCamera ? ((this._deviceOrientationCamera.position = this._position), (this._scene.activeCamera = this._deviceOrientationCamera), this._cachedAngularSensibility.angularSensibilityX && ((this._deviceOrientationCamera.angularSensibilityX = this._cachedAngularSensibility.angularSensibilityX), (this._cachedAngularSensibility.angularSensibilityX = null)), this._cachedAngularSensibility.angularSensibilityY && ((this._deviceOrientationCamera.angularSensibilityY = this._cachedAngularSensibility.angularSensibilityY), (this._cachedAngularSensibility.angularSensibilityY = null)), this._cachedAngularSensibility.angularSensibility && ((this._deviceOrientationCamera.angularSensibility = this._cachedAngularSensibility.angularSensibility), (this._cachedAngularSensibility.angularSensibility = null))) : this._existingCamera && ((this._existingCamera.position = this._position), (this._scene.activeCamera = this._existingCamera), this._inputElement && this._scene.activeCamera.attachControl(this._inputElement), this._cachedAngularSensibility.angularSensibilityX && ((this._existingCamera.angularSensibilityX = this._cachedAngularSensibility.angularSensibilityX), (this._cachedAngularSensibility.angularSensibilityX = null)), this._cachedAngularSensibility.angularSensibilityY && ((this._existingCamera.angularSensibilityY = this._cachedAngularSensibility.angularSensibilityY), (this._cachedAngularSensibility.angularSensibilityY = null)), this._cachedAngularSensibility.angularSensibility && ((this._existingCamera.angularSensibility = this._cachedAngularSensibility.angularSensibility), (this._cachedAngularSensibility.angularSensibility = null))), this.updateButtonVisibility(), this._interactionsEnabled && (this._scene.unregisterBeforeRender(this.beforeRender), (this._cameraGazer._gazeTracker.isVisible = !1), this._leftController && (this._leftController._gazeTracker.isVisible = !1), this._rightController && (this._rightController._gazeTracker.isVisible = !1)), this._scene.getEngine().resize(), [this._leftController, this._rightController].forEach(function (e) { e && e._deactivatePointer(); }), (this._hasEnteredVR = !1); var e = this._scene.getEngine(); e._onVrDisplayPresentChange && e._onVrDisplayPresentChange(); } }), Object.defineProperty(e.prototype, "position", { get: function () { return this._position; }, set: function (e) { (this._position = e), this._scene.activeCamera && (this._scene.activeCamera.position = e); }, enumerable: !0, configurable: !0, }), (e.prototype.enableInteractions = function () { var e = this; if (!this._interactionsEnabled) { if (((this._interactionsRequested = !0), this.xr)) return void (this.xr.baseExperience.state === zn.IN_XR && this.xr.pointerSelection.attach()); this._leftController && this._enableInteractionOnController(this._leftController), this._rightController && this._enableInteractionOnController(this._rightController), (this.raySelectionPredicate = function (t) { return t.isVisible && (t.isPickable || t.name === e._floorMeshName); }), (this.meshSelectionPredicate = function () { return !0; }), (this._raySelectionPredicate = function (t) { return ( !!(e._isTeleportationFloor(t) || (-1 === t.name.indexOf("gazeTracker") && -1 === t.name.indexOf("teleportationTarget") && -1 === t.name.indexOf("torusTeleportation"))) && e.raySelectionPredicate(t) ); }), (this._interactionsEnabled = !0); } }), Object.defineProperty(e.prototype, "_noControllerIsActive", { get: function () { return !((this._leftController && this._leftController._activePointer) || (this._rightController && this._rightController._activePointer)); }, enumerable: !0, configurable: !0, }), (e.prototype._isTeleportationFloor = function (e) { for (var t = 0; t < this._floorMeshesCollection.length; t++) if (this._floorMeshesCollection[t].id === e.id) return !0; return !(!this._floorMeshName || e.name !== this._floorMeshName); }), (e.prototype.addFloorMesh = function (e) { this._floorMeshesCollection && (this._floorMeshesCollection.indexOf(e) > -1 || this._floorMeshesCollection.push(e)); }), (e.prototype.removeFloorMesh = function (e) { if (this._floorMeshesCollection) { var t = this._floorMeshesCollection.indexOf(e); -1 !== t && this._floorMeshesCollection.splice(t, 1); } }), (e.prototype.enableTeleportation = function (e) { var t = this; if ((void 0 === e && (e = {}), !this._teleportationInitialized)) { if (((this._teleportationRequested = !0), this.enableInteractions(), this.webVROptions.useXR && (e.floorMeshes || e.floorMeshName))) { var n = e.floorMeshes || []; if (!n.length) { var i = this._scene.getMeshByName(e.floorMeshName); i && n.push(i); } if (this.xr) return ( n.forEach(function (e) { t.xr.teleportation.addFloorMesh(e); }), void (this.xr.teleportation.attached || this.xr.teleportation.attach()) ); if (!this.xrTestDone) { var r = function () { t.xrTestDone && (t._scene.unregisterBeforeRender(r), t.xr ? t.xr.teleportation.attached || t.xr.teleportation.attach() : t.enableTeleportation(e)); }; return void this._scene.registerBeforeRender(r); } } e.floorMeshName && (this._floorMeshName = e.floorMeshName), e.floorMeshes && (this._floorMeshesCollection = e.floorMeshes), e.teleportationMode && (this._teleportationMode = e.teleportationMode), e.teleportationTime && e.teleportationTime > 0 && (this._teleportationTime = e.teleportationTime), e.teleportationSpeed && e.teleportationSpeed > 0 && (this._teleportationSpeed = e.teleportationSpeed), void 0 !== e.easingFunction && (this._teleportationEasing = e.easingFunction), null != this._leftController && this._enableTeleportationOnController(this._leftController), null != this._rightController && this._enableTeleportationOnController(this._rightController); var o = new En.a(); (o.vignetteColor = new s.b(0, 0, 0, 0)), (o.vignetteEnabled = !0), (this._postProcessMove = new Dn("postProcessMove", 1, this._webVRCamera, void 0, void 0, void 0, void 0, o)), this._webVRCamera.detachPostProcess(this._postProcessMove), (this._teleportationInitialized = !0), this._isDefaultTeleportationTarget && (this._createTeleportationCircles(), this._teleportationTarget.scaling.scaleInPlace(this._webVRCamera.deviceScaleFactor)); } }), (e.prototype._enableInteractionOnController = function (e) { var t = this; e.webVRController.mesh && ((e._interactionsEnabled = !0), this.isInVRMode && this._displayLaserPointer && e._activatePointer(), this.webVROptions.laserToggle && e.webVRController.onMainButtonStateChangedObservable.add(function (n) { t._displayLaserPointer && 1 === n.value && (e._activePointer ? e._deactivatePointer() : e._activatePointer(), t.displayGaze && (e._gazeTracker.isVisible = e._activePointer)); }), e.webVRController.onTriggerStateChangedObservable.add(function (n) { var i = e; t._noControllerIsActive && (i = t._cameraGazer), i._pointerDownOnMeshAsked ? n.value < t._padSensibilityDown && i._selectionPointerUp() : n.value > t._padSensibilityUp && i._selectionPointerDown(); })); }), (e.prototype._checkTeleportWithRay = function (e, t) { (this._teleportationRequestInitiated && !t._teleportationRequestInitiated) || (t._teleportationRequestInitiated ? Math.sqrt(e.y * e.y + e.x * e.x) < this._padSensibilityDown && (this._teleportActive && this.teleportCamera(this._haloCenter), (t._teleportationRequestInitiated = !1)) : e.y < -this._padSensibilityUp && t._dpadPressed && (t._activatePointer(), (t._teleportationRequestInitiated = !0))); }), (e.prototype._checkRotate = function (e, t) { t._teleportationRequestInitiated || (t._rotationLeftAsked ? e.x > -this._padSensibilityDown && (t._rotationLeftAsked = !1) : e.x < -this._padSensibilityUp && t._dpadPressed && ((t._rotationLeftAsked = !0), this._rotationAllowed && this._rotateCamera(!1)), t._rotationRightAsked ? e.x < this._padSensibilityDown && (t._rotationRightAsked = !1) : e.x > this._padSensibilityUp && t._dpadPressed && ((t._rotationRightAsked = !0), this._rotationAllowed && this._rotateCamera(!0))); }), (e.prototype._checkTeleportBackwards = function (e, t) { if (!t._teleportationRequestInitiated) if (e.y > this._padSensibilityUp && t._dpadPressed) { if (!t._teleportationBackRequestInitiated) { if (!this.currentVRCamera) return; var n = a.b.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()), i = this.currentVRCamera.position; this.currentVRCamera.devicePosition && this.currentVRCamera.deviceRotationQuaternion && ((n = this.currentVRCamera.deviceRotationQuaternion), (i = this.currentVRCamera.devicePosition)), n.toEulerAnglesToRef(this._workingVector), (this._workingVector.z = 0), (this._workingVector.x = 0), a.b.RotationYawPitchRollToRef(this._workingVector.y, this._workingVector.x, this._workingVector.z, this._workingQuaternion), this._workingQuaternion.toRotationMatrix(this._workingMatrix), a.e.TransformCoordinatesToRef(this._teleportBackwardsVector, this._workingMatrix, this._workingVector); var r = new Re(i, this._workingVector), o = this._scene.pickWithRay(r, this._raySelectionPredicate); o && o.pickedPoint && o.pickedMesh && this._isTeleportationFloor(o.pickedMesh) && o.distance < 5 && this.teleportCamera(o.pickedPoint), (t._teleportationBackRequestInitiated = !0); } } else t._teleportationBackRequestInitiated = !1; }), (e.prototype._enableTeleportationOnController = function (e) { var t = this; e.webVRController.mesh && (e._interactionsEnabled || this._enableInteractionOnController(e), (e._interactionsEnabled = !0), (e._teleportationEnabled = !0), e.webVRController.controllerType === Mt.VIVE && ((e._dpadPressed = !1), e.webVRController.onPadStateChangedObservable.add(function (t) { (e._dpadPressed = t.pressed), e._dpadPressed || ((e._rotationLeftAsked = !1), (e._rotationRightAsked = !1), (e._teleportationBackRequestInitiated = !1)); })), e.webVRController.onPadValuesChangedObservable.add(function (n) { t.teleportationEnabled && (t._checkTeleportBackwards(n, e), t._checkTeleportWithRay(n, e)), t._checkRotate(n, e); })); }), (e.prototype._createTeleportationCircles = function () { (this._teleportationTarget = Ee.a.CreateGround("teleportationTarget", 2, 2, 2, this._scene)), (this._teleportationTarget.isPickable = !1); var e = new An.a("DynamicTexture", 512, this._scene, !0); e.hasAlpha = !0; var t = e.getContext(); t.beginPath(), t.arc(256, 256, 200, 0, 2 * Math.PI, !1), (t.fillStyle = this._teleportationFillColor), t.fill(), (t.lineWidth = 10), (t.strokeStyle = this._teleportationBorderColor), t.stroke(), t.closePath(), e.update(); var n = new Mn.a("TextPlaneMaterial", this._scene); (n.diffuseTexture = e), (this._teleportationTarget.material = n); var i = Ee.a.CreateTorus("torusTeleportation", 0.75, 0.1, 25, this._scene, !1); (i.isPickable = !1), (i.parent = this._teleportationTarget); var r = new R.a("animationInnerCircle", "position.y", 30, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CYCLE), o = []; o.push({ frame: 0, value: 0 }), o.push({ frame: 30, value: 0.4 }), o.push({ frame: 60, value: 0 }), r.setKeys(o); var a = new ie(); a.setEasingMode(X.EASINGMODE_EASEINOUT), r.setEasingFunction(a), (i.animations = []), i.animations.push(r), this._scene.beginAnimation(i, 0, 60, !0), this._hideTeleportationTarget(); }), (e.prototype._displayTeleportationTarget = function () { (this._teleportActive = !0), this._teleportationInitialized && ((this._teleportationTarget.isVisible = !0), this._isDefaultTeleportationTarget && (this._teleportationTarget.getChildren()[0].isVisible = !0)); }), (e.prototype._hideTeleportationTarget = function () { (this._teleportActive = !1), this._teleportationInitialized && ((this._teleportationTarget.isVisible = !1), this._isDefaultTeleportationTarget && (this._teleportationTarget.getChildren()[0].isVisible = !1)); }), (e.prototype._rotateCamera = function (e) { var t = this; if (this.currentVRCamera instanceof yt.a) { e ? this._rotationAngle++ : this._rotationAngle--, (this.currentVRCamera.animations = []); var n = a.b.FromRotationMatrix(a.a.RotationY((Math.PI / 4) * this._rotationAngle)), i = new R.a("animationRotation", "rotationQuaternion", 90, R.a.ANIMATIONTYPE_QUATERNION, R.a.ANIMATIONLOOPMODE_CONSTANT), r = []; r.push({ frame: 0, value: this.currentVRCamera.rotationQuaternion }), r.push({ frame: 6, value: n }), i.setKeys(r), i.setEasingFunction(this._circleEase), this.currentVRCamera.animations.push(i), (this._postProcessMove.animations = []); var o = new R.a("animationPP", "vignetteWeight", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT), s = []; s.push({ frame: 0, value: 0 }), s.push({ frame: 3, value: 4 }), s.push({ frame: 6, value: 0 }), o.setKeys(s), o.setEasingFunction(this._circleEase), this._postProcessMove.animations.push(o); var c = new R.a("animationPP2", "vignetteStretch", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT), l = []; l.push({ frame: 0, value: 0 }), l.push({ frame: 3, value: 10 }), l.push({ frame: 6, value: 0 }), c.setKeys(l), c.setEasingFunction(this._circleEase), this._postProcessMove.animations.push(c), (this._postProcessMove.imageProcessingConfiguration.vignetteWeight = 0), (this._postProcessMove.imageProcessingConfiguration.vignetteStretch = 0), (this._postProcessMove.samples = 4), this._webVRCamera.attachPostProcess(this._postProcessMove), this._scene.beginAnimation(this._postProcessMove, 0, 6, !1, 1, function () { t._webVRCamera.detachPostProcess(t._postProcessMove); }), this._scene.beginAnimation(this.currentVRCamera, 0, 6, !1, 1); } }), (e.prototype._moveTeleportationSelectorTo = function (e, t, n) { if (e.pickedPoint) { t._teleportationRequestInitiated && (this._displayTeleportationTarget(), this._haloCenter.copyFrom(e.pickedPoint), this._teleportationTarget.position.copyFrom(e.pickedPoint)); var i = this._convertNormalToDirectionOfRay(e.getNormal(!0, !1), n); if (i) { var r = a.e.Cross(Be.a.Y, i), o = a.e.Cross(i, r); a.e.RotationFromAxisToRef(o, i, r, this._teleportationTarget.rotation); } this._teleportationTarget.position.y += 0.1; } }), (e.prototype.teleportCamera = function (t) { var n = this; if (this.currentVRCamera instanceof yt.a) { this.webVRCamera.leftCamera ? (this._workingVector.copyFrom(this.webVRCamera.leftCamera.globalPosition), this._workingVector.subtractInPlace(this.webVRCamera.position), t.subtractToRef(this._workingVector, this._workingVector)) : this._workingVector.copyFrom(t), this.isInVRMode ? (this._workingVector.y += this.webVRCamera.deviceDistanceToRoomGround() * this._webVRCamera.deviceScaleFactor) : (this._workingVector.y += this._defaultHeight), this.onBeforeCameraTeleport.notifyObservers(this._workingVector); var i, r; if (this._teleportationMode == e.TELEPORTATIONMODE_CONSTANTSPEED) { r = 90; var o = a.e.Distance(this.currentVRCamera.position, this._workingVector); i = this._teleportationSpeed / o; } else (r = Math.round((90 * this._teleportationTime) / 1e3)), (i = 1); this.currentVRCamera.animations = []; var s = new R.a("animationCameraTeleportation", "position", 90, R.a.ANIMATIONTYPE_VECTOR3, R.a.ANIMATIONLOOPMODE_CONSTANT), c = [ { frame: 0, value: this.currentVRCamera.position }, { frame: r, value: this._workingVector }, ]; s.setKeys(c), s.setEasingFunction(this._teleportationEasing), this.currentVRCamera.animations.push(s), (this._postProcessMove.animations = []); var l = Math.round(r / 2), u = new R.a("animationPP", "vignetteWeight", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT), h = []; h.push({ frame: 0, value: 0 }), h.push({ frame: l, value: 8 }), h.push({ frame: r, value: 0 }), u.setKeys(h), this._postProcessMove.animations.push(u); var d = new R.a("animationPP2", "vignetteStretch", 90, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CONSTANT), p = []; p.push({ frame: 0, value: 0 }), p.push({ frame: l, value: 10 }), p.push({ frame: r, value: 0 }), d.setKeys(p), this._postProcessMove.animations.push(d), (this._postProcessMove.imageProcessingConfiguration.vignetteWeight = 0), (this._postProcessMove.imageProcessingConfiguration.vignetteStretch = 0), this._webVRCamera.attachPostProcess(this._postProcessMove), this._scene.beginAnimation(this._postProcessMove, 0, r, !1, i, function () { n._webVRCamera.detachPostProcess(n._postProcessMove); }), this._scene.beginAnimation(this.currentVRCamera, 0, r, !1, i, function () { n.onAfterCameraTeleport.notifyObservers(n._workingVector); }), this._hideTeleportationTarget(); } }), (e.prototype._convertNormalToDirectionOfRay = function (e, t) { e && Math.acos(a.e.Dot(e, t.direction)) < Math.PI / 2 && e.scaleInPlace(-1); return e; }), (e.prototype._castRayAndSelectObject = function (e) { if (this.currentVRCamera instanceof yt.a) { var t = e._getForwardRay(this._rayLength), n = this._scene.pickWithRay(t, this._raySelectionPredicate); if ((n && (e._laserPointer && (n.originMesh = e._laserPointer.parent), this._scene.simulatePointerMove(n, { pointerId: e._id })), (e._currentHit = n), n && n.pickedPoint)) { if (this._displayGaze) { var i = 1; (e._gazeTracker.isVisible = !0), e._isActionableMesh && (i = 3), this.updateGazeTrackerScale && ((e._gazeTracker.scaling.x = n.distance * i), (e._gazeTracker.scaling.y = n.distance * i), (e._gazeTracker.scaling.z = n.distance * i)); var r = this._convertNormalToDirectionOfRay(n.getNormal(), t); if (r) { var o = a.e.Cross(Be.a.Y, r), s = a.e.Cross(r, o); a.e.RotationFromAxisToRef(s, r, o, e._gazeTracker.rotation); } e._gazeTracker.position.copyFrom(n.pickedPoint), e._gazeTracker.position.x < 0 ? (e._gazeTracker.position.x += 0.002) : (e._gazeTracker.position.x -= 0.002), e._gazeTracker.position.y < 0 ? (e._gazeTracker.position.y += 0.002) : (e._gazeTracker.position.y -= 0.002), e._gazeTracker.position.z < 0 ? (e._gazeTracker.position.z += 0.002) : (e._gazeTracker.position.z -= 0.002); } e._updatePointerDistance(n.distance); } else e._updatePointerDistance(), (e._gazeTracker.isVisible = !1); if (n && n.pickedMesh) { if (this._teleportationInitialized && this._isTeleportationFloor(n.pickedMesh) && n.pickedPoint) return ( e._currentMeshSelected && !this._isTeleportationFloor(e._currentMeshSelected) && this._notifySelectedMeshUnselected(e._currentMeshSelected), (e._currentMeshSelected = null), void (e._teleportationRequestInitiated && this._moveTeleportationSelectorTo(n, e, t)) ); if (n.pickedMesh !== e._currentMeshSelected) if (this.meshSelectionPredicate(n.pickedMesh)) { this.onNewMeshPicked.notifyObservers(n), (e._currentMeshSelected = n.pickedMesh), n.pickedMesh.isPickable && n.pickedMesh.actionManager ? (this.changeGazeColor(this._pickedGazeColor), this.changeLaserColor(this._pickedLaserColor), (e._isActionableMesh = !0)) : (this.changeGazeColor(this._gazeColor), this.changeLaserColor(this._laserColor), (e._isActionableMesh = !1)); try { this.onNewMeshSelected.notifyObservers(n.pickedMesh); var c = e; c.webVRController && this.onMeshSelectedWithController.notifyObservers({ mesh: n.pickedMesh, controller: c.webVRController }); } catch (e) { g.a.Warn("Error while raising onNewMeshSelected or onMeshSelectedWithController: " + e); } } else this._notifySelectedMeshUnselected(e._currentMeshSelected), (e._currentMeshSelected = null), this.changeGazeColor(this._gazeColor), this.changeLaserColor(this._laserColor); } else this._notifySelectedMeshUnselected(e._currentMeshSelected), (e._currentMeshSelected = null), this.changeGazeColor(this._gazeColor), this.changeLaserColor(this._laserColor); } }), (e.prototype._notifySelectedMeshUnselected = function (e) { e && this.onSelectedMeshUnselected.notifyObservers(e); }), (e.prototype.setLaserColor = function (e, t) { void 0 === t && (t = this._pickedLaserColor), (this._laserColor = e), (this._pickedLaserColor = t); }), (e.prototype.setLaserLightingState = function (e) { void 0 === e && (e = !0), this._leftController && this._leftController._setLaserPointerLightingDisabled(!e), this._rightController && this._rightController._setLaserPointerLightingDisabled(!e); }), (e.prototype.setGazeColor = function (e, t) { void 0 === t && (t = this._pickedGazeColor), (this._gazeColor = e), (this._pickedGazeColor = t); }), (e.prototype.changeLaserColor = function (e) { this.updateControllerLaserColor && (this._leftController && this._leftController._setLaserPointerColor(e), this._rightController && this._rightController._setLaserPointerColor(e)); }), (e.prototype.changeGazeColor = function (e) { this.updateGazeTrackerColor && this._cameraGazer._gazeTracker.material && ((this._cameraGazer._gazeTracker.material.emissiveColor = e), this._leftController && (this._leftController._gazeTracker.material.emissiveColor = e), this._rightController && (this._rightController._gazeTracker.material.emissiveColor = e)); }), (e.prototype.dispose = function () { this.isInVRMode && this.exitVR(), this._postProcessMove && this._postProcessMove.dispose(), this._webVRCamera && this._webVRCamera.dispose(), this._vrDeviceOrientationCamera && this._vrDeviceOrientationCamera.dispose(), !this._useCustomVRButton && this._btnVR && this._btnVR.parentNode && document.body.removeChild(this._btnVR), this._deviceOrientationCamera && this._scene.activeCamera != this._deviceOrientationCamera && this._deviceOrientationCamera.dispose(), this._cameraGazer && this._cameraGazer.dispose(), this._leftController && this._leftController.dispose(), this._rightController && this._rightController.dispose(), this._teleportationTarget && this._teleportationTarget.dispose(), this.xr && this.xr.dispose(), (this._floorMeshesCollection = []), document.removeEventListener("keydown", this._onKeyDown), window.removeEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange), window.removeEventListener("resize", this._onResize), document.removeEventListener("fullscreenchange", this._onFullscreenChange), document.removeEventListener("mozfullscreenchange", this._onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this._onFullscreenChange), document.removeEventListener("msfullscreenchange", this._onFullscreenChange), (document.onmsfullscreenchange = null), this._scene.getEngine().onVRDisplayChangedObservable.removeCallback(this._onVRDisplayChanged), this._scene.getEngine().onVRRequestPresentStart.removeCallback(this._onVRRequestPresentStart), this._scene.getEngine().onVRRequestPresentComplete.removeCallback(this._onVRRequestPresentComplete), window.removeEventListener("vrdisplaypresentchange", this._onVrDisplayPresentChange), this._scene.gamepadManager.onGamepadConnectedObservable.removeCallback(this._onNewGamepadConnected), this._scene.gamepadManager.onGamepadDisconnectedObservable.removeCallback(this._onNewGamepadDisconnected), this._scene.unregisterBeforeRender(this.beforeRender); }), (e.prototype.getClassName = function () { return "VRExperienceHelper"; }), (e.TELEPORTATIONMODE_CONSTANTTIME = 0), (e.TELEPORTATIONMODE_CONSTANTSPEED = 1), e ); })(), Zn = n(85), qn = ((Un = { root: 0, found: !1 }), function (e, t, n, i) { (Un.root = 0), (Un.found = !1); var r = t * t - 4 * e * n; if (r < 0) return Un; var o = Math.sqrt(r), a = (-t - o) / (2 * e), s = (-t + o) / (2 * e); if (a > s) { var c = s; (s = a), (a = c); } return a > 0 && a < i ? ((Un.root = a), (Un.found = !0), Un) : s > 0 && s < i ? ((Un.root = s), (Un.found = !0), Un) : Un; }), Qn = (function () { function e() { (this._collisionPoint = a.e.Zero()), (this._planeIntersectionPoint = a.e.Zero()), (this._tempVector = a.e.Zero()), (this._tempVector2 = a.e.Zero()), (this._tempVector3 = a.e.Zero()), (this._tempVector4 = a.e.Zero()), (this._edge = a.e.Zero()), (this._baseToVertex = a.e.Zero()), (this._destinationPoint = a.e.Zero()), (this._slidePlaneNormal = a.e.Zero()), (this._displacementVector = a.e.Zero()), (this._radius = a.e.One()), (this._retry = 0), (this._basePointWorld = a.e.Zero()), (this._velocityWorld = a.e.Zero()), (this._normalizedVelocity = a.e.Zero()), (this._collisionMask = -1); } return ( Object.defineProperty(e.prototype, "collisionMask", { get: function () { return this._collisionMask; }, set: function (e) { this._collisionMask = isNaN(e) ? -1 : e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "slidePlaneNormal", { get: function () { return this._slidePlaneNormal; }, enumerable: !0, configurable: !0, }), (e.prototype._initialize = function (e, t, n) { (this._velocity = t), a.e.NormalizeToRef(t, this._normalizedVelocity), (this._basePoint = e), e.multiplyToRef(this._radius, this._basePointWorld), t.multiplyToRef(this._radius, this._velocityWorld), (this._velocityWorldLength = this._velocityWorld.length()), (this._epsilon = n), (this.collisionFound = !1); }), (e.prototype._checkPointInTriangle = function (e, t, n, i, r) { t.subtractToRef(e, this._tempVector), n.subtractToRef(e, this._tempVector2), a.e.CrossToRef(this._tempVector, this._tempVector2, this._tempVector4); var o = a.e.Dot(this._tempVector4, r); return ( !(o < 0) && (i.subtractToRef(e, this._tempVector3), a.e.CrossToRef(this._tempVector2, this._tempVector3, this._tempVector4), !((o = a.e.Dot(this._tempVector4, r)) < 0) && (a.e.CrossToRef(this._tempVector3, this._tempVector, this._tempVector4), (o = a.e.Dot(this._tempVector4, r)) >= 0)) ); }), (e.prototype._canDoCollision = function (e, t, n, i) { var r = a.e.Distance(this._basePointWorld, e), o = Math.max(this._radius.x, this._radius.y, this._radius.z); return ( !(r > this._velocityWorldLength + o + t) && !!(function (e, t, n, i) { return !(e.x > n.x + i) && !(n.x - i > t.x) && !(e.y > n.y + i) && !(n.y - i > t.y) && !(e.z > n.z + i) && !(n.z - i > t.z); })(n, i, this._basePointWorld, this._velocityWorldLength + o) ); }), (e.prototype._testTriangle = function (e, t, n, i, r, o, s) { var c, l = !1; t || (t = []), t[e] || ((t[e] = new Zn.a(0, 0, 0, 0)), t[e].copyFromPoints(n, i, r)); var u = t[e]; if (o || u.isFrontFacingTo(this._normalizedVelocity, 0)) { var h = u.signedDistanceTo(this._basePoint), d = a.e.Dot(u.normal, this._velocity); if (0 == d) { if (Math.abs(h) >= 1) return; (l = !0), (c = 0); } else { var p = (1 - h) / d; if ((c = (-1 - h) / d) > p) { var f = p; (p = c), (c = f); } if (c > 1 || p < 0) return; c < 0 && (c = 0), c > 1 && (c = 1); } this._collisionPoint.copyFromFloats(0, 0, 0); var m = !1, g = 1; if ( (l || (this._basePoint.subtractToRef(u.normal, this._planeIntersectionPoint), this._velocity.scaleToRef(c, this._tempVector), this._planeIntersectionPoint.addInPlace(this._tempVector), this._checkPointInTriangle(this._planeIntersectionPoint, n, i, r, u.normal) && ((m = !0), (g = c), this._collisionPoint.copyFrom(this._planeIntersectionPoint))), !m) ) { var b = this._velocity.lengthSquared(), _ = b; this._basePoint.subtractToRef(n, this._tempVector); var v = 2 * a.e.Dot(this._velocity, this._tempVector), y = this._tempVector.lengthSquared() - 1, C = qn(_, v, y, g); C.found && ((g = C.root), (m = !0), this._collisionPoint.copyFrom(n)), this._basePoint.subtractToRef(i, this._tempVector), (v = 2 * a.e.Dot(this._velocity, this._tempVector)), (y = this._tempVector.lengthSquared() - 1), (C = qn(_, v, y, g)).found && ((g = C.root), (m = !0), this._collisionPoint.copyFrom(i)), this._basePoint.subtractToRef(r, this._tempVector), (v = 2 * a.e.Dot(this._velocity, this._tempVector)), (y = this._tempVector.lengthSquared() - 1), (C = qn(_, v, y, g)).found && ((g = C.root), (m = !0), this._collisionPoint.copyFrom(r)), i.subtractToRef(n, this._edge), n.subtractToRef(this._basePoint, this._baseToVertex); var P = this._edge.lengthSquared(), x = a.e.Dot(this._edge, this._velocity), T = a.e.Dot(this._edge, this._baseToVertex); if (((_ = P * -b + x * x), (v = P * (2 * a.e.Dot(this._velocity, this._baseToVertex)) - 2 * x * T), (y = P * (1 - this._baseToVertex.lengthSquared()) + T * T), (C = qn(_, v, y, g)).found)) { var S = (x * C.root - T) / P; S >= 0 && S <= 1 && ((g = C.root), (m = !0), this._edge.scaleInPlace(S), n.addToRef(this._edge, this._collisionPoint)); } r.subtractToRef(i, this._edge), i.subtractToRef(this._basePoint, this._baseToVertex), (P = this._edge.lengthSquared()), (x = a.e.Dot(this._edge, this._velocity)), (T = a.e.Dot(this._edge, this._baseToVertex)), (_ = P * -b + x * x), (v = P * (2 * a.e.Dot(this._velocity, this._baseToVertex)) - 2 * x * T), (y = P * (1 - this._baseToVertex.lengthSquared()) + T * T), (C = qn(_, v, y, g)).found && (S = (x * C.root - T) / P) >= 0 && S <= 1 && ((g = C.root), (m = !0), this._edge.scaleInPlace(S), i.addToRef(this._edge, this._collisionPoint)), n.subtractToRef(r, this._edge), r.subtractToRef(this._basePoint, this._baseToVertex), (P = this._edge.lengthSquared()), (x = a.e.Dot(this._edge, this._velocity)), (T = a.e.Dot(this._edge, this._baseToVertex)), (_ = P * -b + x * x), (v = P * (2 * a.e.Dot(this._velocity, this._baseToVertex)) - 2 * x * T), (y = P * (1 - this._baseToVertex.lengthSquared()) + T * T), (C = qn(_, v, y, g)).found && (S = (x * C.root - T) / P) >= 0 && S <= 1 && ((g = C.root), (m = !0), this._edge.scaleInPlace(S), r.addToRef(this._edge, this._collisionPoint)); } if (m) { var O = g * this._velocity.length(); (!this.collisionFound || O < this._nearestDistance) && (this.intersectionPoint ? this.intersectionPoint.copyFrom(this._collisionPoint) : (this.intersectionPoint = this._collisionPoint.clone()), (this._nearestDistance = O), (this.collisionFound = !0), (this.collidedMesh = s)); } } }), (e.prototype._collide = function (e, t, n, i, r, o, a, s) { for (var c = i; c < r; c += 3) { var l = t[n[c] - o], u = t[n[c + 1] - o], h = t[n[c + 2] - o]; this._testTriangle(c, e, h, u, l, a, s); } }), (e.prototype._getResponse = function (e, t) { e.addToRef(t, this._destinationPoint), t.scaleInPlace(this._nearestDistance / t.length()), this._basePoint.addToRef(t, e), e.subtractToRef(this.intersectionPoint, this._slidePlaneNormal), this._slidePlaneNormal.normalize(), this._slidePlaneNormal.scaleToRef(this._epsilon, this._displacementVector), e.addInPlace(this._displacementVector), this.intersectionPoint.addInPlace(this._displacementVector), this._slidePlaneNormal.scaleInPlace(Zn.a.SignedDistanceToPlaneFromPositionAndNormal(this.intersectionPoint, this._slidePlaneNormal, this._destinationPoint)), this._destinationPoint.subtractInPlace(this._slidePlaneNormal), this._destinationPoint.subtractToRef(this.intersectionPoint, t); }), e ); })(), Jn = (function () { function e() { (this._scaledPosition = a.e.Zero()), (this._scaledVelocity = a.e.Zero()), (this._finalPosition = a.e.Zero()); } return ( (e.prototype.getNewPosition = function (e, t, n, i, r, o, a) { e.divideToRef(n._radius, this._scaledPosition), t.divideToRef(n._radius, this._scaledVelocity), (n.collidedMesh = null), (n._retry = 0), (n._initialVelocity = this._scaledVelocity), (n._initialPosition = this._scaledPosition), this._collideWithWorld(this._scaledPosition, this._scaledVelocity, n, i, this._finalPosition, r), this._finalPosition.multiplyInPlace(n._radius), o(a, this._finalPosition, n.collidedMesh); }), (e.prototype.createCollider = function () { return new Qn(); }), (e.prototype.init = function (e) { this._scene = e; }), (e.prototype._collideWithWorld = function (e, t, n, i, r, o) { void 0 === o && (o = null); var a = 10 * ue.a.CollisionsEpsilon; if (n._retry >= i) r.copyFrom(e); else { var s = o ? o.collisionMask : n.collisionMask; n._initialize(e, t, a); for (var c = 0; c < this._scene.meshes.length; c++) { var l = this._scene.meshes[c]; l.isEnabled() && l.checkCollisions && l.subMeshes && l !== o && 0 != (s & l.collisionGroup) && l._checkCollision(n); } n.collisionFound ? ((0 === t.x && 0 === t.y && 0 === t.z) || n._getResponse(e, t), t.length() <= a ? r.copyFrom(e) : (n._retry++, this._collideWithWorld(e, t, n, i, r, o))) : e.addToRef(t, r); } }), e ); })(); ge.a.CollisionCoordinatorFactory = function () { return new Jn(); }; var $n = n(188), ei = n(148), ti = n(63), ni = n(152), ii = n(47), ri = (function () { function e(e, t, n, i, r, o) { (this.entries = new Array()), (this._boundingVectors = new Array()), (this._capacity = n), (this._depth = i), (this._maxDepth = r), (this._creationFunc = o), (this._minPoint = e), (this._maxPoint = t), this._boundingVectors.push(e.clone()), this._boundingVectors.push(t.clone()), this._boundingVectors.push(e.clone()), (this._boundingVectors[2].x = t.x), this._boundingVectors.push(e.clone()), (this._boundingVectors[3].y = t.y), this._boundingVectors.push(e.clone()), (this._boundingVectors[4].z = t.z), this._boundingVectors.push(t.clone()), (this._boundingVectors[5].z = e.z), this._boundingVectors.push(t.clone()), (this._boundingVectors[6].x = e.x), this._boundingVectors.push(t.clone()), (this._boundingVectors[7].y = e.y); } return ( Object.defineProperty(e.prototype, "capacity", { get: function () { return this._capacity; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "minPoint", { get: function () { return this._minPoint; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "maxPoint", { get: function () { return this._maxPoint; }, enumerable: !0, configurable: !0, }), (e.prototype.addEntry = function (e) { if (this.blocks) for (var t = 0; t < this.blocks.length; t++) { this.blocks[t].addEntry(e); } else this._creationFunc(e, this), this.entries.length > this.capacity && this._depth < this._maxDepth && this.createInnerBlocks(); }), (e.prototype.removeEntry = function (e) { if (this.blocks) for (var t = 0; t < this.blocks.length; t++) { this.blocks[t].removeEntry(e); } else { var n = this.entries.indexOf(e); n > -1 && this.entries.splice(n, 1); } }), (e.prototype.addEntries = function (e) { for (var t = 0; t < e.length; t++) { var n = e[t]; this.addEntry(n); } }), (e.prototype.select = function (e, t, n) { if (ei.a.IsInFrustum(this._boundingVectors, e)) { if (this.blocks) { for (var i = 0; i < this.blocks.length; i++) { this.blocks[i].select(e, t, n); } return; } n ? t.concat(this.entries) : t.concatWithNoDuplicate(this.entries); } }), (e.prototype.intersects = function (e, t, n, i) { if (ei.a.IntersectsSphere(this._minPoint, this._maxPoint, e, t)) { if (this.blocks) { for (var r = 0; r < this.blocks.length; r++) { this.blocks[r].intersects(e, t, n, i); } return; } i ? n.concat(this.entries) : n.concatWithNoDuplicate(this.entries); } }), (e.prototype.intersectsRay = function (e, t) { if (e.intersectsBoxMinMax(this._minPoint, this._maxPoint)) { if (this.blocks) { for (var n = 0; n < this.blocks.length; n++) { this.blocks[n].intersectsRay(e, t); } return; } t.concatWithNoDuplicate(this.entries); } }), (e.prototype.createInnerBlocks = function () { e._CreateBlocks(this._minPoint, this._maxPoint, this.entries, this._capacity, this._depth, this._maxDepth, this, this._creationFunc); }), (e._CreateBlocks = function (t, n, i, r, o, s, c, l) { c.blocks = new Array(); for (var u = new a.e((n.x - t.x) / 2, (n.y - t.y) / 2, (n.z - t.z) / 2), h = 0; h < 2; h++) for (var d = 0; d < 2; d++) for (var p = 0; p < 2; p++) { var f = new e(t.add(u.multiplyByFloats(h, d, p)), t.add(u.multiplyByFloats(h + 1, d + 1, p + 1)), r, o + 1, s, l); f.addEntries(i), c.blocks.push(f); } }), e ); })(), oi = (function () { function e(e, t, n) { void 0 === n && (n = 2), (this.maxDepth = n), (this.dynamicContent = new Array()), (this._maxBlockCapacity = t || 64), (this._selectionContent = new ii.b(1024)), (this._creationFunc = e); } return ( (e.prototype.update = function (e, t, n) { ri._CreateBlocks(e, t, n, this._maxBlockCapacity, 0, this.maxDepth, this, this._creationFunc); }), (e.prototype.addMesh = function (e) { for (var t = 0; t < this.blocks.length; t++) { this.blocks[t].addEntry(e); } }), (e.prototype.removeMesh = function (e) { for (var t = 0; t < this.blocks.length; t++) { this.blocks[t].removeEntry(e); } }), (e.prototype.select = function (e, t) { this._selectionContent.reset(); for (var n = 0; n < this.blocks.length; n++) { this.blocks[n].select(e, this._selectionContent, t); } return t ? this._selectionContent.concat(this.dynamicContent) : this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent; }), (e.prototype.intersects = function (e, t, n) { this._selectionContent.reset(); for (var i = 0; i < this.blocks.length; i++) { this.blocks[i].intersects(e, t, this._selectionContent, n); } return n ? this._selectionContent.concat(this.dynamicContent) : this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent; }), (e.prototype.intersectsRay = function (e) { this._selectionContent.reset(); for (var t = 0; t < this.blocks.length; t++) { this.blocks[t].intersectsRay(e, this._selectionContent); } return this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent; }), (e.CreationFuncForMeshes = function (e, t) { var n = e.getBoundingInfo(); !e.isBlocked && n.boundingBox.intersectsMinMax(t.minPoint, t.maxPoint) && t.entries.push(e); }), (e.CreationFuncForSubMeshes = function (e, t) { e.getBoundingInfo().boundingBox.intersectsMinMax(t.minPoint, t.maxPoint) && t.entries.push(e); }), e ); })(); (ge.a.prototype.createOrUpdateSelectionOctree = function (e, t) { void 0 === e && (e = 64), void 0 === t && (t = 2); var n = this._getComponent(me.a.NAME_OCTREE); n || ((n = new ai(this)), this._addComponent(n)), this._selectionOctree || (this._selectionOctree = new oi(oi.CreationFuncForMeshes, e, t)); var i = this.getWorldExtends(); return this._selectionOctree.update(i.min, i.max, this.meshes), this._selectionOctree; }), Object.defineProperty(ge.a.prototype, "selectionOctree", { get: function () { return this._selectionOctree; }, enumerable: !0, configurable: !0, }), (ke.a.prototype.createOrUpdateSubmeshesOctree = function (e, t) { void 0 === e && (e = 64), void 0 === t && (t = 2); var n = this.getScene(), i = n._getComponent(me.a.NAME_OCTREE); i || ((i = new ai(n)), n._addComponent(i)), this._submeshesOctree || (this._submeshesOctree = new oi(oi.CreationFuncForSubMeshes, e, t)), this.computeWorldMatrix(!0); var r = this.getBoundingInfo().boundingBox; return this._submeshesOctree.update(r.minimumWorld, r.maximumWorld, this.subMeshes), this._submeshesOctree; }); var ai = (function () { function e(e) { (this.name = me.a.NAME_OCTREE), (this.checksIsEnabled = !0), (this._tempRay = new Re(a.e.Zero(), new a.e(1, 1, 1))), (this.scene = e), (this.scene.getActiveMeshCandidates = this.getActiveMeshCandidates.bind(this)), (this.scene.getActiveSubMeshCandidates = this.getActiveSubMeshCandidates.bind(this)), (this.scene.getCollidingSubMeshCandidates = this.getCollidingSubMeshCandidates.bind(this)), (this.scene.getIntersectingSubMeshCandidates = this.getIntersectingSubMeshCandidates.bind(this)); } return ( (e.prototype.register = function () { var e = this; this.scene.onMeshRemovedObservable.add(function (t) { var n = e.scene.selectionOctree; if (null != n) { var i = n.dynamicContent.indexOf(t); -1 !== i && n.dynamicContent.splice(i, 1); } }), this.scene.onMeshImportedObservable.add(function (t) { var n = e.scene.selectionOctree; null != n && n.addMesh(t); }); }), (e.prototype.getActiveMeshCandidates = function () { return this.scene._selectionOctree ? this.scene._selectionOctree.select(this.scene.frustumPlanes) : this.scene._getDefaultMeshCandidates(); }), (e.prototype.getActiveSubMeshCandidates = function (e) { return e._submeshesOctree && e.useOctreeForRenderingSelection ? e._submeshesOctree.select(this.scene.frustumPlanes) : this.scene._getDefaultSubMeshCandidates(e); }), (e.prototype.getIntersectingSubMeshCandidates = function (e, t) { return e._submeshesOctree && e.useOctreeForPicking ? (Re.TransformToRef(t, e.getWorldMatrix(), this._tempRay), e._submeshesOctree.intersectsRay(this._tempRay)) : this.scene._getDefaultSubMeshCandidates(e); }), (e.prototype.getCollidingSubMeshCandidates = function (e, t) { if (e._submeshesOctree && e.useOctreeForCollisions) { var n = t._velocityWorldLength + Math.max(t._radius.x, t._radius.y, t._radius.z); return e._submeshesOctree.intersects(t._basePointWorld, n); } return this.scene._getDefaultSubMeshCandidates(e); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () {}), e ); })(), si = n(39), ci = n(55), li = (function () { function e(e) { var t = this; void 0 === e && (e = ci.a.DefaultUtilityLayer), (this.gizmoLayer = e), (this._attachedMesh = null), (this.scaleRatio = 1), (this._customMeshSet = !1), (this.updateGizmoRotationToMatchAttachedMesh = !0), (this.updateGizmoPositionToMatchAttachedMesh = !0), (this.updateScale = !0), (this._interactionsEnabled = !0), (this._tempVector = new a.e()), (this._rootMesh = new Ee.a("gizmoRootNode", e.utilityLayerScene)), (this._rootMesh.rotationQuaternion = a.b.Identity()), (this._beforeRenderObserver = this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.add(function () { t._update(); })); } return ( Object.defineProperty(e.prototype, "attachedMesh", { get: function () { return this._attachedMesh; }, set: function (e) { (this._attachedMesh = e), this._rootMesh.setEnabled(!!e), this._attachedMeshChanged(e); }, enumerable: !0, configurable: !0, }), (e.prototype.setCustomMesh = function (e) { if (e.getScene() != this.gizmoLayer.utilityLayerScene) throw "When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)"; this._rootMesh.getChildMeshes().forEach(function (e) { e.dispose(); }), (e.parent = this._rootMesh), (this._customMeshSet = !0); }), (e.prototype._attachedMeshChanged = function (e) {}), (e.prototype._update = function () { if (this.attachedMesh) { var e = this.attachedMesh._effectiveMesh || this.attachedMesh; if ( (this.updateGizmoPositionToMatchAttachedMesh && this._rootMesh.position.copyFrom(e.absolutePosition), this.updateGizmoRotationToMatchAttachedMesh ? e.getWorldMatrix().decompose(void 0, this._rootMesh.rotationQuaternion) : this._rootMesh.rotationQuaternion.set(0, 0, 0, 1), this.updateScale) ) { var t = this.gizmoLayer.utilityLayerScene.activeCamera, n = t.globalPosition; t.devicePosition && (n = t.devicePosition), this._rootMesh.position.subtractToRef(n, this._tempVector); var i = this._tempVector.length() * this.scaleRatio; this._rootMesh.scaling.set(i, i, i), e._getWorldMatrixDeterminant() < 0 && (this._rootMesh.scaling.y *= -1); } else this._rootMesh.scaling.setAll(this.scaleRatio); } }), (e.prototype.dispose = function () { this._rootMesh.dispose(), this._beforeRenderObserver && this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.remove(this._beforeRenderObserver); }), e ); })(), ui = (function (e) { function t(n, i, r, c) { void 0 === i && (i = s.a.Gray()), void 0 === r && (r = ci.a.DefaultUtilityLayer), void 0 === c && (c = null); var l = e.call(this, r) || this; (l._pointerObserver = null), (l.snapDistance = 0), (l.onSnapObservable = new o.c()), (l._isEnabled = !0), (l._parent = null), (l._parent = c), (l._coloredMaterial = new Mn.a("", r.utilityLayerScene)), (l._coloredMaterial.diffuseColor = i), (l._coloredMaterial.specularColor = i.subtract(new s.a(0.1, 0.1, 0.1))), (l._hoverMaterial = new Mn.a("", r.utilityLayerScene)), (l._hoverMaterial.diffuseColor = i.add(new s.a(0.3, 0.3, 0.3))), (l._arrow = t._CreateArrow(r.utilityLayerScene, l._coloredMaterial)), l._arrow.lookAt(l._rootMesh.position.add(n)), l._arrow.scaling.scaleInPlace(1 / 3), (l._arrow.parent = l._rootMesh); var u = 0, h = new a.e(), d = { snapDistance: 0 }; (l.dragBehavior = new Fe({ dragAxis: n })), (l.dragBehavior.moveAttached = !1), l._rootMesh.addBehavior(l.dragBehavior); var p = new a.e(), f = new a.a(); l.dragBehavior.onDragObservable.add(function (e) { if (l.attachedMesh) if ( (l.attachedMesh.parent ? (l.attachedMesh.parent.computeWorldMatrix().invertToRef(f), f.setTranslationFromFloats(0, 0, 0), a.e.TransformCoordinatesToRef(e.delta, f, p)) : p.copyFrom(e.delta), 0 == l.snapDistance) ) l.attachedMesh.position.addInPlace(p); else if (((u += e.dragDistance), Math.abs(u) > l.snapDistance)) { var t = Math.floor(Math.abs(u) / l.snapDistance); (u %= l.snapDistance), p.normalizeToRef(h), h.scaleInPlace(l.snapDistance * t), l.attachedMesh.position.addInPlace(h), (d.snapDistance = l.snapDistance * t), l.onSnapObservable.notifyObservers(d); } }), (l._pointerObserver = r.utilityLayerScene.onPointerObservable.add(function (e) { if (!l._customMeshSet) { var t = e.pickInfo && -1 != l._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? l._hoverMaterial : l._coloredMaterial; l._rootMesh.getChildMeshes().forEach(function (e) { (e.material = t), e.color && (e.color = t.diffuseColor); }); } })); var m = r._getSharedGizmoLight(); return (m.includedOnlyMeshes = m.includedOnlyMeshes.concat(l._rootMesh.getChildMeshes(!1))), l; } return ( Object(h.d)(t, e), (t._CreateArrow = function (e, t) { var n = new si.a("arrow", e), i = jn.CreateCylinder("cylinder", { diameterTop: 0, height: 0.075, diameterBottom: 0.0375, tessellation: 96 }, e), r = jn.CreateCylinder("cylinder", { diameterTop: 0.005, height: 0.275, diameterBottom: 0.005, tessellation: 96 }, e); return (r.material = t), (i.parent = n), (r.parent = n), (i.material = t), (i.rotation.x = Math.PI / 2), (i.position.z += 0.3), (r.position.z += 0.1375), (r.rotation.x = Math.PI / 2), n; }), (t._CreateArrowInstance = function (e, t) { for (var n = new si.a("arrow", e), i = 0, r = t.getChildMeshes(); i < r.length; i++) { var o = r[i]; o.createInstance(o.name).parent = n; } return n; }), (t.prototype._attachedMeshChanged = function (e) { this.dragBehavior && (this.dragBehavior.enabled = !!e); }), Object.defineProperty(t.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { (this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), this._arrow && this._arrow.dispose(), [this._coloredMaterial, this._hoverMaterial].forEach(function (e) { e && e.dispose(); }), e.prototype.dispose.call(this); }), t ); })(li), hi = (function () { function e(t, n, i, r, o, c) { if ((void 0 === n && (n = 1), void 0 === i && (i = 2), (this._scaleLinesFactor = 4), (this._instanced = !1), (this.scaleLines = 1), (this.scaleLines = n), !r)) { var l = new Mn.a("", t); (l.disableLighting = !0), (l.emissiveColor = s.a.Red().scale(0.5)), (r = ui._CreateArrow(t, l)); } if (!o) { var u = new Mn.a("", t); (u.disableLighting = !0), (u.emissiveColor = s.a.Green().scale(0.5)), (o = ui._CreateArrow(t, u)); } if (!c) { var h = new Mn.a("", t); (h.disableLighting = !0), (h.emissiveColor = s.a.Blue().scale(0.5)), (c = ui._CreateArrow(t, h)); } (this._xAxis = r), this._xAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor), (this._yAxis = o), this._yAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor), (this._zAxis = c), this._zAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor), null != i && (e._SetRenderingGroupId(this._xAxis, i), e._SetRenderingGroupId(this._yAxis, i), e._SetRenderingGroupId(this._zAxis, i)), (this.scene = t), this.update(new a.e(), a.e.Right(), a.e.Up(), a.e.Forward()); } return ( Object.defineProperty(e.prototype, "xAxis", { get: function () { return this._xAxis; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "yAxis", { get: function () { return this._yAxis; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "zAxis", { get: function () { return this._zAxis; }, enumerable: !0, configurable: !0, }), (e.prototype.update = function (e, t, n, i) { this._xAxis.position.copyFrom(e), this._xAxis.setDirection(t), this._xAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor), this._yAxis.position.copyFrom(e), this._yAxis.setDirection(n), this._yAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor), this._zAxis.position.copyFrom(e), this._zAxis.setDirection(i), this._zAxis.scaling.setAll(this.scaleLines * this._scaleLinesFactor); }), (e.prototype.createInstance = function () { var t = ui._CreateArrowInstance(this.scene, this._xAxis), n = ui._CreateArrowInstance(this.scene, this._yAxis), i = ui._CreateArrowInstance(this.scene, this._zAxis), r = new e(this.scene, this.scaleLines, null, t, n, i); return (r._instanced = !0), r; }), (e.prototype.dispose = function () { this._xAxis && (this._xAxis.dispose(!1, !this._instanced), delete this._xAxis), this._yAxis && (this._yAxis.dispose(!1, !this._instanced), delete this._yAxis), this._zAxis && (this._zAxis.dispose(!1, !this._instanced), delete this._zAxis), delete this.scene; }), (e._SetRenderingGroupId = function (e, t) { e.getChildMeshes().forEach(function (e) { e.renderingGroupId = t; }); }), e ); })(), di = (function (e) { function t(t, n, i, r) { void 0 === r && (r = 1); var o = e.call(this, t, r) || this; return (o.pos = a.e.Zero()), (o.xaxis = a.e.Zero()), (o.yaxis = a.e.Zero()), (o.zaxis = a.e.Zero()), (o.mesh = i), (o.bone = n), o; } return ( Object(h.d)(t, e), (t.prototype.update = function () { if (this.mesh && this.bone) { var t = this.bone; t._markAsDirtyAndCompose(), t.getAbsolutePositionToRef(this.mesh, this.pos), t.getDirectionToRef(Be.a.X, this.mesh, this.xaxis), t.getDirectionToRef(Be.a.Y, this.mesh, this.yaxis), t.getDirectionToRef(Be.a.Z, this.mesh, this.zaxis), e.prototype.update.call(this, this.pos, this.xaxis, this.yaxis, this.zaxis); } }), (t.prototype.dispose = function () { this.mesh && ((this.mesh = null), (this.bone = null), e.prototype.dispose.call(this)); }), t ); })(hi), pi = n(211), fi = n(84); (Rn.a.CreateSphere = function (e) { for ( var t = e.segments || 32, n = e.diameterX || e.diameter || 1, i = e.diameterY || e.diameter || 1, r = e.diameterZ || e.diameter || 1, o = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1, s = e.slice && e.slice <= 0 ? 1 : e.slice || 1, c = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, l = new a.e(n / 2, i / 2, r / 2), u = 2 + t, h = 2 * u, d = [], p = [], f = [], m = [], g = 0; g <= u; g++ ) { for (var b = g / u, _ = b * Math.PI * s, v = 0; v <= h; v++) { var y = v / h, C = y * Math.PI * 2 * o, P = a.a.RotationZ(-_), x = a.a.RotationY(C), T = a.e.TransformCoordinates(a.e.Up(), P), S = a.e.TransformCoordinates(T, x), O = S.multiply(l), E = S.divide(l).normalize(); p.push(O.x, O.y, O.z), f.push(E.x, E.y, E.z), m.push(y, b); } if (g > 0) for (var M = p.length / 3, A = M - 2 * (h + 1); A + h + 2 < M; A++) d.push(A), d.push(A + 1), d.push(A + h + 1), d.push(A + h + 1), d.push(A + 1), d.push(A + h + 2); } Rn.a._ComputeSides(c, p, d, f, m, e.frontUVs, e.backUVs); var I = new Rn.a(); return (I.indices = d), (I.positions = p), (I.normals = f), (I.uvs = m), I; }), (Ee.a.CreateSphere = function (e, t, n, i, r, o) { var a = { segments: t, diameterX: n, diameterY: n, diameterZ: n, sideOrientation: o, updatable: r }; return mi.CreateSphere(e, a, i); }); var mi = (function () { function e() {} return ( (e.CreateSphere = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateSphere(t).applyToMesh(i, t.updatable), i; }), e ); })(), gi = (function () { function e(e, t) { (this.type = e), (this.jointData = t), (t.nativeParams = t.nativeParams || {}); } return ( Object.defineProperty(e.prototype, "physicsJoint", { get: function () { return this._physicsJoint; }, set: function (e) { this._physicsJoint, (this._physicsJoint = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "physicsPlugin", { set: function (e) { this._physicsPlugin = e; }, enumerable: !0, configurable: !0, }), (e.prototype.executeNativeFunction = function (e) { e(this._physicsPlugin.world, this._physicsJoint); }), (e.DistanceJoint = 0), (e.HingeJoint = 1), (e.BallAndSocketJoint = 2), (e.WheelJoint = 3), (e.SliderJoint = 4), (e.PrismaticJoint = 5), (e.UniversalJoint = 6), (e.Hinge2Joint = e.WheelJoint), (e.PointToPointJoint = 8), (e.SpringJoint = 9), (e.LockJoint = 10), e ); })(), bi = (function (e) { function t(t) { return e.call(this, gi.DistanceJoint, t) || this; } return ( Object(h.d)(t, e), (t.prototype.updateDistance = function (e, t) { this._physicsPlugin.updateDistanceJoint(this, e, t); }), t ); })(gi), _i = (function (e) { function t(t, n) { return e.call(this, t, n) || this; } return ( Object(h.d)(t, e), (t.prototype.setMotor = function (e, t) { this._physicsPlugin.setMotor(this, e || 0, t); }), (t.prototype.setLimit = function (e, t) { this._physicsPlugin.setLimit(this, e, t); }), t ); })(gi), vi = (function (e) { function t(t) { return e.call(this, gi.HingeJoint, t) || this; } return ( Object(h.d)(t, e), (t.prototype.setMotor = function (e, t) { this._physicsPlugin.setMotor(this, e || 0, t); }), (t.prototype.setLimit = function (e, t) { this._physicsPlugin.setLimit(this, e, t); }), t ); })(_i), yi = (function (e) { function t(t) { return e.call(this, gi.Hinge2Joint, t) || this; } return ( Object(h.d)(t, e), (t.prototype.setMotor = function (e, t, n) { void 0 === n && (n = 0), this._physicsPlugin.setMotor(this, e || 0, t, n); }), (t.prototype.setLimit = function (e, t, n) { void 0 === n && (n = 0), this._physicsPlugin.setLimit(this, e, t, n); }), t ); })(_i); Ee.a._PhysicsImpostorParser = function (e, t, n) { return new Ci(t, n.physicsImpostor, { mass: n.physicsMass, friction: n.physicsFriction, restitution: n.physicsRestitution }, e); }; var Ci = (function () { function e(e, t, n, i) { var r = this; void 0 === n && (n = { mass: 0 }), (this.object = e), (this.type = t), (this._options = n), (this._scene = i), (this._pluginData = {}), (this._bodyUpdateRequired = !1), (this._onBeforePhysicsStepCallbacks = new Array()), (this._onAfterPhysicsStepCallbacks = new Array()), (this._onPhysicsCollideCallbacks = []), (this._deltaPosition = a.e.Zero()), (this._isDisposed = !1), (this.soft = !1), (this.segments = 0), (this._tmpQuat = new a.b()), (this._tmpQuat2 = new a.b()), (this.beforeStep = function () { r._physicsEngine && (r.object.translate(r._deltaPosition, -1), r._deltaRotationConjugated && r.object.rotationQuaternion && r.object.rotationQuaternion.multiplyToRef(r._deltaRotationConjugated, r.object.rotationQuaternion), r.object.computeWorldMatrix(!1), r.object.parent && r.object.rotationQuaternion ? (r.getParentsRotation(), r._tmpQuat.multiplyToRef(r.object.rotationQuaternion, r._tmpQuat)) : r._tmpQuat.copyFrom(r.object.rotationQuaternion || new a.b()), r._options.disableBidirectionalTransformation || (r.object.rotationQuaternion && r._physicsEngine.getPhysicsPlugin().setPhysicsBodyTransformation(r, r.object.getAbsolutePosition(), r._tmpQuat)), r._onBeforePhysicsStepCallbacks.forEach(function (e) { e(r); })); }), (this.afterStep = function () { r._physicsEngine && (r._onAfterPhysicsStepCallbacks.forEach(function (e) { e(r); }), r._physicsEngine.getPhysicsPlugin().setTransformationFromPhysicsBody(r), r.object.parent && r.object.rotationQuaternion && (r.getParentsRotation(), r._tmpQuat.conjugateInPlace(), r._tmpQuat.multiplyToRef(r.object.rotationQuaternion, r.object.rotationQuaternion)), r.object.setAbsolutePosition(r.object.position), r._deltaRotation && r.object.rotationQuaternion && r.object.rotationQuaternion.multiplyToRef(r._deltaRotation, r.object.rotationQuaternion), r.object.translate(r._deltaPosition, 1)); }), (this.onCollideEvent = null), (this.onCollide = function (e) { if ((r._onPhysicsCollideCallbacks.length || r.onCollideEvent) && r._physicsEngine) { var t = r._physicsEngine.getImpostorWithPhysicsBody(e.body); t && (r.onCollideEvent && r.onCollideEvent(r, t), r._onPhysicsCollideCallbacks .filter(function (e) { return -1 !== e.otherImpostors.indexOf(t); }) .forEach(function (e) { e.callback(r, t); })); } }), this.object ? (this.object.parent && 0 !== n.mass && g.a.Warn("A physics impostor has been created for an object which has a parent. Babylon physics currently works in local space so unexpected issues may occur."), !this._scene && e.getScene && (this._scene = e.getScene()), this._scene && (this.type > 100 && (this.soft = !0), (this._physicsEngine = this._scene.getPhysicsEngine()), this._physicsEngine ? (this.object.rotationQuaternion || (this.object.rotation ? (this.object.rotationQuaternion = a.b.RotationYawPitchRoll(this.object.rotation.y, this.object.rotation.x, this.object.rotation.z)) : (this.object.rotationQuaternion = new a.b())), (this._options.mass = void 0 === n.mass ? 0 : n.mass), (this._options.friction = void 0 === n.friction ? 0.2 : n.friction), (this._options.restitution = void 0 === n.restitution ? 0.2 : n.restitution), this.soft && ((this._options.mass = this._options.mass > 0 ? this._options.mass : 1), (this._options.pressure = void 0 === n.pressure ? 200 : n.pressure), (this._options.stiffness = void 0 === n.stiffness ? 1 : n.stiffness), (this._options.velocityIterations = void 0 === n.velocityIterations ? 20 : n.velocityIterations), (this._options.positionIterations = void 0 === n.positionIterations ? 20 : n.positionIterations), (this._options.fixedPoints = void 0 === n.fixedPoints ? 0 : n.fixedPoints), (this._options.margin = void 0 === n.margin ? 0 : n.margin), (this._options.damping = void 0 === n.damping ? 0 : n.damping), (this._options.path = void 0 === n.path ? null : n.path), (this._options.shape = void 0 === n.shape ? null : n.shape)), (this._joints = []), !this.object.parent || this._options.ignoreParent ? this._init() : this.object.parent.physicsImpostor && g.a.Warn("You must affect impostors to children before affecting impostor to parent.")) : g.a.Error("Physics not enabled. Please use scene.enablePhysics(...) before creating impostors."))) : g.a.Error("No object was provided. A physics object is obligatory"); } return ( Object.defineProperty(e.prototype, "isDisposed", { get: function () { return this._isDisposed; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "mass", { get: function () { return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyMass(this) : 0; }, set: function (e) { this.setMass(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "friction", { get: function () { return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyFriction(this) : 0; }, set: function (e) { this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyFriction(this, e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "restitution", { get: function () { return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this) : 0; }, set: function (e) { this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this, e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "pressure", { get: function () { if (!this._physicsEngine) return 0; var e = this._physicsEngine.getPhysicsPlugin(); return e.setBodyPressure ? e.getBodyPressure(this) : 0; }, set: function (e) { if (this._physicsEngine) { var t = this._physicsEngine.getPhysicsPlugin(); t.setBodyPressure && t.setBodyPressure(this, e); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stiffness", { get: function () { if (!this._physicsEngine) return 0; var e = this._physicsEngine.getPhysicsPlugin(); return e.getBodyStiffness ? e.getBodyStiffness(this) : 0; }, set: function (e) { if (this._physicsEngine) { var t = this._physicsEngine.getPhysicsPlugin(); t.setBodyStiffness && t.setBodyStiffness(this, e); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "velocityIterations", { get: function () { if (!this._physicsEngine) return 0; var e = this._physicsEngine.getPhysicsPlugin(); return e.getBodyVelocityIterations ? e.getBodyVelocityIterations(this) : 0; }, set: function (e) { if (this._physicsEngine) { var t = this._physicsEngine.getPhysicsPlugin(); t.setBodyVelocityIterations && t.setBodyVelocityIterations(this, e); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "positionIterations", { get: function () { if (!this._physicsEngine) return 0; var e = this._physicsEngine.getPhysicsPlugin(); return e.getBodyPositionIterations ? e.getBodyPositionIterations(this) : 0; }, set: function (e) { if (this._physicsEngine) { var t = this._physicsEngine.getPhysicsPlugin(); t.setBodyPositionIterations && t.setBodyPositionIterations(this, e); } }, enumerable: !0, configurable: !0, }), (e.prototype._init = function () { this._physicsEngine && (this._physicsEngine.removeImpostor(this), (this.physicsBody = null), (this._parent = this._parent || this._getPhysicsParent()), this._isDisposed || (this.parent && !this._options.ignoreParent) || this._physicsEngine.addImpostor(this)); }), (e.prototype._getPhysicsParent = function () { return this.object.parent instanceof ke.a ? this.object.parent.physicsImpostor : null; }), (e.prototype.isBodyInitRequired = function () { return this._bodyUpdateRequired || (!this._physicsBody && !this._parent); }), (e.prototype.setScalingUpdated = function () { this.forceUpdate(); }), (e.prototype.forceUpdate = function () { this._init(), this.parent && !this._options.ignoreParent && this.parent.forceUpdate(); }), Object.defineProperty(e.prototype, "physicsBody", { get: function () { return this._parent && !this._options.ignoreParent ? this._parent.physicsBody : this._physicsBody; }, set: function (e) { this._physicsBody && this._physicsEngine && this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this), (this._physicsBody = e), this.resetUpdateFlags(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "parent", { get: function () { return !this._options.ignoreParent && this._parent ? this._parent : null; }, set: function (e) { this._parent = e; }, enumerable: !0, configurable: !0, }), (e.prototype.resetUpdateFlags = function () { this._bodyUpdateRequired = !1; }), (e.prototype.getObjectExtendSize = function () { if (this.object.getBoundingInfo) { var t = this.object.rotationQuaternion; (this.object.rotationQuaternion = e.IDENTITY_QUATERNION), this.object.computeWorldMatrix && this.object.computeWorldMatrix(!0); var n = this.object.getBoundingInfo().boundingBox.extendSizeWorld.scale(2); return (this.object.rotationQuaternion = t), this.object.computeWorldMatrix && this.object.computeWorldMatrix(!0), n; } return e.DEFAULT_OBJECT_SIZE; }), (e.prototype.getObjectCenter = function () { return this.object.getBoundingInfo ? this.object.getBoundingInfo().boundingBox.centerWorld : this.object.position; }), (e.prototype.getParam = function (e) { return this._options[e]; }), (e.prototype.setParam = function (e, t) { (this._options[e] = t), (this._bodyUpdateRequired = !0); }), (e.prototype.setMass = function (e) { this.getParam("mass") !== e && this.setParam("mass", e), this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyMass(this, e); }), (e.prototype.getLinearVelocity = function () { return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this) : a.e.Zero(); }), (e.prototype.setLinearVelocity = function (e) { this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this, e); }), (e.prototype.getAngularVelocity = function () { return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this) : a.e.Zero(); }), (e.prototype.setAngularVelocity = function (e) { this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this, e); }), (e.prototype.executeNativeFunction = function (e) { this._physicsEngine && e(this._physicsEngine.getPhysicsPlugin().world, this.physicsBody); }), (e.prototype.registerBeforePhysicsStep = function (e) { this._onBeforePhysicsStepCallbacks.push(e); }), (e.prototype.unregisterBeforePhysicsStep = function (e) { var t = this._onBeforePhysicsStepCallbacks.indexOf(e); t > -1 ? this._onBeforePhysicsStepCallbacks.splice(t, 1) : g.a.Warn("Function to remove was not found"); }), (e.prototype.registerAfterPhysicsStep = function (e) { this._onAfterPhysicsStepCallbacks.push(e); }), (e.prototype.unregisterAfterPhysicsStep = function (e) { var t = this._onAfterPhysicsStepCallbacks.indexOf(e); t > -1 ? this._onAfterPhysicsStepCallbacks.splice(t, 1) : g.a.Warn("Function to remove was not found"); }), (e.prototype.registerOnPhysicsCollide = function (e, t) { var n = e instanceof Array ? e : [e]; this._onPhysicsCollideCallbacks.push({ callback: t, otherImpostors: n }); }), (e.prototype.unregisterOnPhysicsCollide = function (e, t) { var n = e instanceof Array ? e : [e], i = -1; this._onPhysicsCollideCallbacks.some(function (e, r) { if (e.callback === t && e.otherImpostors.length === n.length) { var o = e.otherImpostors.every(function (e) { return n.indexOf(e) > -1; }); return o && (i = r), o; } return !1; }) ? this._onPhysicsCollideCallbacks.splice(i, 1) : g.a.Warn("Function to remove was not found"); }), (e.prototype.getParentsRotation = function () { var e = this.object.parent; for (this._tmpQuat.copyFromFloats(0, 0, 0, 1); e; ) e.rotationQuaternion ? this._tmpQuat2.copyFrom(e.rotationQuaternion) : a.b.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, e.rotation.z, this._tmpQuat2), this._tmpQuat.multiplyToRef(this._tmpQuat2, this._tmpQuat), (e = e.parent); return this._tmpQuat; }), (e.prototype.applyForce = function (e, t) { return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().applyForce(this, e, t), this; }), (e.prototype.applyImpulse = function (e, t) { return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().applyImpulse(this, e, t), this; }), (e.prototype.createJoint = function (e, t, n) { var i = new gi(t, n); return this.addJoint(e, i), this; }), (e.prototype.addJoint = function (e, t) { return this._joints.push({ otherImpostor: e, joint: t }), this._physicsEngine && this._physicsEngine.addJoint(this, e, t), this; }), (e.prototype.addAnchor = function (e, t, n, i, r) { if (!this._physicsEngine) return this; var o = this._physicsEngine.getPhysicsPlugin(); return o.appendAnchor ? (this._physicsEngine && o.appendAnchor(this, e, t, n, i, r), this) : this; }), (e.prototype.addHook = function (e, t, n, i) { if (!this._physicsEngine) return this; var r = this._physicsEngine.getPhysicsPlugin(); return r.appendAnchor ? (this._physicsEngine && r.appendHook(this, e, t, n, i), this) : this; }), (e.prototype.sleep = function () { return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().sleepBody(this), this; }), (e.prototype.wakeUp = function () { return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().wakeUpBody(this), this; }), (e.prototype.clone = function (t) { return t ? new e(t, this.type, this._options, this._scene) : null; }), (e.prototype.dispose = function () { var e = this; this._physicsEngine && (this._joints.forEach(function (t) { e._physicsEngine && e._physicsEngine.removeJoint(e, t.otherImpostor, t.joint); }), this._physicsEngine.removeImpostor(this), this.parent && this.parent.forceUpdate(), (this._isDisposed = !0)); }), (e.prototype.setDeltaPosition = function (e) { this._deltaPosition.copyFrom(e); }), (e.prototype.setDeltaRotation = function (e) { this._deltaRotation || (this._deltaRotation = new a.b()), this._deltaRotation.copyFrom(e), (this._deltaRotationConjugated = this._deltaRotation.conjugate()); }), (e.prototype.getBoxSizeToRef = function (e) { return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this, e), this; }), (e.prototype.getRadius = function () { return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getRadius(this) : 0; }), (e.prototype.syncBoneWithImpostor = function (t, n, i, r, o) { var a = e._tmpVecs[0], s = this.object; if (s.rotationQuaternion) if (o) { var c = e._tmpQuat; s.rotationQuaternion.multiplyToRef(o, c), t.setRotationQuaternion(c, Be.b.WORLD, n); } else t.setRotationQuaternion(s.rotationQuaternion, Be.b.WORLD, n); (a.x = 0), (a.y = 0), (a.z = 0), i && ((a.x = i.x), (a.y = i.y), (a.z = i.z), t.getDirectionToRef(a, n, a), null == r && (r = i.length()), (a.x *= r), (a.y *= r), (a.z *= r)), t.getParent() ? (a.addInPlace(s.getAbsolutePosition()), t.setAbsolutePosition(a, n)) : (n.setAbsolutePosition(s.getAbsolutePosition()), (n.position.x -= a.x), (n.position.y -= a.y), (n.position.z -= a.z)); }), (e.prototype.syncImpostorWithBone = function (t, n, i, r, o, a) { var s = this.object; if (s.rotationQuaternion) if (o) { var c = e._tmpQuat; t.getRotationQuaternionToRef(Be.b.WORLD, n, c), c.multiplyToRef(o, s.rotationQuaternion); } else t.getRotationQuaternionToRef(Be.b.WORLD, n, s.rotationQuaternion); var l = e._tmpVecs[0], u = e._tmpVecs[1]; a || (((a = e._tmpVecs[2]).x = 0), (a.y = 1), (a.z = 0)), t.getDirectionToRef(a, n, u), t.getAbsolutePositionToRef(n, l), null == r && i && (r = i.length()), null != r && ((l.x += u.x * r), (l.y += u.y * r), (l.z += u.z * r)), s.setAbsolutePosition(l); }), (e.DEFAULT_OBJECT_SIZE = new a.e(1, 1, 1)), (e.IDENTITY_QUATERNION = a.b.Identity()), (e._tmpVecs = Me.a.BuildArray(3, a.e.Zero)), (e._tmpQuat = a.b.Identity()), (e.NoImpostor = 0), (e.SphereImpostor = 1), (e.BoxImpostor = 2), (e.PlaneImpostor = 3), (e.MeshImpostor = 4), (e.CapsuleImpostor = 6), (e.CylinderImpostor = 7), (e.ParticleImpostor = 8), (e.HeightmapImpostor = 9), (e.ConvexHullImpostor = 10), (e.CustomImpostor = 100), (e.RopeImpostor = 101), (e.ClothImpostor = 102), (e.SoftbodyImpostor = 103), e ); })(), Pi = (function () { function e(e) { (this._impostors = []), (this._meshes = []), (this._numMeshes = 0), (this._debugMeshMeshes = new Array()), (this._scene = e || E.a.LastCreatedScene); var t = this._scene.getPhysicsEngine(); t && (this._physicsEnginePlugin = t.getPhysicsPlugin()), (this._utilityLayer = new ci.a(this._scene, !1)), (this._utilityLayer.pickUtilitySceneFirst = !1), (this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil = !0); } return ( (e.prototype._updateDebugMeshes = function () { for (var e = this._physicsEnginePlugin, t = 0; t < this._numMeshes; t++) { var n = this._impostors[t]; if (n) if (n.isDisposed) this.hideImpostor(this._impostors[t--]); else { if (n.type === Ci.MeshImpostor) continue; var i = this._meshes[t]; i && e && e.syncMeshWithImpostor(i, n); } } }), (e.prototype.showImpostor = function (e, t) { if (!this._scene) return null; for (var n = 0; n < this._numMeshes; n++) if (this._impostors[n] == e) return null; var i = this._getDebugMesh(e, t); return ( i && ((this._impostors[this._numMeshes] = e), (this._meshes[this._numMeshes] = i), 0 === this._numMeshes && ((this._renderFunction = this._updateDebugMeshes.bind(this)), this._scene.registerBeforeRender(this._renderFunction)), this._numMeshes++), i ); }), (e.prototype.hideImpostor = function (e) { if (e && this._scene && this._utilityLayer) { for (var t = !1, n = this._utilityLayer.utilityLayerScene, i = 0; i < this._numMeshes; i++) if (this._impostors[i] == e) { var r = this._meshes[i]; if (!r) continue; n.removeMesh(r), r.dispose(); var o = this._debugMeshMeshes.indexOf(r); o > -1 && this._debugMeshMeshes.splice(o, 1), this._numMeshes--, this._numMeshes > 0 ? ((this._meshes[i] = this._meshes[this._numMeshes]), (this._impostors[i] = this._impostors[this._numMeshes]), (this._meshes[this._numMeshes] = null), (this._impostors[this._numMeshes] = null)) : ((this._meshes[0] = null), (this._impostors[0] = null)), (t = !0); break; } t && 0 === this._numMeshes && this._scene.unregisterBeforeRender(this._renderFunction); } }), (e.prototype._getDebugMaterial = function (e) { return ( this._debugMaterial || ((this._debugMaterial = new Mn.a("", e)), (this._debugMaterial.wireframe = !0), (this._debugMaterial.emissiveColor = s.a.White()), (this._debugMaterial.disableLighting = !0)), this._debugMaterial ); }), (e.prototype._getDebugBoxMesh = function (e) { return ( this._debugBoxMesh || ((this._debugBoxMesh = fi.a.CreateBox("physicsBodyBoxViewMesh", { size: 1 }, e)), (this._debugBoxMesh.rotationQuaternion = a.b.Identity()), (this._debugBoxMesh.material = this._getDebugMaterial(e)), this._debugBoxMesh.setEnabled(!1)), this._debugBoxMesh.createInstance("physicsBodyBoxViewInstance") ); }), (e.prototype._getDebugSphereMesh = function (e) { return ( this._debugSphereMesh || ((this._debugSphereMesh = mi.CreateSphere("physicsBodySphereViewMesh", { diameter: 1 }, e)), (this._debugSphereMesh.rotationQuaternion = a.b.Identity()), (this._debugSphereMesh.material = this._getDebugMaterial(e)), this._debugSphereMesh.setEnabled(!1)), this._debugSphereMesh.createInstance("physicsBodyBoxViewInstance") ); }), (e.prototype._getDebugCylinderMesh = function (e) { return ( this._debugCylinderMesh || ((this._debugCylinderMesh = jn.CreateCylinder("physicsBodyCylinderViewMesh", { diameterTop: 1, diameterBottom: 1, height: 1 }, e)), (this._debugCylinderMesh.rotationQuaternion = a.b.Identity()), (this._debugCylinderMesh.material = this._getDebugMaterial(e)), this._debugCylinderMesh.setEnabled(!1)), this._debugCylinderMesh.createInstance("physicsBodyBoxViewInstance") ); }), (e.prototype._getDebugMeshMesh = function (e, t) { var n = new Ee.a(e.name, t, null, e); return (n.position = a.e.Zero()), n.setParent(e), (n.material = this._getDebugMaterial(t)), this._debugMeshMeshes.push(n), n; }), (e.prototype._getDebugMesh = function (e, t) { var n = this; if (!this._utilityLayer) return null; if (t && t.parent && t.parent.physicsImpostor) return null; var i = null, r = this._utilityLayer.utilityLayerScene; switch (e.type) { case Ci.BoxImpostor: (i = this._getDebugBoxMesh(r)), e.getBoxSizeToRef(i.scaling); break; case Ci.SphereImpostor: i = this._getDebugSphereMesh(r); var o = e.getRadius(); (i.scaling.x = 2 * o), (i.scaling.y = 2 * o), (i.scaling.z = 2 * o); break; case Ci.MeshImpostor: t && (i = this._getDebugMeshMesh(t, r)); break; case Ci.NoImpostor: if (t) t.getChildMeshes() .filter(function (e) { return e.physicsImpostor ? 1 : 0; }) .forEach(function (e) { n._getDebugBoxMesh(r).parent = e; }); break; case Ci.CylinderImpostor: i = this._getDebugCylinderMesh(r); var a = e.object.getBoundingInfo(); (i.scaling.x = a.boundingBox.maximum.x - a.boundingBox.minimum.x), (i.scaling.y = a.boundingBox.maximum.y - a.boundingBox.minimum.y), (i.scaling.z = a.boundingBox.maximum.z - a.boundingBox.minimum.z); } return i; }), (e.prototype.dispose = function () { for (var e = this._numMeshes, t = 0; t < e; t++) this.hideImpostor(this._impostors[0]); this._debugBoxMesh && this._debugBoxMesh.dispose(), this._debugSphereMesh && this._debugSphereMesh.dispose(), this._debugCylinderMesh && this._debugCylinderMesh.dispose(), this._debugMaterial && this._debugMaterial.dispose(), (this._impostors.length = 0), (this._scene = null), (this._physicsEnginePlugin = null), this._utilityLayer && (this._utilityLayer.dispose(), (this._utilityLayer = null)); }), e ); })(), xi = n(116); (Rn.a.CreateLineSystem = function (e) { for (var t = [], n = [], i = e.lines, r = e.colors, o = [], a = 0, s = 0; s < i.length; s++) for (var c = i[s], l = 0; l < c.length; l++) { if ((n.push(c[l].x, c[l].y, c[l].z), r)) { var u = r[s]; o.push(u[l].r, u[l].g, u[l].b, u[l].a); } l > 0 && (t.push(a - 1), t.push(a)), a++; } var h = new Rn.a(); return (h.indices = t), (h.positions = n), r && (h.colors = o), h; }), (Rn.a.CreateDashedLines = function (e) { var t, n, i = e.dashSize || 3, r = e.gapSize || 1, o = e.dashNb || 200, s = e.points, c = new Array(), l = new Array(), u = a.e.Zero(), h = 0, d = 0, p = 0, f = 0, m = 0; for (m = 0; m < s.length - 1; m++) s[m + 1].subtractToRef(s[m], u), (h += u.length()); for (n = (i * (t = h / o)) / (i + r), m = 0; m < s.length - 1; m++) { s[m + 1].subtractToRef(s[m], u), (d = Math.floor(u.length() / t)), u.normalize(); for (var g = 0; g < d; g++) (p = t * g), c.push(s[m].x + p * u.x, s[m].y + p * u.y, s[m].z + p * u.z), c.push(s[m].x + (p + n) * u.x, s[m].y + (p + n) * u.y, s[m].z + (p + n) * u.z), l.push(f, f + 1), (f += 2); } var b = new Rn.a(); return (b.positions = c), (b.indices = l), b; }), (Ee.a.CreateLines = function (e, t, n, i, r) { void 0 === n && (n = null), void 0 === i && (i = !1), void 0 === r && (r = null); var o = { points: t, updatable: i, instance: r }; return Ti.CreateLines(e, o, n); }), (Ee.a.CreateDashedLines = function (e, t, n, i, r, o, a, s) { void 0 === o && (o = null); var c = { points: t, dashSize: n, gapSize: i, dashNb: r, updatable: a, instance: s }; return Ti.CreateDashedLines(e, c, o); }); var Ti = (function () { function e() {} return ( (e.CreateLineSystem = function (e, t, n) { var i = t.instance, r = t.lines, o = t.colors; if (i) { var a, s, c = i.getVerticesData(wn.b.PositionKind); o && (a = i.getVerticesData(wn.b.ColorKind)); for (var l = 0, u = 0, h = 0; h < r.length; h++) for (var d = r[h], p = 0; p < d.length; p++) (c[l] = d[p].x), (c[l + 1] = d[p].y), (c[l + 2] = d[p].z), o && a && ((s = o[h]), (a[u] = s[p].r), (a[u + 1] = s[p].g), (a[u + 2] = s[p].b), (a[u + 3] = s[p].a), (u += 4)), (l += 3); return i.updateVerticesData(wn.b.PositionKind, c, !1, !1), o && a && i.updateVerticesData(wn.b.ColorKind, a, !1, !1), i; } var f = !!o, m = new xi.b(e, n, null, void 0, void 0, f, t.useVertexAlpha); return Rn.a.CreateLineSystem(t).applyToMesh(m, t.updatable), m; }), (e.CreateLines = function (t, n, i) { void 0 === i && (i = null); var r = n.colors ? [n.colors] : null; return e.CreateLineSystem(t, { lines: [n.points], updatable: n.updatable, instance: n.instance, colors: r, useVertexAlpha: n.useVertexAlpha }, i); }), (e.CreateDashedLines = function (e, t, n) { void 0 === n && (n = null); var i = t.points, r = t.instance, o = t.gapSize || 1, s = t.dashSize || 3; if (r) { return ( r.updateMeshPositions(function (e) { var t, n, o = a.e.Zero(), s = e.length / 6, c = 0, l = 0, u = 0, h = 0, d = 0, p = 0; for (d = 0; d < i.length - 1; d++) i[d + 1].subtractToRef(i[d], o), (c += o.length()); t = c / s; var f = r._creationDataStorage.dashSize; for (n = (f * t) / (f + r._creationDataStorage.gapSize), d = 0; d < i.length - 1; d++) for (i[d + 1].subtractToRef(i[d], o), l = Math.floor(o.length() / t), o.normalize(), p = 0; p < l && h < e.length; ) (u = t * p), (e[h] = i[d].x + u * o.x), (e[h + 1] = i[d].y + u * o.y), (e[h + 2] = i[d].z + u * o.z), (e[h + 3] = i[d].x + (u + n) * o.x), (e[h + 4] = i[d].y + (u + n) * o.y), (e[h + 5] = i[d].z + (u + n) * o.z), (h += 6), p++; for (; h < e.length; ) (e[h] = i[d].x), (e[h + 1] = i[d].y), (e[h + 2] = i[d].z), (h += 3); }, !1), r ); } var c = new xi.b(e, n, null, void 0, void 0, void 0, t.useVertexAlpha); return Rn.a.CreateDashedLines(t).applyToMesh(c, t.updatable), (c._creationDataStorage = new Ee.b()), (c._creationDataStorage.dashSize = s), (c._creationDataStorage.gapSize = o), c; }), e ); })(), Si = (function () { function e(e) { this.ray = e; } return ( (e.CreateAndShow = function (t, n, i) { var r = new e(t); return r.show(n, i), r; }), (e.prototype.show = function (e, t) { if (!this._renderFunction && this.ray) { var n = this.ray; (this._renderFunction = this._render.bind(this)), (this._scene = e), (this._renderPoints = [n.origin, n.origin.add(n.direction.scale(n.length))]), (this._renderLine = Ee.a.CreateLines("ray", this._renderPoints, e, !0)), this._renderFunction && this._scene.registerBeforeRender(this._renderFunction); } t && this._renderLine && this._renderLine.color.copyFrom(t); }), (e.prototype.hide = function () { this._renderFunction && this._scene && (this._scene.unregisterBeforeRender(this._renderFunction), (this._scene = null), (this._renderFunction = null), this._renderLine && (this._renderLine.dispose(), (this._renderLine = null)), (this._renderPoints = [])); }), (e.prototype._render = function () { var e = this.ray; if (e) { var t = this._renderPoints[1], n = Math.min(e.length, 1e6); t.copyFrom(e.direction), t.scaleInPlace(n), t.addInPlace(e.origin), Ee.a.CreateLines("ray", this._renderPoints, this._scene, !0, this._renderLine); } }), (e.prototype.attachToMesh = function (e, t, n, i) { this._attachedToMesh = e; var r = this.ray; r && (r.direction || (r.direction = a.e.Zero()), r.origin || (r.origin = a.e.Zero()), i && (r.length = i), n || (n = a.e.Zero()), t || (t = new a.e(0, 0, -1)), this._meshSpaceDirection ? (this._meshSpaceDirection.copyFrom(t), this._meshSpaceOrigin.copyFrom(n)) : ((this._meshSpaceDirection = t.clone()), (this._meshSpaceOrigin = n.clone())), this._updateToMeshFunction || ((this._updateToMeshFunction = this._updateToMesh.bind(this)), this._attachedToMesh.getScene().registerBeforeRender(this._updateToMeshFunction)), this._updateToMesh()); }), (e.prototype.detachFromMesh = function () { this._attachedToMesh && (this._updateToMeshFunction && this._attachedToMesh.getScene().unregisterBeforeRender(this._updateToMeshFunction), (this._attachedToMesh = null), (this._updateToMeshFunction = null)); }), (e.prototype._updateToMesh = function () { var e = this.ray; this._attachedToMesh && e && (this._attachedToMesh._isDisposed ? this.detachFromMesh() : (this._attachedToMesh.getDirectionToRef(this._meshSpaceDirection, e.direction), a.e.TransformCoordinatesToRef(this._meshSpaceOrigin, this._attachedToMesh.getWorldMatrix(), e.origin))); }), (e.prototype.dispose = function () { this.hide(), this.detachFromMesh(), (this.ray = null); }), e ); })(), Oi = (function () { function e(e, t, n, i, r) { void 0 === i && (i = !0), void 0 === r && (r = 1), (this.skeleton = e), (this.mesh = t), (this.autoUpdateBonesMatrices = i), (this.renderingGroupId = r), (this.color = s.a.White()), (this._debugLines = new Array()), (this._isEnabled = !1), (this._scene = n), (this._utilityLayer = new ci.a(this._scene, !1)), (this._utilityLayer.pickUtilitySceneFirst = !1), (this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil = !0), this.update(), (this._renderFunction = this.update.bind(this)); } return ( Object.defineProperty(e.prototype, "debugMesh", { get: function () { return this._debugMesh; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { this._isEnabled !== e && ((this._isEnabled = e), e ? this._scene.registerBeforeRender(this._renderFunction) : this._scene.unregisterBeforeRender(this._renderFunction)); }, enumerable: !0, configurable: !0, }), (e.prototype._getBonePosition = function (e, t, n, i, r, o) { void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = 0); var s = a.c.Matrix[0], c = t.getParent(); if ((s.copyFrom(t.getLocalMatrix()), 0 !== i || 0 !== r || 0 !== o)) { var l = a.c.Matrix[1]; a.a.IdentityToRef(l), l.setTranslationFromFloats(i, r, o), l.multiplyToRef(s, s); } c && s.multiplyToRef(c.getAbsoluteTransform(), s), s.multiplyToRef(n, s), (e.x = s.m[12]), (e.y = s.m[13]), (e.z = s.m[14]); }), (e.prototype._getLinesForBonesWithLength = function (e, t) { for (var n = e.length, i = this.mesh._effectiveMesh.position, r = 0; r < n; r++) { var o = e[r], s = this._debugLines[r]; s || ((s = [a.e.Zero(), a.e.Zero()]), (this._debugLines[r] = s)), this._getBonePosition(s[0], o, t), this._getBonePosition(s[1], o, t, 0, o.length, 0), s[0].subtractInPlace(i), s[1].subtractInPlace(i); } }), (e.prototype._getLinesForBonesNoLength = function (e, t) { for (var n = e.length, i = 0, r = this.mesh._effectiveMesh, o = r.position, s = n - 1; s >= 0; s--) { var c = e[s], l = c.getParent(); if (l) { var u = this._debugLines[i]; u || ((u = [a.e.Zero(), a.e.Zero()]), (this._debugLines[i] = u)), c.getAbsolutePositionToRef(r, u[0]), l.getAbsolutePositionToRef(r, u[1]), u[0].subtractInPlace(o), u[1].subtractInPlace(o), i++; } } }), (e.prototype.update = function () { if (this._utilityLayer) { this.autoUpdateBonesMatrices && this.skeleton.computeAbsoluteTransforms(); var e = this.mesh._effectiveMesh; void 0 === this.skeleton.bones[0].length ? this._getLinesForBonesNoLength(this.skeleton.bones, e.getWorldMatrix()) : this._getLinesForBonesWithLength(this.skeleton.bones, e.getWorldMatrix()); var t = this._utilityLayer.utilityLayerScene; this._debugMesh ? Ti.CreateLineSystem("", { lines: this._debugLines, updatable: !0, instance: this._debugMesh }, t) : ((this._debugMesh = Ti.CreateLineSystem("", { lines: this._debugLines, updatable: !0, instance: null }, t)), (this._debugMesh.renderingGroupId = this.renderingGroupId)), this._debugMesh.position.copyFrom(this.mesh.position), (this._debugMesh.color = this.color); } }), (e.prototype.dispose = function () { (this.isEnabled = !1), this._debugMesh && ((this.isEnabled = !1), this._debugMesh.dispose(), (this._debugMesh = null)), this._utilityLayer && (this._utilityLayer.dispose(), (this._utilityLayer = null)); }), e ); })(), Ei = n(80), Mi = n(38), Ai = n(228), Ii = function () { this._timeElapsedQueryEnded = !1; }, Di = function () { (this.occlusionInternalRetryCounter = 0), (this.isOcclusionQueryInProgress = !1), (this.isOccluded = !1), (this.occlusionRetryCount = -1), (this.occlusionType = ke.a.OCCLUSION_TYPE_NONE), (this.occlusionQueryAlgorithmType = ke.a.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE); }; (ue.a.prototype.createQuery = function () { return this._gl.createQuery(); }), (ue.a.prototype.deleteQuery = function (e) { return this._gl.deleteQuery(e), this; }), (ue.a.prototype.isQueryResultAvailable = function (e) { return this._gl.getQueryParameter(e, this._gl.QUERY_RESULT_AVAILABLE); }), (ue.a.prototype.getQueryResult = function (e) { return this._gl.getQueryParameter(e, this._gl.QUERY_RESULT); }), (ue.a.prototype.beginOcclusionQuery = function (e, t) { var n = this._getGlAlgorithmType(e); return this._gl.beginQuery(n, t), this; }), (ue.a.prototype.endOcclusionQuery = function (e) { var t = this._getGlAlgorithmType(e); return this._gl.endQuery(t), this; }), (ue.a.prototype._createTimeQuery = function () { var e = this.getCaps().timerQuery; return e.createQueryEXT ? e.createQueryEXT() : this.createQuery(); }), (ue.a.prototype._deleteTimeQuery = function (e) { var t = this.getCaps().timerQuery; t.deleteQueryEXT ? t.deleteQueryEXT(e) : this.deleteQuery(e); }), (ue.a.prototype._getTimeQueryResult = function (e) { var t = this.getCaps().timerQuery; return t.getQueryObjectEXT ? t.getQueryObjectEXT(e, t.QUERY_RESULT_EXT) : this.getQueryResult(e); }), (ue.a.prototype._getTimeQueryAvailability = function (e) { var t = this.getCaps().timerQuery; return t.getQueryObjectEXT ? t.getQueryObjectEXT(e, t.QUERY_RESULT_AVAILABLE_EXT) : this.isQueryResultAvailable(e); }), (ue.a.prototype.startTimeQuery = function () { var e = this.getCaps(), t = e.timerQuery; if (!t) return null; var n = new Ii(); if ((this._gl.getParameter(t.GPU_DISJOINT_EXT), e.canUseTimestampForTimerQuery)) (n._startTimeQuery = this._createTimeQuery()), t.queryCounterEXT(n._startTimeQuery, t.TIMESTAMP_EXT); else { if (this._currentNonTimestampToken) return this._currentNonTimestampToken; (n._timeElapsedQuery = this._createTimeQuery()), t.beginQueryEXT ? t.beginQueryEXT(t.TIME_ELAPSED_EXT, n._timeElapsedQuery) : this._gl.beginQuery(t.TIME_ELAPSED_EXT, n._timeElapsedQuery), (this._currentNonTimestampToken = n); } return n; }), (ue.a.prototype.endTimeQuery = function (e) { var t = this.getCaps(), n = t.timerQuery; if (!n || !e) return -1; if (t.canUseTimestampForTimerQuery) { if (!e._startTimeQuery) return -1; e._endTimeQuery || ((e._endTimeQuery = this._createTimeQuery()), n.queryCounterEXT(e._endTimeQuery, n.TIMESTAMP_EXT)); } else if (!e._timeElapsedQueryEnded) { if (!e._timeElapsedQuery) return -1; n.endQueryEXT ? n.endQueryEXT(n.TIME_ELAPSED_EXT) : this._gl.endQuery(n.TIME_ELAPSED_EXT), (e._timeElapsedQueryEnded = !0); } var i = this._gl.getParameter(n.GPU_DISJOINT_EXT), r = !1; if ((e._endTimeQuery ? (r = this._getTimeQueryAvailability(e._endTimeQuery)) : e._timeElapsedQuery && (r = this._getTimeQueryAvailability(e._timeElapsedQuery)), r && !i)) { var o = 0; if (t.canUseTimestampForTimerQuery) { if (!e._startTimeQuery || !e._endTimeQuery) return -1; var a = this._getTimeQueryResult(e._startTimeQuery); (o = this._getTimeQueryResult(e._endTimeQuery) - a), this._deleteTimeQuery(e._startTimeQuery), this._deleteTimeQuery(e._endTimeQuery), (e._startTimeQuery = null), (e._endTimeQuery = null); } else { if (!e._timeElapsedQuery) return -1; (o = this._getTimeQueryResult(e._timeElapsedQuery)), this._deleteTimeQuery(e._timeElapsedQuery), (e._timeElapsedQuery = null), (e._timeElapsedQueryEnded = !1), (this._currentNonTimestampToken = null); } return o; } return -1; }), (ue.a.prototype._getGlAlgorithmType = function (e) { return e === ke.a.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED; }), Object.defineProperty(ke.a.prototype, "isOcclusionQueryInProgress", { get: function () { return this._occlusionDataStorage.isOcclusionQueryInProgress; }, set: function (e) { this._occlusionDataStorage.isOcclusionQueryInProgress = e; }, enumerable: !1, configurable: !0, }), Object.defineProperty(ke.a.prototype, "_occlusionDataStorage", { get: function () { return this.__occlusionDataStorage || (this.__occlusionDataStorage = new Di()), this.__occlusionDataStorage; }, enumerable: !1, configurable: !0, }), Object.defineProperty(ke.a.prototype, "isOccluded", { get: function () { return this._occlusionDataStorage.isOccluded; }, set: function (e) { this._occlusionDataStorage.isOccluded = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(ke.a.prototype, "occlusionQueryAlgorithmType", { get: function () { return this._occlusionDataStorage.occlusionQueryAlgorithmType; }, set: function (e) { this._occlusionDataStorage.occlusionQueryAlgorithmType = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(ke.a.prototype, "occlusionType", { get: function () { return this._occlusionDataStorage.occlusionType; }, set: function (e) { this._occlusionDataStorage.occlusionType = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(ke.a.prototype, "occlusionRetryCount", { get: function () { return this._occlusionDataStorage.occlusionRetryCount; }, set: function (e) { this._occlusionDataStorage.occlusionRetryCount = e; }, enumerable: !0, configurable: !0, }), (ke.a.prototype._checkOcclusionQuery = function () { var e = this._occlusionDataStorage; if (e.occlusionType === ke.a.OCCLUSION_TYPE_NONE) return (e.isOccluded = !1), !1; var t = this.getEngine(); if (t.webGLVersion < 2) return (e.isOccluded = !1), !1; if (!t.isQueryResultAvailable) return (e.isOccluded = !1), !1; if (this.isOcclusionQueryInProgress && this._occlusionQuery) if (t.isQueryResultAvailable(this._occlusionQuery)) { var n = t.getQueryResult(this._occlusionQuery); (e.isOcclusionQueryInProgress = !1), (e.occlusionInternalRetryCounter = 0), (e.isOccluded = 1 !== n); } else { if ((e.occlusionInternalRetryCounter++, !(-1 !== e.occlusionRetryCount && e.occlusionInternalRetryCounter > e.occlusionRetryCount))) return !1; (e.isOcclusionQueryInProgress = !1), (e.occlusionInternalRetryCounter = 0), (e.isOccluded = e.occlusionType !== ke.a.OCCLUSION_TYPE_OPTIMISTIC && e.isOccluded); } var i = this.getScene(); if (i.getBoundingBoxRenderer) { var r = i.getBoundingBoxRenderer(); this._occlusionQuery || (this._occlusionQuery = t.createQuery()), t.beginOcclusionQuery(e.occlusionQueryAlgorithmType, this._occlusionQuery), r.renderOcclusionBoundingBox(this), t.endOcclusionQuery(e.occlusionQueryAlgorithmType), (this._occlusionDataStorage.isOcclusionQueryInProgress = !0); } return e.isOccluded; }); var Ri = !0; (ue.a.prototype.createTransformFeedback = function () { return this._gl.createTransformFeedback(); }), (ue.a.prototype.deleteTransformFeedback = function (e) { this._gl.deleteTransformFeedback(e); }), (ue.a.prototype.bindTransformFeedback = function (e) { this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK, e); }), (ue.a.prototype.beginTransformFeedback = function (e) { void 0 === e && (e = !0), this._gl.beginTransformFeedback(e ? this._gl.POINTS : this._gl.TRIANGLES); }), (ue.a.prototype.endTransformFeedback = function () { this._gl.endTransformFeedback(); }), (ue.a.prototype.setTranformFeedbackVaryings = function (e, t) { this._gl.transformFeedbackVaryings(e, t, this._gl.INTERLEAVED_ATTRIBS); }), (ue.a.prototype.bindTransformFeedbackBuffer = function (e) { this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER, 0, e ? e.underlyingResource : null); }); var wi = function () {}; (ue.a.prototype.getInputElement = function () { return this.inputElement || this.getRenderingCanvas(); }), (ue.a.prototype.registerView = function (e, t) { var n = this; this.views || (this.views = []); for (var i = 0, r = this.views; i < r.length; i++) { var o = r[i]; if (o.target === e) return o; } var a = this.getRenderingCanvas(); a && ((e.width = a.width), (e.height = a.height)); var s = { target: e, camera: t }; return ( this.views.push(s), t && t.onDisposeObservable.add(function () { n.unRegisterView(e); }), s ); }), (ue.a.prototype.unRegisterView = function (e) { if (!this.views) return this; for (var t = 0, n = this.views; t < n.length; t++) { var i = n[t]; if (i.target === e) { var r = this.views.indexOf(i); -1 !== r && this.views.splice(r, 1); break; } } return this; }), (ue.a.prototype._renderViews = function () { if (!this.views) return !1; var e = this.getRenderingCanvas(); if (!e) return !1; for (var t = 0, n = this.views; t < n.length; t++) { var i = n[t], r = i.target, o = r.getContext("2d"); if (o) { var a = i.camera, s = null, c = null; if (a) { if ((c = a.getScene()).activeCameras.length) continue; (this.activeView = i), (s = c.activeCamera), (c.activeCamera = a); } (r.width = r.clientWidth), (r.height = r.clientHeight), (e.width = r.clientWidth), (e.height = r.clientHeight), this._renderFrame(), o.drawImage(e, 0, 0), s && c && (c.activeCamera = s); } } return (this.activeView = null), !0; }); var Li, Fi, Ni = n(185), ki = n(157), zi = n(127), ji = n(117), Bi = n(147), Vi = (((Li = {})[wn.b.PositionKind] = 0), (Li[wn.b.NormalKind] = 1), (Li[wn.b.TangentKind] = 2), (Li[wn.b.UVKind] = 10), (Li[wn.b.UV2Kind] = 11), (Li[wn.b.UV3Kind] = 12), (Li[wn.b.UV4Kind] = 13), (Li[wn.b.ColorKind] = 4), (Li[wn.b.MatricesIndicesKind] = 8), (Li[wn.b.MatricesWeightsKind] = 9), Li), Gi = (((Fi = {})[wn.b.PositionKind] = "a_position"), (Fi[wn.b.NormalKind] = "a_normal"), (Fi[wn.b.TangentKind] = "a_tangent"), (Fi[wn.b.UVKind] = "a_texcoord0"), (Fi[wn.b.UV2Kind] = "a_texcoord1"), (Fi[wn.b.UV3Kind] = "a_texcoord2"), (Fi[wn.b.UV4Kind] = "a_texcoord3"), (Fi[wn.b.ColorKind] = "a_color0"), (Fi[wn.b.MatricesIndicesKind] = "a_indices"), (Fi[wn.b.MatricesWeightsKind] = "a_weight"), Fi), Ui = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.lineProcessor = function (e) { for (var t = 0, n = this._replacements; t < n.length; t++) { var i = n[t]; e = e.replace(i.searchValue, i.replaceValue); } return e; }), (t.prototype.attributeProcessor = function (t) { var n = t.match(/attribute\s+[^\s]+\s+([^\s]+)\s*(?:\[.+\])?\s*;/)[1], i = Vi[n]; if (void 0 === i && (i = this._genericAttributeLocation++) > 17) throw new Error("Exceeded maximum custom attributes"); var r = Gi[n]; if (void 0 === r) throw new Error("Can't find bgfx name mapping"); return (t = t.replace(n, r)), this._replacements.push({ searchValue: new RegExp("\\b" + n + "\\b", "g"), replaceValue: "" + r }), "layout(location=" + i + ") " + e.prototype.attributeProcessor.call(this, t); }), (t.prototype.varyingProcessor = function (t, n) { var i; return n ? (i = this._varyingLocationMap[t]) : ((i = this._varyingLocationCount++), (this._varyingLocationMap[t] = i)), "layout(location=" + i + ") " + e.prototype.varyingProcessor.call(this, t, n); }), (t.prototype.uniformProcessor = function (e) { var t = e.match(/uniform\s+([^\s]+)\s+([^\s]+)\s*(?:\[.+\])?\s*;/), n = t[1], i = t[2]; switch (n) { case "sampler2D": case "samplerCube": var r = n.substr(7), o = this._textureCount++; return ( this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: "sampler" + r + "(" + i + "Texture, " + i + ")" }), "layout(binding=" + o + ") uniform texture" + r + " " + i + "Texture;\nlayout(binding=" + o + ") uniform sampler " + i + ";" ); case "float": this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: i + ".x" }), (e = "uniform vec4 " + i + ";"); break; case "vec2": this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: i + ".xy" }), (e = "uniform vec4 " + i + ";"); break; case "vec3": this._replacements.push({ searchValue: new RegExp("\\b" + i + "\\b"), replaceValue: i + ".xyz" }), (e = "uniform vec4 " + i + ";"); } return this._uniforms.push(e), 1 === this._uniforms.length ? "" : ""; }), (t.prototype.preProcessor = function (e, t, n) { return (this._genericAttributeLocation = 10), n || ((this._varyingLocationCount = 0), (this._varyingLocationMap = {})), (this._replacements = []), (this._textureCount = 0), (this._uniforms = []), e; }), (t.prototype.postProcessor = function (t, n, i) { return (t = (t = (t = e.prototype.postProcessor.call(this, t, n, i)).replace("", "layout(binding=0) uniform Frame {\n" + this._uniforms.join("\n") + "\n};")).replace( "out vec4 glFragColor", "layout(location=0) out vec4 glFragColor" )); }), t ); })(ki.a), Hi = (function () { function e() { (this.isAsync = !1), (this.isReady = !1); } return ( (e.prototype._handlesSpectorRebuildCallback = function (e) { throw new Error("Not implemented"); }), e ); })(), Wi = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return Object(h.d)(t, e), t; })(zi.a), Xi = (function () { function e() {} return ( (e.POINT = 0), (e.MINPOINT_MAGPOINT_MIPPOINT = e.POINT), (e.BILINEAR = 1), (e.MINLINEAR_MAGLINEAR_MIPPOINT = e.BILINEAR), (e.TRILINEAR = 2), (e.MINLINEAR_MAGLINEAR_MIPLINEAR = e.TRILINEAR), (e.ANISOTROPIC = 3), (e.POINT_COMPARE = 4), (e.TRILINEAR_COMPARE = 5), (e.MINBILINEAR_MAGPOINT = 6), (e.MINLINEAR_MAGPOINT_MIPLINEAR = e.MINBILINEAR_MAGPOINT), (e.MINPOINT_MAGPOINT_MIPLINEAR = 7), (e.MINPOINT_MAGLINEAR_MIPPOINT = 8), (e.MINPOINT_MAGLINEAR_MIPLINEAR = 9), (e.MINLINEAR_MAGPOINT_MIPPOINT = 10), e ); })(), Yi = (function () { function e() {} return (e.CLEAR_COLOR = 1), (e.CLEAR_DEPTH = 2), (e.CLEAR_STENCIL = 4), e; })(), Ki = (function () { function e() {} return (e.WRAP = 0), (e.MIRROR = 1), (e.CLAMP = 2), (e.BORDER = 3), (e.MIRROR_ONCE = 4), e; })(), Zi = (function () { function e() {} return (e.RGBA8 = 0), (e.RGBA32F = 1), e; })(), qi = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getInternalTexture = function () { return this; }), (t.prototype.getViewCount = function () { return 1; }), t ); })(pn.a), Qi = (function (e) { function t() { var t = e.call(this, null) || this; return ( (t._native = new _native.Engine()), (t.INVALID_HANDLE = 65535), (t._webGLVersion = 2), (t.disableUniformBuffers = !0), (t._caps = { maxTexturesImageUnits: 16, maxVertexTextureImageUnits: 16, maxCombinedTexturesImageUnits: 32, maxTextureSize: 512, maxCubemapTextureSize: 512, maxRenderTextureSize: 512, maxVertexAttribs: 16, maxVaryingVectors: 16, maxFragmentUniformVectors: 16, maxVertexUniformVectors: 16, standardDerivatives: !0, astc: null, pvrtc: null, etc1: null, etc2: null, maxAnisotropy: 16, uintIndices: !1, fragmentDepthSupported: !1, highPrecisionShaderSupported: !0, colorBufferFloat: !1, textureFloat: !1, textureFloatLinearFiltering: !1, textureFloatRender: !1, textureHalfFloat: !1, textureHalfFloatLinearFiltering: !1, textureHalfFloatRender: !1, textureLOD: !0, drawBuffersExtension: !1, depthTextureExtension: !1, vertexArrayObject: !0, instancedArrays: !1, canUseTimestampForTimerQuery: !1, blendMinMax: !1, maxMSAASamples: 1, }), $e.b.Log("Babylon Native (v" + ue.a.Version + ") launched"), "undefined" == typeof URL && (window.URL = { createObjectURL: function () {}, revokeObjectURL: function () {} }), "undefined" == typeof Blob && (window.Blob = function () {}), (t._shaderProcessor = new Ui()), t ); } return ( Object(h.d)(t, e), (t.prototype.getHardwareScalingLevel = function () { return 1; }), (t.prototype._queueNewFrame = function (e, t) { return t.requestAnimationFrame ? t.requestAnimationFrame(e) : this._native.requestAnimationFrame(e), 0; }), (t.prototype._bindUnboundFramebuffer = function (e) { this._currentFramebuffer !== e && (this._currentFramebuffer && this._native.unbindFramebuffer(this._currentFramebuffer), e && this._native.bindFramebuffer(e), (this._currentFramebuffer = e)); }), (t.prototype.getHostDocument = function () { return null; }), (t.prototype.clear = function (e, t, n, i) { void 0 === i && (i = !1); var r = 0; t && e && (this._native.clearColor(e.r, e.g, e.b, void 0 !== e.a ? e.a : 1), (r |= Yi.CLEAR_COLOR)), n && (this._native.clearDepth(1), (r |= Yi.CLEAR_DEPTH)), i && (this._native.clearStencil(0), (r |= Yi.CLEAR_STENCIL)), this._native.clear(r); }), (t.prototype.createIndexBuffer = function (e) { var t = this._normalizeIndexData(e), n = new Wi(); if (((n.references = 1), (n.is32Bits = 4 === t.BYTES_PER_ELEMENT), (n.nativeIndexBuffer = this._native.createIndexBuffer(t)), n.nativeVertexBuffer === this.INVALID_HANDLE)) throw new Error("Could not create a native index buffer."); return n; }), (t.prototype.createVertexBuffer = function (e) { var t = new Wi(); if (((t.references = 1), (t.nativeVertexBuffer = this._native.createVertexBuffer(ArrayBuffer.isView(e) ? e : new Float32Array(e))), t.nativeVertexBuffer === this.INVALID_HANDLE)) throw new Error("Could not create a native vertex buffer."); return t; }), (t.prototype.recordVertexArrayObject = function (e, t, n) { var i = this._native.createVertexArray(); t && this._native.recordIndexBuffer(i, t.nativeIndexBuffer); for (var r = n.getAttributesNames(), o = 0; o < r.length; o++) { var a = n.getAttributeLocation(o); if (a >= 0) { var s = e[r[o]]; if (s) { var c = s.getBuffer(); c && this._native.recordVertexBuffer(i, c.nativeVertexBuffer, a, s.byteOffset, s.byteStride, s.getSize(), s.type, s.normalized); } } } return i; }), (t.prototype.bindVertexArrayObject = function (e) { this._native.bindVertexArray(e); }), (t.prototype.releaseVertexArrayObject = function (e) { this._native.deleteVertexArray(e); }), (t.prototype.getAttributes = function (e, t) { var n = e; return this._native.getAttributes(n.nativeProgram, t); }), (t.prototype.drawElementsType = function (e, t, n, i) { this._drawCalls.addCount(1, !1), this._native.drawIndexed(e, t, n); }), (t.prototype.drawArraysType = function (e, t, n, i) { this._drawCalls.addCount(1, !1), this._native.draw(e, t, n); }), (t.prototype.createPipelineContext = function () { return new Hi(); }), (t.prototype._preparePipelineContext = function (e, t, n, i, r, o, a) { var s = e; s.nativeProgram = i ? this.createRawShaderProgram(e, t, n, void 0, a) : this.createShaderProgram(e, t, n, o, void 0, a); }), (t.prototype._isRenderingStateCompiled = function (e) { return !0; }), (t.prototype._executeWhenRenderingStateIsCompiled = function (e, t) { t(); }), (t.prototype.createRawShaderProgram = function (e, t, n, i, r) { throw (void 0 === r && (r = null), new Error("Not Supported")); }), (t.prototype.createShaderProgram = function (e, t, n, i, r, o) { void 0 === o && (o = null), this.onBeforeShaderCompilationObservable.notifyObservers(this); var a = this._native.createProgram(Mi.a._ConcatenateShader(t, i), Mi.a._ConcatenateShader(n, i)); return this.onAfterShaderCompilationObservable.notifyObservers(this), a; }), (t.prototype._setProgram = function (e) { this._currentProgram !== e && (this._native.setProgram(e), (this._currentProgram = e)); }), (t.prototype._releaseEffect = function (e) {}), (t.prototype._deletePipelineContext = function (e) {}), (t.prototype.getUniforms = function (e, t) { var n = e; return this._native.getUniforms(n.nativeProgram, t); }), (t.prototype.bindUniformBlock = function (e, t, n) { throw new Error("Not Implemented"); }), (t.prototype.bindSamplers = function (e) { var t = e.getPipelineContext(); this._setProgram(t.nativeProgram); for (var n = e.getSamplers(), i = 0; i < n.length; i++) { var r = e.getUniform(n[i]); r && (this._boundUniforms[i] = r); } this._currentEffect = null; }), (t.prototype.setMatrix = function (e, t) { e && this._native.setMatrix(e, t.toArray()); }), (t.prototype.getRenderWidth = function (e) { return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._native.getRenderWidth(); }), (t.prototype.getRenderHeight = function (e) { return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._native.getRenderHeight(); }), (t.prototype.setViewport = function (e, t, n) { (this._cachedViewport = e), this._native.setViewPort(e.x, e.y, e.width, e.height); }), (t.prototype.setState = function (e, t, n, i) { void 0 === t && (t = 0), void 0 === i && (i = !1), this._native.setState(e, t, i); }), (t.prototype.setZOffset = function (e) { this._native.setZOffset(e); }), (t.prototype.getZOffset = function () { return this._native.getZOffset(); }), (t.prototype.setDepthBuffer = function (e) { this._native.setDepthTest(e); }), (t.prototype.getDepthWrite = function () { return this._native.getDepthWrite(); }), (t.prototype.setDepthWrite = function (e) { this._native.setDepthWrite(e); }), (t.prototype.setColorWrite = function (e) { this._native.setColorWrite(e), (this._colorWrite = e); }), (t.prototype.getColorWrite = function () { return this._colorWrite; }), (t.prototype.setAlphaConstants = function (e, t, n, i) { throw new Error("Setting alpha blend constant color not yet implemented."); }), (t.prototype.setAlphaMode = function (e, t) { void 0 === t && (t = !1), this._alphaMode !== e && (this._native.setBlendMode(e), t || this.setDepthWrite(0 === e), (this._alphaMode = e)); }), (t.prototype.getAlphaMode = function () { return this._alphaMode; }), (t.prototype.setInt = function (e, t) { e && this._native.setInt(e, t); }), (t.prototype.setIntArray = function (e, t) { e && this._native.setIntArray(e, t); }), (t.prototype.setIntArray2 = function (e, t) { e && this._native.setIntArray2(e, t); }), (t.prototype.setIntArray3 = function (e, t) { e && this._native.setIntArray3(e, t); }), (t.prototype.setIntArray4 = function (e, t) { e && this._native.setIntArray4(e, t); }), (t.prototype.setFloatArray = function (e, t) { e && this._native.setFloatArray(e, t); }), (t.prototype.setFloatArray2 = function (e, t) { e && this._native.setFloatArray2(e, t); }), (t.prototype.setFloatArray3 = function (e, t) { e && this._native.setFloatArray3(e, t); }), (t.prototype.setFloatArray4 = function (e, t) { e && this._native.setFloatArray4(e, t); }), (t.prototype.setArray = function (e, t) { e && this._native.setFloatArray(e, t); }), (t.prototype.setArray2 = function (e, t) { e && this._native.setFloatArray2(e, t); }), (t.prototype.setArray3 = function (e, t) { e && this._native.setFloatArray3(e, t); }), (t.prototype.setArray4 = function (e, t) { e && this._native.setFloatArray4(e, t); }), (t.prototype.setMatrices = function (e, t) { e && this._native.setMatrices(e, t); }), (t.prototype.setMatrix3x3 = function (e, t) { e && this._native.setMatrix3x3(e, t); }), (t.prototype.setMatrix2x2 = function (e, t) { e && this._native.setMatrix2x2(e, t); }), (t.prototype.setFloat = function (e, t) { e && this._native.setFloat(e, t); }), (t.prototype.setFloat2 = function (e, t, n) { e && this._native.setFloat2(e, t, n); }), (t.prototype.setFloat3 = function (e, t, n, i) { e && this._native.setFloat3(e, t, n, i); }), (t.prototype.setFloat4 = function (e, t, n, i, r) { e && this._native.setFloat4(e, t, n, i, r); }), (t.prototype.setColor3 = function (e, t) { e && this._native.setFloat3(e, t.r, t.g, t.b); }), (t.prototype.setColor4 = function (e, t, n) { e && this._native.setFloat4(e, t.r, t.g, t.b, n); }), (t.prototype.wipeCaches = function (e) { this.preventCacheWipeBetweenFrames || (this.resetTextureCache(), (this._currentEffect = null), e && ((this._currentProgram = null), this._stencilState.reset(), this._depthCullingState.reset(), this._alphaState.reset()), (this._cachedVertexBuffers = null), (this._cachedIndexBuffer = null), (this._cachedEffectForVertexBuffers = null)); }), (t.prototype._createTexture = function () { return this._native.createTexture(); }), (t.prototype._deleteTexture = function (e) { this._native.deleteTexture(e); }), (t.prototype.createTexture = function (e, t, n, i, r, o, a, s, c, l, u, h) { var d = this; void 0 === r && (r = 3), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = null); for ( var p = String(e), f = "data:" === p.substr(0, 5), m = "blob:" === p.substr(0, 5), g = c || new pn.a(this, pn.b.Url), b = p.lastIndexOf("."), _ = u || (b > -1 ? p.substring(b).toLowerCase() : ""), v = null, y = 0, C = ue.a._TextureLoaders; y < C.length; y++ ) { var P = C[y]; if (P.canLoad(_)) { v = P; break; } } i && i._addPendingData(g), (g.url = p), (g.generateMipMaps = !t), (g.samplingMode = r), (g.invertY = n), this.doNotHandleContextLost || (g._buffer = s); var x = null; o && !c && (x = g.onLoadedObservable.add(o)), c || this._internalTexturesCache.push(g); if (v) throw new Error("Loading textures from IInternalTextureLoader not yet implemented."); var T = function (e, o) { if ("string" == typeof e) throw new Error("Loading textures from string data not yet implemented."); m && !d.doNotHandleContextLost && (g._buffer = e); var a = g._webGLTexture; if (a) { if (!d._native.loadTexture(a, e, !t, n)) throw new Error("Could not load a native texture."); (g.baseWidth = d._native.getTextureWidth(a)), (g.baseHeight = d._native.getTextureHeight(a)), (g.width = g.baseWidth), (g.height = g.baseHeight), (g.isReady = !0); var s = d._getSamplingFilter(r); d._native.setTextureSampling(a, s), i && i._removePendingData(g), g.onLoadedObservable.notifyObservers(g), g.onLoadedObservable.clear(); } else i && i._removePendingData(g); }; if (s instanceof ArrayBuffer) T(s); else if (ArrayBuffer.isView(s)) T(s.buffer); else { if (s instanceof Blob) throw new Error("Loading texture from Blob not yet implemented."); if (f) T($e.b.DecodeBase64(s)); else { $e.b.LoadFile(p, T, void 0, void 0, !0, function (e, o) { !(function (e, o) { i && i._removePendingData(g), x && g.onLoadedObservable.remove(x), $e.b.UseFallbackTexture && d.createTexture($e.b.fallbackTexture, t, n, i, r, null, a, s, g), a && a(e || "Unknown error", o); })("Failed to retrieve " + p + ".", o); }); } } return g; }), (t.prototype.createCubeTexture = function (e, t, n, i, r, o, a, s, c, l, u, h) { var d = this; void 0 === r && (r = null), void 0 === o && (o = null), void 0 === s && (s = null), void 0 === c && (c = !1), void 0 === l && (l = 0), void 0 === u && (u = 0), void 0 === h && (h = null); var p = h || new pn.a(this, pn.b.Cube); (p.isCube = !0), (p.url = e), (p.generateMipMaps = !i), (p._lodGenerationScale = l), (p._lodGenerationOffset = u), this._doNotHandleContextLost || ((p._extension = s), (p._files = n)); var f = e.lastIndexOf("."); if (".env" === (s || (f > -1 ? e.substring(f).toLowerCase() : ""))) { if (n && 6 === n.length) throw new Error("Multi-file loading not allowed on env files."); this._loadFile( e, function (e) { return (function (e) { var t = ji.a.GetEnvInfo(e); if (((p.width = t.width), (p.height = t.width), ji.a.UploadEnvSpherical(p, t), 1 !== t.version)) throw new Error('Unsupported babylon environment map version "' + t.version + '"'); var n = t.specular; if (!n) throw new Error("Nothing else parsed so far"); p._lodGenerationScale = n.lodGenerationScale; var i = ji.a.CreateImageDataArrayBufferViews(e, t); if ( ((p.format = 5), (p.type = 0), (p.generateMipMaps = !0), p.getEngine().updateTextureSamplingMode(ln.a.TRILINEAR_SAMPLINGMODE, p), (p._isRGBD = !0), (p.invertY = !0), !d._native.loadEnvTexture(p._webGLTexture, i)) ) throw new Error("Could not load a native cube texture."); (p.isReady = !0), r && r(); })(new Uint8Array(e)); }, void 0, void 0, !0, function (e, t) { o && e && o(e.status + " " + e.statusText, t); } ); } else { if (!n || 6 !== n.length) throw new Error("Cannot load cubemap because 6 files were not defined"); var m = [n[0], n[3], n[1], n[4], n[2], n[5]]; Promise.all( m.map(function (e) { return $e.b.LoadFileAsync(e).then(function (e) { return new Uint8Array(e); }); }) ) .then(function (e) { d._native.loadCubeTexture(p._webGLTexture, e, !i); }) .then( function () { (p.isReady = !0), r && r(); }, function (e) { o && o("Failed to load cubemap: " + e.message, e); } ); } return this._internalTexturesCache.push(p), p; }), (t.prototype._getSamplingFilter = function (e) { switch (e) { case 2: return Xi.MINLINEAR_MAGLINEAR_MIPPOINT; case 3: return Xi.MINLINEAR_MAGLINEAR_MIPLINEAR; case 1: return Xi.MINPOINT_MAGPOINT_MIPLINEAR; case 4: return Xi.MINPOINT_MAGPOINT_MIPPOINT; case 5: return Xi.MINLINEAR_MAGPOINT_MIPPOINT; case 6: case 7: return Xi.MINLINEAR_MAGPOINT_MIPLINEAR; case 1: return Xi.MINPOINT_MAGPOINT_MIPPOINT; case 9: return Xi.MINPOINT_MAGLINEAR_MIPPOINT; case 10: return Xi.MINPOINT_MAGLINEAR_MIPLINEAR; case 2: return Xi.MINLINEAR_MAGLINEAR_MIPLINEAR; case 12: return Xi.MINPOINT_MAGLINEAR_MIPLINEAR; default: throw new Error("Unexpected sampling mode: " + e + "."); } }), (t._GetNativeTextureFormat = function (e, t) { if (5 == e && 0 == t) return Zi.RGBA8; if (5 == e && 1 == t) return Zi.RGBA32F; throw new Error("Unexpected texture format or type: format " + e + ", type " + t + "."); }), (t.prototype.createRenderTargetTexture = function (e, n) { var i = new Bi.a(); void 0 !== n && "object" == typeof n ? ((i.generateMipMaps = n.generateMipMaps), (i.generateDepthBuffer = void 0 === n.generateDepthBuffer || n.generateDepthBuffer), (i.generateStencilBuffer = i.generateDepthBuffer && n.generateStencilBuffer), (i.type = void 0 === n.type ? 0 : n.type), (i.samplingMode = void 0 === n.samplingMode ? 3 : n.samplingMode), (i.format = void 0 === n.format ? 5 : n.format)) : ((i.generateMipMaps = n), (i.generateDepthBuffer = !0), (i.generateStencilBuffer = !1), (i.type = 0), (i.samplingMode = 3), (i.format = 5)), ((1 !== i.type || this._caps.textureFloatLinearFiltering) && (2 !== i.type || this._caps.textureHalfFloatLinearFiltering)) || (i.samplingMode = 1); var r = new qi(this, pn.b.RenderTarget), o = e.width || e, a = e.height || e; 1 !== i.type || this._caps.textureFloat || ((i.type = 0), g.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")); var s = this._native.createFramebuffer(r._webGLTexture, o, a, t._GetNativeTextureFormat(i.format, i.type), i.samplingMode, !!i.generateStencilBuffer, i.generateDepthBuffer, !!i.generateMipMaps); return ( (r._framebuffer = s), (r.baseWidth = o), (r.baseHeight = a), (r.width = o), (r.height = a), (r.isReady = !0), (r.samples = 1), (r.generateMipMaps = !!i.generateMipMaps), (r.samplingMode = i.samplingMode), (r.type = i.type), (r.format = i.format), (r._generateDepthBuffer = i.generateDepthBuffer), (r._generateStencilBuffer = !!i.generateStencilBuffer), this._internalTexturesCache.push(r), r ); }), (t.prototype.updateTextureSamplingMode = function (e, t) { if (t._webGLTexture) { var n = this._getSamplingFilter(e); this._native.setTextureSampling(t._webGLTexture, n); } t.samplingMode = e; }), (t.prototype.bindFramebuffer = function (e, t, n, i, r) { if (t) throw new Error("Cuboid frame buffers are not yet supported in NativeEngine."); if (n || i) throw new Error("Required width/height for frame buffers not yet supported in NativeEngine."); if (r) throw new Error("forceFullscreenViewport for frame buffers not yet supported in NativeEngine."); this._bindUnboundFramebuffer(e._framebuffer); }), (t.prototype.unBindFramebuffer = function (e, t, n) { void 0 === t && (t = !1), t && g.a.Warn("Disabling mipmap generation not yet supported in NativeEngine. Ignoring."), n && n(), this._bindUnboundFramebuffer(null); }), (t.prototype.createDynamicVertexBuffer = function (e) { throw new Error("createDynamicVertexBuffer not yet implemented."); }), (t.prototype.updateDynamicIndexBuffer = function (e, t, n) { throw (void 0 === n && (n = 0), new Error("updateDynamicIndexBuffer not yet implemented.")); }), (t.prototype.updateDynamicVertexBuffer = function (e, t, n, i) { throw new Error("updateDynamicVertexBuffer not yet implemented."); }), (t.prototype._setTexture = function (e, t, n, i) { void 0 === n && (n = !1), void 0 === i && (i = !1); var r, o = this._boundUniforms[e]; if (!o) return !1; if (!t) return null != this._boundTexturesCache[e] && ((this._activeChannel = e), this._native.setTexture(o, null)), !1; if (t.video) (this._activeChannel = e), t.update(); else if (4 === t.delayLoadState) return t.delayLoad(), !1; return ( (r = i ? t.depthStencilTexture : t.isReady() ? t.getInternalTexture() : t.isCube ? this.emptyCubeTexture : t.is3D ? this.emptyTexture3D : t.is2DArray ? this.emptyTexture2DArray : this.emptyTexture), (this._activeChannel = e), !(!r || !r._webGLTexture) && (this._native.setTextureWrapMode(r._webGLTexture, this._getAddressMode(t.wrapU), this._getAddressMode(t.wrapV), this._getAddressMode(t.wrapR)), this._updateAnisotropicLevel(t), this._native.setTexture(o, r._webGLTexture), !0) ); }), (t.prototype._updateAnisotropicLevel = function (e) { var t = e.getInternalTexture(), n = e.anisotropicFilteringLevel; t && t._webGLTexture && t._cachedAnisotropicFilteringLevel !== n && (this._native.setTextureAnisotropicLevel(t._webGLTexture, n), (t._cachedAnisotropicFilteringLevel = n)); }), (t.prototype._getAddressMode = function (e) { switch (e) { case 1: return Ki.WRAP; case 0: return Ki.CLAMP; case 2: return Ki.MIRROR; default: throw new Error("Unexpected wrap mode: " + e + "."); } }), (t.prototype._bindTexture = function (e, t) { throw new Error("_bindTexture not implemented."); }), (t.prototype._deleteBuffer = function (e) { e.nativeIndexBuffer && (this._native.deleteIndexBuffer(e.nativeIndexBuffer), delete e.nativeIndexBuffer), e.nativeVertexBuffer && (this._native.deleteVertexBuffer(e.nativeVertexBuffer), delete e.nativeVertexBuffer); }), (t.prototype.releaseEffects = function () {}), (t.prototype._uploadCompressedDataToTextureDirectly = function (e, t, n, i, r, o, a) { throw (void 0 === o && (o = 0), void 0 === a && (a = 0), new Error("_uploadCompressedDataToTextureDirectly not implemented.")); }), (t.prototype._uploadDataToTextureDirectly = function (e, t, n, i) { throw (void 0 === n && (n = 0), void 0 === i && (i = 0), new Error("_uploadDataToTextureDirectly not implemented.")); }), (t.prototype._uploadArrayBufferViewToTexture = function (e, t, n, i) { throw (void 0 === n && (n = 0), void 0 === i && (i = 0), new Error("_uploadArrayBufferViewToTexture not implemented.")); }), (t.prototype._uploadImageToTexture = function (e, t, n, i) { throw (void 0 === n && (n = 0), void 0 === i && (i = 0), new Error("_uploadArrayBufferViewToTexture not implemented.")); }), t ); })(ue.a), Ji = n(113), $i = n(37), er = (function (e) { function t(t) { var n = e.call(this, t) || this; return (n.controllerType = Mt.DAYDREAM), n; } return ( Object(h.d)(t, e), (t.prototype.initControllerMesh = function (e, n) { var i = this; $i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (e) { (i._defaultModel = e[1]), i.attachToMesh(i._defaultModel), n && n(i._defaultModel); }); }), (t.prototype._handleButtonChange = function (e, t, n) { if (0 === e) { var i = this.onTriggerStateChangedObservable; i && i.notifyObservers(t); } else g.a.Warn("Unrecognized Daydream button index: " + e); }), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/generic/"), (t.MODEL_FILENAME = "generic.babylon"), (t.GAMEPAD_ID_PREFIX = "Daydream"), t ); })(On); Lt._ControllerFactories.push({ canCreate: function (e) { return 0 === e.id.indexOf(er.GAMEPAD_ID_PREFIX); }, create: function (e) { return new er(e); }, }); var tr = (function (e) { function t(t) { var n = e.call(this, t) || this; return ( (n._buttonIndexToObservableNameMap = ["onPadStateChangedObservable", "onTriggerStateChangedObservable"]), (n.controllerType = Mt.GEAR_VR), (n._calculatedPosition = new a.e("left" == n.hand ? -0.15 : 0.15, -0.5, 0.25)), n._disableTrackPosition(n._calculatedPosition), n ); } return ( Object(h.d)(t, e), (t.prototype.initControllerMesh = function (e, n) { var i = this; $i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (t) { var r = new Ee.a("", e); (t[1].parent = r), (t[1].position.z = -0.15), (i._defaultModel = r), i.attachToMesh(i._defaultModel), n && n(i._defaultModel); }); }), (t.prototype._handleButtonChange = function (e, t, n) { if (e < this._buttonIndexToObservableNameMap.length) { var i = this[this._buttonIndexToObservableNameMap[e]]; i && i.notifyObservers(t); } }), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/generic/"), (t.MODEL_FILENAME = "generic.babylon"), (t.GAMEPAD_ID_PREFIX = "Gear VR"), t ); })(On); Lt._ControllerFactories.push({ canCreate: function (e) { return 0 === e.id.indexOf(tr.GAMEPAD_ID_PREFIX) || -1 !== e.id.indexOf("Oculus Go") || -1 !== e.id.indexOf("Vive Focus"); }, create: function (e) { return new tr(e); }, }); var nr = (function (e) { function t(t) { return e.call(this, t) || this; } return ( Object(h.d)(t, e), (t.prototype.initControllerMesh = function (e, n) { var i = this; $i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (e) { (i._defaultModel = e[1]), i.attachToMesh(i._defaultModel), n && n(i._defaultModel); }); }), (t.prototype._handleButtonChange = function (e, t, n) {}), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/generic/"), (t.MODEL_FILENAME = "generic.babylon"), t ); })(On); Lt._DefaultControllerFactory = function (e) { return new nr(e); }; var ir = (function (e) { function t(t) { var n = e.call(this, t) || this; return (n.onSecondaryTriggerStateChangedObservable = new o.c()), (n.onThumbRestChangedObservable = new o.c()), (n.controllerType = Mt.OCULUS), n; } return ( Object(h.d)(t, e), (t.prototype.initControllerMesh = function (e, n) { var i, r = this; (i = "left" === this.hand ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME), $i.a.ImportMesh("", t._IsQuest ? t.QUEST_MODEL_BASE_URL : t.MODEL_BASE_URL, i, e, function (e) { (r._defaultModel = t._IsQuest ? e[0] : e[1]), r.attachToMesh(r._defaultModel), n && n(r._defaultModel); }); }), Object.defineProperty(t.prototype, "onAButtonStateChangedObservable", { get: function () { if ("right" === this.hand) return this.onMainButtonStateChangedObservable; throw new Error("No A button on left hand"); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onBButtonStateChangedObservable", { get: function () { if ("right" === this.hand) return this.onSecondaryButtonStateChangedObservable; throw new Error("No B button on left hand"); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onXButtonStateChangedObservable", { get: function () { if ("left" === this.hand) return this.onMainButtonStateChangedObservable; throw new Error("No X button on right hand"); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onYButtonStateChangedObservable", { get: function () { if ("left" === this.hand) return this.onSecondaryButtonStateChangedObservable; throw new Error("No Y button on right hand"); }, enumerable: !0, configurable: !0, }), (t.prototype._handleButtonChange = function (e, n, i) { var r = n, o = "right" === this.hand ? -1 : 1; switch (e) { case 0: return void this.onPadStateChangedObservable.notifyObservers(r); case 1: return ( !t._IsQuest && this._defaultModel && ((this._defaultModel.getChildren()[3].rotation.x = 0.2 * -r.value), (this._defaultModel.getChildren()[3].position.y = 0.005 * -r.value), (this._defaultModel.getChildren()[3].position.z = 0.005 * -r.value)), void this.onTriggerStateChangedObservable.notifyObservers(r) ); case 2: return !t._IsQuest && this._defaultModel && (this._defaultModel.getChildren()[4].position.x = o * r.value * 0.0035), void this.onSecondaryTriggerStateChangedObservable.notifyObservers(r); case 3: return ( !t._IsQuest && this._defaultModel && (r.pressed ? (this._defaultModel.getChildren()[1].position.y = -0.001) : (this._defaultModel.getChildren()[1].position.y = 0)), void this.onMainButtonStateChangedObservable.notifyObservers(r) ); case 4: return ( !t._IsQuest && this._defaultModel && (r.pressed ? (this._defaultModel.getChildren()[2].position.y = -0.001) : (this._defaultModel.getChildren()[2].position.y = 0)), void this.onSecondaryButtonStateChangedObservable.notifyObservers(r) ); case 5: return void this.onThumbRestChangedObservable.notifyObservers(r); } }), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/oculus/"), (t.MODEL_LEFT_FILENAME = "left.babylon"), (t.MODEL_RIGHT_FILENAME = "right.babylon"), (t.QUEST_MODEL_BASE_URL = "https://controllers.babylonjs.com/oculusQuest/"), (t._IsQuest = !1), t ); })(On); Lt._ControllerFactories.push({ canCreate: function (e) { return ue.a.LastCreatedEngine && ue.a.LastCreatedEngine._vrDisplay && "Oculus Quest" === ue.a.LastCreatedEngine._vrDisplay.displayName && (ir._IsQuest = !0), -1 !== e.id.indexOf("Oculus Touch"); }, create: function (e) { return new ir(e); }, }); var rr = (function (e) { function t(t) { var n = e.call(this, t) || this; return (n.controllerType = Mt.VIVE), (n._invertLeftStickY = !0), n; } return ( Object(h.d)(t, e), (t.prototype.initControllerMesh = function (e, n) { var i = this; $i.a.ImportMesh("", t.MODEL_BASE_URL, t.MODEL_FILENAME, e, function (e) { (i._defaultModel = e[1]), i.attachToMesh(i._defaultModel), n && n(i._defaultModel); }); }), Object.defineProperty(t.prototype, "onLeftButtonStateChangedObservable", { get: function () { return this.onMainButtonStateChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onRightButtonStateChangedObservable", { get: function () { return this.onMainButtonStateChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onMenuButtonStateChangedObservable", { get: function () { return this.onSecondaryButtonStateChangedObservable; }, enumerable: !0, configurable: !0, }), (t.prototype._handleButtonChange = function (e, t, n) { var i = t; switch (e) { case 0: return void this.onPadStateChangedObservable.notifyObservers(i); case 1: return this._defaultModel && (this._defaultModel.getChildren()[6].rotation.x = 0.15 * -i.value), void this.onTriggerStateChangedObservable.notifyObservers(i); case 2: return void this.onMainButtonStateChangedObservable.notifyObservers(i); case 3: return ( this._defaultModel && (i.pressed ? (this._defaultModel.getChildren()[2].position.y = -0.001) : (this._defaultModel.getChildren()[2].position.y = 0)), void this.onSecondaryButtonStateChangedObservable.notifyObservers(i) ); } }), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/vive/"), (t.MODEL_FILENAME = "wand.babylon"), t ); })(On); Lt._ControllerFactories.push({ canCreate: function (e) { return -1 !== e.id.toLowerCase().indexOf("openvr"); }, create: function (e) { return new rr(e); }, }); var or = function () { (this.buttonMeshes = {}), (this.axisMeshes = {}); }, ar = (function (e) { function t(t) { var n = e.call(this, t) || this; return ( (n._mapping = { buttons: ["thumbstick", "trigger", "grip", "menu", "trackpad"], buttonMeshNames: { trigger: "SELECT", menu: "MENU", grip: "GRASP", thumbstick: "THUMBSTICK_PRESS", trackpad: "TOUCHPAD_PRESS" }, buttonObservableNames: { trigger: "onTriggerStateChangedObservable", menu: "onSecondaryButtonStateChangedObservable", grip: "onMainButtonStateChangedObservable", thumbstick: "onPadStateChangedObservable", trackpad: "onTrackpadChangedObservable", }, axisMeshNames: ["THUMBSTICK_X", "THUMBSTICK_Y", "TOUCHPAD_TOUCH_X", "TOUCHPAD_TOUCH_Y"], pointingPoseMeshName: Ft.POINTING_POSE, }), (n.onTrackpadChangedObservable = new o.c()), (n.onTrackpadValuesChangedObservable = new o.c()), (n.trackpad = { x: 0, y: 0 }), (n.controllerType = Mt.WINDOWS), (n._loadedMeshInfo = null), n ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "onTriggerButtonStateChangedObservable", { get: function () { return this.onTriggerStateChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onMenuButtonStateChangedObservable", { get: function () { return this.onSecondaryButtonStateChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onGripButtonStateChangedObservable", { get: function () { return this.onMainButtonStateChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onThumbstickButtonStateChangedObservable", { get: function () { return this.onPadStateChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onTouchpadButtonStateChangedObservable", { get: function () { return this.onTrackpadChangedObservable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "onTouchpadValuesChangedObservable", { get: function () { return this.onTrackpadValuesChangedObservable; }, enumerable: !0, configurable: !0, }), (t.prototype._updateTrackpad = function () { !this.browserGamepad.axes || (this.browserGamepad.axes[2] == this.trackpad.x && this.browserGamepad.axes[3] == this.trackpad.y) || ((this.trackpad.x = this.browserGamepad.axes[this._mapping.axisMeshNames.indexOf("TOUCHPAD_TOUCH_X")]), (this.trackpad.y = this.browserGamepad.axes[this._mapping.axisMeshNames.indexOf("TOUCHPAD_TOUCH_Y")]), this.onTrackpadValuesChangedObservable.notifyObservers(this.trackpad)); }), (t.prototype.update = function () { if ((e.prototype.update.call(this), this.browserGamepad.axes && (this._updateTrackpad(), this._loadedMeshInfo))) for (var t = 0; t < this._mapping.axisMeshNames.length; t++) this._lerpAxisTransform(t, this.browserGamepad.axes[t]); }), (t.prototype._handleButtonChange = function (e, t, n) { var i = this._mapping.buttons[e]; if (i) { this._updateTrackpad(); var r = this[this._mapping.buttonObservableNames[i]]; r && r.notifyObservers(t), this._lerpButtonTransform(i, t.value); } }), (t.prototype._lerpButtonTransform = function (e, t) { if (this._loadedMeshInfo) { var n = this._loadedMeshInfo.buttonMeshes[e]; n && n.unpressed.rotationQuaternion && n.pressed.rotationQuaternion && n.value.rotationQuaternion && (a.b.SlerpToRef(n.unpressed.rotationQuaternion, n.pressed.rotationQuaternion, t, n.value.rotationQuaternion), a.e.LerpToRef(n.unpressed.position, n.pressed.position, t, n.value.position)); } }), (t.prototype._lerpAxisTransform = function (e, t) { if (this._loadedMeshInfo) { var n = this._loadedMeshInfo.axisMeshes[e]; if (n && n.min.rotationQuaternion && n.max.rotationQuaternion && n.value.rotationQuaternion) { var i = 0.5 * t + 0.5; a.b.SlerpToRef(n.min.rotationQuaternion, n.max.rotationQuaternion, i, n.value.rotationQuaternion), a.e.LerpToRef(n.min.position, n.max.position, i, n.value.position); } } }), (t.prototype.initControllerMesh = function (e, n, i) { var r, o, a = this; if ((void 0 === i && (i = !1), $i.a.IsPluginForExtensionAvailable(".glb"))) { var s = "default"; if (this.id && !i) { var c = this.id.match(t.GAMEPAD_ID_PATTERN); s = (c && c[0]) || s; } (o = "left" === this.hand ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME), (r = t.MODEL_BASE_URL + s + "/"); } else g.a.Warn("You need to reference GLTF loader to load Windows Motion Controllers model. Falling back to generic models"), (r = nr.MODEL_BASE_URL), (o = nr.MODEL_FILENAME); $i.a.ImportMesh( "", r, o, e, function (t) { (a._loadedMeshInfo = a.processModel(e, t)), a._loadedMeshInfo && ((a._defaultModel = a._loadedMeshInfo.rootNode), a.attachToMesh(a._defaultModel), n && n(a._defaultModel)); }, null, function (e, t) { g.a.Log(t), g.a.Warn("Failed to retrieve controller model from the remote server: " + r + o), i || a.initControllerMesh(e, n, !0); } ); }), (t.prototype.processModel = function (e, t) { for (var n = null, i = new Ee.a(this.id + " " + this.hand, e), r = null, o = 0; o < t.length; o++) { var a = t[o]; if (!a.parent) { (a.isPickable = !1), (r = a); break; } } return r ? (r.setParent(i), (n = this.createMeshInfo(i))) : g.a.Warn("Could not find root node in model file."), n; }), (t.prototype.createMeshInfo = function (e) { var t, n = new or(); for (n.rootNode = e, n.buttonMeshes = {}, n.axisMeshes = {}, t = 0; t < this._mapping.buttons.length; t++) { var i = this._mapping.buttonMeshNames[this._mapping.buttons[t]]; if (i) { var r = l(e, i); if (r) { var o = { index: t, value: u(r, "VALUE"), pressed: u(r, "PRESSED"), unpressed: u(r, "UNPRESSED") }; o.value && o.pressed && o.unpressed ? (n.buttonMeshes[this._mapping.buttons[t]] = o) : g.a.Warn("Missing button submesh under mesh with name: " + i + "(VALUE: " + !!o.value + ", PRESSED: " + !!o.pressed + ", UNPRESSED:" + !!o.unpressed + ")"); } else g.a.Warn("Missing button mesh with name: " + i); } else g.a.Log("Skipping unknown button at index: " + t + " with mapped name: " + this._mapping.buttons[t]); } for (t = 0; t < this._mapping.axisMeshNames.length; t++) { var a = this._mapping.axisMeshNames[t]; if (a) { var s = l(e, a); if (s) { var c = { index: t, value: u(s, "VALUE"), min: u(s, "MIN"), max: u(s, "MAX") }; c.value && c.min && c.max ? (n.axisMeshes[t] = c) : g.a.Warn("Missing axis submesh under mesh with name: " + a + "(VALUE: " + !!c.value + ", MIN: " + !!c.min + ", MAX:" + !!c.max + ")"); } else g.a.Warn("Missing axis mesh with name: " + a); } else g.a.Log("Skipping unknown axis at index: " + t); } return ( (n.pointingPoseNode = l(e, this._mapping.pointingPoseMeshName)), n.pointingPoseNode ? (this._pointingPoseNode = n.pointingPoseNode) : g.a.Warn("Missing pointing pose mesh with name: " + this._mapping.pointingPoseMeshName), n ); function l(e, t) { return e.getChildren(function (e) { return e.name === t; }, !1)[0]; } function u(e, t) { return e.getChildren(function (e) { return e.name == t; }, !0)[0]; } }), (t.prototype.getForwardRay = function (t) { if ((void 0 === t && (t = 100), !this._loadedMeshInfo || !this._loadedMeshInfo.pointingPoseNode)) return e.prototype.getForwardRay.call(this, t); var n = this._loadedMeshInfo.pointingPoseNode.getWorldMatrix(), i = n.getTranslation(), r = new a.e(0, 0, -1), o = a.e.TransformNormal(r, n), s = a.e.Normalize(o); return new Re(i, s, t); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onTrackpadChangedObservable.clear(), this.onTrackpadValuesChangedObservable.clear(); }), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/microsoft/"), (t.MODEL_LEFT_FILENAME = "left.glb"), (t.MODEL_RIGHT_FILENAME = "right.glb"), (t.GAMEPAD_ID_PREFIX = "Spatial Controller (Spatial Interaction Source) "), (t.GAMEPAD_ID_PATTERN = /([0-9a-zA-Z]+-[0-9a-zA-Z]+)$/), t ); })(On), sr = (function (e) { function t(t) { var n = e.call(this, t) || this; return ( (n._mapping = { buttons: ["trigger", "grip", "trackpad", "thumbstick", "menu"], buttonMeshNames: { trigger: "SELECT", menu: "MENU", grip: "GRASP", thumbstick: "THUMBSTICK_PRESS", trackpad: "TOUCHPAD_PRESS" }, buttonObservableNames: { trigger: "onTriggerStateChangedObservable", menu: "onSecondaryButtonStateChangedObservable", grip: "onMainButtonStateChangedObservable", thumbstick: "onThumbstickStateChangedObservable", trackpad: "onTrackpadChangedObservable", }, axisMeshNames: ["TOUCHPAD_TOUCH_X", "TOUCHPAD_TOUCH_Y", "THUMBSTICK_X", "THUMBSTICK_Y"], pointingPoseMeshName: Ft.POINTING_POSE, }), (n.thumbstickValues = { x: 0, y: 0 }), (n.onThumbstickStateChangedObservable = new o.c()), (n.onThumbstickValuesChangedObservable = new o.c()), (n.onTrackpadChangedObservable = n.onPadStateChangedObservable), (n.onTrackpadValuesChangedObservable = n.onPadValuesChangedObservable), n ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "onThumbstickButtonStateChangedObservable", { get: function () { return this.onThumbstickStateChangedObservable; }, enumerable: !0, configurable: !0, }), (t.prototype._updateTrackpad = function () { !this.browserGamepad.axes || (this.browserGamepad.axes[2] == this.thumbstickValues.x && this.browserGamepad.axes[3] == this.thumbstickValues.y) || ((this.trackpad.x = this.browserGamepad.axes[2]), (this.trackpad.y = this.browserGamepad.axes[3]), this.onThumbstickValuesChangedObservable.notifyObservers(this.trackpad)); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onThumbstickStateChangedObservable.clear(), this.onThumbstickValuesChangedObservable.clear(); }), t ); })(ar); Lt._ControllerFactories.push({ canCreate: function (e) { return 0 === e.id.indexOf(ar.GAMEPAD_ID_PREFIX); }, create: function (e) { return new ar(e); }, }); var cr = (function (e) { function t(t, n, i, r) { void 0 === n && (n = s.a.Gray()), void 0 === i && (i = ci.a.DefaultUtilityLayer), void 0 === r && (r = null); var c = e.call(this, i) || this; (c._pointerObserver = null), (c.snapDistance = 0), (c.onSnapObservable = new o.c()), (c.uniformScaling = !1), (c.sensitivity = 1), (c._isEnabled = !0), (c._parent = null), (c._parent = r), (c._coloredMaterial = new Mn.a("", i.utilityLayerScene)), (c._coloredMaterial.diffuseColor = n), (c._coloredMaterial.specularColor = n.subtract(new s.a(0.1, 0.1, 0.1))), (c._hoverMaterial = new Mn.a("", i.utilityLayerScene)), (c._hoverMaterial.diffuseColor = n.add(new s.a(0.3, 0.3, 0.3))), (c._arrow = new ke.a("", i.utilityLayerScene)); var l = fi.a.CreateBox("yPosMesh", { size: 0.4 }, i.utilityLayerScene), u = jn.CreateCylinder("cylinder", { diameterTop: 0.005, height: 0.275, diameterBottom: 0.005, tessellation: 96 }, i.utilityLayerScene); (u.material = c._coloredMaterial), c._arrow.addChild(l), c._arrow.addChild(u), l.scaling.scaleInPlace(0.1), (l.material = c._coloredMaterial), (l.rotation.x = Math.PI / 2), (l.position.z += 0.3), (u.position.z += 0.1375), (u.rotation.x = Math.PI / 2), c._arrow.lookAt(c._rootMesh.position.add(t)), c._rootMesh.addChild(c._arrow), c._arrow.scaling.scaleInPlace(1 / 3), (c.dragBehavior = new Fe({ dragAxis: t })), (c.dragBehavior.moveAttached = !1), c._rootMesh.addBehavior(c.dragBehavior); var h = 0, d = new a.e(), p = { snapDistance: 0 }; c.dragBehavior.onDragObservable.add(function (e) { if (c.attachedMesh) { var n = c.sensitivity * e.dragDistance * ((3 * c.scaleRatio) / c._rootMesh.scaling.length()), i = !1, r = 0; c.uniformScaling ? (c.attachedMesh.scaling.normalizeToRef(d), d.y < 0 && d.scaleInPlace(-1)) : d.copyFrom(t), 0 == c.snapDistance ? d.scaleToRef(n, d) : ((h += n), Math.abs(h) > c.snapDistance ? ((r = Math.floor(Math.abs(h) / c.snapDistance)), h < 0 && (r *= -1), (h %= c.snapDistance), d.scaleToRef(c.snapDistance * r, d), (i = !0)) : d.scaleInPlace(0)), c.attachedMesh.scaling.addInPlace(d), i && ((p.snapDistance = c.snapDistance * r), c.onSnapObservable.notifyObservers(p)); } }), (c._pointerObserver = i.utilityLayerScene.onPointerObservable.add(function (e) { if (!c._customMeshSet) { var t = e.pickInfo && -1 != c._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? c._hoverMaterial : c._coloredMaterial; c._rootMesh.getChildMeshes().forEach(function (e) { (e.material = t), e.color && (e.color = t.diffuseColor); }); } })); var f = i._getSharedGizmoLight(); return (f.includedOnlyMeshes = f.includedOnlyMeshes.concat(c._rootMesh.getChildMeshes())), c; } return ( Object(h.d)(t, e), (t.prototype._attachedMeshChanged = function (e) { this.dragBehavior && (this.dragBehavior.enabled = !!e); }), Object.defineProperty(t.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { (this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), this._arrow && this._arrow.dispose(), [this._coloredMaterial, this._hoverMaterial].forEach(function (e) { e && e.dispose(); }), e.prototype.dispose.call(this); }), (t.prototype.setCustomMesh = function (t, n) { var i = this; void 0 === n && (n = !1), e.prototype.setCustomMesh.call(this, t), n && (this._rootMesh.getChildMeshes().forEach(function (e) { (e.material = i._coloredMaterial), e.color && (e.color = i._coloredMaterial.diffuseColor); }), (this._customMeshSet = !1)); }), t ); })(li), lr = (function (e) { function t(t, n) { void 0 === t && (t = s.a.Gray()), void 0 === n && (n = ci.a.DefaultKeepDepthUtilityLayer); var i = e.call(this, n) || this; (i._boundingDimensions = new a.e(1, 1, 1)), (i._renderObserver = null), (i._pointerObserver = null), (i._scaleDragSpeed = 0.2), (i._tmpQuaternion = new a.b()), (i._tmpVector = new a.e(0, 0, 0)), (i._tmpRotationMatrix = new a.a()), (i.ignoreChildren = !1), (i.includeChildPredicate = null), (i.rotationSphereSize = 0.1), (i.scaleBoxSize = 0.1), (i.fixedDragMeshScreenSize = !1), (i.fixedDragMeshScreenSizeDistanceFactor = 10), (i.onDragStartObservable = new o.c()), (i.onScaleBoxDragObservable = new o.c()), (i.onScaleBoxDragEndObservable = new o.c()), (i.onRotationSphereDragObservable = new o.c()), (i.onRotationSphereDragEndObservable = new o.c()), (i.scalePivot = null), (i._existingMeshScale = new a.e()), (i._dragMesh = null), (i.pointerDragBehavior = new Fe()), (i.updateScale = !1), (i._anchorMesh = new ke.a("anchor", n.utilityLayerScene)), (i.coloredMaterial = new Mn.a("", n.utilityLayerScene)), (i.coloredMaterial.disableLighting = !0), (i.hoverColoredMaterial = new Mn.a("", n.utilityLayerScene)), (i.hoverColoredMaterial.disableLighting = !0), (i._lineBoundingBox = new ke.a("", n.utilityLayerScene)), (i._lineBoundingBox.rotationQuaternion = new a.b()); var r = []; r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, 0), new a.e(i._boundingDimensions.x, 0, 0)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, 0), new a.e(0, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, 0), new a.e(0, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, 0, 0), new a.e(i._boundingDimensions.x, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, 0, 0), new a.e(i._boundingDimensions.x, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(0, i._boundingDimensions.y, 0), new a.e(i._boundingDimensions.x, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(0, i._boundingDimensions.y, 0), new a.e(0, i._boundingDimensions.y, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, i._boundingDimensions.z), new a.e(i._boundingDimensions.x, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(0, 0, i._boundingDimensions.z), new a.e(0, i._boundingDimensions.y, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, i._boundingDimensions.y, i._boundingDimensions.z), new a.e(0, i._boundingDimensions.y, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, i._boundingDimensions.y, i._boundingDimensions.z), new a.e(i._boundingDimensions.x, 0, i._boundingDimensions.z)] }, n.utilityLayerScene)), r.push(Ti.CreateLines("lines", { points: [new a.e(i._boundingDimensions.x, i._boundingDimensions.y, i._boundingDimensions.z), new a.e(i._boundingDimensions.x, i._boundingDimensions.y, 0)] }, n.utilityLayerScene)), r.forEach(function (e) { (e.color = t), e.position.addInPlace(new a.e(-i._boundingDimensions.x / 2, -i._boundingDimensions.y / 2, -i._boundingDimensions.z / 2)), (e.isPickable = !1), i._lineBoundingBox.addChild(e); }), i._rootMesh.addChild(i._lineBoundingBox), i.setColor(t), (i._rotateSpheresParent = new ke.a("", n.utilityLayerScene)), (i._rotateSpheresParent.rotationQuaternion = new a.b()); for ( var c = function (e) { var t = mi.CreateSphere("", { diameter: 1 }, n.utilityLayerScene); (t.rotationQuaternion = new a.b()), (t.material = l.coloredMaterial), ((p = new Fe({})).moveAttached = !1), (p.updateDragPlane = !1), t.addBehavior(p); var r = new a.e(1, 0, 0), o = 0; p.onDragStartObservable.add(function () { r.copyFrom(t.forward), (o = 0); }), p.onDragObservable.add(function (t) { if ((i.onRotationSphereDragObservable.notifyObservers({}), i.attachedMesh)) { var n = i.attachedMesh.parent; if (n && n.scaling && n.scaling.isNonUniformWithinEpsilon(0.001)) return void g.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling"); we._RemoveAndStorePivotPoint(i.attachedMesh); var s = r, c = t.dragPlaneNormal.scale(a.e.Dot(t.dragPlaneNormal, s)), l = s.subtract(c).normalizeToNew(), u = a.e.Dot(l, t.delta) < 0 ? Math.abs(t.delta.length()) : -Math.abs(t.delta.length()); (u = (u / i._boundingDimensions.length()) * i._anchorMesh.scaling.length()), i.attachedMesh.rotationQuaternion || (i.attachedMesh.rotationQuaternion = a.b.RotationYawPitchRoll(i.attachedMesh.rotation.y, i.attachedMesh.rotation.x, i.attachedMesh.rotation.z)), i._anchorMesh.rotationQuaternion || (i._anchorMesh.rotationQuaternion = a.b.RotationYawPitchRoll(i._anchorMesh.rotation.y, i._anchorMesh.rotation.x, i._anchorMesh.rotation.z)), (o += u), Math.abs(o) <= 2 * Math.PI && (e >= 8 ? a.b.RotationYawPitchRollToRef(0, 0, u, i._tmpQuaternion) : e >= 4 ? a.b.RotationYawPitchRollToRef(u, 0, 0, i._tmpQuaternion) : a.b.RotationYawPitchRollToRef(0, u, 0, i._tmpQuaternion), i._anchorMesh.addChild(i.attachedMesh), i._anchorMesh.rotationQuaternion.multiplyToRef(i._tmpQuaternion, i._anchorMesh.rotationQuaternion), i._anchorMesh.removeChild(i.attachedMesh), i.attachedMesh.setParent(n)), i.updateBoundingBox(), we._RestorePivotPoint(i.attachedMesh); } i._updateDummy(); }), p.onDragStartObservable.add(function () { i.onDragStartObservable.notifyObservers({}), i._selectNode(t); }), p.onDragEndObservable.add(function () { i.onRotationSphereDragEndObservable.notifyObservers({}), i._selectNode(null), i._updateDummy(); }), l._rotateSpheresParent.addChild(t); }, l = this, u = 0; u < 12; u++ ) c(u); i._rootMesh.addChild(i._rotateSpheresParent), (i._scaleBoxesParent = new ke.a("", n.utilityLayerScene)), (i._scaleBoxesParent.rotationQuaternion = new a.b()); for (var h = 0; h < 2; h++) for (var d = 0; d < 2; d++) for ( var p, f = function () { var e = fi.a.CreateBox("", { size: 1 }, n.utilityLayerScene); e.material = m.coloredMaterial; var t = new a.e(0 == h ? -1 : 1, 0 == d ? -1 : 1, 0 == b ? -1 : 1); ((p = new Fe({ dragAxis: t })).moveAttached = !1), e.addBehavior(p), p.onDragObservable.add(function (t) { if ((i.onScaleBoxDragObservable.notifyObservers({}), i.attachedMesh)) { var n = i.attachedMesh.parent; if (n && n.scaling && n.scaling.isNonUniformWithinEpsilon(0.001)) return void g.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling"); we._RemoveAndStorePivotPoint(i.attachedMesh); var r = (t.dragDistance / i._boundingDimensions.length()) * i._anchorMesh.scaling.length(), o = new a.e(r, r, r); o.scaleInPlace(i._scaleDragSpeed), i.updateBoundingBox(), i.scalePivot ? (i.attachedMesh.getWorldMatrix().getRotationMatrixToRef(i._tmpRotationMatrix), i._boundingDimensions.scaleToRef(0.5, i._tmpVector), a.e.TransformCoordinatesToRef(i._tmpVector, i._tmpRotationMatrix, i._tmpVector), i._anchorMesh.position.subtractInPlace(i._tmpVector), i._boundingDimensions.multiplyToRef(i.scalePivot, i._tmpVector), a.e.TransformCoordinatesToRef(i._tmpVector, i._tmpRotationMatrix, i._tmpVector), i._anchorMesh.position.addInPlace(i._tmpVector)) : (e.absolutePosition.subtractToRef(i._anchorMesh.position, i._tmpVector), i._anchorMesh.position.subtractInPlace(i._tmpVector)), i._anchorMesh.addChild(i.attachedMesh), i._anchorMesh.scaling.addInPlace(o), (i._anchorMesh.scaling.x < 0 || i._anchorMesh.scaling.y < 0 || i._anchorMesh.scaling.z < 0) && i._anchorMesh.scaling.subtractInPlace(o), i._anchorMesh.removeChild(i.attachedMesh), i.attachedMesh.setParent(n), we._RestorePivotPoint(i.attachedMesh); } i._updateDummy(); }), p.onDragStartObservable.add(function () { i.onDragStartObservable.notifyObservers({}), i._selectNode(e); }), p.onDragEndObservable.add(function () { i.onScaleBoxDragEndObservable.notifyObservers({}), i._selectNode(null), i._updateDummy(); }), m._scaleBoxesParent.addChild(e); }, m = this, b = 0; b < 2; b++ ) f(); i._rootMesh.addChild(i._scaleBoxesParent); var _ = new Array(); return ( (i._pointerObserver = n.utilityLayerScene.onPointerObservable.add(function (e) { _[e.event.pointerId] ? e.pickInfo && e.pickInfo.pickedMesh != _[e.event.pointerId] && ((_[e.event.pointerId].material = i.coloredMaterial), delete _[e.event.pointerId]) : i._rotateSpheresParent .getChildMeshes() .concat(i._scaleBoxesParent.getChildMeshes()) .forEach(function (t) { e.pickInfo && e.pickInfo.pickedMesh == t && ((_[e.event.pointerId] = t), (t.material = i.hoverColoredMaterial)); }); })), (i._renderObserver = i.gizmoLayer.originalScene.onBeforeRenderObservable.add(function () { i.attachedMesh && !i._existingMeshScale.equals(i.attachedMesh.scaling) ? i.updateBoundingBox() : i.fixedDragMeshScreenSize && (i._updateRotationSpheres(), i._updateScaleBoxes()), i._dragMesh && i.attachedMesh && i.pointerDragBehavior.dragging && (i._lineBoundingBox.position.rotateByQuaternionToRef(i._rootMesh.rotationQuaternion, i._tmpVector), i.attachedMesh.setAbsolutePosition(i._dragMesh.position.add(i._tmpVector.scale(-1)))); })), i.updateBoundingBox(), i ); } return ( Object(h.d)(t, e), (t.prototype.setColor = function (e) { (this.coloredMaterial.emissiveColor = e), (this.hoverColoredMaterial.emissiveColor = e.clone().add(new s.a(0.3, 0.3, 0.3))), this._lineBoundingBox.getChildren().forEach(function (t) { t.color && (t.color = e); }); }), (t.prototype._attachedMeshChanged = function (e) { var t = this; if (e) { we._RemoveAndStorePivotPoint(e); var n = e.parent; this._anchorMesh.addChild(e), this._anchorMesh.removeChild(e), e.setParent(n), we._RestorePivotPoint(e), this.updateBoundingBox(), e.getChildMeshes(!1).forEach(function (e) { e.markAsDirty("scaling"); }), this.gizmoLayer.utilityLayerScene.onAfterRenderObservable.addOnce(function () { t._updateDummy(); }); } }), (t.prototype._selectNode = function (e) { this._rotateSpheresParent .getChildMeshes() .concat(this._scaleBoxesParent.getChildMeshes()) .forEach(function (t) { t.isVisible = !e || t == e; }); }), (t.prototype.updateBoundingBox = function () { if (this.attachedMesh) { we._RemoveAndStorePivotPoint(this.attachedMesh); var e = this.attachedMesh.parent; this.attachedMesh.setParent(null); var t = null; this.attachedMesh.skeleton && ((t = this.attachedMesh.skeleton.overrideMesh), (this.attachedMesh.skeleton.overrideMesh = null)), this._update(), this.attachedMesh.rotationQuaternion || (this.attachedMesh.rotationQuaternion = a.b.RotationYawPitchRoll(this.attachedMesh.rotation.y, this.attachedMesh.rotation.x, this.attachedMesh.rotation.z)), this._anchorMesh.rotationQuaternion || (this._anchorMesh.rotationQuaternion = a.b.RotationYawPitchRoll(this._anchorMesh.rotation.y, this._anchorMesh.rotation.x, this._anchorMesh.rotation.z)), this._anchorMesh.rotationQuaternion.copyFrom(this.attachedMesh.rotationQuaternion), this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion), this._tmpVector.copyFrom(this.attachedMesh.position), this.attachedMesh.rotationQuaternion.set(0, 0, 0, 1), this.attachedMesh.position.set(0, 0, 0); var n = this.attachedMesh.getHierarchyBoundingVectors(!this.ignoreChildren, this.includeChildPredicate); n.max.subtractToRef(n.min, this._boundingDimensions), this._lineBoundingBox.scaling.copyFrom(this._boundingDimensions), this._lineBoundingBox.position.set((n.max.x + n.min.x) / 2, (n.max.y + n.min.y) / 2, (n.max.z + n.min.z) / 2), this._rotateSpheresParent.position.copyFrom(this._lineBoundingBox.position), this._scaleBoxesParent.position.copyFrom(this._lineBoundingBox.position), this._lineBoundingBox.computeWorldMatrix(), this._anchorMesh.position.copyFrom(this._lineBoundingBox.absolutePosition), this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion), this.attachedMesh.position.copyFrom(this._tmpVector), this.attachedMesh.setParent(e), this.attachedMesh.skeleton && (this.attachedMesh.skeleton.overrideMesh = t); } this._updateRotationSpheres(), this._updateScaleBoxes(), this.attachedMesh && (this._existingMeshScale.copyFrom(this.attachedMesh.scaling), we._RestorePivotPoint(this.attachedMesh)); }), (t.prototype._updateRotationSpheres = function () { for (var e = this._rotateSpheresParent.getChildMeshes(), t = 0; t < 3; t++) for (var n = 0; n < 2; n++) for (var i = 0; i < 2; i++) { var r = 4 * t + 2 * n + i; if ( (0 == t && (e[r].position.set(this._boundingDimensions.x / 2, this._boundingDimensions.y * n, this._boundingDimensions.z * i), e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)), e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(), a.e.Right()).normalizeToNew().add(e[r].position))), 1 == t && (e[r].position.set(this._boundingDimensions.x * n, this._boundingDimensions.y / 2, this._boundingDimensions.z * i), e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)), e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(), a.e.Up()).normalizeToNew().add(e[r].position))), 2 == t && (e[r].position.set(this._boundingDimensions.x * n, this._boundingDimensions.y * i, this._boundingDimensions.z / 2), e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)), e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(), a.e.Forward()).normalizeToNew().add(e[r].position))), this.fixedDragMeshScreenSize && this.gizmoLayer.utilityLayerScene.activeCamera) ) { e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position, this._tmpVector); var o = (this.rotationSphereSize * this._tmpVector.length()) / this.fixedDragMeshScreenSizeDistanceFactor; e[r].scaling.set(o, o, o); } else e[r].scaling.set(this.rotationSphereSize, this.rotationSphereSize, this.rotationSphereSize); } }), (t.prototype._updateScaleBoxes = function () { for (var e = this._scaleBoxesParent.getChildMeshes(), t = 0; t < 2; t++) for (var n = 0; n < 2; n++) for (var i = 0; i < 2; i++) { var r = 4 * t + 2 * n + i; if (e[r]) if ( (e[r].position.set(this._boundingDimensions.x * t, this._boundingDimensions.y * n, this._boundingDimensions.z * i), e[r].position.addInPlace(new a.e(-this._boundingDimensions.x / 2, -this._boundingDimensions.y / 2, -this._boundingDimensions.z / 2)), this.fixedDragMeshScreenSize && this.gizmoLayer.utilityLayerScene.activeCamera) ) { e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position, this._tmpVector); var o = (this.scaleBoxSize * this._tmpVector.length()) / this.fixedDragMeshScreenSizeDistanceFactor; e[r].scaling.set(o, o, o); } else e[r].scaling.set(this.scaleBoxSize, this.scaleBoxSize, this.scaleBoxSize); } }), (t.prototype.setEnabledRotationAxis = function (e) { this._rotateSpheresParent.getChildMeshes().forEach(function (t, n) { n < 4 ? t.setEnabled(-1 != e.indexOf("x")) : n < 8 ? t.setEnabled(-1 != e.indexOf("y")) : t.setEnabled(-1 != e.indexOf("z")); }); }), (t.prototype.setEnabledScaling = function (e) { this._scaleBoxesParent.getChildMeshes().forEach(function (t, n) { t.setEnabled(e); }); }), (t.prototype._updateDummy = function () { this._dragMesh && (this._dragMesh.position.copyFrom(this._lineBoundingBox.getAbsolutePosition()), this._dragMesh.scaling.copyFrom(this._lineBoundingBox.scaling), this._dragMesh.rotationQuaternion.copyFrom(this._rootMesh.rotationQuaternion)); }), (t.prototype.enableDragBehavior = function () { (this._dragMesh = Ee.a.CreateBox("dummy", 1, this.gizmoLayer.utilityLayerScene)), (this._dragMesh.visibility = 0), (this._dragMesh.rotationQuaternion = new a.b()), (this.pointerDragBehavior.useObjectOrientationForDragging = !1), this._dragMesh.addBehavior(this.pointerDragBehavior); }), (t.prototype.dispose = function () { this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver), this._lineBoundingBox.dispose(), this._rotateSpheresParent.dispose(), this._scaleBoxesParent.dispose(), this._dragMesh && this._dragMesh.dispose(), e.prototype.dispose.call(this); }), (t.MakeNotPickableAndWrapInBoundingBox = function (e) { var t = function (e) { (e.isPickable = !1), e.getChildMeshes().forEach(function (e) { t(e); }); }; t(e), e.rotationQuaternion || (e.rotationQuaternion = a.b.RotationYawPitchRoll(e.rotation.y, e.rotation.x, e.rotation.z)); var n = e.position.clone(), i = e.rotationQuaternion.clone(); e.rotationQuaternion.set(0, 0, 0, 1), e.position.set(0, 0, 0); var r = fi.a.CreateBox("box", { size: 1 }, e.getScene()), o = e.getHierarchyBoundingVectors(); return ( o.max.subtractToRef(o.min, r.scaling), 0 === r.scaling.y && (r.scaling.y = j.a), 0 === r.scaling.x && (r.scaling.x = j.a), 0 === r.scaling.z && (r.scaling.z = j.a), r.position.set((o.max.x + o.min.x) / 2, (o.max.y + o.min.y) / 2, (o.max.z + o.min.z) / 2), e.addChild(r), e.rotationQuaternion.copyFrom(i), e.position.copyFrom(n), e.removeChild(r), r.addChild(e), (r.visibility = 0), r ); }), (t.prototype.setCustomMesh = function (e) { g.a.Error("Custom meshes are not supported on this gizmo"); }), t ); })(li), ur = (function (e) { function t(t, n, i, r, c, l) { void 0 === n && (n = s.a.Gray()), void 0 === i && (i = ci.a.DefaultUtilityLayer), void 0 === r && (r = 32), void 0 === c && (c = null), void 0 === l && (l = !1); var u = e.call(this, i) || this; (u._pointerObserver = null), (u.snapDistance = 0), (u.onSnapObservable = new o.c()), (u._isEnabled = !0), (u._parent = null), (u._parent = c); var h = new Mn.a("", i.utilityLayerScene); (h.diffuseColor = n), (h.specularColor = n.subtract(new s.a(0.1, 0.1, 0.1))); var d = new Mn.a("", i.utilityLayerScene); d.diffuseColor = n.add(new s.a(0.3, 0.3, 0.3)); var p = new ke.a("", i.utilityLayerScene), f = Ee.a.CreateTorus("", 0.6, 0.03, r, i.utilityLayerScene); f.visibility = 0; var m = Ee.a.CreateTorus("", 0.6, 0.005, r, i.utilityLayerScene); (m.material = h), (m.rotation.x = Math.PI / 2), (f.rotation.x = Math.PI / 2), p.addChild(m), p.addChild(f), p.lookAt(u._rootMesh.position.add(t)), u._rootMesh.addChild(p), p.scaling.scaleInPlace(1 / 3), (u.dragBehavior = new Fe({ dragPlaneNormal: t })), (u.dragBehavior.moveAttached = !1), (u.dragBehavior.maxDragAngle = (9 * Math.PI) / 20), (u.dragBehavior._useAlternatePickedPointAboveMaxDragAngle = !0), u._rootMesh.addBehavior(u.dragBehavior); var g = new a.e(); u.dragBehavior.onDragStartObservable.add(function (e) { u.attachedMesh && g.copyFrom(e.dragPlanePoint); }); var b = new a.a(), _ = new a.e(), v = new a.e(), y = { snapDistance: 0 }, C = 0, P = new a.a(), x = new a.e(), T = new a.b(); u.dragBehavior.onDragObservable.add(function (e) { if (u.attachedMesh) { (u.attachedMesh.rotationQuaternion && !l) || (u.attachedMesh.rotationQuaternion = a.b.RotationYawPitchRoll(u.attachedMesh.rotation.y, u.attachedMesh.rotation.x, u.attachedMesh.rotation.z)); var n = u.attachedMesh.parent; n && u.attachedMesh.setParent(null); var r = e.dragPlanePoint.subtract(u.attachedMesh.absolutePosition).normalize(), o = g.subtract(u.attachedMesh.absolutePosition).normalize(), s = a.e.Cross(r, o), c = a.e.Dot(r, o), h = Math.atan2(s.length(), c); if ((_.copyFrom(t), v.copyFrom(t), u.updateGizmoRotationToMatchAttachedMesh && (u.attachedMesh.rotationQuaternion.toRotationMatrix(b), (v = a.e.TransformCoordinates(_, b))), i.utilityLayerScene.activeCamera)) { var d = i.utilityLayerScene.activeCamera.position.subtract(u.attachedMesh.position); a.e.Dot(d, v) > 0 && (_.scaleInPlace(-1), v.scaleInPlace(-1)); } a.e.Dot(v, s) > 0 && (h = -h); var p = !1; if (0 != u.snapDistance) if (((C += h), Math.abs(C) > u.snapDistance)) { var f = Math.floor(Math.abs(C) / u.snapDistance); C < 0 && (f *= -1), (C %= u.snapDistance), (h = u.snapDistance * f), (p = !0); } else h = 0; P.reset(), u.attachedMesh.parent && (u.attachedMesh.parent.computeWorldMatrix().invertToRef(P), P.getRotationMatrixToRef(P), a.e.TransformCoordinatesToRef(_, P, _)); var m = Math.sin(h / 2); T.set(_.x * m, _.y * m, _.z * m, Math.cos(h / 2)), P.determinant() > 0 && (T.toEulerAnglesToRef(x), a.b.RotationYawPitchRollToRef(x.y, -x.x, -x.z, T)), u.updateGizmoRotationToMatchAttachedMesh ? u.attachedMesh.rotationQuaternion.multiplyToRef(T, u.attachedMesh.rotationQuaternion) : T.multiplyToRef(u.attachedMesh.rotationQuaternion, u.attachedMesh.rotationQuaternion), l && (u.attachedMesh.rotationQuaternion.toEulerAnglesToRef(x), (u.attachedMesh.rotationQuaternion = null), u.attachedMesh.rotation.copyFrom(x)), g.copyFrom(e.dragPlanePoint), p && ((y.snapDistance = h), u.onSnapObservable.notifyObservers(y)), n && u.attachedMesh.setParent(n); } }), (u._pointerObserver = i.utilityLayerScene.onPointerObservable.add(function (e) { if (!u._customMeshSet) { var t = e.pickInfo && -1 != u._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? d : h; u._rootMesh.getChildMeshes().forEach(function (e) { (e.material = t), e.color && (e.color = t.diffuseColor); }); } })); var S = i._getSharedGizmoLight(); return (S.includedOnlyMeshes = S.includedOnlyMeshes.concat(u._rootMesh.getChildMeshes(!1))), u; } return ( Object(h.d)(t, e), (t.prototype._attachedMeshChanged = function (e) { this.dragBehavior && (this.dragBehavior.enabled = !!e); }), Object.defineProperty(t.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { (this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), e.prototype.dispose.call(this); }), t ); })(li), hr = (function (e) { function t(t, n, i) { void 0 === t && (t = ci.a.DefaultUtilityLayer), void 0 === n && (n = 32), void 0 === i && (i = !1); var r = e.call(this, t) || this; return ( (r.onDragStartObservable = new o.c()), (r.onDragEndObservable = new o.c()), (r.xGizmo = new ur(new a.e(1, 0, 0), s.a.Red().scale(0.5), t, n, r, i)), (r.yGizmo = new ur(new a.e(0, 1, 0), s.a.Green().scale(0.5), t, n, r, i)), (r.zGizmo = new ur(new a.e(0, 0, 1), s.a.Blue().scale(0.5), t, n, r, i)), [r.xGizmo, r.yGizmo, r.zGizmo].forEach(function (e) { e.dragBehavior.onDragStartObservable.add(function () { r.onDragStartObservable.notifyObservers({}); }), e.dragBehavior.onDragEndObservable.add(function () { r.onDragEndObservable.notifyObservers({}); }); }), (r.attachedMesh = null), r ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "attachedMesh", { get: function () { return this._meshAttached; }, set: function (e) { (this._meshAttached = e), [this.xGizmo, this.yGizmo, this.zGizmo].forEach(function (t) { t.isEnabled ? (t.attachedMesh = e) : (t.attachedMesh = null); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "updateGizmoRotationToMatchAttachedMesh", { get: function () { return this.xGizmo.updateGizmoRotationToMatchAttachedMesh; }, set: function (e) { this.xGizmo && ((this.xGizmo.updateGizmoRotationToMatchAttachedMesh = e), (this.yGizmo.updateGizmoRotationToMatchAttachedMesh = e), (this.zGizmo.updateGizmoRotationToMatchAttachedMesh = e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "snapDistance", { get: function () { return this.xGizmo.snapDistance; }, set: function (e) { this.xGizmo && ((this.xGizmo.snapDistance = e), (this.yGizmo.snapDistance = e), (this.zGizmo.snapDistance = e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scaleRatio", { get: function () { return this.xGizmo.scaleRatio; }, set: function (e) { this.xGizmo && ((this.xGizmo.scaleRatio = e), (this.yGizmo.scaleRatio = e), (this.zGizmo.scaleRatio = e)); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { this.xGizmo.dispose(), this.yGizmo.dispose(), this.zGizmo.dispose(), this.onDragStartObservable.clear(), this.onDragEndObservable.clear(); }), (t.prototype.setCustomMesh = function (e) { g.a.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)"); }), t ); })(li), dr = (function (e) { function t(n, i, r, c) { void 0 === i && (i = s.a.Gray()), void 0 === r && (r = ci.a.DefaultUtilityLayer), void 0 === c && (c = null); var l = e.call(this, r) || this; (l._pointerObserver = null), (l.snapDistance = 0), (l.onSnapObservable = new o.c()), (l._isEnabled = !1), (l._parent = null), (l._parent = c), (l._coloredMaterial = new Mn.a("", r.utilityLayerScene)), (l._coloredMaterial.diffuseColor = i), (l._coloredMaterial.specularColor = i.subtract(new s.a(0.1, 0.1, 0.1))), (l._hoverMaterial = new Mn.a("", r.utilityLayerScene)), (l._hoverMaterial.diffuseColor = i.add(new s.a(0.3, 0.3, 0.3))), (l._plane = t._CreatePlane(r.utilityLayerScene, l._coloredMaterial)), l._plane.lookAt(l._rootMesh.position.add(n)), l._plane.scaling.scaleInPlace(1 / 3), (l._plane.parent = l._rootMesh); var u = 0, h = new a.e(), d = { snapDistance: 0 }; (l.dragBehavior = new Fe({ dragPlaneNormal: n })), (l.dragBehavior.moveAttached = !1), l._rootMesh.addBehavior(l.dragBehavior); var p = new a.e(), f = new a.a(); l.dragBehavior.onDragObservable.add(function (e) { if (l.attachedMesh) if ( (l.attachedMesh.parent ? (l.attachedMesh.parent.computeWorldMatrix().invertToRef(f), f.setTranslationFromFloats(0, 0, 0), a.e.TransformCoordinatesToRef(e.delta, f, p)) : p.copyFrom(e.delta), 0 == l.snapDistance) ) l.attachedMesh.position.addInPlace(p); else if (((u += e.dragDistance), Math.abs(u) > l.snapDistance)) { var t = Math.floor(Math.abs(u) / l.snapDistance); (u %= l.snapDistance), p.normalizeToRef(h), h.scaleInPlace(l.snapDistance * t), l.attachedMesh.position.addInPlace(h), (d.snapDistance = l.snapDistance * t), l.onSnapObservable.notifyObservers(d); } }), (l._pointerObserver = r.utilityLayerScene.onPointerObservable.add(function (e) { if (!l._customMeshSet) { var t = e.pickInfo && -1 != l._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh) ? l._hoverMaterial : l._coloredMaterial; l._rootMesh.getChildMeshes().forEach(function (e) { e.material = t; }); } })); var m = r._getSharedGizmoLight(); return (m.includedOnlyMeshes = m.includedOnlyMeshes.concat(l._rootMesh.getChildMeshes(!1))), l; } return ( Object(h.d)(t, e), (t._CreatePlane = function (e, t) { var n = new si.a("plane", e), i = Le.a.CreatePlane("dragPlane", { width: 0.1375, height: 0.1375, sideOrientation: 2 }, e); return (i.material = t), (i.parent = n), (i.material = t), n; }), (t._CreateArrowInstance = function (e, t) { for (var n = new si.a("arrow", e), i = 0, r = t.getChildMeshes(); i < r.length; i++) { var o = r[i]; o.createInstance(o.name).parent = n; } return n; }), (t.prototype._attachedMeshChanged = function (e) { this.dragBehavior && (this.dragBehavior.enabled = !!e); }), Object.defineProperty(t.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { (this._isEnabled = e), e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : (this.attachedMesh = null); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), e.prototype.dispose.call(this), this._plane && this._plane.dispose(), [this._coloredMaterial, this._hoverMaterial].forEach(function (e) { e && e.dispose(); }); }), t ); })(li), pr = (function (e) { function t(t) { void 0 === t && (t = ci.a.DefaultUtilityLayer); var n = e.call(this, t) || this; return ( (n._meshAttached = null), (n.onDragStartObservable = new o.c()), (n.onDragEndObservable = new o.c()), (n._planarGizmoEnabled = !1), (n.xGizmo = new ui(new a.e(1, 0, 0), s.a.Red().scale(0.5), t, n)), (n.yGizmo = new ui(new a.e(0, 1, 0), s.a.Green().scale(0.5), t, n)), (n.zGizmo = new ui(new a.e(0, 0, 1), s.a.Blue().scale(0.5), t, n)), (n.xPlaneGizmo = new dr(new a.e(1, 0, 0), s.a.Red().scale(0.5), n.gizmoLayer, n)), (n.yPlaneGizmo = new dr(new a.e(0, 1, 0), s.a.Green().scale(0.5), n.gizmoLayer, n)), (n.zPlaneGizmo = new dr(new a.e(0, 0, 1), s.a.Blue().scale(0.5), n.gizmoLayer, n)), [n.xGizmo, n.yGizmo, n.zGizmo, n.xPlaneGizmo, n.yPlaneGizmo, n.zPlaneGizmo].forEach(function (e) { e.dragBehavior.onDragStartObservable.add(function () { n.onDragStartObservable.notifyObservers({}); }), e.dragBehavior.onDragEndObservable.add(function () { n.onDragEndObservable.notifyObservers({}); }); }), (n.attachedMesh = null), n ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "attachedMesh", { get: function () { return this._meshAttached; }, set: function (e) { (this._meshAttached = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) { t.isEnabled ? (t.attachedMesh = e) : (t.attachedMesh = null); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "planarGizmoEnabled", { get: function () { return this._planarGizmoEnabled; }, set: function (e) { var t = this; (this._planarGizmoEnabled = e), [this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (n) { n && ((n.isEnabled = e), e && (n.attachedMesh = t.attachedMesh)); }, this); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "updateGizmoRotationToMatchAttachedMesh", { get: function () { return this._updateGizmoRotationToMatchAttachedMesh; }, set: function (e) { (this._updateGizmoRotationToMatchAttachedMesh = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) { t && (t.updateGizmoRotationToMatchAttachedMesh = e); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "snapDistance", { get: function () { return this._snapDistance; }, set: function (e) { (this._snapDistance = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) { t && (t.snapDistance = e); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scaleRatio", { get: function () { return this._scaleRatio; }, set: function (e) { (this._scaleRatio = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (t) { t && (t.scaleRatio = e); }); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { [this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo].forEach(function (e) { e && e.dispose(); }), this.onDragStartObservable.clear(), this.onDragEndObservable.clear(); }), (t.prototype.setCustomMesh = function (e) { g.a.Error( "Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo,gizmo.xPlaneGizmo, gizmo.yPlaneGizmo, gizmo.zPlaneGizmo)" ); }), t ); })(li); (Rn.a.CreatePolyhedron = function (e) { var t = []; (t[0] = { vertex: [ [0, 0, 1.732051], [1.632993, 0, -0.5773503], [-0.8164966, 1.414214, -0.5773503], [-0.8164966, -1.414214, -0.5773503], ], face: [ [0, 1, 2], [0, 2, 3], [0, 3, 1], [1, 3, 2], ], }), (t[1] = { vertex: [ [0, 0, 1.414214], [1.414214, 0, 0], [0, 1.414214, 0], [-1.414214, 0, 0], [0, -1.414214, 0], [0, 0, -1.414214], ], face: [ [0, 1, 2], [0, 2, 3], [0, 3, 4], [0, 4, 1], [1, 4, 5], [1, 5, 2], [2, 5, 3], [3, 5, 4], ], }), (t[2] = { vertex: [ [0, 0, 1.070466], [0.7136442, 0, 0.7978784], [-0.3568221, 0.618034, 0.7978784], [-0.3568221, -0.618034, 0.7978784], [0.7978784, 0.618034, 0.3568221], [0.7978784, -0.618034, 0.3568221], [-0.9341724, 0.381966, 0.3568221], [0.1362939, 1, 0.3568221], [0.1362939, -1, 0.3568221], [-0.9341724, -0.381966, 0.3568221], [0.9341724, 0.381966, -0.3568221], [0.9341724, -0.381966, -0.3568221], [-0.7978784, 0.618034, -0.3568221], [-0.1362939, 1, -0.3568221], [-0.1362939, -1, -0.3568221], [-0.7978784, -0.618034, -0.3568221], [0.3568221, 0.618034, -0.7978784], [0.3568221, -0.618034, -0.7978784], [-0.7136442, 0, -0.7978784], [0, 0, -1.070466], ], face: [ [0, 1, 4, 7, 2], [0, 2, 6, 9, 3], [0, 3, 8, 5, 1], [1, 5, 11, 10, 4], [2, 7, 13, 12, 6], [3, 9, 15, 14, 8], [4, 10, 16, 13, 7], [5, 8, 14, 17, 11], [6, 12, 18, 15, 9], [10, 11, 17, 19, 16], [12, 13, 16, 19, 18], [14, 15, 18, 19, 17], ], }), (t[3] = { vertex: [ [0, 0, 1.175571], [1.051462, 0, 0.5257311], [0.3249197, 1, 0.5257311], [-0.8506508, 0.618034, 0.5257311], [-0.8506508, -0.618034, 0.5257311], [0.3249197, -1, 0.5257311], [0.8506508, 0.618034, -0.5257311], [0.8506508, -0.618034, -0.5257311], [-0.3249197, 1, -0.5257311], [-1.051462, 0, -0.5257311], [-0.3249197, -1, -0.5257311], [0, 0, -1.175571], ], face: [ [0, 1, 2], [0, 2, 3], [0, 3, 4], [0, 4, 5], [0, 5, 1], [1, 5, 7], [1, 7, 6], [1, 6, 2], [2, 6, 8], [2, 8, 3], [3, 8, 9], [3, 9, 4], [4, 9, 10], [4, 10, 5], [5, 10, 7], [6, 7, 11], [6, 11, 8], [7, 10, 11], [8, 11, 9], [9, 11, 10], ], }), (t[4] = { vertex: [ [0, 0, 1.070722], [0.7148135, 0, 0.7971752], [-0.104682, 0.7071068, 0.7971752], [-0.6841528, 0.2071068, 0.7971752], [-0.104682, -0.7071068, 0.7971752], [0.6101315, 0.7071068, 0.5236279], [1.04156, 0.2071068, 0.1367736], [0.6101315, -0.7071068, 0.5236279], [-0.3574067, 1, 0.1367736], [-0.7888348, -0.5, 0.5236279], [-0.9368776, 0.5, 0.1367736], [-0.3574067, -1, 0.1367736], [0.3574067, 1, -0.1367736], [0.9368776, -0.5, -0.1367736], [0.7888348, 0.5, -0.5236279], [0.3574067, -1, -0.1367736], [-0.6101315, 0.7071068, -0.5236279], [-1.04156, -0.2071068, -0.1367736], [-0.6101315, -0.7071068, -0.5236279], [0.104682, 0.7071068, -0.7971752], [0.6841528, -0.2071068, -0.7971752], [0.104682, -0.7071068, -0.7971752], [-0.7148135, 0, -0.7971752], [0, 0, -1.070722], ], face: [ [0, 2, 3], [1, 6, 5], [4, 9, 11], [7, 15, 13], [8, 16, 10], [12, 14, 19], [17, 22, 18], [20, 21, 23], [0, 1, 5, 2], [0, 3, 9, 4], [0, 4, 7, 1], [1, 7, 13, 6], [2, 5, 12, 8], [2, 8, 10, 3], [3, 10, 17, 9], [4, 11, 15, 7], [5, 6, 14, 12], [6, 13, 20, 14], [8, 12, 19, 16], [9, 17, 18, 11], [10, 16, 22, 17], [11, 18, 21, 15], [13, 15, 21, 20], [14, 20, 23, 19], [16, 19, 23, 22], [18, 22, 23, 21], ], }), (t[5] = { vertex: [ [0, 0, 1.322876], [1.309307, 0, 0.1889822], [-0.9819805, 0.8660254, 0.1889822], [0.1636634, -1.299038, 0.1889822], [0.3273268, 0.8660254, -0.9449112], [-0.8183171, -0.4330127, -0.9449112], ], face: [ [0, 3, 1], [2, 4, 5], [0, 1, 4, 2], [0, 2, 5, 3], [1, 3, 5, 4], ], }), (t[6] = { vertex: [ [0, 0, 1.159953], [1.013464, 0, 0.5642542], [-0.3501431, 0.9510565, 0.5642542], [-0.7715208, -0.6571639, 0.5642542], [0.6633206, 0.9510565, -0.03144481], [0.8682979, -0.6571639, -0.3996071], [-1.121664, 0.2938926, -0.03144481], [-0.2348831, -1.063314, -0.3996071], [0.5181548, 0.2938926, -0.9953061], [-0.5850262, -0.112257, -0.9953061], ], face: [ [0, 1, 4, 2], [0, 2, 6, 3], [1, 5, 8, 4], [3, 6, 9, 7], [5, 7, 9, 8], [0, 3, 7, 5, 1], [2, 4, 8, 9, 6], ], }), (t[7] = { vertex: [ [0, 0, 1.118034], [0.8944272, 0, 0.6708204], [-0.2236068, 0.8660254, 0.6708204], [-0.7826238, -0.4330127, 0.6708204], [0.6708204, 0.8660254, 0.2236068], [1.006231, -0.4330127, -0.2236068], [-1.006231, 0.4330127, 0.2236068], [-0.6708204, -0.8660254, -0.2236068], [0.7826238, 0.4330127, -0.6708204], [0.2236068, -0.8660254, -0.6708204], [-0.8944272, 0, -0.6708204], [0, 0, -1.118034], ], face: [ [0, 1, 4, 2], [0, 2, 6, 3], [1, 5, 8, 4], [3, 6, 10, 7], [5, 9, 11, 8], [7, 10, 11, 9], [0, 3, 7, 9, 5, 1], [2, 4, 8, 11, 10, 6], ], }), (t[8] = { vertex: [ [-0.729665, 0.670121, 0.319155], [-0.655235, -0.29213, -0.754096], [-0.093922, -0.607123, 0.537818], [0.702196, 0.595691, 0.485187], [0.776626, -0.36656, -0.588064], ], face: [ [1, 4, 2], [0, 1, 2], [3, 0, 2], [4, 3, 2], [4, 1, 0, 3], ], }), (t[9] = { vertex: [ [-0.868849, -0.100041, 0.61257], [-0.329458, 0.976099, 0.28078], [-0.26629, -0.013796, -0.477654], [-0.13392, -1.034115, 0.229829], [0.738834, 0.707117, -0.307018], [0.859683, -0.535264, -0.338508], ], face: [ [3, 0, 2], [5, 3, 2], [4, 5, 2], [1, 4, 2], [0, 1, 2], [0, 3, 5, 4, 1], ], }), (t[10] = { vertex: [ [-0.610389, 0.243975, 0.531213], [-0.187812, -0.48795, -0.664016], [-0.187812, 0.9759, -0.664016], [0.187812, -0.9759, 0.664016], [0.798201, 0.243975, 0.132803], ], face: [ [1, 3, 0], [3, 4, 0], [3, 1, 4], [0, 2, 1], [0, 4, 2], [2, 4, 1], ], }), (t[11] = { vertex: [ [-1.028778, 0.392027, -0.048786], [-0.640503, -0.646161, 0.621837], [-0.125162, -0.395663, -0.540059], [0.004683, 0.888447, -0.651988], [0.125161, 0.395663, 0.540059], [0.632925, -0.791376, 0.433102], [1.031672, 0.157063, -0.354165], ], face: [ [3, 2, 0], [2, 1, 0], [2, 5, 1], [0, 4, 3], [0, 1, 4], [4, 1, 5], [2, 3, 6], [3, 4, 6], [5, 2, 6], [4, 5, 6], ], }), (t[12] = { vertex: [ [-0.669867, 0.334933, -0.529576], [-0.669867, 0.334933, 0.529577], [-0.4043, 1.212901, 0], [-0.334933, -0.669867, -0.529576], [-0.334933, -0.669867, 0.529577], [0.334933, 0.669867, -0.529576], [0.334933, 0.669867, 0.529577], [0.4043, -1.212901, 0], [0.669867, -0.334933, -0.529576], [0.669867, -0.334933, 0.529577], ], face: [ [8, 9, 7], [6, 5, 2], [3, 8, 7], [5, 0, 2], [4, 3, 7], [0, 1, 2], [9, 4, 7], [1, 6, 2], [9, 8, 5, 6], [8, 3, 0, 5], [3, 4, 1, 0], [4, 9, 6, 1], ], }), (t[13] = { vertex: [ [-0.931836, 0.219976, -0.264632], [-0.636706, 0.318353, 0.692816], [-0.613483, -0.735083, -0.264632], [-0.326545, 0.979634, 0], [-0.318353, -0.636706, 0.692816], [-0.159176, 0.477529, -0.856368], [0.159176, -0.477529, -0.856368], [0.318353, 0.636706, 0.692816], [0.326545, -0.979634, 0], [0.613482, 0.735082, -0.264632], [0.636706, -0.318353, 0.692816], [0.931835, -0.219977, -0.264632], ], face: [ [11, 10, 8], [7, 9, 3], [6, 11, 8], [9, 5, 3], [2, 6, 8], [5, 0, 3], [4, 2, 8], [0, 1, 3], [10, 4, 8], [1, 7, 3], [10, 11, 9, 7], [11, 6, 5, 9], [6, 2, 0, 5], [2, 4, 1, 0], [4, 10, 7, 1], ], }), (t[14] = { vertex: [ [-0.93465, 0.300459, -0.271185], [-0.838689, -0.260219, -0.516017], [-0.711319, 0.717591, 0.128359], [-0.710334, -0.156922, 0.080946], [-0.599799, 0.556003, -0.725148], [-0.503838, -0.004675, -0.969981], [-0.487004, 0.26021, 0.48049], [-0.460089, -0.750282, -0.512622], [-0.376468, 0.973135, -0.325605], [-0.331735, -0.646985, 0.084342], [-0.254001, 0.831847, 0.530001], [-0.125239, -0.494738, -0.966586], [0.029622, 0.027949, 0.730817], [0.056536, -0.982543, -0.262295], [0.08085, 1.087391, 0.076037], [0.125583, -0.532729, 0.485984], [0.262625, 0.599586, 0.780328], [0.391387, -0.726999, -0.716259], [0.513854, -0.868287, 0.139347], [0.597475, 0.85513, 0.326364], [0.641224, 0.109523, 0.783723], [0.737185, -0.451155, 0.538891], [0.848705, -0.612742, -0.314616], [0.976075, 0.365067, 0.32976], [1.072036, -0.19561, 0.084927], ], face: [ [15, 18, 21], [12, 20, 16], [6, 10, 2], [3, 0, 1], [9, 7, 13], [2, 8, 4, 0], [0, 4, 5, 1], [1, 5, 11, 7], [7, 11, 17, 13], [13, 17, 22, 18], [18, 22, 24, 21], [21, 24, 23, 20], [20, 23, 19, 16], [16, 19, 14, 10], [10, 14, 8, 2], [15, 9, 13, 18], [12, 15, 21, 20], [6, 12, 16, 10], [3, 6, 2, 0], [9, 3, 1, 7], [9, 15, 12, 6, 3], [22, 17, 11, 5, 4, 8, 14, 19, 23, 24], ], }); var n, i, r, o, c, l, u = e.type && (e.type < 0 || e.type >= t.length) ? 0 : e.type || 0, h = e.size, d = e.sizeX || h || 1, p = e.sizeY || h || 1, f = e.sizeZ || h || 1, m = e.custom || t[u], g = m.face.length, b = e.faceUV || new Array(g), _ = e.faceColors, v = void 0 === e.flat || e.flat, y = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, C = new Array(), P = new Array(), x = new Array(), T = new Array(), S = new Array(), O = 0, E = 0, M = new Array(), A = 0, I = 0; if (v) for (I = 0; I < g; I++) _ && void 0 === _[I] && (_[I] = new s.b(1, 1, 1, 1)), b && void 0 === b[I] && (b[I] = new a.f(0, 0, 1, 1)); if (v) for (I = 0; I < g; I++) { var D = m.face[I].length; for (r = (2 * Math.PI) / D, o = 0.5 * Math.tan(r / 2), c = 0.5, A = 0; A < D; A++) C.push(m.vertex[m.face[I][A]][0] * d, m.vertex[m.face[I][A]][1] * p, m.vertex[m.face[I][A]][2] * f), M.push(O), O++, (n = b[I].x + (b[I].z - b[I].x) * (0.5 + o)), (i = b[I].y + (b[I].w - b[I].y) * (c - 0.5)), T.push(n, i), (l = o * Math.cos(r) - c * Math.sin(r)), (c = o * Math.sin(r) + c * Math.cos(r)), (o = l), _ && S.push(_[I].r, _[I].g, _[I].b, _[I].a); for (A = 0; A < D - 2; A++) P.push(M[0 + E], M[A + 2 + E], M[A + 1 + E]); E += D; } else { for (A = 0; A < m.vertex.length; A++) C.push(m.vertex[A][0] * d, m.vertex[A][1] * p, m.vertex[A][2] * f), T.push(0, 0); for (I = 0; I < g; I++) for (A = 0; A < m.face[I].length - 2; A++) P.push(m.face[I][0], m.face[I][A + 2], m.face[I][A + 1]); } Rn.a.ComputeNormals(C, P, x), Rn.a._ComputeSides(y, C, P, x, T, e.frontUVs, e.backUVs); var R = new Rn.a(); return (R.positions = C), (R.indices = P), (R.normals = x), (R.uvs = T), _ && v && (R.colors = S), R; }), (Ee.a.CreatePolyhedron = function (e, t, n) { return fr.CreatePolyhedron(e, t, n); }); var fr = (function () { function e() {} return ( (e.CreatePolyhedron = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreatePolyhedron(t).applyToMesh(i, t.updatable), i; }), e ); })(), mr = (function (e) { function t(t) { void 0 === t && (t = ci.a.DefaultUtilityLayer); var n = e.call(this, t) || this; (n._meshAttached = null), (n._sensitivity = 1), (n.onDragStartObservable = new o.c()), (n.onDragEndObservable = new o.c()), (n.xGizmo = new cr(new a.e(1, 0, 0), s.a.Red().scale(0.5), t, n)), (n.yGizmo = new cr(new a.e(0, 1, 0), s.a.Green().scale(0.5), t, n)), (n.zGizmo = new cr(new a.e(0, 0, 1), s.a.Blue().scale(0.5), t, n)), (n.uniformScaleGizmo = new cr(new a.e(0, 1, 0), s.a.Yellow().scale(0.5), t, n)), (n.uniformScaleGizmo.updateGizmoRotationToMatchAttachedMesh = !1), (n.uniformScaleGizmo.uniformScaling = !0), (n._uniformScalingMesh = fr.CreatePolyhedron("", { type: 1 }, n.uniformScaleGizmo.gizmoLayer.utilityLayerScene)), n._uniformScalingMesh.scaling.scaleInPlace(0.02), (n._uniformScalingMesh.visibility = 0), (n._octahedron = fr.CreatePolyhedron("", { type: 1 }, n.uniformScaleGizmo.gizmoLayer.utilityLayerScene)), n._octahedron.scaling.scaleInPlace(0.007), n._uniformScalingMesh.addChild(n._octahedron), n.uniformScaleGizmo.setCustomMesh(n._uniformScalingMesh, !0); var i = t._getSharedGizmoLight(); return ( (i.includedOnlyMeshes = i.includedOnlyMeshes.concat(n._octahedron)), [n.xGizmo, n.yGizmo, n.zGizmo, n.uniformScaleGizmo].forEach(function (e) { e.dragBehavior.onDragStartObservable.add(function () { n.onDragStartObservable.notifyObservers({}); }), e.dragBehavior.onDragEndObservable.add(function () { n.onDragEndObservable.notifyObservers({}); }); }), (n.attachedMesh = null), n ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "attachedMesh", { get: function () { return this._meshAttached; }, set: function (e) { (this._meshAttached = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) { t.isEnabled ? (t.attachedMesh = e) : (t.attachedMesh = null); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "updateGizmoRotationToMatchAttachedMesh", { get: function () { return this._updateGizmoRotationToMatchAttachedMesh; }, set: function (e) { e ? ((this._updateGizmoRotationToMatchAttachedMesh = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) { t && (t.updateGizmoRotationToMatchAttachedMesh = e); })) : g.a.Warn("Setting updateGizmoRotationToMatchAttachedMesh = false on scaling gizmo is not supported."); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "snapDistance", { get: function () { return this._snapDistance; }, set: function (e) { (this._snapDistance = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) { t && (t.snapDistance = e); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scaleRatio", { get: function () { return this._scaleRatio; }, set: function (e) { (this._scaleRatio = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) { t && (t.scaleRatio = e); }); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "sensitivity", { get: function () { return this._sensitivity; }, set: function (e) { (this._sensitivity = e), [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (t) { t && (t.sensitivity = e); }); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function () { [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(function (e) { e && e.dispose(); }), this.onDragStartObservable.clear(), this.onDragEndObservable.clear(), [this._uniformScalingMesh, this._octahedron].forEach(function (e) { e && e.dispose(); }); }), t ); })(li), gr = (function () { function e(e) { var t = this; (this.scene = e), (this.clearGizmoOnEmptyPointerEvent = !1), (this.onAttachedToMeshObservable = new o.c()), (this._gizmosEnabled = { positionGizmo: !1, rotationGizmo: !1, scaleGizmo: !1, boundingBoxGizmo: !1 }), (this._pointerObserver = null), (this._attachedMesh = null), (this._boundingBoxColor = s.a.FromHexString("#0984e3")), (this.boundingBoxDragBehavior = new ze()), (this.attachableMeshes = null), (this.usePointerToAttachGizmos = !0), (this._defaultKeepDepthUtilityLayer = new ci.a(e)), (this._defaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil = !1), (this._defaultUtilityLayer = new ci.a(e)), (this.gizmos = { positionGizmo: null, rotationGizmo: null, scaleGizmo: null, boundingBoxGizmo: null }), (this._pointerObserver = e.onPointerObservable.add(function (e) { if (t.usePointerToAttachGizmos && e.type == ye.a.POINTERDOWN) if (e.pickInfo && e.pickInfo.pickedMesh) { var n = e.pickInfo.pickedMesh; if (null == t.attachableMeshes) for (; n && null != n.parent; ) n = n.parent; else { var i = !1; t.attachableMeshes.forEach(function (e) { n && (n == e || n.isDescendantOf(e)) && ((n = e), (i = !0)); }), i || (n = null); } n instanceof ke.a ? t._attachedMesh != n && t.attachToMesh(n) : t.clearGizmoOnEmptyPointerEvent && t.attachToMesh(null); } else t.clearGizmoOnEmptyPointerEvent && t.attachToMesh(null); })); } return ( Object.defineProperty(e.prototype, "keepDepthUtilityLayer", { get: function () { return this._defaultKeepDepthUtilityLayer; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "utilityLayer", { get: function () { return this._defaultUtilityLayer; }, enumerable: !0, configurable: !0, }), (e.prototype.attachToMesh = function (e) { for (var t in (this._attachedMesh && this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior), (this._attachedMesh = e), this.gizmos)) { var n = this.gizmos[t]; n && this._gizmosEnabled[t] && (n.attachedMesh = e); } this.boundingBoxGizmoEnabled && this._attachedMesh && this._attachedMesh.addBehavior(this.boundingBoxDragBehavior), this.onAttachedToMeshObservable.notifyObservers(e); }), Object.defineProperty(e.prototype, "positionGizmoEnabled", { get: function () { return this._gizmosEnabled.positionGizmo; }, set: function (e) { e ? (this.gizmos.positionGizmo || (this.gizmos.positionGizmo = new pr(this._defaultUtilityLayer)), (this.gizmos.positionGizmo.attachedMesh = this._attachedMesh)) : this.gizmos.positionGizmo && (this.gizmos.positionGizmo.attachedMesh = null), (this._gizmosEnabled.positionGizmo = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rotationGizmoEnabled", { get: function () { return this._gizmosEnabled.rotationGizmo; }, set: function (e) { e ? (this.gizmos.rotationGizmo || (this.gizmos.rotationGizmo = new hr(this._defaultUtilityLayer)), (this.gizmos.rotationGizmo.attachedMesh = this._attachedMesh)) : this.gizmos.rotationGizmo && (this.gizmos.rotationGizmo.attachedMesh = null), (this._gizmosEnabled.rotationGizmo = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "scaleGizmoEnabled", { get: function () { return this._gizmosEnabled.scaleGizmo; }, set: function (e) { e ? ((this.gizmos.scaleGizmo = this.gizmos.scaleGizmo || new mr(this._defaultUtilityLayer)), (this.gizmos.scaleGizmo.attachedMesh = this._attachedMesh)) : this.gizmos.scaleGizmo && (this.gizmos.scaleGizmo.attachedMesh = null), (this._gizmosEnabled.scaleGizmo = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "boundingBoxGizmoEnabled", { get: function () { return this._gizmosEnabled.boundingBoxGizmo; }, set: function (e) { e ? ((this.gizmos.boundingBoxGizmo = this.gizmos.boundingBoxGizmo || new lr(this._boundingBoxColor, this._defaultKeepDepthUtilityLayer)), (this.gizmos.boundingBoxGizmo.attachedMesh = this._attachedMesh), this._attachedMesh && (this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior), this._attachedMesh.addBehavior(this.boundingBoxDragBehavior))) : this.gizmos.boundingBoxGizmo && (this._attachedMesh && this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior), (this.gizmos.boundingBoxGizmo.attachedMesh = null)), (this._gizmosEnabled.boundingBoxGizmo = e); }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { for (var e in (this.scene.onPointerObservable.remove(this._pointerObserver), this.gizmos)) { var t = this.gizmos[e]; t && t.dispose(); } this._defaultKeepDepthUtilityLayer.dispose(), this._defaultUtilityLayer.dispose(), this.boundingBoxDragBehavior.detach(), this.onAttachedToMeshObservable.clear(); }), e ); })(), br = n(115); Ee.a.CreateHemisphere = function (e, t, n, i) { var r = { segments: t, diameter: n }; return _r.CreateHemisphere(e, r, i); }; var _r = (function () { function e() {} return ( (e.CreateHemisphere = function (e, t, n) { t.diameter || (t.diameter = 1), t.segments || (t.segments = 16); var i = mi.CreateSphere("", { slice: 0.5, diameter: t.diameter, segments: t.segments }, n), r = Ee.a.CreateDisc("", t.diameter / 2, 3 * t.segments + (4 - t.segments), n); (r.rotation.x = -Math.PI / 2), (r.parent = i); var o = Ee.a.MergeMeshes([r, i], !0); return (o.name = e), o; }), e ); })(), vr = n(122), yr = (function (e) { function t(t) { var n = e.call(this, t) || this; return ( (n._cachedPosition = new a.e()), (n._cachedForward = new a.e(0, 0, 1)), (n._light = null), (n.attachedMesh = new ke.a("", n.gizmoLayer.utilityLayerScene)), (n._attachedMeshParent = new si.a("parent", n.gizmoLayer.originalScene)), (n.attachedMesh.parent = n._attachedMeshParent), (n._material = new Mn.a("light", n.gizmoLayer.originalScene)), (n._material.diffuseColor = new s.a(0.5, 0.5, 0.5)), (n._material.specularColor = new s.a(0.1, 0.1, 0.1)), n ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "light", { get: function () { return this._light; }, set: function (e) { var n = this; if (((this._light = e), e)) { this._lightMesh && this._lightMesh.dispose(), e instanceof xn.a ? (this._lightMesh = t._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene)) : e instanceof br.a ? (this._lightMesh = t._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene)) : e instanceof vr.a ? (this._lightMesh = t._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene)) : (this._lightMesh = t._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene)), this._lightMesh.getChildMeshes(!1).forEach(function (e) { e.material = n._material; }), (this._lightMesh.parent = this._rootMesh); var i = this.gizmoLayer._getSharedGizmoLight(); (i.includedOnlyMeshes = i.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1))), (this._lightMesh.rotationQuaternion = new a.b()), this.attachedMesh.reservedDataStore || (this.attachedMesh.reservedDataStore = {}), (this.attachedMesh.reservedDataStore.lightGizmo = this), e.parent && this._attachedMeshParent.freezeWorldMatrix(e.parent.getWorldMatrix()), e.position && (this.attachedMesh.position.copyFrom(e.position), this.attachedMesh.computeWorldMatrix(!0), this._cachedPosition.copyFrom(this.attachedMesh.position)), e.direction && (this.attachedMesh.setDirection(e.direction), this.attachedMesh.computeWorldMatrix(!0), this._cachedForward.copyFrom(this.attachedMesh.forward)), this._update(); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "material", { get: function () { return this._material; }, enumerable: !0, configurable: !0, }), (t.prototype._update = function () { e.prototype._update.call(this), this._light && (this._light.parent && this._attachedMeshParent.freezeWorldMatrix(this._light.parent.getWorldMatrix()), this._light.position && (this.attachedMesh.position.equals(this._cachedPosition) ? (this.attachedMesh.position.copyFrom(this._light.position), this.attachedMesh.computeWorldMatrix(!0), this._cachedPosition.copyFrom(this.attachedMesh.position)) : (this._light.position.copyFrom(this.attachedMesh.position), this._cachedPosition.copyFrom(this.attachedMesh.position))), this._light.direction && (a.e.DistanceSquared(this.attachedMesh.forward, this._cachedForward) > 1e-4 ? (this._light.direction.copyFrom(this.attachedMesh.forward), this._cachedForward.copyFrom(this.attachedMesh.forward)) : a.e.DistanceSquared(this.attachedMesh.forward, this._light.direction) > 1e-4 && (this.attachedMesh.setDirection(this._light.direction), this.attachedMesh.computeWorldMatrix(!0), this._cachedForward.copyFrom(this.attachedMesh.forward))), this._light.isEnabled() ? this._material.diffuseColor.set(this._light.diffuse.r / 3, this._light.diffuse.g / 3, this._light.diffuse.b / 3) : this._material.diffuseColor.set(0, 0, 0)); }), (t.prototype.dispose = function () { this._material.dispose(), e.prototype.dispose.call(this), this._attachedMeshParent.dispose(); }), (t._CreateHemisphericLightMesh = function (e) { var n = new Ee.a("hemisphereLight", e), i = _r.CreateHemisphere(n.name, { segments: 10, diameter: 1 }, e); (i.position.z = -0.15), (i.rotation.x = Math.PI / 2), (i.parent = n); var r = this._CreateLightLines(3, e); return (r.parent = n), r.position.z, n.scaling.scaleInPlace(t._Scale), (n.rotation.x = Math.PI / 2), n; }), (t._CreatePointLightMesh = function (e) { var n = new Ee.a("pointLight", e), i = mi.CreateSphere(n.name, { segments: 10, diameter: 1 }, e); return (i.rotation.x = Math.PI / 2), (i.parent = n), (this._CreateLightLines(5, e).parent = n), n.scaling.scaleInPlace(t._Scale), (n.rotation.x = Math.PI / 2), n; }), (t._CreateSpotLightMesh = function (e) { var n = new Ee.a("spotLight", e); mi.CreateSphere(n.name, { segments: 10, diameter: 1 }, e).parent = n; var i = _r.CreateHemisphere(n.name, { segments: 10, diameter: 2 }, e); return (i.parent = n), (i.rotation.x = -Math.PI / 2), (this._CreateLightLines(2, e).parent = n), n.scaling.scaleInPlace(t._Scale), (n.rotation.x = Math.PI / 2), n; }), (t._CreateDirectionalLightMesh = function (e) { var n = new Ee.a("directionalLight", e), i = new Ee.a(n.name, e); (i.parent = n), (mi.CreateSphere(n.name, { diameter: 1.2, segments: 10 }, e).parent = i); var r = Ee.a.CreateCylinder(n.name, 6, 0.3, 0.3, 6, 1, e); (r.parent = i), ((o = r.clone(n.name)).scaling.y = 0.5), (o.position.x += 1.25), ((a = r.clone(n.name)).scaling.y = 0.5), (a.position.x += -1.25); var o, a, s = Ee.a.CreateCylinder(n.name, 1, 0, 0.6, 6, 1, e); return ( (s.position.y += 3), (s.parent = i), ((o = s.clone(n.name)).position.y = 1.5), (o.position.x += 1.25), ((a = s.clone(n.name)).position.y = 1.5), (a.position.x += -1.25), i.scaling.scaleInPlace(t._Scale), (i.rotation.z = Math.PI / 2), (i.rotation.y = Math.PI / 2), n ); }), (t._Scale = 0.007), (t._CreateLightLines = function (e, t) { var n = new Ee.a("root", t); n.rotation.x = Math.PI / 2; var i = new Ee.a("linePivot", t); i.parent = n; var r = Ee.a.CreateCylinder("line", 2, 0.2, 0.3, 6, 1, t); if (((r.position.y = r.scaling.y / 2 + 1.2), (r.parent = i), e < 2)) return i; for (var o = 0; o < 4; o++) { ((a = i.clone("lineParentClone")).rotation.z = Math.PI / 4), (a.rotation.y = Math.PI / 2 + (Math.PI / 2) * o), (a.getChildMeshes()[0].scaling.y = 0.5), (a.getChildMeshes()[0].scaling.x = a.getChildMeshes()[0].scaling.z = 0.8), (a.getChildMeshes()[0].position.y = a.getChildMeshes()[0].scaling.y / 2 + 1.2); } if (e < 3) return n; for (o = 0; o < 4; o++) { ((a = i.clone("linePivotClone")).rotation.z = Math.PI / 2), (a.rotation.y = (Math.PI / 2) * o); } if (e < 4) return n; for (o = 0; o < 4; o++) { var a; ((a = i.clone("linePivotClone")).rotation.z = Math.PI + Math.PI / 4), (a.rotation.y = Math.PI / 2 + (Math.PI / 2) * o), (a.getChildMeshes()[0].scaling.y = 0.5), (a.getChildMeshes()[0].scaling.x = a.getChildMeshes()[0].scaling.z = 0.8), (a.getChildMeshes()[0].position.y = a.getChildMeshes()[0].scaling.y / 2 + 1.2); } return e < 5 || ((a = i.clone("linePivotClone")).rotation.z = Math.PI), n; }), t ); })(li), Cr = n(68); Xt.a.IncludesShadersStore.kernelBlurVaryingDeclaration = "varying vec2 sampleCoord{X};"; var Pr = "vec4 pack(float depth)\n{\nconst vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\nconst vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\nvec4 res=fract(depth*bit_shift);\nres-=res.xxyz*bit_mask;\nreturn res;\n}\nfloat unpack(vec4 color)\n{\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\nreturn dot(color,bit_shift);\n}"; Xt.a.IncludesShadersStore.packingFunctions = Pr; var xr = "#ifdef DOF\nfactor=sampleCoC(sampleCoord{X});\ncomputedWeight=KERNEL_WEIGHT{X}*factor;\nsumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\n#endif"; Xt.a.IncludesShadersStore.kernelBlurFragment = xr; var Tr = "#ifdef DOF\nfactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});\ncomputedWeight=KERNEL_DEP_WEIGHT{X}*factor;\nsumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_DEP_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\n#endif"; Xt.a.IncludesShadersStore.kernelBlurFragment2 = Tr; var Sr = "\nuniform sampler2D textureSampler;\nuniform vec2 delta;\n\nvarying vec2 sampleCenter;\n#ifdef DOF\nuniform sampler2D circleOfConfusionSampler;\nuniform vec2 cameraMinMaxZ;\nfloat sampleDistance(const in vec2 offset) {\nfloat depth=texture2D(circleOfConfusionSampler,offset).g;\nreturn cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth;\n}\nfloat sampleCoC(const in vec2 offset) {\nfloat coc=texture2D(circleOfConfusionSampler,offset).r;\nreturn coc;\n}\n#endif\n#include[0..varyingCount]\n#ifdef PACKEDFLOAT\n#include\n#endif\nvoid main(void)\n{\nfloat computedWeight=0.0;\n#ifdef PACKEDFLOAT\nfloat blend=0.;\n#else\nvec4 blend=vec4(0.);\n#endif\n#ifdef DOF\nfloat sumOfWeights=CENTER_WEIGHT;\nfloat factor=0.0;\n\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\n#else\nblend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\n#endif\n#endif\n#include[0..varyingCount]\n#include[0..depCount]\n#ifdef PACKEDFLOAT\ngl_FragColor=pack(blend);\n#else\ngl_FragColor=blend;\n#endif\n#ifdef DOF\ngl_FragColor/=sumOfWeights;\n#endif\n}"; Xt.a.ShadersStore.kernelBlurPixelShader = Sr; Xt.a.IncludesShadersStore.kernelBlurVertex = "sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};"; var Or = "\nattribute vec2 position;\n\nuniform vec2 delta;\n\nvarying vec2 sampleCenter;\n#include[0..varyingCount]\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nsampleCenter=(position*madd+madd);\n#include[0..varyingCount]\ngl_Position=vec4(position,0.0,1.0);\n}"; Xt.a.ShadersStore.kernelBlurVertexShader = Or; var Er = (function (e) { function t(t, n, i, r, o, a, s, c, l, u, h) { void 0 === a && (a = ln.a.BILINEAR_SAMPLINGMODE), void 0 === l && (l = 0), void 0 === u && (u = ""), void 0 === h && (h = !1); var d = e.call(this, t, "kernelBlur", ["delta", "direction", "cameraMinMaxZ"], ["circleOfConfusionSampler"], r, o, a, s, c, null, l, "kernelBlur", { varyingCount: 0, depCount: 0 }, !0) || this; return ( (d.direction = n), (d.blockCompilation = h), (d._packedFloat = !1), (d._staticDefines = ""), (d._staticDefines = u), d.onApplyObservable.add(function (e) { d._outputTexture ? e.setFloat2("delta", (1 / d._outputTexture.width) * d.direction.x, (1 / d._outputTexture.height) * d.direction.y) : e.setFloat2("delta", (1 / d.width) * d.direction.x, (1 / d.height) * d.direction.y); }), (d.kernel = i), d ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "kernel", { get: function () { return this._idealKernel; }, set: function (e) { this._idealKernel !== e && ((e = Math.max(e, 1)), (this._idealKernel = e), (this._kernel = this._nearestBestKernel(e)), this.blockCompilation || this._updateParameters()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "packedFloat", { get: function () { return this._packedFloat; }, set: function (e) { this._packedFloat !== e && ((this._packedFloat = e), this.blockCompilation || this._updateParameters()); }, enumerable: !0, configurable: !0, }), (t.prototype.updateEffect = function (e, t, n, i, r, o) { void 0 === e && (e = null), void 0 === t && (t = null), void 0 === n && (n = null), this._updateParameters(r, o); }), (t.prototype._updateParameters = function (t, n) { for (var i = this._kernel, r = (i - 1) / 2, o = [], a = [], s = 0, c = 0; c < i; c++) { var l = c / (i - 1), u = this._gaussianWeight(2 * l - 1); (o[c] = c - r), (a[c] = u), (s += u); } for (c = 0; c < a.length; c++) a[c] /= s; var h = [], d = [], p = []; for (c = 0; c <= r; c += 2) { var f = Math.min(c + 1, Math.floor(r)); if (c === f) p.push({ o: o[c], w: a[c] }); else { var m = f === r, g = a[c] + a[f] * (m ? 0.5 : 1), b = o[c] + 1 / (1 + a[c] / a[f]); 0 === b ? (p.push({ o: o[c], w: a[c] }), p.push({ o: o[c + 1], w: a[c + 1] })) : (p.push({ o: b, w: g }), p.push({ o: -b, w: g })); } } for (c = 0; c < p.length; c++) (d[c] = p[c].o), (h[c] = p[c].w); (o = d), (a = h); var _ = this.getEngine().getCaps().maxVaryingVectors, v = Math.max(_, 0) - 1, y = Math.min(o.length, v), C = ""; (C += this._staticDefines), -1 != this._staticDefines.indexOf("DOF") && ((C += "#define CENTER_WEIGHT " + this._glslFloat(a[y - 1]) + "\r\n"), y--); for (c = 0; c < y; c++) (C += "#define KERNEL_OFFSET" + c + " " + this._glslFloat(o[c]) + "\r\n"), (C += "#define KERNEL_WEIGHT" + c + " " + this._glslFloat(a[c]) + "\r\n"); var P = 0; for (c = v; c < o.length; c++) (C += "#define KERNEL_DEP_OFFSET" + P + " " + this._glslFloat(o[c]) + "\r\n"), (C += "#define KERNEL_DEP_WEIGHT" + P + " " + this._glslFloat(a[c]) + "\r\n"), P++; this.packedFloat && (C += "#define PACKEDFLOAT 1"), (this.blockCompilation = !1), e.prototype.updateEffect.call(this, C, null, null, { varyingCount: y, depCount: P }, t, n); }), (t.prototype._nearestBestKernel = function (e) { for (var t = Math.round(e), n = 0, i = [t, t - 1, t + 1, t - 2, t + 2]; n < i.length; n++) { var r = i[n]; if (r % 2 != 0 && Math.floor(r / 2) % 2 == 0 && r > 0) return Math.max(r, 3); } return Math.max(t, 3); }), (t.prototype._gaussianWeight = function (e) { var t = (-e * e) / ((1 / 3) * 2 * (1 / 3)); return (1 / (Math.sqrt(2 * Math.PI) * (1 / 3))) * Math.exp(t); }), (t.prototype._glslFloat = function (e, t) { return void 0 === t && (t = 8), e.toFixed(t).replace(/0+$/, ""); }), t ); })(Wt.a), Mr = (function (e) { function t(t, n, i, r, o, s, c) { void 0 === o && (o = 0), void 0 === s && (s = ln.a.BILINEAR_SAMPLINGMODE), void 0 === c && (c = !0); var l = e.call(this, t, n, i, r, !0, o, !1, s, c) || this; return ( (l.scene = i), (l.mirrorPlane = new Zn.a(0, 1, 0, 1)), (l._transformMatrix = a.a.Zero()), (l._mirrorMatrix = a.a.Zero()), (l._adaptiveBlurKernel = 0), (l._blurKernelX = 0), (l._blurKernelY = 0), (l._blurRatio = 1), (l.ignoreCameraViewport = !0), l._updateGammaSpace(), (l._imageProcessingConfigChangeObserver = i.imageProcessingConfiguration.onUpdateParameters.add(function () { l._updateGammaSpace; })), l.onBeforeRenderObservable.add(function () { a.a.ReflectionToRef(l.mirrorPlane, l._mirrorMatrix), (l._savedViewMatrix = i.getViewMatrix()), l._mirrorMatrix.multiplyToRef(l._savedViewMatrix, l._transformMatrix), i.setTransformMatrix(l._transformMatrix, i.getProjectionMatrix()), (i.clipPlane = l.mirrorPlane), (i.getEngine().cullBackFaces = !1), (i._mirroredCameraPosition = a.e.TransformCoordinates(i.activeCamera.globalPosition, l._mirrorMatrix)); }), l.onAfterRenderObservable.add(function () { i.setTransformMatrix(l._savedViewMatrix, i.getProjectionMatrix()), (i.getEngine().cullBackFaces = !0), (i._mirroredCameraPosition = null), (i.clipPlane = null); }), l ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "blurRatio", { get: function () { return this._blurRatio; }, set: function (e) { this._blurRatio !== e && ((this._blurRatio = e), this._preparePostProcesses()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "adaptiveBlurKernel", { set: function (e) { (this._adaptiveBlurKernel = e), this._autoComputeBlurKernel(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "blurKernel", { set: function (e) { (this.blurKernelX = e), (this.blurKernelY = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "blurKernelX", { get: function () { return this._blurKernelX; }, set: function (e) { this._blurKernelX !== e && ((this._blurKernelX = e), this._preparePostProcesses()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "blurKernelY", { get: function () { return this._blurKernelY; }, set: function (e) { this._blurKernelY !== e && ((this._blurKernelY = e), this._preparePostProcesses()); }, enumerable: !0, configurable: !0, }), (t.prototype._autoComputeBlurKernel = function () { var e = this.getScene().getEngine(), t = this.getRenderWidth() / e.getRenderWidth(), n = this.getRenderHeight() / e.getRenderHeight(); (this.blurKernelX = this._adaptiveBlurKernel * t), (this.blurKernelY = this._adaptiveBlurKernel * n); }), (t.prototype._onRatioRescale = function () { this._sizeRatio && (this.resize(this._initialSizeParameter), this._adaptiveBlurKernel || this._preparePostProcesses()), this._adaptiveBlurKernel && this._autoComputeBlurKernel(); }), (t.prototype._updateGammaSpace = function () { this.gammaSpace = !this.scene.imageProcessingConfiguration.isEnabled || !this.scene.imageProcessingConfiguration.applyByPostProcess; }), (t.prototype._preparePostProcesses = function () { if ((this.clearPostProcesses(!0), this._blurKernelX && this._blurKernelY)) { var e = this.getScene().getEngine(), t = e.getCaps().textureFloatRender ? 1 : 2; (this._blurX = new Er("horizontal blur", new a.d(1, 0), this._blurKernelX, this._blurRatio, null, ln.a.BILINEAR_SAMPLINGMODE, e, !1, t)), (this._blurX.autoClear = !1), 1 === this._blurRatio && this.samples < 2 && this._texture ? (this._blurX.inputTexture = this._texture) : (this._blurX.alwaysForcePOT = !0), (this._blurY = new Er("vertical blur", new a.d(0, 1), this._blurKernelY, this._blurRatio, null, ln.a.BILINEAR_SAMPLINGMODE, e, !1, t)), (this._blurY.autoClear = !1), (this._blurY.alwaysForcePOT = 1 !== this._blurRatio), this.addPostProcess(this._blurX), this.addPostProcess(this._blurY); } else this._blurY && (this.removePostProcess(this._blurY), this._blurY.dispose(), (this._blurY = null)), this._blurX && (this.removePostProcess(this._blurX), this._blurX.dispose(), (this._blurX = null)); }), (t.prototype.clone = function () { var e = this.getScene(); if (!e) return this; var n = this.getSize(), i = new t(this.name, n.width, e, this._renderTargetOptions.generateMipMaps, this._renderTargetOptions.type, this._renderTargetOptions.samplingMode, this._renderTargetOptions.generateDepthBuffer); return (i.hasAlpha = this.hasAlpha), (i.level = this.level), (i.mirrorPlane = this.mirrorPlane.clone()), this.renderList && (i.renderList = this.renderList.slice(0)), i; }), (t.prototype.serialize = function () { if (!this.name) return null; var t = e.prototype.serialize.call(this); return (t.mirrorPlane = this.mirrorPlane.asArray()), t; }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver); }), t ); })(mn.a); ln.a._CreateMirror = function (e, t, n, i) { return new Mr(e, t, n, i); }; var Ar = n(98), Ir = n(11), Dr = n(41), Rr = n(46), wr = n(17), Lr = " uniform vec4 vPrimaryColor;\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\nuniform vec4 vPrimaryColorShadow;\n#endif\nuniform float shadowLevel;\nuniform float alpha;\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\n#endif\n#if defined(REFLECTIONFRESNEL) || defined(OPACITYFRESNEL)\nuniform vec3 vBackgroundCenter;\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 vReflectionControl;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)\nuniform mat4 view;\n#endif"; Xt.a.IncludesShadersStore.backgroundFragmentDeclaration = Lr; var Fr = "layout(std140,column_major) uniform;\nuniform Material\n{\nuniform vec4 vPrimaryColor;\nuniform vec4 vPrimaryColorShadow;\nuniform vec2 vDiffuseInfos;\nuniform vec2 vReflectionInfos;\nuniform mat4 diffuseMatrix;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float fFovMultiplier;\nuniform float pointSize;\nuniform float shadowLevel;\nuniform float alpha;\n#if defined(REFLECTIONFRESNEL) || defined(OPACITYFRESNEL)\nuniform vec3 vBackgroundCenter;\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 vReflectionControl;\n#endif\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};"; Xt.a.IncludesShadersStore.backgroundUboDeclaration = Fr; n(171), n(60), n(61), n(105), n(99), n(86), n(87), n(82), n(100), n(90); var Nr = "#ifdef TEXTURELODSUPPORT\n#extension GL_EXT_shader_texture_lod : enable\n#endif\nprecision highp float;\n#include<__decl__backgroundFragment>\n#define RECIPROCAL_PI2 0.15915494\n\nuniform vec3 vEyePosition;\n\nvarying vec3 vPositionW;\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef DIFFUSE\n#if DIFFUSEDIRECTUV == 1\n#define vDiffuseUV vMainUV1\n#elif DIFFUSEDIRECTUV == 2\n#define vDiffuseUV vMainUV2\n#else\nvarying vec2 vDiffuseUV;\n#endif\nuniform sampler2D diffuseSampler;\n#endif\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef TEXTURELODSUPPORT\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef TEXTURELODSUPPORT\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include\n#endif\n\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE;\n#endif\n\n#ifndef SHADOWONLY\n#define SHADOWONLY;\n#endif\n#include\n\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n#include\n#include\n#include\n\n#include\n#ifdef REFLECTIONFRESNEL\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\nvec3 fresnelSchlickEnvironmentGGX(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{\n\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\n}\n#endif\nvoid main(void) {\n#include\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\n\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(0.0,1.0,0.0);\n#endif\n\nfloat shadow=1.;\nfloat globalShadow=0.;\nfloat shadowLightCount=0.;\n#include[0..maxSimultaneousLights]\n#ifdef SHADOWINUSE\nglobalShadow/=shadowLightCount;\n#else\nglobalShadow=1.0;\n#endif\n\nvec4 reflectionColor=vec4(1.,1.,1.,1.);\n#ifdef REFLECTION\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\n\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=reflectionVector;\n#else\nvec2 reflectionCoords=reflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nreflectionCoords/=reflectionVector.z;\n#endif\nreflectionCoords.y=1.0-reflectionCoords.y;\n#endif\n#ifdef REFLECTIONBLUR\nfloat reflectionLOD=vReflectionInfos.y;\n#ifdef TEXTURELODSUPPORT\n\nreflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\nreflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\n#else\nfloat lodReflectionNormalized=saturate(reflectionLOD);\nfloat lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\nvec4 reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);\nif(lodReflectionNormalizedDoubled<1.0){\nreflectionColor=mix(\nsampleReflection(reflectionSamplerHigh,reflectionCoords),\nreflectionSpecularMid,\nlodReflectionNormalizedDoubled\n);\n} else {\nreflectionColor=mix(\nreflectionSpecularMid,\nsampleReflection(reflectionSamplerLow,reflectionCoords),\nlodReflectionNormalizedDoubled-1.0\n);\n}\n#endif\n#else\nvec4 reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);\nreflectionColor=reflectionSample;\n#endif\n#ifdef RGBDREFLECTION\nreflectionColor.rgb=fromRGBD(reflectionColor);\n#endif\n#ifdef GAMMAREFLECTION\nreflectionColor.rgb=toLinearSpace(reflectionColor.rgb);\n#endif\n#ifdef REFLECTIONBGR\nreflectionColor.rgb=reflectionColor.bgr;\n#endif\n\nreflectionColor.rgb*=vReflectionInfos.x;\n#endif\n\nvec3 diffuseColor=vec3(1.,1.,1.);\nfloat finalAlpha=alpha;\n#ifdef DIFFUSE\nvec4 diffuseMap=texture2D(diffuseSampler,vDiffuseUV);\n#ifdef GAMMADIFFUSE\ndiffuseMap.rgb=toLinearSpace(diffuseMap.rgb);\n#endif\n\ndiffuseMap.rgb*=vDiffuseInfos.y;\n#ifdef DIFFUSEHASALPHA\nfinalAlpha*=diffuseMap.a;\n#endif\ndiffuseColor=diffuseMap.rgb;\n#endif\n\n#ifdef REFLECTIONFRESNEL\nvec3 colorBase=diffuseColor;\n#else\nvec3 colorBase=reflectionColor.rgb*diffuseColor;\n#endif\ncolorBase=max(colorBase,0.0);\n\n#ifdef USERGBCOLOR\nvec3 finalColor=colorBase;\n#else\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\nvec3 mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);\n#else\nvec3 mainColor=vPrimaryColor.rgb;\n#endif\nvec3 finalColor=colorBase*mainColor;\n#endif\n\n#ifdef REFLECTIONFRESNEL\nvec3 reflectionAmount=vReflectionControl.xxx;\nvec3 reflectionReflectance0=vReflectionControl.yyy;\nvec3 reflectionReflectance90=vReflectionControl.zzz;\nfloat VdotN=dot(normalize(vEyePosition),normalW);\nvec3 planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);\nreflectionAmount*=planarReflectionFresnel;\n#ifdef REFLECTIONFALLOFF\nfloat reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);\nreflectionDistanceFalloff*=reflectionDistanceFalloff;\nreflectionAmount*=reflectionDistanceFalloff;\n#endif\nfinalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));\n#endif\n#ifdef OPACITYFRESNEL\nfloat viewAngleToFloor=dot(normalW,normalize(vEyePosition-vBackgroundCenter));\n\nconst float startAngle=0.1;\nfloat fadeFactor=saturate(viewAngleToFloor/startAngle);\nfinalAlpha*=fadeFactor*fadeFactor;\n#endif\n\n#ifdef SHADOWINUSE\nfinalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);\n#endif\n\nvec4 color=vec4(finalColor,finalAlpha);\n#include\n#ifdef IMAGEPROCESSINGPOSTPROCESS\n\n\ncolor.rgb=clamp(color.rgb,0.,30.0);\n#else\n\ncolor=applyImageProcessing(color);\n#endif\n#ifdef PREMULTIPLYALPHA\n\ncolor.rgb*=color.a;\n#endif\n#ifdef NOISE\ncolor.rgb+=dither(vPositionW.xy,0.5);\ncolor=max(color,0.0);\n#endif\ngl_FragColor=color;\n}\n"; Xt.a.ShadersStore.backgroundPixelShader = Nr; var kr = "uniform mat4 view;\nuniform mat4 viewProjection;\nuniform float shadowLevel;\n#ifdef DIFFUSE\nuniform mat4 diffuseMatrix;\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float fFovMultiplier;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif"; Xt.a.IncludesShadersStore.backgroundVertexDeclaration = kr; n(70), n(71), n(88), n(91), n(72), n(73), n(83), n(93), n(101); var zr = "precision highp float;\n#include<__decl__backgroundVertex>\n#include\n\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#include\n\n#include\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nvarying vec2 vDiffuseUV;\n#endif\n#include\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\nvoid main(void) {\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=position;\n#endif\n#include\n#include\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR == 0u) {\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\n} else {\ngl_Position=viewProjectionR*finalWorld*vec4(position,1.0);\n}\n#else\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\n#endif\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normal);\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));\n#ifdef EQUIRECTANGULAR_RELFECTION_FOV\nmat3 screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));\nvec3 segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));\nif (fFovMultiplier<=1.0) {\nvDirectionW=normalize(segment);\n} else {\nvDirectionW=normalize(vDirectionW+(vDirectionW-segment));\n}\n#endif\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uv;\n#endif\n#ifdef MAINUV2\nvMainUV2=uv2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\nif (vDiffuseInfos.x == 0.)\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\n}\nelse\n{\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n}\n#endif\n\n#include\n\n#include\n\n#include[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#endif\n\n#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif\n}\n"; Xt.a.ShadersStore.backgroundVertexShader = zr; var jr = n(43), Br = (function (e) { function t() { var t = e.call(this) || this; return ( (t.DIFFUSE = !1), (t.DIFFUSEDIRECTUV = 0), (t.GAMMADIFFUSE = !1), (t.DIFFUSEHASALPHA = !1), (t.OPACITYFRESNEL = !1), (t.REFLECTIONBLUR = !1), (t.REFLECTIONFRESNEL = !1), (t.REFLECTIONFALLOFF = !1), (t.TEXTURELODSUPPORT = !1), (t.PREMULTIPLYALPHA = !1), (t.USERGBCOLOR = !1), (t.USEHIGHLIGHTANDSHADOWCOLORS = !1), (t.NOISE = !1), (t.REFLECTIONBGR = !1), (t.IMAGEPROCESSING = !1), (t.VIGNETTE = !1), (t.VIGNETTEBLENDMODEMULTIPLY = !1), (t.VIGNETTEBLENDMODEOPAQUE = !1), (t.TONEMAPPING = !1), (t.TONEMAPPING_ACES = !1), (t.CONTRAST = !1), (t.COLORCURVES = !1), (t.COLORGRADING = !1), (t.COLORGRADING3D = !1), (t.SAMPLER3DGREENDEPTH = !1), (t.SAMPLER3DBGRMAP = !1), (t.IMAGEPROCESSINGPOSTPROCESS = !1), (t.EXPOSURE = !1), (t.MULTIVIEW = !1), (t.REFLECTION = !1), (t.REFLECTIONMAP_3D = !1), (t.REFLECTIONMAP_SPHERICAL = !1), (t.REFLECTIONMAP_PLANAR = !1), (t.REFLECTIONMAP_CUBIC = !1), (t.REFLECTIONMAP_PROJECTION = !1), (t.REFLECTIONMAP_SKYBOX = !1), (t.REFLECTIONMAP_EXPLICIT = !1), (t.REFLECTIONMAP_EQUIRECTANGULAR = !1), (t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1), (t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1), (t.INVERTCUBICMAP = !1), (t.REFLECTIONMAP_OPPOSITEZ = !1), (t.LODINREFLECTIONALPHA = !1), (t.GAMMAREFLECTION = !1), (t.RGBDREFLECTION = !1), (t.EQUIRECTANGULAR_RELFECTION_FOV = !1), (t.MAINUV1 = !1), (t.MAINUV2 = !1), (t.UV1 = !1), (t.UV2 = !1), (t.CLIPPLANE = !1), (t.CLIPPLANE2 = !1), (t.CLIPPLANE3 = !1), (t.CLIPPLANE4 = !1), (t.CLIPPLANE5 = !1), (t.CLIPPLANE6 = !1), (t.POINTSIZE = !1), (t.FOG = !1), (t.NORMAL = !1), (t.NUM_BONE_INFLUENCERS = 0), (t.BonesPerMesh = 0), (t.INSTANCES = !1), (t.SHADOWFLOAT = !1), t.rebuild(), t ); } return Object(h.d)(t, e), t; })(Dr.a), Vr = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return ( (i.primaryColor = s.a.White()), (i._primaryColorShadowLevel = 0), (i._primaryColorHighlightLevel = 0), (i.reflectionTexture = null), (i.reflectionBlur = 0), (i.diffuseTexture = null), (i._shadowLights = null), (i.shadowLights = null), (i.shadowLevel = 0), (i.sceneCenter = a.e.Zero()), (i.opacityFresnel = !0), (i.reflectionFresnel = !1), (i.reflectionFalloffDistance = 0), (i.reflectionAmount = 1), (i.reflectionReflectance0 = 0.05), (i.reflectionReflectance90 = 0.5), (i.useRGBColor = !0), (i.enableNoise = !1), (i._fovMultiplier = 1), (i.useEquirectangularFOV = !1), (i._maxSimultaneousLights = 4), (i.maxSimultaneousLights = 4), (i._imageProcessingObserver = null), (i.switchToBGR = !1), (i._renderTargets = new ii.a(16)), (i._reflectionControls = a.f.Zero()), (i._white = s.a.White()), (i._primaryShadowColor = s.a.Black()), (i._primaryHighlightColor = s.a.Black()), i._attachImageProcessingConfiguration(null), (i.getRenderTargetTextures = function () { return ( i._renderTargets.reset(), i._diffuseTexture && i._diffuseTexture.isRenderTarget && i._renderTargets.push(i._diffuseTexture), i._reflectionTexture && i._reflectionTexture.isRenderTarget && i._renderTargets.push(i._reflectionTexture), i._renderTargets ); }), i ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "_perceptualColor", { get: function () { return this.__perceptualColor; }, set: function (e) { (this.__perceptualColor = e), this._computePrimaryColorFromPerceptualColor(), this._markAllSubMeshesAsLightsDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "primaryColorShadowLevel", { get: function () { return this._primaryColorShadowLevel; }, set: function (e) { (this._primaryColorShadowLevel = e), this._computePrimaryColors(), this._markAllSubMeshesAsLightsDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "primaryColorHighlightLevel", { get: function () { return this._primaryColorHighlightLevel; }, set: function (e) { (this._primaryColorHighlightLevel = e), this._computePrimaryColors(), this._markAllSubMeshesAsLightsDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "reflectionStandardFresnelWeight", { set: function (e) { var n = e; n < 0.5 ? ((n *= 2), (this.reflectionReflectance0 = t.StandardReflectance0 * n), (this.reflectionReflectance90 = t.StandardReflectance90 * n)) : ((n = 2 * n - 1), (this.reflectionReflectance0 = t.StandardReflectance0 + (1 - t.StandardReflectance0) * n), (this.reflectionReflectance90 = t.StandardReflectance90 + (1 - t.StandardReflectance90) * n)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fovMultiplier", { get: function () { return this._fovMultiplier; }, set: function (e) { isNaN(e) && (e = 1), (this._fovMultiplier = Math.max(0, Math.min(2, e))); }, enumerable: !0, configurable: !0, }), (t.prototype._attachImageProcessingConfiguration = function (e) { var t = this; e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), (this._imageProcessingConfiguration = e || this.getScene().imageProcessingConfiguration), this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () { t._computePrimaryColorFromPerceptualColor(), t._markAllSubMeshesAsImageProcessingDirty(); }))); }), Object.defineProperty(t.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, set: function (e) { this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorCurvesEnabled", { get: function () { return this.imageProcessingConfiguration.colorCurvesEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorCurvesEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorGradingEnabled", { get: function () { return this.imageProcessingConfiguration.colorGradingEnabled; }, set: function (e) { this.imageProcessingConfiguration.colorGradingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraToneMappingEnabled", { get: function () { return this._imageProcessingConfiguration.toneMappingEnabled; }, set: function (e) { this._imageProcessingConfiguration.toneMappingEnabled = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraExposure", { get: function () { return this._imageProcessingConfiguration.exposure; }, set: function (e) { this._imageProcessingConfiguration.exposure = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraContrast", { get: function () { return this._imageProcessingConfiguration.contrast; }, set: function (e) { this._imageProcessingConfiguration.contrast = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorGradingTexture", { get: function () { return this._imageProcessingConfiguration.colorGradingTexture; }, set: function (e) { this.imageProcessingConfiguration.colorGradingTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraColorCurves", { get: function () { return this.imageProcessingConfiguration.colorCurves; }, set: function (e) { this.imageProcessingConfiguration.colorCurves = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hasRenderTargetTextures", { get: function () { return !(!this._diffuseTexture || !this._diffuseTexture.isRenderTarget) || !(!this._reflectionTexture || !this._reflectionTexture.isRenderTarget); }, enumerable: !0, configurable: !0, }), (t.prototype.needAlphaTesting = function () { return !0; }), (t.prototype.needAlphaBlending = function () { return this.alpha < 0 || (null != this._diffuseTexture && this._diffuseTexture.hasAlpha); }), (t.prototype.isReadyForSubMesh = function (e, t, n) { var i = this; if ((void 0 === n && (n = !1), t.effect && this.isFrozen && t.effect._wasPreviouslyReady)) return !0; t._materialDefines || (t._materialDefines = new Br()); var r = this.getScene(), o = t._materialDefines; if (!this.checkReadyOnEveryCall && t.effect && o._renderId === r.getRenderId()) return !0; var a = r.getEngine(); if ((Ir.a.PrepareDefinesForLights(r, e, o, !1, this._maxSimultaneousLights), (o._needNormals = !0), Ir.a.PrepareDefinesForMultiview(r, o), o._areTexturesDirty)) { if (((o._needUVs = !1), r.texturesEnabled)) { if ((r.getEngine().getCaps().textureLOD && (o.TEXTURELODSUPPORT = !0), this._diffuseTexture && wr.a.DiffuseTextureEnabled)) { if (!this._diffuseTexture.isReadyOrNotBlocking()) return !1; Ir.a.PrepareDefinesForMergedUV(this._diffuseTexture, o, "DIFFUSE"), (o.DIFFUSEHASALPHA = this._diffuseTexture.hasAlpha), (o.GAMMADIFFUSE = this._diffuseTexture.gammaSpace), (o.OPACITYFRESNEL = this._opacityFresnel); } else (o.DIFFUSE = !1), (o.DIFFUSEHASALPHA = !1), (o.GAMMADIFFUSE = !1), (o.OPACITYFRESNEL = !1); var s = this._reflectionTexture; if (s && wr.a.ReflectionTextureEnabled) { if (!s.isReadyOrNotBlocking()) return !1; switch ( ((o.REFLECTION = !0), (o.GAMMAREFLECTION = s.gammaSpace), (o.RGBDREFLECTION = s.isRGBD), (o.REFLECTIONBLUR = this._reflectionBlur > 0), (o.REFLECTIONMAP_OPPOSITEZ = this.getScene().useRightHandedSystem ? !s.invertZ : s.invertZ), (o.LODINREFLECTIONALPHA = s.lodLevelInAlpha), (o.EQUIRECTANGULAR_RELFECTION_FOV = this.useEquirectangularFOV), (o.REFLECTIONBGR = this.switchToBGR), s.coordinatesMode === ln.a.INVCUBIC_MODE && (o.INVERTCUBICMAP = !0), (o.REFLECTIONMAP_3D = s.isCube), s.coordinatesMode) ) { case ln.a.EXPLICIT_MODE: o.REFLECTIONMAP_EXPLICIT = !0; break; case ln.a.PLANAR_MODE: o.REFLECTIONMAP_PLANAR = !0; break; case ln.a.PROJECTION_MODE: o.REFLECTIONMAP_PROJECTION = !0; break; case ln.a.SKYBOX_MODE: o.REFLECTIONMAP_SKYBOX = !0; break; case ln.a.SPHERICAL_MODE: o.REFLECTIONMAP_SPHERICAL = !0; break; case ln.a.EQUIRECTANGULAR_MODE: o.REFLECTIONMAP_EQUIRECTANGULAR = !0; break; case ln.a.FIXED_EQUIRECTANGULAR_MODE: o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !0; break; case ln.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE: o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !0; break; case ln.a.CUBIC_MODE: case ln.a.INVCUBIC_MODE: default: o.REFLECTIONMAP_CUBIC = !0; } this.reflectionFresnel ? ((o.REFLECTIONFRESNEL = !0), (o.REFLECTIONFALLOFF = this.reflectionFalloffDistance > 0), (this._reflectionControls.x = this.reflectionAmount), (this._reflectionControls.y = this.reflectionReflectance0), (this._reflectionControls.z = this.reflectionReflectance90), (this._reflectionControls.w = 1 / this.reflectionFalloffDistance)) : ((o.REFLECTIONFRESNEL = !1), (o.REFLECTIONFALLOFF = !1)); } else (o.REFLECTION = !1), (o.REFLECTIONFRESNEL = !1), (o.REFLECTIONFALLOFF = !1), (o.REFLECTIONBLUR = !1), (o.REFLECTIONMAP_3D = !1), (o.REFLECTIONMAP_SPHERICAL = !1), (o.REFLECTIONMAP_PLANAR = !1), (o.REFLECTIONMAP_CUBIC = !1), (o.REFLECTIONMAP_PROJECTION = !1), (o.REFLECTIONMAP_SKYBOX = !1), (o.REFLECTIONMAP_EXPLICIT = !1), (o.REFLECTIONMAP_EQUIRECTANGULAR = !1), (o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1), (o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1), (o.INVERTCUBICMAP = !1), (o.REFLECTIONMAP_OPPOSITEZ = !1), (o.LODINREFLECTIONALPHA = !1), (o.GAMMAREFLECTION = !1), (o.RGBDREFLECTION = !1); } (o.PREMULTIPLYALPHA = 7 === this.alphaMode || 8 === this.alphaMode), (o.USERGBCOLOR = this._useRGBColor), (o.NOISE = this._enableNoise); } if ( (o._areLightsDirty && (o.USEHIGHLIGHTANDSHADOWCOLORS = !this._useRGBColor && (0 !== this._primaryColorShadowLevel || 0 !== this._primaryColorHighlightLevel)), o._areImageProcessingDirty && this._imageProcessingConfiguration) ) { if (!this._imageProcessingConfiguration.isReady()) return !1; this._imageProcessingConfiguration.prepareDefines(o); } if ( (Ir.a.PrepareDefinesForMisc(e, r, !1, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e), o), Ir.a.PrepareDefinesForFrameBoundValues(r, a, o, n), Ir.a.PrepareDefinesForAttributes(e, o, !1, !0, !1) && e && (r.getEngine().getCaps().standardDerivatives || e.isVerticesDataPresent(wn.b.NormalKind) || (e.createNormals(!0), g.a.Warn("BackgroundMaterial: Normals have been created for the mesh: " + e.name))), o.isDirty) ) { o.markAsProcessed(), r.resetCachedMaterial(); var c = new jr.a(); o.FOG && c.addFallback(0, "FOG"), o.POINTSIZE && c.addFallback(1, "POINTSIZE"), o.MULTIVIEW && c.addFallback(0, "MULTIVIEW"), Ir.a.HandleFallbacksForShadows(o, c, this._maxSimultaneousLights); var l = [wn.b.PositionKind]; o.NORMAL && l.push(wn.b.NormalKind), o.UV1 && l.push(wn.b.UVKind), o.UV2 && l.push(wn.b.UV2Kind), Ir.a.PrepareAttributesForBones(l, e, o, c), Ir.a.PrepareAttributesForInstances(l, o); var u = [ "world", "view", "viewProjection", "vEyePosition", "vLightsType", "vFogInfos", "vFogColor", "pointSize", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "mBones", "vPrimaryColor", "vPrimaryColorShadow", "vReflectionInfos", "reflectionMatrix", "vReflectionMicrosurfaceInfos", "fFovMultiplier", "shadowLevel", "alpha", "vBackgroundCenter", "vReflectionControl", "vDiffuseInfos", "diffuseMatrix", ], h = ["diffuseSampler", "reflectionSampler", "reflectionSamplerLow", "reflectionSamplerHigh"], d = ["Material", "Scene"]; En.a && (En.a.PrepareUniforms(u, o), En.a.PrepareSamplers(h, o)), Ir.a.PrepareUniformsAndSamplersList({ uniformsNames: u, uniformBuffersNames: d, samplers: h, defines: o, maxSimultaneousLights: this._maxSimultaneousLights }); var p = o.toString(); t.setEffect( r.getEngine().createEffect( "background", { attributes: l, uniformsNames: u, uniformBuffersNames: d, samplers: h, defines: p, fallbacks: c, onCompiled: function (e) { i.onCompiled && i.onCompiled(e), i.bindSceneUniformBuffer(e, r.getSceneUniformBuffer()); }, onError: this.onError, indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights }, }, a ), o ), this.buildUniformLayout(); } return !(!t.effect || !t.effect.isReady()) && ((o._renderId = r.getRenderId()), (t.effect._wasPreviouslyReady = !0), !0); }), (t.prototype._computePrimaryColorFromPerceptualColor = function () { this.__perceptualColor && (this._primaryColor.copyFrom(this.__perceptualColor), this._primaryColor.toLinearSpaceToRef(this._primaryColor), this._imageProcessingConfiguration && this._primaryColor.scaleToRef(1 / this._imageProcessingConfiguration.exposure, this._primaryColor), this._computePrimaryColors()); }), (t.prototype._computePrimaryColors = function () { (0 === this._primaryColorShadowLevel && 0 === this._primaryColorHighlightLevel) || (this._primaryColor.scaleToRef(this._primaryColorShadowLevel, this._primaryShadowColor), this._primaryColor.subtractToRef(this._primaryShadowColor, this._primaryShadowColor), this._white.subtractToRef(this._primaryColor, this._primaryHighlightColor), this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel, this._primaryHighlightColor), this._primaryColor.addToRef(this._primaryHighlightColor, this._primaryHighlightColor)); }), (t.prototype.buildUniformLayout = function () { this._uniformBuffer.addUniform("vPrimaryColor", 4), this._uniformBuffer.addUniform("vPrimaryColorShadow", 4), this._uniformBuffer.addUniform("vDiffuseInfos", 2), this._uniformBuffer.addUniform("vReflectionInfos", 2), this._uniformBuffer.addUniform("diffuseMatrix", 16), this._uniformBuffer.addUniform("reflectionMatrix", 16), this._uniformBuffer.addUniform("vReflectionMicrosurfaceInfos", 3), this._uniformBuffer.addUniform("fFovMultiplier", 1), this._uniformBuffer.addUniform("pointSize", 1), this._uniformBuffer.addUniform("shadowLevel", 1), this._uniformBuffer.addUniform("alpha", 1), this._uniformBuffer.addUniform("vBackgroundCenter", 3), this._uniformBuffer.addUniform("vReflectionControl", 4), this._uniformBuffer.create(); }), (t.prototype.unbind = function () { this._diffuseTexture && this._diffuseTexture.isRenderTarget && this._uniformBuffer.setTexture("diffuseSampler", null), this._reflectionTexture && this._reflectionTexture.isRenderTarget && this._uniformBuffer.setTexture("reflectionSampler", null), e.prototype.unbind.call(this); }), (t.prototype.bindOnlyWorldMatrix = function (e) { this._activeEffect.setMatrix("world", e); }), (t.prototype.bindForSubMesh = function (e, t, n) { var i = this.getScene(), r = n._materialDefines; if (r) { var o = n.effect; if (o) { (this._activeEffect = o), this.bindOnlyWorldMatrix(e), Ir.a.BindBonesParameters(t, this._activeEffect); var a = this._mustRebind(i, o, t.visibility); if (a) { this._uniformBuffer.bindToEffect(o, "Material"), this.bindViewProjection(o); var s = this._reflectionTexture; (this._uniformBuffer.useUbo && this.isFrozen && this._uniformBuffer.isSync) || (i.texturesEnabled && (this._diffuseTexture && wr.a.DiffuseTextureEnabled && (this._uniformBuffer.updateFloat2("vDiffuseInfos", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level), Ir.a.BindTextureMatrix(this._diffuseTexture, this._uniformBuffer, "diffuse")), s && wr.a.ReflectionTextureEnabled && (this._uniformBuffer.updateMatrix("reflectionMatrix", s.getReflectionTextureMatrix()), this._uniformBuffer.updateFloat2("vReflectionInfos", s.level, this._reflectionBlur), this._uniformBuffer.updateFloat3("vReflectionMicrosurfaceInfos", s.getSize().width, s.lodGenerationScale, s.lodGenerationOffset))), this.shadowLevel > 0 && this._uniformBuffer.updateFloat("shadowLevel", this.shadowLevel), this._uniformBuffer.updateFloat("alpha", this.alpha), this.pointsCloud && this._uniformBuffer.updateFloat("pointSize", this.pointSize), r.USEHIGHLIGHTANDSHADOWCOLORS ? (this._uniformBuffer.updateColor4("vPrimaryColor", this._primaryHighlightColor, 1), this._uniformBuffer.updateColor4("vPrimaryColorShadow", this._primaryShadowColor, 1)) : this._uniformBuffer.updateColor4("vPrimaryColor", this._primaryColor, 1)), this._uniformBuffer.updateFloat("fFovMultiplier", this._fovMultiplier), i.texturesEnabled && (this._diffuseTexture && wr.a.DiffuseTextureEnabled && this._uniformBuffer.setTexture("diffuseSampler", this._diffuseTexture), s && wr.a.ReflectionTextureEnabled && (r.REFLECTIONBLUR && r.TEXTURELODSUPPORT ? this._uniformBuffer.setTexture("reflectionSampler", s) : r.REFLECTIONBLUR ? (this._uniformBuffer.setTexture("reflectionSampler", s._lodTextureMid || s), this._uniformBuffer.setTexture("reflectionSamplerLow", s._lodTextureLow || s), this._uniformBuffer.setTexture("reflectionSamplerHigh", s._lodTextureHigh || s)) : this._uniformBuffer.setTexture("reflectionSampler", s), r.REFLECTIONFRESNEL && (this._uniformBuffer.updateFloat3("vBackgroundCenter", this.sceneCenter.x, this.sceneCenter.y, this.sceneCenter.z), this._uniformBuffer.updateFloat4("vReflectionControl", this._reflectionControls.x, this._reflectionControls.y, this._reflectionControls.z, this._reflectionControls.w)))), Ir.a.BindClipPlane(this._activeEffect, i), Ir.a.BindEyePosition(o, i); } (!a && this.isFrozen) || (i.lightsEnabled && Ir.a.BindLights(i, t, this._activeEffect, r, this._maxSimultaneousLights, !1), this.bindView(o), Ir.a.BindFogParameters(i, t, this._activeEffect, !0), this._imageProcessingConfiguration && this._imageProcessingConfiguration.bind(this._activeEffect)), this._uniformBuffer.update(), this._afterBind(t, this._activeEffect); } } }), (t.prototype.hasTexture = function (t) { return !!e.prototype.hasTexture.call(this, t) || this._reflectionTexture === t || this._diffuseTexture === t; }), (t.prototype.dispose = function (t, n) { void 0 === t && (t = !1), void 0 === n && (n = !1), n && (this.diffuseTexture && this.diffuseTexture.dispose(), this.reflectionTexture && this.reflectionTexture.dispose()), this._renderTargets.dispose(), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e.prototype.dispose.call(this, t); }), (t.prototype.clone = function (e) { var n = this; return He.a.Clone(function () { return new t(e, n.getScene()); }, this); }), (t.prototype.serialize = function () { var e = He.a.Serialize(this); return (e.customType = "BABYLON.BackgroundMaterial"), e; }), (t.prototype.getClassName = function () { return "BackgroundMaterial"; }), (t.Parse = function (e, n, i) { return He.a.Parse( function () { return new t(e.name, n); }, e, n, i ); }), (t.StandardReflectance0 = 0.05), (t.StandardReflectance90 = 0.5), Object(h.c)([Object(He.e)()], t.prototype, "_primaryColor", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "primaryColor", void 0), Object(h.c)([Object(He.e)()], t.prototype, "__perceptualColor", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_primaryColorShadowLevel", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_primaryColorHighlightLevel", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "primaryColorHighlightLevel", null), Object(h.c)([Object(He.m)()], t.prototype, "_reflectionTexture", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionTexture", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_reflectionBlur", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionBlur", void 0), Object(h.c)([Object(He.m)()], t.prototype, "_diffuseTexture", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "diffuseTexture", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "shadowLights", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_shadowLevel", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "shadowLevel", void 0), Object(h.c)([Object(He.o)()], t.prototype, "_sceneCenter", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "sceneCenter", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_opacityFresnel", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "opacityFresnel", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_reflectionFresnel", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionFresnel", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_reflectionFalloffDistance", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionFalloffDistance", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_reflectionAmount", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionAmount", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_reflectionReflectance0", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionReflectance0", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_reflectionReflectance90", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "reflectionReflectance90", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_useRGBColor", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useRGBColor", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_enableNoise", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "enableNoise", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_maxSimultaneousLights", void 0), Object(h.c)([Object(He.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "maxSimultaneousLights", void 0), Object(h.c)([Object(He.i)()], t.prototype, "_imageProcessingConfiguration", void 0), t ); })(Rr.a); c.a.RegisteredTypes["BABYLON.BackgroundMaterial"] = Vr; var Gr = (function () { function e(t, n) { var i = this; (this._errorHandler = function (e, t) { i.onErrorObservable.notifyObservers({ message: e, exception: t }); }), (this._options = Object(h.a)(Object(h.a)({}, e._getDefaultOptions()), t)), (this._scene = n), (this.onErrorObservable = new o.c()), this._setupBackground(), this._setupImageProcessing(); } return ( (e._getDefaultOptions = function () { return { createGround: !0, groundSize: 15, groundTexture: this._groundTextureCDNUrl, groundColor: new s.a(0.2, 0.2, 0.3).toLinearSpace().scale(3), groundOpacity: 0.9, enableGroundShadow: !0, groundShadowLevel: 0.5, enableGroundMirror: !1, groundMirrorSizeRatio: 0.3, groundMirrorBlurKernel: 64, groundMirrorAmount: 1, groundMirrorFresnelWeight: 1, groundMirrorFallOffDistance: 0, groundMirrorTextureType: 0, groundYBias: 1e-5, createSkybox: !0, skyboxSize: 20, skyboxTexture: this._skyboxTextureCDNUrl, skyboxColor: new s.a(0.2, 0.2, 0.3).toLinearSpace().scale(3), backgroundYRotation: 0, sizeAuto: !0, rootPosition: a.e.Zero(), setupImageProcessing: !0, environmentTexture: this._environmentTextureCDNUrl, cameraExposure: 0.8, cameraContrast: 1.2, toneMappingEnabled: !0, }; }), Object.defineProperty(e.prototype, "rootMesh", { get: function () { return this._rootMesh; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "skybox", { get: function () { return this._skybox; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "skyboxTexture", { get: function () { return this._skyboxTexture; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "skyboxMaterial", { get: function () { return this._skyboxMaterial; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "ground", { get: function () { return this._ground; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "groundTexture", { get: function () { return this._groundTexture; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "groundMirror", { get: function () { return this._groundMirror; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "groundMirrorRenderList", { get: function () { return this._groundMirror ? this._groundMirror.renderList : null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "groundMaterial", { get: function () { return this._groundMaterial; }, enumerable: !0, configurable: !0, }), (e.prototype.updateOptions = function (e) { var t = Object(h.a)(Object(h.a)({}, this._options), e); this._ground && !t.createGround && (this._ground.dispose(), (this._ground = null)), this._groundMaterial && !t.createGround && (this._groundMaterial.dispose(), (this._groundMaterial = null)), this._groundTexture && this._options.groundTexture != t.groundTexture && (this._groundTexture.dispose(), (this._groundTexture = null)), this._skybox && !t.createSkybox && (this._skybox.dispose(), (this._skybox = null)), this._skyboxMaterial && !t.createSkybox && (this._skyboxMaterial.dispose(), (this._skyboxMaterial = null)), this._skyboxTexture && this._options.skyboxTexture != t.skyboxTexture && (this._skyboxTexture.dispose(), (this._skyboxTexture = null)), this._groundMirror && !t.enableGroundMirror && (this._groundMirror.dispose(), (this._groundMirror = null)), this._scene.environmentTexture && this._options.environmentTexture != t.environmentTexture && this._scene.environmentTexture.dispose(), (this._options = t), this._setupBackground(), this._setupImageProcessing(); }), (e.prototype.setMainColor = function (e) { this.groundMaterial && (this.groundMaterial.primaryColor = e), this.skyboxMaterial && (this.skyboxMaterial.primaryColor = e), this.groundMirror && (this.groundMirror.clearColor = new s.b(e.r, e.g, e.b, 1)); }), (e.prototype._setupImageProcessing = function () { this._options.setupImageProcessing && ((this._scene.imageProcessingConfiguration.contrast = this._options.cameraContrast), (this._scene.imageProcessingConfiguration.exposure = this._options.cameraExposure), (this._scene.imageProcessingConfiguration.toneMappingEnabled = this._options.toneMappingEnabled), this._setupEnvironmentTexture()); }), (e.prototype._setupEnvironmentTexture = function () { if (!this._scene.environmentTexture) if (this._options.environmentTexture instanceof Cr.a) this._scene.environmentTexture = this._options.environmentTexture; else { var e = Ar.a.CreateFromPrefilteredData(this._options.environmentTexture, this._scene); this._scene.environmentTexture = e; } }), (e.prototype._setupBackground = function () { this._rootMesh || (this._rootMesh = new Ee.a("BackgroundHelper", this._scene)), (this._rootMesh.rotation.y = this._options.backgroundYRotation); var e = this._getSceneSize(); this._options.createGround && (this._setupGround(e), this._setupGroundMaterial(), this._setupGroundDiffuseTexture(), this._options.enableGroundMirror && this._setupGroundMirrorTexture(e), this._setupMirrorInGroundMaterial()), this._options.createSkybox && (this._setupSkybox(e), this._setupSkyboxMaterial(), this._setupSkyboxReflectionTexture()), (this._rootMesh.position.x = e.rootPosition.x), (this._rootMesh.position.z = e.rootPosition.z), (this._rootMesh.position.y = e.rootPosition.y); }), (e.prototype._getSceneSize = function () { var e = this, t = this._options.groundSize, n = this._options.skyboxSize, i = this._options.rootPosition; if (!this._scene.meshes || 1 === this._scene.meshes.length) return { groundSize: t, skyboxSize: n, rootPosition: i }; var r = this._scene.getWorldExtends(function (t) { return t !== e._ground && t !== e._rootMesh && t !== e._skybox; }), o = r.max.subtract(r.min); if (this._options.sizeAuto) { this._scene.activeCamera instanceof xt && this._scene.activeCamera.upperRadiusLimit && (n = t = 2 * this._scene.activeCamera.upperRadiusLimit); var a = o.length(); a > t && (n = t = 2 * a), (t *= 1.1), (n *= 1.5), ((i = r.min.add(o.scale(0.5))).y = r.min.y - this._options.groundYBias); } return { groundSize: t, skyboxSize: n, rootPosition: i }; }), (e.prototype._setupGround = function (e) { var t = this; (this._ground && !this._ground.isDisposed()) || ((this._ground = Ee.a.CreatePlane("BackgroundPlane", e.groundSize, this._scene)), (this._ground.rotation.x = Math.PI / 2), (this._ground.parent = this._rootMesh), this._ground.onDisposeObservable.add(function () { t._ground = null; })), (this._ground.receiveShadows = this._options.enableGroundShadow); }), (e.prototype._setupGroundMaterial = function () { this._groundMaterial || (this._groundMaterial = new Vr("BackgroundPlaneMaterial", this._scene)), (this._groundMaterial.alpha = this._options.groundOpacity), (this._groundMaterial.alphaMode = 8), (this._groundMaterial.shadowLevel = this._options.groundShadowLevel), (this._groundMaterial.primaryColor = this._options.groundColor), (this._groundMaterial.useRGBColor = !1), (this._groundMaterial.enableNoise = !0), this._ground && (this._ground.material = this._groundMaterial); }), (e.prototype._setupGroundDiffuseTexture = function () { if (this._groundMaterial && !this._groundTexture) if (this._options.groundTexture instanceof Cr.a) this._groundMaterial.diffuseTexture = this._options.groundTexture; else { var e = new ln.a(this._options.groundTexture, this._scene, void 0, void 0, void 0, void 0, this._errorHandler); (e.gammaSpace = !1), (e.hasAlpha = !0), (this._groundMaterial.diffuseTexture = e); } }), (e.prototype._setupGroundMirrorTexture = function (e) { var t = ln.a.CLAMP_ADDRESSMODE; if ( !this._groundMirror && ((this._groundMirror = new Mr("BackgroundPlaneMirrorTexture", { ratio: this._options.groundMirrorSizeRatio }, this._scene, !1, this._options.groundMirrorTextureType, ln.a.BILINEAR_SAMPLINGMODE, !0)), (this._groundMirror.mirrorPlane = new Zn.a(0, -1, 0, e.rootPosition.y)), (this._groundMirror.anisotropicFilteringLevel = 1), (this._groundMirror.wrapU = t), (this._groundMirror.wrapV = t), (this._groundMirror.gammaSpace = !1), this._groundMirror.renderList) ) for (var n = 0; n < this._scene.meshes.length; n++) { var i = this._scene.meshes[n]; i !== this._ground && i !== this._skybox && i !== this._rootMesh && this._groundMirror.renderList.push(i); } (this._groundMirror.clearColor = new s.b(this._options.groundColor.r, this._options.groundColor.g, this._options.groundColor.b, 1)), (this._groundMirror.adaptiveBlurKernel = this._options.groundMirrorBlurKernel); }), (e.prototype._setupMirrorInGroundMaterial = function () { this._groundMaterial && ((this._groundMaterial.reflectionTexture = this._groundMirror), (this._groundMaterial.reflectionFresnel = !0), (this._groundMaterial.reflectionAmount = this._options.groundMirrorAmount), (this._groundMaterial.reflectionStandardFresnelWeight = this._options.groundMirrorFresnelWeight), (this._groundMaterial.reflectionFalloffDistance = this._options.groundMirrorFallOffDistance)); }), (e.prototype._setupSkybox = function (e) { var t = this; (this._skybox && !this._skybox.isDisposed()) || ((this._skybox = Ee.a.CreateBox("BackgroundSkybox", e.skyboxSize, this._scene, void 0, Ee.a.BACKSIDE)), this._skybox.onDisposeObservable.add(function () { t._skybox = null; })), (this._skybox.parent = this._rootMesh); }), (e.prototype._setupSkyboxMaterial = function () { this._skybox && (this._skyboxMaterial || (this._skyboxMaterial = new Vr("BackgroundSkyboxMaterial", this._scene)), (this._skyboxMaterial.useRGBColor = !1), (this._skyboxMaterial.primaryColor = this._options.skyboxColor), (this._skyboxMaterial.enableNoise = !0), (this._skybox.material = this._skyboxMaterial)); }), (e.prototype._setupSkyboxReflectionTexture = function () { this._skyboxMaterial && (this._skyboxTexture || (this._options.skyboxTexture instanceof Cr.a ? (this._skyboxMaterial.reflectionTexture = this._options.skyboxTexture) : ((this._skyboxTexture = new Ar.a(this._options.skyboxTexture, this._scene, void 0, void 0, void 0, void 0, this._errorHandler)), (this._skyboxTexture.coordinatesMode = ln.a.SKYBOX_MODE), (this._skyboxTexture.gammaSpace = !1), (this._skyboxMaterial.reflectionTexture = this._skyboxTexture)))); }), (e.prototype.dispose = function () { this._groundMaterial && this._groundMaterial.dispose(!0, !0), this._skyboxMaterial && this._skyboxMaterial.dispose(!0, !0), this._rootMesh.dispose(!1); }), (e._groundTextureCDNUrl = "https://assets.babylonjs.com/environments/backgroundGround.png"), (e._skyboxTextureCDNUrl = "https://assets.babylonjs.com/environments/backgroundSkybox.dds"), (e._environmentTextureCDNUrl = "https://assets.babylonjs.com/environments/environmentSpecular.env"), e ); })(), Ur = (function (e) { function t(n, i, r, s, c) { void 0 === c && (c = null); var l = e.call(this, n, s) || this; (l._useDirectMapping = !1), (l.onLoadErrorObservable = new o.c()), (l._imageMode = t.MODE_MONOSCOPIC), (l._onBeforeCameraRenderObserver = null), (n = n || "photoDome"), (r.resolution = 0 | Math.abs(r.resolution) || 32), (r.size = Math.abs(r.size) || (s.activeCamera ? 0.48 * s.activeCamera.maxZ : 1e3)), void 0 === r.useDirectMapping ? (l._useDirectMapping = !0) : (l._useDirectMapping = r.useDirectMapping), void 0 === r.faceForward && (r.faceForward = !0), l._setReady(!1); var u = (l._material = new Vr(n + "_material", s)); if ( ((l._mesh = Ee.a.CreateSphere(n + "_mesh", r.resolution, r.size, s, !1, Ee.a.BACKSIDE)), (u.opacityFresnel = !1), (u.useEquirectangularFOV = !0), (u.fovMultiplier = 1), (l.photoTexture = new ln.a(i, s, !0, !l._useDirectMapping, void 0, void 0, function (e, t) { l.onLoadErrorObservable.notifyObservers(e || "Unknown error occured"), c && c(e, t); })), (l.photoTexture.anisotropicFilteringLevel = 1), l.photoTexture.onLoadObservable.addOnce(function () { l._setReady(!0); }), (l._mesh.material = u), (l._mesh.parent = l), r.faceForward && s.activeCamera) ) { var h = s.activeCamera, d = a.e.Forward(), p = a.e.TransformNormal(d, h.getViewMatrix()); p.normalize(), (l.rotation.y = Math.acos(a.e.Dot(d, p))); } return l; } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "photoTexture", { get: function () { return this._photoTexture; }, set: function (e) { this._photoTexture !== e && ((this._photoTexture = e), this._useDirectMapping ? ((this._photoTexture.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._photoTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._material.diffuseTexture = this._photoTexture)) : ((this._photoTexture.coordinatesMode = ln.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE), (this._photoTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._material.reflectionTexture = this._photoTexture))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "mesh", { get: function () { return this._mesh; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fovMultiplier", { get: function () { return this._material.fovMultiplier; }, set: function (e) { this._material.fovMultiplier = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "imageMode", { get: function () { return this._imageMode; }, set: function (e) { this._imageMode !== e && this._changeImageMode(e); }, enumerable: !0, configurable: !0, }), (t.prototype._changeImageMode = function (e) { var n = this; switch ( (this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), (this._imageMode = e), (this._photoTexture.uScale = 1), (this._photoTexture.vScale = 1), (this._photoTexture.uOffset = 0), (this._photoTexture.vOffset = 0), e) ) { case t.MODE_SIDEBYSIDE: (this._photoTexture.uScale = 0.5), (this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) { n._photoTexture.uOffset = e.isRightCamera ? 0.5 : 0; })); break; case t.MODE_TOPBOTTOM: (this._photoTexture.vScale = 0.5), (this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) { n._photoTexture.vOffset = e.isRightCamera ? 0.5 : 0; })); } }), (t.prototype.dispose = function (t, n) { void 0 === n && (n = !1), this._photoTexture.dispose(), this._mesh.dispose(), this._material.dispose(), this.onLoadErrorObservable.clear(), this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), e.prototype.dispose.call(this, t, n); }), (t.MODE_MONOSCOPIC = 0), (t.MODE_TOPBOTTOM = 1), (t.MODE_SIDEBYSIDE = 2), t ); })(si.a), Hr = n(49), Wr = n(108), Xr = n(145); n(230); function Yr(e) { return e.charCodeAt(0) + (e.charCodeAt(1) << 8) + (e.charCodeAt(2) << 16) + (e.charCodeAt(3) << 24); } var Kr = Yr("DXT1"), Zr = Yr("DXT3"), qr = Yr("DXT5"), Qr = Yr("DX10"), Jr = (function () { function e() {} return ( (e.GetDDSInfo = function (e) { var t = new Int32Array(e.buffer, e.byteOffset, 31), n = new Int32Array(e.buffer, e.byteOffset, 35), i = 1; 131072 & t[2] && (i = Math.max(1, t[7])); var r = t[21], o = r === Qr ? n[32] : 0, a = 0; switch (r) { case 113: a = 2; break; case 116: a = 1; break; case Qr: if (10 === o) { a = 2; break; } if (2 === o) { a = 1; break; } } return { width: t[4], height: t[3], mipmapCount: i, isFourCC: 4 == (4 & t[20]), isRGB: 64 == (64 & t[20]), isLuminance: 131072 == (131072 & t[20]), isCube: 512 == (512 & t[28]), isCompressed: r === Kr || r === Zr || r === qr, dxgiFormat: o, textureType: a, }; }), (e._ToHalfFloat = function (t) { e._FloatView || ((e._FloatView = new Float32Array(1)), (e._Int32View = new Int32Array(e._FloatView.buffer))), (e._FloatView[0] = t); var n = e._Int32View[0], i = (n >> 16) & 32768, r = (n >> 12) & 2047, o = (n >> 23) & 255; return o < 103 ? i : o > 142 ? ((i |= 31744), (i |= (255 == o ? 0 : 1) && 8388607 & n)) : o < 113 ? (i |= ((r |= 2048) >> (114 - o)) + ((r >> (113 - o)) & 1)) : ((i |= ((o - 112) << 10) | (r >> 1)), (i += 1 & r)); }), (e._FromHalfFloat = function (e) { var t = (32768 & e) >> 15, n = (31744 & e) >> 10, i = 1023 & e; return 0 === n ? (t ? -1 : 1) * Math.pow(2, -14) * (i / Math.pow(2, 10)) : 31 == n ? (i ? NaN : (1 / 0) * (t ? -1 : 1)) : (t ? -1 : 1) * Math.pow(2, n - 15) * (1 + i / Math.pow(2, 10)); }), (e._GetHalfFloatAsFloatRGBAArrayBuffer = function (t, n, i, r, o, a) { for (var s = new Float32Array(r), c = new Uint16Array(o, i), l = 0, u = 0; u < n; u++) for (var h = 0; h < t; h++) { var d = 4 * (h + u * t); (s[l] = e._FromHalfFloat(c[d])), (s[l + 1] = e._FromHalfFloat(c[d + 1])), (s[l + 2] = e._FromHalfFloat(c[d + 2])), e.StoreLODInAlphaChannel ? (s[l + 3] = a) : (s[l + 3] = e._FromHalfFloat(c[d + 3])), (l += 4); } return s; }), (e._GetHalfFloatRGBAArrayBuffer = function (t, n, i, r, o, a) { if (e.StoreLODInAlphaChannel) { for (var s = new Uint16Array(r), c = new Uint16Array(o, i), l = 0, u = 0; u < n; u++) for (var h = 0; h < t; h++) { var d = 4 * (h + u * t); (s[l] = c[d]), (s[l + 1] = c[d + 1]), (s[l + 2] = c[d + 2]), (s[l + 3] = e._ToHalfFloat(a)), (l += 4); } return s; } return new Uint16Array(o, i, r); }), (e._GetFloatRGBAArrayBuffer = function (t, n, i, r, o, a) { if (e.StoreLODInAlphaChannel) { for (var s = new Float32Array(r), c = new Float32Array(o, i), l = 0, u = 0; u < n; u++) for (var h = 0; h < t; h++) { var d = 4 * (h + u * t); (s[l] = c[d]), (s[l + 1] = c[d + 1]), (s[l + 2] = c[d + 2]), (s[l + 3] = a), (l += 4); } return s; } return new Float32Array(o, i, r); }), (e._GetFloatAsUIntRGBAArrayBuffer = function (t, n, i, r, o, a) { for (var s = new Uint8Array(r), c = new Float32Array(o, i), l = 0, u = 0; u < n; u++) for (var h = 0; h < t; h++) { var d = 4 * (h + u * t); (s[l] = 255 * z.a.Clamp(c[d])), (s[l + 1] = 255 * z.a.Clamp(c[d + 1])), (s[l + 2] = 255 * z.a.Clamp(c[d + 2])), e.StoreLODInAlphaChannel ? (s[l + 3] = a) : (s[l + 3] = 255 * z.a.Clamp(c[d + 3])), (l += 4); } return s; }), (e._GetHalfFloatAsUIntRGBAArrayBuffer = function (t, n, i, r, o, a) { for (var s = new Uint8Array(r), c = new Uint16Array(o, i), l = 0, u = 0; u < n; u++) for (var h = 0; h < t; h++) { var d = 4 * (h + u * t); (s[l] = 255 * z.a.Clamp(e._FromHalfFloat(c[d]))), (s[l + 1] = 255 * z.a.Clamp(e._FromHalfFloat(c[d + 1]))), (s[l + 2] = 255 * z.a.Clamp(e._FromHalfFloat(c[d + 2]))), e.StoreLODInAlphaChannel ? (s[l + 3] = a) : (s[l + 3] = 255 * z.a.Clamp(e._FromHalfFloat(c[d + 3]))), (l += 4); } return s; }), (e._GetRGBAArrayBuffer = function (e, t, n, i, r, o, a, s, c) { for (var l = new Uint8Array(i), u = new Uint8Array(r, n), h = 0, d = 0; d < t; d++) for (var p = 0; p < e; p++) { var f = 4 * (p + d * e); (l[h] = u[f + o]), (l[h + 1] = u[f + a]), (l[h + 2] = u[f + s]), (l[h + 3] = u[f + c]), (h += 4); } return l; }), (e._ExtractLongWordOrder = function (t) { return 0 === t || 255 === t || -16777216 === t ? 0 : 1 + e._ExtractLongWordOrder(t >> 8); }), (e._GetRGBArrayBuffer = function (e, t, n, i, r, o, a, s) { for (var c = new Uint8Array(i), l = new Uint8Array(r, n), u = 0, h = 0; h < t; h++) for (var d = 0; d < e; d++) { var p = 3 * (d + h * e); (c[u] = l[p + o]), (c[u + 1] = l[p + a]), (c[u + 2] = l[p + s]), (u += 3); } return c; }), (e._GetLuminanceArrayBuffer = function (e, t, n, i, r) { for (var o = new Uint8Array(i), a = new Uint8Array(r, n), s = 0, c = 0; c < t; c++) for (var l = 0; l < e; l++) { var u = l + c * e; (o[s] = a[u]), s++; } return o; }), (e.UploadDDSLevels = function (t, n, i, r, o, a, s, c) { void 0 === s && (s = -1); var l = null; r.sphericalPolynomial && (l = new Array()); var u, h, d, p, f, m, b = t.getCaps().s3tc, _ = new Int32Array(i.buffer, i.byteOffset, 31), v = 0, y = 0, C = 1; if (542327876 === _[0]) if (r.isFourCC || r.isRGB || r.isLuminance) if (!r.isCompressed || b) { var P = _[22]; d = _[1] + 4; var x = !1; if (r.isFourCC) switch (_[21]) { case Kr: (C = 8), (y = b.COMPRESSED_RGBA_S3TC_DXT1_EXT); break; case Zr: (C = 16), (y = b.COMPRESSED_RGBA_S3TC_DXT3_EXT); break; case qr: (C = 16), (y = b.COMPRESSED_RGBA_S3TC_DXT5_EXT); break; case 113: case 116: x = !0; break; case Qr: d += 20; var T = !1; switch (r.dxgiFormat) { case 10: case 2: (x = !0), (T = !0); break; case 88: (r.isRGB = !0), (r.isFourCC = !1), (P = 32), (T = !0); } if (T) break; default: return; } var S = e._ExtractLongWordOrder(_[23]), O = e._ExtractLongWordOrder(_[24]), E = e._ExtractLongWordOrder(_[25]), M = e._ExtractLongWordOrder(_[26]); x && (y = t._getRGBABufferInternalSizedFormat(r.textureType)), (f = 1), 131072 & _[2] && !1 !== o && (f = Math.max(1, _[7])); for (var A = c || 0; A < a; A++) { for (u = _[4], h = _[3], m = 0; m < f; ++m) { if (-1 === s || s === m) { var I = -1 === s ? m : 0; if (!r.isCompressed && r.isFourCC) { (n.format = 5), (v = u * h * 4); var D = null; t._badOS || t._badDesktopOS || (!t.getCaps().textureHalfFloat && !t.getCaps().textureFloat) ? (128 === P ? ((D = e._GetFloatAsUIntRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(e._GetFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I))) : 64 === P && ((D = e._GetHalfFloatAsUIntRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(e._GetHalfFloatAsFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I))), (n.type = 0)) : 128 === P ? ((n.type = 1), (D = e._GetFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(D)) : 64 !== P || t.getCaps().textureHalfFloat ? ((n.type = 2), (D = e._GetHalfFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(e._GetHalfFloatAsFloatRGBAArrayBuffer(u, h, d, v, i.buffer, I))) : ((n.type = 1), (D = e._GetHalfFloatAsFloatRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, I)), l && 0 == I && l.push(D)), D && t._uploadDataToTextureDirectly(n, D, A, I); } else if (r.isRGB) (n.type = 0), 24 === P ? ((n.format = 4), (v = u * h * 3), (p = e._GetRGBArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, S, O, E)), t._uploadDataToTextureDirectly(n, p, A, I)) : ((n.format = 5), (v = u * h * 4), (p = e._GetRGBAArrayBuffer(u, h, i.byteOffset + d, v, i.buffer, S, O, E, M)), t._uploadDataToTextureDirectly(n, p, A, I)); else if (r.isLuminance) { var R = t._getUnpackAlignement(), w = u; (v = Math.floor((u + R - 1) / R) * R * (h - 1) + w), (p = e._GetLuminanceArrayBuffer(u, h, i.byteOffset + d, v, i.buffer)), (n.format = 1), (n.type = 0), t._uploadDataToTextureDirectly(n, p, A, I); } else (v = (((Math.max(4, u) / 4) * Math.max(4, h)) / 4) * C), (p = new Uint8Array(i.buffer, i.byteOffset + d, v)), (n.type = 0), t._uploadCompressedDataToTextureDirectly(n, y, u, h, p, A, I); } (d += P ? u * h * (P / 8) : v), (u *= 0.5), (h *= 0.5), (u = Math.max(1, u)), (h = Math.max(1, h)); } if (void 0 !== c) break; } l && l.length > 0 ? (r.sphericalPolynomial = Xr.a.ConvertCubeMapToSphericalPolynomial({ size: _[4], right: l[0], left: l[1], up: l[2], down: l[3], front: l[4], back: l[5], format: 5, type: 1, gammaSpace: !1 })) : (r.sphericalPolynomial = void 0); } else g.a.Error("Compressed textures are not supported on this platform."); else g.a.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code"); else g.a.Error("Invalid magic number in DDS header"); }), (e.StoreLODInAlphaChannel = !1), e ); })(); Mi.a.prototype.createPrefilteredCubeTexture = function (e, t, n, i, r, o, a, s, c) { var l = this; void 0 === r && (r = null), void 0 === o && (o = null), void 0 === s && (s = null), void 0 === c && (c = !0); return this.createCubeTexture( e, t, null, !1, function (e) { if (e) { var o = e.texture; if ((c ? e.info.sphericalPolynomial && (o._sphericalPolynomial = e.info.sphericalPolynomial) : (o._sphericalPolynomial = new Wr.b()), (o._source = pn.b.CubePrefiltered), l.getCaps().textureLOD)) r && r(o); else { var a = l._gl, s = e.width; if (s) { for (var u = [], h = 0; h < 3; h++) { var d = 1 - h / 2, p = i, f = z.a.Log2(s) * n + i, m = p + (f - p) * d, b = Math.round(Math.min(Math.max(m, 0), f)), _ = new pn.a(l, pn.b.Temp); if ( ((_.type = o.type), (_.format = o.format), (_.width = Math.pow(2, Math.max(z.a.Log2(s) - b, 0))), (_.height = _.width), (_.isCube = !0), l._bindTextureDirectly(a.TEXTURE_CUBE_MAP, _, !0), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MAG_FILTER, a.LINEAR), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MIN_FILTER, a.LINEAR), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_S, a.CLAMP_TO_EDGE), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_T, a.CLAMP_TO_EDGE), e.isDDS) ) { var v = e.info, y = e.data; l._unpackFlipY(v.isCompressed), Jr.UploadDDSLevels(l, _, y, v, !0, 6, b); } else g.a.Warn("DDS is the only prefiltered cube map supported so far."); l._bindTextureDirectly(a.TEXTURE_CUBE_MAP, null); var C = new Cr.a(t); (C.isCube = !0), (C._texture = _), (_.isReady = !0), u.push(C); } (o._lodTextureHigh = u[2]), (o._lodTextureMid = u[1]), (o._lodTextureLow = u[0]), r && r(o); } } } else r && r(null); }, o, a, s, c, n, i ); }; var $r = n(53), eo = (function () { function e() { this.supportCascades = !0; } return ( (e.prototype.canLoad = function (e) { return $r.a.EndsWith(e, ".dds"); }), (e.prototype.loadCubeData = function (e, t, n, i, r) { var o, a = t.getEngine(), s = !1; if (Array.isArray(e)) for (var c = 0; c < e.length; c++) { var l = e[c]; (o = Jr.GetDDSInfo(l)), (t.width = o.width), (t.height = o.height), (s = (o.isRGB || o.isLuminance || o.mipmapCount > 1) && t.generateMipMaps), a._unpackFlipY(o.isCompressed), Jr.UploadDDSLevels(a, t, l, o, s, 6, -1, c), o.isFourCC || 1 !== o.mipmapCount || a.generateMipMapsForCubemap(t); } else { var u = e; (o = Jr.GetDDSInfo(u)), (t.width = o.width), (t.height = o.height), n && (o.sphericalPolynomial = new Wr.b()), (s = (o.isRGB || o.isLuminance || o.mipmapCount > 1) && t.generateMipMaps), a._unpackFlipY(o.isCompressed), Jr.UploadDDSLevels(a, t, u, o, s, 6), o.isFourCC || 1 !== o.mipmapCount || a.generateMipMapsForCubemap(t, !1); } a._setCubeMapTextureParams(s), (t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i({ isDDS: !0, width: t.width, info: o, data: e, texture: t }); }), (e.prototype.loadData = function (e, t, n) { var i = Jr.GetDDSInfo(e), r = (i.isRGB || i.isLuminance || i.mipmapCount > 1) && t.generateMipMaps && i.width >> (i.mipmapCount - 1) == 1; n(i.width, i.height, r, i.isFourCC, function () { Jr.UploadDDSLevels(t.getEngine(), t, e, i, r, 1); }); }), e ); })(); ue.a._TextureLoaders.push(new eo()); var to = (function () { function e() { this.supportCascades = !1; } return ( (e.prototype.canLoad = function (e) { return $r.a.EndsWith(e, ".env"); }), (e.prototype.loadCubeData = function (e, t, n, i, r) { if (!Array.isArray(e)) { var o = ji.a.GetEnvInfo(e); o ? ((t.width = o.width), (t.height = o.width), ji.a.UploadEnvSpherical(t, o), ji.a.UploadEnvLevelsAsync(t, e, o).then(function () { (t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i(); })) : r && r("Can not parse the environment file", null); } }), (e.prototype.loadData = function (e, t, n) { throw ".env not supported in 2d."; }), e ); })(); ue.a._TextureLoaders.push(new to()); var no = (function () { function e(t, n, i, r) { if (((this.data = t), (this.isInvalid = !1), !e.IsValid(t))) return (this.isInvalid = !0), void g.a.Error("texture missing KTX identifier"); var o = Uint32Array.BYTES_PER_ELEMENT, a = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * o), s = 67305985 === a.getUint32(0, !0); (this.glType = a.getUint32(1 * o, s)), (this.glTypeSize = a.getUint32(2 * o, s)), (this.glFormat = a.getUint32(3 * o, s)), (this.glInternalFormat = a.getUint32(4 * o, s)), (this.glBaseInternalFormat = a.getUint32(5 * o, s)), (this.pixelWidth = a.getUint32(6 * o, s)), (this.pixelHeight = a.getUint32(7 * o, s)), (this.pixelDepth = a.getUint32(8 * o, s)), (this.numberOfArrayElements = a.getUint32(9 * o, s)), (this.numberOfFaces = a.getUint32(10 * o, s)), (this.numberOfMipmapLevels = a.getUint32(11 * o, s)), (this.bytesOfKeyValueData = a.getUint32(12 * o, s)), 0 === this.glType ? ((this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels)), 0 !== this.pixelHeight && 0 === this.pixelDepth ? 0 === this.numberOfArrayElements ? this.numberOfFaces === n ? (this.loadType = e.COMPRESSED_2D) : g.a.Error("number of faces expected" + n + ", but found " + this.numberOfFaces) : g.a.Error("texture arrays not currently supported") : g.a.Error("only 2D textures currently supported")) : g.a.Error("only compressed formats currently supported"); } return ( (e.prototype.uploadLevels = function (t, n) { switch (this.loadType) { case e.COMPRESSED_2D: this._upload2DCompressedLevels(t, n); break; case e.TEX_2D: case e.COMPRESSED_3D: case e.TEX_3D: } }), (e.prototype._upload2DCompressedLevels = function (t, n) { for (var i = e.HEADER_LEN + this.bytesOfKeyValueData, r = this.pixelWidth, o = this.pixelHeight, a = n ? this.numberOfMipmapLevels : 1, s = 0; s < a; s++) { var c = new Int32Array(this.data.buffer, this.data.byteOffset + i, 1)[0]; i += 4; for (var l = 0; l < this.numberOfFaces; l++) { var u = new Uint8Array(this.data.buffer, this.data.byteOffset + i, c); t.getEngine()._uploadCompressedDataToTextureDirectly(t, this.glInternalFormat, r, o, u, l, s), (i += c), (i += 3 - ((c + 3) % 4)); } (r = Math.max(1, 0.5 * r)), (o = Math.max(1, 0.5 * o)); } }), (e.IsValid = function (e) { if (e.byteLength >= 12) { var t = new Uint8Array(e.buffer, e.byteOffset, 12); if (171 === t[0] && 75 === t[1] && 84 === t[2] && 88 === t[3] && 32 === t[4] && 49 === t[5] && 49 === t[6] && 187 === t[7] && 13 === t[8] && 10 === t[9] && 26 === t[10] && 10 === t[11]) return !0; } return !1; }), (e.HEADER_LEN = 64), (e.COMPRESSED_2D = 0), (e.COMPRESSED_3D = 1), (e.TEX_2D = 2), (e.TEX_3D = 3), e ); })(), io = (function () { function e(t) { var n = this; e._ModulePromise || (e._ModulePromise = new Promise(function (i) { LIBKTX().then(function (r) { r.GL.makeContextCurrent(r.GL.registerContext(t._gl, { majorVersion: t._webGLVersion })), (e._TranscodeFormat = n._determineTranscodeFormat(r.TranscodeTarget, t.getCaps())), i({ module: r }); }); })); } return ( (e.prototype.uploadAsync = function (t, n) { return e._ModulePromise.then(function (i) { var r = new i.module.ktxTexture(t); try { r.isBasisSupercompressed && r.transcodeBasis(e._TranscodeFormat, 0), (n.width = n.baseWidth = r.baseWidth), (n.height = n.baseHeight = r.baseHeight), (n.generateMipMaps = !1); var o = r.glUpload(); if (0 !== o.error) throw new Error("Failed to upload: " + o.error); (n._webGLTexture = o.texture), (n.isReady = !0); } finally { r.delete(); } }); }), (e.prototype._determineTranscodeFormat = function (e, t) { if (t.s3tc) return e.BC1_OR_3; if (t.etc2) return e.ETC; throw new Error("No compatible format available"); }), (e.IsValid = function (e) { if (e.byteLength >= 12) { var t = new Uint8Array(e.buffer, e.byteOffset, 12); if (171 === t[0] && 75 === t[1] && 84 === t[2] && 88 === t[3] && 32 === t[4] && 50 === t[5] && 48 === t[6] && 187 === t[7] && 13 === t[8] && 10 === t[9] && 26 === t[10] && 10 === t[11]) return !0; } return !1; }), e ); })(), ro = (function () { function e() { this.supportCascades = !1; } return ( (e.prototype.canLoad = function (e) { return $r.a.EndsWith(e, ".ktx") || $r.a.EndsWith(e, ".ktx2"); }), (e.prototype.loadCubeData = function (e, t, n, i, r) { if (!Array.isArray(e)) { t._invertVScale = !t.invertY; var o = t.getEngine(), a = new no(e, 6), s = a.numberOfMipmapLevels > 1 && t.generateMipMaps; o._unpackFlipY(!0), a.uploadLevels(t, t.generateMipMaps), (t.width = a.pixelWidth), (t.height = a.pixelHeight), o._setCubeMapTextureParams(s), (t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i(); } }), (e.prototype.loadData = function (e, t, n) { if (no.IsValid(e)) { t._invertVScale = !t.invertY; var i = new no(e, 1); n( i.pixelWidth, i.pixelHeight, t.generateMipMaps, !0, function () { i.uploadLevels(t, t.generateMipMaps); }, i.isInvalid ); } else if (io.IsValid(e)) { new io(t.getEngine()).uploadAsync(e, t).then( function () { n(t.width, t.height, !1, !0, function () {}, !1); }, function (e) { g.a.Warn("Failed to load KTX2 texture data: " + e.message), n(0, 0, !1, !1, function () {}, !0); } ); } else n(0, 0, !1, !1, function () {}, !0); }), e ); })(); ue.a._TextureLoaders.unshift(new ro()); var oo = (function (e) { function t(t, n, i) { var r = e.call(this, t, a.e.Zero(), n) || this; return ( (r._xrSessionManager = i), (r._firstFrame = !1), (r._referenceQuaternion = a.b.Identity()), (r._referencedPosition = new a.e()), (r._xrInvPositionCache = new a.e()), (r._xrInvQuaternionCache = a.b.Identity()), (r.compensateOnFirstFrame = !0), (r.minZ = 0.1), (r.rotationQuaternion = new a.b()), (r.cameraRigMode = De.a.RIG_MODE_CUSTOM), (r.updateUpVectorFromRotation = !0), r._updateNumberOfRigCameras(1), r._xrSessionManager.onXRSessionInit.add(function () { r._referencedPosition.copyFromFloats(0, 0, 0), r._referenceQuaternion.copyFromFloats(0, 0, 0, 1), (r._firstFrame = r.compensateOnFirstFrame); }), r._xrSessionManager.onXRFrameObservable.add( function (e) { r._firstFrame && r._updateFromXRSession(), r._updateReferenceSpace(), r._updateFromXRSession(); }, void 0, !0 ), r ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "realWorldHeight", { get: function () { var e = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.baseReferenceSpace); return e && e.transform ? e.transform.position.y : 0; }, enumerable: !0, configurable: !0, }), (t.prototype._updateForDualEyeDebugging = function () { this._updateNumberOfRigCameras(2), (this.rigCameras[0].viewport = new vn.a(0, 0, 0.5, 1)), (this.rigCameras[0].outputRenderTarget = null), (this.rigCameras[1].viewport = new vn.a(0.5, 0, 0.5, 1)), (this.rigCameras[1].outputRenderTarget = null); }), (t.prototype.setTransformationFromNonVRCamera = function (e, t) { (void 0 === e && (e = this.getScene().activeCamera), void 0 === t && (t = !0), e && e !== this) && (e.computeWorldMatrix().decompose(void 0, this.rotationQuaternion, this.position), (this.position.y = 0), a.b.FromEulerAnglesToRef(0, this.rotationQuaternion.toEulerAngles().y, 0, this.rotationQuaternion), (this._firstFrame = !0), t && this._xrSessionManager.resetReferenceSpace()); }), (t.prototype.getClassName = function () { return "WebXRCamera"; }), (t.prototype._updateFromXRSession = function () { var e = this, t = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.referenceSpace); t && (t.transform && (this._referencedPosition.copyFrom(t.transform.position), this._referenceQuaternion.copyFrom(t.transform.orientation), this._scene.useRightHandedSystem || ((this._referencedPosition.z *= -1), (this._referenceQuaternion.z *= -1), (this._referenceQuaternion.w *= -1)), this._firstFrame ? ((this._firstFrame = !1), (this.position.y += this._referencedPosition.y), this._referenceQuaternion.copyFromFloats(0, 0, 0, 1)) : (this.rotationQuaternion.copyFrom(this._referenceQuaternion), this.position.copyFrom(this._referencedPosition))), this.rigCameras.length !== t.views.length && this._updateNumberOfRigCameras(t.views.length), t.views.forEach(function (t, n) { var i = e.rigCameras[n]; if ( (i.isLeftCamera || i.isRightCamera || ("right" === t.eye ? (i._isRightCamera = !0) : "left" === t.eye && (i._isLeftCamera = !0)), t.transform.position ? (i.position.copyFrom(t.transform.position), i.rotationQuaternion.copyFrom(t.transform.orientation), e._scene.useRightHandedSystem || ((i.position.z *= -1), (i.rotationQuaternion.z *= -1), (i.rotationQuaternion.w *= -1))) : (a.a.FromFloat32ArrayToRefScaled(t.transform.matrix, 0, 1, i._computedViewMatrix), e._scene.useRightHandedSystem || i._computedViewMatrix.toggleModelMatrixHandInPlace()), a.a.FromFloat32ArrayToRefScaled(t.projectionMatrix, 0, 1, i._projectionMatrix), e._scene.useRightHandedSystem || i._projectionMatrix.toggleProjectionMatrixHandInPlace(), e._xrSessionManager.session.renderState.baseLayer) ) { var r = e._xrSessionManager.session.renderState.baseLayer.getViewport(t), o = e._xrSessionManager.session.renderState.baseLayer.framebufferWidth, s = e._xrSessionManager.session.renderState.baseLayer.framebufferHeight; (i.viewport.width = r.width / o), (i.viewport.height = r.height / s), (i.viewport.x = r.x / o), (i.viewport.y = r.y / s); } i.outputRenderTarget = e._xrSessionManager.getRenderTargetTextureForEye(t.eye); })); }), (t.prototype._updateNumberOfRigCameras = function (e) { for (void 0 === e && (e = 1); this.rigCameras.length < e; ) { var t = new vt.a("XR-RigCamera: " + this.rigCameras.length, a.e.Zero(), this.getScene()); (t.minZ = 0.1), (t.rotationQuaternion = new a.b()), (t.updateUpVectorFromRotation = !0), (t.isRigCamera = !0), (t.rigParent = this), this.rigCameras.push(t); } for (; this.rigCameras.length > e; ) { var n = this.rigCameras.pop(); n && n.dispose(); } }), (t.prototype._updateReferenceSpace = function () { (this.position.equals(this._referencedPosition) && this.rotationQuaternion.equals(this._referenceQuaternion)) || (this.position.subtractToRef(this._referencedPosition, this._referencedPosition), this._referenceQuaternion.conjugateInPlace(), this._referenceQuaternion.multiplyToRef(this.rotationQuaternion, this._referenceQuaternion), this._updateReferenceSpaceOffset(this._referencedPosition, this._referenceQuaternion.normalize())); }), (t.prototype._updateReferenceSpaceOffset = function (e, t, n) { if ((void 0 === n && (n = !1), this._xrSessionManager.referenceSpace && this._xrSessionManager.currentFrame)) { this._xrInvPositionCache.copyFrom(e), t ? this._xrInvQuaternionCache.copyFrom(t) : this._xrInvQuaternionCache.copyFromFloats(0, 0, 0, 1), this._scene.useRightHandedSystem || ((this._xrInvPositionCache.z *= -1), (this._xrInvQuaternionCache.z *= -1), (this._xrInvQuaternionCache.w *= -1)), this._xrInvPositionCache.negateInPlace(), this._xrInvQuaternionCache.conjugateInPlace(), this._xrInvPositionCache.rotateByQuaternionToRef(this._xrInvQuaternionCache, this._xrInvPositionCache), n && (this._xrInvPositionCache.y = 0); var i = new XRRigidTransform(Object(h.a)({}, this._xrInvPositionCache), Object(h.a)({}, this._xrInvQuaternionCache)), r = this._xrSessionManager.referenceSpace.getOffsetReferenceSpace(i), o = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(r); if (o) { var s = new a.e(); s.copyFrom(o.transform.position), this._scene.useRightHandedSystem || (s.z *= -1), this.position.subtractToRef(s, s), this._scene.useRightHandedSystem || (s.z *= -1), s.negateInPlace(); var c = new XRRigidTransform(Object(h.a)({}, s)); this._xrSessionManager.referenceSpace = r.getOffsetReferenceSpace(c); } } }), t ); })(yt.a), ao = (function () { function e() {} return ( (e.ANCHOR_SYSTEM = "xr-anchor-system"), (e.BACKGROUND_REMOVER = "xr-background-remover"), (e.HIT_TEST = "xr-hit-test"), (e.PHYSICS_CONTROLLERS = "xr-physics-controller"), (e.PLANE_DETECTION = "xr-plane-detection"), (e.POINTER_SELECTION = "xr-controller-pointer-selection"), (e.TELEPORTATION = "xr-controller-teleportation"), e ); })(), so = (function () { function e(e) { var t = this; (this._xrSessionManager = e), (this._features = {}), this._xrSessionManager.onXRSessionInit.add(function () { t.getEnabledFeatures().forEach(function (e) { var n = t._features[e]; !n.enabled || n.featureImplementation.attached || n.featureImplementation.disableAutoAttach || t.attachFeature(e); }); }), this._xrSessionManager.onXRSessionEnded.add(function () { t.getEnabledFeatures().forEach(function (e) { var n = t._features[e]; n.enabled && n.featureImplementation.attached && t.detachFeature(e); }); }); } return ( (e.AddWebXRFeature = function (e, t, n, i) { void 0 === n && (n = 1), void 0 === i && (i = !1), (this._AvailableFeatures[e] = this._AvailableFeatures[e] || { latest: n }), n > this._AvailableFeatures[e].latest && (this._AvailableFeatures[e].latest = n), i && (this._AvailableFeatures[e].stable = n), (this._AvailableFeatures[e][n] = t); }), (e.ConstructFeature = function (e, t, n, i) { void 0 === t && (t = 1); var r = this._AvailableFeatures[e][t]; if (!r) throw new Error("feature not found"); return r(n, i); }), (e.GetAvailableFeatures = function () { return Object.keys(this._AvailableFeatures); }), (e.GetAvailableVersions = function (e) { return Object.keys(this._AvailableFeatures[e]); }), (e.GetLatestVersionOfFeature = function (e) { return (this._AvailableFeatures[e] && this._AvailableFeatures[e].latest) || -1; }), (e.GetStableVersionOfFeature = function (e) { return (this._AvailableFeatures[e] && this._AvailableFeatures[e].stable) || -1; }), (e.prototype.attachFeature = function (e) { var t = this._features[e]; t && t.enabled && !t.featureImplementation.attached && t.featureImplementation.attach(); }), (e.prototype.detachFeature = function (e) { var t = this._features[e]; t && t.featureImplementation.attached && t.featureImplementation.detach(); }), (e.prototype.disableFeature = function (e) { var t = "string" == typeof e ? e : e.Name, n = this._features[t]; return !(!n || !n.enabled) && ((n.enabled = !1), this.detachFeature(t), n.featureImplementation.dispose(), !0); }), (e.prototype.dispose = function () { var e = this; this.getEnabledFeatures().forEach(function (t) { e.disableFeature(t), e._features[t].featureImplementation.dispose(); }); }), (e.prototype.enableFeature = function (t, n, i, r) { void 0 === n && (n = "latest"), void 0 === i && (i = {}), void 0 === r && (r = !0); var o = "string" == typeof t ? t : t.Name, a = 0; if ("string" == typeof n) { if (!n) throw new Error("Error in provided version - " + o + " (" + n + ")"); if (-1 === (a = "stable" === n ? e.GetStableVersionOfFeature(o) : "latest" === n ? e.GetLatestVersionOfFeature(o) : +n) || isNaN(a)) throw new Error("feature not found - " + o + " (" + n + ")"); } else a = n; var s = this._features[o], c = e.ConstructFeature(o, a, this._xrSessionManager, i); if (!c) throw new Error("feature not found - " + o); return ( s && this.disableFeature(o), (this._features[o] = { featureImplementation: c(), enabled: !0, version: a }), r ? this._xrSessionManager.session && !s.featureImplementation.attached && this.attachFeature(o) : (this._features[o].featureImplementation.disableAutoAttach = !0), this._features[o].featureImplementation ); }), (e.prototype.getEnabledFeature = function (e) { return this._features[e] && this._features[e].featureImplementation; }), (e.prototype.getEnabledFeatures = function () { return Object.keys(this._features); }), (e._AvailableFeatures = {}), e ); })(), co = (function () { function e(e) { var t = this; (this.scene = e), (this._nonVRCamera = null), (this._originalSceneAutoClear = !0), (this._supported = !1), (this.onInitialXRPoseSetObservable = new o.c()), (this.onStateChangedObservable = new o.c()), (this.state = zn.NOT_IN_XR), (this.sessionManager = new Gn(e)), (this.camera = new oo("", e, this.sessionManager)), (this.featuresManager = new so(this.sessionManager)), e.onDisposeObservable.add(function () { t.exitXRAsync(); }); } return ( (e.CreateAsync = function (t) { var n = new e(t); return n.sessionManager .initializeAsync() .then(function () { return (n._supported = !0), n; }) .catch(function (e) { throw (n._setState(zn.NOT_IN_XR), n.dispose(), e); }); }), (e.prototype.dispose = function () { this.camera.dispose(), this.onStateChangedObservable.clear(), this.onInitialXRPoseSetObservable.clear(), this.sessionManager.dispose(), this._nonVRCamera && (this.scene.activeCamera = this._nonVRCamera); }), (e.prototype.enterXRAsync = function (e, t, n) { var i = this; if ((void 0 === n && (n = this.sessionManager.getWebXRRenderTarget()), !this._supported)) throw "WebXR not supported in this browser or environment"; this._setState(zn.ENTERING_XR); var r = { optionalFeatures: "viewer" !== t && "local" !== t ? [t] : [] }; return ( "immersive-ar" === e && "local" !== t && g.a.Warn("We recommend using 'local' reference space type when using 'immersive-ar' session mode"), this.sessionManager .isSessionSupportedAsync(e) .then(function (t) { if (!t) throw new Error('Session mode "' + e + '" not supported in browser'); return i.sessionManager.initializeSessionAsync(e, r); }) .then(function () { return i.sessionManager.setReferenceSpaceTypeAsync(t); }) .then(function () { return n.initializeXRLayerAsync(i.sessionManager.session); }) .then(function () { return i.sessionManager.updateRenderStateAsync({ depthFar: i.camera.maxZ, depthNear: i.camera.minZ, baseLayer: n.xrLayer }); }) .then(function () { return ( i.sessionManager.runXRRenderLoop(), (i._originalSceneAutoClear = i.scene.autoClear), (i._nonVRCamera = i.scene.activeCamera), (i.scene.autoClear = !1), (i.scene.activeCamera = i.camera), "immersive-ar" !== e ? i._nonXRToXRCamera() : (i.camera.compensateOnFirstFrame = !1), i.sessionManager.onXRSessionEnded.addOnce(function () { i.camera.rigCameras.forEach(function (e) { e.outputRenderTarget = null; }), (i.scene.autoClear = i._originalSceneAutoClear), (i.scene.activeCamera = i._nonVRCamera), "immersive-ar" !== e && i.camera.compensateOnFirstFrame && (i._nonVRCamera.setPosition ? i._nonVRCamera.setPosition(i.camera.position) : i._nonVRCamera.position.copyFrom(i.camera.position)), i._setState(zn.NOT_IN_XR); }), i.sessionManager.onXRFrameObservable.addOnce(function () { i._setState(zn.IN_XR); }), i.sessionManager ); }) .catch(function (e) { throw (i._setState(zn.NOT_IN_XR), e); }) ); }), (e.prototype.exitXRAsync = function () { return this._setState(zn.EXITING_XR), this.sessionManager.exitXRAsync(); }), (e.prototype._nonXRToXRCamera = function () { this.camera.setTransformationFromNonVRCamera(this._nonVRCamera), this.onInitialXRPoseSetObservable.notifyObservers(this.camera); }), (e.prototype._setState = function (e) { this.state !== e && ((this.state = e), this.onStateChangedObservable.notifyObservers(this.state)); }), e ); })(), lo = (function () { function e(e, t, n, i) { void 0 === n && (n = -1), void 0 === i && (i = []), (this.id = e), (this.type = t), (this._buttonIndex = n), (this._axesIndices = i), (this._axes = { x: 0, y: 0 }), (this._changes = {}), (this._currentValue = 0), (this._hasChanges = !1), (this._pressed = !1), (this._touched = !1), (this.onAxisValueChangedObservable = new o.c()), (this.onButtonStateChangedObservable = new o.c()); } return ( Object.defineProperty(e.prototype, "axes", { get: function () { return this._axes; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "changes", { get: function () { return this._changes; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasChanges", { get: function () { return this._hasChanges; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "pressed", { get: function () { return this._pressed; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "touched", { get: function () { return this._touched; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "value", { get: function () { return this._currentValue; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this.onAxisValueChangedObservable.clear(), this.onButtonStateChangedObservable.clear(); }), (e.prototype.isAxes = function () { return 0 !== this._axesIndices.length; }), (e.prototype.isButton = function () { return -1 !== this._buttonIndex; }), (e.prototype.update = function (e) { var t = !1, n = !1; if (((this._hasChanges = !1), (this._changes = {}), this.isButton())) { var i = e.buttons[this._buttonIndex]; if (!i) return; this._currentValue !== i.value && ((this.changes.value = { current: i.value, previous: this._currentValue }), (t = !0), (this._currentValue = i.value)), this._touched !== i.touched && ((this.changes.touched = { current: i.touched, previous: this._touched }), (t = !0), (this._touched = i.touched)), this._pressed !== i.pressed && ((this.changes.pressed = { current: i.pressed, previous: this._pressed }), (t = !0), (this._pressed = i.pressed)); } this.isAxes() && (this._axes.x !== e.axes[this._axesIndices[0]] && ((this.changes.axes = { current: { x: e.axes[this._axesIndices[0]], y: this._axes.y }, previous: { x: this._axes.x, y: this._axes.y } }), (this._axes.x = e.axes[this._axesIndices[0]]), (n = !0)), this._axes.y !== e.axes[this._axesIndices[1]] && (this.changes.axes ? (this.changes.axes.current.y = e.axes[this._axesIndices[1]]) : (this.changes.axes = { current: { x: this._axes.x, y: e.axes[this._axesIndices[1]] }, previous: { x: this._axes.x, y: this._axes.y } }), (this._axes.y = e.axes[this._axesIndices[1]]), (n = !0))), t && ((this._hasChanges = !0), this.onButtonStateChangedObservable.notifyObservers(this)), n && ((this._hasChanges = !0), this.onAxisValueChangedObservable.notifyObservers(this._axes)); }), (e.BUTTON_TYPE = "button"), (e.SQUEEZE_TYPE = "squeeze"), (e.THUMBSTICK_TYPE = "thumbstick"), (e.TOUCHPAD_TYPE = "touchpad"), (e.TRIGGER_TYPE = "trigger"), e ); })(), uo = (function () { function e(e, t, n, i, r) { var a = this; void 0 === r && (r = !1), (this.scene = e), (this.layout = t), (this.gamepadObject = n), (this.handness = i), (this._initComponent = function (e) { if (e) { var t = a.layout.components[e], n = t.type, i = t.gamepadIndices.button, r = []; void 0 !== t.gamepadIndices.xAxis && void 0 !== t.gamepadIndices.yAxis && r.push(t.gamepadIndices.xAxis, t.gamepadIndices.yAxis), (a.components[e] = new lo(e, n, i, r)); } }), (this._modelReady = !1), (this.components = {}), (this.disableAnimation = !1), (this.onModelLoadedObservable = new o.c()), t.components && Object.keys(t.components).forEach(this._initComponent); } return ( (e.prototype.dispose = function () { var e = this; this.getComponentIds().forEach(function (t) { return e.getComponent(t).dispose(); }), this.rootMesh && this.rootMesh.dispose(); }), (e.prototype.getAllComponentsOfType = function (e) { var t = this; return this.getComponentIds() .map(function (e) { return t.components[e]; }) .filter(function (t) { return t.type === e; }); }), (e.prototype.getComponent = function (e) { return this.components[e]; }), (e.prototype.getComponentIds = function () { return Object.keys(this.components); }), (e.prototype.getComponentOfType = function (e) { return this.getAllComponentsOfType(e)[0] || null; }), (e.prototype.getMainComponent = function () { return this.getComponent(this.layout.selectComponentId); }), (e.prototype.loadModel = function () { return Object(h.b)(this, void 0, void 0, function () { var e, t, n = this; return Object(h.e)(this, function (i) { return ( (e = !this._getModelLoadingConstraints()), (t = this._getGenericFilenameAndPath()), e ? g.a.Warn("Falling back to generic models") : (t = this._getFilenameAndPath()), [ 2, new Promise(function (i, r) { $i.a.ImportMesh( "", t.path, t.filename, n.scene, function (t) { e ? n._getGenericParentMesh(t) : n._setRootMesh(t), n._processLoadedModel(t), (n._modelReady = !0), n.onModelLoadedObservable.notifyObservers(n), i(!0); }, null, function (e, i) { g.a.Log(i), g.a.Warn("Failed to retrieve controller model of type " + n.profileId + " from the remote server: " + t.path + t.filename), r(i); } ); }), ] ); }); }); }), (e.prototype.updateFromXRFrame = function (e) { var t = this; this.getComponentIds().forEach(function (e) { return t.getComponent(e).update(t.gamepadObject); }), this.updateModel(e); }), (e.prototype._getChildByName = function (e, t) { return e.getChildren(function (e) { return e.name === t; }, !1)[0]; }), (e.prototype._getImmediateChildByName = function (e, t) { return e.getChildren(function (e) { return e.name == t; }, !0)[0]; }), (e.prototype._lerpTransform = function (e, t, n) { if (e.minMesh && e.maxMesh && e.minMesh.rotationQuaternion && e.maxMesh.rotationQuaternion && e.valueMesh.rotationQuaternion) { var i = n ? 0.5 * t + 0.5 : t; a.b.SlerpToRef(e.minMesh.rotationQuaternion, e.maxMesh.rotationQuaternion, i, e.valueMesh.rotationQuaternion), a.e.LerpToRef(e.minMesh.position, e.maxMesh.position, i, e.valueMesh.position); } }), (e.prototype.updateModel = function (e) { this._modelReady && this._updateModel(e); }), (e.prototype._getGenericFilenameAndPath = function () { return { filename: "generic.babylon", path: "https://controllers.babylonjs.com/generic/" }; }), (e.prototype._getGenericParentMesh = function (e) { var t = this; (this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)), e.forEach(function (e) { e.parent || ((e.isPickable = !1), e.setParent(t.rootMesh)); }), (this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0)); }), e ); })(), ho = (function (e) { function t(n, i, r) { var o = e.call(this, n, po[r], i, r) || this; return (o.profileId = t.ProfileId), o; } return ( Object(h.d)(t, e), (t.prototype._getFilenameAndPath = function () { return { filename: "generic.babylon", path: "https://controllers.babylonjs.com/generic/" }; }), (t.prototype._getModelLoadingConstraints = function () { return !0; }), (t.prototype._processLoadedModel = function (e) {}), (t.prototype._setRootMesh = function (e) { var t = this; (this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)), e.forEach(function (e) { (e.isPickable = !1), e.parent || e.setParent(t.rootMesh); }), (this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0)); }), (t.prototype._updateModel = function () {}), (t.ProfileId = "generic-trigger"), t ); })(uo), po = { left: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} } }, gamepadMapping: "xr-standard", rootNodeName: "generic-trigger-left", assetPath: "left.glb", }, right: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} } }, gamepadMapping: "xr-standard", rootNodeName: "generic-trigger-right", assetPath: "right.glb", }, none: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} } }, gamepadMapping: "xr-standard", rootNodeName: "generic-trigger-none", assetPath: "none.glb", }, }, fo = (function (e) { function t(t, n, i, r) { var o = e.call(this, t, i.layouts[n.handedness || "none"], n.gamepad, n.handedness) || this; return (o._repositoryUrl = r), (o._buttonMeshMapping = {}), (o._touchDots = {}), (o.profileId = i.profileId), o; } return ( Object(h.d)(t, e), (t.prototype.dispose = function () { var t = this; e.prototype.dispose.call(this), Object.keys(this._touchDots).forEach(function (e) { t._touchDots[e].dispose(); }); }), (t.prototype._getFilenameAndPath = function () { return { filename: this.layout.assetPath, path: this._repositoryUrl + "/profiles/" + this.profileId + "/" }; }), (t.prototype._getModelLoadingConstraints = function () { var e = $i.a.IsPluginForExtensionAvailable(".glb"); return e || g.a.Warn("glTF / glb loaded was not registered, using generic controller instead"), e; }), (t.prototype._processLoadedModel = function (e) { var t = this; this.getComponentIds().forEach(function (e) { var n = t.layout.components[e]; (t._buttonMeshMapping[e] = { mainMesh: t._getChildByName(t.rootMesh, n.rootNodeName), states: {} }), Object.keys(n.visualResponses).forEach(function (i) { var r = n.visualResponses[i]; if ("transform" === r.valueNodeProperty) t._buttonMeshMapping[e].states[i] = { valueMesh: t._getChildByName(t.rootMesh, r.valueNodeName), minMesh: t._getChildByName(t.rootMesh, r.minNodeName), maxMesh: t._getChildByName(t.rootMesh, r.maxNodeName), }; else { var o = n.type === lo.TOUCHPAD_TYPE && n.touchPointNodeName ? n.touchPointNodeName : r.valueNodeName; if (((t._buttonMeshMapping[e].states[i] = { valueMesh: t._getChildByName(t.rootMesh, o) }), n.type === lo.TOUCHPAD_TYPE && !t._touchDots[i])) { var a = mi.CreateSphere(i + "dot", { diameter: 0.0015, segments: 8 }, t.scene); (a.material = new Mn.a(i + "mat", t.scene)), (a.material.diffuseColor = s.a.Red()), (a.parent = t._buttonMeshMapping[e].states[i].valueMesh), (a.isVisible = !1), (t._touchDots[i] = a); } } }); }); }), (t.prototype._setRootMesh = function (e) { var t; (this.rootMesh = new Ee.a(this.profileId + "-" + this.handness, this.scene)), (this.rootMesh.isPickable = !1); for (var n = 0; n < e.length; n++) { var i = e[n]; (i.isPickable = !1), i.parent || (t = i); } t && t.setParent(this.rootMesh), this.rootMesh.rotate(Be.a.Y, Math.PI, Be.b.WORLD); }), (t.prototype._updateModel = function (e) { var t = this; this.disableAnimation || this.getComponentIds().forEach(function (e) { var n = t.getComponent(e); if (n.hasChanges) { var i = t._buttonMeshMapping[e], r = t.layout.components[e]; Object.keys(r.visualResponses).forEach(function (e) { var o = r.visualResponses[e], a = n.value; "xAxis" === o.componentProperty ? (a = n.axes.x) : "yAxis" === o.componentProperty && (a = n.axes.y), "transform" === o.valueNodeProperty ? t._lerpTransform(i.states[e], a, "button" !== o.componentProperty) : ((i.states[e].valueMesh.isVisible = n.touched || n.pressed), t._touchDots[e] && (t._touchDots[e].isVisible = n.touched || n.pressed)); }); } }); }), t ); })(uo), mo = (function () { function e() {} return ( (e.ClearProfilesCache = function () { delete this._ProfilesList, (this._ProfileLoadingPromises = {}); }), (e.DefaultFallbacks = function () { this.RegisterFallbacksForProfileId("google-daydream", ["generic-touchpad"]), this.RegisterFallbacksForProfileId("htc-vive-focus", ["generic-trigger-touchpad"]), this.RegisterFallbacksForProfileId("htc-vive", ["generic-trigger-squeeze-touchpad"]), this.RegisterFallbacksForProfileId("magicleap-one", ["generic-trigger-squeeze-touchpad"]), this.RegisterFallbacksForProfileId("windows-mixed-reality", ["generic-trigger-squeeze-touchpad-thumbstick"]), this.RegisterFallbacksForProfileId("microsoft-mixed-reality", ["windows-mixed-reality", "generic-trigger-squeeze-touchpad-thumbstick"]), this.RegisterFallbacksForProfileId("oculus-go", ["generic-trigger-touchpad"]), this.RegisterFallbacksForProfileId("oculus-touch-v2", ["oculus-touch", "generic-trigger-squeeze-thumbstick"]), this.RegisterFallbacksForProfileId("oculus-touch", ["generic-trigger-squeeze-thumbstick"]), this.RegisterFallbacksForProfileId("samsung-gearvr", ["windows-mixed-reality", "generic-trigger-squeeze-touchpad-thumbstick"]), this.RegisterFallbacksForProfileId("samsung-odyssey", ["generic-touchpad"]), this.RegisterFallbacksForProfileId("valve-index", ["generic-trigger-squeeze-touchpad-thumbstick"]); }), (e.FindFallbackWithProfileId = function (e) { var t = this._Fallbacks[e] || []; return t.unshift(e), t; }), (e.GetMotionControllerWithXRInput = function (e, t, n) { var i = this, r = []; if ((n && r.push(n), r.push.apply(r, e.profiles || []), r.length && !r[0] && r.pop(), e.gamepad && e.gamepad.id)) switch (e.gamepad.id) { case e.gamepad.id.match(/oculus touch/gi) ? e.gamepad.id : void 0: r.push("oculus-touch-v2"); } var o = r.indexOf("windows-mixed-reality"); if ((-1 !== o && r.splice(o, 0, "microsoft-mixed-reality"), r.length || r.push("generic-trigger"), this.UseOnlineRepository)) { var a = this.PrioritizeOnlineRepository ? this._LoadProfileFromRepository : this._LoadProfilesFromAvailableControllers, s = this.PrioritizeOnlineRepository ? this._LoadProfilesFromAvailableControllers : this._LoadProfileFromRepository; return a.call(this, r, e, t).catch(function () { return s.call(i, r, e, t); }); } return this._LoadProfilesFromAvailableControllers(r, e, t); }), (e.RegisterController = function (e, t) { this._AvailableControllers[e] = t; }), (e.RegisterFallbacksForProfileId = function (e, t) { var n; this._Fallbacks[e] ? (n = this._Fallbacks[e]).push.apply(n, t) : (this._Fallbacks[e] = t); }), (e.UpdateProfilesList = function () { return ( (this._ProfilesList = $e.b.LoadFileAsync(this.BaseRepositoryUrl + "/profiles/profilesList.json", !1).then(function (e) { return JSON.parse(e.toString()); })), this._ProfilesList ); }), (e._LoadProfileFromRepository = function (e, t, n) { var i = this; return Promise.resolve() .then(function () { return i._ProfilesList ? i._ProfilesList : i.UpdateProfilesList(); }) .then(function (t) { for (var n = 0; n < e.length; ++n) if (e[n] && t[e[n]]) return e[n]; throw new Error("neither controller " + e[0] + " nor all fallbacks were found in the repository,"); }) .then(function (e) { return ( i._ProfileLoadingPromises[e] || (i._ProfileLoadingPromises[e] = $e.b.LoadFileAsync(i.BaseRepositoryUrl + "/profiles/" + e + "/profile.json", !1).then(function (e) { return JSON.parse(e); })), i._ProfileLoadingPromises[e] ); }) .then(function (e) { return new fo(n, t, e, i.BaseRepositoryUrl); }); }), (e._LoadProfilesFromAvailableControllers = function (e, t, n) { for (var i = 0; i < e.length; ++i) if (e[i]) for (var r = this.FindFallbackWithProfileId(e[i]), o = 0; o < r.length; ++o) { var a = this._AvailableControllers[r[o]]; if (a) return Promise.resolve(a(t, n)); } throw new Error("no controller requested was found in the available controllers list"); }), (e._AvailableControllers = {}), (e._Fallbacks = {}), (e._ProfileLoadingPromises = {}), (e.BaseRepositoryUrl = "https://immersive-web.github.io/webxr-input-profiles/packages/viewer/dist"), (e.PrioritizeOnlineRepository = !0), (e.UseOnlineRepository = !0), e ); })(); mo.RegisterController(ho.ProfileId, function (e, t) { return new ho(t, e.gamepad, e.handedness); }), mo.DefaultFallbacks(); var go = 0, bo = (function () { function e(e, t, n) { var i = this; void 0 === n && (n = {}), (this._scene = e), (this.inputSource = t), (this._options = n), (this._tmpQuaternion = new a.b()), (this._tmpVector = new a.e()), (this.onDisposeObservable = new o.c()), (this.onMeshLoadedObservable = new o.c()), (this.onMotionControllerInitObservable = new o.c()), (this._uniqueId = "controller-" + go++ + "-" + t.targetRayMode + "-" + t.handedness), (this.pointer = new ke.a(this._uniqueId + "-pointer", e)), (this.pointer.rotationQuaternion = new a.b()), this.inputSource.gripSpace && ((this.grip = new ke.a(this._uniqueId + "-grip", this._scene)), (this.grip.rotationQuaternion = new a.b())), this.inputSource.gamepad && mo.GetMotionControllerWithXRInput(t, e, this._options.forceControllerProfile).then(function (e) { (i.motionController = e), i.onMotionControllerInitObservable.notifyObservers(e), i._options.doNotLoadControllerMesh || i.motionController.loadModel().then(function (e) { e && (i.onMeshLoadedObservable.notifyObservers(i.motionController.rootMesh), (i.motionController.rootMesh.parent = i.grip || i.pointer), (i.motionController.disableAnimation = !!i._options.disableMotionControllerAnimation)); }); }); } return ( Object.defineProperty(e.prototype, "uniqueId", { get: function () { return this._uniqueId; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this.grip && this.grip.dispose(), this.motionController && this.motionController.dispose(), this.pointer.dispose(), this.onMotionControllerInitObservable.clear(), this.onMeshLoadedObservable.clear(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(); }), (e.prototype.getWorldPointerRayToRef = function (e, t) { void 0 === t && (t = !1); var n = t && this.grip ? this.grip : this.pointer; n.computeWorldMatrix().decompose(void 0, this._tmpQuaternion, void 0), this._tmpVector.set(0, 0, 1), this._tmpVector.rotateByQuaternionToRef(this._tmpQuaternion, this._tmpVector), e.origin.copyFrom(n.absolutePosition), e.direction.copyFrom(this._tmpVector), (e.length = 1e3); }), (e.prototype.updateFromXRFrame = function (e, t) { var n = e.getPose(this.inputSource.targetRaySpace, t); if ( (n && (this.pointer.position.copyFrom(n.transform.position), this.pointer.rotationQuaternion.copyFrom(n.transform.orientation), this._scene.useRightHandedSystem || ((this.pointer.position.z *= -1), (this.pointer.rotationQuaternion.z *= -1), (this.pointer.rotationQuaternion.w *= -1))), this.inputSource.gripSpace && this.grip) ) { var i = e.getPose(this.inputSource.gripSpace, t); i && (this.grip.position.copyFrom(i.transform.position), this.grip.rotationQuaternion.copyFrom(i.transform.orientation), this._scene.useRightHandedSystem || ((this.grip.position.z *= -1), (this.grip.rotationQuaternion.z *= -1), (this.grip.rotationQuaternion.w *= -1))); } this.motionController && this.motionController.updateFromXRFrame(e); }), e ); })(), _o = (function () { function e(e, t, n) { var i = this; void 0 === n && (n = {}), (this.xrSessionManager = e), (this.xrCamera = t), (this.options = n), (this.controllers = []), (this.onControllerAddedObservable = new o.c()), (this.onControllerRemovedObservable = new o.c()), (this._onInputSourcesChange = function (e) { i._addAndRemoveControllers(e.added, e.removed); }), (this._sessionEndedObserver = this.xrSessionManager.onXRSessionEnded.add(function () { i._addAndRemoveControllers( [], i.controllers.map(function (e) { return e.inputSource; }) ); })), (this._sessionInitObserver = this.xrSessionManager.onXRSessionInit.add(function (e) { e.addEventListener("inputsourceschange", i._onInputSourcesChange); })), (this._frameObserver = this.xrSessionManager.onXRFrameObservable.add(function (e) { i.controllers.forEach(function (t) { t.updateFromXRFrame(e, i.xrSessionManager.referenceSpace); }); })), this.options.customControllersRepositoryURL && (mo.BaseRepositoryUrl = this.options.customControllersRepositoryURL), this.options.disableOnlineControllerRepository ? (mo.UseOnlineRepository = !1) : ((mo.UseOnlineRepository = !0), mo.UpdateProfilesList()); } return ( (e.prototype._addAndRemoveControllers = function (e, t) { for ( var n = this, i = this.controllers.map(function (e) { return e.inputSource; }), r = 0, o = e; r < o.length; r++ ) { var a = o[r]; if (-1 === i.indexOf(a)) { var s = new bo(this.xrSessionManager.scene, a, { forceControllerProfile: this.options.forceInputProfile, doNotLoadControllerMesh: this.options.doNotLoadControllerMeshes, disableMotionControllerAnimation: this.options.disableControllerAnimation, }); this.controllers.push(s), this.onControllerAddedObservable.notifyObservers(s); } } var c = [], l = []; this.controllers.forEach(function (e) { -1 === t.indexOf(e.inputSource) ? c.push(e) : l.push(e); }), (this.controllers = c), l.forEach(function (e) { n.onControllerRemovedObservable.notifyObservers(e), e.dispose(); }); }), (e.prototype.dispose = function () { this.controllers.forEach(function (e) { e.dispose(); }), this.xrSessionManager.onXRFrameObservable.remove(this._frameObserver), this.xrSessionManager.onXRSessionInit.remove(this._sessionInitObserver), this.xrSessionManager.onXRSessionEnded.remove(this._sessionEndedObserver), this.onControllerAddedObservable.clear(), this.onControllerRemovedObservable.clear(); }), e ); })(), vo = (function () { function e(e) { (this._xrSessionManager = e), (this._attached = !1), (this._removeOnDetach = []), (this.disableAutoAttach = !1); } return ( Object.defineProperty(e.prototype, "attached", { get: function () { return this._attached; }, enumerable: !0, configurable: !0, }), (e.prototype.attach = function (e) { var t = this; if (e) this.attached && this.detach(); else if (this.attached) return !1; return ( (this._attached = !0), this._addNewAttachObserver(this._xrSessionManager.onXRFrameObservable, function (e) { return t._onXRFrame(e); }), !0 ); }), (e.prototype.detach = function () { return this._attached ? ((this._attached = !1), this._removeOnDetach.forEach(function (e) { e.observable.remove(e.observer); }), !0) : ((this.disableAutoAttach = !0), !1); }), (e.prototype.dispose = function () { this.detach(); }), (e.prototype._addNewAttachObserver = function (e, t) { this._removeOnDetach.push({ observable: e, observer: e.add(t) }); }), e ); })(), yo = (function (e) { function t(n, i) { var r = e.call(this, n) || this; return ( (r._options = i), (r._attachController = function (e) { if (!r._controllers[e.uniqueId]) { var n = r._generateNewMeshPair(e), i = n.laserPointer, o = n.selectionMesh; switch ( ((r._controllers[e.uniqueId] = { xrController: e, laserPointer: i, selectionMesh: o, meshUnderPointer: null, pick: null, tmpRay: new Re(new a.e(), new a.e()), id: t._idCounter++ }), e.inputSource.targetRayMode) ) { case "tracked-pointer": return r._attachTrackedPointerRayMode(e); case "gaze": return r._attachGazeMode(e); case "screen": return r._attachScreenRayMode(e); } } }), (r._controllers = {}), (r._tmpVectorForPickCompare = new a.e()), (r.disablePointerLighting = !0), (r.disableSelectionMeshLighting = !0), (r.displayLaserPointer = !0), (r.displaySelectionMesh = !0), (r.laserPointerPickedColor = new s.a(0.9, 0.9, 0.9)), (r.lasterPointerDefaultColor = new s.a(0.7, 0.7, 0.7)), (r.selectionMeshDefaultColor = new s.a(0.8, 0.8, 0.8)), (r.selectionMeshPickedColor = new s.a(0.3, 0.3, 1)), (r._scene = r._xrSessionManager.scene), r ); } return ( Object(h.d)(t, e), (t.prototype.attach = function () { var t = this; return ( !!e.prototype.attach.call(this) && (this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, function (e) { t._detachController(e.uniqueId); }), !0) ); }), (t.prototype.detach = function () { var t = this; return ( !!e.prototype.detach.call(this) && (Object.keys(this._controllers).forEach(function (e) { t._detachController(e); }), !0) ); }), (t.prototype.getMeshUnderPointer = function (e) { return this._controllers[e] ? this._controllers[e].meshUnderPointer : null; }), (t.prototype.getXRControllerByPointerId = function (e) { for (var t = Object.keys(this._controllers), n = 0; n < t.length; ++n) if (this._controllers[t[n]].id === e) return this._controllers[t[n]].xrController; return null; }), (t.prototype._onXRFrame = function (e) { var t = this; Object.keys(this._controllers).forEach(function (e) { var n = t._controllers[e]; n.xrController.getWorldPointerRayToRef(n.tmpRay), (n.pick = t._scene.pickWithRay(n.tmpRay)); var i = n.pick; if (i && i.pickedPoint && i.hit) { t._updatePointerDistance(n.laserPointer, i.distance), n.selectionMesh.position.copyFrom(i.pickedPoint), (n.selectionMesh.scaling.x = Math.sqrt(i.distance)), (n.selectionMesh.scaling.y = Math.sqrt(i.distance)), (n.selectionMesh.scaling.z = Math.sqrt(i.distance)); var r = t._convertNormalToDirectionOfRay(i.getNormal(!0), n.tmpRay); if ((n.selectionMesh.position.copyFrom(i.pickedPoint), r)) { var o = a.e.Cross(Be.a.Y, r), s = a.e.Cross(r, o); a.e.RotationFromAxisToRef(s, r, o, n.selectionMesh.rotation), n.selectionMesh.position.addInPlace(r.scale(0.001)); } (n.selectionMesh.isVisible = t.displaySelectionMesh), (n.meshUnderPointer = i.pickedMesh); } else (n.selectionMesh.isVisible = !1), (n.meshUnderPointer = null); }); }), (t.prototype._attachGazeMode = function (e) { var t = this, n = this._controllers[e.uniqueId], i = this._options.timeToSelect || 3e3, r = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || ci.a.DefaultUtilityLayer.utilityLayerScene : this._scene, o = new Ae.a(), a = kn.CreateTorus("selection", { diameter: 0.0525, thickness: 0.015, tessellation: 20 }, r); (a.isVisible = !1), (a.isPickable = !1), (a.parent = n.selectionMesh); var s = 0, c = !1; (n.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(function () { if (n.pick) { if (((a.isVisible = !1), n.pick.hit)) if (t._pickingMoved(o, n.pick)) c && (t._options.disablePointerUpOnTouchOut || t._scene.simulatePointerUp(n.pick, { pointerId: n.id })), (c = !1), (s = 0); else if ((s > i / 10 && (a.isVisible = !0), (s += t._scene.getEngine().getDeltaTime()) >= i)) t._scene.simulatePointerDown(n.pick, { pointerId: n.id }), (c = !0), t._options.disablePointerUpOnTouchOut && t._scene.simulatePointerUp(n.pick, { pointerId: n.id }), (a.isVisible = !1); else { var e = 1 - s / i; a.scaling.set(e, e, e); } else (c = !1), (s = 0); t._scene.simulatePointerMove(n.pick, { pointerId: n.id }), (o = n.pick); } })), void 0 !== this._options.renderingGroupId && (a.renderingGroupId = this._options.renderingGroupId), e.onDisposeObservable.addOnce(function () { n.pick && !t._options.disablePointerUpOnTouchOut && c && t._scene.simulatePointerUp(n.pick, { pointerId: n.id }), a.dispose(); }); }), (t.prototype._attachScreenRayMode = function (e) { var t = this, n = this._controllers[e.uniqueId], i = !1; (n.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(function () { !n.pick || (t._options.disablePointerUpOnTouchOut && i) || (i ? t._scene.simulatePointerMove(n.pick, { pointerId: n.id }) : (t._scene.simulatePointerDown(n.pick, { pointerId: n.id }), (i = !0), t._options.disablePointerUpOnTouchOut && t._scene.simulatePointerUp(n.pick, { pointerId: n.id }))); })), e.onDisposeObservable.addOnce(function () { n.pick && i && !t._options.disablePointerUpOnTouchOut && t._scene.simulatePointerUp(n.pick, { pointerId: n.id }); }); }), (t.prototype._attachTrackedPointerRayMode = function (e) { var t = this; e.onMotionControllerInitObservable.add(function (n) { if (t._options.forceGazeMode) return t._attachGazeMode(e); var i = t._controllers[e.uniqueId]; t._options.overrideButtonId && (i.selectionComponent = n.getComponent(t._options.overrideButtonId)), i.selectionComponent || (i.selectionComponent = n.getMainComponent()), (i.onFrameObserver = t._xrSessionManager.onXRFrameObservable.add(function () { i.selectionComponent && i.selectionComponent.pressed ? ((i.selectionMesh.material.emissiveColor = t.selectionMeshPickedColor), (i.laserPointer.material.emissiveColor = t.laserPointerPickedColor)) : ((i.selectionMesh.material.emissiveColor = t.selectionMeshDefaultColor), (i.laserPointer.material.emissiveColor = t.lasterPointerDefaultColor)), (i.laserPointer.isVisible = t.displayLaserPointer), (i.laserPointer.material.disableLighting = t.disablePointerLighting), (i.selectionMesh.material.disableLighting = t.disableSelectionMeshLighting), i.pick && t._scene.simulatePointerMove(i.pick, { pointerId: i.id }); })), (i.onButtonChangedObserver = i.selectionComponent.onButtonStateChangedObservable.add(function (e) { if (e.changes.pressed) { var n = e.changes.pressed.current; i.pick && (n ? t._scene.simulatePointerDown(i.pick, { pointerId: i.id }) : t._scene.simulatePointerUp(i.pick, { pointerId: i.id })); } })); }); }), (t.prototype._convertNormalToDirectionOfRay = function (e, t) { e && Math.acos(a.e.Dot(e, t.direction)) < Math.PI / 2 && e.scaleInPlace(-1); return e; }), (t.prototype._detachController = function (e) { var t = this._controllers[e]; t && (t.selectionComponent && t.onButtonChangedObserver && t.selectionComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver), t.onFrameObserver && this._xrSessionManager.onXRFrameObservable.remove(t.onFrameObserver), t.selectionMesh.dispose(), t.laserPointer.dispose(), delete this._controllers[e]); }), (t.prototype._generateNewMeshPair = function (e) { var t = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || ci.a.DefaultUtilityLayer.utilityLayerScene : this._scene, n = jn.CreateCylinder("laserPointer", { height: 1, diameterTop: 2e-4, diameterBottom: 0.004, tessellation: 20, subdivisions: 1 }, t); n.parent = e.pointer; var i = new Mn.a("laserPointerMat", t); (i.emissiveColor = this.lasterPointerDefaultColor), (i.alpha = 0.7), (n.material = i), (n.rotation.x = Math.PI / 2), this._updatePointerDistance(n, 1), (n.isPickable = !1); var r = kn.CreateTorus("gazeTracker", { diameter: 0.0105, thickness: 0.0075, tessellation: 20 }, t); r.bakeCurrentTransformIntoVertices(), (r.isPickable = !1), (r.isVisible = !1); var o = new Mn.a("targetMat", t); return ( (o.specularColor = s.a.Black()), (o.emissiveColor = this.selectionMeshDefaultColor), (o.backFaceCulling = !1), (r.material = o), void 0 !== this._options.renderingGroupId && ((n.renderingGroupId = this._options.renderingGroupId), (r.renderingGroupId = this._options.renderingGroupId)), { laserPointer: n, selectionMesh: r } ); }), (t.prototype._pickingMoved = function (e, t) { var n; if (!e.hit || !t.hit) return !0; if (!(e.pickedMesh && e.pickedPoint && t.pickedMesh && t.pickedPoint)) return !0; if (e.pickedMesh !== t.pickedMesh) return !0; null === (n = e.pickedPoint) || void 0 === n || n.subtractToRef(t.pickedPoint, this._tmpVectorForPickCompare), this._tmpVectorForPickCompare.set(Math.abs(this._tmpVectorForPickCompare.x), Math.abs(this._tmpVectorForPickCompare.y), Math.abs(this._tmpVectorForPickCompare.z)); var i = (0.01 * (this._options.gazeModePointerMovedFactor || 1)) / t.distance; return this._tmpVectorForPickCompare.length() > i; }), (t.prototype._updatePointerDistance = function (e, t) { void 0 === t && (t = 100), (e.scaling.y = t), (e.position.z = t / 2 + 0.05); }), (t._idCounter = 0), (t.Name = ao.POINTER_SELECTION), (t.Version = 1), t ); })(vo); so.AddWebXRFeature( yo.Name, function (e, t) { return function () { return new yo(e, t); }; }, yo.Version, !0 ); var Co = (function () { function e(e, t, n) { (this.element = e), (this.sessionMode = t), (this.referenceSpaceType = n); } return (e.prototype.update = function (e) {}), e; })(), Po = function () {}, xo = (function () { function e(e, t) { var n = this; if ( ((this.scene = e), (this.options = t), (this._activeButton = null), (this._buttons = []), (this.activeButtonChangedObservable = new o.c()), (this._overlay = document.createElement("div")), (this._overlay.style.cssText = "z-index:11;position: absolute; right: 20px;bottom: 50px;"), t.customButtons) ) this._buttons = t.customButtons; else { var i = t.sessionMode || "immersive-vr", r = t.referenceSpaceType || "local-floor", a = ".babylonVRicon { color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(" + (window.SVGSVGElement ? "data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A" : "https://cdn.babylonjs.com/Assets/vrButton.png") + "); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }"; a += '.babylonVRicon.vrdisplaypresenting { background-image: none;} .vrdisplaypresenting::after { content: "EXIT"} .xr-error::after { content: "ERROR"}'; var s = document.createElement("style"); s.appendChild(document.createTextNode(a)), document.getElementsByTagName("head")[0].appendChild(s); var c = document.createElement("button"); (c.className = "babylonVRicon"), (c.title = i + " - " + r), this._buttons.push(new Co(c, i, r)), (this._buttons[this._buttons.length - 1].update = function (e) { (this.element.style.display = null === e || e === this ? "" : "none"), (c.className = "babylonVRicon" + (e === this ? " vrdisplaypresenting" : "")); }), this._updateButtons(null); } var l = e.getEngine().getInputElement(); l && l.parentNode && (l.parentNode.appendChild(this._overlay), e.onDisposeObservable.addOnce(function () { n.dispose(); })); } return ( (e.CreateAsync = function (t, n, i) { var r = this, o = new e(t, i), a = o._buttons.map(function (e) { return n.sessionManager.isSessionSupportedAsync(e.sessionMode); }); return ( n.onStateChangedObservable.add(function (e) { e == zn.NOT_IN_XR && o._updateButtons(null); }), Promise.all(a).then(function (e) { return ( e.forEach(function (e, t) { e && (o._overlay.appendChild(o._buttons[t].element), (o._buttons[t].element.onclick = function () { return Object(h.b)(r, void 0, void 0, function () { var e, r; return Object(h.e)(this, function (a) { switch (a.label) { case 0: return n.state != zn.IN_XR ? [3, 2] : [4, n.exitXRAsync()]; case 1: return a.sent(), o._updateButtons(null), [3, 6]; case 2: if (n.state != zn.NOT_IN_XR) return [3, 6]; if (!i.renderTarget) return [3, 6]; a.label = 3; case 3: return a.trys.push([3, 5, , 6]), [4, n.enterXRAsync(o._buttons[t].sessionMode, o._buttons[t].referenceSpaceType, i.renderTarget)]; case 4: return a.sent(), o._updateButtons(o._buttons[t]), [3, 6]; case 5: return a.sent(), o._updateButtons(null), (e = o._buttons[t].element), (r = e.title), (e.title = "Error entering XR session : " + r), e.classList.add("xr-error"), [3, 6]; case 6: return [2]; } }); }); })); }), o ); }) ); }), (e.prototype.dispose = function () { var e = this.scene.getEngine().getInputElement(); e && e.parentNode && e.parentNode.contains(this._overlay) && e.parentNode.removeChild(this._overlay), this.activeButtonChangedObservable.clear(); }), (e.prototype._updateButtons = function (e) { var t = this; (this._activeButton = e), this._buttons.forEach(function (e) { e.update(t._activeButton); }), this.activeButtonChangedObservable.notifyObservers(this._activeButton); }), e ); })(), To = (function (e) { function t(t, n) { var i = e.call(this, t) || this; return ( (i._options = n), (i._controllers = {}), (i._snappedToPoint = !1), (i._tmpRay = new Re(new a.e(), new a.e())), (i._tmpVector = new a.e()), (i.backwardsMovementEnabled = !0), (i.backwardsTeleportationDistance = 0.7), (i.parabolicCheckRadius = 5), (i.parabolicRayEnabled = !0), (i.rotationAngle = Math.PI / 8), (i.rotationEnabled = !0), (i._attachController = function (e) { if (!i._controllers[e.uniqueId]) { i._controllers[e.uniqueId] = { xrController: e, teleportationState: { forward: !1, backwards: !1, rotating: !1, currentRotation: 0, baseRotation: 0 } }; var t = i._controllers[e.uniqueId]; e.onMotionControllerInitObservable.addOnce(function () { if (e.motionController) { var n = e.motionController.getComponentOfType(lo.THUMBSTICK_TYPE) || e.motionController.getComponentOfType(lo.TOUCHPAD_TYPE); if (!n || i._options.useMainComponentOnly) { var r = e.motionController.getMainComponent(); if (!r) return; t.onButtonChangedObserver = r.onButtonStateChangedObservable.add(function () { if (r.changes.pressed) if (r.changes.pressed.current) { (t.teleportationState.forward = !0), (i._currentTeleportationControllerId = t.xrController.uniqueId), (t.teleportationState.baseRotation = i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y), (t.teleportationState.currentRotation = 0); var n = i._options.timeToTeleport || 3e3, o = 0, a = i._xrSessionManager.onXRFrameObservable.add(function () { r.pressed ? ((o += i._xrSessionManager.scene.getEngine().getDeltaTime()) >= n && i._currentTeleportationControllerId === t.xrController.uniqueId && t.teleportationState.forward && i._teleportForward(e.uniqueId), o >= n && i._xrSessionManager.onXRFrameObservable.remove(a)) : i._xrSessionManager.onXRFrameObservable.remove(a); }); } else (t.teleportationState.forward = !1), (i._currentTeleportationControllerId = ""); }); } else (t.onButtonChangedObserver = n.onButtonStateChangedObservable.add(function () { i._currentTeleportationControllerId === t.xrController.uniqueId && t.teleportationState.forward && !n.touched && i._teleportForward(e.uniqueId); })), (t.onAxisChangedObserver = n.onAxisValueChangedObservable.add(function (e) { if ( (e.y <= 0.7 && t.teleportationState.backwards && (t.teleportationState.backwards = !1), e.y > 0.7 && !t.teleportationState.forward && i.backwardsMovementEnabled && !i.snapPointsOnly && !t.teleportationState.backwards) ) { (t.teleportationState.backwards = !0), i._tmpVector.set(0, 0, i.backwardsTeleportationDistance), i._tmpVector.rotateByQuaternionToRef(i._options.xrInput.xrCamera.rotationQuaternion, i._tmpVector), i._tmpVector.addInPlace(i._options.xrInput.xrCamera.position), i._options.xrInput.xrCamera.position.subtractToRef(i._tmpVector, i._tmpVector), i._tmpRay.origin.copyFrom(i._tmpVector), i._tmpRay.direction.set(0, -1, 0); var n = i._xrSessionManager.scene.pickWithRay(i._tmpRay, function (e) { return -1 !== i._floorMeshes.indexOf(e); }); n && n.pickedPoint && i._options.xrInput.xrCamera.position.addInPlace(n.pickedPoint); } if ( (e.y < -0.7 && !i._currentTeleportationControllerId && !t.teleportationState.rotating && ((t.teleportationState.forward = !0), (i._currentTeleportationControllerId = t.xrController.uniqueId), (t.teleportationState.baseRotation = i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y)), e.x) ) { if (t.teleportationState.forward) i._currentTeleportationControllerId === t.xrController.uniqueId && (i.rotationEnabled ? setTimeout(function () { t.teleportationState.currentRotation = Math.atan2(e.x, -e.y); }) : (t.teleportationState.currentRotation = 0)); else if (!t.teleportationState.rotating && Math.abs(e.x) > 0.7) { t.teleportationState.rotating = !0; var r = i.rotationAngle * (e.x > 0 ? 1 : -1); i._options.xrInput.xrCamera.rotationQuaternion.multiplyInPlace(a.b.FromEulerAngles(0, r, 0)); } } else t.teleportationState.rotating = !1; })); } }); } }), i._options.teleportationTargetMesh || i._createDefaultTargetMesh(), (i._floorMeshes = i._options.floorMeshes || []), (i._snapToPositions = i._options.snapPositions || []), i._setTargetMeshVisibility(!1), i ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "snapPointsOnly", { get: function () { return !!this._options.snapPointsOnly; }, set: function (e) { this._options.snapPointsOnly = e; }, enumerable: !0, configurable: !0, }), (t.prototype.addFloorMesh = function (e) { this._floorMeshes.push(e); }), (t.prototype.addSnapPoint = function (e) { this._snapToPositions.push(e); }), (t.prototype.attach = function () { var t = this; return ( !!e.prototype.attach.call(this) && (this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, function (e) { t._detachController(e.uniqueId); }), !0) ); }), (t.prototype.detach = function () { var t = this; return ( !!e.prototype.detach.call(this) && (Object.keys(this._controllers).forEach(function (e) { t._detachController(e); }), this._setTargetMeshVisibility(!1), !0) ); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.dispose(!1, !0); }), (t.prototype.removeFloorMesh = function (e) { var t = this._floorMeshes.indexOf(e); -1 !== t && this._floorMeshes.splice(t, 1); }), (t.prototype.removeFloorMeshByName = function (e) { var t = this._xrSessionManager.scene.getMeshByName(e); t && this.removeFloorMesh(t); }), (t.prototype.removeSnapPoint = function (e) { var t = this._snapToPositions.indexOf(e); if (-1 === t) for (var n = 0; n < this._snapToPositions.length; ++n) if (this._snapToPositions[n].equals(e)) { t = n; break; } return -1 !== t && (this._snapToPositions.splice(t, 1), !0); }), (t.prototype.setSelectionFeature = function (e) { this._selectionFeature = e; }), (t.prototype._onXRFrame = function (e) { var t = this, n = this._xrSessionManager.currentFrame, i = this._xrSessionManager.scene; if (this.attach && n) { var r = this._options.teleportationTargetMesh; if (this._currentTeleportationControllerId) { if (!r) return; r.rotationQuaternion = r.rotationQuaternion || new a.b(); var o = this._controllers[this._currentTeleportationControllerId]; if (o.teleportationState.forward) { a.b.RotationYawPitchRollToRef(o.teleportationState.currentRotation + o.teleportationState.baseRotation, 0, 0, r.rotationQuaternion); var s = !1; o.xrController.getWorldPointerRayToRef(this._tmpRay); var c = i.pickWithRay(this._tmpRay, function (e) { var n = t._floorMeshes.indexOf(e); return -1 !== n && t._floorMeshes[n].absolutePosition.y < t._options.xrInput.xrCamera.position.y; }); if (c && c.pickedPoint) (s = !0), this._setTargetMeshPosition(c.pickedPoint), this._setTargetMeshVisibility(!0), this._showParabolicPath(c); else if (this.parabolicRayEnabled) { var l = o.xrController.pointer.rotationQuaternion.toEulerAngles().x, u = Math.PI / 2 - Math.abs(l) + 1, h = this.parabolicCheckRadius * u; this._tmpRay.origin.addToRef(this._tmpRay.direction.scale(2 * h), this._tmpVector), (this._tmpVector.y = this._tmpRay.origin.y), this._tmpRay.origin.addInPlace(this._tmpRay.direction.scale(h)), this._tmpVector.subtractToRef(this._tmpRay.origin, this._tmpRay.direction), this._tmpRay.direction.normalize(); var d = i.pickWithRay(this._tmpRay, function (e) { return -1 !== t._floorMeshes.indexOf(e); }); d && d.pickedPoint && ((s = !0), this._setTargetMeshPosition(d.pickedPoint), this._setTargetMeshVisibility(!0), this._showParabolicPath(d)); } this._setTargetMeshVisibility(s); } else this._setTargetMeshVisibility(!1); } else this._setTargetMeshVisibility(!1); } }), (t.prototype._createDefaultTargetMesh = function () { this._options.defaultTargetMeshOptions = this._options.defaultTargetMeshOptions || {}; var e = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || ci.a.DefaultUtilityLayer.utilityLayerScene : this._xrSessionManager.scene, t = Nn.CreateGround("teleportationTarget", { width: 2, height: 2, subdivisions: 2 }, e); t.isPickable = !1; var n = new An.a("teleportationPlaneDynamicTexture", 512, e, !0); n.hasAlpha = !0; var i = n.getContext(); i.beginPath(), i.arc(256, 256, 200, 0, 2 * Math.PI, !1), (i.fillStyle = this._options.defaultTargetMeshOptions.teleportationFillColor || "#444444"), i.fill(), (i.lineWidth = 10), (i.strokeStyle = this._options.defaultTargetMeshOptions.teleportationBorderColor || "#FFFFFF"), i.stroke(), i.closePath(), n.update(); var r = new Mn.a("teleportationPlaneMaterial", e); (r.diffuseTexture = n), (t.material = r); var o = kn.CreateTorus("torusTeleportation", { diameter: 0.75, thickness: 0.1, tessellation: 20 }, e); if (((o.isPickable = !1), (o.parent = t), !this._options.defaultTargetMeshOptions.disableAnimation)) { var a = new R.a("animationInnerCircle", "position.y", 30, R.a.ANIMATIONTYPE_FLOAT, R.a.ANIMATIONLOOPMODE_CYCLE), c = []; c.push({ frame: 0, value: 0 }), c.push({ frame: 30, value: 0.4 }), c.push({ frame: 60, value: 0 }), a.setKeys(c); var l = new ie(); l.setEasingMode(X.EASINGMODE_EASEINOUT), a.setEasingFunction(l), (o.animations = []), o.animations.push(a), e.beginAnimation(o, 0, 60, !0); } var u = jn.CreateCylinder("cone", { diameterTop: 0, tessellation: 4 }, e); if (((u.isPickable = !1), u.scaling.set(0.5, 0.12, 0.2), u.rotate(Be.a.X, Math.PI / 2), (u.position.z = 0.6), (u.parent = o), this._options.defaultTargetMeshOptions.torusArrowMaterial)) (o.material = this._options.defaultTargetMeshOptions.torusArrowMaterial), (u.material = this._options.defaultTargetMeshOptions.torusArrowMaterial); else { var h = new Mn.a("torusConsMat", e); (h.disableLighting = !!this._options.defaultTargetMeshOptions.disableLighting), h.disableLighting ? (h.emissiveColor = new s.a(0.3, 0.3, 1)) : (h.diffuseColor = new s.a(0.3, 0.3, 1)), (h.alpha = 0.9), (o.material = h), (u.material = h), (this._teleportationRingMaterial = h); } void 0 !== this._options.renderingGroupId && ((t.renderingGroupId = this._options.renderingGroupId), (o.renderingGroupId = this._options.renderingGroupId), (u.renderingGroupId = this._options.renderingGroupId)), (this._options.teleportationTargetMesh = t); }), (t.prototype._detachController = function (e) { var t = this._controllers[e]; t && (t.teleportationComponent && (t.onAxisChangedObserver && t.teleportationComponent.onAxisValueChangedObservable.remove(t.onAxisChangedObserver), t.onButtonChangedObserver && t.teleportationComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver)), delete this._controllers[e]); }), (t.prototype._findClosestSnapPointWithRadius = function (e, t) { void 0 === t && (t = this._options.snapToPositionRadius || 0.8); var n = null, i = Number.MAX_VALUE; if (this._snapToPositions.length) { var r = t * t; this._snapToPositions.forEach(function (t) { var o = a.e.DistanceSquared(t, e); o <= r && o < i && ((i = o), (n = t)); }); } return n; }), (t.prototype._setTargetMeshPosition = function (e) { if (this._options.teleportationTargetMesh) { var t = this._findClosestSnapPointWithRadius(e); (this._snappedToPoint = !!t), this.snapPointsOnly && !this._snappedToPoint && this._teleportationRingMaterial ? this._teleportationRingMaterial.diffuseColor.set(1, 0.3, 0.3) : this.snapPointsOnly && this._snappedToPoint && this._teleportationRingMaterial && this._teleportationRingMaterial.diffuseColor.set(0.3, 0.3, 1), this._options.teleportationTargetMesh.position.copyFrom(t || e), (this._options.teleportationTargetMesh.position.y += 0.01); } }), (t.prototype._setTargetMeshVisibility = function (e) { this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.isVisible !== e && ((this._options.teleportationTargetMesh.isVisible = e), this._options.teleportationTargetMesh.getChildren(void 0, !1).forEach(function (t) { t.isVisible = e; }), e ? this._selectionFeature && this._selectionFeature.detach() : (this._quadraticBezierCurve && this._quadraticBezierCurve.dispose(), this._selectionFeature && this._selectionFeature.attach())); }), (t.prototype._showParabolicPath = function (e) { if (e.pickedPoint) { var t = this._controllers[this._currentTeleportationControllerId], n = W.CreateQuadraticBezier(t.xrController.pointer.absolutePosition, e.ray.origin, e.pickedPoint, 25); this._quadraticBezierCurve && this._quadraticBezierCurve.dispose(), (this._quadraticBezierCurve = Ti.CreateLines("path line", { points: n.getPoints() })), (this._quadraticBezierCurve.isPickable = !1); } }), (t.prototype._teleportForward = function (e) { var t = this._controllers[e]; if ( ((t.teleportationState.forward = !1), (this._currentTeleportationControllerId = ""), (!this.snapPointsOnly || this._snappedToPoint) && this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.isVisible) ) { var n = this._options.xrInput.xrCamera.realWorldHeight; this._options.xrInput.xrCamera.position.copyFrom(this._options.teleportationTargetMesh.position), (this._options.xrInput.xrCamera.position.y += n), this._options.xrInput.xrCamera.rotationQuaternion.multiplyInPlace(a.b.FromEulerAngles(0, t.teleportationState.currentRotation, 0)); } }), (t.Name = ao.TELEPORTATION), (t.Version = 1), t ); })(vo); so.AddWebXRFeature( To.Name, function (e, t) { return function () { return new To(e, t); }; }, To.Version, !0 ); var So = function () {}, Oo = (function () { function e() {} return ( (e.CreateAsync = function (t, n) { void 0 === n && (n = {}); var i = new e(); return co .CreateAsync(t) .then(function (e) { return ( (i.baseExperience = e), n.ignoreNativeCameraTransformation && (i.baseExperience.camera.compensateOnFirstFrame = !1), (i.input = new _o(e.sessionManager, e.camera, n.inputOptions)), (i.pointerSelection = i.baseExperience.featuresManager.enableFeature(yo.Name, n.useStablePlugins ? "stable" : "latest", { xrInput: i.input })), n.disableTeleportation || ((i.teleportation = i.baseExperience.featuresManager.enableFeature(To.Name, n.useStablePlugins ? "stable" : "latest", { floorMeshes: n.floorMeshes, xrInput: i.input })), i.teleportation.setSelectionFeature(i.pointerSelection)), (i.renderTarget = i.baseExperience.sessionManager.getWebXRRenderTarget(n.outputCanvasOptions)), n.disableDefaultUI ? void 0 : (n.uiOptions && (n.uiOptions.renderTarget = n.uiOptions.renderTarget || i.renderTarget), xo.CreateAsync(t, i.baseExperience, n.uiOptions || { renderTarget: i.renderTarget }).then(function (e) { i.enterExitUI = e; })) ); }) .then(function () { return i; }) .catch(function (e) { return g.a.Error("Error initializing XR"), g.a.Error(e), i; }); }), (e.prototype.dispose = function () { this.baseExperience && this.baseExperience.dispose(), this.input && this.input.dispose(), this.enterExitUI && this.enterExitUI.dispose(), this.renderTarget && this.renderTarget.dispose(); }), e ); })(), Eo = !0; (ge.a.prototype.createDefaultLight = function (e) { if ((void 0 === e && (e = !1), e && this.lights)) for (var t = 0; t < this.lights.length; t++) this.lights[t].dispose(); 0 === this.lights.length && new xn.a("default light", a.e.Up(), this); }), (ge.a.prototype.createDefaultCamera = function (e, t, n) { if ((void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1), t && this.activeCamera && (this.activeCamera.dispose(), (this.activeCamera = null)), !this.activeCamera)) { var i, r = this.getWorldExtends(), o = r.max.subtract(r.min), s = r.min.add(o.scale(0.5)), c = 1.5 * o.length(); if ((isFinite(c) || ((c = 1), s.copyFromFloats(0, 0, 0)), e)) { var l = new xt("default camera", -Math.PI / 2, Math.PI / 2, c, s, this); (l.lowerRadiusLimit = 0.01 * c), (l.wheelPrecision = 100 / c), (i = l); } else { var u = new yt.a("default camera", new a.e(s.x, s.y, -c), this); u.setTarget(s), (i = u); } (i.minZ = 0.01 * c), (i.maxZ = 1e3 * c), (i.speed = 0.2 * c), (this.activeCamera = i); var h = this.getEngine().getInputElement(); n && h && i.attachControl(h); } }), (ge.a.prototype.createDefaultCameraOrLight = function (e, t, n) { void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1), this.createDefaultLight(t), this.createDefaultCamera(e, t, n); }), (ge.a.prototype.createDefaultSkybox = function (e, t, n, i, r) { if ((void 0 === t && (t = !1), void 0 === n && (n = 1e3), void 0 === i && (i = 0), void 0 === r && (r = !0), !e)) return g.a.Warn("Can not create default skybox without environment texture."), null; r && e && (this.environmentTexture = e); var o = Ee.a.CreateBox("hdrSkyBox", n, this); if (t) { var a = new Hr.a("skyBox", this); (a.backFaceCulling = !1), (a.reflectionTexture = e.clone()), a.reflectionTexture && (a.reflectionTexture.coordinatesMode = ln.a.SKYBOX_MODE), (a.microSurface = 1 - i), (a.disableLighting = !0), (a.twoSidedLighting = !0), (o.infiniteDistance = !0), (o.material = a); } else { var s = new Mn.a("skyBox", this); (s.backFaceCulling = !1), (s.reflectionTexture = e.clone()), s.reflectionTexture && (s.reflectionTexture.coordinatesMode = ln.a.SKYBOX_MODE), (s.disableLighting = !0), (o.infiniteDistance = !0), (o.material = s); } return (o.isPickable = !1), o; }), (ge.a.prototype.createDefaultEnvironment = function (e) { return Gr ? new Gr(e, this) : null; }), (ge.a.prototype.createDefaultVRExperience = function (e) { return void 0 === e && (e = {}), new Kn(this, e); }), (ge.a.prototype.createDefaultXRExperienceAsync = function (e) { return Oo.CreateAsync(this, e).then(function (e) { return e; }); }), (Mi.a.prototype.updateVideoTexture = function (e, t, n) { if (e && !e._isDisabled) { var i = this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0); this._unpackFlipY(!n); try { if ( (void 0 === this._videoTextureSupported && (this._gl.texImage2D(this._gl.TEXTURE_2D, 0, this._gl.RGBA, this._gl.RGBA, this._gl.UNSIGNED_BYTE, t), 0 !== this._gl.getError() ? (this._videoTextureSupported = !1) : (this._videoTextureSupported = !0)), this._videoTextureSupported) ) this._gl.texImage2D(this._gl.TEXTURE_2D, 0, this._gl.RGBA, this._gl.RGBA, this._gl.UNSIGNED_BYTE, t); else { if (!e._workingCanvas) { e._workingCanvas = Fn.a.CreateCanvas(e.width, e.height); var r = e._workingCanvas.getContext("2d"); if (!r) throw new Error("Unable to get 2d context"); (e._workingContext = r), (e._workingCanvas.width = e.width), (e._workingCanvas.height = e.height); } e._workingContext.drawImage(t, 0, 0, t.videoWidth, t.videoHeight, 0, 0, e.width, e.height), this._gl.texImage2D(this._gl.TEXTURE_2D, 0, this._gl.RGBA, this._gl.RGBA, this._gl.UNSIGNED_BYTE, e._workingCanvas); } e.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D), i || this._bindTextureDirectly(this._gl.TEXTURE_2D, null), (e.isReady = !0); } catch (t) { e._isDisabled = !0; } } }); var Mo = (function (e) { function t(t, n, i, r, o, a, s) { void 0 === r && (r = !1), void 0 === o && (o = !1), void 0 === a && (a = ln.a.TRILINEAR_SAMPLINGMODE), void 0 === s && (s = { autoPlay: !0, loop: !0, autoUpdateTexture: !0 }); var c = e.call(this, null, i, !r, o) || this; (c._onUserActionRequestedObservable = null), (c._stillImageCaptured = !1), (c._displayingPosterTexture = !1), (c._frameId = -1), (c._currentSrc = null), (c._createInternalTexture = function () { if (null != c._texture) { if (!c._displayingPosterTexture) return; c._texture.dispose(), (c._displayingPosterTexture = !1); } if ( (!c._engine.needPOTTextures || ($e.b.IsExponentOfTwo(c.video.videoWidth) && $e.b.IsExponentOfTwo(c.video.videoHeight)) ? ((c.wrapU = ln.a.WRAP_ADDRESSMODE), (c.wrapV = ln.a.WRAP_ADDRESSMODE)) : ((c.wrapU = ln.a.CLAMP_ADDRESSMODE), (c.wrapV = ln.a.CLAMP_ADDRESSMODE), (c._generateMipMaps = !1)), (c._texture = c._engine.createDynamicTexture(c.video.videoWidth, c.video.videoHeight, c._generateMipMaps, c.samplingMode)), c.video.autoplay || c._settings.poster) ) (c._texture.isReady = !0), c._updateInternalTexture(), c.onLoadObservable.hasObservers() && c.onLoadObservable.notifyObservers(c); else { var e = c.video.onplaying, t = !1, n = c.video.muted; (c.video.muted = !0), (c.video.onplaying = function () { (c.video.muted = n), (c.video.onplaying = e), (c._texture.isReady = !0), c._updateInternalTexture(), t || c.video.pause(), c.onLoadObservable.hasObservers() && c.onLoadObservable.notifyObservers(c); }); var i = c.video.play(); i ? i .then(function () {}) .catch(function () { (t = !0), c._onUserActionRequestedObservable && c._onUserActionRequestedObservable.hasObservers() && c._onUserActionRequestedObservable.notifyObservers(c); }) : ((c.video.onplaying = e), (c._texture.isReady = !0), c._updateInternalTexture(), c.onLoadObservable.hasObservers() && c.onLoadObservable.notifyObservers(c)); } }), (c.reset = function () { null != c._texture && (c._displayingPosterTexture || (c._texture.dispose(), (c._texture = null))); }), (c._updateInternalTexture = function () { if (null != c._texture && c._texture.isReady && !(c.video.readyState < c.video.HAVE_CURRENT_DATA || c._displayingPosterTexture)) { var e = c.getScene().getFrameId(); c._frameId !== e && ((c._frameId = e), c._engine.updateVideoTexture(c._texture, c.video, c._invertY)); } }), (c._engine = c.getScene().getEngine()), (c._generateMipMaps = r), (c._initialSamplingMode = a), (c.autoUpdateTexture = s.autoUpdateTexture), (c._currentSrc = n), (c.name = t || c._getName(n)), (c.video = c._getVideo(n)), (c._settings = s), s.poster && (c.video.poster = s.poster), void 0 !== s.autoPlay && (c.video.autoplay = s.autoPlay), void 0 !== s.loop && (c.video.loop = s.loop), c.video.setAttribute("playsinline", ""), c.video.addEventListener("paused", c._updateInternalTexture), c.video.addEventListener("seeked", c._updateInternalTexture), c.video.addEventListener("emptied", c.reset), (c._createInternalTextureOnEvent = s.poster && !s.autoPlay ? "play" : "canplay"), c.video.addEventListener(c._createInternalTextureOnEvent, c._createInternalTexture); var l = c.video.readyState >= c.video.HAVE_CURRENT_DATA; return !s.poster || (s.autoPlay && l) ? l && c._createInternalTexture() : ((c._texture = c._engine.createTexture(s.poster, !1, !c.invertY, i)), (c._displayingPosterTexture = !0)), c; } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "onUserActionRequestedObservable", { get: function () { return this._onUserActionRequestedObservable || (this._onUserActionRequestedObservable = new o.c()), this._onUserActionRequestedObservable; }, enumerable: !0, configurable: !0, }), (t.prototype._getName = function (e) { return e instanceof HTMLVideoElement ? e.currentSrc : "object" == typeof e ? e.toString() : e; }), (t.prototype._getVideo = function (e) { if (e instanceof HTMLVideoElement) return $e.b.SetCorsBehavior(e.currentSrc, e), e; var t = document.createElement("video"); return ( "string" == typeof e ? ($e.b.SetCorsBehavior(e, t), (t.src = e)) : ($e.b.SetCorsBehavior(e[0], t), e.forEach(function (e) { var n = document.createElement("source"); (n.src = e), t.appendChild(n); })), t ); }), (t.prototype._rebuild = function () { this.update(); }), (t.prototype.update = function () { this.autoUpdateTexture && this.updateTexture(!0); }), (t.prototype.updateTexture = function (e) { e && ((this.video.paused && this._stillImageCaptured) || ((this._stillImageCaptured = !0), this._updateInternalTexture())); }), (t.prototype.updateURL = function (e) { (this.video.src = e), (this._currentSrc = e); }), (t.prototype.clone = function () { return new t(this.name, this._currentSrc, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), (this._currentSrc = null), this._onUserActionRequestedObservable && (this._onUserActionRequestedObservable.clear(), (this._onUserActionRequestedObservable = null)), this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture), this.video.removeEventListener("paused", this._updateInternalTexture), this.video.removeEventListener("seeked", this._updateInternalTexture), this.video.removeEventListener("emptied", this.reset), this.video.pause(); }), (t.CreateFromStreamAsync = function (e, n) { var i = document.createElement("video"); return ( i.setAttribute("autoplay", ""), i.setAttribute("muted", "true"), i.setAttribute("playsinline", ""), (i.muted = !0), void 0 !== i.mozSrcObject ? (i.mozSrcObject = n) : "object" == typeof i.srcObject ? (i.srcObject = n) : ((window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL), (i.src = window.URL && window.URL.createObjectURL(n))), new Promise(function (n) { var r = function () { n(new t("video", i, e, !0, !0)), i.removeEventListener("playing", r); }; i.addEventListener("playing", r), i.play(); }) ); }), (t.CreateFromWebCamAsync = function (e, t, n) { var i, r = this; return ( void 0 === n && (n = !1), t && t.deviceId && (i = { exact: t.deviceId }), navigator.mediaDevices ? navigator.mediaDevices.getUserMedia({ video: t, audio: n }).then(function (t) { return r.CreateFromStreamAsync(e, t); }) : ((navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia), navigator.getUserMedia && navigator.getUserMedia( { video: { deviceId: i, width: { min: (t && t.minWidth) || 256, max: (t && t.maxWidth) || 640 }, height: { min: (t && t.minHeight) || 256, max: (t && t.maxHeight) || 480 } }, audio: n }, function (t) { return r.CreateFromStreamAsync(e, t); }, function (e) { g.a.Error(e.name); } ), Promise.reject("No support for userMedia on this device")) ); }), (t.CreateFromWebCam = function (e, t, n, i) { void 0 === i && (i = !1), this.CreateFromWebCamAsync(e, n, i) .then(function (e) { t && t(e); }) .catch(function (e) { g.a.Error(e.name); }); }), t ); })(ln.a), Ao = (function () { function e(e, t) { void 0 === e && (e = a.e.Zero()), void 0 === t && (t = a.e.Up()), (this.position = e), (this.normal = t); } return ( (e.prototype.clone = function () { return new e(this.position.clone(), this.normal.clone()); }), e ); })(), Io = (function () { function e(e, t, n) { void 0 === e && (e = a.e.Zero()), void 0 === t && (t = a.e.Up()), void 0 === n && (n = a.d.Zero()), (this.position = e), (this.normal = t), (this.uv = n); } return ( (e.prototype.clone = function () { return new e(this.position.clone(), this.normal.clone(), this.uv.clone()); }), e ); })(), Do = (function (e) { function t(n, i, r, o) { var s = e.call(this, n, o) || this; (s._halfDome = !1), (s._useDirectMapping = !1), (s._videoMode = t.MODE_MONOSCOPIC), (s._onBeforeCameraRenderObserver = null), (o = s.getScene()), (n = n || "videoDome"), (r.resolution = 0 | Math.abs(r.resolution) || 32), (r.clickToPlay = Boolean(r.clickToPlay)), (r.autoPlay = void 0 === r.autoPlay || Boolean(r.autoPlay)), (r.loop = void 0 === r.loop || Boolean(r.loop)), (r.size = Math.abs(r.size) || (o.activeCamera ? 0.48 * o.activeCamera.maxZ : 1e3)), void 0 === r.useDirectMapping ? (s._useDirectMapping = !0) : (s._useDirectMapping = r.useDirectMapping), void 0 === r.faceForward && (r.faceForward = !0), s._setReady(!1); var c = { loop: r.loop, autoPlay: r.autoPlay, autoUpdateTexture: !0, poster: r.poster }, l = (s._material = new Vr(n + "_material", o)), u = (s._videoTexture = new Mo(n + "_texture", i, o, !1, s._useDirectMapping, ln.a.TRILINEAR_SAMPLINGMODE, c)); if ( ((s._mesh = Ee.a.CreateSphere(n + "_mesh", r.resolution, r.size, o, !1, Ee.a.BACKSIDE)), (u.anisotropicFilteringLevel = 1), u.onLoadObservable.addOnce(function () { s._setReady(!0); }), (l.useEquirectangularFOV = !0), (l.fovMultiplier = 1), (l.opacityFresnel = !1), s._useDirectMapping ? ((u.wrapU = ln.a.CLAMP_ADDRESSMODE), (u.wrapV = ln.a.CLAMP_ADDRESSMODE), (l.diffuseTexture = u)) : ((u.coordinatesMode = ln.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE), (u.wrapV = ln.a.CLAMP_ADDRESSMODE), (l.reflectionTexture = u)), (s._mesh.material = l), (s._mesh.parent = s), (s._halfDomeMask = mi.CreateSphere("", { slice: 0.5, diameter: 0.99 * r.size, segments: r.resolution, sideOrientation: Ee.a.BACKSIDE }, o)), s._halfDomeMask.rotate(Be.a.X, -Math.PI / 2), (s._halfDomeMask.parent = s._mesh), (s._halfDome = !!r.halfDomeMode), s._halfDomeMask.setEnabled(s._halfDome), r.clickToPlay && (o.onPointerUp = function () { s._videoTexture.video.play(); }), r.faceForward && o.activeCamera) ) { var h = o.activeCamera, d = a.e.Forward(), p = a.e.TransformNormal(d, h.getViewMatrix()); p.normalize(), (s.rotation.y = Math.acos(a.e.Dot(d, p))); } return s; } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "videoTexture", { get: function () { return this._videoTexture; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fovMultiplier", { get: function () { return this._material.fovMultiplier; }, set: function (e) { this._material.fovMultiplier = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "videoMode", { get: function () { return this._videoMode; }, set: function (e) { this._videoMode !== e && this._changeVideoMode(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "halfDome", { get: function () { return this._halfDome; }, set: function (e) { (this._halfDome = e), this._halfDomeMask.setEnabled(e); }, enumerable: !0, configurable: !0, }), (t.prototype._changeVideoMode = function (e) { var n = this; switch ( (this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), (this._videoMode = e), (this._videoTexture.uScale = 1), (this._videoTexture.vScale = 1), (this._videoTexture.uOffset = 0), (this._videoTexture.vOffset = 0), e) ) { case t.MODE_SIDEBYSIDE: this._videoTexture.uScale = this._halfDome ? 0.99999 : 0.5; var i = this._halfDome ? 0 : 0.5, r = this._halfDome ? 0.5 : 0; this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) { n._videoTexture.uOffset = e.isRightCamera ? i : r; }); break; case t.MODE_TOPBOTTOM: (this._videoTexture.vScale = this._halfDome ? 0.99999 : 0.5), (this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add(function (e) { n._videoTexture.vOffset = e.isRightCamera ? 0.5 : 0; })); } }), (t.prototype.dispose = function (t, n) { void 0 === n && (n = !1), this._videoTexture.dispose(), this._mesh.dispose(), this._material.dispose(), this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), e.prototype.dispose.call(this, t, n); }), (t.MODE_MONOSCOPIC = 0), (t.MODE_TOPBOTTOM = 1), (t.MODE_SIDEBYSIDE = 2), t ); })(si.a), Ro = n(69), wo = (function () { function e(e) { (this.engine = e), (this._captureGPUFrameTime = !1), (this._gpuFrameTime = new Ro.a()), (this._captureShaderCompilationTime = !1), (this._shaderCompilationTime = new Ro.a()), (this._onBeginFrameObserver = null), (this._onEndFrameObserver = null), (this._onBeforeShaderCompilationObserver = null), (this._onAfterShaderCompilationObserver = null); } return ( Object.defineProperty(e.prototype, "gpuFrameTimeCounter", { get: function () { return this._gpuFrameTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureGPUFrameTime", { get: function () { return this._captureGPUFrameTime; }, set: function (e) { var t = this; e !== this._captureGPUFrameTime && ((this._captureGPUFrameTime = e), e ? ((this._onBeginFrameObserver = this.engine.onBeginFrameObservable.add(function () { t._gpuFrameTimeToken || (t._gpuFrameTimeToken = t.engine.startTimeQuery()); })), (this._onEndFrameObserver = this.engine.onEndFrameObservable.add(function () { if (t._gpuFrameTimeToken) { var e = t.engine.endTimeQuery(t._gpuFrameTimeToken); e > -1 && ((t._gpuFrameTimeToken = null), t._gpuFrameTime.fetchNewFrame(), t._gpuFrameTime.addCount(e, !0)); } }))) : (this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver), (this._onBeginFrameObserver = null), this.engine.onEndFrameObservable.remove(this._onEndFrameObserver), (this._onEndFrameObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "shaderCompilationTimeCounter", { get: function () { return this._shaderCompilationTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureShaderCompilationTime", { get: function () { return this._captureShaderCompilationTime; }, set: function (e) { var t = this; e !== this._captureShaderCompilationTime && ((this._captureShaderCompilationTime = e), e ? ((this._onBeforeShaderCompilationObserver = this.engine.onBeforeShaderCompilationObservable.add(function () { t._shaderCompilationTime.fetchNewFrame(), t._shaderCompilationTime.beginMonitoring(); })), (this._onAfterShaderCompilationObserver = this.engine.onAfterShaderCompilationObservable.add(function () { t._shaderCompilationTime.endMonitoring(); }))) : (this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver), (this._onBeforeShaderCompilationObserver = null), this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver), (this._onAfterShaderCompilationObserver = null))); }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver), (this._onBeginFrameObserver = null), this.engine.onEndFrameObservable.remove(this._onEndFrameObserver), (this._onEndFrameObserver = null), this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver), (this._onBeforeShaderCompilationObserver = null), this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver), (this._onAfterShaderCompilationObserver = null), (this.engine = null); }), e ); })(), Lo = (function () { function e(e) { var t = this; (this.scene = e), (this._captureActiveMeshesEvaluationTime = !1), (this._activeMeshesEvaluationTime = new Ro.a()), (this._captureRenderTargetsRenderTime = !1), (this._renderTargetsRenderTime = new Ro.a()), (this._captureFrameTime = !1), (this._frameTime = new Ro.a()), (this._captureRenderTime = !1), (this._renderTime = new Ro.a()), (this._captureInterFrameTime = !1), (this._interFrameTime = new Ro.a()), (this._captureParticlesRenderTime = !1), (this._particlesRenderTime = new Ro.a()), (this._captureSpritesRenderTime = !1), (this._spritesRenderTime = new Ro.a()), (this._capturePhysicsTime = !1), (this._physicsTime = new Ro.a()), (this._captureAnimationsTime = !1), (this._animationsTime = new Ro.a()), (this._captureCameraRenderTime = !1), (this._cameraRenderTime = new Ro.a()), (this._onBeforeActiveMeshesEvaluationObserver = null), (this._onAfterActiveMeshesEvaluationObserver = null), (this._onBeforeRenderTargetsRenderObserver = null), (this._onAfterRenderTargetsRenderObserver = null), (this._onAfterRenderObserver = null), (this._onBeforeDrawPhaseObserver = null), (this._onAfterDrawPhaseObserver = null), (this._onBeforeAnimationsObserver = null), (this._onBeforeParticlesRenderingObserver = null), (this._onAfterParticlesRenderingObserver = null), (this._onBeforeSpritesRenderingObserver = null), (this._onAfterSpritesRenderingObserver = null), (this._onBeforePhysicsObserver = null), (this._onAfterPhysicsObserver = null), (this._onAfterAnimationsObserver = null), (this._onBeforeCameraRenderObserver = null), (this._onAfterCameraRenderObserver = null), (this._onBeforeAnimationsObserver = e.onBeforeAnimationsObservable.add(function () { t._captureActiveMeshesEvaluationTime && t._activeMeshesEvaluationTime.fetchNewFrame(), t._captureRenderTargetsRenderTime && t._renderTargetsRenderTime.fetchNewFrame(), t._captureFrameTime && ($e.b.StartPerformanceCounter("Scene rendering"), t._frameTime.beginMonitoring()), t._captureInterFrameTime && t._interFrameTime.endMonitoring(), t._captureParticlesRenderTime && t._particlesRenderTime.fetchNewFrame(), t._captureSpritesRenderTime && t._spritesRenderTime.fetchNewFrame(), t._captureAnimationsTime && t._animationsTime.beginMonitoring(), t.scene.getEngine()._drawCalls.fetchNewFrame(); })), (this._onAfterRenderObserver = e.onAfterRenderObservable.add(function () { t._captureFrameTime && ($e.b.EndPerformanceCounter("Scene rendering"), t._frameTime.endMonitoring()), t._captureRenderTime && t._renderTime.endMonitoring(!1), t._captureInterFrameTime && t._interFrameTime.beginMonitoring(); })); } return ( Object.defineProperty(e.prototype, "activeMeshesEvaluationTimeCounter", { get: function () { return this._activeMeshesEvaluationTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureActiveMeshesEvaluationTime", { get: function () { return this._captureActiveMeshesEvaluationTime; }, set: function (e) { var t = this; e !== this._captureActiveMeshesEvaluationTime && ((this._captureActiveMeshesEvaluationTime = e), e ? ((this._onBeforeActiveMeshesEvaluationObserver = this.scene.onBeforeActiveMeshesEvaluationObservable.add(function () { $e.b.StartPerformanceCounter("Active meshes evaluation"), t._activeMeshesEvaluationTime.beginMonitoring(); })), (this._onAfterActiveMeshesEvaluationObserver = this.scene.onAfterActiveMeshesEvaluationObservable.add(function () { $e.b.EndPerformanceCounter("Active meshes evaluation"), t._activeMeshesEvaluationTime.endMonitoring(); }))) : (this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver), (this._onBeforeActiveMeshesEvaluationObserver = null), this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver), (this._onAfterActiveMeshesEvaluationObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "renderTargetsRenderTimeCounter", { get: function () { return this._renderTargetsRenderTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureRenderTargetsRenderTime", { get: function () { return this._captureRenderTargetsRenderTime; }, set: function (e) { var t = this; e !== this._captureRenderTargetsRenderTime && ((this._captureRenderTargetsRenderTime = e), e ? ((this._onBeforeRenderTargetsRenderObserver = this.scene.onBeforeRenderTargetsRenderObservable.add(function () { $e.b.StartPerformanceCounter("Render targets rendering"), t._renderTargetsRenderTime.beginMonitoring(); })), (this._onAfterRenderTargetsRenderObserver = this.scene.onAfterRenderTargetsRenderObservable.add(function () { $e.b.EndPerformanceCounter("Render targets rendering"), t._renderTargetsRenderTime.endMonitoring(!1); }))) : (this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver), (this._onBeforeRenderTargetsRenderObserver = null), this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver), (this._onAfterRenderTargetsRenderObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "particlesRenderTimeCounter", { get: function () { return this._particlesRenderTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureParticlesRenderTime", { get: function () { return this._captureParticlesRenderTime; }, set: function (e) { var t = this; e !== this._captureParticlesRenderTime && ((this._captureParticlesRenderTime = e), e ? ((this._onBeforeParticlesRenderingObserver = this.scene.onBeforeParticlesRenderingObservable.add(function () { $e.b.StartPerformanceCounter("Particles"), t._particlesRenderTime.beginMonitoring(); })), (this._onAfterParticlesRenderingObserver = this.scene.onAfterParticlesRenderingObservable.add(function () { $e.b.EndPerformanceCounter("Particles"), t._particlesRenderTime.endMonitoring(!1); }))) : (this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver), (this._onBeforeParticlesRenderingObserver = null), this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver), (this._onAfterParticlesRenderingObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "spritesRenderTimeCounter", { get: function () { return this._spritesRenderTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureSpritesRenderTime", { get: function () { return this._captureSpritesRenderTime; }, set: function (e) { var t = this; e !== this._captureSpritesRenderTime && ((this._captureSpritesRenderTime = e), this.scene.spriteManagers && (e ? ((this._onBeforeSpritesRenderingObserver = this.scene.onBeforeSpritesRenderingObservable.add(function () { $e.b.StartPerformanceCounter("Sprites"), t._spritesRenderTime.beginMonitoring(); })), (this._onAfterSpritesRenderingObserver = this.scene.onAfterSpritesRenderingObservable.add(function () { $e.b.EndPerformanceCounter("Sprites"), t._spritesRenderTime.endMonitoring(!1); }))) : (this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver), (this._onBeforeSpritesRenderingObserver = null), this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver), (this._onAfterSpritesRenderingObserver = null)))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "physicsTimeCounter", { get: function () { return this._physicsTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "capturePhysicsTime", { get: function () { return this._capturePhysicsTime; }, set: function (e) { var t = this; e !== this._capturePhysicsTime && this.scene.onBeforePhysicsObservable && ((this._capturePhysicsTime = e), e ? ((this._onBeforePhysicsObserver = this.scene.onBeforePhysicsObservable.add(function () { $e.b.StartPerformanceCounter("Physics"), t._physicsTime.beginMonitoring(); })), (this._onAfterPhysicsObserver = this.scene.onAfterPhysicsObservable.add(function () { $e.b.EndPerformanceCounter("Physics"), t._physicsTime.endMonitoring(); }))) : (this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver), (this._onBeforePhysicsObserver = null), this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver), (this._onAfterPhysicsObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "animationsTimeCounter", { get: function () { return this._animationsTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureAnimationsTime", { get: function () { return this._captureAnimationsTime; }, set: function (e) { var t = this; e !== this._captureAnimationsTime && ((this._captureAnimationsTime = e), e ? (this._onAfterAnimationsObserver = this.scene.onAfterAnimationsObservable.add(function () { t._animationsTime.endMonitoring(); })) : (this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver), (this._onAfterAnimationsObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "frameTimeCounter", { get: function () { return this._frameTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureFrameTime", { get: function () { return this._captureFrameTime; }, set: function (e) { this._captureFrameTime = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "interFrameTimeCounter", { get: function () { return this._interFrameTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureInterFrameTime", { get: function () { return this._captureInterFrameTime; }, set: function (e) { this._captureInterFrameTime = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "renderTimeCounter", { get: function () { return this._renderTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureRenderTime", { get: function () { return this._captureRenderTime; }, set: function (e) { var t = this; e !== this._captureRenderTime && ((this._captureRenderTime = e), e ? ((this._onBeforeDrawPhaseObserver = this.scene.onBeforeDrawPhaseObservable.add(function () { t._renderTime.beginMonitoring(), $e.b.StartPerformanceCounter("Main render"); })), (this._onAfterDrawPhaseObserver = this.scene.onAfterDrawPhaseObservable.add(function () { t._renderTime.endMonitoring(!1), $e.b.EndPerformanceCounter("Main render"); }))) : (this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver), (this._onBeforeDrawPhaseObserver = null), this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver), (this._onAfterDrawPhaseObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "cameraRenderTimeCounter", { get: function () { return this._cameraRenderTime; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "captureCameraRenderTime", { get: function () { return this._captureCameraRenderTime; }, set: function (e) { var t = this; e !== this._captureCameraRenderTime && ((this._captureCameraRenderTime = e), e ? ((this._onBeforeCameraRenderObserver = this.scene.onBeforeCameraRenderObservable.add(function (e) { t._cameraRenderTime.beginMonitoring(), $e.b.StartPerformanceCounter("Rendering camera " + e.name); })), (this._onAfterCameraRenderObserver = this.scene.onAfterCameraRenderObservable.add(function (e) { t._cameraRenderTime.endMonitoring(!1), $e.b.EndPerformanceCounter("Rendering camera " + e.name); }))) : (this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), (this._onBeforeCameraRenderObserver = null), this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver), (this._onAfterCameraRenderObserver = null))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "drawCallsCounter", { get: function () { return this.scene.getEngine()._drawCalls; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = null), this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver), (this._onBeforeActiveMeshesEvaluationObserver = null), this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver), (this._onAfterActiveMeshesEvaluationObserver = null), this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver), (this._onBeforeRenderTargetsRenderObserver = null), this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver), (this._onAfterRenderTargetsRenderObserver = null), this.scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver), (this._onBeforeAnimationsObserver = null), this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver), (this._onBeforeParticlesRenderingObserver = null), this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver), (this._onAfterParticlesRenderingObserver = null), this._onBeforeSpritesRenderingObserver && (this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver), (this._onBeforeSpritesRenderingObserver = null)), this._onAfterSpritesRenderingObserver && (this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver), (this._onAfterSpritesRenderingObserver = null)), this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver), (this._onBeforeDrawPhaseObserver = null), this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver), (this._onAfterDrawPhaseObserver = null), this._onBeforePhysicsObserver && (this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver), (this._onBeforePhysicsObserver = null)), this._onAfterPhysicsObserver && (this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver), (this._onAfterPhysicsObserver = null)), this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver), (this._onAfterAnimationsObserver = null), this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), (this._onBeforeCameraRenderObserver = null), this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver), (this._onAfterCameraRenderObserver = null), (this.scene = null); }), e ); })(), Fo = n(28), No = "#ifdef DIFFUSE\nvarying vec2 vUVDiffuse;\nuniform sampler2D diffuseSampler;\n#endif\n#ifdef OPACITY\nvarying vec2 vUVOpacity;\nuniform sampler2D opacitySampler;\nuniform float opacityIntensity;\n#endif\n#ifdef EMISSIVE\nvarying vec2 vUVEmissive;\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef VERTEXALPHA\nvarying vec4 vColor;\n#endif\nuniform vec4 glowColor;\nvoid main(void)\n{\nvec4 finalColor=glowColor;\n\n#ifdef DIFFUSE\nvec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\nfinalColor.a*=albedoTexture.a;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vUVOpacity);\n#ifdef OPACITYRGB\nfinalColor.a*=getLuminance(opacityMap.rgb);\n#else\nfinalColor.a*=opacityMap.a;\n#endif\nfinalColor.a*=opacityIntensity;\n#endif\n#ifdef VERTEXALPHA\nfinalColor.a*=vColor.a;\n#endif\n#ifdef ALPHATEST\nif (finalColor.a 4 && (o.push(wn.b.MatricesIndicesExtraKind), o.push(wn.b.MatricesWeightsExtraKind)), r.push("#define NUM_BONE_INFLUENCERS " + a.numBoneInfluencers); var f = a.skeleton; f && f.isUsingTextureForMatrices ? r.push("#define BONETEXTURE") : r.push("#define BonesPerMesh " + (f ? f.bones.length + 1 : 0)), a.numBoneInfluencers > 0 && p.addCPUSkinningFallback(0, a); } else r.push("#define NUM_BONE_INFLUENCERS 0"); var m = a.morphTargetManager, g = 0; m && m.numInfluencers > 0 && (r.push("#define MORPHTARGETS"), (g = m.numInfluencers), r.push("#define NUM_MORPH_INFLUENCERS " + g), Ir.a.PrepareAttributesForMorphTargetsInfluencers(o, a, g)), t && (r.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(o)), this._addCustomEffectDefines(r); var b = r.join("\n"); return ( this._cachedDefines !== b && ((this._cachedDefines = b), (this._effectLayerMapGenerationEffect = this._scene .getEngine() .createEffect( "glowMapGeneration", o, ["world", "mBones", "viewProjection", "glowColor", "morphTargetInfluences", "boneTextureWidth", "diffuseMatrix", "emissiveMatrix", "opacityMatrix", "opacityIntensity"], ["diffuseSampler", "emissiveSampler", "opacitySampler", "boneSampler"], b, p, void 0, void 0, { maxSimultaneousMorphTargets: g } ))), this._effectLayerMapGenerationEffect.isReady() ); }), (e.prototype.render = function () { var e = this._mergeEffect; if (e.isReady()) { for (var t = 0; t < this._postProcesses.length; t++) if (!this._postProcesses[t].isReady()) return; var n = this._scene.getEngine(); this.onBeforeComposeObservable.notifyObservers(this), n.enableEffect(e), n.setState(!1), n.bindBuffers(this._vertexBuffers, this._indexBuffer, e); var i = n.getAlphaMode(); n.setAlphaMode(this._effectLayerOptions.alphaBlendingMode), this._internalRender(e), n.setAlphaMode(i), this.onAfterComposeObservable.notifyObservers(this); var r = this._mainTexture.getSize(); this._setMainTextureSize(), (r.width === this._mainTextureDesiredSize.width && r.height === this._mainTextureDesiredSize.height) || (this.onSizeChangedObservable.notifyObservers(this), this._disposeTextureAndPostProcesses(), this._createMainTexture(), this._createTextureAndPostProcesses()); } }), (e.prototype.hasMesh = function (e) { return -1 === this.renderingGroupId || e.renderingGroupId === this.renderingGroupId; }), (e.prototype.shouldRender = function () { return this.isEnabled && this._shouldRender; }), (e.prototype._shouldRenderMesh = function (e) { return !0; }), (e.prototype._canRenderMesh = function (e, t) { return !t.needAlphaBlendingForMesh(e); }), (e.prototype._shouldRenderEmissiveTextureForMesh = function () { return !0; }), (e.prototype._renderSubMesh = function (e, t) { var n = this; if ((void 0 === t && (t = !1), this.shouldRender())) { var i = e.getMaterial(), r = e.getRenderingMesh(), o = this._scene, a = o.getEngine(); if (((r._internalAbstractMeshDataInfo._isActiveIntermediate = !1), i && this._canRenderMesh(r, i))) { a.setState(i.backFaceCulling); var s = r._getInstancesRenderList(e._id); if (!s.mustReturn && this._shouldRenderMesh(r)) { var c = s.hardwareInstancedRendering[e._id]; if ((this._setEmissiveTextureAndColor(r, e, i), this.onBeforeRenderMeshToEffect.notifyObservers(r), this._useMeshMaterial(r))) r.render(e, c); else if (this._isReady(e, c, this._emissiveTextureAndColor.texture)) { a.enableEffect(this._effectLayerMapGenerationEffect), r._bind(e, this._effectLayerMapGenerationEffect, Fo.a.TriangleFillMode), this._effectLayerMapGenerationEffect.setMatrix("viewProjection", o.getTransformMatrix()), this._effectLayerMapGenerationEffect.setFloat4( "glowColor", this._emissiveTextureAndColor.color.r, this._emissiveTextureAndColor.color.g, this._emissiveTextureAndColor.color.b, this._emissiveTextureAndColor.color.a ); var l = i.needAlphaTesting(), u = i.getAlphaTestTexture(), h = u && u.hasAlpha && (i.useAlphaFromDiffuseTexture || i._useAlphaFromAlbedoTexture); if (u && (l || h)) this._effectLayerMapGenerationEffect.setTexture("diffuseSampler", u), (d = u.getTextureMatrix()) && this._effectLayerMapGenerationEffect.setMatrix("diffuseMatrix", d); var d, p = i.opacityTexture; if (p) this._effectLayerMapGenerationEffect.setTexture("opacitySampler", p), this._effectLayerMapGenerationEffect.setFloat("opacityIntensity", p.level), (d = p.getTextureMatrix()) && this._effectLayerMapGenerationEffect.setMatrix("opacityMatrix", d); if ( (this._emissiveTextureAndColor.texture && (this._effectLayerMapGenerationEffect.setTexture("emissiveSampler", this._emissiveTextureAndColor.texture), this._effectLayerMapGenerationEffect.setMatrix("emissiveMatrix", this._emissiveTextureAndColor.texture.getTextureMatrix())), r.useBones && r.computeBonesUsingShaders && r.skeleton) ) { var f = r.skeleton; if (f.isUsingTextureForMatrices) { var m = f.getTransformMatrixTexture(r); if (!m) return; this._effectLayerMapGenerationEffect.setTexture("boneSampler", m), this._effectLayerMapGenerationEffect.setFloat("boneTextureWidth", 4 * (f.bones.length + 1)); } else this._effectLayerMapGenerationEffect.setMatrices("mBones", f.getTransformMatrices(r)); } Ir.a.BindMorphTargetParameters(r, this._effectLayerMapGenerationEffect), t && a.setAlphaMode(i.alphaMode), r._processRendering(e, this._effectLayerMapGenerationEffect, i.fillMode, s, c, function (e, t) { return n._effectLayerMapGenerationEffect.setMatrix("world", t); }); } else this._mainTexture.resetRefreshCounter(); this.onAfterRenderMeshToEffect.notifyObservers(r); } } } }), (e.prototype._useMeshMaterial = function (e) { return !1; }), (e.prototype._rebuild = function () { var e = this._vertexBuffers[wn.b.PositionKind]; e && e._rebuild(), this._generateIndexBuffer(); }), (e.prototype._disposeTextureAndPostProcesses = function () { this._mainTexture.dispose(); for (var e = 0; e < this._postProcesses.length; e++) this._postProcesses[e] && this._postProcesses[e].dispose(); this._postProcesses = []; for (e = 0; e < this._textures.length; e++) this._textures[e] && this._textures[e].dispose(); this._textures = []; }), (e.prototype.dispose = function () { var e = this._vertexBuffers[wn.b.PositionKind]; e && (e.dispose(), (this._vertexBuffers[wn.b.PositionKind] = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)), this._disposeTextureAndPostProcesses(); var t = this._scene.effectLayers.indexOf(this, 0); t > -1 && this._scene.effectLayers.splice(t, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onBeforeRenderMainTextureObservable.clear(), this.onBeforeComposeObservable.clear(), this.onBeforeRenderMeshToEffect.clear(), this.onAfterRenderMeshToEffect.clear(), this.onAfterComposeObservable.clear(), this.onSizeChangedObservable.clear(); }), (e.prototype.getClassName = function () { return "EffectLayer"; }), (e.Parse = function (e, t, n) { return $e.b.Instantiate(e.customType).Parse(e, t, n); }), (e._SceneComponentInitialization = function (e) { throw zo.a.WarnImport("EffectLayerSceneComponent"); }), Object(h.c)([Object(He.c)()], e.prototype, "name", void 0), Object(h.c)([Object(He.f)()], e.prototype, "neutralColor", void 0), Object(h.c)([Object(He.c)()], e.prototype, "isEnabled", void 0), Object(h.c)([Object(He.d)()], e.prototype, "camera", null), Object(h.c)([Object(He.c)()], e.prototype, "renderingGroupId", null), e ); })(); i.a.AddParser(me.a.NAME_EFFECTLAYER, function (e, t, n, i) { if (e.effectLayers) { n.effectLayers || (n.effectLayers = new Array()); for (var r = 0; r < e.effectLayers.length; r++) { var o = jo.Parse(e.effectLayers[r], t, i); n.effectLayers.push(o); } } }), (i.a.prototype.removeEffectLayer = function (e) { var t = this.effectLayers.indexOf(e); return -1 !== t && this.effectLayers.splice(t, 1), t; }), (i.a.prototype.addEffectLayer = function (e) { this.effectLayers.push(e); }); var Bo = (function () { function e(e) { (this.name = me.a.NAME_EFFECTLAYER), (this._renderEffects = !1), (this._needStencil = !1), (this._previousStencilState = !1), (this.scene = e), (this._engine = e.getEngine()), (e.effectLayers = new Array()); } return ( (e.prototype.register = function () { this.scene._isReadyForMeshStage.registerStep(me.a.STEP_ISREADYFORMESH_EFFECTLAYER, this, this._isReadyForMesh), this.scene._cameraDrawRenderTargetStage.registerStep(me.a.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER, this, this._renderMainTexture), this.scene._beforeCameraDrawStage.registerStep(me.a.STEP_BEFORECAMERADRAW_EFFECTLAYER, this, this._setStencil), this.scene._afterRenderingGroupDrawStage.registerStep(me.a.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW, this, this._drawRenderingGroup), this.scene._afterCameraDrawStage.registerStep(me.a.STEP_AFTERCAMERADRAW_EFFECTLAYER, this, this._setStencilBack), this.scene._afterCameraDrawStage.registerStep(me.a.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW, this, this._drawCamera); }), (e.prototype.rebuild = function () { for (var e = 0, t = this.scene.effectLayers; e < t.length; e++) { t[e]._rebuild(); } }), (e.prototype.serialize = function (e) { e.effectLayers = []; for (var t = 0, n = this.scene.effectLayers; t < n.length; t++) { var i = n[t]; i.serialize && e.effectLayers.push(i.serialize()); } }), (e.prototype.addFromContainer = function (e) { var t = this; e.effectLayers && e.effectLayers.forEach(function (e) { t.scene.addEffectLayer(e); }); }), (e.prototype.removeFromContainer = function (e, t) { var n = this; e.effectLayers && e.effectLayers.forEach(function (e) { n.scene.removeEffectLayer(e), t && e.dispose(); }); }), (e.prototype.dispose = function () { for (var e = this.scene.effectLayers; e.length; ) e[0].dispose(); }), (e.prototype._isReadyForMesh = function (e, t) { for (var n = 0, i = this.scene.effectLayers; n < i.length; n++) { var r = i[n]; if (r.hasMesh(e)) for (var o = 0, a = e.subMeshes; o < a.length; o++) { var s = a[o]; if (!r.isReady(s, t)) return !1; } } return !0; }), (e.prototype._renderMainTexture = function (e) { (this._renderEffects = !1), (this._needStencil = !1); var t = !1, n = this.scene.effectLayers; if (n && n.length > 0) { this._previousStencilState = this._engine.getStencilBuffer(); for (var i = 0, r = n; i < r.length; i++) { var o = r[i]; if (o.shouldRender() && (!o.camera || (o.camera.cameraRigMode === De.a.RIG_MODE_NONE && e === o.camera) || (o.camera.cameraRigMode !== De.a.RIG_MODE_NONE && o.camera._rigCameras.indexOf(e) > -1))) { (this._renderEffects = !0), (this._needStencil = this._needStencil || o.needStencil()); var a = o._mainTexture; a._shouldRender() && (this.scene.incrementRenderId(), a.render(!1, !1), (t = !0)); } } this.scene.incrementRenderId(); } return t; }), (e.prototype._setStencil = function () { this._needStencil && this._engine.setStencilBuffer(!0); }), (e.prototype._setStencilBack = function () { this._needStencil && this._engine.setStencilBuffer(this._previousStencilState); }), (e.prototype._draw = function (e) { if (this._renderEffects) { this._engine.setDepthBuffer(!1); for (var t = this.scene.effectLayers, n = 0; n < t.length; n++) { var i = t[n]; i.renderingGroupId === e && i.shouldRender() && i.render(); } this._engine.setDepthBuffer(!0); } }), (e.prototype._drawCamera = function () { this._renderEffects && this._draw(-1); }), (e.prototype._drawRenderingGroup = function (e) { !this.scene._isInIntermediateRendering() && this._renderEffects && this._draw(e); }), e ); })(); jo._SceneComponentInitialization = function (e) { var t = e._getComponent(me.a.NAME_EFFECTLAYER); t || ((t = new Bo(e)), e._addComponent(t)); }; var Vo = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#ifdef EMISSIVE\nuniform sampler2D textureSampler2;\n#endif\n\nuniform float offset;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef EMISSIVE\nbaseColor+=texture2D(textureSampler2,vUV);\nbaseColor*=offset;\n#else\nbaseColor.a=abs(offset-baseColor.a);\n#ifdef STROKE\nfloat alpha=smoothstep(.0,.1,baseColor.a);\nbaseColor.a=alpha;\nbaseColor.rgb=baseColor.rgb*alpha;\n#endif\n#endif\ngl_FragColor=baseColor;\n}"; Xt.a.ShadersStore.glowMapMergePixelShader = Vo; var Go = "\nattribute vec2 position;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=position*madd+madd;\ngl_Position=vec4(position,0.0,1.0);\n}"; Xt.a.ShadersStore.glowMapMergeVertexShader = Go; i.a.prototype.getGlowLayerByName = function (e) { for (var t = 0; t < this.effectLayers.length; t++) if (this.effectLayers[t].name === e && this.effectLayers[t].getEffectName() === Uo.EffectName) return this.effectLayers[t]; return null; }; var Uo = (function (e) { function t(n, i, r) { var o = e.call(this, n, i) || this; return ( (o._intensity = 1), (o._includedOnlyMeshes = []), (o._excludedMeshes = []), (o._meshesUsingTheirOwnMaterials = []), (o.neutralColor = new s.b(0, 0, 0, 1)), (o._options = Object(h.a)({ mainTextureRatio: t.DefaultTextureRatio, blurKernelSize: 32, mainTextureFixedSize: void 0, camera: null, mainTextureSamples: 1, renderingGroupId: -1 }, r)), o._init({ alphaBlendingMode: 1, camera: o._options.camera, mainTextureFixedSize: o._options.mainTextureFixedSize, mainTextureRatio: o._options.mainTextureRatio, renderingGroupId: o._options.renderingGroupId }), o ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "blurKernelSize", { get: function () { return this._horizontalBlurPostprocess1.kernel; }, set: function (e) { (this._horizontalBlurPostprocess1.kernel = e), (this._verticalBlurPostprocess1.kernel = e), (this._horizontalBlurPostprocess2.kernel = e), (this._verticalBlurPostprocess2.kernel = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "intensity", { get: function () { return this._intensity; }, set: function (e) { this._intensity = e; }, enumerable: !0, configurable: !0, }), (t.prototype.getEffectName = function () { return t.EffectName; }), (t.prototype._createMergeEffect = function () { return this._engine.createEffect("glowMapMerge", [wn.b.PositionKind], ["offset"], ["textureSampler", "textureSampler2"], "#define EMISSIVE \n"); }), (t.prototype._createTextureAndPostProcesses = function () { var e = this, t = this._mainTextureDesiredSize.width, n = this._mainTextureDesiredSize.height; (t = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(t, this._maxSize) : t), (n = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(n, this._maxSize) : n); var i = 0; (i = this._engine.getCaps().textureHalfFloatRender ? 2 : 0), (this._blurTexture1 = new mn.a("GlowLayerBlurRTT", { width: t, height: n }, this._scene, !1, !0, i)), (this._blurTexture1.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._blurTexture1.wrapV = ln.a.CLAMP_ADDRESSMODE), this._blurTexture1.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE), (this._blurTexture1.renderParticles = !1), (this._blurTexture1.ignoreCameraViewport = !0); var r = Math.floor(t / 2), o = Math.floor(n / 2); (this._blurTexture2 = new mn.a("GlowLayerBlurRTT2", { width: r, height: o }, this._scene, !1, !0, i)), (this._blurTexture2.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._blurTexture2.wrapV = ln.a.CLAMP_ADDRESSMODE), this._blurTexture2.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE), (this._blurTexture2.renderParticles = !1), (this._blurTexture2.ignoreCameraViewport = !0), (this._textures = [this._blurTexture1, this._blurTexture2]), (this._horizontalBlurPostprocess1 = new Er("GlowLayerHBP1", new a.d(1, 0), this._options.blurKernelSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)), (this._horizontalBlurPostprocess1.width = t), (this._horizontalBlurPostprocess1.height = n), this._horizontalBlurPostprocess1.onApplyObservable.add(function (t) { t.setTexture("textureSampler", e._mainTexture); }), (this._verticalBlurPostprocess1 = new Er("GlowLayerVBP1", new a.d(0, 1), this._options.blurKernelSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)), (this._horizontalBlurPostprocess2 = new Er("GlowLayerHBP2", new a.d(1, 0), this._options.blurKernelSize / 2, { width: r, height: o }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)), (this._horizontalBlurPostprocess2.width = r), (this._horizontalBlurPostprocess2.height = o), this._horizontalBlurPostprocess2.onApplyObservable.add(function (t) { t.setTexture("textureSampler", e._blurTexture1); }), (this._verticalBlurPostprocess2 = new Er("GlowLayerVBP2", new a.d(0, 1), this._options.blurKernelSize / 2, { width: r, height: o }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)), (this._postProcesses = [this._horizontalBlurPostprocess1, this._verticalBlurPostprocess1, this._horizontalBlurPostprocess2, this._verticalBlurPostprocess2]), (this._postProcesses1 = [this._horizontalBlurPostprocess1, this._verticalBlurPostprocess1]), (this._postProcesses2 = [this._horizontalBlurPostprocess2, this._verticalBlurPostprocess2]), (this._mainTexture.samples = this._options.mainTextureSamples), this._mainTexture.onAfterUnbindObservable.add(function () { var t = e._blurTexture1.getInternalTexture(); t && (e._scene.postProcessManager.directRender(e._postProcesses1, t, !0), (t = e._blurTexture2.getInternalTexture()) && e._scene.postProcessManager.directRender(e._postProcesses2, t, !0)); }), this._postProcesses.map(function (e) { e.autoClear = !1; }); }), (t.prototype.isReady = function (t, n) { var i = t.getMaterial(), r = t.getRenderingMesh(); if (!i || !r) return !1; var o = i.emissiveTexture; return e.prototype._isReady.call(this, t, n, o); }), (t.prototype.needStencil = function () { return !1; }), (t.prototype._canRenderMesh = function (e, t) { return !0; }), (t.prototype._internalRender = function (e) { e.setTexture("textureSampler", this._blurTexture1), e.setTexture("textureSampler2", this._blurTexture2), e.setFloat("offset", this._intensity); var t = this._engine, n = t.getStencilBuffer(); t.setStencilBuffer(!1), t.drawElementsType(Fo.a.TriangleFillMode, 0, 6), t.setStencilBuffer(n); }), (t.prototype._setEmissiveTextureAndColor = function (e, t, n) { var i = 1; this.customEmissiveTextureSelector ? (this._emissiveTextureAndColor.texture = this.customEmissiveTextureSelector(e, t, n)) : n ? ((this._emissiveTextureAndColor.texture = n.emissiveTexture), this._emissiveTextureAndColor.texture && (i = this._emissiveTextureAndColor.texture.level)) : (this._emissiveTextureAndColor.texture = null), this.customEmissiveColorSelector ? this.customEmissiveColorSelector(e, t, n, this._emissiveTextureAndColor.color) : n.emissiveColor ? this._emissiveTextureAndColor.color.set(n.emissiveColor.r * i, n.emissiveColor.g * i, n.emissiveColor.b * i, n.alpha) : this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a); }), (t.prototype._shouldRenderMesh = function (e) { return this.hasMesh(e); }), (t.prototype._addCustomEffectDefines = function (e) { e.push("#define GLOW"); }), (t.prototype.addExcludedMesh = function (e) { -1 === this._excludedMeshes.indexOf(e.uniqueId) && this._excludedMeshes.push(e.uniqueId); }), (t.prototype.removeExcludedMesh = function (e) { var t = this._excludedMeshes.indexOf(e.uniqueId); -1 !== t && this._excludedMeshes.splice(t, 1); }), (t.prototype.addIncludedOnlyMesh = function (e) { -1 === this._includedOnlyMeshes.indexOf(e.uniqueId) && this._includedOnlyMeshes.push(e.uniqueId); }), (t.prototype.removeIncludedOnlyMesh = function (e) { var t = this._includedOnlyMeshes.indexOf(e.uniqueId); -1 !== t && this._includedOnlyMeshes.splice(t, 1); }), (t.prototype.hasMesh = function (t) { return !!e.prototype.hasMesh.call(this, t) && (this._includedOnlyMeshes.length ? -1 !== this._includedOnlyMeshes.indexOf(t.uniqueId) : !this._excludedMeshes.length || -1 === this._excludedMeshes.indexOf(t.uniqueId)); }), (t.prototype._useMeshMaterial = function (e) { return 0 != this._meshesUsingTheirOwnMaterials.length && this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId) > -1; }), (t.prototype.referenceMeshToUseItsOwnMaterial = function (e) { this._meshesUsingTheirOwnMaterials.push(e.uniqueId); }), (t.prototype.unReferenceMeshFromUsingItsOwnMaterial = function (e) { for (var t = this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId); t > 0; ) this._meshesUsingTheirOwnMaterials.slice(t, t + 1), (t = this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId)); }), (t.prototype._disposeMesh = function (e) { this.removeIncludedOnlyMesh(e), this.removeExcludedMesh(e); }), (t.prototype.getClassName = function () { return "GlowLayer"; }), (t.prototype.serialize = function () { var e, t = He.a.Serialize(this); if (((t.customType = "BABYLON.GlowLayer"), (t.includedMeshes = []), this._includedOnlyMeshes.length)) for (e = 0; e < this._includedOnlyMeshes.length; e++) { (n = this._scene.getMeshByUniqueID(this._includedOnlyMeshes[e])) && t.includedMeshes.push(n.id); } if (((t.excludedMeshes = []), this._excludedMeshes.length)) for (e = 0; e < this._excludedMeshes.length; e++) { var n; (n = this._scene.getMeshByUniqueID(this._excludedMeshes[e])) && t.excludedMeshes.push(n.id); } return t; }), (t.Parse = function (e, n, i) { var r, o = He.a.Parse( function () { return new t(e.name, n, e.options); }, e, n, i ); for (r = 0; r < e.excludedMeshes.length; r++) { (a = n.getMeshByID(e.excludedMeshes[r])) && o.addExcludedMesh(a); } for (r = 0; r < e.includedMeshes.length; r++) { var a; (a = n.getMeshByID(e.includedMeshes[r])) && o.addIncludedOnlyMesh(a); } return o; }), (t.EffectName = "GlowLayer"), (t.DefaultBlurKernelSize = 32), (t.DefaultTextureRatio = 0.5), Object(h.c)([Object(He.c)()], t.prototype, "blurKernelSize", null), Object(h.c)([Object(He.c)()], t.prototype, "intensity", null), Object(h.c)([Object(He.c)("options")], t.prototype, "_options", void 0), t ); })(jo); c.a.RegisteredTypes["BABYLON.GlowLayer"] = Uo; var Ho = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec2 screenSize;\nuniform vec2 direction;\nuniform float blurWidth;\n\nfloat getLuminance(vec3 color)\n{\nreturn dot(color,vec3(0.2126,0.7152,0.0722));\n}\nvoid main(void)\n{\nfloat weights[7];\nweights[0]=0.05;\nweights[1]=0.1;\nweights[2]=0.2;\nweights[3]=0.3;\nweights[4]=0.2;\nweights[5]=0.1;\nweights[6]=0.05;\nvec2 texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);\nvec2 texelStep=texelSize*direction*blurWidth;\nvec2 start=vUV-3.0*texelStep;\nvec4 baseColor=vec4(0.,0.,0.,0.);\nvec2 texelOffset=vec2(0.,0.);\nfor (int i=0; i<7; i++)\n{\n\nvec4 texel=texture2D(textureSampler,start+texelOffset);\nbaseColor.a+=texel.a*weights[i];\n\nfloat luminance=getLuminance(baseColor.rgb);\nfloat luminanceTexel=getLuminance(texel.rgb);\nfloat choice=step(luminanceTexel,luminance);\nbaseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;\ntexelOffset+=texelStep;\n}\ngl_FragColor=baseColor;\n}"; Xt.a.ShadersStore.glowBlurPostProcessPixelShader = Ho; i.a.prototype.getHighlightLayerByName = function (e) { for (var t = 0; t < this.effectLayers.length; t++) if (this.effectLayers[t].name === e && this.effectLayers[t].getEffectName() === Xo.EffectName) return this.effectLayers[t]; return null; }; var Wo = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === a && (a = ln.a.BILINEAR_SAMPLINGMODE); var l = e.call(this, t, "glowBlurPostProcess", ["screenSize", "direction", "blurWidth"], null, r, o, a, s, c) || this; return ( (l.direction = n), (l.kernel = i), l.onApplyObservable.add(function (e) { e.setFloat2("screenSize", l.width, l.height), e.setVector2("direction", l.direction), e.setFloat("blurWidth", l.kernel); }), l ); } return Object(h.d)(t, e), t; })(Wt.a), Xo = (function (e) { function t(n, i, r) { var a = e.call(this, n, i) || this; return ( (a.name = n), (a.innerGlow = !0), (a.outerGlow = !0), (a.onBeforeBlurObservable = new o.c()), (a.onAfterBlurObservable = new o.c()), (a._instanceGlowingMeshStencilReference = t.GlowingMeshStencilReference++), (a._meshes = {}), (a._excludedMeshes = {}), (a.neutralColor = t.NeutralColor), a._engine.isStencilEnable || g.a.Warn("Rendering the Highlight Layer requires the stencil to be active on the canvas. var engine = new Engine(canvas, antialias, { stencil: true }"), (a._options = Object(h.a)({ mainTextureRatio: 0.5, blurTextureSizeRatio: 0.5, blurHorizontalSize: 1, blurVerticalSize: 1, alphaBlendingMode: 2, camera: null, renderingGroupId: -1 }, r)), a._init({ alphaBlendingMode: a._options.alphaBlendingMode, camera: a._options.camera, mainTextureFixedSize: a._options.mainTextureFixedSize, mainTextureRatio: a._options.mainTextureRatio, renderingGroupId: a._options.renderingGroupId, }), (a._shouldRender = !1), a ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "blurHorizontalSize", { get: function () { return this._horizontalBlurPostprocess.kernel; }, set: function (e) { this._horizontalBlurPostprocess.kernel = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "blurVerticalSize", { get: function () { return this._verticalBlurPostprocess.kernel; }, set: function (e) { this._verticalBlurPostprocess.kernel = e; }, enumerable: !0, configurable: !0, }), (t.prototype.getEffectName = function () { return t.EffectName; }), (t.prototype._createMergeEffect = function () { return this._engine.createEffect("glowMapMerge", [wn.b.PositionKind], ["offset"], ["textureSampler"], this._options.isStroke ? "#define STROKE \n" : void 0); }), (t.prototype._createTextureAndPostProcesses = function () { var e = this, t = this._mainTextureDesiredSize.width * this._options.blurTextureSizeRatio, n = this._mainTextureDesiredSize.height * this._options.blurTextureSizeRatio; (t = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(t, this._maxSize) : t), (n = this._engine.needPOTTextures ? ue.a.GetExponentOfTwo(n, this._maxSize) : n); var i = 0; (i = this._engine.getCaps().textureHalfFloatRender ? 2 : 0), (this._blurTexture = new mn.a("HighlightLayerBlurRTT", { width: t, height: n }, this._scene, !1, !0, i)), (this._blurTexture.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._blurTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._blurTexture.anisotropicFilteringLevel = 16), this._blurTexture.updateSamplingMode(ln.a.TRILINEAR_SAMPLINGMODE), (this._blurTexture.renderParticles = !1), (this._blurTexture.ignoreCameraViewport = !0), (this._textures = [this._blurTexture]), 2 === this._options.alphaBlendingMode ? ((this._downSamplePostprocess = new Ht.b("HighlightLayerPPP", this._options.blurTextureSizeRatio, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine())), this._downSamplePostprocess.onApplyObservable.add(function (t) { t.setTexture("textureSampler", e._mainTexture); }), (this._horizontalBlurPostprocess = new Wo("HighlightLayerHBP", new a.d(1, 0), this._options.blurHorizontalSize, 1, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine())), this._horizontalBlurPostprocess.onApplyObservable.add(function (e) { e.setFloat2("screenSize", t, n); }), (this._verticalBlurPostprocess = new Wo("HighlightLayerVBP", new a.d(0, 1), this._options.blurVerticalSize, 1, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine())), this._verticalBlurPostprocess.onApplyObservable.add(function (e) { e.setFloat2("screenSize", t, n); }), (this._postProcesses = [this._downSamplePostprocess, this._horizontalBlurPostprocess, this._verticalBlurPostprocess])) : ((this._horizontalBlurPostprocess = new Er( "HighlightLayerHBP", new a.d(1, 0), this._options.blurHorizontalSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i )), (this._horizontalBlurPostprocess.width = t), (this._horizontalBlurPostprocess.height = n), this._horizontalBlurPostprocess.onApplyObservable.add(function (t) { t.setTexture("textureSampler", e._mainTexture); }), (this._verticalBlurPostprocess = new Er("HighlightLayerVBP", new a.d(0, 1), this._options.blurVerticalSize / 2, { width: t, height: n }, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i)), (this._postProcesses = [this._horizontalBlurPostprocess, this._verticalBlurPostprocess])), this._mainTexture.onAfterUnbindObservable.add(function () { e.onBeforeBlurObservable.notifyObservers(e); var t = e._blurTexture.getInternalTexture(); t && e._scene.postProcessManager.directRender(e._postProcesses, t, !0), e.onAfterBlurObservable.notifyObservers(e); }), this._postProcesses.map(function (e) { e.autoClear = !1; }); }), (t.prototype.needStencil = function () { return !0; }), (t.prototype.isReady = function (t, n) { var i = t.getMaterial(), r = t.getRenderingMesh(); if (!i || !r || !this._meshes) return !1; var o = null, a = this._meshes[r.uniqueId]; return a && a.glowEmissiveOnly && i && (o = i.emissiveTexture), e.prototype._isReady.call(this, t, n, o); }), (t.prototype._internalRender = function (e) { e.setTexture("textureSampler", this._blurTexture); var t = this._engine; t.cacheStencilState(), t.setStencilOperationPass(7681), t.setStencilOperationFail(7680), t.setStencilOperationDepthFail(7680), t.setStencilMask(0), t.setStencilBuffer(!0), t.setStencilFunctionReference(this._instanceGlowingMeshStencilReference), this.outerGlow && (e.setFloat("offset", 0), t.setStencilFunction(517), t.drawElementsType(Fo.a.TriangleFillMode, 0, 6)), this.innerGlow && (e.setFloat("offset", 1), t.setStencilFunction(514), t.drawElementsType(Fo.a.TriangleFillMode, 0, 6)), t.restoreStencilState(); }), (t.prototype.shouldRender = function () { return !!e.prototype.shouldRender.call(this) && !!this._meshes; }), (t.prototype._shouldRenderMesh = function (t) { return (!this._excludedMeshes || !this._excludedMeshes[t.uniqueId]) && !!e.prototype.hasMesh.call(this, t); }), (t.prototype._setEmissiveTextureAndColor = function (e, t, n) { var i = this._meshes[e.uniqueId]; i ? this._emissiveTextureAndColor.color.set(i.color.r, i.color.g, i.color.b, 1) : this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a), i && i.glowEmissiveOnly && n ? ((this._emissiveTextureAndColor.texture = n.emissiveTexture), this._emissiveTextureAndColor.color.set(1, 1, 1, 1)) : (this._emissiveTextureAndColor.texture = null); }), (t.prototype.addExcludedMesh = function (e) { this._excludedMeshes && (this._excludedMeshes[e.uniqueId] || (this._excludedMeshes[e.uniqueId] = { mesh: e, beforeBind: e.onBeforeBindObservable.add(function (e) { e.getEngine().setStencilBuffer(!1); }), afterRender: e.onAfterRenderObservable.add(function (e) { e.getEngine().setStencilBuffer(!0); }), })); }), (t.prototype.removeExcludedMesh = function (e) { if (this._excludedMeshes) { var t = this._excludedMeshes[e.uniqueId]; t && (t.beforeBind && e.onBeforeBindObservable.remove(t.beforeBind), t.afterRender && e.onAfterRenderObservable.remove(t.afterRender)), (this._excludedMeshes[e.uniqueId] = null); } }), (t.prototype.hasMesh = function (t) { return !!this._meshes && !!e.prototype.hasMesh.call(this, t) && void 0 !== this._meshes[t.uniqueId] && null !== this._meshes[t.uniqueId]; }), (t.prototype.addMesh = function (e, t, n) { var i = this; if ((void 0 === n && (n = !1), this._meshes)) { var r = this._meshes[e.uniqueId]; r ? (r.color = t) : ((this._meshes[e.uniqueId] = { mesh: e, color: t, observerHighlight: e.onBeforeBindObservable.add(function (e) { i.isEnabled && (i._excludedMeshes && i._excludedMeshes[e.uniqueId] ? i._defaultStencilReference(e) : e.getScene().getEngine().setStencilFunctionReference(i._instanceGlowingMeshStencilReference)); }), observerDefault: e.onAfterRenderObservable.add(function (e) { i.isEnabled && i._defaultStencilReference(e); }), glowEmissiveOnly: n, }), e.onDisposeObservable.add(function () { i._disposeMesh(e); })), (this._shouldRender = !0); } }), (t.prototype.removeMesh = function (e) { if (this._meshes) { var t = this._meshes[e.uniqueId]; for (var n in (t && (t.observerHighlight && e.onBeforeBindObservable.remove(t.observerHighlight), t.observerDefault && e.onAfterRenderObservable.remove(t.observerDefault), delete this._meshes[e.uniqueId]), (this._shouldRender = !1), this._meshes)) if (this._meshes[n]) { this._shouldRender = !0; break; } } }), (t.prototype.removeAllMeshes = function () { if (this._meshes) for (var e in this._meshes) if (this._meshes.hasOwnProperty(e)) { var t = this._meshes[e]; t && this.removeMesh(t.mesh); } }), (t.prototype._defaultStencilReference = function (e) { e.getScene().getEngine().setStencilFunctionReference(t.NormalMeshStencilReference); }), (t.prototype._disposeMesh = function (e) { this.removeMesh(e), this.removeExcludedMesh(e); }), (t.prototype.dispose = function () { if (this._meshes) { for (var t in this._meshes) { (n = this._meshes[t]) && n.mesh && (n.observerHighlight && n.mesh.onBeforeBindObservable.remove(n.observerHighlight), n.observerDefault && n.mesh.onAfterRenderObservable.remove(n.observerDefault)); } this._meshes = null; } if (this._excludedMeshes) { for (var t in this._excludedMeshes) { var n; (n = this._excludedMeshes[t]) && (n.beforeBind && n.mesh.onBeforeBindObservable.remove(n.beforeBind), n.afterRender && n.mesh.onAfterRenderObservable.remove(n.afterRender)); } this._excludedMeshes = null; } e.prototype.dispose.call(this); }), (t.prototype.getClassName = function () { return "HighlightLayer"; }), (t.prototype.serialize = function () { var e = He.a.Serialize(this); if (((e.customType = "BABYLON.HighlightLayer"), (e.meshes = []), this._meshes)) for (var t in this._meshes) { var n = this._meshes[t]; n && e.meshes.push({ glowEmissiveOnly: n.glowEmissiveOnly, color: n.color.asArray(), meshId: n.mesh.id }); } if (((e.excludedMeshes = []), this._excludedMeshes)) for (var i in this._excludedMeshes) { var r = this._excludedMeshes[i]; r && e.excludedMeshes.push(r.mesh.id); } return e; }), (t.Parse = function (e, n, i) { var r, o = He.a.Parse( function () { return new t(e.name, n, e.options); }, e, n, i ); for (r = 0; r < e.excludedMeshes.length; r++) { (a = n.getMeshByID(e.excludedMeshes[r])) && o.addExcludedMesh(a); } for (r = 0; r < e.meshes.length; r++) { var a, c = e.meshes[r]; (a = n.getMeshByID(c.meshId)) && o.addMesh(a, s.a.FromArray(c.color), c.glowEmissiveOnly); } return o; }), (t.EffectName = "HighlightLayer"), (t.NeutralColor = new s.b(0, 0, 0, 0)), (t.GlowingMeshStencilReference = 2), (t.NormalMeshStencilReference = 1), Object(h.c)([Object(He.c)()], t.prototype, "innerGlow", void 0), Object(h.c)([Object(He.c)()], t.prototype, "outerGlow", void 0), Object(h.c)([Object(He.c)()], t.prototype, "blurHorizontalSize", null), Object(h.c)([Object(He.c)()], t.prototype, "blurVerticalSize", null), Object(h.c)([Object(He.c)("options")], t.prototype, "_options", void 0), t ); })(jo); c.a.RegisteredTypes["BABYLON.HighlightLayer"] = Xo; var Yo = n(203), Ko = n(198), Zo = (function () { function e(e, t, n, i, r) { (this.size = e), (this.position = t), (this.alphaMode = 6), (this.color = n || new s.a(1, 1, 1)), (this.texture = i ? new ln.a(i, r.getScene(), !0) : null), (this._system = r), r.lensFlares.push(this); } return ( (e.AddFlare = function (t, n, i, r, o) { return new e(t, n, i, r, o); }), (e.prototype.dispose = function () { this.texture && this.texture.dispose(); var e = this._system.lensFlares.indexOf(this); this._system.lensFlares.splice(e, 1); }), e ); })(), qo = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\ngl_FragColor=baseColor*color;\n}"; Xt.a.ShadersStore.lensFlarePixelShader = qo; var Qo = "\nattribute vec2 position;\n\nuniform mat4 viewportMatrix;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=position*madd+madd;\ngl_Position=viewportMatrix*vec4(position,0.0,1.0);\n}"; Xt.a.ShadersStore.lensFlareVertexShader = Qo; var Jo = (function () { function e(t, n, i) { (this.name = t), (this.lensFlares = new Array()), (this.borderLimit = 300), (this.viewportBorder = 0), (this.layerMask = 268435455), (this._vertexBuffers = {}), (this._isEnabled = !0), (this._scene = i || E.a.LastCreatedScene), e._SceneComponentInitialization(this._scene), (this._emitter = n), (this.id = t), i.lensFlareSystems.push(this), (this.meshesSelectionPredicate = function (e) { return i.activeCamera && e.material && e.isVisible && e.isEnabled() && e.isBlocker && 0 != (e.layerMask & i.activeCamera.layerMask); }); var r = i.getEngine(), o = []; o.push(1, 1), o.push(-1, 1), o.push(-1, -1), o.push(1, -1), (this._vertexBuffers[wn.b.PositionKind] = new wn.b(r, o, wn.b.PositionKind, !1, !1, 2)); var a = []; a.push(0), a.push(1), a.push(2), a.push(0), a.push(2), a.push(3), (this._indexBuffer = r.createIndexBuffer(a)), (this._effect = r.createEffect("lensFlare", [wn.b.PositionKind], ["color", "viewportMatrix"], ["textureSampler"], "")); } return ( Object.defineProperty(e.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { this._isEnabled = e; }, enumerable: !0, configurable: !0, }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype.getEmitter = function () { return this._emitter; }), (e.prototype.setEmitter = function (e) { this._emitter = e; }), (e.prototype.getEmitterPosition = function () { return this._emitter.getAbsolutePosition ? this._emitter.getAbsolutePosition() : this._emitter.position; }), (e.prototype.computeEffectivePosition = function (e) { var t = this.getEmitterPosition(); return ( (t = a.e.Project(t, a.a.Identity(), this._scene.getTransformMatrix(), e)), (this._positionX = t.x), (this._positionY = t.y), (t = a.e.TransformCoordinates(this.getEmitterPosition(), this._scene.getViewMatrix())), this.viewportBorder > 0 && ((e.x -= this.viewportBorder), (e.y -= this.viewportBorder), (e.width += 2 * this.viewportBorder), (e.height += 2 * this.viewportBorder), (t.x += this.viewportBorder), (t.y += this.viewportBorder), (this._positionX += this.viewportBorder), (this._positionY += this.viewportBorder)), t.z > 0 && (this._positionX > e.x && this._positionX < e.x + e.width && this._positionY > e.y && (this._positionY, e.y, e.height), !0) ); }), (e.prototype._isVisible = function () { if (!this._isEnabled || !this._scene.activeCamera) return !1; var e = this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition), t = e.length(); e.normalize(); var n = new Re(this._scene.activeCamera.globalPosition, e), i = this._scene.pickWithRay(n, this.meshesSelectionPredicate, !0); return !i || !i.hit || i.distance > t; }), (e.prototype.render = function () { if (!this._effect.isReady() || !this._scene.activeCamera) return !1; var e, t, n = this._scene.getEngine(), i = this._scene.activeCamera.viewport.toGlobal(n.getRenderWidth(!0), n.getRenderHeight(!0)); if (!this.computeEffectivePosition(i)) return !1; if (!this._isVisible()) return !1; var r = (e = this._positionX < this.borderLimit + i.x ? this.borderLimit + i.x - this._positionX : this._positionX > i.x + i.width - this.borderLimit ? this._positionX - i.x - i.width + this.borderLimit : 0) > (t = this._positionY < this.borderLimit + i.y ? this.borderLimit + i.y - this._positionY : this._positionY > i.y + i.height - this.borderLimit ? this._positionY - i.y - i.height + this.borderLimit : 0) ? e : t; (r -= this.viewportBorder) > this.borderLimit && (r = this.borderLimit); var o = 1 - z.a.Clamp(r / this.borderLimit, 0, 1); if (o < 0) return !1; o > 1 && (o = 1), this.viewportBorder > 0 && ((i.x += this.viewportBorder), (i.y += this.viewportBorder), (i.width -= 2 * this.viewportBorder), (i.height -= 2 * this.viewportBorder), (this._positionX -= this.viewportBorder), (this._positionY -= this.viewportBorder)); var s = i.x + i.width / 2, c = i.y + i.height / 2, l = s - this._positionX, u = c - this._positionY; n.enableEffect(this._effect), n.setState(!1), n.setDepthBuffer(!1), n.bindBuffers(this._vertexBuffers, this._indexBuffer, this._effect); for (var h = 0; h < this.lensFlares.length; h++) { var d = this.lensFlares[h]; if (!d.texture || d.texture.isReady()) { n.setAlphaMode(d.alphaMode); var p = s - l * d.position, f = c - u * d.position, m = d.size, g = d.size * n.getAspectRatio(this._scene.activeCamera, !0), b = (p / (i.width + 2 * i.x)) * 2 - 1, _ = 1 - (f / (i.height + 2 * i.y)) * 2, v = a.a.FromValues(m / 2, 0, 0, 0, 0, g / 2, 0, 0, 0, 0, 1, 0, b, _, 0, 1); this._effect.setMatrix("viewportMatrix", v), this._effect.setTexture("textureSampler", d.texture), this._effect.setFloat4("color", d.color.r * o, d.color.g * o, d.color.b * o, 1), n.drawElementsType(Fo.a.TriangleFillMode, 0, 6); } } return n.setDepthBuffer(!0), n.setAlphaMode(0), !0; }), (e.prototype.dispose = function () { var e = this._vertexBuffers[wn.b.PositionKind]; for (e && (e.dispose(), (this._vertexBuffers[wn.b.PositionKind] = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)); this.lensFlares.length; ) this.lensFlares[0].dispose(); var t = this._scene.lensFlareSystems.indexOf(this); this._scene.lensFlareSystems.splice(t, 1); }), (e.Parse = function (t, n, i) { var r = n.getLastEntryByID(t.emitterId), o = t.name || "lensFlareSystem#" + t.emitterId, a = new e(o, r, n); (a.id = t.id || o), (a.borderLimit = t.borderLimit); for (var c = 0; c < t.flares.length; c++) { var l = t.flares[c]; Zo.AddFlare(l.size, l.position, s.a.FromArray(l.color), l.textureName ? i + l.textureName : "", a); } return a; }), (e.prototype.serialize = function () { var e = {}; (e.id = this.id), (e.name = this.name), (e.emitterId = this.getEmitter().id), (e.borderLimit = this.borderLimit), (e.flares = []); for (var t = 0; t < this.lensFlares.length; t++) { var n = this.lensFlares[t]; e.flares.push({ size: n.size, position: n.position, color: n.color.asArray(), textureName: $e.b.GetFilename(n.texture ? n.texture.name : "") }); } return e; }), (e._SceneComponentInitialization = function (e) { throw zo.a.WarnImport("LensFlareSystemSceneComponent"); }), e ); })(); i.a.AddParser(me.a.NAME_LENSFLARESYSTEM, function (e, t, n, i) { if (void 0 !== e.lensFlareSystems && null !== e.lensFlareSystems) { n.lensFlareSystems || (n.lensFlareSystems = new Array()); for (var r = 0, o = e.lensFlareSystems.length; r < o; r++) { var a = e.lensFlareSystems[r], s = Jo.Parse(a, t, i); n.lensFlareSystems.push(s); } } }), (i.a.prototype.getLensFlareSystemByName = function (e) { for (var t = 0; t < this.lensFlareSystems.length; t++) if (this.lensFlareSystems[t].name === e) return this.lensFlareSystems[t]; return null; }), (i.a.prototype.getLensFlareSystemByID = function (e) { for (var t = 0; t < this.lensFlareSystems.length; t++) if (this.lensFlareSystems[t].id === e) return this.lensFlareSystems[t]; return null; }), (i.a.prototype.removeLensFlareSystem = function (e) { var t = this.lensFlareSystems.indexOf(e); return -1 !== t && this.lensFlareSystems.splice(t, 1), t; }), (i.a.prototype.addLensFlareSystem = function (e) { this.lensFlareSystems.push(e); }); var $o = (function () { function e(e) { (this.name = me.a.NAME_LENSFLARESYSTEM), (this.scene = e), (e.lensFlareSystems = new Array()); } return ( (e.prototype.register = function () { this.scene._afterCameraDrawStage.registerStep(me.a.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM, this, this._draw); }), (e.prototype.rebuild = function () {}), (e.prototype.addFromContainer = function (e) { var t = this; e.lensFlareSystems && e.lensFlareSystems.forEach(function (e) { t.scene.addLensFlareSystem(e); }); }), (e.prototype.removeFromContainer = function (e, t) { var n = this; e.lensFlareSystems && e.lensFlareSystems.forEach(function (e) { n.scene.removeLensFlareSystem(e), t && e.dispose(); }); }), (e.prototype.serialize = function (e) { e.lensFlareSystems = []; for (var t = 0, n = this.scene.lensFlareSystems; t < n.length; t++) { var i = n[t]; e.lensFlareSystems.push(i.serialize()); } }), (e.prototype.dispose = function () { for (var e = this.scene.lensFlareSystems; e.length; ) e[0].dispose(); }), (e.prototype._draw = function (e) { if (this.scene.lensFlaresEnabled) { var t = this.scene.lensFlareSystems; $e.b.StartPerformanceCounter("Lens flares", t.length > 0); for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; 0 != (e.layerMask & r.layerMask) && r.render(); } $e.b.EndPerformanceCounter("Lens flares", t.length > 0); } }), e ); })(); Jo._SceneComponentInitialization = function (e) { var t = e._getComponent(me.a.NAME_LENSFLARESYSTEM); t || ((t = new $o(e)), e._addComponent(t)); }; var ea = n(57), ta = n(121), na = "#ifndef FLOAT\n#include\n#endif\nvarying float vDepthMetric;\n#ifdef USEDISTANCE\nuniform vec3 lightData;\nvarying vec3 vPositionW;\n#endif\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\nuniform vec3 biasAndScale;\nuniform vec2 depthValues;\n#ifdef DEPTHCLAMP\nvarying float z;\n#endif\n#include\nvoid main(void)\n{\n#include\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\nfloat depth=vDepthMetric;\n#ifdef DEPTHCLAMP\n#ifdef USEDISTANCE\ndepth=clamp(((length(vPositionW-lightData)+depthValues.x)/(depthValues.y))+biasAndScale.x,0.0,1.0);\n#else\ndepth=clamp(((z+depthValues.x)/(depthValues.y))+biasAndScale.x,0.0,1.0);\n#endif\ngl_FragDepth=depth;\n#elif defined(USEDISTANCE)\ndepth=(length(vPositionW-lightData)+depthValues.x)/(depthValues.y)+biasAndScale.x;\n#endif\n#ifdef ESM\ndepth=clamp(exp(-min(87.,biasAndScale.z*depth)),0.,1.);\n#endif\n#ifdef FLOAT\ngl_FragColor=vec4(depth,1.0,1.0,1.0);\n#else\ngl_FragColor=pack(depth);\n#endif\n}"; Xt.a.ShadersStore.shadowMapPixelShader = na; var ia = "\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\nuniform vec3 lightData;\n#endif\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\n#include\n#include\nuniform mat4 viewProjection;\nuniform vec3 biasAndScale;\nuniform vec2 depthValues;\nvarying float vDepthMetric;\n#ifdef USEDISTANCE\nvarying vec3 vPositionW;\n#endif\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#ifdef DEPTHCLAMP\nvarying float z;\n#endif\n#include\nvoid main(void)\n{\nvec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvec3 worldNor=normalize(normalWorld*normal);\n#ifdef DIRECTIONINLIGHTDATA\nvec3 worldLightDir=normalize(-lightData.xyz);\n#else\nvec3 directionToLight=lightData.xyz-worldPos.xyz;\nvec3 worldLightDir=normalize(directionToLight);\n#endif\nfloat ndl=dot(worldNor,worldLightDir);\nfloat sinNL=sqrt(1.0-ndl*ndl);\nfloat normalBias=biasAndScale.y*sinNL;\nworldPos.xyz-=worldNor*normalBias;\n#endif\n#ifdef USEDISTANCE\nvPositionW=worldPos.xyz;\n#endif\n\ngl_Position=viewProjection*worldPos;\n#ifdef DEPTHTEXTURE\n\ngl_Position.z+=biasAndScale.x*gl_Position.w;\n#endif\n#ifdef DEPTHCLAMP\nz=gl_Position.z;\ngl_Position.z=0.0;\n#elif !defined(USEDISTANCE)\n\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y))+biasAndScale.x;\n#endif\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}"; Xt.a.ShadersStore.shadowMapVertexShader = ia; var ra = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec2 screenSize;\nvoid main(void)\n{\nvec4 colorDepth=vec4(0.0);\nfor (int x=-OFFSET; x<=OFFSET; x++)\nfor (int y=-OFFSET; y<=OFFSET; y++)\ncolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);\ngl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));\n}"; Xt.a.ShadersStore.depthBoxBlurPixelShader = ra; var oa = n(136), aa = (function () { function e(t, n, i) { (this.onBeforeShadowMapRenderObservable = new o.c()), (this.onAfterShadowMapRenderObservable = new o.c()), (this.onBeforeShadowMapRenderMeshObservable = new o.c()), (this.onAfterShadowMapRenderMeshObservable = new o.c()), (this._bias = 5e-5), (this._normalBias = 0), (this._blurBoxOffset = 1), (this._blurScale = 2), (this._blurKernel = 1), (this._useKernelBlur = !1), (this._filter = e.FILTER_NONE), (this._filteringQuality = e.QUALITY_HIGH), (this._contactHardeningLightSizeUVRatio = 0.1), (this._darkness = 0), (this._transparencyShadow = !1), (this.frustumEdgeFalloff = 0), (this.forceBackFacesOnly = !1), (this._lightDirection = a.e.Zero()), (this._viewMatrix = a.a.Zero()), (this._projectionMatrix = a.a.Zero()), (this._transformMatrix = a.a.Zero()), (this._cachedPosition = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (this._cachedDirection = new a.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE)), (this._currentFaceIndex = 0), (this._currentFaceIndexCache = 0), (this._defaultTextureMatrix = a.a.Identity()), (this._mapSize = t), (this._light = n), (this._scene = n.getScene()), (n._shadowGenerator = this), e._SceneComponentInitialization(this._scene); var r = this._scene.getEngine().getCaps(); i ? r.textureFloatRender && r.textureFloatLinearFiltering ? (this._textureType = 1) : r.textureHalfFloatRender && r.textureHalfFloatLinearFiltering ? (this._textureType = 2) : (this._textureType = 0) : r.textureHalfFloatRender && r.textureHalfFloatLinearFiltering ? (this._textureType = 2) : r.textureFloatRender && r.textureFloatLinearFiltering ? (this._textureType = 1) : (this._textureType = 0), this._initializeGenerator(), this._applyFilterValues(); } return ( Object.defineProperty(e.prototype, "bias", { get: function () { return this._bias; }, set: function (e) { this._bias = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "normalBias", { get: function () { return this._normalBias; }, set: function (e) { this._normalBias = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "blurBoxOffset", { get: function () { return this._blurBoxOffset; }, set: function (e) { this._blurBoxOffset !== e && ((this._blurBoxOffset = e), this._disposeBlurPostProcesses()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "blurScale", { get: function () { return this._blurScale; }, set: function (e) { this._blurScale !== e && ((this._blurScale = e), this._disposeBlurPostProcesses()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "blurKernel", { get: function () { return this._blurKernel; }, set: function (e) { this._blurKernel !== e && ((this._blurKernel = e), this._disposeBlurPostProcesses()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useKernelBlur", { get: function () { return this._useKernelBlur; }, set: function (e) { this._useKernelBlur !== e && ((this._useKernelBlur = e), this._disposeBlurPostProcesses()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "depthScale", { get: function () { return void 0 !== this._depthScale ? this._depthScale : this._light.getDepthScale(); }, set: function (e) { this._depthScale = e; }, enumerable: !0, configurable: !0, }), (e.prototype._validateFilter = function (e) { return e; }), Object.defineProperty(e.prototype, "filter", { get: function () { return this._filter; }, set: function (t) { if (((t = this._validateFilter(t)), this._light.needCube())) { if (t === e.FILTER_BLUREXPONENTIALSHADOWMAP) return void (this.useExponentialShadowMap = !0); if (t === e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP) return void (this.useCloseExponentialShadowMap = !0); if (t === e.FILTER_PCF || t === e.FILTER_PCSS) return void (this.usePoissonSampling = !0); } (t !== e.FILTER_PCF && t !== e.FILTER_PCSS) || 1 !== this._scene.getEngine().webGLVersion ? this._filter !== t && ((this._filter = t), this._disposeBlurPostProcesses(), this._applyFilterValues(), this._light._markMeshesAsLightDirty()) : (this.usePoissonSampling = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "usePoissonSampling", { get: function () { return this.filter === e.FILTER_POISSONSAMPLING; }, set: function (t) { var n = this._validateFilter(e.FILTER_POISSONSAMPLING); (t || this.filter === e.FILTER_POISSONSAMPLING) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useExponentialShadowMap", { get: function () { return this.filter === e.FILTER_EXPONENTIALSHADOWMAP; }, set: function (t) { var n = this._validateFilter(e.FILTER_EXPONENTIALSHADOWMAP); (t || this.filter === e.FILTER_EXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useBlurExponentialShadowMap", { get: function () { return this.filter === e.FILTER_BLUREXPONENTIALSHADOWMAP; }, set: function (t) { var n = this._validateFilter(e.FILTER_BLUREXPONENTIALSHADOWMAP); (t || this.filter === e.FILTER_BLUREXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useCloseExponentialShadowMap", { get: function () { return this.filter === e.FILTER_CLOSEEXPONENTIALSHADOWMAP; }, set: function (t) { var n = this._validateFilter(e.FILTER_CLOSEEXPONENTIALSHADOWMAP); (t || this.filter === e.FILTER_CLOSEEXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useBlurCloseExponentialShadowMap", { get: function () { return this.filter === e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP; }, set: function (t) { var n = this._validateFilter(e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP); (t || this.filter === e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "usePercentageCloserFiltering", { get: function () { return this.filter === e.FILTER_PCF; }, set: function (t) { var n = this._validateFilter(e.FILTER_PCF); (t || this.filter === e.FILTER_PCF) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "filteringQuality", { get: function () { return this._filteringQuality; }, set: function (e) { this._filteringQuality !== e && ((this._filteringQuality = e), this._disposeBlurPostProcesses(), this._applyFilterValues(), this._light._markMeshesAsLightDirty()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useContactHardeningShadow", { get: function () { return this.filter === e.FILTER_PCSS; }, set: function (t) { var n = this._validateFilter(e.FILTER_PCSS); (t || this.filter === e.FILTER_PCSS) && (this.filter = t ? n : e.FILTER_NONE); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "contactHardeningLightSizeUVRatio", { get: function () { return this._contactHardeningLightSizeUVRatio; }, set: function (e) { this._contactHardeningLightSizeUVRatio = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "darkness", { get: function () { return this._darkness; }, set: function (e) { this.setDarkness(e); }, enumerable: !0, configurable: !0, }), (e.prototype.getDarkness = function () { return this._darkness; }), (e.prototype.setDarkness = function (e) { return (this._darkness = e >= 1 ? 1 : e <= 0 ? 0 : e), this; }), Object.defineProperty(e.prototype, "transparencyShadow", { get: function () { return this._transparencyShadow; }, set: function (e) { this.setTransparencyShadow(e); }, enumerable: !0, configurable: !0, }), (e.prototype.setTransparencyShadow = function (e) { return (this._transparencyShadow = e), this; }), (e.prototype.getShadowMap = function () { return this._shadowMap; }), (e.prototype.getShadowMapForRendering = function () { return this._shadowMap2 ? this._shadowMap2 : this._shadowMap; }), (e.prototype.getClassName = function () { return e.CLASSNAME; }), (e.prototype.addShadowCaster = function (e, t) { var n; return ( void 0 === t && (t = !0), this._shadowMap ? (this._shadowMap.renderList || (this._shadowMap.renderList = []), this._shadowMap.renderList.push(e), t && (n = this._shadowMap.renderList).push.apply(n, e.getChildMeshes()), this) : this ); }), (e.prototype.removeShadowCaster = function (e, t) { if ((void 0 === t && (t = !0), !this._shadowMap || !this._shadowMap.renderList)) return this; var n = this._shadowMap.renderList.indexOf(e); if ((-1 !== n && this._shadowMap.renderList.splice(n, 1), t)) for (var i = 0, r = e.getChildren(); i < r.length; i++) { var o = r[i]; this.removeShadowCaster(o); } return this; }), (e.prototype.getLight = function () { return this._light; }), (e.prototype._initializeGenerator = function () { this._light._markMeshesAsLightDirty(), this._initializeShadowMap(); }), (e.prototype._createTargetRenderTexture = function () { this._scene.getEngine().webGLVersion > 1 ? ((this._shadowMap = new mn.a(this._light.name + "_shadowMap", this._mapSize, this._scene, !1, !0, this._textureType, this._light.needCube(), void 0, !1, !1)), this._shadowMap.createDepthStencilTexture(513, !0)) : (this._shadowMap = new mn.a(this._light.name + "_shadowMap", this._mapSize, this._scene, !1, !0, this._textureType, this._light.needCube())); }), (e.prototype._initializeShadowMap = function () { var t = this; if ((this._createTargetRenderTexture(), null !== this._shadowMap)) { (this._shadowMap.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._shadowMap.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._shadowMap.anisotropicFilteringLevel = 1), this._shadowMap.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE), (this._shadowMap.renderParticles = !1), (this._shadowMap.ignoreCameraViewport = !0), this._storedUniqueId && (this._shadowMap.uniqueId = this._storedUniqueId), (this._shadowMap.customRenderFunction = this._renderForShadowMap.bind(this)); var n = this._scene.getEngine(); this._shadowMap.onBeforeRenderObservable.add(function (i) { (t._currentFaceIndex = i), t._filter === e.FILTER_PCF && n.setColorWrite(!1); }), this._shadowMap.onAfterUnbindObservable.add(function () { if ((t._filter === e.FILTER_PCF && n.setColorWrite(!0), t.useBlurExponentialShadowMap || t.useBlurCloseExponentialShadowMap)) { var i = t.getShadowMapForRendering(); i && t._scene.postProcessManager.directRender(t._blurPostProcesses, i.getInternalTexture(), !0); } }); var i = new s.b(0, 0, 0, 0), r = new s.b(1, 1, 1, 1); this._shadowMap.onClearObservable.add(function (n) { t._filter === e.FILTER_PCF ? n.clear(r, !1, !0, !1) : t.useExponentialShadowMap || t.useBlurExponentialShadowMap ? n.clear(i, !0, !0, !1) : n.clear(r, !0, !0, !1); }), this._shadowMap.onResizeObservable.add(function (e) { (t._storedUniqueId = t._shadowMap.uniqueId), (t._mapSize = e.getRenderSize()), t._light._markMeshesAsLightDirty(), t.recreateShadowMap(); }); for (var o = oa.b.MIN_RENDERINGGROUPS; o < oa.b.MAX_RENDERINGGROUPS; o++) this._shadowMap.setRenderingAutoClearDepthStencil(o, !1); } }), (e.prototype._initializeBlurRTTAndPostProcesses = function () { var e = this, t = this._scene.getEngine(), n = this._mapSize / this.blurScale; (this.useKernelBlur && 1 === this.blurScale) || ((this._shadowMap2 = new mn.a(this._light.name + "_shadowMap2", n, this._scene, !1, !0, this._textureType)), (this._shadowMap2.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._shadowMap2.wrapV = ln.a.CLAMP_ADDRESSMODE), this._shadowMap2.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE)), this.useKernelBlur ? ((this._kernelBlurXPostprocess = new Er(this._light.name + "KernelBlurX", new a.d(1, 0), this.blurKernel, 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._textureType)), (this._kernelBlurXPostprocess.width = n), (this._kernelBlurXPostprocess.height = n), this._kernelBlurXPostprocess.onApplyObservable.add(function (t) { t.setTexture("textureSampler", e._shadowMap); }), (this._kernelBlurYPostprocess = new Er(this._light.name + "KernelBlurY", new a.d(0, 1), this.blurKernel, 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._textureType)), (this._kernelBlurXPostprocess.autoClear = !1), (this._kernelBlurYPostprocess.autoClear = !1), 0 === this._textureType && ((this._kernelBlurXPostprocess.packedFloat = !0), (this._kernelBlurYPostprocess.packedFloat = !0)), (this._blurPostProcesses = [this._kernelBlurXPostprocess, this._kernelBlurYPostprocess])) : ((this._boxBlurPostprocess = new Wt.a( this._light.name + "DepthBoxBlur", "depthBoxBlur", ["screenSize", "boxOffset"], [], 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, "#define OFFSET " + this._blurBoxOffset, this._textureType )), this._boxBlurPostprocess.onApplyObservable.add(function (t) { t.setFloat2("screenSize", n, n), t.setTexture("textureSampler", e._shadowMap); }), (this._boxBlurPostprocess.autoClear = !1), (this._blurPostProcesses = [this._boxBlurPostprocess])); }), (e.prototype._renderForShadowMap = function (e, t, n, i) { var r, o = this._scene.getEngine(), a = o.getColorWrite(); if (i.length) { for (o.setColorWrite(!1), r = 0; r < i.length; r++) this._renderSubMeshForShadowMap(i.data[r]); o.setColorWrite(a); } for (r = 0; r < e.length; r++) this._renderSubMeshForShadowMap(e.data[r]); for (r = 0; r < t.length; r++) this._renderSubMeshForShadowMap(t.data[r]); if (this._transparencyShadow) for (r = 0; r < n.length; r++) this._renderSubMeshForShadowMap(n.data[r]); }), (e.prototype._bindCustomEffectForRenderSubMeshForShadowMap = function (e, t) {}), (e.prototype._renderSubMeshForShadowMap = function (e) { var t = this, n = e.getRenderingMesh(), i = this._scene, r = i.getEngine(), o = e.getMaterial(); if (((n._internalAbstractMeshDataInfo._isActiveIntermediate = !1), o && 0 !== e.verticesCount)) { r.setState(o.backFaceCulling); var a = n._getInstancesRenderList(e._id); if (!a.mustReturn) { var s = r.getCaps().instancedArrays && null !== a.visibleInstances[e._id] && void 0 !== a.visibleInstances[e._id]; if (this.isReady(e, s)) { if ( (r.enableEffect(this._effect), n._bind(e, this._effect, o.fillMode), this._effect.setFloat3("biasAndScale", this.bias, this.normalBias, this.depthScale), this._effect.setMatrix("viewProjection", this.getTransformMatrix()), this.getLight().getTypeID() === ea.a.LIGHTTYPEID_DIRECTIONALLIGHT ? this._effect.setVector3("lightData", this._cachedDirection) : this._effect.setVector3("lightData", this._cachedPosition), i.activeCamera && this._effect.setFloat2("depthValues", this.getLight().getDepthMinZ(i.activeCamera), this.getLight().getDepthMinZ(i.activeCamera) + this.getLight().getDepthMaxZ(i.activeCamera)), o && o.needAlphaTesting()) ) { var c = o.getAlphaTestTexture(); c && (this._effect.setTexture("diffuseSampler", c), this._effect.setMatrix("diffuseMatrix", c.getTextureMatrix() || this._defaultTextureMatrix)); } if (n.useBones && n.computeBonesUsingShaders && n.skeleton) { var l = n.skeleton; if (l.isUsingTextureForMatrices) { var u = l.getTransformMatrixTexture(n); if (!u) return; this._effect.setTexture("boneSampler", u), this._effect.setFloat("boneTextureWidth", 4 * (l.bones.length + 1)); } else this._effect.setMatrices("mBones", l.getTransformMatrices(n)); } Ir.a.BindMorphTargetParameters(n, this._effect), Ir.a.BindClipPlane(this._effect, i), this._bindCustomEffectForRenderSubMeshForShadowMap(e, this._effect), this.forceBackFacesOnly && r.setState(!0, 0, !1, !0), this.onBeforeShadowMapRenderMeshObservable.notifyObservers(n), this.onBeforeShadowMapRenderObservable.notifyObservers(this._effect), n._processRendering(e, this._effect, o.fillMode, a, s, function (e, n) { return t._effect.setMatrix("world", n); }), this.forceBackFacesOnly && r.setState(!0, 0, !1, !1), this.onAfterShadowMapRenderObservable.notifyObservers(this._effect), this.onAfterShadowMapRenderMeshObservable.notifyObservers(n); } else this._shadowMap && this._shadowMap.resetRefreshCounter(); } } }), (e.prototype._applyFilterValues = function () { this._shadowMap && (this.filter === e.FILTER_NONE || this.filter === e.FILTER_PCSS ? this._shadowMap.updateSamplingMode(ln.a.NEAREST_SAMPLINGMODE) : this._shadowMap.updateSamplingMode(ln.a.BILINEAR_SAMPLINGMODE)); }), (e.prototype.forceCompilation = function (e, t) { var n = this, i = Object(h.a)({ useInstances: !1 }, t), r = this.getShadowMap(); if (r) { var o = r.renderList; if (o) { for (var a = new Array(), s = 0, c = o; s < c.length; s++) { var l = c[s]; a.push.apply(a, l.subMeshes); } if (0 !== a.length) { var u = 0, d = function () { if (n._scene && n._scene.getEngine()) { for (; n.isReady(a[u], i.useInstances); ) if (++u >= a.length) return void (e && e(n)); setTimeout(d, 16); } }; d(); } else e && e(this); } else e && e(this); } else e && e(this); }), (e.prototype.forceCompilationAsync = function (e) { var t = this; return new Promise(function (n) { t.forceCompilation(function () { n(); }, e); }); }), (e.prototype._isReadyCustomDefines = function (e, t, n) {}), (e.prototype.isReady = function (e, t) { var n = []; 0 !== this._textureType && n.push("#define FLOAT"), this.useExponentialShadowMap || this.useBlurExponentialShadowMap ? n.push("#define ESM") : (this.usePercentageCloserFiltering || this.useContactHardeningShadow) && n.push("#define DEPTHTEXTURE"); var i = [wn.b.PositionKind], r = e.getMesh(), o = e.getMaterial(); if ( (this.normalBias && r.isVerticesDataPresent(wn.b.NormalKind) && (i.push(wn.b.NormalKind), n.push("#define NORMAL"), r.nonUniformScaling && n.push("#define NONUNIFORMSCALING"), this.getLight().getTypeID() === ea.a.LIGHTTYPEID_DIRECTIONALLIGHT && n.push("#define DIRECTIONINLIGHTDATA")), o && o.needAlphaTesting()) ) { var a = o.getAlphaTestTexture(); a && (n.push("#define ALPHATEST"), r.isVerticesDataPresent(wn.b.UVKind) && (i.push(wn.b.UVKind), n.push("#define UV1")), r.isVerticesDataPresent(wn.b.UV2Kind) && 1 === a.coordinatesIndex && (i.push(wn.b.UV2Kind), n.push("#define UV2"))); } var s = new jr.a(); if (r.useBones && r.computeBonesUsingShaders && r.skeleton) { i.push(wn.b.MatricesIndicesKind), i.push(wn.b.MatricesWeightsKind), r.numBoneInfluencers > 4 && (i.push(wn.b.MatricesIndicesExtraKind), i.push(wn.b.MatricesWeightsExtraKind)); var c = r.skeleton; n.push("#define NUM_BONE_INFLUENCERS " + r.numBoneInfluencers), r.numBoneInfluencers > 0 && s.addCPUSkinningFallback(0, r), c.isUsingTextureForMatrices ? n.push("#define BONETEXTURE") : n.push("#define BonesPerMesh " + (c.bones.length + 1)); } else n.push("#define NUM_BONE_INFLUENCERS 0"); var l = r.morphTargetManager, u = 0; l && l.numInfluencers > 0 && (n.push("#define MORPHTARGETS"), (u = l.numInfluencers), n.push("#define NUM_MORPH_INFLUENCERS " + u), Ir.a.PrepareAttributesForMorphTargetsInfluencers(i, r, u)); var h = this._scene; if ( (h.clipPlane && n.push("#define CLIPPLANE"), h.clipPlane2 && n.push("#define CLIPPLANE2"), h.clipPlane3 && n.push("#define CLIPPLANE3"), h.clipPlane4 && n.push("#define CLIPPLANE4"), h.clipPlane5 && n.push("#define CLIPPLANE5"), h.clipPlane6 && n.push("#define CLIPPLANE6"), t && (n.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(i)), this.customShaderOptions && this.customShaderOptions.defines) ) for (var d = 0, p = this.customShaderOptions.defines; d < p.length; d++) { var f = p[d]; -1 === n.indexOf(f) && n.push(f); } this._light.needCube() && n.push("#define USEDISTANCE"), this._isReadyCustomDefines(n, e, t); var m = n.join("\n"); if (this._cachedDefines !== m) { this._cachedDefines = m; var g = "shadowMap", b = [ "world", "mBones", "viewProjection", "diffuseMatrix", "lightData", "depthValues", "biasAndScale", "morphTargetInfluences", "boneTextureWidth", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", ], _ = ["diffuseSampler", "boneSampler"]; if (this.customShaderOptions) { if (((g = this.customShaderOptions.shaderName), this.customShaderOptions.attributes)) for (var v = 0, y = this.customShaderOptions.attributes; v < y.length; v++) { var C = y[v]; -1 === i.indexOf(C) && i.push(C); } if (this.customShaderOptions.uniforms) for (var P = 0, x = this.customShaderOptions.uniforms; P < x.length; P++) { var T = x[P]; -1 === b.indexOf(T) && b.push(T); } if (this.customShaderOptions.samplers) for (var S = 0, O = this.customShaderOptions.samplers; S < O.length; S++) { var E = O[S]; -1 === _.indexOf(E) && _.push(E); } } this._effect = this._scene.getEngine().createEffect(g, i, b, _, m, s, void 0, void 0, { maxSimultaneousMorphTargets: u }); } return ( !!this._effect.isReady() && ((this.useBlurExponentialShadowMap || this.useBlurCloseExponentialShadowMap) && ((this._blurPostProcesses && this._blurPostProcesses.length) || this._initializeBlurRTTAndPostProcesses()), !(this._kernelBlurXPostprocess && !this._kernelBlurXPostprocess.isReady()) && !(this._kernelBlurYPostprocess && !this._kernelBlurYPostprocess.isReady()) && !(this._boxBlurPostprocess && !this._boxBlurPostprocess.isReady())) ); }), (e.prototype.prepareDefines = function (t, n) { var i = this._scene, r = this._light; i.shadowsEnabled && r.shadowEnabled && ((t["SHADOW" + n] = !0), this.useContactHardeningShadow ? ((t["SHADOWPCSS" + n] = !0), this._filteringQuality === e.QUALITY_LOW ? (t["SHADOWLOWQUALITY" + n] = !0) : this._filteringQuality === e.QUALITY_MEDIUM && (t["SHADOWMEDIUMQUALITY" + n] = !0)) : this.usePercentageCloserFiltering ? ((t["SHADOWPCF" + n] = !0), this._filteringQuality === e.QUALITY_LOW ? (t["SHADOWLOWQUALITY" + n] = !0) : this._filteringQuality === e.QUALITY_MEDIUM && (t["SHADOWMEDIUMQUALITY" + n] = !0)) : this.usePoissonSampling ? (t["SHADOWPOISSON" + n] = !0) : this.useExponentialShadowMap || this.useBlurExponentialShadowMap ? (t["SHADOWESM" + n] = !0) : (this.useCloseExponentialShadowMap || this.useBlurCloseExponentialShadowMap) && (t["SHADOWCLOSEESM" + n] = !0), r.needCube() && (t["SHADOWCUBE" + n] = !0)); }), (e.prototype.bindShadowLight = function (t, n) { var i = this._light, r = this._scene; if (r.shadowsEnabled && i.shadowEnabled) { var o = r.activeCamera; if (o) { var a = this.getShadowMap(); a && (i.needCube() || n.setMatrix("lightMatrix" + t, this.getTransformMatrix()), this._filter === e.FILTER_PCF ? (n.setDepthStencilTexture("shadowSampler" + t, this.getShadowMapForRendering()), i._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), a.getSize().width, 1 / a.getSize().width, this.frustumEdgeFalloff, t)) : this._filter === e.FILTER_PCSS ? (n.setDepthStencilTexture("shadowSampler" + t, this.getShadowMapForRendering()), n.setTexture("depthSampler" + t, this.getShadowMapForRendering()), i._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), 1 / a.getSize().width, this._contactHardeningLightSizeUVRatio * a.getSize().width, this.frustumEdgeFalloff, t)) : (n.setTexture("shadowSampler" + t, this.getShadowMapForRendering()), i._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), this.blurScale / a.getSize().width, this.depthScale, this.frustumEdgeFalloff, t)), i._uniformBuffer.updateFloat2("depthValues", this.getLight().getDepthMinZ(o), this.getLight().getDepthMinZ(o) + this.getLight().getDepthMaxZ(o), t)); } } }), (e.prototype.getTransformMatrix = function () { var e = this._scene; if (this._currentRenderID === e.getRenderId() && this._currentFaceIndexCache === this._currentFaceIndex) return this._transformMatrix; (this._currentRenderID = e.getRenderId()), (this._currentFaceIndexCache = this._currentFaceIndex); var t = this._light.position; if ( (this._light.computeTransformedInformation() && (t = this._light.transformedPosition), a.e.NormalizeToRef(this._light.getShadowDirection(this._currentFaceIndex), this._lightDirection), 1 === Math.abs(a.e.Dot(this._lightDirection, a.e.Up())) && (this._lightDirection.z = 1e-13), this._light.needProjectionMatrixCompute() || !this._cachedPosition || !this._cachedDirection || !t.equals(this._cachedPosition) || !this._lightDirection.equals(this._cachedDirection)) ) { this._cachedPosition.copyFrom(t), this._cachedDirection.copyFrom(this._lightDirection), a.a.LookAtLHToRef(t, t.add(this._lightDirection), a.e.Up(), this._viewMatrix); var n = this.getShadowMap(); if (n) { var i = n.renderList; i && this._light.setShadowProjectionMatrix(this._projectionMatrix, this._viewMatrix, i); } this._viewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix); } return this._transformMatrix; }), (e.prototype.recreateShadowMap = function () { var e = this._shadowMap; if (e) { var t = e.renderList; this._disposeRTTandPostProcesses(), this._initializeGenerator(), (this.filter = this.filter), this._applyFilterValues(), (this._shadowMap.renderList = t); } }), (e.prototype._disposeBlurPostProcesses = function () { this._shadowMap2 && (this._shadowMap2.dispose(), (this._shadowMap2 = null)), this._boxBlurPostprocess && (this._boxBlurPostprocess.dispose(), (this._boxBlurPostprocess = null)), this._kernelBlurXPostprocess && (this._kernelBlurXPostprocess.dispose(), (this._kernelBlurXPostprocess = null)), this._kernelBlurYPostprocess && (this._kernelBlurYPostprocess.dispose(), (this._kernelBlurYPostprocess = null)), (this._blurPostProcesses = []); }), (e.prototype._disposeRTTandPostProcesses = function () { this._shadowMap && (this._shadowMap.dispose(), (this._shadowMap = null)), this._disposeBlurPostProcesses(); }), (e.prototype.dispose = function () { this._disposeRTTandPostProcesses(), this._light && ((this._light._shadowGenerator = null), this._light._markMeshesAsLightDirty()), this.onBeforeShadowMapRenderMeshObservable.clear(), this.onBeforeShadowMapRenderObservable.clear(), this.onAfterShadowMapRenderMeshObservable.clear(), this.onAfterShadowMapRenderObservable.clear(); }), (e.prototype.serialize = function () { var e = {}, t = this.getShadowMap(); if (!t) return e; if ( ((e.className = this.getClassName()), (e.lightId = this._light.id), (e.mapSize = t.getRenderSize()), (e.forceBackFacesOnly = this.forceBackFacesOnly), (e.darkness = this.getDarkness()), (e.transparencyShadow = this._transparencyShadow), (e.frustumEdgeFalloff = this.frustumEdgeFalloff), (e.bias = this.bias), (e.normalBias = this.normalBias), (e.usePercentageCloserFiltering = this.usePercentageCloserFiltering), (e.useContactHardeningShadow = this.useContactHardeningShadow), (e.contactHardeningLightSizeUVRatio = this.contactHardeningLightSizeUVRatio), (e.filteringQuality = this.filteringQuality), (e.useExponentialShadowMap = this.useExponentialShadowMap), (e.useBlurExponentialShadowMap = this.useBlurExponentialShadowMap), (e.useCloseExponentialShadowMap = this.useBlurExponentialShadowMap), (e.useBlurCloseExponentialShadowMap = this.useBlurExponentialShadowMap), (e.usePoissonSampling = this.usePoissonSampling), (e.depthScale = this.depthScale), (e.blurBoxOffset = this.blurBoxOffset), (e.blurKernel = this.blurKernel), (e.blurScale = this.blurScale), (e.useKernelBlur = this.useKernelBlur), (e.renderList = []), t.renderList) ) for (var n = 0; n < t.renderList.length; n++) { var i = t.renderList[n]; e.renderList.push(i.id); } return e; }), (e.Parse = function (t, n, i) { for (var r = n.getLightByID(t.lightId), o = i ? i(t.mapSize, r) : new e(t.mapSize, r), a = o.getShadowMap(), s = 0; s < t.renderList.length; s++) { n.getMeshesByID(t.renderList[s]).forEach(function (e) { a && (a.renderList || (a.renderList = []), a.renderList.push(e)); }); } return ( (o.forceBackFacesOnly = !!t.forceBackFacesOnly), void 0 !== t.darkness && o.setDarkness(t.darkness), t.transparencyShadow && o.setTransparencyShadow(!0), void 0 !== t.frustumEdgeFalloff && (o.frustumEdgeFalloff = t.frustumEdgeFalloff), void 0 !== t.bias && (o.bias = t.bias), void 0 !== t.normalBias && (o.normalBias = t.normalBias), t.usePercentageCloserFiltering ? (o.usePercentageCloserFiltering = !0) : t.useContactHardeningShadow ? (o.useContactHardeningShadow = !0) : t.usePoissonSampling ? (o.usePoissonSampling = !0) : t.useExponentialShadowMap ? (o.useExponentialShadowMap = !0) : t.useBlurExponentialShadowMap ? (o.useBlurExponentialShadowMap = !0) : t.useCloseExponentialShadowMap ? (o.useCloseExponentialShadowMap = !0) : t.useBlurCloseExponentialShadowMap ? (o.useBlurCloseExponentialShadowMap = !0) : t.useVarianceShadowMap ? (o.useExponentialShadowMap = !0) : t.useBlurVarianceShadowMap && (o.useBlurExponentialShadowMap = !0), void 0 !== t.contactHardeningLightSizeUVRatio && (o.contactHardeningLightSizeUVRatio = t.contactHardeningLightSizeUVRatio), void 0 !== t.filteringQuality && (o.filteringQuality = t.filteringQuality), t.depthScale && (o.depthScale = t.depthScale), t.blurScale && (o.blurScale = t.blurScale), t.blurBoxOffset && (o.blurBoxOffset = t.blurBoxOffset), t.useKernelBlur && (o.useKernelBlur = t.useKernelBlur), t.blurKernel && (o.blurKernel = t.blurKernel), o ); }), (e.CLASSNAME = "ShadowGenerator"), (e.FILTER_NONE = 0), (e.FILTER_EXPONENTIALSHADOWMAP = 1), (e.FILTER_POISSONSAMPLING = 2), (e.FILTER_BLUREXPONENTIALSHADOWMAP = 3), (e.FILTER_CLOSEEXPONENTIALSHADOWMAP = 4), (e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP = 5), (e.FILTER_PCF = 6), (e.FILTER_PCSS = 7), (e.QUALITY_HIGH = 0), (e.QUALITY_MEDIUM = 1), (e.QUALITY_LOW = 2), (e._SceneComponentInitialization = function (e) { throw zo.a.WarnImport("ShadowGeneratorSceneComponent"); }), e ); })(), sa = "#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\nvarying float vDepthMetric;\n#ifdef PACKED\n#include\n#endif\nvoid main(void)\n{\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#ifdef NONLINEARDEPTH\n#ifdef PACKED\ngl_FragColor=pack(gl_FragCoord.z);\n#else\ngl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);\n#endif\n#else\n#ifdef PACKED\ngl_FragColor=pack(vDepthMetric);\n#else\ngl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);\n#endif\n#endif\n}"; Xt.a.ShadersStore.depthPixelShader = sa; var ca = "\nattribute vec3 position;\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\n#include\nuniform mat4 viewProjection;\nuniform vec2 depthValues;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\nvarying float vDepthMetric;\nvoid main(void)\n{\nvec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n}\n"; Xt.a.ShadersStore.depthVertexShader = ca; var la = (function () { function e(t, n, i, r) { var o = this; void 0 === n && (n = 1), void 0 === i && (i = null), void 0 === r && (r = !1), (this.enabled = !0), (this.useOnlyInActiveCamera = !1), (this._scene = t), (this._storeNonLinearDepth = r), (this.isPacked = 0 === n), this.isPacked ? (this._clearColor = new s.b(1, 1, 1, 1)) : (this._clearColor = new s.b(1, 0, 0, 1)), e._SceneComponentInitialization(this._scene), (this._camera = i); var a = t.getEngine(), c = this.isPacked || 1 === a.webGLVersion ? 5 : 6; (this._depthMap = new mn.a("depthMap", { width: a.getRenderWidth(), height: a.getRenderHeight() }, this._scene, !1, !0, n, !1, void 0, void 0, void 0, void 0, c)), (this._depthMap.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._depthMap.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._depthMap.refreshRate = 1), (this._depthMap.renderParticles = !1), (this._depthMap.renderList = null), (this._depthMap.activeCamera = this._camera), (this._depthMap.ignoreCameraViewport = !0), (this._depthMap.useCameraPostProcesses = !1), this._depthMap.onClearObservable.add(function (e) { e.clear(o._clearColor, !0, !0, !0); }); var l = function (e) { var t = e.getRenderingMesh(), n = o._scene, i = n.getEngine(), r = e.getMaterial(); if (((t._internalAbstractMeshDataInfo._isActiveIntermediate = !1), r)) { i.setState(r.backFaceCulling, 0, !1, n.useRightHandedSystem); var a = t._getInstancesRenderList(e._id); if (!a.mustReturn) { var s = i.getCaps().instancedArrays && null !== a.visibleInstances[e._id], c = o._camera || n.activeCamera; if (o.isReady(e, s) && c) { if ( (i.enableEffect(o._effect), t._bind(e, o._effect, r.fillMode), o._effect.setMatrix("viewProjection", n.getTransformMatrix()), o._effect.setFloat2("depthValues", c.minZ, c.minZ + c.maxZ), r && r.needAlphaTesting()) ) { var l = r.getAlphaTestTexture(); l && (o._effect.setTexture("diffuseSampler", l), o._effect.setMatrix("diffuseMatrix", l.getTextureMatrix())); } t.useBones && t.computeBonesUsingShaders && t.skeleton && o._effect.setMatrices("mBones", t.skeleton.getTransformMatrices(t)), Ir.a.BindMorphTargetParameters(t, o._effect), t._processRendering(e, o._effect, r.fillMode, a, s, function (e, t) { return o._effect.setMatrix("world", t); }); } } } }; this._depthMap.customRenderFunction = function (e, t, n, i) { var r; if (i.length) { for (a.setColorWrite(!1), r = 0; r < i.length; r++) l(i.data[r]); a.setColorWrite(!0); } for (r = 0; r < e.length; r++) l(e.data[r]); for (r = 0; r < t.length; r++) l(t.data[r]); }; } return ( (e.prototype.isReady = function (e, t) { var n = e.getMaterial(); if (n.disableDepthWrite) return !1; var i = [], r = [wn.b.PositionKind], o = e.getMesh(); n && n.needAlphaTesting() && n.getAlphaTestTexture() && (i.push("#define ALPHATEST"), o.isVerticesDataPresent(wn.b.UVKind) && (r.push(wn.b.UVKind), i.push("#define UV1")), o.isVerticesDataPresent(wn.b.UV2Kind) && (r.push(wn.b.UV2Kind), i.push("#define UV2"))), o.useBones && o.computeBonesUsingShaders ? (r.push(wn.b.MatricesIndicesKind), r.push(wn.b.MatricesWeightsKind), o.numBoneInfluencers > 4 && (r.push(wn.b.MatricesIndicesExtraKind), r.push(wn.b.MatricesWeightsExtraKind)), i.push("#define NUM_BONE_INFLUENCERS " + o.numBoneInfluencers), i.push("#define BonesPerMesh " + (o.skeleton ? o.skeleton.bones.length + 1 : 0))) : i.push("#define NUM_BONE_INFLUENCERS 0"); var a = o.morphTargetManager, s = 0; a && a.numInfluencers > 0 && ((s = a.numInfluencers), i.push("#define MORPHTARGETS"), i.push("#define NUM_MORPH_INFLUENCERS " + s), Ir.a.PrepareAttributesForMorphTargetsInfluencers(r, o, s)), t && (i.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(r)), this._storeNonLinearDepth && i.push("#define NONLINEARDEPTH"), this.isPacked && i.push("#define PACKED"); var c = i.join("\n"); return ( this._cachedDefines !== c && ((this._cachedDefines = c), (this._effect = this._scene .getEngine() .createEffect("depth", r, ["world", "mBones", "viewProjection", "diffuseMatrix", "depthValues", "morphTargetInfluences"], ["diffuseSampler"], c, void 0, void 0, void 0, { maxSimultaneousMorphTargets: s, }))), this._effect.isReady() ); }), (e.prototype.getDepthMap = function () { return this._depthMap; }), (e.prototype.dispose = function () { this._depthMap.dispose(); }), (e._SceneComponentInitialization = function (e) { throw zo.a.WarnImport("DepthRendererSceneComponent"); }), e ); })(), ua = n(135), ha = "attribute vec2 vUV;\nuniform sampler2D textureSampler;\n#if defined(INITIAL)\nuniform sampler2D sourceTexture;\nuniform vec2 texSize;\nvoid main(void)\n{\nivec2 coord=ivec2(vUV*(texSize-1.0));\nfloat f1=texelFetch(sourceTexture,coord,0).r;\nfloat f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;\nfloat f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;\nfloat f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;\nfloat minz=min(min(min(f1,f2),f3),f4);\n#ifdef DEPTH_REDUX\nfloat maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);\n#else\nfloat maxz=max(max(max(f1,f2),f3),f4);\n#endif\nglFragColor=vec4(minz,maxz,0.,0.);\n}\n#elif defined(MAIN)\nuniform vec2 texSize;\nvoid main(void)\n{\nivec2 coord=ivec2(vUV*(texSize-1.0));\nvec2 f1=texelFetch(textureSampler,coord,0).rg;\nvec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;\nvec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;\nvec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;\nfloat minz=min(min(min(f1.x,f2.x),f3.x),f4.x);\nfloat maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);\nglFragColor=vec4(minz,maxz,0.,0.);\n}\n#elif defined(ONEBEFORELAST)\nuniform ivec2 texSize;\nvoid main(void)\n{\nivec2 coord=ivec2(vUV*vec2(texSize-1));\nvec2 f1=texelFetch(textureSampler,coord % texSize,0).rg;\nvec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg;\nvec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg;\nvec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg;\nfloat minz=min(f1.x,f2.x);\nfloat maxz=max(f1.y,f2.y);\nglFragColor=vec4(minz,maxz,0.,0.);\n}\n#elif defined(LAST)\nvoid main(void)\n{\ndiscard;\nglFragColor=vec4(0.);\n}\n#endif\n"; Xt.a.ShadersStore.minmaxReduxPixelShader = ha; var da = (function () { function e(e) { (this.onAfterReductionPerformed = new o.c()), (this._forceFullscreenViewport = !0), (this._activated = !1), (this._camera = e), (this._postProcessManager = new ua.a(e.getScene())); } return ( Object.defineProperty(e.prototype, "sourceTexture", { get: function () { return this._sourceTexture; }, enumerable: !0, configurable: !0, }), (e.prototype.setSourceTexture = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = 2), void 0 === i && (i = !0), e !== this._sourceTexture)) { this.dispose(!1), (this._sourceTexture = e), (this._reductionSteps = []), (this._forceFullscreenViewport = i); var o = this._camera.getScene(), a = new Wt.a("Initial reduction phase", "minmaxRedux", ["texSize"], ["sourceTexture"], 1, null, 1, o.getEngine(), !1, "#define INITIAL" + (t ? "\n#define DEPTH_REDUX" : ""), n, void 0, void 0, void 0, 7); (a.autoClear = !1), (a.forceFullscreenViewport = i); var s = this._sourceTexture.getRenderWidth(), c = this._sourceTexture.getRenderHeight(); (a.onApply = (function (e, t) { return function (n) { n.setTexture("sourceTexture", r._sourceTexture), n.setFloatArray2("texSize", new Float32Array([e, t])); }; })(s, c)), this._reductionSteps.push(a); for (var l = 1; s > 1 || c > 1; ) { (s = Math.max(Math.round(s / 2), 1)), (c = Math.max(Math.round(c / 2), 1)); var u = new Wt.a( "Reduction phase " + l, "minmaxRedux", ["texSize"], null, { width: s, height: c }, null, 1, o.getEngine(), !1, "#define " + (1 == s && 1 == c ? "LAST" : 1 == s || 1 == c ? "ONEBEFORELAST" : "MAIN"), n, void 0, void 0, void 0, 7 ); if ( ((u.autoClear = !1), (u.forceFullscreenViewport = i), (u.onApply = (function (e, t) { return function (n) { 1 == e || 1 == t ? n.setIntArray2("texSize", new Int32Array([e, t])) : n.setFloatArray2("texSize", new Float32Array([e, t])); }; })(s, c)), this._reductionSteps.push(u), l++, 1 == s && 1 == c) ) { u.onAfterRenderObservable.add( (function (e, t, n) { var i = new Float32Array(4 * e * t), a = { min: 0, max: 0 }; return function () { o.getEngine()._readTexturePixels(n.inputTexture, e, t, -1, 0, i), (a.min = i[0]), (a.max = i[1]), r.onAfterReductionPerformed.notifyObservers(a); }; })(s, c, u) ); } } } }), Object.defineProperty(e.prototype, "refreshRate", { get: function () { return this._sourceTexture ? this._sourceTexture.refreshRate : -1; }, set: function (e) { this._sourceTexture && (this._sourceTexture.refreshRate = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "activated", { get: function () { return this._activated; }, enumerable: !0, configurable: !0, }), (e.prototype.activate = function () { var e = this; !this._onAfterUnbindObserver && this._sourceTexture && ((this._onAfterUnbindObserver = this._sourceTexture.onAfterUnbindObservable.add(function () { e._reductionSteps[0].activate(e._camera), e._postProcessManager.directRender(e._reductionSteps, e._reductionSteps[0].inputTexture, e._forceFullscreenViewport), e._camera.getScene().getEngine().unBindFramebuffer(e._reductionSteps[0].inputTexture, !1); })), (this._activated = !0)); }), (e.prototype.deactivate = function () { this._onAfterUnbindObserver && this._sourceTexture && (this._sourceTexture.onAfterUnbindObservable.remove(this._onAfterUnbindObserver), (this._onAfterUnbindObserver = null), (this._activated = !1)); }), (e.prototype.dispose = function (e) { if ((void 0 === e && (e = !0), e && this.onAfterReductionPerformed.clear(), this.deactivate(), this._reductionSteps)) { for (var t = 0; t < this._reductionSteps.length; ++t) this._reductionSteps[t].dispose(); this._reductionSteps = null; } this._postProcessManager && e && this._postProcessManager.dispose(), (this._sourceTexture = null); }), e ); })(), pa = (function (e) { function t(t) { return e.call(this, t) || this; } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "depthRenderer", { get: function () { return this._depthRenderer; }, enumerable: !0, configurable: !0, }), (t.prototype.setDepthRenderer = function (t, n, i) { void 0 === t && (t = null), void 0 === n && (n = 2), void 0 === i && (i = !0); var r = this._camera.getScene(); this._depthRenderer && (delete r._depthRenderer[this._depthRendererId], this._depthRenderer.dispose(), (this._depthRenderer = null)), null === t && (r._depthRenderer || (r._depthRenderer = {}), ((t = this._depthRenderer = new la(r, n, this._camera, !1)).enabled = !1), (this._depthRendererId = "minmax" + this._camera.id), (r._depthRenderer[this._depthRendererId] = t)), e.prototype.setSourceTexture.call(this, t.getDepthMap(), !0, n, i); }), (t.prototype.setSourceTexture = function (t, n, i, r) { void 0 === i && (i = 2), void 0 === r && (r = !0), e.prototype.setSourceTexture.call(this, t, n, i, r); }), (t.prototype.activate = function () { this._depthRenderer && (this._depthRenderer.enabled = !0), e.prototype.activate.call(this); }), (t.prototype.deactivate = function () { e.prototype.deactivate.call(this), this._depthRenderer && (this._depthRenderer.enabled = !1); }), (t.prototype.dispose = function (t) { var n; void 0 === t && (t = !0), e.prototype.dispose.call(this, t), this._depthRenderer && t && (null === (n = this._depthRenderer.getDepthMap().getScene()) || void 0 === n || n._depthRenderer[this._depthRendererId], this._depthRenderer.dispose(), (this._depthRenderer = null)); }), t ); })(da), fa = a.e.Up(), ma = a.e.Zero(), ga = new a.e(), ba = new a.e(), _a = new a.a(), va = (function (e) { function t(t, n, i) { var r = e.call(this, t, n, i) || this; if (1 == r._scene.getEngine().webGLVersion) throw "CSM can only be used in WebGL2"; return (r.usePercentageCloserFiltering = !0), r; } return ( Object(h.d)(t, e), (t.prototype._validateFilter = function (e) { return e === aa.FILTER_NONE || e === aa.FILTER_PCF || e === aa.FILTER_PCSS ? e : aa.FILTER_NONE; }), Object.defineProperty(t.prototype, "numCascades", { get: function () { return this._numCascades; }, set: function (e) { (e = Math.min(Math.max(e, t.MIN_CASCADES_COUNT), t.MAX_CASCADES_COUNT)) !== this._numCascades && ((this._numCascades = e), this.recreateShadowMap()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "freezeShadowCastersBoundingInfo", { get: function () { return this._freezeShadowCastersBoundingInfo; }, set: function (e) { this._freezeShadowCastersBoundingInfoObservable && e && (this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable), (this._freezeShadowCastersBoundingInfoObservable = null)), this._freezeShadowCastersBoundingInfoObservable || e || (this._freezeShadowCastersBoundingInfoObservable = this._scene.onBeforeRenderObservable.add(this._computeShadowCastersBoundingInfo.bind(this))), (this._freezeShadowCastersBoundingInfo = e), e && this._computeShadowCastersBoundingInfo(); }, enumerable: !0, configurable: !0, }), (t.prototype._computeShadowCastersBoundingInfo = function () { if ( (this._scbiMin.copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._scbiMax.copyFromFloats(Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE), this._shadowMap && this._shadowMap.renderList) ) { for (var e = this._shadowMap.renderList, t = 0; t < e.length; t++) { if ((r = e[t])) { var n = r.getBoundingInfo().boundingBox; this._scbiMin.minimizeInPlace(n.minimumWorld), this._scbiMax.maximizeInPlace(n.maximumWorld); } } var i = this._scene.meshes; for (t = 0; t < i.length; t++) { var r; if ((r = i[t]) && r.isVisible && r.isEnabled && r.receiveShadows) { n = r.getBoundingInfo().boundingBox; this._scbiMin.minimizeInPlace(n.minimumWorld), this._scbiMax.maximizeInPlace(n.maximumWorld); } } } this._shadowCastersBoundingInfo.reConstruct(this._scbiMin, this._scbiMax); }), Object.defineProperty(t.prototype, "shadowCastersBoundingInfo", { get: function () { return this._shadowCastersBoundingInfo; }, set: function (e) { this._shadowCastersBoundingInfo = e; }, enumerable: !0, configurable: !0, }), (t.prototype.setMinMaxDistance = function (e, t) { (this._minDistance === e && this._maxDistance === t) || (e > t && ((e = 0), (t = 1)), e < 0 && (e = 0), t > 1 && (t = 1), (this._minDistance = e), (this._maxDistance = t), (this._breaksAreDirty = !0)); }), Object.defineProperty(t.prototype, "minDistance", { get: function () { return this._minDistance; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "maxDistance", { get: function () { return this._maxDistance; }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return t.CLASSNAME; }), (t.prototype.getCascadeMinExtents = function (e) { return e >= 0 && e < this._numCascades ? this._cascadeMinExtents[e] : null; }), (t.prototype.getCascadeMaxExtents = function (e) { return e >= 0 && e < this._numCascades ? this._cascadeMaxExtents[e] : null; }), Object.defineProperty(t.prototype, "shadowMaxZ", { get: function () { return this._scene && this._scene.activeCamera ? this._shadowMaxZ : 0; }, set: function (e) { this._scene && this._scene.activeCamera ? this._shadowMaxZ === e || e < this._scene.activeCamera.minZ || e > this._scene.activeCamera.maxZ || ((this._shadowMaxZ = e), this._light._markMeshesAsLightDirty(), (this._breaksAreDirty = !0)) : (this._shadowMaxZ = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "debug", { get: function () { return this._debug; }, set: function (e) { (this._debug = e), this._light._markMeshesAsLightDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "depthClamp", { get: function () { return this._depthClamp; }, set: function (e) { this._depthClamp = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cascadeBlendPercentage", { get: function () { return this._cascadeBlendPercentage; }, set: function (e) { (this._cascadeBlendPercentage = e), this._light._markMeshesAsLightDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "lambda", { get: function () { return this._lambda; }, set: function (e) { var t = Math.min(Math.max(e, 0), 1); this._lambda != t && ((this._lambda = t), (this._breaksAreDirty = !0)); }, enumerable: !0, configurable: !0, }), (t.prototype.getCascadeViewMatrix = function (e) { return e >= 0 && e < this._numCascades ? this._viewMatrices[e] : null; }), (t.prototype.getCascadeProjectionMatrix = function (e) { return e >= 0 && e < this._numCascades ? this._projectionMatrices[e] : null; }), (t.prototype.getCascadeTransformMatrix = function (e) { return e >= 0 && e < this._numCascades ? this._transformMatrices[e] : null; }), (t.prototype.setDepthRenderer = function (e) { (this._depthRenderer = e), this._depthReducer && this._depthReducer.setDepthRenderer(this._depthRenderer); }), Object.defineProperty(t.prototype, "autoCalcDepthBounds", { get: function () { return this._autoCalcDepthBounds; }, set: function (e) { var t = this, n = this._scene.activeCamera; if (n) { if (((this._autoCalcDepthBounds = e), !e)) return this._depthReducer && this._depthReducer.deactivate(), void this.setMinMaxDistance(0, 1); this._depthReducer || ((this._depthReducer = new pa(n)), this._depthReducer.onAfterReductionPerformed.add(function (e) { var n = e.min, i = e.max; n >= i && ((n = 0), (i = 1)), (n == t._minDistance && i == t._maxDistance) || t.setMinMaxDistance(n, i); }), this._depthReducer.setDepthRenderer(this._depthRenderer)), this._depthReducer.activate(); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "autoCalcDepthBoundsRefreshRate", { get: function () { var e, t, n; return null != (n = null === (t = null === (e = this._depthReducer) || void 0 === e ? void 0 : e.depthRenderer) || void 0 === t ? void 0 : t.getDepthMap().refreshRate) ? n : -1; }, set: function (e) { var t; (null === (t = this._depthReducer) || void 0 === t ? void 0 : t.depthRenderer) && (this._depthReducer.depthRenderer.getDepthMap().refreshRate = e); }, enumerable: !0, configurable: !0, }), (t.prototype.splitFrustum = function () { this._breaksAreDirty = !0; }), (t.prototype._splitFrustum = function () { var e = this._scene.activeCamera; if (e) { for ( var t = e.minZ, n = e.maxZ, i = n - t, r = this._minDistance, o = t + r * i, a = t + (this._shadowMaxZ < n && this._shadowMaxZ >= t ? Math.min((this._shadowMaxZ - t) / (n - t), this._maxDistance) : this._maxDistance) * i, s = a - o, c = a / o, l = 0; l < this._cascades.length; ++l ) { var u = (l + 1) / this._numCascades, h = o * Math.pow(c, u), d = o + s * u, p = this._lambda * (h - d) + d; (this._cascades[l].prevBreakDistance = 0 === l ? r : this._cascades[l - 1].breakDistance), (this._cascades[l].breakDistance = (p - t) / i), (this._viewSpaceFrustumsZ[l] = t + this._cascades[l].breakDistance * i), (this._frustumLengths[l] = (this._cascades[l].breakDistance - this._cascades[l].prevBreakDistance) * i); } this._breaksAreDirty = !1; } }), (t.prototype._computeMatrices = function () { if (this._scene.activeCamera) { a.e.NormalizeToRef(this._light.getShadowDirection(0), this._lightDirection), 1 === Math.abs(a.e.Dot(this._lightDirection, a.e.Up())) && (this._lightDirection.z = 1e-13), this._cachedDirection.copyFrom(this._lightDirection); for (var e = 0; e < this._numCascades; ++e) { this._computeFrustumInWorldSpace(e), this._computeCascadeFrustum(e), this._cascadeMaxExtents[e].subtractToRef(this._cascadeMinExtents[e], ga), this._frustumCenter[e].addToRef(this._lightDirection.scale(this._cascadeMinExtents[e].z), this._shadowCameraPos[e]), a.a.LookAtLHToRef(this._shadowCameraPos[e], this._frustumCenter[e], fa, this._viewMatrices[e]); var t = 0, n = ga.z, i = this._shadowCastersBoundingInfo; i.update(this._viewMatrices[e]), (n = Math.min(n, i.boundingBox.maximumWorld.z)), (t = this._depthClamp && this.filter !== aa.FILTER_PCSS ? Math.max(t, i.boundingBox.minimumWorld.z) : Math.min(t, i.boundingBox.minimumWorld.z)), a.a.OrthoOffCenterLHToRef(this._cascadeMinExtents[e].x, this._cascadeMaxExtents[e].x, this._cascadeMinExtents[e].y, this._cascadeMaxExtents[e].y, t, n, this._projectionMatrices[e]), (this._cascadeMinExtents[e].z = t), (this._cascadeMaxExtents[e].z = n), this._viewMatrices[e].multiplyToRef(this._projectionMatrices[e], this._transformMatrices[e]), a.e.TransformCoordinatesToRef(ma, this._transformMatrices[e], ga), ga.scaleInPlace(this._mapSize / 2), ba.copyFromFloats(Math.round(ga.x), Math.round(ga.y), Math.round(ga.z)), ba.subtractInPlace(ga).scaleInPlace(2 / this._mapSize), a.a.TranslationToRef(ba.x, ba.y, 0, _a), this._projectionMatrices[e].multiplyToRef(_a, this._projectionMatrices[e]), this._viewMatrices[e].multiplyToRef(this._projectionMatrices[e], this._transformMatrices[e]), this._transformMatrices[e].copyToArray(this._transformMatricesAsArray, 16 * e); } } }), (t.prototype._computeFrustumInWorldSpace = function (e) { if (this._scene.activeCamera) { var n = this._cascades[e].prevBreakDistance, i = this._cascades[e].breakDistance; this._scene.activeCamera.getViewMatrix(); for (var r = a.a.Invert(this._scene.activeCamera.getTransformationMatrix()), o = 0; o < t.frustumCornersNDCSpace.length; ++o) a.e.TransformCoordinatesToRef(t.frustumCornersNDCSpace[o], r, this._frustumCornersWorldSpace[e][o]); for (o = 0; o < t.frustumCornersNDCSpace.length / 2; ++o) ga.copyFrom(this._frustumCornersWorldSpace[e][o + 4]).subtractInPlace(this._frustumCornersWorldSpace[e][o]), ba.copyFrom(ga).scaleInPlace(n), ga.scaleInPlace(i), ga.addInPlace(this._frustumCornersWorldSpace[e][o]), this._frustumCornersWorldSpace[e][o + 4].copyFrom(ga), this._frustumCornersWorldSpace[e][o].addInPlace(ba); } }), (t.prototype._computeCascadeFrustum = function (e) { if ( (this._cascadeMinExtents[e].copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cascadeMaxExtents[e].copyFromFloats(Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE), this._frustumCenter[e].copyFromFloats(0, 0, 0), this._scene.activeCamera) ) { for (var t = 0; t < this._frustumCornersWorldSpace[e].length; ++t) this._frustumCenter[e].addInPlace(this._frustumCornersWorldSpace[e][t]); if ((this._frustumCenter[e].scaleInPlace(1 / this._frustumCornersWorldSpace[e].length), this.stabilizeCascades)) { var n = 0; for (t = 0; t < this._frustumCornersWorldSpace[e].length; ++t) { var i = this._frustumCornersWorldSpace[e][t].subtractToRef(this._frustumCenter[e], ga).length(); n = Math.max(n, i); } (n = Math.ceil(16 * n) / 16), this._cascadeMaxExtents[e].copyFromFloats(n, n, n), this._cascadeMinExtents[e].copyFromFloats(-n, -n, -n); } else { var r = this._frustumCenter[e]; this._frustumCenter[e].addToRef(this._lightDirection, ga), a.a.LookAtLHToRef(r, ga, fa, _a); for (t = 0; t < this._frustumCornersWorldSpace[e].length; ++t) a.e.TransformCoordinatesToRef(this._frustumCornersWorldSpace[e][t], _a, ga), this._cascadeMinExtents[e].minimizeInPlace(ga), this._cascadeMaxExtents[e].maximizeInPlace(ga); } } }), (t.prototype._initializeGenerator = function () { var n, i, r, o, s, c, l, u, h, d, p, f, m, g, b, _, v, y, C, P; (this.penumbraDarkness = null != (n = this.penumbraDarkness) ? n : 1), (this._numCascades = null != (i = this._numCascades) ? i : t.DEFAULT_CASCADES_COUNT), (this.stabilizeCascades = null != (r = this.stabilizeCascades) && r), (this._freezeShadowCastersBoundingInfoObservable = null != (o = this._freezeShadowCastersBoundingInfoObservable) ? o : null), (this.freezeShadowCastersBoundingInfo = null != (s = this.freezeShadowCastersBoundingInfo) && s), (this._scbiMin = null != (c = this._scbiMin) ? c : new a.e(0, 0, 0)), (this._scbiMax = null != (l = this._scbiMax) ? l : new a.e(0, 0, 0)), (this._shadowCastersBoundingInfo = null != (u = this._shadowCastersBoundingInfo) ? u : new ti.a(new a.e(0, 0, 0), new a.e(0, 0, 0))), (this._breaksAreDirty = null == (h = this._breaksAreDirty) || h), (this._minDistance = null != (d = this._minDistance) ? d : 0), (this._maxDistance = null != (p = this._maxDistance) ? p : 1), (this._currentLayer = null != (f = this._currentLayer) ? f : 0), (this._shadowMaxZ = null != (b = null != (m = this._shadowMaxZ) ? m : null === (g = this._scene.activeCamera) || void 0 === g ? void 0 : g.maxZ) ? b : 1e4), (this._debug = null != (_ = this._debug) && _), (this._depthClamp = null == (v = this._depthClamp) || v), (this._cascadeBlendPercentage = null != (y = this._cascadeBlendPercentage) ? y : 0.1), (this._lambda = null != (C = this._lambda) ? C : 0.5), (this._autoCalcDepthBounds = null != (P = this._autoCalcDepthBounds) && P), e.prototype._initializeGenerator.call(this); }), (t.prototype._createTargetRenderTexture = function () { var e = { width: this._mapSize, height: this._mapSize, layers: this.numCascades }; (this._shadowMap = new mn.a(this._light.name + "_shadowMap", e, this._scene, !1, !0, this._textureType, !1, void 0, !1, !1, void 0)), this._shadowMap.createDepthStencilTexture(513, !0); }), (t.prototype._initializeShadowMap = function () { var n = this; if ((e.prototype._initializeShadowMap.call(this), null !== this._shadowMap)) { (this._transformMatricesAsArray = new Float32Array(16 * this._numCascades)), (this._viewSpaceFrustumsZ = new Array(this._numCascades)), (this._frustumLengths = new Array(this._numCascades)), (this._lightSizeUVCorrection = new Array(2 * this._numCascades)), (this._depthCorrection = new Array(this._numCascades)), (this._cascades = []), (this._viewMatrices = []), (this._projectionMatrices = []), (this._transformMatrices = []), (this._cascadeMinExtents = []), (this._cascadeMaxExtents = []), (this._frustumCenter = []), (this._shadowCameraPos = []), (this._frustumCornersWorldSpace = []); for (var i = 0; i < this._numCascades; ++i) { (this._cascades[i] = { prevBreakDistance: 0, breakDistance: 0 }), (this._viewMatrices[i] = a.a.Zero()), (this._projectionMatrices[i] = a.a.Zero()), (this._transformMatrices[i] = a.a.Zero()), (this._cascadeMinExtents[i] = new a.e()), (this._cascadeMaxExtents[i] = new a.e()), (this._frustumCenter[i] = new a.e()), (this._shadowCameraPos[i] = new a.e()), (this._frustumCornersWorldSpace[i] = new Array(t.frustumCornersNDCSpace.length)); for (var r = 0; r < t.frustumCornersNDCSpace.length; ++r) this._frustumCornersWorldSpace[i][r] = new a.e(); } this._shadowMap.onBeforeRenderObservable.add(function (e) { n._currentLayer = e; }), this._shadowMap.onBeforeBindObservable.add(function () { n._breaksAreDirty && n._splitFrustum(), n._computeMatrices(); }), this._splitFrustum(); } }), (t.prototype._bindCustomEffectForRenderSubMeshForShadowMap = function (e, t) { t.setMatrix("viewProjection", this.getCascadeTransformMatrix(this._currentLayer)); }), (t.prototype._isReadyCustomDefines = function (e, t, n) { this._depthClamp && this._filter !== aa.FILTER_PCSS && e.push("#define DEPTHCLAMP"); }), (t.prototype.prepareDefines = function (t, n) { e.prototype.prepareDefines.call(this, t, n); var i = this._scene, r = this._light; if (i.shadowsEnabled && r.shadowEnabled) { (t["SHADOWCSM" + n] = !0), (t["SHADOWCSMDEBUG" + n] = this.debug), (t["SHADOWCSMNUM_CASCADES" + n] = this.numCascades), (t["SHADOWCSM_RIGHTHANDED" + n] = i.useRightHandedSystem); var o = i.activeCamera; o && this._shadowMaxZ < o.maxZ && (t["SHADOWCSMUSESHADOWMAXZ" + n] = !0), 0 === this.cascadeBlendPercentage && (t["SHADOWCSMNOBLEND" + n] = !0); } }), (t.prototype.bindShadowLight = function (e, t) { var n = this._light, i = this._scene; if (i.shadowsEnabled && n.shadowEnabled) { var r = i.activeCamera; if (r) { var o = this.getShadowMap(); if (o) { var a = o.getSize().width; if ( (t.setMatrices("lightMatrix" + e, this._transformMatricesAsArray), t.setArray("viewFrustumZ" + e, this._viewSpaceFrustumsZ), t.setFloat("cascadeBlendFactor" + e, 0 === this.cascadeBlendPercentage ? 1e4 : 1 / this.cascadeBlendPercentage), t.setArray("frustumLengths" + e, this._frustumLengths), this._filter === aa.FILTER_PCF) ) t.setDepthStencilTexture("shadowSampler" + e, o), n._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), a, 1 / a, this.frustumEdgeFalloff, e); else if (this._filter === aa.FILTER_PCSS) { for (var s = 0; s < this._numCascades; ++s) (this._lightSizeUVCorrection[2 * s + 0] = 0 === s ? 1 : (this._cascadeMaxExtents[0].x - this._cascadeMinExtents[0].x) / (this._cascadeMaxExtents[s].x - this._cascadeMinExtents[s].x)), (this._lightSizeUVCorrection[2 * s + 1] = 0 === s ? 1 : (this._cascadeMaxExtents[0].y - this._cascadeMinExtents[0].y) / (this._cascadeMaxExtents[s].y - this._cascadeMinExtents[s].y)), (this._depthCorrection[s] = 0 === s ? 1 : (this._cascadeMaxExtents[s].z - this._cascadeMinExtents[s].z) / (this._cascadeMaxExtents[0].z - this._cascadeMinExtents[0].z)); t.setDepthStencilTexture("shadowSampler" + e, o), t.setTexture("depthSampler" + e, o), t.setArray2("lightSizeUVCorrection" + e, this._lightSizeUVCorrection), t.setArray("depthCorrection" + e, this._depthCorrection), t.setFloat("penumbraDarkness" + e, this.penumbraDarkness), n._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), 1 / a, this._contactHardeningLightSizeUVRatio * a, this.frustumEdgeFalloff, e); } else t.setTexture("shadowSampler" + e, o), n._uniformBuffer.updateFloat4("shadowsInfo", this.getDarkness(), a, 1 / a, this.frustumEdgeFalloff, e); n._uniformBuffer.updateFloat2("depthValues", this.getLight().getDepthMinZ(r), this.getLight().getDepthMinZ(r) + this.getLight().getDepthMaxZ(r), e); } } } }), (t.prototype.getTransformMatrix = function () { return this.getCascadeTransformMatrix(0); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this._freezeShadowCastersBoundingInfoObservable && (this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable), (this._freezeShadowCastersBoundingInfoObservable = null)), this._depthReducer && (this._depthReducer.dispose(), (this._depthReducer = null)); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this), n = this.getShadowMap(); if (!n) return t; if ( ((t.numCascades = this._numCascades), (t.debug = this._debug), (t.stabilizeCascades = this.stabilizeCascades), (t.lambda = this._lambda), (t.cascadeBlendPercentage = this.cascadeBlendPercentage), (t.depthClamp = this._depthClamp), (t.autoCalcDepthBounds = this.autoCalcDepthBounds), (t.shadowMaxZ = this._shadowMaxZ), (t.penumbraDarkness = this.penumbraDarkness), (t.freezeShadowCastersBoundingInfo = this._freezeShadowCastersBoundingInfo), (t.minDistance = this.minDistance), (t.maxDistance = this.maxDistance), (t.renderList = []), n.renderList) ) for (var i = 0; i < n.renderList.length; i++) { var r = n.renderList[i]; t.renderList.push(r.id); } return t; }), (t.Parse = function (e, n) { var i = aa.Parse(e, n, function (e, n) { return new t(e, n); }); return ( void 0 !== e.numCascades && (i.numCascades = e.numCascades), void 0 !== e.debug && (i.debug = e.debug), void 0 !== e.stabilizeCascades && (i.stabilizeCascades = e.stabilizeCascades), void 0 !== e.lambda && (i.lambda = e.lambda), void 0 !== e.cascadeBlendPercentage && (i.cascadeBlendPercentage = e.cascadeBlendPercentage), void 0 !== e.depthClamp && (i.depthClamp = e.depthClamp), void 0 !== e.autoCalcDepthBounds && (i.autoCalcDepthBounds = e.autoCalcDepthBounds), void 0 !== e.shadowMaxZ && (i.shadowMaxZ = e.shadowMaxZ), void 0 !== e.penumbraDarkness && (i.penumbraDarkness = e.penumbraDarkness), void 0 !== e.freezeShadowCastersBoundingInfo && (i.freezeShadowCastersBoundingInfo = e.freezeShadowCastersBoundingInfo), void 0 !== e.minDistance && void 0 !== e.maxDistance && i.setMinMaxDistance(e.minDistance, e.maxDistance), i ); }), (t.frustumCornersNDCSpace = [new a.e(-1, 1, -1), new a.e(1, 1, -1), new a.e(1, -1, -1), new a.e(-1, -1, -1), new a.e(-1, 1, 1), new a.e(1, 1, 1), new a.e(1, -1, 1), new a.e(-1, -1, 1)]), (t.CLASSNAME = "CascadedShadowGenerator"), (t.DEFAULT_CASCADES_COUNT = 4), (t.MIN_CASCADES_COUNT = 2), (t.MAX_CASCADES_COUNT = 4), (t._SceneComponentInitialization = function (e) { throw zo.a.WarnImport("ShadowGeneratorSceneComponent"); }), t ); })(aa); i.a.AddParser(me.a.NAME_SHADOWGENERATOR, function (e, t) { if (void 0 !== e.shadowGenerators && null !== e.shadowGenerators) for (var n = 0, i = e.shadowGenerators.length; n < i; n++) { var r = e.shadowGenerators[n]; r.className === va.CLASSNAME ? va.Parse(r, t) : aa.Parse(r, t); } }); var ya = (function () { function e(e) { (this.name = me.a.NAME_SHADOWGENERATOR), (this.scene = e); } return ( (e.prototype.register = function () { this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR, this, this._gatherRenderTargets); }), (e.prototype.rebuild = function () {}), (e.prototype.serialize = function (e) { e.shadowGenerators = []; for (var t = 0, n = this.scene.lights; t < n.length; t++) { var i = n[t].getShadowGenerator(); i && e.shadowGenerators.push(i.serialize()); } }), (e.prototype.addFromContainer = function (e) {}), (e.prototype.removeFromContainer = function (e, t) {}), (e.prototype.dispose = function () {}), (e.prototype._gatherRenderTargets = function (e) { var t = this.scene; if (this.scene.shadowsEnabled) for (var n = 0; n < t.lights.length; n++) { var i = t.lights[n], r = i.getShadowGenerator(); if (i.isEnabled() && i.shadowEnabled && r) { var o = r.getShadowMap(); -1 !== t.textures.indexOf(o) && e.push(o); } } }), e ); })(); aa._SceneComponentInitialization = function (e) { var t = e._getComponent(me.a.NAME_SHADOWGENERATOR); t || ((t = new ya(e)), e._addComponent(t)); }; var Ca = n(123), Pa = (function () { function e(e, t, n) { var i = this; void 0 === t && (t = ""), void 0 === n && (n = "black"), (this._renderingCanvas = e), (this._loadingText = t), (this._loadingDivBackgroundColor = n), (this._resizeLoadingUI = function () { var e = i._renderingCanvas.getBoundingClientRect(), t = window.getComputedStyle(i._renderingCanvas).position; i._loadingDiv && ((i._loadingDiv.style.position = "fixed" === t ? "fixed" : "absolute"), (i._loadingDiv.style.left = e.left + "px"), (i._loadingDiv.style.top = e.top + "px"), (i._loadingDiv.style.width = e.width + "px"), (i._loadingDiv.style.height = e.height + "px")); }); } return ( (e.prototype.displayLoadingUI = function () { if (!this._loadingDiv) { (this._loadingDiv = document.createElement("div")), (this._loadingDiv.id = "babylonjsLoadingDiv"), (this._loadingDiv.style.opacity = "0"), (this._loadingDiv.style.transition = "opacity 1.5s ease"), (this._loadingDiv.style.pointerEvents = "none"), (this._loadingTextDiv = document.createElement("div")), (this._loadingTextDiv.style.position = "absolute"), (this._loadingTextDiv.style.left = "0"), (this._loadingTextDiv.style.top = "50%"), (this._loadingTextDiv.style.marginTop = "80px"), (this._loadingTextDiv.style.width = "100%"), (this._loadingTextDiv.style.height = "20px"), (this._loadingTextDiv.style.fontFamily = "Arial"), (this._loadingTextDiv.style.fontSize = "14px"), (this._loadingTextDiv.style.color = "white"), (this._loadingTextDiv.style.textAlign = "center"), (this._loadingTextDiv.innerHTML = "Loading"), this._loadingDiv.appendChild(this._loadingTextDiv), (this._loadingTextDiv.innerHTML = this._loadingText); var t = document.createElement("style"); t.type = "text/css"; (t.innerHTML = "@-webkit-keyframes spin1 { 0% { -webkit-transform: rotate(0deg);}\n 100% { -webkit-transform: rotate(360deg);}\n } @keyframes spin1 { 0% { transform: rotate(0deg);}\n 100% { transform: rotate(360deg);}\n }"), document.getElementsByTagName("head")[0].appendChild(t); var n = !!window.SVGSVGElement, i = new Image(); e.DefaultLogoUrl ? (i.src = e.DefaultLogoUrl) : (i.src = n ? "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODAuMTcgMjA4LjA0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6I2UwNjg0Yjt9LmNscy0ze2ZpbGw6I2JiNDY0Yjt9LmNscy00e2ZpbGw6I2UwZGVkODt9LmNscy01e2ZpbGw6I2Q1ZDJjYTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkJhYnlsb25Mb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iUGFnZV9FbGVtZW50cyIgZGF0YS1uYW1lPSJQYWdlIEVsZW1lbnRzIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05MC4wOSwwLDAsNTJWMTU2bDkwLjA5LDUyLDkwLjA4LTUyVjUyWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxODAuMTcgNTIuMDEgMTUxLjk3IDM1LjczIDEyNC44NSA1MS4zOSAxNTMuMDUgNjcuNjcgMTgwLjE3IDUyLjAxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjI3LjEyIDY3LjY3IDExNy4yMSAxNS42NiA5MC4wOCAwIDAgNTIuMDEgMjcuMTIgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iNjEuODkgMTIwLjMgOTAuMDggMTM2LjU4IDExOC4yOCAxMjAuMyA5MC4wOCAxMDQuMDIgNjEuODkgMTIwLjMiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDE1My4wNSAxNDAuMzcgOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyAwIDUyLjAxIDAgMTU2LjAzIDkwLjA4IDIwOC4wNCAxODAuMTcgMTU2LjAzIDE4MC4xNyA1Mi4wMSAxNTMuMDUgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iOTAuMDggNzEuNDYgNjEuODkgODcuNzQgNjEuODkgMTIwLjMgOTAuMDggMTA0LjAyIDExOC4yOCAxMjAuMyAxMTguMjggODcuNzQgOTAuMDggNzEuNDYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDExOC4yOCA4Ny43NCAxMTguMjggMTIwLjMgOTAuMDggMTM2LjU4IDkwLjA4IDE3Ni43MiAxNTMuMDUgMTQwLjM3IDE1My4wNSA2Ny42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSIyNy4xMiA2Ny42NyA2MS44OSA4Ny43NCA2MS44OSAxMjAuMyA5MC4wOCAxMzYuNTggOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyIvPjwvZz48L2c+PC9zdmc+" : "https://cdn.babylonjs.com/Assets/babylonLogo.png"), (i.style.position = "absolute"), (i.style.left = "40%"), (i.style.top = "40%"), (i.style.width = "20%"), (i.style.height = "20%"); var r = new Image(); if ( (e.DefaultSpinnerUrl ? (r.src = e.DefaultSpinnerUrl) : (r.src = n ? "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOTIgMzkyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2UwNjg0Yjt9LmNscy0ye2ZpbGw6bm9uZTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPlNwaW5uZXJJY29uPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iU3Bpbm5lciI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDAuMjEsMTI2LjQzYzMuNy03LjMxLDcuNjctMTQuNDQsMTItMjEuMzJsMy4zNi01LjEsMy41Mi01YzEuMjMtMS42MywyLjQxLTMuMjksMy42NS00LjkxczIuNTMtMy4yMSwzLjgyLTQuNzlBMTg1LjIsMTg1LjIsMCwwLDEsODMuNCw2Ny40M2EyMDgsMjA4LDAsMCwxLDE5LTE1LjY2YzMuMzUtMi40MSw2Ljc0LTQuNzgsMTAuMjUtN3M3LjExLTQuMjgsMTAuNzUtNi4zMmM3LjI5LTQsMTQuNzMtOCwyMi41My0xMS40OSwzLjktMS43Miw3Ljg4LTMuMywxMi00LjY0YTEwNC4yMiwxMDQuMjIsMCwwLDEsMTIuNDQtMy4yMyw2Mi40NCw2Mi40NCwwLDAsMSwxMi43OC0xLjM5QTI1LjkyLDI1LjkyLDAsMCwxLDE5NiwyMS40NGE2LjU1LDYuNTUsMCwwLDEsMi4wNSw5LDYuNjYsNi42NiwwLDAsMS0xLjY0LDEuNzhsLS40MS4yOWEyMi4wNywyMi4wNywwLDAsMS01Ljc4LDMsMzAuNDIsMzAuNDIsMCwwLDEtNS42NywxLjYyLDM3LjgyLDM3LjgyLDAsMCwxLTUuNjkuNzFjLTEsMC0xLjkuMTgtMi44NS4yNmwtMi44NS4yNHEtNS43Mi41MS0xMS40OCwxLjFjLTMuODQuNC03LjcxLjgyLTExLjU4LDEuNGExMTIuMzQsMTEyLjM0LDAsMCwwLTIyLjk0LDUuNjFjLTMuNzIsMS4zNS03LjM0LDMtMTAuOTQsNC42NHMtNy4xNCwzLjUxLTEwLjYsNS41MUExNTEuNiwxNTEuNiwwLDAsMCw2OC41Niw4N0M2Ny4yMyw4OC40OCw2Niw5MCw2NC42NCw5MS41NnMtMi41MSwzLjE1LTMuNzUsNC43M2wtMy41NCw0LjljLTEuMTMsMS42Ni0yLjIzLDMuMzUtMy4zMyw1YTEyNywxMjcsMCwwLDAtMTAuOTMsMjEuNDksMS41OCwxLjU4LDAsMSwxLTMtMS4xNVM0MC4xOSwxMjYuNDcsNDAuMjEsMTI2LjQzWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIzOTIiLz48L2c+PC9nPjwvc3ZnPg==" : "https://cdn.babylonjs.com/Assets/loadingIcon.png"), (r.style.position = "absolute"), (r.style.left = "30%"), (r.style.top = "30%"), (r.style.width = "40%"), (r.style.height = "40%"), (r.style.animation = "spin1 0.75s infinite linear"), (r.style.webkitAnimation = "spin1 0.75s infinite linear"), (r.style.transformOrigin = "50% 50%"), (r.style.webkitTransformOrigin = "50% 50%"), !n) ) { var o = { w: 16, h: 18.5 }, a = { w: 30, h: 30 }; (i.style.width = o.w + "vh"), (i.style.height = o.h + "vh"), (i.style.left = "calc(50% - " + o.w / 2 + "vh)"), (i.style.top = "calc(50% - " + o.h / 2 + "vh)"), (r.style.width = a.w + "vh"), (r.style.height = a.h + "vh"), (r.style.left = "calc(50% - " + a.w / 2 + "vh)"), (r.style.top = "calc(50% - " + a.h / 2 + "vh)"); } this._loadingDiv.appendChild(i), this._loadingDiv.appendChild(r), this._resizeLoadingUI(), window.addEventListener("resize", this._resizeLoadingUI), (this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor), document.body.appendChild(this._loadingDiv), (this._loadingDiv.style.opacity = "1"); } }), (e.prototype.hideLoadingUI = function () { var e = this; if (this._loadingDiv) { (this._loadingDiv.style.opacity = "0"), this._loadingDiv.addEventListener("transitionend", function () { e._loadingDiv && (e._loadingDiv.parentElement && e._loadingDiv.parentElement.removeChild(e._loadingDiv), window.removeEventListener("resize", e._resizeLoadingUI), (e._loadingDiv = null)); }); } }), Object.defineProperty(e.prototype, "loadingUIText", { get: function () { return this._loadingText; }, set: function (e) { (this._loadingText = e), this._loadingTextDiv && (this._loadingTextDiv.innerHTML = this._loadingText); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "loadingUIBackgroundColor", { get: function () { return this._loadingDivBackgroundColor; }, set: function (e) { (this._loadingDivBackgroundColor = e), this._loadingDiv && (this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor); }, enumerable: !0, configurable: !0, }), (e.DefaultLogoUrl = ""), (e.DefaultSpinnerUrl = ""), e ); })(); ue.a.DefaultLoadingScreenFactory = function (e) { return new Pa(e); }; var xa = n(79), Ta = n(94), Sa = (function () { function e() {} return ( (e.ConvertPanoramaToCubemap = function (e, t, n, i) { if (!e) throw "ConvertPanoramaToCubemap: input cannot be null"; if (e.length != t * n * 3) throw "ConvertPanoramaToCubemap: input size is wrong"; return { front: this.CreateCubemapTexture(i, this.FACE_FRONT, e, t, n), back: this.CreateCubemapTexture(i, this.FACE_BACK, e, t, n), left: this.CreateCubemapTexture(i, this.FACE_LEFT, e, t, n), right: this.CreateCubemapTexture(i, this.FACE_RIGHT, e, t, n), up: this.CreateCubemapTexture(i, this.FACE_UP, e, t, n), down: this.CreateCubemapTexture(i, this.FACE_DOWN, e, t, n), size: i, type: 1, format: 4, gammaSpace: !1, }; }), (e.CreateCubemapTexture = function (e, t, n, i, r) { for (var o = new ArrayBuffer(e * e * 4 * 3), a = new Float32Array(o), s = t[1].subtract(t[0]).scale(1 / e), c = t[3].subtract(t[2]).scale(1 / e), l = 1 / e, u = 0, h = 0; h < e; h++) { for (var d = t[0], p = t[2], f = 0; f < e; f++) { var m = p.subtract(d).scale(u).add(d); m.normalize(); var g = this.CalcProjectionSpherical(m, n, i, r); (a[h * e * 3 + 3 * f + 0] = g.r), (a[h * e * 3 + 3 * f + 1] = g.g), (a[h * e * 3 + 3 * f + 2] = g.b), (d = d.add(s)), (p = p.add(c)); } u += l; } return a; }), (e.CalcProjectionSpherical = function (e, t, n, i) { for (var r = Math.atan2(e.z, e.x), o = Math.acos(e.y); r < -Math.PI; ) r += 2 * Math.PI; for (; r > Math.PI; ) r -= 2 * Math.PI; var a = r / Math.PI, s = o / Math.PI; a = 0.5 * a + 0.5; var c = Math.round(a * n); c < 0 ? (c = 0) : c >= n && (c = n - 1); var l = Math.round(s * i); l < 0 ? (l = 0) : l >= i && (l = i - 1); var u = i - l - 1; return { r: t[u * n * 3 + 3 * c + 0], g: t[u * n * 3 + 3 * c + 1], b: t[u * n * 3 + 3 * c + 2] }; }), (e.FACE_FRONT = [new a.e(-1, -1, -1), new a.e(1, -1, -1), new a.e(-1, 1, -1), new a.e(1, 1, -1)]), (e.FACE_BACK = [new a.e(1, -1, 1), new a.e(-1, -1, 1), new a.e(1, 1, 1), new a.e(-1, 1, 1)]), (e.FACE_RIGHT = [new a.e(1, -1, -1), new a.e(1, -1, 1), new a.e(1, 1, -1), new a.e(1, 1, 1)]), (e.FACE_LEFT = [new a.e(-1, -1, 1), new a.e(-1, -1, -1), new a.e(-1, 1, 1), new a.e(-1, 1, -1)]), (e.FACE_DOWN = [new a.e(-1, 1, -1), new a.e(1, 1, -1), new a.e(-1, 1, 1), new a.e(1, 1, 1)]), (e.FACE_UP = [new a.e(-1, -1, 1), new a.e(1, -1, 1), new a.e(-1, -1, -1), new a.e(1, -1, -1)]), e ); })(), Oa = (function () { function e() {} return ( (e.Ldexp = function (e, t) { return t > 1023 ? e * Math.pow(2, 1023) * Math.pow(2, t - 1023) : t < -1074 ? e * Math.pow(2, -1074) * Math.pow(2, t + 1074) : e * Math.pow(2, t); }), (e.Rgbe2float = function (e, t, n, i, r, o) { r > 0 ? ((r = this.Ldexp(1, r - 136)), (e[o + 0] = t * r), (e[o + 1] = n * r), (e[o + 2] = i * r)) : ((e[o + 0] = 0), (e[o + 1] = 0), (e[o + 2] = 0)); }), (e.readStringLine = function (e, t) { for (var n = "", i = "", r = t; r < e.length - t && "\n" != (i = String.fromCharCode(e[r])); r++) n += i; return n; }), (e.RGBE_ReadHeader = function (e) { var t, n, i = this.readStringLine(e, 0); if ("#" != i[0] || "?" != i[1]) throw "Bad HDR Format."; var r = !1, o = !1, a = 0; do { (a += i.length + 1), "FORMAT=32-bit_rle_rgbe" == (i = this.readStringLine(e, a)) ? (o = !0) : 0 == i.length && (r = !0); } while (!r); if (!o) throw "HDR Bad header format, unsupported FORMAT"; (a += i.length + 1), (i = this.readStringLine(e, a)); var s = /^\-Y (.*) \+X (.*)$/g.exec(i); if (!s || s.length < 3) throw "HDR Bad header format, no size"; if (((n = parseInt(s[2])), (t = parseInt(s[1])), n < 8 || n > 32767)) throw "HDR Bad header format, unsupported size"; return { height: t, width: n, dataPosition: (a += i.length + 1) }; }), (e.GetCubeMapTextureData = function (e, t) { var n = new Uint8Array(e), i = this.RGBE_ReadHeader(n), r = this.RGBE_ReadPixels_RLE(n, i); return Sa.ConvertPanoramaToCubemap(r, i.width, i.height, t); }), (e.RGBE_ReadPixels = function (e, t) { return this.RGBE_ReadPixels_RLE(e, t); }), (e.RGBE_ReadPixels_RLE = function (e, t) { for ( var n, i, r, o, a, s = t.height, c = t.width, l = t.dataPosition, u = 0, h = 0, d = 0, p = new ArrayBuffer(4 * c), f = new Uint8Array(p), m = new ArrayBuffer(t.width * t.height * 4 * 3), g = new Float32Array(m); s > 0; ) { if (((n = e[l++]), (i = e[l++]), (r = e[l++]), (o = e[l++]), 2 != n || 2 != i || 128 & r)) throw "HDR Bad header format, not RLE"; if (((r << 8) | o) != c) throw "HDR Bad header format, wrong scan line width"; for (u = 0, d = 0; d < 4; d++) for (h = (d + 1) * c; u < h; ) if (((n = e[l++]), (i = e[l++]), n > 128)) { if (0 == (a = n - 128) || a > h - u) throw "HDR Bad Format, bad scanline data (run)"; for (; a-- > 0; ) f[u++] = i; } else { if (0 == (a = n) || a > h - u) throw "HDR Bad Format, bad scanline data (non-run)"; if (((f[u++] = i), --a > 0)) for (var b = 0; b < a; b++) f[u++] = e[l++]; } for (d = 0; d < c; d++) (n = f[d]), (i = f[d + c]), (r = f[d + 2 * c]), (o = f[d + 3 * c]), this.Rgbe2float(g, n, i, r, o, (t.height - s) * c * 3 + 3 * d); s--; } return g; }), e ); })(), Ea = (n(155), n(213), (function (e) { function t(t, n, i, r, o, s, c, l, u) { void 0 === r && (r = !1), void 0 === o && (o = !0), void 0 === s && (s = !1), void 0 === c && (c = !1), void 0 === l && (l = null), void 0 === u && (u = null); var h = e.call(this, n) || this; return ( (h._generateHarmonics = !0), (h._onLoad = null), (h._onError = null), (h.coordinatesMode = ln.a.CUBIC_MODE), (h._isBlocking = !0), (h._rotationY = 0), (h.boundingBoxPosition = a.e.Zero()), t ? ((h.name = t), (h.url = t), (h.hasAlpha = !1), (h.isCube = !0), (h._textureMatrix = a.a.Identity()), (h._onLoad = l), (h._onError = u), (h.gammaSpace = s), (h._noMipmap = r), (h._size = i), (h._generateHarmonics = o), (h._texture = h._getFromCache(t, h._noMipmap)), h._texture ? l && (h._texture.isReady ? $e.b.SetImmediate(function () { return l(); }) : h._texture.onLoadedObservable.add(l)) : n.useDelayedTextureLoading ? (h.delayLoadState = 4) : h.loadTexture(), h) : h ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "isBlocking", { get: function () { return this._isBlocking; }, set: function (e) { this._isBlocking = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotationY", { get: function () { return this._rotationY; }, set: function (e) { (this._rotationY = e), this.setReflectionTextureMatrix(a.a.RotationY(this._rotationY)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "boundingBoxSize", { get: function () { return this._boundingBoxSize; }, set: function (e) { if (!this._boundingBoxSize || !this._boundingBoxSize.equals(e)) { this._boundingBoxSize = e; var t = this.getScene(); t && t.markAllMaterialsAsDirty(1); } }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "HDRCubeTexture"; }), (t.prototype.loadTexture = function () { var e = this, n = this.getScene(); n && (this._texture = n.getEngine().createRawCubeTextureFromUrl( this.url, n, this._size, 4, n.getEngine().getCaps().textureFloat ? 1 : 0, this._noMipmap, function (n) { (e.lodGenerationOffset = 0), (e.lodGenerationScale = 0.8); var i = e.getScene(); if (!i) return null; var r = Oa.GetCubeMapTextureData(n, e._size); if (e._generateHarmonics) { var o = Xr.a.ConvertCubeMapToSphericalPolynomial(r); e.sphericalPolynomial = o; } for (var a = [], s = null, c = 0; c < 6; c++) { if (!i.getEngine().getCaps().textureFloat) { var l = new ArrayBuffer(e._size * e._size * 3); s = new Uint8Array(l); } var u = r[t._facesMapping[c]]; if (e.gammaSpace || s) for (var h = 0; h < e._size * e._size; h++) if ((e.gammaSpace && ((u[3 * h + 0] = Math.pow(u[3 * h + 0], j.b)), (u[3 * h + 1] = Math.pow(u[3 * h + 1], j.b)), (u[3 * h + 2] = Math.pow(u[3 * h + 2], j.b))), s)) { var d = Math.max(255 * u[3 * h + 0], 0), p = Math.max(255 * u[3 * h + 1], 0), f = Math.max(255 * u[3 * h + 2], 0), m = Math.max(Math.max(d, p), f); if (m > 255) { var g = 255 / m; (d *= g), (p *= g), (f *= g); } (s[3 * h + 0] = d), (s[3 * h + 1] = p), (s[3 * h + 2] = f); } s ? a.push(s) : a.push(u); } return a; }, null, this._onLoad, this._onError )); }), (t.prototype.clone = function () { var e = this.getScene(); if (!e) return this; var n = new t(this.url, e, this._size, this._noMipmap, this._generateHarmonics, this.gammaSpace); return (n.level = this.level), (n.wrapU = this.wrapU), (n.wrapV = this.wrapV), (n.coordinatesIndex = this.coordinatesIndex), (n.coordinatesMode = this.coordinatesMode), n; }), (t.prototype.delayLoad = function () { 4 === this.delayLoadState && ((this.delayLoadState = 1), (this._texture = this._getFromCache(this.url, this._noMipmap)), this._texture || this.loadTexture()); }), (t.prototype.getReflectionTextureMatrix = function () { return this._textureMatrix; }), (t.prototype.setReflectionTextureMatrix = function (e) { var t = this; (this._textureMatrix = e), e.updateFlag !== this._textureMatrix.updateFlag && e.isIdentity() !== this._textureMatrix.isIdentity() && this.getScene().markAllMaterialsAsDirty(1, function (e) { return -1 !== e.getActiveTextures().indexOf(t); }); }), (t.Parse = function (e, n, i) { var r = null; return ( e.name && !e.isRenderTarget && (((r = new t(i + e.name, n, e.size, e.noMipmap, e.generateHarmonics, e.useInGammaSpace)).name = e.name), (r.hasAlpha = e.hasAlpha), (r.level = e.level), (r.coordinatesMode = e.coordinatesMode), (r.isBlocking = e.isBlocking)), r && (e.boundingBoxPosition && (r.boundingBoxPosition = a.e.FromArray(e.boundingBoxPosition)), e.boundingBoxSize && (r.boundingBoxSize = a.e.FromArray(e.boundingBoxSize)), e.rotationY && (r.rotationY = e.rotationY)), r ); }), (t.prototype.serialize = function () { if (!this.name) return null; var e = {}; return ( (e.name = this.name), (e.hasAlpha = this.hasAlpha), (e.isCube = !0), (e.level = this.level), (e.size = this._size), (e.coordinatesMode = this.coordinatesMode), (e.useInGammaSpace = this.gammaSpace), (e.generateHarmonics = this._generateHarmonics), (e.customType = "BABYLON.HDRCubeTexture"), (e.noMipmap = this._noMipmap), (e.isBlocking = this._isBlocking), (e.rotationY = this._rotationY), e ); }), (t._facesMapping = ["right", "left", "up", "down", "front", "back"]), t ); })(Cr.a)); c.a.RegisteredTypes["BABYLON.HDRCubeTexture"] = Ea; var Ma = n(154), Aa = (function () { function e(t, n) { if ((void 0 === n && (n = e.DefaultPluginFactory()), (this._physicsPlugin = n), (this._impostors = []), (this._joints = []), (this._subTimeStep = 0), !this._physicsPlugin.isSupported())) throw new Error("Physics Engine " + this._physicsPlugin.name + " cannot be found. Please make sure it is included."); (t = t || new a.e(0, -9.807, 0)), this.setGravity(t), this.setTimeStep(); } return ( (e.DefaultPluginFactory = function () { throw zo.a.WarnImport("CannonJSPlugin"); }), (e.prototype.setGravity = function (e) { (this.gravity = e), this._physicsPlugin.setGravity(this.gravity); }), (e.prototype.setTimeStep = function (e) { void 0 === e && (e = 1 / 60), this._physicsPlugin.setTimeStep(e); }), (e.prototype.getTimeStep = function () { return this._physicsPlugin.getTimeStep(); }), (e.prototype.setSubTimeStep = function (e) { void 0 === e && (e = 0), (this._subTimeStep = e); }), (e.prototype.getSubTimeStep = function () { return this._subTimeStep; }), (e.prototype.dispose = function () { this._impostors.forEach(function (e) { e.dispose(); }), this._physicsPlugin.dispose(); }), (e.prototype.getPhysicsPluginName = function () { return this._physicsPlugin.name; }), (e.prototype.addImpostor = function (e) { (e.uniqueId = this._impostors.push(e)), e.parent || this._physicsPlugin.generatePhysicsBody(e); }), (e.prototype.removeImpostor = function (e) { var t = this._impostors.indexOf(e); t > -1 && this._impostors.splice(t, 1).length && this.getPhysicsPlugin().removePhysicsBody(e); }), (e.prototype.addJoint = function (e, t, n) { var i = { mainImpostor: e, connectedImpostor: t, joint: n }; (n.physicsPlugin = this._physicsPlugin), this._joints.push(i), this._physicsPlugin.generateJoint(i); }), (e.prototype.removeJoint = function (e, t, n) { var i = this._joints.filter(function (i) { return i.connectedImpostor === t && i.joint === n && i.mainImpostor === e; }); i.length && this._physicsPlugin.removeJoint(i[0]); }), (e.prototype._step = function (e) { var t = this; this._impostors.forEach(function (e) { e.isBodyInitRequired() && t._physicsPlugin.generatePhysicsBody(e); }), e > 0.1 ? (e = 0.1) : e <= 0 && (e = 1 / 60), this._physicsPlugin.executeStep(e, this._impostors); }), (e.prototype.getPhysicsPlugin = function () { return this._physicsPlugin; }), (e.prototype.getImpostors = function () { return this._impostors; }), (e.prototype.getImpostorForPhysicsObject = function (e) { for (var t = 0; t < this._impostors.length; ++t) if (this._impostors[t].object === e) return this._impostors[t]; return null; }), (e.prototype.getImpostorWithPhysicsBody = function (e) { for (var t = 0; t < this._impostors.length; ++t) if (this._impostors[t].physicsBody === e) return this._impostors[t]; return null; }), (e.prototype.raycast = function (e, t) { return this._physicsPlugin.raycast(e, t); }), (e.Epsilon = 0.001), e ); })(), Ia = (function () { function e() { (this._hasHit = !1), (this._hitDistance = 0), (this._hitNormalWorld = a.e.Zero()), (this._hitPointWorld = a.e.Zero()), (this._rayFromWorld = a.e.Zero()), (this._rayToWorld = a.e.Zero()); } return ( Object.defineProperty(e.prototype, "hasHit", { get: function () { return this._hasHit; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hitDistance", { get: function () { return this._hitDistance; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hitNormalWorld", { get: function () { return this._hitNormalWorld; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hitPointWorld", { get: function () { return this._hitPointWorld; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rayFromWorld", { get: function () { return this._rayFromWorld; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rayToWorld", { get: function () { return this._rayToWorld; }, enumerable: !0, configurable: !0, }), (e.prototype.setHitData = function (e, t) { (this._hasHit = !0), (this._hitNormalWorld = new a.e(e.x, e.y, e.z)), (this._hitPointWorld = new a.e(t.x, t.y, t.z)); }), (e.prototype.setHitDistance = function (e) { this._hitDistance = e; }), (e.prototype.calculateHitDistance = function () { this._hitDistance = a.e.Distance(this._rayFromWorld, this._hitPointWorld); }), (e.prototype.reset = function (e, t) { void 0 === e && (e = a.e.Zero()), void 0 === t && (t = a.e.Zero()), (this._rayFromWorld = e), (this._rayToWorld = t), (this._hasHit = !1), (this._hitDistance = 0), (this._hitNormalWorld = a.e.Zero()), (this._hitPointWorld = a.e.Zero()); }), e ); })(), Da = (function () { function e(e, t, n) { void 0 === e && (e = !0), void 0 === t && (t = 10), void 0 === n && (n = CANNON), (this._useDeltaForWorldStep = e), (this.name = "CannonJSPlugin"), (this._physicsMaterials = new Array()), (this._fixedTimeStep = 1 / 60), (this._physicsBodysToRemoveAfterStep = new Array()), (this._minus90X = new a.b(-0.7071067811865475, 0, 0, 0.7071067811865475)), (this._plus90X = new a.b(0.7071067811865475, 0, 0, 0.7071067811865475)), (this._tmpPosition = a.e.Zero()), (this._tmpDeltaPosition = a.e.Zero()), (this._tmpUnityRotation = new a.b()), (this.BJSCANNON = n), this.isSupported() ? (this._extendNamespace(), (this.world = new this.BJSCANNON.World()), (this.world.broadphase = new this.BJSCANNON.NaiveBroadphase()), (this.world.solver.iterations = t), (this._cannonRaycastResult = new this.BJSCANNON.RaycastResult()), (this._raycastResult = new Ia())) : g.a.Error("CannonJS is not available. Please make sure you included the js file."); } return ( (e.prototype.setGravity = function (e) { this.world.gravity.copy(e); }), (e.prototype.setTimeStep = function (e) { this._fixedTimeStep = e; }), (e.prototype.getTimeStep = function () { return this._fixedTimeStep; }), (e.prototype.executeStep = function (e) { this.world.step(this._fixedTimeStep, this._useDeltaForWorldStep ? e : 0, 3), this._removeMarkedPhysicsBodiesFromWorld(); }), (e.prototype._removeMarkedPhysicsBodiesFromWorld = function () { var e = this; this._physicsBodysToRemoveAfterStep.length > 0 && (this._physicsBodysToRemoveAfterStep.forEach(function (t) { e.world.remove(t); }), (this._physicsBodysToRemoveAfterStep = [])); }), (e.prototype.applyImpulse = function (e, t, n) { var i = new this.BJSCANNON.Vec3(n.x, n.y, n.z), r = new this.BJSCANNON.Vec3(t.x, t.y, t.z); e.physicsBody.applyImpulse(r, i); }), (e.prototype.applyForce = function (e, t, n) { var i = new this.BJSCANNON.Vec3(n.x, n.y, n.z), r = new this.BJSCANNON.Vec3(t.x, t.y, t.z); e.physicsBody.applyForce(r, i); }), (e.prototype.generatePhysicsBody = function (e) { if ((this._removeMarkedPhysicsBodiesFromWorld(), e.parent)) e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate()); else { if (e.isBodyInitRequired()) { var t = this._createShape(e), n = e.physicsBody; n && this.removePhysicsBody(e); var i = this._addMaterial("mat-" + e.uniqueId, e.getParam("friction"), e.getParam("restitution")), r = { mass: e.getParam("mass"), material: i }, o = e.getParam("nativeOptions"); for (var a in o) o.hasOwnProperty(a) && (r[a] = o[a]); (e.physicsBody = new this.BJSCANNON.Body(r)), e.physicsBody.addEventListener("collide", e.onCollide), this.world.addEventListener("preStep", e.beforeStep), this.world.addEventListener("postStep", e.afterStep), e.physicsBody.addShape(t), this.world.add(e.physicsBody), n && ["force", "torque", "velocity", "angularVelocity"].forEach(function (t) { e.physicsBody[t].copy(n[t]); }), this._processChildMeshes(e); } this._updatePhysicsBodyTransformation(e); } }), (e.prototype._processChildMeshes = function (e) { var t = this, n = e.object.getChildMeshes ? e.object.getChildMeshes(!0) : [], i = e.object.rotationQuaternion; if (n.length) { var r = function (n, o) { if (i && o.rotationQuaternion) { var s = o.getPhysicsImpostor(); if (s) if (s.parent !== e) { var c = o.position.clone(), l = o.rotationQuaternion.multiply(a.b.Inverse(i)); s.physicsBody && (t.removePhysicsBody(s), (s.physicsBody = null)), (s.parent = e), s.resetUpdateFlags(), e.physicsBody.addShape(t._createShape(s), new t.BJSCANNON.Vec3(c.x, c.y, c.z), new t.BJSCANNON.Quaternion(l.x, l.y, l.z, l.w)), (e.physicsBody.mass += s.getParam("mass")); } i.multiplyInPlace(o.rotationQuaternion), o .getChildMeshes(!0) .filter(function (e) { return !!e.physicsImpostor; }) .forEach(r.bind(t, o.getAbsolutePosition())); } }; n.filter(function (e) { return !!e.physicsImpostor; }).forEach(r.bind(this, e.object.getAbsolutePosition())); } }), (e.prototype.removePhysicsBody = function (e) { e.physicsBody.removeEventListener("collide", e.onCollide), this.world.removeEventListener("preStep", e.beforeStep), this.world.removeEventListener("postStep", e.afterStep), -1 === this._physicsBodysToRemoveAfterStep.indexOf(e.physicsBody) && this._physicsBodysToRemoveAfterStep.push(e.physicsBody); }), (e.prototype.generateJoint = function (e) { var t = e.mainImpostor.physicsBody, n = e.connectedImpostor.physicsBody; if (t && n) { var i, r = e.joint.jointData, o = { pivotA: r.mainPivot ? new this.BJSCANNON.Vec3().copy(r.mainPivot) : null, pivotB: r.connectedPivot ? new this.BJSCANNON.Vec3().copy(r.connectedPivot) : null, axisA: r.mainAxis ? new this.BJSCANNON.Vec3().copy(r.mainAxis) : null, axisB: r.connectedAxis ? new this.BJSCANNON.Vec3().copy(r.connectedAxis) : null, maxForce: r.nativeParams.maxForce, collideConnected: !!r.collision, }; switch (e.joint.type) { case gi.HingeJoint: case gi.Hinge2Joint: i = new this.BJSCANNON.HingeConstraint(t, n, o); break; case gi.DistanceJoint: i = new this.BJSCANNON.DistanceConstraint(t, n, r.maxDistance || 2); break; case gi.SpringJoint: var a = r; i = new this.BJSCANNON.Spring(t, n, { restLength: a.length, stiffness: a.stiffness, damping: a.damping, localAnchorA: o.pivotA, localAnchorB: o.pivotB }); break; case gi.LockJoint: i = new this.BJSCANNON.LockConstraint(t, n, o); break; case gi.PointToPointJoint: case gi.BallAndSocketJoint: default: i = new this.BJSCANNON.PointToPointConstraint(t, o.pivotA, n, o.pivotB, o.maxForce); } (i.collideConnected = !!r.collision), (e.joint.physicsJoint = i), e.joint.type !== gi.SpringJoint ? this.world.addConstraint(i) : ((e.joint.jointData.forceApplicationCallback = e.joint.jointData.forceApplicationCallback || function () { i.applyForce(); }), e.mainImpostor.registerAfterPhysicsStep(e.joint.jointData.forceApplicationCallback)); } }), (e.prototype.removeJoint = function (e) { e.joint.type !== gi.SpringJoint ? this.world.removeConstraint(e.joint.physicsJoint) : e.mainImpostor.unregisterAfterPhysicsStep(e.joint.jointData.forceApplicationCallback); }), (e.prototype._addMaterial = function (e, t, n) { var i, r; for (i = 0; i < this._physicsMaterials.length; i++) if ((r = this._physicsMaterials[i]).friction === t && r.restitution === n) return r; var o = new this.BJSCANNON.Material(e); return (o.friction = t), (o.restitution = n), this._physicsMaterials.push(o), o; }), (e.prototype._checkWithEpsilon = function (e) { return e < Aa.Epsilon ? Aa.Epsilon : e; }), (e.prototype._createShape = function (e) { var t, n = e.object, i = e.getObjectExtendSize(); switch (e.type) { case Ci.SphereImpostor: var r = i.x, o = i.y, s = i.z; t = new this.BJSCANNON.Sphere(Math.max(this._checkWithEpsilon(r), this._checkWithEpsilon(o), this._checkWithEpsilon(s)) / 2); break; case Ci.CylinderImpostor: var c = e.getParam("nativeOptions"); c || (c = {}); var l = void 0 !== c.radiusTop ? c.radiusTop : this._checkWithEpsilon(i.x) / 2, u = void 0 !== c.radiusBottom ? c.radiusBottom : this._checkWithEpsilon(i.x) / 2, h = void 0 !== c.height ? c.height : this._checkWithEpsilon(i.y), d = void 0 !== c.numSegments ? c.numSegments : 16; t = new this.BJSCANNON.Cylinder(l, u, h, d); var p = new this.BJSCANNON.Quaternion(); p.setFromAxisAngle(new this.BJSCANNON.Vec3(1, 0, 0), -Math.PI / 2); var f = new this.BJSCANNON.Vec3(0, 0, 0); t.transformAllPoints(f, p); break; case Ci.BoxImpostor: var m = i.scale(0.5); t = new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(this._checkWithEpsilon(m.x), this._checkWithEpsilon(m.y), this._checkWithEpsilon(m.z))); break; case Ci.PlaneImpostor: g.a.Warn("Attention, PlaneImposter might not behave as you expect. Consider using BoxImposter instead"), (t = new this.BJSCANNON.Plane()); break; case Ci.MeshImpostor: var b = n.getVerticesData ? n.getVerticesData(wn.b.PositionKind) : [], _ = n.getIndices ? n.getIndices() : []; if (!b) return; var v = n.position.clone(), y = n.rotation && n.rotation.clone(), C = n.rotationQuaternion && n.rotationQuaternion.clone(); n.position.copyFromFloats(0, 0, 0), n.rotation && n.rotation.copyFromFloats(0, 0, 0), n.rotationQuaternion && n.rotationQuaternion.copyFrom(e.getParentsRotation()), n.rotationQuaternion && n.parent && n.rotationQuaternion.conjugateInPlace(); var P, x = n.computeWorldMatrix(!0), T = new Array(); for (P = 0; P < b.length; P += 3) a.e.TransformCoordinates(a.e.FromArray(b, P), x).toArray(T, P); g.a.Warn("MeshImpostor only collides against spheres."), (t = new this.BJSCANNON.Trimesh(T, _)), n.position.copyFrom(v), y && n.rotation && n.rotation.copyFrom(y), C && n.rotationQuaternion && n.rotationQuaternion.copyFrom(C); break; case Ci.HeightmapImpostor: var S = n.position.clone(), O = n.rotation && n.rotation.clone(), E = n.rotationQuaternion && n.rotationQuaternion.clone(); n.position.copyFromFloats(0, 0, 0), n.rotation && n.rotation.copyFromFloats(0, 0, 0), n.rotationQuaternion && n.rotationQuaternion.copyFrom(e.getParentsRotation()), n.rotationQuaternion && n.parent && n.rotationQuaternion.conjugateInPlace(), n.rotationQuaternion && n.rotationQuaternion.multiplyInPlace(this._minus90X), (t = this._createHeightmap(n)), n.position.copyFrom(S), O && n.rotation && n.rotation.copyFrom(O), E && n.rotationQuaternion && n.rotationQuaternion.copyFrom(E), n.computeWorldMatrix(!0); break; case Ci.ParticleImpostor: t = new this.BJSCANNON.Particle(); break; case Ci.NoImpostor: t = new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(0, 0, 0)); } return t; }), (e.prototype._createHeightmap = function (e, t) { var n, i = e.getVerticesData(wn.b.PositionKind), r = e.computeWorldMatrix(!0), o = new Array(); for (n = 0; n < i.length; n += 3) a.e.TransformCoordinates(a.e.FromArray(i, n), r).toArray(o, n); i = o; for ( var s = new Array(), c = t || ~~(Math.sqrt(i.length / 3) - 1), l = e.getBoundingInfo(), u = Math.min(l.boundingBox.extendSizeWorld.x, l.boundingBox.extendSizeWorld.y), h = l.boundingBox.extendSizeWorld.z, d = (2 * u) / c, p = 0; p < i.length; p += 3 ) { var f = Math.round(i[p + 0] / d + c / 2), m = Math.round(-1 * (i[p + 1] / d - c / 2)), g = -i[p + 2] + h; s[f] || (s[f] = []), s[f][m] || (s[f][m] = g), (s[f][m] = Math.max(g, s[f][m])); } for (f = 0; f <= c; ++f) { if (!s[f]) { for (var b = 1; !s[(f + b) % c]; ) b++; s[f] = s[(f + b) % c].slice(); } for (m = 0; m <= c; ++m) if (!s[f][m]) { var _; for (b = 1; void 0 === _; ) _ = s[f][(m + b++) % c]; s[f][m] = _; } } var v = new this.BJSCANNON.Heightfield(s, { elementSize: d }); return (v.minY = h), v; }), (e.prototype._updatePhysicsBodyTransformation = function (e) { var t = e.object; if ((t.computeWorldMatrix && t.computeWorldMatrix(!0), t.getBoundingInfo())) { var n = e.getObjectCenter(); this._tmpDeltaPosition.copyFrom(t.getAbsolutePivotPoint().subtract(n)), this._tmpDeltaPosition.divideInPlace(e.object.scaling), this._tmpPosition.copyFrom(n); var i = t.rotationQuaternion; if (i) { if (((e.type !== Ci.PlaneImpostor && e.type !== Ci.HeightmapImpostor) || ((i = i.multiply(this._minus90X)), e.setDeltaRotation(this._plus90X)), e.type === Ci.HeightmapImpostor)) { var r = t, o = r.getBoundingInfo(), s = r.rotationQuaternion; (r.rotationQuaternion = this._tmpUnityRotation), r.computeWorldMatrix(!0); var c = n.clone(), l = r.getPivotMatrix(); l = l ? l.clone() : a.a.Identity(); var u = a.a.Translation(o.boundingBox.extendSizeWorld.x, 0, -o.boundingBox.extendSizeWorld.z); r.setPreTransformMatrix(u), r.computeWorldMatrix(!0); var h = o.boundingBox.centerWorld.subtract(n).subtract(r.position).negate(); this._tmpPosition.copyFromFloats(h.x, h.y - o.boundingBox.extendSizeWorld.y, h.z), this._tmpDeltaPosition.copyFrom(o.boundingBox.centerWorld.subtract(c)), (this._tmpDeltaPosition.y += o.boundingBox.extendSizeWorld.y), (r.rotationQuaternion = s), r.setPreTransformMatrix(l), r.computeWorldMatrix(!0); } else e.type === Ci.MeshImpostor && this._tmpDeltaPosition.copyFromFloats(0, 0, 0); e.setDeltaPosition(this._tmpDeltaPosition), e.physicsBody.position.copy(this._tmpPosition), e.physicsBody.quaternion.copy(i); } } }), (e.prototype.setTransformationFromPhysicsBody = function (e) { e.object.position.copyFrom(e.physicsBody.position), e.object.rotationQuaternion && e.object.rotationQuaternion.copyFrom(e.physicsBody.quaternion); }), (e.prototype.setPhysicsBodyTransformation = function (e, t, n) { e.physicsBody.position.copy(t), e.physicsBody.quaternion.copy(n); }), (e.prototype.isSupported = function () { return void 0 !== this.BJSCANNON; }), (e.prototype.setLinearVelocity = function (e, t) { e.physicsBody.velocity.copy(t); }), (e.prototype.setAngularVelocity = function (e, t) { e.physicsBody.angularVelocity.copy(t); }), (e.prototype.getLinearVelocity = function (e) { var t = e.physicsBody.velocity; return t ? new a.e(t.x, t.y, t.z) : null; }), (e.prototype.getAngularVelocity = function (e) { var t = e.physicsBody.angularVelocity; return t ? new a.e(t.x, t.y, t.z) : null; }), (e.prototype.setBodyMass = function (e, t) { (e.physicsBody.mass = t), e.physicsBody.updateMassProperties(); }), (e.prototype.getBodyMass = function (e) { return e.physicsBody.mass; }), (e.prototype.getBodyFriction = function (e) { return e.physicsBody.material.friction; }), (e.prototype.setBodyFriction = function (e, t) { e.physicsBody.material.friction = t; }), (e.prototype.getBodyRestitution = function (e) { return e.physicsBody.material.restitution; }), (e.prototype.setBodyRestitution = function (e, t) { e.physicsBody.material.restitution = t; }), (e.prototype.sleepBody = function (e) { e.physicsBody.sleep(); }), (e.prototype.wakeUpBody = function (e) { e.physicsBody.wakeUp(); }), (e.prototype.updateDistanceJoint = function (e, t) { e.physicsJoint.distance = t; }), (e.prototype.setMotor = function (e, t, n, i) { i || (e.physicsJoint.enableMotor(), e.physicsJoint.setMotorSpeed(t), n && this.setLimit(e, n)); }), (e.prototype.setLimit = function (e, t, n) { (e.physicsJoint.motorEquation.maxForce = t), (e.physicsJoint.motorEquation.minForce = void 0 === n ? -t : n); }), (e.prototype.syncMeshWithImpostor = function (e, t) { var n = t.physicsBody; (e.position.x = n.position.x), (e.position.y = n.position.y), (e.position.z = n.position.z), e.rotationQuaternion && ((e.rotationQuaternion.x = n.quaternion.x), (e.rotationQuaternion.y = n.quaternion.y), (e.rotationQuaternion.z = n.quaternion.z), (e.rotationQuaternion.w = n.quaternion.w)); }), (e.prototype.getRadius = function (e) { return e.physicsBody.shapes[0].boundingSphereRadius; }), (e.prototype.getBoxSizeToRef = function (e, t) { var n = e.physicsBody.shapes[0]; (t.x = 2 * n.halfExtents.x), (t.y = 2 * n.halfExtents.y), (t.z = 2 * n.halfExtents.z); }), (e.prototype.dispose = function () {}), (e.prototype._extendNamespace = function () { var e = new this.BJSCANNON.Vec3(), t = this.BJSCANNON; this.BJSCANNON.World.prototype.step = function (n, i, r) { if (((r = r || 10), 0 === (i = i || 0))) this.internalStep(n), (this.time += n); else { var o = Math.floor((this.time + i) / n) - Math.floor(this.time / n); o = Math.min(o, r) || 1; for (var a = performance.now(), s = 0; s !== o && (this.internalStep(n), !(performance.now() - a > 1e3 * n)); s++); this.time += i; for (var c = (this.time % n) / n, l = e, u = this.bodies, h = 0; h !== u.length; h++) { var d = u[h]; d.type !== t.Body.STATIC && d.sleepState !== t.Body.SLEEPING ? (d.position.vsub(d.previousPosition, l), l.scale(c, l), d.position.vadd(l, d.interpolatedPosition)) : (d.interpolatedPosition.copy(d.position), d.interpolatedQuaternion.copy(d.quaternion)); } } }; }), (e.prototype.raycast = function (e, t) { return ( this._cannonRaycastResult.reset(), this.world.raycastClosest(e, t, {}, this._cannonRaycastResult), this._raycastResult.reset(e, t), this._cannonRaycastResult.hasHit && (this._raycastResult.setHitData( { x: this._cannonRaycastResult.hitNormalWorld.x, y: this._cannonRaycastResult.hitNormalWorld.y, z: this._cannonRaycastResult.hitNormalWorld.z }, { x: this._cannonRaycastResult.hitPointWorld.x, y: this._cannonRaycastResult.hitPointWorld.y, z: this._cannonRaycastResult.hitPointWorld.z } ), this._raycastResult.setHitDistance(this._cannonRaycastResult.distance)), this._raycastResult ); }), e ); })(); Aa.DefaultPluginFactory = function () { return new Da(); }; var Ra = (function () { function e(e, t) { void 0 === t && (t = OIMO), (this.name = "OimoJSPlugin"), (this._tmpImpostorsArray = []), (this._tmpPositionVector = a.e.Zero()), (this.BJSOIMO = t), (this.world = new this.BJSOIMO.World({ iterations: e })), this.world.clear(), (this._raycastResult = new Ia()); } return ( (e.prototype.setGravity = function (e) { this.world.gravity.copy(e); }), (e.prototype.setTimeStep = function (e) { this.world.timeStep = e; }), (e.prototype.getTimeStep = function () { return this.world.timeStep; }), (e.prototype.executeStep = function (e, t) { var n = this; t.forEach(function (e) { e.beforeStep(); }), this.world.step(), t.forEach(function (e) { e.afterStep(), (n._tmpImpostorsArray[e.uniqueId] = e); }); for (var i = this.world.contacts; null !== i; ) if (!i.touching || i.body1.sleeping || i.body2.sleeping) { var r = this._tmpImpostorsArray[+i.body1.name], o = this._tmpImpostorsArray[+i.body2.name]; r && o ? (r.onCollide({ body: o.physicsBody }), o.onCollide({ body: r.physicsBody }), (i = i.next)) : (i = i.next); } else i = i.next; }), (e.prototype.applyImpulse = function (e, t, n) { var i = e.physicsBody.mass; e.physicsBody.applyImpulse(n.scale(this.world.invScale), t.scale(this.world.invScale * i)); }), (e.prototype.applyForce = function (e, t, n) { g.a.Warn("Oimo doesn't support applying force. Using impule instead."), this.applyImpulse(e, t, n); }), (e.prototype.generatePhysicsBody = function (e) { var t = this; if (e.parent) e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate()); else { if (e.isBodyInitRequired()) { var n = { name: e.uniqueId, config: [e.getParam("mass") || 0.001, e.getParam("friction"), e.getParam("restitution")], size: [], type: [], pos: [], posShape: [], rot: [], rotShape: [], move: 0 !== e.getParam("mass"), density: e.getParam("mass"), friction: e.getParam("friction"), restitution: e.getParam("restitution"), world: this.world, }, i = [e]; (s = e.object).getChildMeshes && s.getChildMeshes().forEach(function (e) { e.physicsImpostor && i.push(e.physicsImpostor); }); var r = function (e) { return Math.max(e, Aa.Epsilon); }, o = new a.b(); i.forEach(function (i) { if (i.object.rotationQuaternion) { var a = i.object.rotationQuaternion; (o = a.clone()), i.object.rotationQuaternion.set(0, 0, 0, 1), i.object.computeWorldMatrix(!0); var s = a.toEulerAngles(), c = i.getObjectExtendSize(); if (i === e) { var l = e.getObjectCenter(); e.object.getAbsolutePivotPoint().subtractToRef(l, t._tmpPositionVector), t._tmpPositionVector.divideInPlace(e.object.scaling), n.pos.push(l.x), n.pos.push(l.y), n.pos.push(l.z), n.posShape.push(0, 0, 0), n.rotShape.push(0, 0, 0); } else { var u = i.object.position.clone(); n.posShape.push(u.x), n.posShape.push(u.y), n.posShape.push(u.z), n.rotShape.push(57.29577951308232 * s.x), n.rotShape.push(57.29577951308232 * s.y), n.rotShape.push(57.29577951308232 * s.z); } switch ((i.object.rotationQuaternion.copyFrom(o), i.type)) { case Ci.ParticleImpostor: g.a.Warn("No Particle support in OIMO.js. using SphereImpostor instead"); case Ci.SphereImpostor: var h = c.x, d = c.y, p = c.z, f = Math.max(r(h), r(d), r(p)) / 2; n.type.push("sphere"), n.size.push(f), n.size.push(f), n.size.push(f); break; case Ci.CylinderImpostor: var m = r(c.x) / 2, b = r(c.y); n.type.push("cylinder"), n.size.push(m), n.size.push(b), n.size.push(b); break; case Ci.PlaneImpostor: case Ci.BoxImpostor: default: (m = r(c.x)), (b = r(c.y)); var _ = r(c.z); n.type.push("box"), n.size.push(m), n.size.push(b), n.size.push(_); } i.object.rotationQuaternion = a; } }), (e.physicsBody = this.world.add(n)), e.physicsBody.resetQuaternion(o), e.physicsBody.updatePosition(0); } else this._tmpPositionVector.copyFromFloats(0, 0, 0); var s; e.setDeltaPosition(this._tmpPositionVector); } }), (e.prototype.removePhysicsBody = function (e) { this.world.removeRigidBody(e.physicsBody); }), (e.prototype.generateJoint = function (e) { var t = e.mainImpostor.physicsBody, n = e.connectedImpostor.physicsBody; if (t && n) { var i, r = e.joint.jointData, o = r.nativeParams || {}, a = { body1: t, body2: n, axe1: o.axe1 || (r.mainAxis ? r.mainAxis.asArray() : null), axe2: o.axe2 || (r.connectedAxis ? r.connectedAxis.asArray() : null), pos1: o.pos1 || (r.mainPivot ? r.mainPivot.asArray() : null), pos2: o.pos2 || (r.connectedPivot ? r.connectedPivot.asArray() : null), min: o.min, max: o.max, collision: o.collision || r.collision, spring: o.spring, world: this.world, }; switch (e.joint.type) { case gi.BallAndSocketJoint: i = "jointBall"; break; case gi.SpringJoint: g.a.Warn("OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead"); var s = r; (a.min = s.length || a.min), (a.max = Math.max(a.min, a.max)); case gi.DistanceJoint: (i = "jointDistance"), (a.max = r.maxDistance); break; case gi.PrismaticJoint: i = "jointPrisme"; break; case gi.SliderJoint: i = "jointSlide"; break; case gi.WheelJoint: i = "jointWheel"; break; case gi.HingeJoint: default: i = "jointHinge"; } (a.type = i), (e.joint.physicsJoint = this.world.add(a)); } }), (e.prototype.removeJoint = function (e) { try { this.world.removeJoint(e.joint.physicsJoint); } catch (e) { g.a.Warn(e); } }), (e.prototype.isSupported = function () { return void 0 !== this.BJSOIMO; }), (e.prototype.setTransformationFromPhysicsBody = function (e) { if (!e.physicsBody.sleeping) { if (e.physicsBody.shapes.next) { for (var t = e.physicsBody.shapes; t.next; ) t = t.next; e.object.position.copyFrom(t.position); } else e.object.position.copyFrom(e.physicsBody.getPosition()); e.object.rotationQuaternion && e.object.rotationQuaternion.copyFrom(e.physicsBody.getQuaternion()); } }), (e.prototype.setPhysicsBodyTransformation = function (e, t, n) { var i = e.physicsBody; e.physicsBody.shapes.next || (i.position.copy(t), i.orientation.copy(n), i.syncShapes(), i.awake()); }), (e.prototype.setLinearVelocity = function (e, t) { e.physicsBody.linearVelocity.copy(t); }), (e.prototype.setAngularVelocity = function (e, t) { e.physicsBody.angularVelocity.copy(t); }), (e.prototype.getLinearVelocity = function (e) { var t = e.physicsBody.linearVelocity; return t ? new a.e(t.x, t.y, t.z) : null; }), (e.prototype.getAngularVelocity = function (e) { var t = e.physicsBody.angularVelocity; return t ? new a.e(t.x, t.y, t.z) : null; }), (e.prototype.setBodyMass = function (e, t) { var n = 0 === t; (e.physicsBody.shapes.density = n ? 1 : t), e.physicsBody.setupMass(n ? 2 : 1); }), (e.prototype.getBodyMass = function (e) { return e.physicsBody.shapes.density; }), (e.prototype.getBodyFriction = function (e) { return e.physicsBody.shapes.friction; }), (e.prototype.setBodyFriction = function (e, t) { e.physicsBody.shapes.friction = t; }), (e.prototype.getBodyRestitution = function (e) { return e.physicsBody.shapes.restitution; }), (e.prototype.setBodyRestitution = function (e, t) { e.physicsBody.shapes.restitution = t; }), (e.prototype.sleepBody = function (e) { e.physicsBody.sleep(); }), (e.prototype.wakeUpBody = function (e) { e.physicsBody.awake(); }), (e.prototype.updateDistanceJoint = function (e, t, n) { (e.physicsJoint.limitMotor.upperLimit = t), void 0 !== n && (e.physicsJoint.limitMotor.lowerLimit = n); }), (e.prototype.setMotor = function (e, t, n, i) { void 0 !== n ? g.a.Warn("OimoJS plugin currently has unexpected behavior when using setMotor with force parameter") : (n = 1e6), (t *= -1); var r = i ? e.physicsJoint.rotationalLimitMotor2 : e.physicsJoint.rotationalLimitMotor1 || e.physicsJoint.rotationalLimitMotor || e.physicsJoint.limitMotor; r && r.setMotor(t, n); }), (e.prototype.setLimit = function (e, t, n, i) { var r = i ? e.physicsJoint.rotationalLimitMotor2 : e.physicsJoint.rotationalLimitMotor1 || e.physicsJoint.rotationalLimitMotor || e.physicsJoint.limitMotor; r && r.setLimit(t, void 0 === n ? -t : n); }), (e.prototype.syncMeshWithImpostor = function (e, t) { var n = t.physicsBody; (e.position.x = n.position.x), (e.position.y = n.position.y), (e.position.z = n.position.z), e.rotationQuaternion && ((e.rotationQuaternion.x = n.orientation.x), (e.rotationQuaternion.y = n.orientation.y), (e.rotationQuaternion.z = n.orientation.z), (e.rotationQuaternion.w = n.orientation.s)); }), (e.prototype.getRadius = function (e) { return e.physicsBody.shapes.radius; }), (e.prototype.getBoxSizeToRef = function (e, t) { var n = e.physicsBody.shapes; (t.x = 2 * n.halfWidth), (t.y = 2 * n.halfHeight), (t.z = 2 * n.halfDepth); }), (e.prototype.dispose = function () { this.world.clear(); }), (e.prototype.raycast = function (e, t) { return g.a.Warn("raycast is not currently supported by the Oimo physics plugin"), this._raycastResult.reset(e, t), this._raycastResult; }), e ); })(); (Rn.a.CreateRibbon = function (e) { var t = e.pathArray, n = e.closeArray || !1, i = e.closePath || !1, r = e.invertUV || !1, o = Math.floor(t[0].length / 2), a = e.offset || o; a = a > o ? o : Math.floor(a); var s, c, l, u, h = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, d = e.uvs, p = e.colors, f = [], m = [], g = [], b = [], _ = [], v = [], y = [], C = [], P = [], x = []; if (t.length < 2) { var T = [], S = []; for (l = 0; l < t[0].length - a; l++) T.push(t[0][l]), S.push(t[0][l + a]); t = [T, S]; } var O, E, M, A, I, D = 0, R = i ? 1 : 0; for (s = t[0].length, c = 0; c < t.length; c++) { for (y[c] = 0, _[c] = [0], s = s < (E = (O = t[c]).length) ? s : E, u = 0; u < E; ) f.push(O[u].x, O[u].y, O[u].z), u > 0 && ((M = O[u].subtract(O[u - 1]).length() + y[c]), _[c].push(M), (y[c] = M)), u++; i && (u--, f.push(O[0].x, O[0].y, O[0].z), (M = O[u].subtract(O[0]).length() + y[c]), _[c].push(M), (y[c] = M)), (P[c] = E + R), (x[c] = D), (D += E + R); } var w, L, F = null, N = null; for (l = 0; l < s + R; l++) { for (C[l] = 0, v[l] = [0], c = 0; c < t.length - 1; c++) (A = t[c]), (I = t[c + 1]), l === s ? ((F = A[0]), (N = I[0])) : ((F = A[l]), (N = I[l])), (M = N.subtract(F).length() + C[l]), v[l].push(M), (C[l] = M); n && N && F && ((A = t[c]), (I = t[0]), l === s && (N = I[0]), (M = N.subtract(F).length() + C[l]), (C[l] = M)); } if (d) for (c = 0; c < d.length; c++) b.push(d[c].x, d[c].y); else for (c = 0; c < t.length; c++) for (l = 0; l < s + R; l++) (w = 0 != y[c] ? _[c][l] / y[c] : 0), (L = 0 != C[l] ? v[l][c] / C[l] : 0), r ? b.push(L, w) : b.push(w, L); for (var k = 0, z = P[(c = 0)] - 1, j = P[c + 1] - 1, B = z < j ? z : j, V = x[1] - x[0], G = n ? P.length : P.length - 1; k <= B && c < G; ) m.push(k, k + V, k + 1), m.push(k + V + 1, k + 1, k + V), (k += 1) === B && (++c === P.length - 1 ? ((V = x[0] - x[c]), (z = P[c] - 1), (j = P[0] - 1)) : ((V = x[c + 1] - x[c]), (z = P[c] - 1), (j = P[c + 1] - 1)), (k = x[c]), (B = z < j ? z + k : j + k)); if ((Rn.a.ComputeNormals(f, m, g), i)) { var U = 0, H = 0; for (c = 0; c < t.length; c++) (U = 3 * x[c]), (H = c + 1 < t.length ? 3 * (x[c + 1] - 1) : g.length - 3), (g[U] = 0.5 * (g[U] + g[H])), (g[U + 1] = 0.5 * (g[U + 1] + g[H + 1])), (g[U + 2] = 0.5 * (g[U + 2] + g[H + 2])), (g[H] = g[U]), (g[H + 1] = g[U + 1]), (g[H + 2] = g[U + 2]); } Rn.a._ComputeSides(h, f, m, g, b, e.frontUVs, e.backUVs); var W = null; if (p) { W = new Float32Array(4 * p.length); for (var X = 0; X < p.length; X++) (W[4 * X] = p[X].r), (W[4 * X + 1] = p[X].g), (W[4 * X + 2] = p[X].b), (W[4 * X + 3] = p[X].a); } var Y = new Rn.a(), K = new Float32Array(f), Z = new Float32Array(g), q = new Float32Array(b); return (Y.indices = m), (Y.positions = K), (Y.normals = Z), (Y.uvs = q), W && Y.set(W, wn.b.ColorKind), i && (Y._idx = x), Y; }), (Ee.a.CreateRibbon = function (e, t, n, i, r, o, a, s, c) { return void 0 === n && (n = !1), void 0 === a && (a = !1), wa.CreateRibbon(e, { pathArray: t, closeArray: n, closePath: i, offset: r, updatable: a, sideOrientation: s, instance: c }, o); }); var wa = (function () { function e() {} return ( (e.CreateRibbon = function (e, t, n) { void 0 === n && (n = null); var i = t.pathArray, r = t.closeArray, o = t.closePath, s = Ee.a._GetDefaultSideOrientation(t.sideOrientation), c = t.instance, l = t.updatable; if (c) { var u = a.c.Vector3[0].setAll(Number.MAX_VALUE), h = a.c.Vector3[1].setAll(-Number.MAX_VALUE), d = c.getVerticesData(wn.b.PositionKind); if ( ((function (e) { for (var t = i[0].length, n = c, r = 0, o = n._originalBuilderSideOrientation === Ee.a.DOUBLESIDE ? 2 : 1, a = 1; a <= o; ++a) for (var s = 0; s < i.length; ++s) { var l = i[s], d = l.length; t = t < d ? t : d; for (var p = 0; p < t; ++p) { var f = l[p]; (e[r] = f.x), (e[r + 1] = f.y), (e[r + 2] = f.z), u.minimizeInPlaceFromFloats(f.x, f.y, f.z), h.maximizeInPlaceFromFloats(f.x, f.y, f.z), (r += 3); } if (n._creationDataStorage && n._creationDataStorage.closePath) { f = l[0]; (e[r] = f.x), (e[r + 1] = f.y), (e[r + 2] = f.z), (r += 3); } } })(d), c._boundingInfo ? c._boundingInfo.reConstruct(u, h, c._worldMatrix) : (c._boundingInfo = new ti.a(u, h, c._worldMatrix)), c.updateVerticesData(wn.b.PositionKind, d, !1, !1), t.colors) ) { for (var p = c.getVerticesData(wn.b.ColorKind), f = 0, m = 0; f < t.colors.length; f++, m += 4) { var g = t.colors[f]; (p[m] = g.r), (p[m + 1] = g.g), (p[m + 2] = g.b), (p[m + 3] = g.a); } c.updateVerticesData(wn.b.ColorKind, p, !1, !1); } if (t.uvs) { for (var b = c.getVerticesData(wn.b.UVKind), _ = 0; _ < t.uvs.length; _++) (b[2 * _] = t.uvs[_].x), (b[2 * _ + 1] = t.uvs[_].y); c.updateVerticesData(wn.b.UVKind, b, !1, !1); } if (!c.areNormalsFrozen || c.isFacetDataEnabled) { var v = c.getIndices(), y = c.getVerticesData(wn.b.NormalKind), C = c.isFacetDataEnabled ? c.getFacetDataParameters() : null; if ((Rn.a.ComputeNormals(d, v, y, C), c._creationDataStorage && c._creationDataStorage.closePath)) for (var P = 0, x = 0, T = 0; T < i.length; T++) (P = 3 * c._creationDataStorage.idx[T]), (x = T + 1 < i.length ? 3 * (c._creationDataStorage.idx[T + 1] - 1) : y.length - 3), (y[P] = 0.5 * (y[P] + y[x])), (y[P + 1] = 0.5 * (y[P + 1] + y[x + 1])), (y[P + 2] = 0.5 * (y[P + 2] + y[x + 2])), (y[x] = y[P]), (y[x + 1] = y[P + 1]), (y[x + 2] = y[P + 2]); c.areNormalsFrozen || c.updateVerticesData(wn.b.NormalKind, y, !1, !1); } return c; } var S = new Ee.a(e, n); (S._originalBuilderSideOrientation = s), (S._creationDataStorage = new Ee.b()); var O = Rn.a.CreateRibbon(t); return o && (S._creationDataStorage.idx = O._idx), (S._creationDataStorage.closePath = o), (S._creationDataStorage.closeArray = r), O.applyToMesh(S, l), S; }), e ); })(); (Ee.a.ExtrudeShape = function (e, t, n, i, r, o, a, s, c, l) { void 0 === a && (a = null); var u = { shape: t, path: n, scale: i, rotation: r, cap: 0 === o ? 0 : o || Ee.a.NO_CAP, sideOrientation: c, instance: l, updatable: s }; return La.ExtrudeShape(e, u, a); }), (Ee.a.ExtrudeShapeCustom = function (e, t, n, i, r, o, a, s, c, l, u, h) { var d = { shape: t, path: n, scaleFunction: i, rotationFunction: r, ribbonCloseArray: o, ribbonClosePath: a, cap: 0 === s ? 0 : s || Ee.a.NO_CAP, sideOrientation: u, instance: h, updatable: l }; return La.ExtrudeShapeCustom(e, d, c); }); var La = (function () { function e() {} return ( (e.ExtrudeShape = function (t, n, i) { void 0 === i && (i = null); var r = n.path, o = n.shape, a = n.scale || 1, s = n.rotation || 0, c = 0 === n.cap ? 0 : n.cap || Ee.a.NO_CAP, l = n.updatable, u = Ee.a._GetDefaultSideOrientation(n.sideOrientation), h = n.instance || null, d = n.invertUV || !1; return e._ExtrudeShapeGeneric(t, o, r, a, s, null, null, !1, !1, c, !1, i, !!l, u, h, d, n.frontUVs || null, n.backUVs || null); }), (e.ExtrudeShapeCustom = function (t, n, i) { void 0 === i && (i = null); var r = n.path, o = n.shape, a = n.scaleFunction || function () { return 1; }, s = n.rotationFunction || function () { return 0; }, c = n.ribbonCloseArray || !1, l = n.ribbonClosePath || !1, u = 0 === n.cap ? 0 : n.cap || Ee.a.NO_CAP, h = n.updatable, d = Ee.a._GetDefaultSideOrientation(n.sideOrientation), p = n.instance, f = n.invertUV || !1; return e._ExtrudeShapeGeneric(t, o, r, null, null, a, s, c, l, u, !0, i, !!h, d, p || null, f, n.frontUVs || null, n.backUVs || null); }), (e._ExtrudeShapeGeneric = function (e, t, n, i, r, o, s, c, l, u, h, d, p, f, m, g, b, _) { var v, y, C = function (e, t, n, i, r, o, s, c, l, u) { for ( var h = n.getTangents(), d = n.getNormals(), p = n.getBinormals(), f = n.getDistances(), m = 0, g = u && c ? c : function () { return null !== o ? o : 0; }, b = u && s ? s : function () { return null !== r ? r : 1; }, _ = l === Ee.a.NO_CAP || l === Ee.a.CAP_END ? 0 : 2, v = a.c.Matrix[0], y = 0; y < t.length; y++ ) { for (var C = new Array(), P = g(y, f[y]), x = b(y, f[y]), T = 0; T < e.length; T++) { a.a.RotationAxisToRef(h[y], m, v); var S = h[y].scale(e[T].z).add(d[y].scale(e[T].x)).add(p[y].scale(e[T].y)), O = C[T] ? C[T] : a.e.Zero(); a.e.TransformCoordinatesToRef(S, v, O), O.scaleInPlace(x).addInPlace(t[y]), (C[T] = O); } (i[_] = C), (m += P), _++; } var E = function (e) { var t, n = Array(), i = a.e.Zero(); for (t = 0; t < e.length; t++) i.addInPlace(e[t]); for (i.scaleInPlace(1 / e.length), t = 0; t < e.length; t++) n.push(i); return n; }; switch (l) { case Ee.a.NO_CAP: break; case Ee.a.CAP_START: (i[0] = E(i[2])), (i[1] = i[2]); break; case Ee.a.CAP_END: (i[_] = i[_ - 1]), (i[_ + 1] = E(i[_ - 1])); break; case Ee.a.CAP_ALL: (i[0] = E(i[2])), (i[1] = i[2]), (i[_] = i[_ - 1]), (i[_ + 1] = E(i[_ - 1])); } return i; }; if (m) { var P = m._creationDataStorage; return (v = P.path3D.update(n)), (y = C(t, n, P.path3D, P.pathArray, i, r, o, s, P.cap, h)), (m = Ee.a.CreateRibbon("", y, !1, !1, 0, d || void 0, !1, 0, m)); } y = C(t, n, (v = new H(n)), new Array(), i, r, o, s, (u = u < 0 || u > 3 ? 0 : u), h); var x = wa.CreateRibbon(e, { pathArray: y, closeArray: c, closePath: l, updatable: p, sideOrientation: f, invertUV: g, frontUVs: b || void 0, backUVs: _ || void 0 }, d); return (x._creationDataStorage.pathArray = y), (x._creationDataStorage.path3D = v), (x._creationDataStorage.cap = u), x; }), e ); })(), Fa = (function () { function e(e, t, n) { var i = this; void 0 === e && (e = !0), void 0 === t && (t = Ammo), void 0 === n && (n = null), (this._useDeltaForWorldStep = e), (this.bjsAMMO = {}), (this.name = "AmmoJSPlugin"), (this._timeStep = 1 / 60), (this._fixedTimeStep = 1 / 60), (this._maxSteps = 5), (this._tmpQuaternion = new a.b()), (this._tmpContactCallbackResult = !1), (this._tmpVector = new a.e()), (this._tmpMatrix = new a.a()), "function" == typeof t ? t(this.bjsAMMO) : (this.bjsAMMO = t), this.isSupported() ? ((this._collisionConfiguration = new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration()), (this._dispatcher = new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration)), (this._overlappingPairCache = n || new this.bjsAMMO.btDbvtBroadphase()), (this._solver = new this.bjsAMMO.btSequentialImpulseConstraintSolver()), (this._softBodySolver = new this.bjsAMMO.btDefaultSoftBodySolver()), (this.world = new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher, this._overlappingPairCache, this._solver, this._collisionConfiguration, this._softBodySolver)), (this._tmpAmmoConcreteContactResultCallback = new this.bjsAMMO.ConcreteContactResultCallback()), (this._tmpAmmoConcreteContactResultCallback.addSingleResult = function () { i._tmpContactCallbackResult = !0; }), (this._raycastResult = new Ia()), (this._tmpAmmoTransform = new this.bjsAMMO.btTransform()), this._tmpAmmoTransform.setIdentity(), (this._tmpAmmoQuaternion = new this.bjsAMMO.btQuaternion(0, 0, 0, 1)), (this._tmpAmmoVectorA = new this.bjsAMMO.btVector3(0, 0, 0)), (this._tmpAmmoVectorB = new this.bjsAMMO.btVector3(0, 0, 0)), (this._tmpAmmoVectorC = new this.bjsAMMO.btVector3(0, 0, 0)), (this._tmpAmmoVectorD = new this.bjsAMMO.btVector3(0, 0, 0))) : g.a.Error("AmmoJS is not available. Please make sure you included the js file."); } return ( (e.prototype.setGravity = function (e) { this._tmpAmmoVectorA.setValue(e.x, e.y, e.z), this.world.setGravity(this._tmpAmmoVectorA), this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA); }), (e.prototype.setTimeStep = function (e) { this._timeStep = e; }), (e.prototype.setFixedTimeStep = function (e) { this._fixedTimeStep = e; }), (e.prototype.setMaxSteps = function (e) { this._maxSteps = e; }), (e.prototype.getTimeStep = function () { return this._timeStep; }), (e.prototype._isImpostorInContact = function (e) { return (this._tmpContactCallbackResult = !1), this.world.contactTest(e.physicsBody, this._tmpAmmoConcreteContactResultCallback), this._tmpContactCallbackResult; }), (e.prototype._isImpostorPairInContact = function (e, t) { return (this._tmpContactCallbackResult = !1), this.world.contactPairTest(e.physicsBody, t.physicsBody, this._tmpAmmoConcreteContactResultCallback), this._tmpContactCallbackResult; }), (e.prototype._stepSimulation = function (e, t, n) { if ((void 0 === e && (e = 1 / 60), void 0 === t && (t = 10), void 0 === n && (n = 1 / 60), 0 == t)) this.world.stepSimulation(e, 0); else for (; t > 0 && e > 0; ) e - n < n ? (this.world.stepSimulation(e, 0), (e = 0)) : ((e -= n), this.world.stepSimulation(n, 0)), t--; }), (e.prototype.executeStep = function (e, t) { for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; r.soft || r.beforeStep(); } this._stepSimulation(this._useDeltaForWorldStep ? e : this._timeStep, this._maxSteps, this._fixedTimeStep); for (var o = 0, a = t; o < a.length; o++) { var s = a[o]; if ((s.soft ? this._afterSoftStep(s) : s.afterStep(), s._onPhysicsCollideCallbacks.length > 0 && this._isImpostorInContact(s))) for (var c = 0, l = s._onPhysicsCollideCallbacks; c < l.length; c++) for (var u = 0, h = l[c].otherImpostors; u < h.length; u++) { var d = h[u]; (s.physicsBody.isActive() || d.physicsBody.isActive()) && this._isImpostorPairInContact(s, d) && (s.onCollide({ body: d.physicsBody }), d.onCollide({ body: s.physicsBody })); } } }), (e.prototype._afterSoftStep = function (e) { e.type === Ci.RopeImpostor ? this._ropeStep(e) : this._softbodyOrClothStep(e); }), (e.prototype._ropeStep = function (e) { for (var t, n, i, r, o = e.physicsBody.get_m_nodes(), s = o.size(), c = new Array(), l = 0; l < s; l++) (n = (t = o.at(l).get_m_x()).x()), (i = t.y()), (r = t.z()), c.push(new a.e(n, i, r)); var u = e.object, h = e.getParam("shape"); e._isFromLine ? (e.object = Ti.CreateLines("lines", { points: c, instance: u })) : (e.object = La.ExtrudeShape("ext", { shape: h, path: c, instance: u })); }), (e.prototype._softbodyOrClothStep = function (e) { var t = e.type === Ci.ClothImpostor ? 1 : -1, n = e.object, i = n.getVerticesData(wn.b.PositionKind); i || (i = []); var r = n.getVerticesData(wn.b.NormalKind); r || (r = []); for (var o, a, s, c, l, u, h, d, p = i.length / 3, f = e.physicsBody.get_m_nodes(), m = 0; m < p; m++) { var g; (s = (a = (o = f.at(m)).get_m_x()).x()), (c = a.y()), (l = a.z() * t), (u = (g = o.get_m_n()).x()), (h = g.y()), (d = g.z() * t), (i[3 * m] = s), (i[3 * m + 1] = c), (i[3 * m + 2] = l), (r[3 * m] = u), (r[3 * m + 1] = h), (r[3 * m + 2] = d); } var b = new Rn.a(); (b.positions = i), (b.normals = r), (b.uvs = n.getVerticesData(wn.b.UVKind)), (b.colors = n.getVerticesData(wn.b.ColorKind)), n && n.getIndices && (b.indices = n.getIndices()), b.applyToMesh(n); }), (e.prototype.applyImpulse = function (e, t, n) { if (e.soft) g.a.Warn("Cannot be applied to a soft body"); else { e.physicsBody.activate(); var i = this._tmpAmmoVectorA, r = this._tmpAmmoVectorB; e.object && e.object.getWorldMatrix && (e.object.getWorldMatrix().invertToRef(this._tmpMatrix), a.e.TransformCoordinatesToRef(n, this._tmpMatrix, this._tmpVector), (n = this._tmpVector)), i.setValue(n.x, n.y, n.z), r.setValue(t.x, t.y, t.z), e.physicsBody.applyImpulse(r, i); } }), (e.prototype.applyForce = function (e, t, n) { if (e.soft) g.a.Warn("Cannot be applied to a soft body"); else { e.physicsBody.activate(); var i = this._tmpAmmoVectorA, r = this._tmpAmmoVectorB; e.object && e.object.getWorldMatrix && (e.object.getWorldMatrix().invertToRef(this._tmpMatrix), a.e.TransformCoordinatesToRef(n, this._tmpMatrix, this._tmpVector), (n = this._tmpVector)), i.setValue(n.x, n.y, n.z), r.setValue(t.x, t.y, t.z), e.physicsBody.applyForce(r, i); } }), (e.prototype.generatePhysicsBody = function (t) { if (((t._pluginData.toDispose = []), t.parent)) t.physicsBody && (this.removePhysicsBody(t), t.forceUpdate()); else if (t.isBodyInitRequired()) { var n = this._createShape(t), i = t.getParam("mass"); if (((t._pluginData.mass = i), t.soft)) n.get_m_cfg().set_collisions(17), n.get_m_cfg().set_kDP(t.getParam("damping")), this.bjsAMMO.castObject(n, this.bjsAMMO.btCollisionObject).getCollisionShape().setMargin(t.getParam("margin")), n.setActivationState(e.DISABLE_DEACTIVATION_FLAG), this.world.addSoftBody(n, 1, -1), (t.physicsBody = n), t._pluginData.toDispose.push(n), this.setBodyPressure(t, 0), t.type === Ci.SoftbodyImpostor && this.setBodyPressure(t, t.getParam("pressure")), this.setBodyStiffness(t, t.getParam("stiffness")), this.setBodyVelocityIterations(t, t.getParam("velocityIterations")), this.setBodyPositionIterations(t, t.getParam("positionIterations")); else { var r = new this.bjsAMMO.btVector3(0, 0, 0), o = new this.bjsAMMO.btTransform(); o.setIdentity(), 0 !== i && n.calculateLocalInertia(i, r), this._tmpAmmoVectorA.setValue(t.object.position.x, t.object.position.y, t.object.position.z), this._tmpAmmoQuaternion.setValue(t.object.rotationQuaternion.x, t.object.rotationQuaternion.y, t.object.rotationQuaternion.z, t.object.rotationQuaternion.w), o.setOrigin(this._tmpAmmoVectorA), o.setRotation(this._tmpAmmoQuaternion); var a = new this.bjsAMMO.btDefaultMotionState(o), s = new this.bjsAMMO.btRigidBodyConstructionInfo(i, a, n, r), c = new this.bjsAMMO.btRigidBody(s); 0 === i && (c.setCollisionFlags(c.getCollisionFlags() | e.KINEMATIC_FLAG), c.setActivationState(e.DISABLE_DEACTIVATION_FLAG)), t.type != Ci.NoImpostor || n.getChildShape || c.setCollisionFlags(c.getCollisionFlags() | e.DISABLE_COLLISION_FLAG), this.world.addRigidBody(c), (t.physicsBody = c), (t._pluginData.toDispose = t._pluginData.toDispose.concat([c, s, a, o, r, n])); } this.setBodyRestitution(t, t.getParam("restitution")), this.setBodyFriction(t, t.getParam("friction")); } }), (e.prototype.removePhysicsBody = function (e) { var t = this; this.world && (e.soft ? this.world.removeSoftBody(e.physicsBody) : this.world.removeRigidBody(e.physicsBody), e._pluginData && (e._pluginData.toDispose.forEach(function (e) { t.bjsAMMO.destroy(e); }), (e._pluginData.toDispose = []))); }), (e.prototype.generateJoint = function (e) { var t = e.mainImpostor.physicsBody, n = e.connectedImpostor.physicsBody; if (t && n) { var i, r = e.joint.jointData; switch ((r.mainPivot || (r.mainPivot = new a.e(0, 0, 0)), r.connectedPivot || (r.connectedPivot = new a.e(0, 0, 0)), e.joint.type)) { case gi.DistanceJoint: var o = r.maxDistance; o && ((r.mainPivot = new a.e(0, -o / 2, 0)), (r.connectedPivot = new a.e(0, o / 2, 0))), (i = new this.bjsAMMO.btPoint2PointConstraint( t, n, new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z), new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z) )); break; case gi.HingeJoint: r.mainAxis || (r.mainAxis = new a.e(0, 0, 0)), r.connectedAxis || (r.connectedAxis = new a.e(0, 0, 0)); var s = new this.bjsAMMO.btVector3(r.mainAxis.x, r.mainAxis.y, r.mainAxis.z), c = new this.bjsAMMO.btVector3(r.connectedAxis.x, r.connectedAxis.y, r.connectedAxis.z); i = new this.bjsAMMO.btHingeConstraint( t, n, new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z), new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z), s, c ); break; case gi.BallAndSocketJoint: i = new this.bjsAMMO.btPoint2PointConstraint( t, n, new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z), new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z) ); break; default: g.a.Warn("JointType not currently supported by the Ammo plugin, falling back to PhysicsJoint.BallAndSocketJoint"), (i = new this.bjsAMMO.btPoint2PointConstraint( t, n, new this.bjsAMMO.btVector3(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z), new this.bjsAMMO.btVector3(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z) )); } this.world.addConstraint(i, !e.joint.jointData.collision), (e.joint.physicsJoint = i); } }), (e.prototype.removeJoint = function (e) { this.world && this.world.removeConstraint(e.joint.physicsJoint); }), (e.prototype._addMeshVerts = function (e, t, n) { var i = this, r = 0; if (n && n.getIndices && n.getWorldMatrix && n.getChildMeshes) { var o = n.getIndices(); o || (o = []); var s = n.getVerticesData(wn.b.PositionKind); s || (s = []), n.computeWorldMatrix(!1); for (var c = o.length / 3, l = 0; l < c; l++) { for (var u = [], h = 0; h < 3; h++) { var d, p = new a.e(s[3 * o[3 * l + h] + 0], s[3 * o[3 * l + h] + 1], s[3 * o[3 * l + h] + 2]); a.a.ScalingToRef(n.scaling.x, n.scaling.y, n.scaling.z, this._tmpMatrix), (p = a.e.TransformCoordinates(p, this._tmpMatrix)), (d = 0 == h ? this._tmpAmmoVectorA : 1 == h ? this._tmpAmmoVectorB : this._tmpAmmoVectorC).setValue(p.x, p.y, p.z), u.push(d); } e.addTriangle(u[0], u[1], u[2]), r++; } n.getChildMeshes().forEach(function (n) { r += i._addMeshVerts(e, t, n); }); } return r; }), (e.prototype._softVertexData = function (e) { var t = e.object; if (t && t.getIndices && t.getWorldMatrix && t.getChildMeshes) { var n = t.getIndices(); n || (n = []); var i = t.getVerticesData(wn.b.PositionKind); i || (i = []); var r = t.getVerticesData(wn.b.NormalKind); r || (r = []), t.computeWorldMatrix(!1); for (var o = [], s = [], c = 0; c < i.length; c += 3) { var l = new a.e(i[c], i[c + 1], i[c + 2]), u = new a.e(r[c], r[c + 1], r[c + 2]); (l = a.e.TransformCoordinates(l, t.getWorldMatrix())), (u = a.e.TransformNormal(u, t.getWorldMatrix())), o.push(l.x, l.y, l.z), s.push(u.x, u.y, u.z); } var h = new Rn.a(); return ( (h.positions = o), (h.normals = s), (h.uvs = t.getVerticesData(wn.b.UVKind)), (h.colors = t.getVerticesData(wn.b.ColorKind)), t && t.getIndices && (h.indices = t.getIndices()), h.applyToMesh(t), (t.position = a.e.Zero()), (t.rotationQuaternion = null), (t.rotation = a.e.Zero()), t.computeWorldMatrix(!0), h ); } return Rn.a.ExtractFromMesh(t); }), (e.prototype._createSoftbody = function (e) { var t = e.object; if (t && t.getIndices) { var n = t.getIndices(); n || (n = []); var i = this._softVertexData(e), r = i.positions, o = i.normals; if (null === r || null === o) return new this.bjsAMMO.btCompoundShape(); for (var s = [], c = [], l = 0; l < r.length; l += 3) { var u = new a.e(r[l], r[l + 1], r[l + 2]), h = new a.e(o[l], o[l + 1], o[l + 2]); s.push(u.x, u.y, -u.z), c.push(h.x, h.y, -h.z); } var d = new this.bjsAMMO.btSoftBodyHelpers().CreateFromTriMesh(this.world.getWorldInfo(), s, t.getIndices(), n.length / 3, !0), p = r.length / 3, f = d.get_m_nodes(); for (l = 0; l < p; l++) { var m; (m = f.at(l).get_m_n()).setX(c[3 * l]), m.setY(c[3 * l + 1]), m.setZ(c[3 * l + 2]); } return d; } }), (e.prototype._createCloth = function (e) { var t = e.object; if (t && t.getIndices) { var n = t.getIndices(); n || (n = []); var i = this._softVertexData(e), r = i.positions, o = i.normals; if (null === r || null === o) return new this.bjsAMMO.btCompoundShape(); var a = r.length, s = Math.sqrt(a / 3); e.segments = s; var c = s - 1; return ( this._tmpAmmoVectorA.setValue(r[0], r[1], r[2]), this._tmpAmmoVectorB.setValue(r[3 * c], r[3 * c + 1], r[3 * c + 2]), this._tmpAmmoVectorD.setValue(r[a - 3], r[a - 2], r[a - 1]), this._tmpAmmoVectorC.setValue(r[a - 3 - 3 * c], r[a - 2 - 3 * c], r[a - 1 - 3 * c]), new this.bjsAMMO.btSoftBodyHelpers().CreatePatch(this.world.getWorldInfo(), this._tmpAmmoVectorA, this._tmpAmmoVectorB, this._tmpAmmoVectorC, this._tmpAmmoVectorD, s, s, e.getParam("fixedPoints"), !0) ); } }), (e.prototype._createRope = function (e) { var t, n, i = this._softVertexData(e), r = i.positions, o = i.normals; if (null === r || null === o) return new this.bjsAMMO.btCompoundShape(); i.applyToMesh(e.object, !0), (e._isFromLine = !0); if ( 0 === o .map(function (e) { return e * e; }) .reduce(function (e, t) { return e + t; }) ) (n = (t = r.length) / 3 - 1), this._tmpAmmoVectorA.setValue(r[0], r[1], r[2]), this._tmpAmmoVectorB.setValue(r[t - 3], r[t - 2], r[t - 1]); else { e._isFromLine = !1; var a = e.getParam("path"); if (null === e.getParam("shape")) return g.a.Warn("No shape available for extruded mesh"), new this.bjsAMMO.btCompoundShape(); if (r.length % (3 * a.length) != 0) return g.a.Warn("Path does not match extrusion"), new this.bjsAMMO.btCompoundShape(); (n = (t = a.length) - 1), this._tmpAmmoVectorA.setValue(a[0].x, a[0].y, a[0].z), this._tmpAmmoVectorB.setValue(a[t - 1].x, a[t - 1].y, a[t - 1].z); } e.segments = n; var s = e.getParam("fixedPoints"); s = s > 3 ? 3 : s; var c = new this.bjsAMMO.btSoftBodyHelpers().CreateRope(this.world.getWorldInfo(), this._tmpAmmoVectorA, this._tmpAmmoVectorB, n - 1, s); return c.get_m_cfg().set_collisions(17), c; }), (e.prototype._createCustom = function (e) { var t = null; return this.onCreateCustomShape && (t = this.onCreateCustomShape(e)), null == t && (t = new this.bjsAMMO.btCompoundShape()), t; }), (e.prototype._addHullVerts = function (e, t, n) { var i = this, r = 0; if (n && n.getIndices && n.getWorldMatrix && n.getChildMeshes) { var o = n.getIndices(); o || (o = []); var s = n.getVerticesData(wn.b.PositionKind); s || (s = []), n.computeWorldMatrix(!1); for (var c = o.length / 3, l = 0; l < c; l++) { for (var u = [], h = 0; h < 3; h++) { var d, p = new a.e(s[3 * o[3 * l + h] + 0], s[3 * o[3 * l + h] + 1], s[3 * o[3 * l + h] + 2]); a.a.ScalingToRef(n.scaling.x, n.scaling.y, n.scaling.z, this._tmpMatrix), (p = a.e.TransformCoordinates(p, this._tmpMatrix)), (d = 0 == h ? this._tmpAmmoVectorA : 1 == h ? this._tmpAmmoVectorB : this._tmpAmmoVectorC).setValue(p.x, p.y, p.z), u.push(d); } e.addPoint(u[0], !0), e.addPoint(u[1], !0), e.addPoint(u[2], !0), r++; } n.getChildMeshes().forEach(function (n) { r += i._addHullVerts(e, t, n); }); } return r; }), (e.prototype._createShape = function (e, t) { var n = this; void 0 === t && (t = !1); var i, r = e.object, o = e.getObjectExtendSize(); if (!t) { var s = e.object.getChildMeshes ? e.object.getChildMeshes(!0) : []; i = new this.bjsAMMO.btCompoundShape(); var c = 0; if ( (s.forEach(function (e) { var t = e.getPhysicsImpostor(); if (t) { if (t.type == Ci.MeshImpostor) throw "A child MeshImpostor is not supported. Only primitive impostors are supported as children (eg. box or sphere)"; var r = n._createShape(t), o = e.parent.getWorldMatrix().clone(), s = new a.e(); o.decompose(s), n._tmpAmmoTransform.getOrigin().setValue(e.position.x * s.x, e.position.y * s.y, e.position.z * s.z), n._tmpAmmoQuaternion.setValue(e.rotationQuaternion.x, e.rotationQuaternion.y, e.rotationQuaternion.z, e.rotationQuaternion.w), n._tmpAmmoTransform.setRotation(n._tmpAmmoQuaternion), i.addChildShape(n._tmpAmmoTransform, r), t.dispose(), c++; } }), c > 0) ) { if (e.type != Ci.NoImpostor) { var l = this._createShape(e, !0); l && (this._tmpAmmoTransform.getOrigin().setValue(0, 0, 0), this._tmpAmmoQuaternion.setValue(0, 0, 0, 1), this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion), i.addChildShape(this._tmpAmmoTransform, l)); } return i; } this.bjsAMMO.destroy(i), (i = null); } switch (e.type) { case Ci.SphereImpostor: if (z.a.WithinEpsilon(o.x, o.y, 1e-4) && z.a.WithinEpsilon(o.x, o.z, 1e-4)) i = new this.bjsAMMO.btSphereShape(o.x / 2); else { var u = [new this.bjsAMMO.btVector3(0, 0, 0)]; (i = new this.bjsAMMO.btMultiSphereShape(u, [1], 1)).setLocalScaling(new this.bjsAMMO.btVector3(o.x / 2, o.y / 2, o.z / 2)); } break; case Ci.CapsuleImpostor: i = new this.bjsAMMO.btCapsuleShape(o.x / 2, o.y / 2); break; case Ci.CylinderImpostor: this._tmpAmmoVectorA.setValue(o.x / 2, o.y / 2, o.z / 2), (i = new this.bjsAMMO.btCylinderShape(this._tmpAmmoVectorA)); break; case Ci.PlaneImpostor: case Ci.BoxImpostor: this._tmpAmmoVectorA.setValue(o.x / 2, o.y / 2, o.z / 2), (i = new this.bjsAMMO.btBoxShape(this._tmpAmmoVectorA)); break; case Ci.MeshImpostor: if (0 == e.getParam("mass")) { var h = new this.bjsAMMO.btTriangleMesh(); e._pluginData.toDispose.push(h); var d = this._addMeshVerts(h, r, r); i = 0 == d ? new this.bjsAMMO.btCompoundShape() : new this.bjsAMMO.btBvhTriangleMeshShape(h); break; } case Ci.ConvexHullImpostor: var p = new this.bjsAMMO.btConvexHullShape(); 0 == (d = this._addHullVerts(p, r, r)) ? (e._pluginData.toDispose.push(p), (i = new this.bjsAMMO.btCompoundShape())) : (i = p); break; case Ci.NoImpostor: i = new this.bjsAMMO.btSphereShape(o.x / 2); break; case Ci.CustomImpostor: i = this._createCustom(e); break; case Ci.SoftbodyImpostor: i = this._createSoftbody(e); break; case Ci.ClothImpostor: i = this._createCloth(e); break; case Ci.RopeImpostor: i = this._createRope(e); break; default: g.a.Warn("The impostor type is not currently supported by the ammo plugin."); } return i; }), (e.prototype.setTransformationFromPhysicsBody = function (e) { e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform), e.object.position.set(this._tmpAmmoTransform.getOrigin().x(), this._tmpAmmoTransform.getOrigin().y(), this._tmpAmmoTransform.getOrigin().z()), e.object.rotationQuaternion ? e.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(), this._tmpAmmoTransform.getRotation().y(), this._tmpAmmoTransform.getRotation().z(), this._tmpAmmoTransform.getRotation().w()) : e.object.rotation && (this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(), this._tmpAmmoTransform.getRotation().y(), this._tmpAmmoTransform.getRotation().z(), this._tmpAmmoTransform.getRotation().w()), this._tmpQuaternion.toEulerAnglesToRef(e.object.rotation)); }), (e.prototype.setPhysicsBodyTransformation = function (e, t, n) { var i = e.physicsBody.getWorldTransform(); if (i.getOrigin().x() != t.x || i.getOrigin().y() != t.y || i.getOrigin().z() != t.z || i.getRotation().x() != n.x || i.getRotation().y() != n.y || i.getRotation().z() != n.z || i.getRotation().w() != n.w) if ( (this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), i.setOrigin(this._tmpAmmoVectorA), this._tmpAmmoQuaternion.setValue(n.x, n.y, n.z, n.w), i.setRotation(this._tmpAmmoQuaternion), e.physicsBody.setWorldTransform(i), 0 == e.mass) ) { var r = e.physicsBody.getMotionState(); r && r.setWorldTransform(i); } else e.physicsBody.activate(); }), (e.prototype.isSupported = function () { return void 0 !== this.bjsAMMO; }), (e.prototype.setLinearVelocity = function (e, t) { this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), e.soft ? e.physicsBody.linearVelocity(this._tmpAmmoVectorA) : e.physicsBody.setLinearVelocity(this._tmpAmmoVectorA); }), (e.prototype.setAngularVelocity = function (e, t) { this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), e.soft ? e.physicsBody.angularVelocity(this._tmpAmmoVectorA) : e.physicsBody.setAngularVelocity(this._tmpAmmoVectorA); }), (e.prototype.getLinearVelocity = function (e) { if (e.soft) var t = e.physicsBody.linearVelocity(); else t = e.physicsBody.getLinearVelocity(); if (!t) return null; var n = new a.e(t.x(), t.y(), t.z()); return this.bjsAMMO.destroy(t), n; }), (e.prototype.getAngularVelocity = function (e) { if (e.soft) var t = e.physicsBody.angularVelocity(); else t = e.physicsBody.getAngularVelocity(); if (!t) return null; var n = new a.e(t.x(), t.y(), t.z()); return this.bjsAMMO.destroy(t), n; }), (e.prototype.setBodyMass = function (e, t) { e.soft ? e.physicsBody.setTotalMass(t, !1) : e.physicsBody.setMassProps(t), (e._pluginData.mass = t); }), (e.prototype.getBodyMass = function (e) { return e._pluginData.mass || 0; }), (e.prototype.getBodyFriction = function (e) { return e._pluginData.friction || 0; }), (e.prototype.setBodyFriction = function (e, t) { e.soft ? e.physicsBody.get_m_cfg().set_kDF(t) : e.physicsBody.setFriction(t), (e._pluginData.friction = t); }), (e.prototype.getBodyRestitution = function (e) { return e._pluginData.restitution || 0; }), (e.prototype.setBodyRestitution = function (e, t) { e.physicsBody.setRestitution(t), (e._pluginData.restitution = t); }), (e.prototype.getBodyPressure = function (e) { return e.soft ? e._pluginData.pressure || 0 : (g.a.Warn("Pressure is not a property of a rigid body"), 0); }), (e.prototype.setBodyPressure = function (e, t) { e.soft ? e.type === Ci.SoftbodyImpostor ? (e.physicsBody.get_m_cfg().set_kPR(t), (e._pluginData.pressure = t)) : (e.physicsBody.get_m_cfg().set_kPR(0), (e._pluginData.pressure = 0)) : g.a.Warn("Pressure can only be applied to a softbody"); }), (e.prototype.getBodyStiffness = function (e) { return e.soft ? e._pluginData.stiffness || 0 : (g.a.Warn("Stiffness is not a property of a rigid body"), 0); }), (e.prototype.setBodyStiffness = function (e, t) { e.soft ? ((t = (t = t < 0 ? 0 : t) > 1 ? 1 : t), e.physicsBody.get_m_materials().at(0).set_m_kLST(t), (e._pluginData.stiffness = t)) : g.a.Warn("Stiffness cannot be applied to a rigid body"); }), (e.prototype.getBodyVelocityIterations = function (e) { return e.soft ? e._pluginData.velocityIterations || 0 : (g.a.Warn("Velocity iterations is not a property of a rigid body"), 0); }), (e.prototype.setBodyVelocityIterations = function (e, t) { e.soft ? ((t = t < 0 ? 0 : t), e.physicsBody.get_m_cfg().set_viterations(t), (e._pluginData.velocityIterations = t)) : g.a.Warn("Velocity iterations cannot be applied to a rigid body"); }), (e.prototype.getBodyPositionIterations = function (e) { return e.soft ? e._pluginData.positionIterations || 0 : (g.a.Warn("Position iterations is not a property of a rigid body"), 0); }), (e.prototype.setBodyPositionIterations = function (e, t) { e.soft ? ((t = t < 0 ? 0 : t), e.physicsBody.get_m_cfg().set_piterations(t), (e._pluginData.positionIterations = t)) : g.a.Warn("Position iterations cannot be applied to a rigid body"); }), (e.prototype.appendAnchor = function (e, t, n, i, r, o) { void 0 === r && (r = 1), void 0 === o && (o = !1); var a = e.segments, s = Math.round((a - 1) * n) + a * (a - 1 - Math.round((a - 1) * i)); e.physicsBody.appendAnchor(s, t.physicsBody, o, r); }), (e.prototype.appendHook = function (e, t, n, i, r) { void 0 === i && (i = 1), void 0 === r && (r = !1); var o = Math.round(e.segments * n); e.physicsBody.appendAnchor(o, t.physicsBody, r, i); }), (e.prototype.sleepBody = function (e) { g.a.Warn("sleepBody is not currently supported by the Ammo physics plugin"); }), (e.prototype.wakeUpBody = function (e) { e.physicsBody.activate(); }), (e.prototype.updateDistanceJoint = function (e, t, n) { g.a.Warn("updateDistanceJoint is not currently supported by the Ammo physics plugin"); }), (e.prototype.setMotor = function (e, t, n, i) { e.physicsJoint.enableAngularMotor(!0, t, n); }), (e.prototype.setLimit = function (e, t, n) { g.a.Warn("setLimit is not currently supported by the Ammo physics plugin"); }), (e.prototype.syncMeshWithImpostor = function (e, t) { t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform), (e.position.x = this._tmpAmmoTransform.getOrigin().x()), (e.position.y = this._tmpAmmoTransform.getOrigin().y()), (e.position.z = this._tmpAmmoTransform.getOrigin().z()), e.rotationQuaternion && ((e.rotationQuaternion.x = this._tmpAmmoTransform.getRotation().x()), (e.rotationQuaternion.y = this._tmpAmmoTransform.getRotation().y()), (e.rotationQuaternion.z = this._tmpAmmoTransform.getRotation().z()), (e.rotationQuaternion.w = this._tmpAmmoTransform.getRotation().w())); }), (e.prototype.getRadius = function (e) { return e.getObjectExtendSize().x / 2; }), (e.prototype.getBoxSizeToRef = function (e, t) { var n = e.getObjectExtendSize(); (t.x = n.x), (t.y = n.y), (t.z = n.z); }), (e.prototype.dispose = function () { this.bjsAMMO.destroy(this.world), this.bjsAMMO.destroy(this._solver), this.bjsAMMO.destroy(this._overlappingPairCache), this.bjsAMMO.destroy(this._dispatcher), this.bjsAMMO.destroy(this._collisionConfiguration), this.bjsAMMO.destroy(this._tmpAmmoVectorA), this.bjsAMMO.destroy(this._tmpAmmoVectorB), this.bjsAMMO.destroy(this._tmpAmmoVectorC), this.bjsAMMO.destroy(this._tmpAmmoTransform), this.bjsAMMO.destroy(this._tmpAmmoQuaternion), this.bjsAMMO.destroy(this._tmpAmmoConcreteContactResultCallback), (this.world = null); }), (e.prototype.raycast = function (e, t) { (this._tmpAmmoVectorRCA = new this.bjsAMMO.btVector3(e.x, e.y, e.z)), (this._tmpAmmoVectorRCB = new this.bjsAMMO.btVector3(t.x, t.y, t.z)); var n = new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA, this._tmpAmmoVectorRCB); return ( this.world.rayTest(this._tmpAmmoVectorRCA, this._tmpAmmoVectorRCB, n), this._raycastResult.reset(e, t), n.hasHit() && (this._raycastResult.setHitData( { x: n.get_m_hitNormalWorld().x(), y: n.get_m_hitNormalWorld().y(), z: n.get_m_hitNormalWorld().z() }, { x: n.get_m_hitPointWorld().x(), y: n.get_m_hitPointWorld().y(), z: n.get_m_hitPointWorld().z() } ), this._raycastResult.calculateHitDistance()), this.bjsAMMO.destroy(n), this.bjsAMMO.destroy(this._tmpAmmoVectorRCA), this.bjsAMMO.destroy(this._tmpAmmoVectorRCB), this._raycastResult ); }), (e.DISABLE_COLLISION_FLAG = 4), (e.KINEMATIC_FLAG = 2), (e.DISABLE_DEACTIVATION_FLAG = 4), e ); })(); (i.a.prototype.removeReflectionProbe = function (e) { if (!this.reflectionProbes) return -1; var t = this.reflectionProbes.indexOf(e); return -1 !== t && this.reflectionProbes.splice(t, 1), t; }), (i.a.prototype.addReflectionProbe = function (e) { this.reflectionProbes || (this.reflectionProbes = []), this.reflectionProbes.push(e); }); var Na = (function () { function e(e, t, n, i, r) { var o = this; void 0 === i && (i = !0), void 0 === r && (r = !1), (this.name = e), (this._viewMatrix = a.a.Identity()), (this._target = a.e.Zero()), (this._add = a.e.Zero()), (this._invertYAxis = !1), (this.position = a.e.Zero()), (this._scene = n), this._scene.reflectionProbes || (this._scene.reflectionProbes = new Array()), this._scene.reflectionProbes.push(this), (this._renderTargetTexture = new mn.a(e, t, n, i, !0, r ? 1 : 0, !0)), this._renderTargetTexture.onBeforeRenderObservable.add(function (e) { switch (e) { case 0: o._add.copyFromFloats(1, 0, 0); break; case 1: o._add.copyFromFloats(-1, 0, 0); break; case 2: o._add.copyFromFloats(0, o._invertYAxis ? 1 : -1, 0); break; case 3: o._add.copyFromFloats(0, o._invertYAxis ? -1 : 1, 0); break; case 4: o._add.copyFromFloats(0, 0, 1); break; case 5: o._add.copyFromFloats(0, 0, -1); } o._attachedMesh && o.position.copyFrom(o._attachedMesh.getAbsolutePosition()), o.position.addToRef(o._add, o._target), a.a.LookAtLHToRef(o.position, o._target, a.e.Up(), o._viewMatrix), n.activeCamera && ((o._projectionMatrix = a.a.PerspectiveFovLH(Math.PI / 2, 1, n.activeCamera.minZ, n.activeCamera.maxZ)), n.setTransformMatrix(o._viewMatrix, o._projectionMatrix)), (n._forcedViewPosition = o.position); }), this._renderTargetTexture.onAfterUnbindObservable.add(function () { (n._forcedViewPosition = null), n.updateTransformMatrix(!0); }); } return ( Object.defineProperty(e.prototype, "samples", { get: function () { return this._renderTargetTexture.samples; }, set: function (e) { this._renderTargetTexture.samples = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "refreshRate", { get: function () { return this._renderTargetTexture.refreshRate; }, set: function (e) { this._renderTargetTexture.refreshRate = e; }, enumerable: !0, configurable: !0, }), (e.prototype.getScene = function () { return this._scene; }), Object.defineProperty(e.prototype, "cubeTexture", { get: function () { return this._renderTargetTexture; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "renderList", { get: function () { return this._renderTargetTexture.renderList; }, enumerable: !0, configurable: !0, }), (e.prototype.attachToMesh = function (e) { this._attachedMesh = e; }), (e.prototype.setRenderingAutoClearDepthStencil = function (e, t) { this._renderTargetTexture.setRenderingAutoClearDepthStencil(e, t); }), (e.prototype.dispose = function () { var e = this._scene.reflectionProbes.indexOf(this); -1 !== e && this._scene.reflectionProbes.splice(e, 1), this._renderTargetTexture && (this._renderTargetTexture.dispose(), (this._renderTargetTexture = null)); }), (e.prototype.toString = function (e) { var t = "Name: " + this.name; return e && ((t += ", position: " + this.position.toString()), this._attachedMesh && (t += ", attached mesh: " + this._attachedMesh.name)), t; }), (e.prototype.getClassName = function () { return "ReflectionProbe"; }), (e.prototype.serialize = function () { var e = He.a.Serialize(this, this._renderTargetTexture.serialize()); return (e.isReflectionProbe = !0), e; }), (e.Parse = function (t, n, i) { var r = null; if (n.reflectionProbes) for (var o = 0; o < n.reflectionProbes.length; o++) { var a = n.reflectionProbes[o]; if (a.name === t.name) { r = a; break; } } return ( ((r = He.a.Parse( function () { return r || new e(t.name, t.renderTargetSize, n, t._generateMipMaps); }, t, n, i )).cubeTexture._waitingRenderList = t.renderList), t._attachedMesh && r.attachToMesh(n.getMeshByID(t._attachedMesh)), r ); }), Object(h.c)([Object(He.k)()], e.prototype, "_attachedMesh", void 0), Object(h.c)([Object(He.o)()], e.prototype, "position", void 0), e ); })(), ka = !0, za = (function () { function e() {} return (e.LoaderInjectedPhysicsEngine = void 0), e; })(), ja = function (e, t, n, i) { for (var r = 0, o = t.materials.length; r < o; r++) { var a = t.materials[r]; if (a.id === e) return Fo.a.Parse(a, n, i); } return null; }, Ba = function (e, t, n) { for (var i in t) if (e.name === t[i]) return n.push(e.id), !0; return !(!e.parentId || -1 === n.indexOf(e.parentId)) && (n.push(e.id), !0); }, Va = function (e, t) { return e + " of " + (t ? t.file + " from " + t.name + " version: " + t.version + ", exporter version: " + t.exporter_version : "unknown"); }, Ga = function (e, t) { var n = t; if (t._waitingData.lods) { if (t._waitingData.lods.ids && t._waitingData.lods.ids.length > 0) { var i = t._waitingData.lods.ids, r = n.isEnabled(!1); if (t._waitingData.lods.distances) { var o = t._waitingData.lods.distances; if (o.length >= i.length) { var a = o.length > i.length ? o[o.length - 1] : 0; n.setEnabled(!1); for (var s = 0; s < i.length; s++) { var c = i[s], l = e.getMeshByID(c); null != l && n.addLODLevel(o[s], l); } a > 0 && n.addLODLevel(a, null), !0 === r && n.setEnabled(!0); } else $e.b.Warn("Invalid level of detail distances for " + t.name); } } t._waitingData.lods = null; } }, Ua = function (e, t, n, r, o) { void 0 === o && (o = !1); var a = new le.a(e), s = "importScene has failed JSON parse"; try { var l = JSON.parse(t); s = ""; var u, h, d = $i.a.loggingLevel === $i.a.DETAILED_LOGGING; if (void 0 !== l.environmentTexture && null !== l.environmentTexture) { var p = void 0 === l.isPBR || l.isPBR; if (l.environmentTextureType && "BABYLON.HDRCubeTexture" === l.environmentTextureType) { var f = l.environmentTextureSize ? l.environmentTextureSize : 128, m = new Ea((l.environmentTexture.match(/https?:\/\//g) ? "" : n) + l.environmentTexture, e, f, !0, !p); l.environmentTextureRotationY && (m.rotationY = l.environmentTextureRotationY), (e.environmentTexture = m); } else if ($r.a.EndsWith(l.environmentTexture, ".env")) { var b = new Ar.a((l.environmentTexture.match(/https?:\/\//g) ? "" : n) + l.environmentTexture, e); l.environmentTextureRotationY && (b.rotationY = l.environmentTextureRotationY), (e.environmentTexture = b); } else { var _ = Ar.a.CreateFromPrefilteredData((l.environmentTexture.match(/https?:\/\//g) ? "" : n) + l.environmentTexture, e); l.environmentTextureRotationY && (_.rotationY = l.environmentTextureRotationY), (e.environmentTexture = _); } if (!0 === l.createDefaultSkybox) { var v = void 0 !== e.activeCamera && null !== e.activeCamera ? (e.activeCamera.maxZ - e.activeCamera.minZ) / 2 : 1e3, y = l.skyboxBlurLevel || 0; e.createDefaultSkybox(e.environmentTexture, p, v, y); } a.environmentTexture = e.environmentTexture; } if ((void 0 !== l.environmentIntensity && null !== l.environmentIntensity && (e.environmentIntensity = l.environmentIntensity), void 0 !== l.lights && null !== l.lights)) for (u = 0, h = l.lights.length; u < h; u++) { var C = l.lights[u], P = ea.a.Parse(C, e); P && (a.lights.push(P), (s += 0 === u ? "\n\tLights:" : ""), (s += "\n\t\t" + P.toString(d))); } if (void 0 !== l.reflectionProbes && null !== l.reflectionProbes) for (u = 0, h = l.reflectionProbes.length; u < h; u++) { var x = l.reflectionProbes[u], T = Na.Parse(x, e, n); T && (a.reflectionProbes.push(T), (s += 0 === u ? "\n\tReflection Probes:" : ""), (s += "\n\t\t" + T.toString(d))); } if (void 0 !== l.animations && null !== l.animations) for (u = 0, h = l.animations.length; u < h; u++) { var S = l.animations[u], O = c.a.GetClass("BABYLON.Animation"); if (O) { var E = O.Parse(S); e.animations.push(E), a.animations.push(E), (s += 0 === u ? "\n\tAnimations:" : ""), (s += "\n\t\t" + E.toString(d)); } } if (void 0 !== l.materials && null !== l.materials) for (u = 0, h = l.materials.length; u < h; u++) { var M = l.materials[u], I = Fo.a.Parse(M, e, n); if (I) a.materials.push(I), (s += 0 === u ? "\n\tMaterials:" : ""), (s += "\n\t\t" + I.toString(d)), I.getActiveTextures().forEach(function (e) { -1 == a.textures.indexOf(e) && a.textures.push(e); }); } if (void 0 !== l.multiMaterials && null !== l.multiMaterials) for (u = 0, h = l.multiMaterials.length; u < h; u++) { var D = l.multiMaterials[u], R = Ta.a.ParseMultiMaterial(D, e); a.multiMaterials.push(R), (s += 0 === u ? "\n\tMultiMaterials:" : ""), (s += "\n\t\t" + R.toString(d)), R.getActiveTextures().forEach(function (e) { -1 == a.textures.indexOf(e) && a.textures.push(e); }); } if (void 0 !== l.morphTargetManagers && null !== l.morphTargetManagers) for (var w = 0, L = l.morphTargetManagers; w < L.length; w++) { var F = L[w]; a.morphTargetManagers.push(Ma.a.Parse(F, e)); } if (void 0 !== l.skeletons && null !== l.skeletons) for (u = 0, h = l.skeletons.length; u < h; u++) { var k = l.skeletons[u], z = Ue.a.Parse(k, e); a.skeletons.push(z), (s += 0 === u ? "\n\tSkeletons:" : ""), (s += "\n\t\t" + z.toString(d)); } var j = l.geometries; if (null != j) { var B = new Array(), V = j.vertexData; if (null != V) for (u = 0, h = V.length; u < h; u++) { var G = V[u]; B.push(xa.a.Parse(G, e, n)); } B.forEach(function (e) { e && a.geometries.push(e); }); } if (void 0 !== l.transformNodes && null !== l.transformNodes) for (u = 0, h = l.transformNodes.length; u < h; u++) { var U = l.transformNodes[u], H = si.a.Parse(U, e, n); a.transformNodes.push(H); } if (void 0 !== l.meshes && null !== l.meshes) for (u = 0, h = l.meshes.length; u < h; u++) { var W = l.meshes[u], X = Ee.a.Parse(W, e, n); a.meshes.push(X), (s += 0 === u ? "\n\tMeshes:" : ""), (s += "\n\t\t" + X.toString(d)); } if (void 0 !== l.cameras && null !== l.cameras) for (u = 0, h = l.cameras.length; u < h; u++) { var Y = l.cameras[u], K = De.a.Parse(Y, e); a.cameras.push(K), (s += 0 === u ? "\n\tCameras:" : ""), (s += "\n\t\t" + K.toString(d)); } if (void 0 !== l.animationGroups && null !== l.animationGroups) for (u = 0, h = l.animationGroups.length; u < h; u++) { var Z = l.animationGroups[u], q = N.a.Parse(Z, e); a.animationGroups.push(q), (s += 0 === u ? "\n\tAnimationGroups:" : ""), (s += "\n\t\t" + q.toString(d)); } for (u = 0, h = e.cameras.length; u < h; u++) { (K = e.cameras[u])._waitingParentId && ((K.parent = e.getLastEntryByID(K._waitingParentId)), (K._waitingParentId = null)); } for (u = 0, h = e.lights.length; u < h; u++) { var Q = e.lights[u]; Q && Q._waitingParentId && ((Q.parent = e.getLastEntryByID(Q._waitingParentId)), (Q._waitingParentId = null)); } for (u = 0, h = e.transformNodes.length; u < h; u++) { var J = e.transformNodes[u]; J._waitingParentId && ((J.parent = e.getLastEntryByID(J._waitingParentId)), (J._waitingParentId = null)); } for (u = 0, h = e.meshes.length; u < h; u++) { (X = e.meshes[u])._waitingParentId && ((X.parent = e.getLastEntryByID(X._waitingParentId)), (X._waitingParentId = null)), X._waitingData.lods && Ga(e, X); } for (u = 0, h = e.skeletons.length; u < h; u++) { (z = e.skeletons[u])._hasWaitingData && (null != z.bones && z.bones.forEach(function (t) { if (t._waitingTransformNodeId) { var n = e.getLastEntryByID(t._waitingTransformNodeId); n && t.linkTransformNode(n), (t._waitingTransformNodeId = null); } }), (z._hasWaitingData = null)); } for (u = 0, h = e.meshes.length; u < h; u++) { var $ = e.meshes[u]; $._waitingData.freezeWorldMatrix ? ($.freezeWorldMatrix(), ($._waitingData.freezeWorldMatrix = null)) : $.computeWorldMatrix(!0); } for (u = 0, h = e.lights.length; u < h; u++) { var ee = e.lights[u]; if (ee._excludedMeshesIds.length > 0) { for (var te = 0; te < ee._excludedMeshesIds.length; te++) { var ne = e.getMeshByID(ee._excludedMeshesIds[te]); ne && ee.excludedMeshes.push(ne); } ee._excludedMeshesIds = []; } if (ee._includedOnlyMeshesIds.length > 0) { for (var ie = 0; ie < ee._includedOnlyMeshesIds.length; ie++) { var re = e.getMeshByID(ee._includedOnlyMeshesIds[ie]); re && ee.includedOnlyMeshes.push(re); } ee._includedOnlyMeshesIds = []; } } for (i.a.Parse(l, e, a, n), u = 0, h = e.meshes.length; u < h; u++) { (X = e.meshes[u])._waitingData.actions && (A.Parse(X._waitingData.actions, X, e), (X._waitingData.actions = null)); } void 0 !== l.actions && null !== l.actions && A.Parse(l.actions, null, e); } catch (e) { var oe = Va("loadAssets", l ? l.producer : "Unknown") + s; if (!r) throw (g.a.Log(oe), e); r(oe, e); } finally { o || a.removeAllFromScene(), null !== s && $i.a.loggingLevel !== $i.a.NO_LOGGING && g.a.Log(Va("loadAssets", l ? l.producer : "Unknown") + ($i.a.loggingLevel !== $i.a.MINIMAL_LOGGING ? s : "")); } return a; }; $i.a.RegisterPlugin({ name: "babylon.js", extensions: ".babylon", canDirectLoad: function (e) { return -1 !== e.indexOf("babylon"); }, importMesh: function (e, t, n, r, o, a, s, c) { var l = "importMesh has failed JSON parse"; try { var u = JSON.parse(n); l = ""; var h = $i.a.loggingLevel === $i.a.DETAILED_LOGGING; e ? Array.isArray(e) || (e = [e]) : (e = null); var d = new Array(); if (void 0 !== u.meshes && null !== u.meshes) { var p, f, m, b = [], _ = []; for (p = 0, f = u.meshes.length; p < f; p++) { var v = u.meshes[p]; if (null === e || Ba(v, e, d)) { if ((null !== e && delete e[e.indexOf(v.name)], void 0 !== v.geometryId && null !== v.geometryId && void 0 !== u.geometries && null !== u.geometries)) { var y = !1; ["boxes", "spheres", "cylinders", "toruses", "grounds", "planes", "torusKnots", "vertexData"].forEach(function (e) { !0 !== y && u.geometries[e] && Array.isArray(u.geometries[e]) && u.geometries[e].forEach(function (n) { if (n.id === v.geometryId) { switch (e) { case "vertexData": xa.a.Parse(n, t, r); } y = !0; } }); }), !1 === y && g.a.Warn("Geometry not found for mesh " + v.id); } if (v.materialId) { var C = -1 !== _.indexOf(v.materialId); if (!1 === C && void 0 !== u.multiMaterials && null !== u.multiMaterials) for (var P = 0, x = u.multiMaterials.length; P < x; P++) { var T = u.multiMaterials[P]; if (T.id === v.materialId) { for (var S = 0, O = T.materials.length; S < O; S++) { var E, M = T.materials[S]; _.push(M), (E = ja(M, u, t, r)) && (l += "\n\tMaterial " + E.toString(h)); } _.push(T.id); var A = Ta.a.ParseMultiMaterial(T, t); A && ((C = !0), (l += "\n\tMulti-Material " + A.toString(h))); break; } } if (!1 === C) _.push(v.materialId), (E = ja(v.materialId, u, t, r)) ? (l += "\n\tMaterial " + E.toString(h)) : g.a.Warn("Material not found for mesh " + v.id); } if (v.skeletonId > -1 && void 0 !== u.skeletons && null !== u.skeletons) if (!1 === b.indexOf(v.skeletonId) > -1) for (var I = 0, D = u.skeletons.length; I < D; I++) { var R = u.skeletons[I]; if (R.id === v.skeletonId) { var w = Ue.a.Parse(R, t); s.push(w), b.push(R.id), (l += "\n\tSkeleton " + w.toString(h)); } } if (void 0 !== u.morphTargetManagers && null !== u.morphTargetManagers) for (var L = 0, F = u.morphTargetManagers; L < F.length; L++) { var N = F[L]; Ma.a.Parse(N, t); } var k = Ee.a.Parse(v, t, r); o.push(k), (l += "\n\tMesh " + k.toString(h)); } } for (p = 0, f = t.meshes.length; p < f; p++) (m = t.meshes[p])._waitingParentId && ((m.parent = t.getLastEntryByID(m._waitingParentId)), (m._waitingParentId = null)), m._waitingData.lods && Ga(t, m); for (p = 0, f = t.skeletons.length; p < f; p++) { (w = t.skeletons[p])._hasWaitingData && (null != w.bones && w.bones.forEach(function (e) { if (e._waitingTransformNodeId) { var n = t.getLastEntryByID(e._waitingTransformNodeId); n && e.linkTransformNode(n), (e._waitingTransformNodeId = null); } }), (w._hasWaitingData = null)); } for (p = 0, f = t.meshes.length; p < f; p++) (m = t.meshes[p])._waitingData.freezeWorldMatrix ? (m.freezeWorldMatrix(), (m._waitingData.freezeWorldMatrix = null)) : m.computeWorldMatrix(!0); } if (void 0 !== u.particleSystems && null !== u.particleSystems) { var z = i.a.GetIndividualParser(me.a.NAME_PARTICLESYSTEM); if (z) for (p = 0, f = u.particleSystems.length; p < f; p++) { var j = u.particleSystems[p]; -1 !== d.indexOf(j.emitterId) && a.push(z(j, t, r)); } } return !0; } catch (e) { var B = Va("importMesh", u ? u.producer : "Unknown") + l; if (!c) throw (g.a.Log(B), e); c(B, e); } finally { null !== l && $i.a.loggingLevel !== $i.a.NO_LOGGING && g.a.Log(Va("importMesh", u ? u.producer : "Unknown") + ($i.a.loggingLevel !== $i.a.MINIMAL_LOGGING ? l : "")); } return !1; }, load: function (e, t, n, i) { var r = "importScene has failed JSON parse"; try { var o = JSON.parse(t); if ( ((r = ""), void 0 !== o.useDelayedTextureLoading && null !== o.useDelayedTextureLoading && (e.useDelayedTextureLoading = o.useDelayedTextureLoading && !$i.a.ForceFullSceneLoadingForIncremental), void 0 !== o.autoClear && null !== o.autoClear && (e.autoClear = o.autoClear), void 0 !== o.clearColor && null !== o.clearColor && (e.clearColor = s.b.FromArray(o.clearColor)), void 0 !== o.ambientColor && null !== o.ambientColor && (e.ambientColor = s.a.FromArray(o.ambientColor)), void 0 !== o.gravity && null !== o.gravity && (e.gravity = a.e.FromArray(o.gravity)), o.fogMode && 0 !== o.fogMode) ) switch (((e.fogMode = o.fogMode), (e.fogColor = s.a.FromArray(o.fogColor)), (e.fogStart = o.fogStart), (e.fogEnd = o.fogEnd), (e.fogDensity = o.fogDensity), (r += "\tFog mode for scene: "), e.fogMode)) { case 1: r += "exp\n"; break; case 2: r += "exp2\n"; break; case 3: r += "linear\n"; } if (o.physicsEnabled) { var c; "cannon" === o.physicsEngine ? (c = new Da(void 0, void 0, za.LoaderInjectedPhysicsEngine)) : "oimo" === o.physicsEngine ? (c = new Ra(void 0, za.LoaderInjectedPhysicsEngine)) : "ammo" === o.physicsEngine && (c = new Fa(void 0, za.LoaderInjectedPhysicsEngine, void 0)), (r = "\tPhysics engine " + (o.physicsEngine ? o.physicsEngine : "oimo") + " enabled\n"); var l = o.physicsGravity ? a.e.FromArray(o.physicsGravity) : null; e.enablePhysics(l, c); } if ((void 0 !== o.metadata && null !== o.metadata && (e.metadata = o.metadata), void 0 !== o.collisionsEnabled && null !== o.collisionsEnabled && (e.collisionsEnabled = o.collisionsEnabled), !Ua(e, t, n, i, !0))) return !1; if ( (o.autoAnimate && e.beginAnimation(e, o.autoAnimateFrom, o.autoAnimateTo, o.autoAnimateLoop, o.autoAnimateSpeed || 1), void 0 !== o.activeCameraID && null !== o.activeCameraID && e.setActiveCameraByID(o.activeCameraID), void 0 !== o.environmentTexture && null !== o.environmentTexture) ) { var u = void 0 === o.isPBR || o.isPBR; if (o.environmentTextureType && "BABYLON.HDRCubeTexture" === o.environmentTextureType) { var h = o.environmentTextureSize ? o.environmentTextureSize : 128, d = new Ea(n + o.environmentTexture, e, h, !0, !u); o.environmentTextureRotationY && (d.rotationY = o.environmentTextureRotationY), (e.environmentTexture = d); } else if ($r.a.EndsWith(o.environmentTexture, ".env")) { var p = new Ar.a(n + o.environmentTexture, e); o.environmentTextureRotationY && (p.rotationY = o.environmentTextureRotationY), (e.environmentTexture = p); } else { var f = Ar.a.CreateFromPrefilteredData(n + o.environmentTexture, e); o.environmentTextureRotationY && (f.rotationY = o.environmentTextureRotationY), (e.environmentTexture = f); } if (!0 === o.createDefaultSkybox) { var m = void 0 !== e.activeCamera && null !== e.activeCamera ? (e.activeCamera.maxZ - e.activeCamera.minZ) / 2 : 1e3, b = o.skyboxBlurLevel || 0; e.createDefaultSkybox(e.environmentTexture, u, m, b); } } return !0; } catch (e) { var _ = Va("importScene", o ? o.producer : "Unknown") + r; if (!i) throw (g.a.Log(_), e); i(_, e); } finally { null !== r && $i.a.loggingLevel !== $i.a.NO_LOGGING && g.a.Log(Va("importScene", o ? o.producer : "Unknown") + ($i.a.loggingLevel !== $i.a.MINIMAL_LOGGING ? r : "")); } return !1; }, loadAssetContainer: function (e, t, n, i) { return Ua(e, t, n, i); }, }); var Ha = n(103), Wa = n(162), Xa = (function () { function e() { (this._isEnabled = !0), (this.leftColor = s.a.White()), (this.rightColor = s.a.Black()), (this.bias = 0), (this.power = 1); } return ( Object.defineProperty(e.prototype, "isEnabled", { get: function () { return this._isEnabled; }, set: function (e) { this._isEnabled !== e && ((this._isEnabled = e), ue.a.MarkAllMaterialsAsDirty(20)); }, enumerable: !0, configurable: !0, }), (e.prototype.clone = function () { var t = new e(); return M.a.DeepCopy(this, t), t; }), (e.prototype.serialize = function () { var e = {}; return (e.isEnabled = this.isEnabled), (e.leftColor = this.leftColor.asArray()), (e.rightColor = this.rightColor.asArray()), (e.bias = this.bias), (e.power = this.power), e; }), (e.Parse = function (t) { var n = new e(); return (n.isEnabled = t.isEnabled), (n.leftColor = s.a.FromArray(t.leftColor)), (n.rightColor = s.a.FromArray(t.rightColor)), (n.bias = t.bias), (n.power = t.power || 1), n; }), e ); })(); He.a._FresnelParametersParser = Xa.Parse; var Ya = n(95), Ka = n(160), Za = n(199), qa = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return (i._useMicroSurfaceFromReflectivityMapAlpha = !0), i; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "PBRSpecularGlossinessMaterial"; }), (t.prototype.clone = function (e) { var n = this, i = He.a.Clone(function () { return new t(e, n.getScene()); }, this); return (i.id = e), (i.name = e), this.clearCoat.copyTo(i.clearCoat), this.anisotropy.copyTo(i.anisotropy), this.brdf.copyTo(i.brdf), this.sheen.copyTo(i.sheen), this.subSurface.copyTo(i.subSurface), i; }), (t.prototype.serialize = function () { var e = He.a.Serialize(this); return ( (e.customType = "BABYLON.PBRSpecularGlossinessMaterial"), (e.clearCoat = this.clearCoat.serialize()), (e.anisotropy = this.anisotropy.serialize()), (e.brdf = this.brdf.serialize()), (e.sheen = this.sheen.serialize()), (e.subSurface = this.subSurface.serialize()), e ); }), (t.Parse = function (e, n, i) { var r = He.a.Parse( function () { return new t(e.name, n); }, e, n, i ); return ( e.clearCoat && r.clearCoat.parse(e.clearCoat, n, i), e.anisotropy && r.anisotropy.parse(e.anisotropy, n, i), e.brdf && r.brdf.parse(e.brdf, n, i), e.sheen && r.sheen.parse(e.sheen, n, i), e.subSurface && r.subSurface.parse(e.subSurface, n, i), r ); }), Object(h.c)([Object(He.e)("diffuse"), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_albedoColor")], t.prototype, "diffuseColor", void 0), Object(h.c)([Object(He.m)(), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_albedoTexture")], t.prototype, "diffuseTexture", void 0), Object(h.c)([Object(He.e)("specular"), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_reflectivityColor")], t.prototype, "specularColor", void 0), Object(h.c)([Object(He.c)(), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_microSurface")], t.prototype, "glossiness", void 0), Object(h.c)([Object(He.m)(), Object(He.b)("_markAllSubMeshesAsTexturesDirty", "_reflectivityTexture")], t.prototype, "specularGlossinessTexture", void 0), t ); })(Ka.a); c.a.RegisteredTypes["BABYLON.PBRSpecularGlossinessMaterial"] = qa; var Qa = n(106), Ja = (function (e) { function t(t, n) { var i = e.call(this, n) || this; return t ? ((i._engine = n.getEngine()), (i._textureMatrix = a.a.Identity()), (i.name = t), (i.url = t), (i.hasAlpha = !1), (i.isCube = !1), (i.is3D = i._engine.webGLVersion > 1), (i.wrapU = 0), (i.wrapV = 0), (i.wrapR = 0), (i.anisotropicFilteringLevel = 1), (i._texture = i._getFromCache(t, !0)), i._texture || (n.useDelayedTextureLoading ? (i.delayLoadState = 4) : i.loadTexture()), i) : i; } return ( Object(h.d)(t, e), (t.prototype.getTextureMatrix = function () { return this._textureMatrix; }), (t.prototype.load3dlTexture = function () { var e, n = this._engine; (e = 1 === n.webGLVersion ? n.createRawTexture(null, 1, 1, 5, !1, !1, 2, null, 0) : n.createRawTexture3D(null, 1, 1, 1, 5, !1, !1, 2, null, 0)), (this._texture = e); var i = function (i) { if ("string" == typeof i) { for (var r, o = null, a = null, s = i.split("\n"), c = 0, l = 0, u = 0, h = 0, d = 0, p = 0; p < s.length; p++) if (((r = s[p]), t._noneEmptyLineRegex.test(r) && 0 !== r.indexOf("#"))) { var f = r.split(" "); if (0 !== c) { if (0 != c) { var m = Math.max(parseInt(f[0]), 0), g = Math.max(parseInt(f[1]), 0), b = Math.max(parseInt(f[2]), 0); (d = Math.max(m, d)), (d = Math.max(g, d)), (d = Math.max(b, d)); var _ = 4 * (l + h * c + u * c * c); a && ((a[_ + 0] = m), (a[_ + 1] = g), (a[_ + 2] = b)), ++u % c == 0 && ((u = 0), ++h % c == 0 && (l++, (h = 0))); } } else (c = f.length), (o = new Uint8Array(c * c * c * 4)), (a = new Float32Array(c * c * c * 4)); } if (a && o) for (p = 0; p < a.length; p++) if (p > 0 && (p + 1) % 4 == 0) o[p] = 255; else { var v = a[p]; o[p] = (v / d) * 255; } e.is3D ? (e.updateSize(c, c, c), n.updateRawTexture3D(e, o, 5, !1)) : (e.updateSize(c * c, c), n.updateRawTexture(e, o, 5, !1)); } }, r = this.getScene(); return r ? r._loadFile(this.url, i) : this._engine._loadFile(this.url, i), this._texture; }), (t.prototype.loadTexture = function () { this.url && this.url.toLocaleLowerCase().indexOf(".3dl") == this.url.length - 4 && this.load3dlTexture(); }), (t.prototype.clone = function () { var e = new t(this.url, this.getScene()); return (e.level = this.level), e; }), (t.prototype.delayLoad = function () { 4 === this.delayLoadState && ((this.delayLoadState = 1), (this._texture = this._getFromCache(this.url, !0)), this._texture || this.loadTexture()); }), (t.Parse = function (e, n) { var i = null; return e.name && !e.isRenderTarget && (((i = new t(e.name, n)).name = e.name), (i.level = e.level)), i; }), (t.prototype.serialize = function () { if (!this.name) return null; var e = {}; return (e.name = this.name), (e.level = this.level), (e.customType = "BABYLON.ColorGradingTexture"), e; }), (t._noneEmptyLineRegex = /\S+/), t ); })(Cr.a); c.a.RegisteredTypes["BABYLON.ColorGradingTexture"] = Ja; var $a = (function (e) { function t(t, n, i, r, o, a, s) { void 0 === r && (r = !1), void 0 === o && (o = !0), void 0 === a && (a = null), void 0 === s && (s = null); var c = e.call(this, n) || this; if (((c._onLoad = null), (c._onError = null), (c.coordinatesMode = ln.a.CUBIC_MODE), !t)) throw new Error("Image url is not set"); return ( (c.name = t), (c.url = t), (c._size = i), (c._noMipmap = r), (c.gammaSpace = o), (c._onLoad = a), (c._onError = s), (c.hasAlpha = !1), (c.isCube = !0), (c._texture = c._getFromCache(t, c._noMipmap)), c._texture ? a && (c._texture.isReady ? $e.b.SetImmediate(function () { return a(); }) : c._texture.onLoadedObservable.add(a)) : n.useDelayedTextureLoading ? (c.delayLoadState = 4) : c.loadImage(c.loadTexture.bind(c), c._onError), c ); } return ( Object(h.d)(t, e), (t.prototype.loadImage = function (e, t) { var n = this, i = document.createElement("canvas"), r = new Image(); r.addEventListener("load", function () { (n._width = r.width), (n._height = r.height), (i.width = n._width), (i.height = n._height); var t = i.getContext("2d"); t.drawImage(r, 0, 0); var o = t.getImageData(0, 0, r.width, r.height); (n._buffer = o.data.buffer), i.remove(), e(); }), r.addEventListener("error", function (e) { t && t(n.getClassName() + " could not be loaded", e); }), (r.src = this.url); }), (t.prototype.loadTexture = function () { var e = this, n = this.getScene(); n && (this._texture = n.getEngine().createRawCubeTextureFromUrl( this.url, n, this._size, 4, n.getEngine().getCaps().textureFloat ? 1 : 7, this._noMipmap, function () { for (var n = e.getFloat32ArrayFromArrayBuffer(e._buffer), i = Sa.ConvertPanoramaToCubemap(n, e._width, e._height, e._size), r = [], o = 0; o < 6; o++) { var a = i[t._FacesMapping[o]]; r.push(a); } return r; }, null, this._onLoad, this._onError )); }), (t.prototype.getFloat32ArrayFromArrayBuffer = function (e) { for (var t = new DataView(e), n = new Float32Array((3 * e.byteLength) / 4), i = 0, r = 0; r < e.byteLength; r++) (r + 1) % 4 != 0 && (n[i++] = t.getUint8(r) / 255); return n; }), (t.prototype.getClassName = function () { return "EquiRectangularCubeTexture"; }), (t.prototype.clone = function () { var e = this.getScene(); if (!e) return this; var n = new t(this.url, e, this._size, this._noMipmap, this.gammaSpace); return (n.level = this.level), (n.wrapU = this.wrapU), (n.wrapV = this.wrapV), (n.coordinatesIndex = this.coordinatesIndex), (n.coordinatesMode = this.coordinatesMode), n; }), (t._FacesMapping = ["right", "left", "up", "down", "front", "back"]), t ); })(Cr.a), es = (function () { function e() {} return ( (e.GetTGAHeader = function (e) { var t = 0; return { id_length: e[t++], colormap_type: e[t++], image_type: e[t++], colormap_index: e[t++] | (e[t++] << 8), colormap_length: e[t++] | (e[t++] << 8), colormap_size: e[t++], origin: [e[t++] | (e[t++] << 8), e[t++] | (e[t++] << 8)], width: e[t++] | (e[t++] << 8), height: e[t++] | (e[t++] << 8), pixel_size: e[t++], flags: e[t++], }; }), (e.UploadContent = function (t, n) { if (n.length < 19) g.a.Error("Unable to load TGA file - Not enough data to contain header"); else { var i = 18, r = e.GetTGAHeader(n); if (r.id_length + i > n.length) g.a.Error("Unable to load TGA file - Not enough data"); else { i += r.id_length; var o, a = !1, s = !1, c = !1; switch (r.image_type) { case e._TYPE_RLE_INDEXED: a = !0; case e._TYPE_INDEXED: s = !0; break; case e._TYPE_RLE_RGB: a = !0; case e._TYPE_RGB: break; case e._TYPE_RLE_GREY: a = !0; case e._TYPE_GREY: c = !0; } var l, u, h, d, p, f, m, b = r.pixel_size >> 3, _ = r.width * r.height * b; if ((s && (l = n.subarray(i, (i += r.colormap_length * (r.colormap_size >> 3)))), a)) { var v, y, C; o = new Uint8Array(_); for (var P = 0, x = new Uint8Array(b); i < _ && P < _; ) if (((y = 1 + (127 & (v = n[i++]))), 128 & v)) { for (C = 0; C < b; ++C) x[C] = n[i++]; for (C = 0; C < y; ++C) o.set(x, P + C * b); P += b * y; } else { for (y *= b, C = 0; C < y; ++C) o[P + C] = n[i++]; P += y; } } else o = n.subarray(i, (i += s ? r.width * r.height : _)); switch ((r.flags & e._ORIGIN_MASK) >> e._ORIGIN_SHIFT) { default: case e._ORIGIN_UL: (u = 0), (d = 1), (m = r.width), (h = 0), (p = 1), (f = r.height); break; case e._ORIGIN_BL: (u = 0), (d = 1), (m = r.width), (h = r.height - 1), (p = -1), (f = -1); break; case e._ORIGIN_UR: (u = r.width - 1), (d = -1), (m = -1), (h = 0), (p = 1), (f = r.height); break; case e._ORIGIN_BR: (u = r.width - 1), (d = -1), (m = -1), (h = r.height - 1), (p = -1), (f = -1); } var T = e["_getImageData" + (c ? "Grey" : "") + r.pixel_size + "bits"](r, l, o, h, p, f, u, d, m); t.getEngine()._uploadDataToTextureDirectly(t, T); } } }), (e._getImageData8bits = function (e, t, n, i, r, o, a, s, c) { var l, u, h, d = n, p = t, f = e.width, m = e.height, g = 0, b = new Uint8Array(f * m * 4); for (h = i; h !== o; h += r) for (u = a; u !== c; u += s, g++) (l = d[g]), (b[4 * (u + f * h) + 3] = 255), (b[4 * (u + f * h) + 2] = p[3 * l + 0]), (b[4 * (u + f * h) + 1] = p[3 * l + 1]), (b[4 * (u + f * h) + 0] = p[3 * l + 2]); return b; }), (e._getImageData16bits = function (e, t, n, i, r, o, a, s, c) { var l, u, h, d = n, p = e.width, f = e.height, m = 0, g = new Uint8Array(p * f * 4); for (h = i; h !== o; h += r) for (u = a; u !== c; u += s, m += 2) { var b = ((255 * ((31744 & (l = d[m + 0] + (d[m + 1] << 8))) >> 10)) / 31) | 0, _ = ((255 * ((992 & l) >> 5)) / 31) | 0, v = ((255 * (31 & l)) / 31) | 0; (g[4 * (u + p * h) + 0] = b), (g[4 * (u + p * h) + 1] = _), (g[4 * (u + p * h) + 2] = v), (g[4 * (u + p * h) + 3] = 32768 & l ? 0 : 255); } return g; }), (e._getImageData24bits = function (e, t, n, i, r, o, a, s, c) { var l, u, h = n, d = e.width, p = e.height, f = 0, m = new Uint8Array(d * p * 4); for (u = i; u !== o; u += r) for (l = a; l !== c; l += s, f += 3) (m[4 * (l + d * u) + 3] = 255), (m[4 * (l + d * u) + 2] = h[f + 0]), (m[4 * (l + d * u) + 1] = h[f + 1]), (m[4 * (l + d * u) + 0] = h[f + 2]); return m; }), (e._getImageData32bits = function (e, t, n, i, r, o, a, s, c) { var l, u, h = n, d = e.width, p = e.height, f = 0, m = new Uint8Array(d * p * 4); for (u = i; u !== o; u += r) for (l = a; l !== c; l += s, f += 4) (m[4 * (l + d * u) + 2] = h[f + 0]), (m[4 * (l + d * u) + 1] = h[f + 1]), (m[4 * (l + d * u) + 0] = h[f + 2]), (m[4 * (l + d * u) + 3] = h[f + 3]); return m; }), (e._getImageDataGrey8bits = function (e, t, n, i, r, o, a, s, c) { var l, u, h, d = n, p = e.width, f = e.height, m = 0, g = new Uint8Array(p * f * 4); for (h = i; h !== o; h += r) for (u = a; u !== c; u += s, m++) (l = d[m]), (g[4 * (u + p * h) + 0] = l), (g[4 * (u + p * h) + 1] = l), (g[4 * (u + p * h) + 2] = l), (g[4 * (u + p * h) + 3] = 255); return g; }), (e._getImageDataGrey16bits = function (e, t, n, i, r, o, a, s, c) { var l, u, h = n, d = e.width, p = e.height, f = 0, m = new Uint8Array(d * p * 4); for (u = i; u !== o; u += r) for (l = a; l !== c; l += s, f += 2) (m[4 * (l + d * u) + 0] = h[f + 0]), (m[4 * (l + d * u) + 1] = h[f + 0]), (m[4 * (l + d * u) + 2] = h[f + 0]), (m[4 * (l + d * u) + 3] = h[f + 1]); return m; }), (e._TYPE_INDEXED = 1), (e._TYPE_RGB = 2), (e._TYPE_GREY = 3), (e._TYPE_RLE_INDEXED = 9), (e._TYPE_RLE_RGB = 10), (e._TYPE_RLE_GREY = 11), (e._ORIGIN_MASK = 48), (e._ORIGIN_SHIFT = 4), (e._ORIGIN_BL = 0), (e._ORIGIN_BR = 1), (e._ORIGIN_UL = 2), (e._ORIGIN_UR = 3), e ); })(), ts = (function () { function e() { this.supportCascades = !1; } return ( (e.prototype.canLoad = function (e) { return $r.a.EndsWith(e, ".tga"); }), (e.prototype.loadCubeData = function (e, t, n, i, r) { throw ".env not supported in Cube."; }), (e.prototype.loadData = function (e, t, n) { var i = new Uint8Array(e.buffer, e.byteOffset, e.byteLength), r = es.GetTGAHeader(i); n(r.width, r.height, t.generateMipMaps, !1, function () { es.UploadContent(t, i); }); }), e ); })(); ue.a._TextureLoaders.push(new ts()); var ns, is = function () {}; !(function (e) { (e[(e.cTFETC1 = 0)] = "cTFETC1"), (e[(e.cTFBC1 = 1)] = "cTFBC1"), (e[(e.cTFBC4 = 2)] = "cTFBC4"), (e[(e.cTFPVRTC1_4_OPAQUE_ONLY = 3)] = "cTFPVRTC1_4_OPAQUE_ONLY"), (e[(e.cTFBC7_M6_OPAQUE_ONLY = 4)] = "cTFBC7_M6_OPAQUE_ONLY"), (e[(e.cTFETC2 = 5)] = "cTFETC2"), (e[(e.cTFBC3 = 6)] = "cTFBC3"), (e[(e.cTFBC5 = 7)] = "cTFBC5"); })(ns || (ns = {})); var rs = (function () { function e() {} return ( (e.GetInternalFormatFromBasisFormat = function (e) { if (e === ns.cTFETC1) return 36196; if (e === ns.cTFBC1) return 33776; if (e === ns.cTFBC3) return 33779; throw "The chosen Basis transcoder format is not currently supported"; }), (e._CreateWorkerAsync = function () { var t = this; return ( this._WorkerPromise || (this._WorkerPromise = new Promise(function (n) { t._Worker ? n(t._Worker) : $e.b.LoadFileAsync(e.WasmModuleURL).then(function (i) { var r = URL.createObjectURL(new Blob(["(" + os + ")()"], { type: "application/javascript" })); t._Worker = new Worker(r); var o = function (e) { "init" === e.data.action && (t._Worker.removeEventListener("message", o), n(t._Worker)); }; t._Worker.addEventListener("message", o), t._Worker.postMessage({ action: "init", url: e.JSModuleURL, wasmBinary: i }); }); })), this._WorkerPromise ); }), (e.TranscodeAsync = function (e, t) { var n = this, i = e instanceof ArrayBuffer ? new Uint8Array(e) : e; return new Promise(function (e, r) { n._CreateWorkerAsync().then(function () { var o = n._actionId++, a = function (t) { "transcode" === t.data.action && t.data.id === o && (n._Worker.removeEventListener("message", a), t.data.success ? e(t.data) : r("Transcode is not supported on this device")); }; n._Worker.addEventListener("message", a); var s = new Uint8Array(i.byteLength); s.set(new Uint8Array(i.buffer, i.byteOffset, i.byteLength)), n._Worker.postMessage({ action: "transcode", id: o, imageData: s, config: t, ignoreSupportedFormats: n._IgnoreSupportedFormats }, [s.buffer]); }); }); }), (e.LoadTextureFromTranscodeResult = function (t, n) { for ( var i, r = t.getEngine(), o = function () { if (((i = n.fileInfo.images[a].levels[0]), (t._invertVScale = t.invertY), -1 === n.format)) if (((t.type = 10), (t.format = 4), r.webGLVersion < 2 && (z.a.Log2(i.width) % 1 != 0 || z.a.Log2(i.height) % 1 != 0))) { var o = new pn.a(r, pn.b.Temp); (t._invertVScale = t.invertY), (o.type = 10), (o.format = 4), (o.width = (i.width + 3) & -4), (o.height = (i.height + 3) & -4), r._bindTextureDirectly(r._gl.TEXTURE_2D, o, !0), r._uploadDataToTextureDirectly(o, i.transcodedPixels, a, 0, 4, !0), r._rescaleTexture(o, t, r.scenes[0], r._getInternalFormat(4), function () { r._releaseTexture(o), r._bindTextureDirectly(r._gl.TEXTURE_2D, t, !0); }); } else (t._invertVScale = !t.invertY), (t.width = (i.width + 3) & -4), (t.height = (i.height + 3) & -4), r._uploadDataToTextureDirectly(t, i.transcodedPixels, a, 0, 4, !0); else (t.width = i.width), (t.height = i.height), n.fileInfo.images[a].levels.forEach(function (i, o) { r._uploadCompressedDataToTextureDirectly(t, e.GetInternalFormatFromBasisFormat(n.format), i.width, i.height, i.transcodedPixels, a, o); }), r.webGLVersion < 2 && (z.a.Log2(t.width) % 1 != 0 || z.a.Log2(t.height) % 1 != 0) && ($e.b.Warn( "Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1." ), (t._cachedWrapU = ln.a.CLAMP_ADDRESSMODE), (t._cachedWrapV = ln.a.CLAMP_ADDRESSMODE)); }, a = 0; a < n.fileInfo.images.length; a++ ) o(); }), (e._IgnoreSupportedFormats = !1), (e.JSModuleURL = "assets/babylonjs/basis_transcoder.js"), (e.WasmModuleURL = "assets/babylonjs/basis_transcoder.wasm"), (e._WorkerPromise = null), (e._Worker = null), (e._actionId = 0), e ); })(); function os() { var e = 0, t = 1, n = 5, i = 6, r = null; function o(e, t, n, i, r) { var o = e.getImageTranscodedSizeInBytes(t, n, i), a = new Uint8Array(o); if (!e.transcodeImage(a, t, n, i, 1, 0)) return null; r && (a = (function (e, t, n, i) { for (var r = new Uint16Array(4), o = new Uint16Array(n * i), a = n / 4, s = i / 4, c = 0; c < s; c++) for (var l = 0; l < a; l++) { var u = t + 8 * (c * a + l); (r[0] = e[u] | (e[u + 1] << 8)), (r[1] = e[u + 2] | (e[u + 3] << 8)), (r[2] = ((2 * (31 & r[0]) + 1 * (31 & r[1])) / 3) | (((2 * (2016 & r[0]) + 1 * (2016 & r[1])) / 3) & 2016) | (((2 * (63488 & r[0]) + 1 * (63488 & r[1])) / 3) & 63488)), (r[3] = ((2 * (31 & r[1]) + 1 * (31 & r[0])) / 3) | (((2 * (2016 & r[1]) + 1 * (2016 & r[0])) / 3) & 2016) | (((2 * (63488 & r[1]) + 1 * (63488 & r[0])) / 3) & 63488)); for (var h = 0; h < 4; h++) { var d = e[u + 4 + h], p = (4 * c + h) * n + 4 * l; (o[p++] = r[3 & d]), (o[p++] = r[(d >> 2) & 3]), (o[p++] = r[(d >> 4) & 3]), (o[p++] = r[(d >> 6) & 3]); } } return o; })(a, 0, (e.getImageWidth(t, n) + 3) & -4, (e.getImageHeight(t, n) + 3) & -4)); return a; } onmessage = function (a) { if ("init" === a.data.action) r || ((Module = { wasmBinary: a.data.wasmBinary }), importScripts(a.data.url), (r = new Promise(function (e) { Module.onRuntimeInitialized = function () { Module.initializeBasis(), e(); }; }))), r.then(function () { postMessage({ action: "init" }); }); else if ("transcode" === a.data.action) { var s = a.data.config, c = a.data.imageData, l = new Module.BasisFile(c), u = (function (e) { for (var t = e.getHasAlpha(), n = e.getNumImages(), i = [], r = 0; r < n; r++) { for (var o = { levels: [] }, a = e.getNumLevels(r), s = 0; s < a; s++) { var c = { width: e.getImageWidth(r, s), height: e.getImageHeight(r, s) }; o.levels.push(c); } i.push(o); } return { hasAlpha: t, images: i }; })(l), h = a.data.ignoreSupportedFormats ? null : (function (r, o) { var a = null; r.supportedCompressionFormats && (r.supportedCompressionFormats.etc1 ? (a = e) : r.supportedCompressionFormats.s3tc ? (a = o.hasAlpha ? i : t) : r.supportedCompressionFormats.pvrtc || (r.supportedCompressionFormats.etc2 && (a = n))); return a; })(a.data.config, u), d = !1; null === h && ((d = !0), (h = u.hasAlpha ? i : t)); var p = !0; l.startTranscoding() || (p = !1); for (var f = [], m = 0; m < u.images.length && p; m++) { var g = u.images[m]; if (void 0 === s.loadSingleImage || s.loadSingleImage === m) { var b = g.levels.length; !1 === s.loadMipmapLevels && (b = 1); for (var _ = 0; _ < b; _++) { var v = g.levels[_], y = o(l, m, _, h, d); if (!y) { p = !1; break; } (v.transcodedPixels = y), f.push(v.transcodedPixels.buffer); } } } l.close(), l.delete(), d && (h = -1), p ? postMessage({ action: "transcode", success: p, id: a.data.id, fileInfo: u, format: h }, f) : postMessage({ action: "transcode", success: p, id: a.data.id }); } }; } var as = (function () { function e() { this.supportCascades = !0; } return ( (e.prototype.canLoad = function (e) { return $r.a.EndsWith(e, ".basis"); }), (e.prototype.loadCubeData = function (e, t, n, i, r) { if (!Array.isArray(e)) { var o = t.getEngine().getCaps(), a = { supportedCompressionFormats: { etc1: !!o.etc1, s3tc: !!o.s3tc, pvrtc: !!o.pvrtc, etc2: !!o.etc2 } }; rs.TranscodeAsync(e, a) .then(function (e) { var n = e.fileInfo.images[0].levels.length > 1 && t.generateMipMaps; rs.LoadTextureFromTranscodeResult(t, e), t.getEngine()._setCubeMapTextureParams(n), (t.isReady = !0), t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), i && i(); }) .catch(function (e) { $e.b.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"), (t.isReady = !0); }); } }), (e.prototype.loadData = function (e, t, n) { var i = t.getEngine().getCaps(), r = { supportedCompressionFormats: { etc1: !!i.etc1, s3tc: !!i.s3tc, pvrtc: !!i.pvrtc, etc2: !!i.etc2 } }; rs.TranscodeAsync(e, r) .then(function (e) { var i = e.fileInfo.images[0].levels[0], r = e.fileInfo.images[0].levels.length > 1 && t.generateMipMaps; n(i.width, i.height, r, -1 !== e.format, function () { rs.LoadTextureFromTranscodeResult(t, e); }); }) .catch(function (e) { $e.b.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"), n(0, 0, !1, !1, function () {}); }); }), e ); })(); ue.a._TextureLoaders.push(new as()), (Mi.a.prototype.unBindMultiColorAttachmentFramebuffer = function (e, t, n) { void 0 === t && (t = !1), (this._currentRenderTarget = null); var i = this._gl; if (e[0]._MSAAFramebuffer) { i.bindFramebuffer(i.READ_FRAMEBUFFER, e[0]._MSAAFramebuffer), i.bindFramebuffer(i.DRAW_FRAMEBUFFER, e[0]._framebuffer); var r = e[0]._attachments; r || ((r = new Array(e.length)), (e[0]._attachments = r)); for (var o = 0; o < e.length; o++) { for (var a = e[o], s = 0; s < r.length; s++) r[s] = i.NONE; (r[o] = i[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + o : "COLOR_ATTACHMENT" + o + "_WEBGL"]), i.readBuffer(r[o]), i.drawBuffers(r), i.blitFramebuffer(0, 0, a.width, a.height, 0, 0, a.width, a.height, i.COLOR_BUFFER_BIT, i.NEAREST); } for (o = 0; o < r.length; o++) r[o] = i[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + o : "COLOR_ATTACHMENT" + o + "_WEBGL"]; i.drawBuffers(r); } for (o = 0; o < e.length; o++) { !(a = e[o]).generateMipMaps || t || a.isCube || (this._bindTextureDirectly(i.TEXTURE_2D, a, !0), i.generateMipmap(i.TEXTURE_2D), this._bindTextureDirectly(i.TEXTURE_2D, null)); } n && (e[0]._MSAAFramebuffer && this._bindUnboundFramebuffer(e[0]._framebuffer), n()), this._bindUnboundFramebuffer(null); }), (Mi.a.prototype.createMultipleRenderTarget = function (e, t) { var n = !1, i = !0, r = !1, o = !1, a = 1, s = new Array(), c = new Array(); void 0 !== t && ((n = void 0 !== t.generateMipMaps && t.generateMipMaps), (i = void 0 === t.generateDepthBuffer || t.generateDepthBuffer), (r = void 0 !== t.generateStencilBuffer && t.generateStencilBuffer), (o = void 0 !== t.generateDepthTexture && t.generateDepthTexture), (a = t.textureCount || 1), t.types && (s = t.types), t.samplingModes && (c = t.samplingModes)); var l = this._gl, u = l.createFramebuffer(); this._bindUnboundFramebuffer(u); for (var h = e.width || e, d = e.height || e, p = [], f = [], m = this._setupFramebufferDepthAttachments(r, i, h, d), b = 0; b < a; b++) { var _ = c[b] || 3, v = s[b] || 0; ((1 !== v || this._caps.textureFloatLinearFiltering) && (2 !== v || this._caps.textureHalfFloatLinearFiltering)) || (_ = 1); var y = this._getSamplingParameters(_, n); 1 !== v || this._caps.textureFloat || ((v = 0), g.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")); var C = new pn.a(this, pn.b.MultiRenderTarget), P = l[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + b : "COLOR_ATTACHMENT" + b + "_WEBGL"]; p.push(C), f.push(P), l.activeTexture(l["TEXTURE" + b]), l.bindTexture(l.TEXTURE_2D, C._webGLTexture), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MAG_FILTER, y.mag), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, y.min), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_S, l.CLAMP_TO_EDGE), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_T, l.CLAMP_TO_EDGE), l.texImage2D(l.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(v), h, d, 0, l.RGBA, this._getWebGLTextureType(v), null), l.framebufferTexture2D(l.DRAW_FRAMEBUFFER, P, l.TEXTURE_2D, C._webGLTexture, 0), n && this._gl.generateMipmap(this._gl.TEXTURE_2D), this._bindTextureDirectly(l.TEXTURE_2D, null), (C._framebuffer = u), (C._depthStencilBuffer = m), (C.baseWidth = h), (C.baseHeight = d), (C.width = h), (C.height = d), (C.isReady = !0), (C.samples = 1), (C.generateMipMaps = n), (C.samplingMode = _), (C.type = v), (C._generateDepthBuffer = i), (C._generateStencilBuffer = r), (C._attachments = f), this._internalTexturesCache.push(C); } if (o && this._caps.depthTextureExtension) { var x = new pn.a(this, pn.b.MultiRenderTarget); l.activeTexture(l.TEXTURE0), l.bindTexture(l.TEXTURE_2D, x._webGLTexture), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MAG_FILTER, l.NEAREST), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_MIN_FILTER, l.NEAREST), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_S, l.CLAMP_TO_EDGE), l.texParameteri(l.TEXTURE_2D, l.TEXTURE_WRAP_T, l.CLAMP_TO_EDGE), l.texImage2D(l.TEXTURE_2D, 0, this.webGLVersion < 2 ? l.DEPTH_COMPONENT : l.DEPTH_COMPONENT16, h, d, 0, l.DEPTH_COMPONENT, l.UNSIGNED_SHORT, null), l.framebufferTexture2D(l.FRAMEBUFFER, l.DEPTH_ATTACHMENT, l.TEXTURE_2D, x._webGLTexture, 0), (x._framebuffer = u), (x.baseWidth = h), (x.baseHeight = d), (x.width = h), (x.height = d), (x.isReady = !0), (x.samples = 1), (x.generateMipMaps = n), (x.samplingMode = l.NEAREST), (x._generateDepthBuffer = i), (x._generateStencilBuffer = r), p.push(x), this._internalTexturesCache.push(x); } return l.drawBuffers(f), this._bindUnboundFramebuffer(null), this.resetTextureCache(), p; }), (Mi.a.prototype.updateMultipleRenderTargetTextureSampleCount = function (e, t) { if (this.webGLVersion < 2 || !e || 0 == e.length) return 1; if (e[0].samples === t) return t; var n = this._gl; (t = Math.min(t, this.getCaps().maxMSAASamples)), e[0]._depthStencilBuffer && (n.deleteRenderbuffer(e[0]._depthStencilBuffer), (e[0]._depthStencilBuffer = null)), e[0]._MSAAFramebuffer && (n.deleteFramebuffer(e[0]._MSAAFramebuffer), (e[0]._MSAAFramebuffer = null)); for (var i = 0; i < e.length; i++) e[i]._MSAARenderBuffer && (n.deleteRenderbuffer(e[i]._MSAARenderBuffer), (e[i]._MSAARenderBuffer = null)); if (t > 1 && n.renderbufferStorageMultisample) { var r = n.createFramebuffer(); if (!r) throw new Error("Unable to create multi sampled framebuffer"); this._bindUnboundFramebuffer(r); var o = this._setupFramebufferDepthAttachments(e[0]._generateStencilBuffer, e[0]._generateDepthBuffer, e[0].width, e[0].height, t), a = []; for (i = 0; i < e.length; i++) { var s = e[i], c = n[this.webGLVersion > 1 ? "COLOR_ATTACHMENT" + i : "COLOR_ATTACHMENT" + i + "_WEBGL"], l = n.createRenderbuffer(); if (!l) throw new Error("Unable to create multi sampled framebuffer"); n.bindRenderbuffer(n.RENDERBUFFER, l), n.renderbufferStorageMultisample(n.RENDERBUFFER, t, this._getRGBAMultiSampleBufferFormat(s.type), s.width, s.height), n.framebufferRenderbuffer(n.FRAMEBUFFER, c, n.RENDERBUFFER, l), (s._MSAAFramebuffer = r), (s._MSAARenderBuffer = l), (s.samples = t), (s._depthStencilBuffer = o), n.bindRenderbuffer(n.RENDERBUFFER, null), a.push(c); } n.drawBuffers(a); } else this._bindUnboundFramebuffer(e[0]._framebuffer); return this._bindUnboundFramebuffer(null), t; }); var ss = (function (e) { function t(t, n, i, r, o) { var a = this, s = !(!o || !o.generateMipMaps) && o.generateMipMaps, c = !(!o || !o.generateDepthTexture) && o.generateDepthTexture, l = !o || void 0 === o.doNotChangeAspectRatio || o.doNotChangeAspectRatio; if ((((a = e.call(this, t, n, r, s, l) || this)._engine = r.getEngine()), a.isSupported)) { for (var u = [], h = [], d = 0; d < i; d++) o && o.types && void 0 !== o.types[d] ? u.push(o.types[d]) : u.push(o && o.defaultType ? o.defaultType : 0), o && o.samplingModes && void 0 !== o.samplingModes[d] ? h.push(o.samplingModes[d]) : h.push(ln.a.BILINEAR_SAMPLINGMODE); var p = !o || void 0 === o.generateDepthBuffer || o.generateDepthBuffer, f = !(!o || void 0 === o.generateStencilBuffer) && o.generateStencilBuffer; return ( (a._size = n), (a._multiRenderTargetOptions = { samplingModes: h, generateMipMaps: s, generateDepthBuffer: p, generateStencilBuffer: f, generateDepthTexture: c, types: u, textureCount: i }), a._createInternalTextures(), a._createTextures(), a ); } a.dispose(); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "isSupported", { get: function () { return this._engine.webGLVersion > 1 || this._engine.getCaps().drawBuffersExtension; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "textures", { get: function () { return this._textures; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "depthTexture", { get: function () { return this._textures[this._textures.length - 1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "wrapU", { set: function (e) { if (this._textures) for (var t = 0; t < this._textures.length; t++) this._textures[t].wrapU = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "wrapV", { set: function (e) { if (this._textures) for (var t = 0; t < this._textures.length; t++) this._textures[t].wrapV = e; }, enumerable: !0, configurable: !0, }), (t.prototype._rebuild = function () { this.releaseInternalTextures(), this._createInternalTextures(); for (var e = 0; e < this._internalTextures.length; e++) { this._textures[e]._texture = this._internalTextures[e]; } this._texture = this._internalTextures[0]; }), (t.prototype._createInternalTextures = function () { this._internalTextures = this._engine.createMultipleRenderTarget(this._size, this._multiRenderTargetOptions); }), (t.prototype._createTextures = function () { this._textures = []; for (var e = 0; e < this._internalTextures.length; e++) { var t = new ln.a(null, this.getScene()); (t._texture = this._internalTextures[e]), this._textures.push(t); } this._texture = this._internalTextures[0]; }), Object.defineProperty(t.prototype, "samples", { get: function () { return this._samples; }, set: function (e) { this._samples !== e && (this._samples = this._engine.updateMultipleRenderTargetTextureSampleCount(this._internalTextures, e)); }, enumerable: !0, configurable: !0, }), (t.prototype.resize = function (e) { this.releaseInternalTextures(), (this._size = e), this._createInternalTextures(); }), (t.prototype.unbindFrameBuffer = function (e, t) { var n = this; e.unBindMultiColorAttachmentFramebuffer(this._internalTextures, this.isCube, function () { n.onAfterRenderObservable.notifyObservers(t); }); }), (t.prototype.dispose = function () { this.releaseInternalTextures(), e.prototype.dispose.call(this); }), (t.prototype.releaseInternalTextures = function () { if (this._internalTextures) for (var e = this._internalTextures.length - 1; e >= 0; e--) void 0 !== this._internalTextures[e] && (this._internalTextures[e].dispose(), this._internalTextures.splice(e, 1)); }), t ); })(mn.a), cs = n(125), ls = n(97), us = (function (e) { function t(t, n, i, r, o, a) { var s = e.call(this, t, i, null, r, o, a) || this; return (s._animate = !0), (s._time = 0), (s._texturePath = n), s._loadJson(n), (s.refreshRate = 1), s; } return ( Object(h.d)(t, e), (t.prototype._loadJson = function (e) { var t = this, n = function () { g.a.Log("No config file found in " + e + " trying to use ShadersStore or DOM element"); try { t.setFragment(t._texturePath); } catch (e) { g.a.Error("No json or ShaderStore or DOM element found for CustomProceduralTexture"); } }, i = e + "/config.json", r = new ls.a(); r.open("GET", i), r.addEventListener( "load", function () { if (200 === r.status || (r.responseText && r.responseText.length > 0)) try { (t._config = JSON.parse(r.response)), t.updateShaderUniforms(), t.updateTextures(), t.setFragment(t._texturePath + "/custom"), (t._animate = t._config.animate), (t.refreshRate = t._config.refreshrate); } catch (e) { n(); } else n(); }, !1 ), r.addEventListener( "error", function () { n(); }, !1 ); try { r.send(); } catch (e) { g.a.Error("CustomProceduralTexture: Error on XHR send request."); } }), (t.prototype.isReady = function () { if (!e.prototype.isReady.call(this)) return !1; for (var t in this._textures) { if (!this._textures[t].isReady()) return !1; } return !0; }), (t.prototype.render = function (t) { var n = this.getScene(); this._animate && n && ((this._time += 0.03 * n.getAnimationRatio()), this.updateShaderUniforms()), e.prototype.render.call(this, t); }), (t.prototype.updateTextures = function () { for (var e = 0; e < this._config.sampler2Ds.length; e++) this.setTexture(this._config.sampler2Ds[e].sample2Dname, new ln.a(this._texturePath + "/" + this._config.sampler2Ds[e].textureRelativeUrl, this.getScene())); }), (t.prototype.updateShaderUniforms = function () { if (this._config) for (var e = 0; e < this._config.uniforms.length; e++) { var t = this._config.uniforms[e]; switch (t.type) { case "float": this.setFloat(t.name, t.value); break; case "color3": this.setColor3(t.name, new s.a(t.r, t.g, t.b)); break; case "color4": this.setColor4(t.name, new s.b(t.r, t.g, t.b, t.a)); break; case "vector2": this.setVector2(t.name, new a.d(t.x, t.y)); break; case "vector3": this.setVector3(t.name, new a.e(t.x, t.y, t.z)); } } this.setFloat("time", this._time); }), Object.defineProperty(t.prototype, "animate", { get: function () { return this._animate; }, set: function (e) { this._animate = e; }, enumerable: !0, configurable: !0, }), t ); })(cs.a), hs = "\n\nuniform float brightness;\nuniform float persistence;\nuniform float timeScale;\n\nvarying vec2 vUV;\n\nvec2 hash22(vec2 p)\n{\np=p*mat2(127.1,311.7,269.5,183.3);\np=-1.0+2.0*fract(sin(p)*43758.5453123);\nreturn sin(p*6.283+timeScale);\n}\nfloat interpolationNoise(vec2 p)\n{\nvec2 pi=floor(p);\nvec2 pf=p-pi;\nvec2 w=pf*pf*(3.-2.*pf);\nfloat f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));\nfloat f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));\nfloat f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));\nfloat f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));\nfloat xm1=mix(f00,f10,w.x);\nfloat xm2=mix(f01,f11,w.x);\nfloat ym=mix(xm1,xm2,w.y);\nreturn ym;\n}\nfloat perlinNoise2D(float x,float y)\n{\nfloat sum=0.0;\nfloat frequency=0.0;\nfloat amplitude=0.0;\nfor(int i=0; i 0; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isConnectedInVertexShader", { get: function () { if (this.target === ps.Vertex) return !0; if (!this.hasEndpoints) return !1; for (var e = 0, t = this._endpoints; e < t.length; e++) { var n = t[e]; if (n.ownerBlock.target === ps.Vertex) return !0; if (n.target === ps.Vertex) return !0; if ( (n.ownerBlock.target === ps.Neutral || n.ownerBlock.target === ps.VertexAndFragment) && n.ownerBlock.outputs.some(function (e) { return e.isConnectedInVertexShader; }) ) return !0; } return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isConnectedInFragmentShader", { get: function () { if (this.target === ps.Fragment) return !0; if (!this.hasEndpoints) return !1; for (var e = 0, t = this._endpoints; e < t.length; e++) { var n = t[e]; if (n.ownerBlock.target === ps.Fragment) return !0; if ( (n.ownerBlock.target === ps.Neutral || n.ownerBlock.target === ps.VertexAndFragment) && n.ownerBlock.outputs.some(function (e) { return e.isConnectedInFragmentShader; }) ) return !0; } return !1; }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "NodeMaterialConnectionPoint"; }), (e.prototype.canConnectTo = function (e) { return this.checkCompatibilityState(e) === bs.Compatible; }), (e.prototype.checkCompatibilityState = function (e) { if (this._ownerBlock.target === ps.Fragment) { var t = e.ownerBlock; if (t.target === ps.Vertex) return bs.TargetIncompatible; for (var n = 0, i = t.outputs; n < i.length; n++) { if (i[n].isConnectedInVertexShader) return bs.TargetIncompatible; } } if (this.type !== e.type && e.innerType !== fs.AutoDetect) { switch (this.type) { case fs.Vector3: if (e.type === fs.Color3) return bs.Compatible; break; case fs.Vector4: if (e.type === fs.Color4) return bs.Compatible; break; case fs.Color3: if (e.type === fs.Vector3) return bs.Compatible; break; case fs.Color4: if (e.type === fs.Vector4) return bs.Compatible; } return e.acceptedConnectionPointTypes && -1 !== e.acceptedConnectionPointTypes.indexOf(this.type) ? bs.Compatible : bs.TypeIncompatible; } return e.excludedConnectionPointTypes && -1 !== e.excludedConnectionPointTypes.indexOf(this.type) ? 1 : bs.Compatible; }), (e.prototype.connectTo = function (e, t) { if ((void 0 === t && (t = !1), !t && !this.canConnectTo(e))) throw "Cannot connect these two connectors."; return this._endpoints.push(e), (e._connectedPoint = this), (this._enforceAssociatedVariableName = !1), this.onConnectionObservable.notifyObservers(e), e.onConnectionObservable.notifyObservers(this), this; }), (e.prototype.disconnectFrom = function (e) { var t = this._endpoints.indexOf(e); return -1 === t || (this._endpoints.splice(t, 1), (e._connectedPoint = null), (this._enforceAssociatedVariableName = !1), (e._enforceAssociatedVariableName = !1)), this; }), (e.prototype.serialize = function () { var e = {}; return (e.name = this.name), this.connectedPoint && ((e.inputName = this.name), (e.targetBlockId = this.connectedPoint.ownerBlock.uniqueId), (e.targetConnectionName = this.connectedPoint.name)), e; }), (e.prototype.dispose = function () { this.onConnectionObservable.clear(); }), e ); })(), As = n(205), Is = (function () { function e(e, t, n, i) { void 0 === t && (t = ps.Vertex), void 0 === n && (n = !1), void 0 === i && (i = !1), (this._isFinalMerger = !1), (this._isInput = !1), (this._isUnique = !1), (this.inputsAreExclusive = !1), (this._codeVariableName = ""), (this._inputs = new Array()), (this._outputs = new Array()), (this.comments = ""), (this.name = e), (this._target = t), (this._isFinalMerger = n), (this._isInput = i), (this.uniqueId = As.a.UniqueId); } return ( Object.defineProperty(e.prototype, "isUnique", { get: function () { return this._isUnique; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isFinalMerger", { get: function () { return this._isFinalMerger; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isInput", { get: function () { return this._isInput; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "buildId", { get: function () { return this._buildId; }, set: function (e) { this._buildId = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "target", { get: function () { return this._target; }, set: function (e) { 0 == (this._target & e) && (this._target = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "inputs", { get: function () { return this._inputs; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "outputs", { get: function () { return this._outputs; }, enumerable: !0, configurable: !0, }), (e.prototype.getInputByName = function (e) { var t = this._inputs.filter(function (t) { return t.name === e; }); return t.length ? t[0] : null; }), (e.prototype.getOutputByName = function (e) { var t = this._outputs.filter(function (t) { return t.name === e; }); return t.length ? t[0] : null; }), (e.prototype.initialize = function (e) {}), (e.prototype.bind = function (e, t, n) {}), (e.prototype._declareOutput = function (e, t) { return t._getGLType(e.type) + " " + e.associatedVariableName; }), (e.prototype._writeVariable = function (e) { return e.connectedPoint ? "" + e.associatedVariableName : "0."; }), (e.prototype._writeFloat = function (e) { var t = e.toString(); return -1 === t.indexOf(".") && (t += ".0"), "" + t; }), (e.prototype.getClassName = function () { return "NodeMaterialBlock"; }), (e.prototype.registerInput = function (e, t, n, i) { void 0 === n && (n = !1); var r = new Ms(e, this, _s.Input); return (r.type = t), (r.isOptional = n), i && (r.target = i), this._inputs.push(r), this; }), (e.prototype.registerOutput = function (e, t, n) { var i = new Ms(e, this, _s.Output); return (i.type = t), n && (i.target = n), this._outputs.push(i), this; }), (e.prototype.getFirstAvailableInput = function (e) { void 0 === e && (e = null); for (var t = 0, n = this._inputs; t < n.length; t++) { var i = n[t]; if (!(i.connectedPoint || (e && e.type !== i.type && i.type !== fs.AutoDetect))) return i; } return null; }), (e.prototype.getFirstAvailableOutput = function (e) { void 0 === e && (e = null); for (var t = 0, n = this._outputs; t < n.length; t++) { var i = n[t]; if (!e || !e.target || e.target === ps.Neutral || 0 != (e.target & i.target)) return i; } return null; }), (e.prototype.getSiblingOutput = function (e) { var t = this._outputs.indexOf(e); return -1 === t || t >= this._outputs.length ? null : this._outputs[t + 1]; }), (e.prototype.connectTo = function (e, t) { if (0 !== this._outputs.length) { for (var n = t && t.output ? this.getOutputByName(t.output) : this.getFirstAvailableOutput(e), i = !0; i; ) { var r = t && t.input ? e.getInputByName(t.input) : e.getFirstAvailableInput(n); if (n && r && n.canConnectTo(r)) n.connectTo(r), (i = !1); else { if (!n) throw "Unable to find a compatible match"; n = this.getSiblingOutput(n); } } return this; } }), (e.prototype._buildBlock = function (e) {}), (e.prototype.updateUniformsAndSamples = function (e, t, n, i) {}), (e.prototype.provideFallbacks = function (e, t) {}), (e.prototype.initializeDefines = function (e, t, n, i) { void 0 === i && (i = !1); }), (e.prototype.prepareDefines = function (e, t, n, i) { void 0 === i && (i = !1); }), (e.prototype.autoConfigure = function (e) {}), (e.prototype.replaceRepeatableContent = function (e, t, n, i) {}), (e.prototype.isReady = function (e, t, n, i) { return void 0 === i && (i = !1), !0; }), (e.prototype._linkConnectionTypes = function (e, t) { (this._inputs[e]._linkedConnectionSource = this._inputs[t]), (this._inputs[t]._linkedConnectionSource = this._inputs[e]); }), (e.prototype._processBuild = function (e, t, n, i) { e.build(t, i); var r = null != t._vertexState, o = e._buildTarget === ps.Vertex && e.target !== ps.VertexAndFragment; if (r && (0 == (e.target & e._buildTarget) || 0 == (e.target & n.target) || (this.target !== ps.VertexAndFragment && o)) && ((!e.isInput && t.target !== e._buildTarget) || (e.isInput && e.isAttribute))) { var a = n.connectedPoint; t._vertexState._emitVaryingFromString("v_" + a.associatedVariableName, t._getGLType(a.type)) && (t._vertexState.compilationString += "v_" + a.associatedVariableName + " = " + a.associatedVariableName + ";\r\n"), (n.associatedVariableName = "v_" + a.associatedVariableName), (n._enforceAssociatedVariableName = !0); } }), (e.prototype.build = function (e, t) { if (this._buildId === e.sharedData.buildId) return !0; if (!this.isInput) for (var n = 0, i = this._outputs; n < i.length; n++) { (l = i[n]).associatedVariableName || (l.associatedVariableName = e._getFreeVariableName(l.name)); } for (var r = 0, o = this._inputs; r < o.length; r++) { var a = o[r]; if (a.connectedPoint) { if (this.target !== ps.Neutral) { if (0 == (a.target & this.target)) continue; if (0 == (a.target & e.target)) continue; } (d = a.connectedPoint.ownerBlock) && d !== this && this._processBuild(d, e, a, t); } else a.isOptional || e.sharedData.checks.notConnectedNonOptionalInputs.push(a); } if (this._buildId === e.sharedData.buildId) return !0; if ((e.sharedData.verbose, this.isFinalMerger)) switch (e.target) { case ps.Vertex: e.sharedData.checks.emitVertex = !0; break; case ps.Fragment: e.sharedData.checks.emitFragment = !0; } !this.isInput && e.sharedData.emitComments && (e.compilationString += "\r\n//" + this.name + "\r\n"), this._buildBlock(e), (this._buildId = e.sharedData.buildId), (this._buildTarget = e.target); for (var s = 0, c = this._outputs; s < c.length; s++) { var l; if (0 != ((l = c[s]).target & e.target)) for (var u = 0, h = l.endpoints; u < h.length; u++) { var d, p = h[u]; (d = p.ownerBlock) && 0 != (d.target & e.target) && -1 !== t.indexOf(d) && this._processBuild(d, e, p, t); } } return !1; }), (e.prototype._inputRename = function (e) { return e; }), (e.prototype._outputRename = function (e) { return e; }), (e.prototype._dumpPropertiesCode = function () { return ""; }), (e.prototype._dumpCode = function (e, t) { var n; t.push(this); var i = this.name.replace(/[^A-Za-z_]+/g, ""); if (((this._codeVariableName = i || this.getClassName() + "_" + this.uniqueId), -1 !== e.indexOf(this._codeVariableName))) { var r = 0; do { r++, (this._codeVariableName = i + r); } while (-1 !== e.indexOf(this._codeVariableName)); } e.push(this._codeVariableName), (n = "\r\n// " + this.getClassName() + "\r\n"), this.comments && (n += "// " + this.comments + "\r\n"), (n += "var " + this._codeVariableName + " = new BABYLON." + this.getClassName() + '("' + this.name + '");\r\n'), (n += this._dumpPropertiesCode()); for (var o = 0, a = this.inputs; o < a.length; o++) { var s = a[o]; if (s.isConnected) { var c = s.connectedPoint.ownerBlock; -1 === t.indexOf(c) && (n += c._dumpCode(e, t)); } } for (var l = 0, u = this.outputs; l < u.length; l++) { var h = u[l]; if (h.hasEndpoints) for (var d = 0, p = h.endpoints; d < p.length; d++) { (c = p[d].ownerBlock) && -1 === t.indexOf(c) && (n += c._dumpCode(e, t)); } } return n; }), (e.prototype._dumpCodeForOutputConnections = function (e) { var t = ""; if (-1 !== e.indexOf(this)) return t; e.push(this); for (var n = 0, i = this.inputs; n < i.length; n++) { var r = i[n]; if (r.isConnected) { var o = r.connectedPoint, a = o.ownerBlock; (t += a._dumpCodeForOutputConnections(e)), (t += a._codeVariableName + "." + a._outputRename(o.name) + ".connectTo(" + this._codeVariableName + "." + this._inputRename(r.name) + ");\r\n"); } } return t; }), (e.prototype.clone = function (e, t) { void 0 === t && (t = ""); var n = this.serialize(), i = c.a.GetClass(n.customType); if (i) { var r = new i(); return r._deserialize(n, e, t), r; } return null; }), (e.prototype.serialize = function () { var e = {}; (e.customType = "BABYLON." + this.getClassName()), (e.id = this.uniqueId), (e.name = this.name), (e.comments = this.comments), (e.inputs = []); for (var t = 0, n = this.inputs; t < n.length; t++) { var i = n[t]; e.inputs.push(i.serialize()); } return e; }), (e.prototype._deserialize = function (e, t, n) { (this.name = e.name), (this.comments = e.comments); }), (e.prototype.dispose = function () { for (var e = 0, t = this.inputs; e < t.length; e++) { t[e].dispose(); } for (var n = 0, i = this.outputs; n < i.length; n++) { i[n].dispose(); } }), e ); })(), Ds = (function () { function e() { (this.supportUniformBuffers = !1), (this.attributes = new Array()), (this.uniforms = new Array()), (this.constants = new Array()), (this.samplers = new Array()), (this.functions = {}), (this.extensions = {}), (this.counters = {}), (this._attributeDeclaration = ""), (this._uniformDeclaration = ""), (this._constantDeclaration = ""), (this._samplerDeclaration = ""), (this._varyingTransfer = ""), (this._repeatableContentAnchorIndex = 0), (this._builtCompilationString = ""), (this.compilationString = ""); } return ( (e.prototype.finalize = function (e) { var t = e.sharedData.emitComments, n = this.target === ps.Fragment; (this.compilationString = "\r\n" + (t ? "//Entry point\r\n" : "") + "void main(void) {\r\n" + this.compilationString), this._constantDeclaration && (this.compilationString = "\r\n" + (t ? "//Constants\r\n" : "") + this._constantDeclaration + "\r\n" + this.compilationString); var i = ""; for (var r in this.functions) i += this.functions[r] + "\r\n"; for (var o in ((this.compilationString = "\r\n" + i + "\r\n" + this.compilationString), !n && this._varyingTransfer && (this.compilationString = this.compilationString + "\r\n" + this._varyingTransfer), (this.compilationString = this.compilationString + "\r\n}"), this.sharedData.varyingDeclaration && (this.compilationString = "\r\n" + (t ? "//Varyings\r\n" : "") + this.sharedData.varyingDeclaration + "\r\n" + this.compilationString), this._samplerDeclaration && (this.compilationString = "\r\n" + (t ? "//Samplers\r\n" : "") + this._samplerDeclaration + "\r\n" + this.compilationString), this._uniformDeclaration && (this.compilationString = "\r\n" + (t ? "//Uniforms\r\n" : "") + this._uniformDeclaration + "\r\n" + this.compilationString), this._attributeDeclaration && !n && (this.compilationString = "\r\n" + (t ? "//Attributes\r\n" : "") + this._attributeDeclaration + "\r\n" + this.compilationString), this.extensions)) { var a = this.extensions[o]; this.compilationString = "\r\n" + a + "\r\n" + this.compilationString; } this._builtCompilationString = this.compilationString; }), Object.defineProperty(e.prototype, "_repeatableContentAnchor", { get: function () { return "###___ANCHOR" + this._repeatableContentAnchorIndex++ + "___###"; }, enumerable: !0, configurable: !0, }), (e.prototype._getFreeVariableName = function (e) { return ( (e = e.replace(/[^a-zA-Z_]+/g, "")), void 0 === this.sharedData.variableNames[e] ? ((this.sharedData.variableNames[e] = 0), "output" === e || "texture" === e ? e + this.sharedData.variableNames[e] : e) : (this.sharedData.variableNames[e]++, e + this.sharedData.variableNames[e]) ); }), (e.prototype._getFreeDefineName = function (e) { return void 0 === this.sharedData.defineNames[e] ? (this.sharedData.defineNames[e] = 0) : this.sharedData.defineNames[e]++, e + this.sharedData.defineNames[e]; }), (e.prototype._excludeVariableName = function (e) { this.sharedData.variableNames[e] = 0; }), (e.prototype._emit2DSampler = function (e) { (this._samplerDeclaration += "uniform sampler2D " + e + ";\r\n"), this.samplers.push(e); }), (e.prototype._getGLType = function (e) { switch (e) { case fs.Float: return "float"; case fs.Int: return "int"; case fs.Vector2: return "vec2"; case fs.Color3: case fs.Vector3: return "vec3"; case fs.Color4: case fs.Vector4: return "vec4"; case fs.Matrix: return "mat4"; } return ""; }), (e.prototype._emitExtension = function (e, t) { this.extensions[e] || (this.extensions[e] = t); }), (e.prototype._emitFunction = function (e, t, n) { this.functions[e] || (this.sharedData.emitComments && (t = n + "\r\n" + t), (this.functions[e] = t)); }), (e.prototype._emitCodeFromInclude = function (e, t, n) { if (n && n.repeatKey) return "#include<" + e + ">[0.." + n.repeatKey + "]\r\n"; var i = Xt.a.IncludesShadersStore[e] + "\r\n"; if ((this.sharedData.emitComments && (i = t + "\r\n" + i), !n)) return i; if (n.replaceStrings) for (var r = 0; r < n.replaceStrings.length; r++) { var o = n.replaceStrings[r]; i = i.replace(o.search, o.replace); } return i; }), (e.prototype._emitFunctionFromInclude = function (e, t, n, i) { void 0 === i && (i = ""); var r = e + i; if (!this.functions[r]) { if (!(n && (n.removeAttributes || n.removeUniforms || n.removeVaryings || n.removeIfDef || n.replaceStrings))) return ( n && n.repeatKey ? (this.functions[r] = "#include<" + e + ">[0.." + n.repeatKey + "]\r\n") : (this.functions[r] = "#include<" + e + ">\r\n"), void (this.sharedData.emitComments && (this.functions[r] = t + "\r\n" + this.functions[r])) ); if ( ((this.functions[r] = Xt.a.IncludesShadersStore[e]), this.sharedData.emitComments && (this.functions[r] = t + "\r\n" + this.functions[r]), n.removeIfDef && ((this.functions[r] = this.functions[r].replace(/^\s*?#ifdef.+$/gm, "")), (this.functions[r] = this.functions[r].replace(/^\s*?#endif.*$/gm, "")), (this.functions[r] = this.functions[r].replace(/^\s*?#else.*$/gm, "")), (this.functions[r] = this.functions[r].replace(/^\s*?#elif.*$/gm, ""))), n.removeAttributes && (this.functions[r] = this.functions[r].replace(/^\s*?attribute.+$/gm, "")), n.removeUniforms && (this.functions[r] = this.functions[r].replace(/^\s*?uniform.+$/gm, "")), n.removeVaryings && (this.functions[r] = this.functions[r].replace(/^\s*?varying.+$/gm, "")), n.replaceStrings) ) for (var o = 0; o < n.replaceStrings.length; o++) { var a = n.replaceStrings[o]; this.functions[r] = this.functions[r].replace(a.search, a.replace); } } }), (e.prototype._registerTempVariable = function (e) { return -1 === this.sharedData.temps.indexOf(e) && (this.sharedData.temps.push(e), !0); }), (e.prototype._emitVaryingFromString = function (e, t, n, i) { return ( void 0 === n && (n = ""), void 0 === i && (i = !1), -1 === this.sharedData.varyings.indexOf(e) && (this.sharedData.varyings.push(e), n && ($r.a.StartsWith(n, "defined(") ? (this.sharedData.varyingDeclaration += "#if " + n + "\r\n") : (this.sharedData.varyingDeclaration += (i ? "#ifndef" : "#ifdef") + " " + n + "\r\n")), (this.sharedData.varyingDeclaration += "varying " + t + " " + e + ";\r\n"), n && (this.sharedData.varyingDeclaration += "#endif\r\n"), !0) ); }), (e.prototype._emitUniformFromString = function (e, t, n, i) { void 0 === n && (n = ""), void 0 === i && (i = !1), -1 === this.uniforms.indexOf(e) && (this.uniforms.push(e), n && (this._uniformDeclaration += (i ? "#ifndef" : "#ifdef") + " " + n + "\r\n"), (this._uniformDeclaration += "uniform " + t + " " + e + ";\r\n"), n && (this._uniformDeclaration += "#endif\r\n")); }), (e.prototype._emitFloat = function (e) { return e.toString() === e.toFixed(0) ? e + ".0" : e.toString(); }), e ); })(), Rs = (function () { function e() { (this.temps = new Array()), (this.varyings = new Array()), (this.varyingDeclaration = ""), (this.inputBlocks = new Array()), (this.textureBlocks = new Array()), (this.bindableBlocks = new Array()), (this.blocksWithFallbacks = new Array()), (this.blocksWithDefines = new Array()), (this.repeatableContentBlocks = new Array()), (this.dynamicUniformBlocks = new Array()), (this.blockingBlocks = new Array()), (this.animatedInputs = new Array()), (this.variableNames = {}), (this.defineNames = {}), (this.hints = { needWorldViewMatrix: !1, needWorldViewProjectionMatrix: !1, needAlphaBlending: !1, needAlphaTesting: !1 }), (this.checks = { emitVertex: !1, emitFragment: !1, notConnectedNonOptionalInputs: new Array() }), (this.variableNames.position = 0), (this.variableNames.normal = 0), (this.variableNames.tangent = 0), (this.variableNames.uv = 0), (this.variableNames.uv2 = 0), (this.variableNames.uv3 = 0), (this.variableNames.uv4 = 0), (this.variableNames.uv4 = 0), (this.variableNames.uv5 = 0), (this.variableNames.uv6 = 0), (this.variableNames.color = 0), (this.variableNames.matricesIndices = 0), (this.variableNames.matricesWeights = 0), (this.variableNames.matricesIndicesExtra = 0), (this.variableNames.matricesWeightsExtra = 0), (this.variableNames.diffuseBase = 0), (this.variableNames.specularBase = 0), (this.variableNames.worldPos = 0), (this.variableNames.shadow = 0), (this.variableNames.vTBN = 0), (this.defineNames.MAINUV0 = 0), (this.defineNames.MAINUV1 = 0), (this.defineNames.MAINUV2 = 0), (this.defineNames.MAINUV3 = 0), (this.defineNames.MAINUV4 = 0), (this.defineNames.MAINUV5 = 0), (this.defineNames.MAINUV6 = 0), (this.defineNames.MAINUV7 = 0); } return ( (e.prototype.emitErrors = function () { var e = ""; this.checks.emitVertex || (e += "NodeMaterial does not have a vertex output. You need to at least add a block that generates a glPosition value.\r\n"), this.checks.emitFragment || (e += "NodeMaterial does not have a fragment output. You need to at least add a block that generates a glFragColor value.\r\n"); for (var t = 0, n = this.checks.notConnectedNonOptionalInputs; t < n.length; t++) { var i = n[t]; e += "input " + i.name + " from block " + i.ownerBlock.name + "[" + i.ownerBlock.getClassName() + "] is not connected and is not optional.\r\n"; } if (e) throw "Build of NodeMaterial failed:\r\n" + e; }), e ); })(), ws = (function (e) { function t(t) { var n = e.call(this, t, ps.Vertex) || this; return ( (n.complementW = 1), (n.complementZ = 0), n.registerInput("vector", fs.AutoDetect), n.registerInput("transform", fs.Matrix), n.registerOutput("output", fs.Vector4), n.registerOutput("xyz", fs.Vector3), n._inputs[0].onConnectionObservable.add(function (e) { if (e.ownerBlock.isInput) { var t = e.ownerBlock; ("normal" !== t.name && "tangent" !== t.name) || (n.complementW = 0); } }), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "TransformBlock"; }), Object.defineProperty(t.prototype, "vector", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyz", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "transform", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.vector, i = this.transform; if (n.connectedPoint) { switch (n.connectedPoint.type) { case fs.Vector2: t.compilationString += this._declareOutput(this.output, t) + " = " + i.associatedVariableName + " * vec4(" + n.associatedVariableName + ", " + this._writeFloat(this.complementZ) + ", " + this._writeFloat(this.complementW) + ");\r\n"; break; case fs.Vector3: case fs.Color3: t.compilationString += this._declareOutput(this.output, t) + " = " + i.associatedVariableName + " * vec4(" + n.associatedVariableName + ", " + this._writeFloat(this.complementW) + ");\r\n"; break; default: t.compilationString += this._declareOutput(this.output, t) + " = " + i.associatedVariableName + " * " + n.associatedVariableName + ";\r\n"; } this.xyz.hasEndpoints && (t.compilationString += this._declareOutput(this.xyz, t) + " = " + this.output.associatedVariableName + ".xyz;\r\n"); } return this; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.complementZ = this.complementZ), (t.complementW = this.complementW), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.complementZ = void 0 !== t.complementZ ? t.complementZ : 0), (this.complementW = void 0 !== t.complementW ? t.complementW : 1); }), (t.prototype._dumpPropertiesCode = function () { var e = this._codeVariableName + ".complementZ = " + this.complementZ + ";\r\n"; return (e += this._codeVariableName + ".complementW = " + this.complementW + ";\r\n"); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.TransformBlock"] = ws; var Ls = (function (e) { function t(t) { var n = e.call(this, t, ps.Vertex, !0) || this; return n.registerInput("vector", fs.Vector4), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VertexOutputBlock"; }), Object.defineProperty(t.prototype, "vector", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.vector; return (t.compilationString += "gl_Position = " + n.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.VertexOutputBlock"] = Ls; var Fs, Ns = (function (e) { function t(t) { var n = e.call(this, t, ps.Fragment, !0) || this; return n.registerInput("rgba", fs.Color4, !0), n.registerInput("rgb", fs.Color3, !0), n.registerInput("a", fs.Float, !0), n.rgb.acceptedConnectionPointTypes.push(fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "FragmentOutputBlock"; }), Object.defineProperty(t.prototype, "rgba", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgb", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "a", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.rgba, i = this.rgb, r = this.a; if (((t.sharedData.hints.needAlphaBlending = n.isConnected || r.isConnected), n.connectedPoint)) r.isConnected ? (t.compilationString += "gl_FragColor = vec4(" + n.associatedVariableName + ".rgb, " + r.associatedVariableName + ");\r\n") : (t.compilationString += "gl_FragColor = " + n.associatedVariableName + ";\r\n"); else if (i.connectedPoint) { var o = "1.0"; r.connectedPoint && (o = r.associatedVariableName), i.connectedPoint.type === fs.Float ? (t.compilationString += "gl_FragColor = vec4(" + i.associatedVariableName + ", " + i.associatedVariableName + ", " + i.associatedVariableName + ", " + o + ");\r\n") : (t.compilationString += "gl_FragColor = vec4(" + i.associatedVariableName + ", " + o + ");\r\n"); } else t.sharedData.checks.notConnectedNonOptionalInputs.push(n); return this; }), t ); })(Is); (c.a.RegisteredTypes["BABYLON.FragmentOutputBlock"] = Ns), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.Time = 1)] = "Time"); })(Fs || (Fs = {})); var ks = (function (e) { function t(t, n, i) { void 0 === n && (n = ps.Vertex), void 0 === i && (i = fs.AutoDetect); var r = e.call(this, t, n, !1, !0) || this; return ( (r._mode = ms.Undefined), (r._animationType = Fs.None), (r.min = 0), (r.max = 0), (r.isBoolean = !1), (r.matrixMode = 0), (r._systemValue = null), (r.visibleInInspector = !1), (r.isConstant = !1), (r.groupInInspector = ""), (r.onValueChangedObservable = new o.c()), (r._type = i), r.setDefaultValue(), r.registerOutput("output", i), r ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "type", { get: function () { if (this._type === fs.AutoDetect) { if (this.isUniform && null != this.value) { if (!isNaN(this.value)) return (this._type = fs.Float), this._type; switch (this.value.getClassName()) { case "Vector2": return (this._type = fs.Vector2), this._type; case "Vector3": return (this._type = fs.Vector3), this._type; case "Vector4": return (this._type = fs.Vector4), this._type; case "Color3": return (this._type = fs.Color3), this._type; case "Color4": return (this._type = fs.Color4), this._type; case "Matrix": return (this._type = fs.Matrix), this._type; } } if (this.isAttribute) switch (this.name) { case "position": case "normal": case "tangent": return (this._type = fs.Vector3), this._type; case "uv": case "uv2": return (this._type = fs.Vector2), this._type; case "matricesIndices": case "matricesWeights": case "world0": case "world1": case "world2": case "world3": return (this._type = fs.Vector4), this._type; case "color": return (this._type = fs.Color4), this._type; } if (this.isSystemValue) switch (this._systemValue) { case gs.World: case gs.WorldView: case gs.WorldViewProjection: case gs.View: case gs.ViewProjection: case gs.Projection: return (this._type = fs.Matrix), this._type; case gs.CameraPosition: return (this._type = fs.Vector3), this._type; case gs.FogColor: return (this._type = fs.Color3), this._type; case gs.DeltaTime: return (this._type = fs.Float), this._type; } } return this._type; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.setAsAttribute = function (e) { return e && (this.name = e), (this._mode = ms.Attribute), this; }), (t.prototype.setAsSystemValue = function (e) { return (this.systemValue = e), this; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._storedValue; }, set: function (e) { this.type === fs.Float && (this.isBoolean ? (e = e ? 1 : 0) : this.min !== this.max && ((e = Math.max(this.min, e)), (e = Math.min(this.max, e)))), (this._storedValue = e), (this._mode = ms.Uniform), this.onValueChangedObservable.notifyObservers(this); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "valueCallback", { get: function () { return this._valueCallback; }, set: function (e) { (this._valueCallback = e), (this._mode = ms.Uniform); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "associatedVariableName", { get: function () { return this._associatedVariableName; }, set: function (e) { this._associatedVariableName = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "animationType", { get: function () { return this._animationType; }, set: function (e) { this._animationType = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isUndefined", { get: function () { return this._mode === ms.Undefined; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isUniform", { get: function () { return this._mode === ms.Uniform; }, set: function (e) { (this._mode = e ? ms.Uniform : ms.Undefined), (this.associatedVariableName = ""); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isAttribute", { get: function () { return this._mode === ms.Attribute; }, set: function (e) { (this._mode = e ? ms.Attribute : ms.Undefined), (this.associatedVariableName = ""); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isVarying", { get: function () { return this._mode === ms.Varying; }, set: function (e) { (this._mode = e ? ms.Varying : ms.Undefined), (this.associatedVariableName = ""); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isSystemValue", { get: function () { return null != this._systemValue; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "systemValue", { get: function () { return this._systemValue; }, set: function (e) { (this._mode = ms.Uniform), (this.associatedVariableName = ""), (this._systemValue = e); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "InputBlock"; }), (t.prototype.animate = function (e) { switch (this._animationType) { case Fs.Time: this.type === fs.Float && (this.value += 0.01 * e.getAnimationRatio()); } }), (t.prototype._emitDefine = function (e) { return "!" === e[0] ? "#ifndef " + e.substring(1) + "\r\n" : "#ifdef " + e + "\r\n"; }), (t.prototype.initialize = function (e) { this.associatedVariableName = ""; }), (t.prototype.setDefaultValue = function () { switch (this.type) { case fs.Float: this.value = 0; break; case fs.Vector2: this.value = a.d.Zero(); break; case fs.Vector3: this.value = a.e.Zero(); break; case fs.Vector4: this.value = a.f.Zero(); break; case fs.Color3: this.value = s.a.White(); break; case fs.Color4: this.value = new s.b(1, 1, 1, 1); break; case fs.Matrix: this.value = a.a.Identity(); } }), (t.prototype._emitConstant = function (e) { switch (this.type) { case fs.Float: return "" + e._emitFloat(this.value); case fs.Vector2: return "vec2(" + this.value.x + ", " + this.value.y + ")"; case fs.Vector3: return "vec3(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ")"; case fs.Vector4: return "vec4(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ", " + this.value.w + ")"; case fs.Color3: return "vec3(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ")"; case fs.Color4: return "vec4(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ", " + this.value.a + ")"; } return ""; }), (t.prototype._emit = function (e, t) { if (this.isUniform) { if ((this.associatedVariableName || (this.associatedVariableName = e._getFreeVariableName("u_" + this.name)), this.isConstant)) { if (-1 !== e.constants.indexOf(this.associatedVariableName)) return; return e.constants.push(this.associatedVariableName), void (e._constantDeclaration += this._declareOutput(this.output, e) + " = " + this._emitConstant(e) + ";\r\n"); } if (-1 !== e.uniforms.indexOf(this.associatedVariableName)) return; e.uniforms.push(this.associatedVariableName), t && (e._uniformDeclaration += this._emitDefine(t)), (e._uniformDeclaration += "uniform " + e._getGLType(this.type) + " " + this.associatedVariableName + ";\r\n"), t && (e._uniformDeclaration += "#endif\r\n"); var n = e.sharedData.hints; if (null !== this._systemValue && void 0 !== this._systemValue) switch (this._systemValue) { case gs.WorldView: n.needWorldViewMatrix = !0; break; case gs.WorldViewProjection: n.needWorldViewProjectionMatrix = !0; } else this._animationType !== Fs.None && e.sharedData.animatedInputs.push(this); } else if (this.isAttribute) { if (((this.associatedVariableName = this.name), this.target === ps.Vertex && e._vertexState)) return void this._emit(e._vertexState, t); if (-1 !== e.attributes.indexOf(this.associatedVariableName)) return; e.attributes.push(this.associatedVariableName), t && (e._attributeDeclaration += this._emitDefine(t)), (e._attributeDeclaration += "attribute " + e._getGLType(this.type) + " " + this.associatedVariableName + ";\r\n"), t && (e._attributeDeclaration += "#endif\r\n"); } }), (t.prototype._transmitWorld = function (e, t, n, i) { if (this._systemValue) { var r = this.associatedVariableName; switch (this._systemValue) { case gs.World: e.setMatrix(r, t); break; case gs.WorldView: e.setMatrix(r, n); break; case gs.WorldViewProjection: e.setMatrix(r, i); } } }), (t.prototype._transmit = function (e, t) { if (!this.isAttribute) { var n = this.associatedVariableName; if (this._systemValue) switch (this._systemValue) { case gs.World: case gs.WorldView: case gs.WorldViewProjection: return; case gs.View: e.setMatrix(n, t.getViewMatrix()); break; case gs.Projection: e.setMatrix(n, t.getProjectionMatrix()); break; case gs.ViewProjection: e.setMatrix(n, t.getTransformMatrix()); break; case gs.CameraPosition: e.setVector3(n, t.activeCamera.globalPosition); break; case gs.FogColor: e.setColor3(n, t.fogColor); break; case gs.DeltaTime: e.setFloat(n, t.deltaTime / 1e3); } else { var i = this._valueCallback ? this._valueCallback() : this._storedValue; if (null !== i) switch (this.type) { case fs.Float: e.setFloat(n, i); break; case fs.Int: e.setInt(n, i); break; case fs.Color3: e.setColor3(n, i); break; case fs.Color4: e.setDirectColor4(n, i); break; case fs.Vector2: e.setVector2(n, i); break; case fs.Vector3: e.setVector3(n, i); break; case fs.Vector4: e.setVector4(n, i); break; case fs.Matrix: e.setMatrix(n, i); } } } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t), (this.isUniform || this.isSystemValue) && t.sharedData.inputBlocks.push(this), this._emit(t); }), (t.prototype._dumpPropertiesCode = function () { var e = this._codeVariableName; if (this.isAttribute) return e + '.setAsAttribute("' + this.name + '");\r\n'; if (this.isSystemValue) return e + ".setAsSystemValue(BABYLON.NodeMaterialSystemValues." + gs[this._systemValue] + ");\r\n"; if (this.isUniform) { var t = ""; switch (this.type) { case fs.Float: var n = e + ".value = " + this.value + ";\r\n"; return ( (n += e + ".min = " + this.min + ";\r\n"), (n += e + ".max = " + this.max + ";\r\n"), (n += e + ".isBoolean = " + this.isBoolean + ";\r\n"), (n += e + ".matrixMode = " + this.matrixMode + ";\r\n"), (n += e + ".animationType = BABYLON.AnimatedInputBlockTypes." + Fs[this.animationType] + ";\r\n") ); case fs.Vector2: t = "new BABYLON.Vector2(" + this.value.x + ", " + this.value.y + ")"; break; case fs.Vector3: t = "new BABYLON.Vector3(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ")"; break; case fs.Vector4: t = "new BABYLON.Vector4(" + this.value.x + ", " + this.value.y + ", " + this.value.z + ", " + this.value.w + ")"; break; case fs.Color3: t = "new BABYLON.Color3(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ")"; break; case fs.Color4: t = "new BABYLON.Color4(" + this.value.r + ", " + this.value.g + ", " + this.value.b + ", " + this.value.a + ")"; break; case fs.Matrix: t = "BABYLON.Matrix.FromArray([" + this.value.m.toString() + "])"; } var i = e + ".value = " + t + ";\r\n"; return (i += e + ".isConstant = " + (this.isConstant ? "true" : "false") + ";\r\n"), (i += e + ".visibleInInspector = " + (this.visibleInInspector ? "true" : "false") + ";\r\n"); } return ""; }), (t.prototype.dispose = function () { this.onValueChangedObservable.clear(), e.prototype.dispose.call(this); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return ( (t.type = this.type), (t.mode = this._mode), (t.systemValue = this._systemValue), (t.animationType = this._animationType), (t.visibleInInspector = this.visibleInInspector), (t.min = this.min), (t.max = this.max), (t.isBoolean = this.isBoolean), (t.matrixMode = this.matrixMode), (t.isConstant = this.isConstant), (t.groupInInspector = this.groupInInspector), null != this._storedValue && this._mode === ms.Uniform && (this._storedValue.asArray ? ((t.valueType = "BABYLON." + this._storedValue.getClassName()), (t.value = this._storedValue.asArray())) : ((t.valueType = "number"), (t.value = this._storedValue))), t ); }), (t.prototype._deserialize = function (t, n, i) { if ( (e.prototype._deserialize.call(this, t, n, i), (this._type = t.type), (this._mode = t.mode), (this._systemValue = t.systemValue || t.wellKnownValue), (this._animationType = t.animationType), (this.visibleInInspector = t.visibleInInspector), (this.min = t.min || 0), (this.max = t.max || 0), (this.isBoolean = !!t.isBoolean), (this.matrixMode = t.matrixMode || 0), (this.isConstant = !!t.isConstant), (this.groupInInspector = t.groupInInspector || ""), t.valueType) ) if ("number" === t.valueType) this._storedValue = t.value; else { var r = c.a.GetClass(t.valueType); r && (this._storedValue = r.FromArray(t.value)); } }), t ); })(Is); c.a.RegisteredTypes["BABYLON.InputBlock"] = ks; var zs = (function (e) { function t() { var t = e.call(this) || this; return ( (t.NORMAL = !1), (t.TANGENT = !1), (t.UV1 = !1), (t.NUM_BONE_INFLUENCERS = 0), (t.BonesPerMesh = 0), (t.BONETEXTURE = !1), (t.MORPHTARGETS = !1), (t.MORPHTARGETS_NORMAL = !1), (t.MORPHTARGETS_TANGENT = !1), (t.MORPHTARGETS_UV = !1), (t.NUM_MORPH_INFLUENCERS = 0), (t.IMAGEPROCESSING = !1), (t.VIGNETTE = !1), (t.VIGNETTEBLENDMODEMULTIPLY = !1), (t.VIGNETTEBLENDMODEOPAQUE = !1), (t.TONEMAPPING = !1), (t.TONEMAPPING_ACES = !1), (t.CONTRAST = !1), (t.EXPOSURE = !1), (t.COLORCURVES = !1), (t.COLORGRADING = !1), (t.COLORGRADING3D = !1), (t.SAMPLER3DGREENDEPTH = !1), (t.SAMPLER3DBGRMAP = !1), (t.IMAGEPROCESSINGPOSTPROCESS = !1), (t.BUMPDIRECTUV = 0), t.rebuild(), t ); } return ( Object(h.d)(t, e), (t.prototype.setValue = function (e, t) { void 0 === this[e] && this._keys.push(e), (this[e] = t); }), t ); })(Dr.a), js = (function (e) { function t(n, i, r) { void 0 === r && (r = {}); var s = e.call(this, n, i || ue.a.LastCreatedScene) || this; return ( (s._buildId = t._BuildIdGenerator++), (s._buildWasSuccessful = !1), (s._cachedWorldViewMatrix = new a.a()), (s._cachedWorldViewProjectionMatrix = new a.a()), (s._optimizers = new Array()), (s._animationFrame = -1), (s.BJSNODEMATERIALEDITOR = s._getGlobalNodeMaterialEditor()), (s.editorData = null), (s.ignoreAlpha = !1), (s.maxSimultaneousLights = 4), (s.onBuildObservable = new o.c()), (s._vertexOutputNodes = new Array()), (s._fragmentOutputNodes = new Array()), (s.attachedBlocks = new Array()), (s._options = Object(h.a)({ emitComments: !1 }, r)), s._attachImageProcessingConfiguration(null), s ); } return ( Object(h.d)(t, e), (t.prototype._getGlobalNodeMaterialEditor = function () { return "undefined" != typeof NODEEDITOR ? NODEEDITOR : "undefined" != typeof BABYLON && void 0 !== BABYLON.NodeEditor ? BABYLON : void 0; }), Object.defineProperty(t.prototype, "options", { get: function () { return this._options; }, set: function (e) { this._options = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, set: function (e) { this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty(); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "NodeMaterial"; }), (t.prototype._attachImageProcessingConfiguration = function (e) { var t = this; e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), (this._imageProcessingConfiguration = e || this.getScene().imageProcessingConfiguration), this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(function () { t._markAllSubMeshesAsImageProcessingDirty(); }))); }), (t.prototype.getBlockByName = function (e) { for (var t = 0, n = this.attachedBlocks; t < n.length; t++) { var i = n[t]; if (i.name === e) return i; } return null; }), (t.prototype.getBlockByPredicate = function (e) { for (var t = 0, n = this.attachedBlocks; t < n.length; t++) { var i = n[t]; if (e(i)) return i; } return null; }), (t.prototype.getInputBlockByPredicate = function (e) { for (var t = 0, n = this.attachedBlocks; t < n.length; t++) { var i = n[t]; if (i.isInput && e(i)) return i; } return null; }), (t.prototype.getInputBlocks = function () { for (var e = [], t = 0, n = this.attachedBlocks; t < n.length; t++) { var i = n[t]; i.isInput && e.push(i); } return e; }), (t.prototype.registerOptimizer = function (e) { if (!(this._optimizers.indexOf(e) > -1)) return this._optimizers.push(e), this; }), (t.prototype.unregisterOptimizer = function (e) { var t = this._optimizers.indexOf(e); if (-1 !== t) return this._optimizers.splice(t, 1), this; }), (t.prototype.addOutputNode = function (e) { if (null === e.target) throw "This node is not meant to be an output node. You may want to explicitly set its target value."; return 0 != (e.target & ps.Vertex) && this._addVertexOutputNode(e), 0 != (e.target & ps.Fragment) && this._addFragmentOutputNode(e), this; }), (t.prototype.removeOutputNode = function (e) { return null === e.target || (0 != (e.target & ps.Vertex) && this._removeVertexOutputNode(e), 0 != (e.target & ps.Fragment) && this._removeFragmentOutputNode(e)), this; }), (t.prototype._addVertexOutputNode = function (e) { if (-1 === this._vertexOutputNodes.indexOf(e)) return (e.target = ps.Vertex), this._vertexOutputNodes.push(e), this; }), (t.prototype._removeVertexOutputNode = function (e) { var t = this._vertexOutputNodes.indexOf(e); if (-1 !== t) return this._vertexOutputNodes.splice(t, 1), this; }), (t.prototype._addFragmentOutputNode = function (e) { if (-1 === this._fragmentOutputNodes.indexOf(e)) return (e.target = ps.Fragment), this._fragmentOutputNodes.push(e), this; }), (t.prototype._removeFragmentOutputNode = function (e) { var t = this._fragmentOutputNodes.indexOf(e); if (-1 !== t) return this._fragmentOutputNodes.splice(t, 1), this; }), (t.prototype.needAlphaBlending = function () { return !this.ignoreAlpha && (this.alpha < 1 || (this._sharedData && this._sharedData.hints.needAlphaBlending)); }), (t.prototype.needAlphaTesting = function () { return this._sharedData && this._sharedData.hints.needAlphaTesting; }), (t.prototype._initializeBlock = function (e, t, n) { if ((e.initialize(t), e.autoConfigure(this), (e._preparationId = this._buildId), -1 === this.attachedBlocks.indexOf(e))) { if (e.isUnique) for (var i = e.getClassName(), r = 0, o = this.attachedBlocks; r < o.length; r++) { if (o[r].getClassName() === i) throw "Cannot have multiple blocks of type " + i + " in the same NodeMaterial"; } this.attachedBlocks.push(e); } for (var a = 0, s = e.inputs; a < s.length; a++) { var c = s[a]; c.associatedVariableName = ""; var l = c.connectedPoint; if (l) { var u = l.ownerBlock; u !== e && ((u.target === ps.VertexAndFragment || (t.target === ps.Fragment && u.target === ps.Vertex && u._preparationId !== this._buildId)) && n.push(u), this._initializeBlock(u, t, n)); } } for (var h = 0, d = e.outputs; h < d.length; h++) { d[h].associatedVariableName = ""; } }), (t.prototype._resetDualBlocks = function (e, t) { e.target === ps.VertexAndFragment && (e.buildId = t); for (var n = 0, i = e.inputs; n < i.length; n++) { var r = i[n].connectedPoint; if (r) { var o = r.ownerBlock; o !== e && this._resetDualBlocks(o, t); } } }), (t.prototype.removeBlock = function (e) { var t = this.attachedBlocks.indexOf(e); t > -1 && this.attachedBlocks.splice(t, 1), e.isFinalMerger && this.removeOutputNode(e); }), (t.prototype.build = function (e) { void 0 === e && (e = !1), (this._buildWasSuccessful = !1); var n = this.getScene().getEngine(); if (0 === this._vertexOutputNodes.length) throw "You must define at least one vertexOutputNode"; if (0 === this._fragmentOutputNodes.length) throw "You must define at least one fragmentOutputNode"; (this._vertexCompilationState = new Ds()), (this._vertexCompilationState.supportUniformBuffers = n.supportsUniformBuffers), (this._vertexCompilationState.target = ps.Vertex), (this._fragmentCompilationState = new Ds()), (this._fragmentCompilationState.supportUniformBuffers = n.supportsUniformBuffers), (this._fragmentCompilationState.target = ps.Fragment), (this._sharedData = new Rs()), (this._vertexCompilationState.sharedData = this._sharedData), (this._fragmentCompilationState.sharedData = this._sharedData), (this._sharedData.buildId = this._buildId), (this._sharedData.emitComments = this._options.emitComments), (this._sharedData.verbose = e), (this._sharedData.scene = this.getScene()); for (var i = [], r = [], o = 0, a = this._vertexOutputNodes; o < a.length; o++) { var s = a[o]; i.push(s), this._initializeBlock(s, this._vertexCompilationState, r); } for (var c = 0, l = this._fragmentOutputNodes; c < l.length; c++) { var u = l[c]; r.push(u), this._initializeBlock(u, this._fragmentCompilationState, i); } this.optimize(); for (var h = 0, d = i; h < d.length; h++) { (s = d[h]).build(this._vertexCompilationState, i); } (this._fragmentCompilationState.uniforms = this._vertexCompilationState.uniforms.slice(0)), (this._fragmentCompilationState._uniformDeclaration = this._vertexCompilationState._uniformDeclaration), (this._fragmentCompilationState._constantDeclaration = this._vertexCompilationState._constantDeclaration), (this._fragmentCompilationState._vertexState = this._vertexCompilationState); for (var p = 0, f = r; p < f.length; p++) { u = f[p]; this._resetDualBlocks(u, this._buildId - 1); } for (var m = 0, g = r; m < g.length; m++) { (u = g[m]).build(this._fragmentCompilationState, r); } this._vertexCompilationState.finalize(this._vertexCompilationState), this._fragmentCompilationState.finalize(this._fragmentCompilationState), (this._buildId = t._BuildIdGenerator++), this._sharedData.emitErrors(), (this._buildWasSuccessful = !0), this.onBuildObservable.notifyObservers(this); for (var b = 0, _ = this.getScene().meshes; b < _.length; b++) { var v = _[b]; if (v.subMeshes) for (var y = 0, C = v.subMeshes; y < C.length; y++) { var P = C[y]; if (P.getMaterial() === this && P._materialDefines) { var x = P._materialDefines; x.markAllAsDirty(), x.reset(); } } } }), (t.prototype.optimize = function () { for (var e = 0, t = this._optimizers; e < t.length; e++) { t[e].optimize(this._vertexOutputNodes, this._fragmentOutputNodes); } }), (t.prototype._prepareDefinesForAttributes = function (e, t) { var n = t.NORMAL, i = t.TANGENT, r = t.UV1; (t.NORMAL = e.isVerticesDataPresent(wn.b.NormalKind)), (t.TANGENT = e.isVerticesDataPresent(wn.b.TangentKind)), (t.UV1 = e.isVerticesDataPresent(wn.b.UVKind)), (n === t.NORMAL && i === t.TANGENT && r === t.UV1) || t.markAsAttributesDirty(); }), (t.prototype.isReadyForSubMesh = function (e, t, n) { var i = this; if ((void 0 === n && (n = !1), !this._buildWasSuccessful)) return !1; var r = this.getScene(); if (this._sharedData.animatedInputs) { var o = r.getFrameId(); if (this._animationFrame !== o) { for (var a = 0, s = this._sharedData.animatedInputs; a < s.length; a++) { s[a].animate(r); } this._animationFrame = o; } } if (t.effect && this.isFrozen && t.effect._wasPreviouslyReady) return !0; t._materialDefines || (t._materialDefines = new zs()); var c = t._materialDefines; if (!this.checkReadyOnEveryCall && t.effect && c._renderId === r.getRenderId()) return !0; var l = r.getEngine(); if ( (this._prepareDefinesForAttributes(e, c), this._sharedData.blockingBlocks.some(function (t) { return !t.isReady(e, i, c, n); })) ) return !1; if ( (this._sharedData.blocksWithDefines.forEach(function (t) { t.initializeDefines(e, i, c, n); }), this._sharedData.blocksWithDefines.forEach(function (t) { t.prepareDefines(e, i, c, n); }), c.isDirty) ) { c.markAsProcessed(), (this._vertexCompilationState.compilationString = this._vertexCompilationState._builtCompilationString), (this._fragmentCompilationState.compilationString = this._fragmentCompilationState._builtCompilationString), this._sharedData.repeatableContentBlocks.forEach(function (t) { t.replaceRepeatableContent(i._vertexCompilationState, i._fragmentCompilationState, e, c); }); var u = []; this._sharedData.dynamicUniformBlocks.forEach(function (e) { e.updateUniformsAndSamples(i._vertexCompilationState, i, c, u); }); var h = this._vertexCompilationState.uniforms; this._fragmentCompilationState.uniforms.forEach(function (e) { -1 === h.indexOf(e) && h.push(e); }); var d = this._vertexCompilationState.samplers; this._fragmentCompilationState.samplers.forEach(function (e) { -1 === d.indexOf(e) && d.push(e); }); var p = new jr.a(); this._sharedData.blocksWithFallbacks.forEach(function (t) { t.provideFallbacks(e, p); }); var f = t.effect, m = c.toString(), g = l.createEffect( { vertex: "nodeMaterial" + this._buildId, fragment: "nodeMaterial" + this._buildId, vertexSource: this._vertexCompilationState.compilationString, fragmentSource: this._fragmentCompilationState.compilationString, }, { attributes: this._vertexCompilationState.attributes, uniformsNames: h, uniformBuffersNames: u, samplers: d, defines: m, fallbacks: p, onCompiled: this.onCompiled, onError: this.onError, indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights, maxSimultaneousMorphTargets: c.NUM_MORPH_INFLUENCERS }, }, l ); g && (this.allowShaderHotSwapping && f && !g.isReady() ? ((g = f), c.markAsUnprocessed()) : (r.resetCachedMaterial(), t.setEffect(g, c))); } return !(!t.effect || !t.effect.isReady()) && ((c._renderId = r.getRenderId()), (t.effect._wasPreviouslyReady = !0), !0); }), Object.defineProperty(t.prototype, "compiledShaders", { get: function () { return "// Vertex shader\r\n" + this._vertexCompilationState.compilationString + "\r\n\r\n// Fragment shader\r\n" + this._fragmentCompilationState.compilationString; }, enumerable: !0, configurable: !0, }), (t.prototype.bindOnlyWorldMatrix = function (e) { var t = this.getScene(); if (this._activeEffect) { var n = this._sharedData.hints; n.needWorldViewMatrix && e.multiplyToRef(t.getViewMatrix(), this._cachedWorldViewMatrix), n.needWorldViewProjectionMatrix && e.multiplyToRef(t.getTransformMatrix(), this._cachedWorldViewProjectionMatrix); for (var i = 0, r = this._sharedData.inputBlocks; i < r.length; i++) { r[i]._transmitWorld(this._activeEffect, e, this._cachedWorldViewMatrix, this._cachedWorldViewProjectionMatrix); } } }), (t.prototype.bindForSubMesh = function (e, t, n) { var i = this.getScene(), r = n.effect; if (r) { if (((this._activeEffect = r), this.bindOnlyWorldMatrix(e), this._mustRebind(i, r, t.visibility))) { var o = this._sharedData; if (r && i.getCachedEffect() !== r) { for (var a = 0, s = o.bindableBlocks; a < s.length; a++) { s[a].bind(r, this, t); } for (var c = 0, l = o.inputBlocks; c < l.length; c++) { l[c]._transmit(r, i); } } } this._afterBind(t, this._activeEffect); } }), (t.prototype.getActiveTextures = function () { var t = e.prototype.getActiveTextures.call(this); return ( this._sharedData && t.push.apply( t, this._sharedData.textureBlocks .filter(function (e) { return e.texture; }) .map(function (e) { return e.texture; }) ), t ); }), (t.prototype.getTextureBlocks = function () { return this._sharedData ? this._sharedData.textureBlocks : []; }), (t.prototype.hasTexture = function (t) { if (e.prototype.hasTexture.call(this, t)) return !0; if (!this._sharedData) return !1; for (var n = 0, i = this._sharedData.textureBlocks; n < i.length; n++) { if (i[n].texture === t) return !0; } return !1; }), (t.prototype.dispose = function (t, n, i) { if (n) for ( var r = 0, o = this._sharedData.textureBlocks .filter(function (e) { return e.texture; }) .map(function (e) { return e.texture; }); r < o.length; r++ ) { o[r].dispose(); } for (var a = 0, s = this.attachedBlocks; a < s.length; a++) { s[a].dispose(); } this.onBuildObservable.clear(), e.prototype.dispose.call(this, t, n, i); }), (t.prototype._createNodeEditor = function () { (this.BJSNODEMATERIALEDITOR = this.BJSNODEMATERIALEDITOR || this._getGlobalNodeMaterialEditor()), this.BJSNODEMATERIALEDITOR.NodeEditor.Show({ nodeMaterial: this }); }), (t.prototype.edit = function (e) { var n = this; return new Promise(function (i, r) { if (void 0 === n.BJSNODEMATERIALEDITOR) { var o = e && e.editorURL ? e.editorURL : t.EditorURL; $e.b.LoadScript(o, function () { n._createNodeEditor(), i(); }); } else n._createNodeEditor(), i(); }); }), (t.prototype.clear = function () { (this._vertexOutputNodes = []), (this._fragmentOutputNodes = []), (this.attachedBlocks = []); }), (t.prototype.setToDefault = function () { this.clear(), (this.editorData = null); var e = new ks("Position"); e.setAsAttribute("position"); var t = new ks("World"); t.setAsSystemValue(BABYLON.NodeMaterialSystemValues.World); var n = new ws("WorldPos"); e.connectTo(n), t.connectTo(n); var i = new ks("ViewProjection"); i.setAsSystemValue(BABYLON.NodeMaterialSystemValues.ViewProjection); var r = new ws("WorldPos * ViewProjectionTransform"); n.connectTo(r), i.connectTo(r); var o = new Ls("VertexOutput"); r.connectTo(o); var a = new ks("color"); a.value = new s.b(0.8, 0.8, 0.8, 1); var c = new Ns("FragmentOutput"); a.connectTo(c), this.addOutputNode(o), this.addOutputNode(c); }), (t.prototype.loadAsync = function (e) { var t = this; return this.getScene() ._loadFileAsync(e) .then(function (e) { var n = JSON.parse(e); t.loadFromSerialization(n, ""); }); }), (t.prototype._gatherBlocks = function (e, t) { if (-1 === t.indexOf(e)) { t.push(e); for (var n = 0, i = e.inputs; n < i.length; n++) { var r = i[n].connectedPoint; if (r) { var o = r.ownerBlock; o !== e && this._gatherBlocks(o, t); } } } }), (t.prototype.generateCode = function () { for (var e = [], t = [], n = [], i = 0, r = this._vertexOutputNodes; i < r.length; i++) { var o = r[i]; this._gatherBlocks(o, t); } for (var a = [], s = 0, c = this._fragmentOutputNodes; s < c.length; s++) { o = c[s]; this._gatherBlocks(o, a); } for (var l = 'var nodeMaterial = new BABYLON.NodeMaterial("' + (this.name || "node material") + '");\r\n', u = 0, h = t; u < h.length; u++) { (P = h[u]).isInput && -1 === e.indexOf(P) && (l += P._dumpCode(n, e)); } for (var d = 0, p = a; d < p.length; d++) { (P = p[d]).isInput && -1 === e.indexOf(P) && (l += P._dumpCode(n, e)); } (e = []), (l += "\r\n// Connections\r\n"); for (var f = 0, m = this._vertexOutputNodes; f < m.length; f++) { l += (P = m[f])._dumpCodeForOutputConnections(e); } for (var g = 0, b = this._fragmentOutputNodes; g < b.length; g++) { l += (P = b[g])._dumpCodeForOutputConnections(e); } l += "\r\n// Output nodes\r\n"; for (var _ = 0, v = this._vertexOutputNodes; _ < v.length; _++) { l += "nodeMaterial.addOutputNode(" + (P = v[_])._codeVariableName + ");\r\n"; } for (var y = 0, C = this._fragmentOutputNodes; y < C.length; y++) { var P; l += "nodeMaterial.addOutputNode(" + (P = C[y])._codeVariableName + ");\r\n"; } return (l += "nodeMaterial.build();\r\n"); }), (t.prototype.serialize = function (e) { var t = e ? {} : He.a.Serialize(this); t.editorData = JSON.parse(JSON.stringify(this.editorData)); var n = []; if (e) n = e; else { (t.customType = "BABYLON.NodeMaterial"), (t.outputNodes = []); for (var i = 0, r = this._vertexOutputNodes; i < r.length; i++) { var o = r[i]; this._gatherBlocks(o, n), t.outputNodes.push(o.uniqueId); } for (var a = 0, s = this._fragmentOutputNodes; a < s.length; a++) { o = s[a]; this._gatherBlocks(o, n), -1 === t.outputNodes.indexOf(o.uniqueId) && t.outputNodes.push(o.uniqueId); } } t.blocks = []; for (var c = 0, l = n; c < l.length; c++) { var u = l[c]; t.blocks.push(u.serialize()); } if (!e) for (var h = 0, d = this.attachedBlocks; h < d.length; h++) { u = d[h]; -1 === n.indexOf(u) && t.blocks.push(u.serialize()); } return t; }), (t.prototype._restoreConnections = function (e, t, n) { for (var i = 0, r = e.outputs; i < r.length; i++) for (var o = r[i], a = 0, s = t.blocks; a < s.length; a++) for (var c = s[a], l = n[c.id], u = 0, h = c.inputs; u < h.length; u++) { var d = h[u]; if (n[d.targetBlockId] !== e || d.targetConnectionName !== o.name); else { var p = l.getInputByName(d.inputName); if (!p || p.isConnected) continue; o.connectTo(p, !0), this._restoreConnections(l, t, n); } } }), (t.prototype.loadFromSerialization = function (e, t) { void 0 === t && (t = ""), this.clear(); for (var n = {}, i = 0, r = e.blocks; i < r.length; i++) { var o = r[i], a = c.a.GetClass(o.customType); if (a) (l = new a())._deserialize(o, this.getScene(), t), (n[o.id] = l), this.attachedBlocks.push(l); } for (var s = 0; s < e.blocks.length; s++) { var l; (l = n[e.blocks[s].id]).inputs.length || this._restoreConnections(l, e, n); } for (var u = 0, h = e.outputNodes; u < h.length; u++) { var d = h[u]; this.addOutputNode(n[d]); } if (e.locations || (e.editorData && e.editorData.locations)) { for (var p = e.locations || e.editorData.locations, f = 0, m = p; f < m.length; f++) { var g = m[f]; n[g.blockId] && (g.blockId = n[g.blockId].uniqueId); } e.locations ? (this.editorData = { locations: p }) : ((this.editorData = e.editorData), (this.editorData.locations = p)); var b = []; for (var _ in n) b[_] = n[_].uniqueId; this.editorData.map = b; } }), (t.Parse = function (e, n, i) { void 0 === i && (i = ""); var r = He.a.Parse( function () { return new t(e.name, n); }, e, n, i ); return r.loadFromSerialization(e, i), r.build(), r; }), (t.ParseFromFileAsync = function (e, n, i) { var r = new t(e, i); return new Promise(function (e, t) { return r .loadAsync(n) .then(function () { return e(r); }) .catch(t); }); }), (t.ParseFromSnippetAsync = function (e, n, i) { var r = this; return ( void 0 === i && (i = ""), new Promise(function (o, a) { var s = new ls.a(); s.addEventListener("readystatechange", function () { if (4 == s.readyState) if (200 == s.status) { var r = JSON.parse(JSON.parse(s.responseText).jsonPayload), c = JSON.parse(r.nodeMaterial), l = He.a.Parse( function () { return new t(e, n); }, c, n, i ); l.loadFromSerialization(c); try { l.build(!0), o(l); } catch (e) { a(e); } } else a("Unable to load the snippet " + e); }), s.open("GET", r.SnippetUrl + "/" + e.replace("#", "/")), s.send(); }) ); }), (t.CreateDefault = function (e, n) { var i = new t(e, n); return i.setToDefault(), i.build(), i; }), (t._BuildIdGenerator = 0), (t.EditorURL = "https://unpkg.com/babylonjs-node-editor@" + ue.a.Version + "/babylon.nodeEditor.js"), (t.SnippetUrl = "https://snippet.babylonjs.com"), t ); })(Rr.a); c.a.RegisteredTypes["BABYLON.NodeMaterial"] = js; var Bs = (function (e) { function t(t) { var n = e.call(this, t, ps.Vertex) || this; return ( n.registerInput("matricesIndices", fs.Vector4), n.registerInput("matricesWeights", fs.Vector4), n.registerInput("matricesIndicesExtra", fs.Vector4, !0), n.registerInput("matricesWeightsExtra", fs.Vector4, !0), n.registerInput("world", fs.Matrix), n.registerOutput("output", fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.initialize = function (e) { e._excludeVariableName("boneSampler"), e._excludeVariableName("boneTextureWidth"), e._excludeVariableName("mBones"), e._excludeVariableName("BonesPerMesh"); }), (t.prototype.getClassName = function () { return "BonesBlock"; }), Object.defineProperty(t.prototype, "matricesIndices", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "matricesWeights", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "matricesIndicesExtra", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "matricesWeightsExtra", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "world", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.matricesIndices.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "matricesIndices" === e.name; }); t || (t = new ks("matricesIndices")).setAsAttribute("matricesIndices"), t.output.connectTo(this.matricesIndices); } if (!this.matricesWeights.isConnected) { var n = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "matricesWeights" === e.name; }); n || (n = new ks("matricesWeights")).setAsAttribute("matricesWeights"), n.output.connectTo(this.matricesWeights); } if (!this.world.isConnected) { var i = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.World; }); i || (i = new ks("world")).setAsSystemValue(gs.World), i.output.connectTo(this.world); } }), (t.prototype.provideFallbacks = function (e, t) { e && e.useBones && e.computeBonesUsingShaders && e.skeleton && t.addCPUSkinningFallback(0, e); }), (t.prototype.bind = function (e, t, n) { Ir.a.BindBonesParameters(n, e); }), (t.prototype.prepareDefines = function (e, t, n) { n._areAttributesDirty && Ir.a.PrepareDefinesForBones(e, n); }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t), t.sharedData.blocksWithFallbacks.push(this), t.sharedData.bindableBlocks.push(this), t.sharedData.blocksWithDefines.push(this), t.uniforms.push("boneTextureWidth"), t.uniforms.push("mBones"), t.samplers.push("boneSampler"); var n = "//" + this.name; t._emitFunctionFromInclude("bonesDeclaration", n, { removeAttributes: !0, removeUniforms: !1, removeVaryings: !0, removeIfDef: !1 }); var i = t._getFreeVariableName("influence"); t.compilationString += t._emitCodeFromInclude("bonesVertex", n, { replaceStrings: [ { search: /finalWorld=finalWorld\*influence;/, replace: "" }, { search: /influence/gm, replace: i }, ], }); var r = this._outputs[0], o = this.world; return ( (t.compilationString += "#if NUM_BONE_INFLUENCERS>0\r\n"), (t.compilationString += this._declareOutput(r, t) + " = " + o.associatedVariableName + " * " + i + ";\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += this._declareOutput(r, t) + " = " + o.associatedVariableName + ";\r\n"), (t.compilationString += "#endif\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.BonesBlock"] = Bs; var Vs = (function (e) { function t(t) { var n = e.call(this, t, ps.Vertex) || this; return ( n.registerInput("world0", fs.Vector4), n.registerInput("world1", fs.Vector4), n.registerInput("world2", fs.Vector4), n.registerInput("world3", fs.Vector4), n.registerInput("world", fs.Matrix, !0), n.registerOutput("output", fs.Matrix), n.registerOutput("instanceID", fs.Float), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "InstancesBlock"; }), Object.defineProperty(t.prototype, "world0", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "world1", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "world2", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "world3", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "world", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "instanceID", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.world0.connectedPoint) { var t = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "world0" === e.name; }); t || (t = new ks("world0")).setAsAttribute("world0"), t.output.connectTo(this.world0); } if (!this.world1.connectedPoint) { var n = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "world1" === e.name; }); n || (n = new ks("world1")).setAsAttribute("world1"), n.output.connectTo(this.world1); } if (!this.world2.connectedPoint) { var i = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "world2" === e.name; }); i || (i = new ks("world2")).setAsAttribute("world2"), i.output.connectTo(this.world2); } if (!this.world3.connectedPoint) { var r = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "world3" === e.name; }); r || (r = new ks("world3")).setAsAttribute("world3"), r.output.connectTo(this.world3); } if (!this.world.connectedPoint) { var o = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "world" === e.name; }); o || (o = new ks("world")).setAsSystemValue(gs.World), o.output.connectTo(this.world); } this.world.define = "!INSTANCES"; }), (t.prototype.prepareDefines = function (e, t, n, i) { void 0 === i && (i = !1); var r = !1; n.INSTANCES !== i && (n.setValue("INSTANCES", i), (r = !0)), r && n.markAsUnprocessed(); }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t), t.sharedData.blocksWithDefines.push(this); var n = this._outputs[0], i = this._outputs[1], r = this.world0, o = this.world1, a = this.world2, s = this.world3; return ( (t.compilationString += "#ifdef INSTANCES\r\n"), (t.compilationString += this._declareOutput(n, t) + " = mat4(" + r.associatedVariableName + ", " + o.associatedVariableName + ", " + a.associatedVariableName + ", " + s.associatedVariableName + ");\r\n"), (t.compilationString += this._declareOutput(i, t) + " = float(gl_InstanceID);\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += this._declareOutput(n, t) + " = " + this.world.associatedVariableName + ";\r\n"), (t.compilationString += this._declareOutput(i, t) + " = 0.0;\r\n"), (t.compilationString += "#endif\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.InstancesBlock"] = Vs; var Gs = (function (e) { function t(t) { var n = e.call(this, t, ps.Vertex) || this; return ( n.registerInput("position", fs.Vector3), n.registerInput("normal", fs.Vector3), n.registerInput("tangent", fs.Vector3), n.registerInput("uv", fs.Vector2), n.registerOutput("positionOutput", fs.Vector3), n.registerOutput("normalOutput", fs.Vector3), n.registerOutput("tangentOutput", fs.Vector3), n.registerOutput("uvOutput", fs.Vector2), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "MorphTargetsBlock"; }), Object.defineProperty(t.prototype, "position", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "normal", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "tangent", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "uv", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "positionOutput", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "normalOutput", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "tangentOutput", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "uvOutput", { get: function () { return this._outputs[3]; }, enumerable: !0, configurable: !0, }), (t.prototype.initialize = function (e) { e._excludeVariableName("morphTargetInfluences"); }), (t.prototype.autoConfigure = function (e) { if (!this.position.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "position" === e.name; }); t || (t = new ks("position")).setAsAttribute(), t.output.connectTo(this.position); } if (!this.normal.isConnected) { var n = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "normal" === e.name; }); n || (n = new ks("normal")).setAsAttribute("normal"), n.output.connectTo(this.normal); } if (!this.tangent.isConnected) { var i = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "tangent" === e.name; }); i || (i = new ks("tangent")).setAsAttribute("tangent"), i.output.connectTo(this.tangent); } if (!this.uv.isConnected) { var r = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "uv" === e.name; }); r || (r = new ks("uv")).setAsAttribute("uv"), r.output.connectTo(this.uv); } }), (t.prototype.prepareDefines = function (e, t, n) { n._areAttributesDirty && Ir.a.PrepareDefinesForMorphTargets(e, n); }), (t.prototype.bind = function (e, t, n) { n && n.morphTargetManager && n.morphTargetManager.numInfluencers > 0 && Ir.a.BindMorphTargetParameters(n, e); }), (t.prototype.replaceRepeatableContent = function (e, t, n, i) { for ( var r = this.position, o = this.normal, a = this.tangent, s = this.uv, c = this.positionOutput, l = this.normalOutput, u = this.tangentOutput, h = this.uvOutput, d = e, p = i.NUM_MORPH_INFLUENCERS, f = n.morphTargetManager, m = f && f.supportsNormals && i.NORMAL, g = f && f.supportsTangents && i.TANGENT, b = f && f.supportsUVs && i.UV1, _ = "", v = 0; v < p; v++ ) (_ += "#ifdef MORPHTARGETS\r\n"), (_ += c.associatedVariableName + " += (position" + v + " - " + r.associatedVariableName + ") * morphTargetInfluences[" + v + "];\r\n"), m && ((_ += "#ifdef MORPHTARGETS_NORMAL\r\n"), (_ += l.associatedVariableName + " += (normal" + v + " - " + o.associatedVariableName + ") * morphTargetInfluences[" + v + "];\r\n"), (_ += "#endif\r\n")), g && ((_ += "#ifdef MORPHTARGETS_TANGENT\r\n"), (_ += u.associatedVariableName + ".xyz += (tangent" + v + " - " + a.associatedVariableName + ".xyz) * morphTargetInfluences[" + v + "];\r\n"), (_ += "#endif\r\n")), b && ((_ += "#ifdef MORPHTARGETS_UV\r\n"), (_ += h.associatedVariableName + ".xy += (uv_" + v + " - " + s.associatedVariableName + ".xy) * morphTargetInfluences[" + v + "];\r\n"), (_ += "#endif\r\n")), (_ += "#endif\r\n"); if (((d.compilationString = d.compilationString.replace(this._repeatableContentAnchor, _)), p > 0)) for (v = 0; v < p; v++) d.attributes.push(wn.b.PositionKind + v), m && d.attributes.push(wn.b.NormalKind + v), g && d.attributes.push(wn.b.TangentKind + v), b && d.attributes.push(wn.b.UVKind + "_" + v); }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t), t.sharedData.blocksWithDefines.push(this), t.sharedData.bindableBlocks.push(this), t.sharedData.repeatableContentBlocks.push(this); var n = this.position, i = this.normal, r = this.tangent, o = this.uv, a = this.positionOutput, s = this.normalOutput, c = this.tangentOutput, l = this.uvOutput, u = "//" + this.name; return ( t.uniforms.push("morphTargetInfluences"), t._emitFunctionFromInclude("morphTargetsVertexGlobalDeclaration", u), t._emitFunctionFromInclude("morphTargetsVertexDeclaration", u, { repeatKey: "maxSimultaneousMorphTargets" }), (t.compilationString += this._declareOutput(a, t) + " = " + n.associatedVariableName + ";\r\n"), (t.compilationString += "#ifdef NORMAL\r\n"), (t.compilationString += this._declareOutput(s, t) + " = " + i.associatedVariableName + ";\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += this._declareOutput(s, t) + " = vec3(0., 0., 0.);\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef TANGENT\r\n"), (t.compilationString += this._declareOutput(c, t) + " = " + r.associatedVariableName + ";\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += this._declareOutput(c, t) + " = vec3(0., 0., 0.);\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef UV1\r\n"), (t.compilationString += this._declareOutput(l, t) + " = " + o.associatedVariableName + ";\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += this._declareOutput(l, t) + " = vec2(0., 0.);\r\n"), (t.compilationString += "#endif\r\n"), (this._repeatableContentAnchor = t._repeatableContentAnchor), (t.compilationString += this._repeatableContentAnchor), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.MorphTargetsBlock"] = Gs; var Us = (function (e) { function t(t) { var n = e.call(this, t, ps.Vertex) || this; return n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex), n.registerOutput("direction", fs.Vector3), n.registerOutput("color", fs.Color3), n.registerOutput("intensity", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "LightInformationBlock"; }), Object.defineProperty(t.prototype, "worldPosition", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "direction", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "color", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "intensity", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), (t.prototype.bind = function (e, t, n) { if (n) { this.light && this.light.isDisposed && (this.light = null); var i = this.light, r = t.getScene(); if ((!i && r.lights.length && (i = r.lights[0]), !i || !i.isEnabled)) return e.setFloat3(this._lightDataUniformName, 0, 0, 0), void e.setFloat4(this._lightColorUniformName, 0, 0, 0, 0); i.transferToNodeMaterialEffect(e, this._lightDataUniformName), e.setColor4(this._lightColorUniformName, i.diffuse, i.intensity); } }), (t.prototype.prepareDefines = function (e, t, n) { if (n._areLightsDirty) { var i = this.light; n.setValue(this._lightTypeDefineName, !!(i && i instanceof Ca.a)); } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t), t.sharedData.bindableBlocks.push(this), t.sharedData.blocksWithDefines.push(this); var n = this.direction, i = this.color, r = this.intensity; return ( (this._lightDataUniformName = t._getFreeVariableName("lightData")), (this._lightColorUniformName = t._getFreeVariableName("lightColor")), (this._lightTypeDefineName = t._getFreeDefineName("LIGHTPOINTTYPE")), t._emitUniformFromString(this._lightDataUniformName, "vec3"), t._emitUniformFromString(this._lightColorUniformName, "vec4"), (t.compilationString += "#ifdef " + this._lightTypeDefineName + "\r\n"), (t.compilationString += this._declareOutput(n, t) + " = normalize(" + this.worldPosition.associatedVariableName + ".xyz - " + this._lightDataUniformName + ");\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += this._declareOutput(n, t) + " = " + this._lightDataUniformName + ";\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += this._declareOutput(i, t) + " = " + this._lightColorUniformName + ".rgb;\r\n"), (t.compilationString += this._declareOutput(r, t) + " = " + this._lightColorUniformName + ".a;\r\n"), this ); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return this.light && (t.lightId = this.light.id), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), t.lightId && (this.light = n.getLightByID(t.lightId)); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.LightInformationBlock"] = Us; var Hs = (function (e) { function t(t) { var n = e.call(this, t, ps.Fragment) || this; return n.registerInput("color", fs.Color4), n.registerOutput("output", fs.Color4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ImageProcessingBlock"; }), Object.defineProperty(t.prototype, "color", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.initialize = function (e) { e._excludeVariableName("exposureLinear"), e._excludeVariableName("contrast"), e._excludeVariableName("vInverseScreenSize"), e._excludeVariableName("vignetteSettings1"), e._excludeVariableName("vignetteSettings2"), e._excludeVariableName("vCameraColorCurveNegative"), e._excludeVariableName("vCameraColorCurveNeutral"), e._excludeVariableName("vCameraColorCurvePositive"), e._excludeVariableName("txColorTransform"), e._excludeVariableName("colorTransformSettings"); }), (t.prototype.isReady = function (e, t, n) { return !(n._areImageProcessingDirty && t.imageProcessingConfiguration && !t.imageProcessingConfiguration.isReady()); }), (t.prototype.prepareDefines = function (e, t, n) { n._areImageProcessingDirty && t.imageProcessingConfiguration && t.imageProcessingConfiguration.prepareDefines(n); }), (t.prototype.bind = function (e, t, n) { n && t.imageProcessingConfiguration && t.imageProcessingConfiguration.bind(e); }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t), t.sharedData.blocksWithDefines.push(this), t.sharedData.blockingBlocks.push(this), t.sharedData.bindableBlocks.push(this), t.uniforms.push("exposureLinear"), t.uniforms.push("contrast"), t.uniforms.push("vInverseScreenSize"), t.uniforms.push("vignetteSettings1"), t.uniforms.push("vignetteSettings2"), t.uniforms.push("vCameraColorCurveNegative"), t.uniforms.push("vCameraColorCurveNeutral"), t.uniforms.push("vCameraColorCurvePositive"), t.uniforms.push("txColorTransform"), t.uniforms.push("colorTransformSettings"); var n = this.color, i = this._outputs[0], r = "//" + this.name; return ( t._emitFunctionFromInclude("helperFunctions", r), t._emitFunctionFromInclude("imageProcessingDeclaration", r), t._emitFunctionFromInclude("imageProcessingFunctions", r), n.connectedPoint.type === fs.Color4 || n.connectedPoint.type === fs.Vector4 ? (t.compilationString += this._declareOutput(i, t) + " = " + n.associatedVariableName + ";\r\n") : (t.compilationString += this._declareOutput(i, t) + " = vec4(" + n.associatedVariableName + ", 1.0);\r\n"), (t.compilationString += "#ifdef IMAGEPROCESSINGPOSTPROCESS\r\n"), (t.compilationString += i.associatedVariableName + ".rgb = toLinearSpace(" + n.associatedVariableName + ".rgb);\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += "#ifdef IMAGEPROCESSING\r\n"), (t.compilationString += i.associatedVariableName + ".rgb = toLinearSpace(" + n.associatedVariableName + ".rgb);\r\n"), (t.compilationString += i.associatedVariableName + " = applyImageProcessing(" + i.associatedVariableName + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#endif\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ImageProcessingBlock"] = Hs; n(172), n(173); var Ws = (function (e) { function t(t) { var n = e.call(this, t, ps.Fragment) || this; return ( (n._tangentSpaceParameterName = ""), (n.invertX = !1), (n.invertY = !1), n.registerInput("worldPosition", fs.Vector4, !1), n.registerInput("worldNormal", fs.Vector4, !1), n.registerInput("worldTangent", fs.Vector4, !0), n.registerInput("uv", fs.Vector2, !1), n.registerInput("normalMapColor", fs.Color3, !1), n.registerInput("strength", fs.Float, !1), n.registerOutput("output", fs.Vector4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "PerturbNormalBlock"; }), Object.defineProperty(t.prototype, "worldPosition", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldNormal", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldTangent", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "uv", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "normalMapColor", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "strength", { get: function () { return this._inputs[5]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.prepareDefines = function (e, t, n) { n.setValue("BUMP", !0); }), (t.prototype.bind = function (e, t, n) { t.getScene()._mirroredCameraPosition ? e.setFloat2(this._tangentSpaceParameterName, this.invertX ? 1 : -1, this.invertY ? 1 : -1) : e.setFloat2(this._tangentSpaceParameterName, this.invertX ? -1 : 1, this.invertY ? -1 : 1); }), (t.prototype.autoConfigure = function (e) { if (!this.uv.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "uv" === e.name; }); t || (t = new ks("uv")).setAsAttribute(), t.output.connectTo(this.uv); } if (!this.strength.isConnected) { var n = new ks("strength"); (n.value = 1), n.output.connectTo(this.strength); } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = "//" + this.name, i = this.uv, r = this.worldPosition, o = this.worldNormal, a = this.worldTangent; t.sharedData.blocksWithDefines.push(this), t.sharedData.bindableBlocks.push(this), (this._tangentSpaceParameterName = t._getFreeDefineName("tangentSpaceParameter")), t._emitUniformFromString(this._tangentSpaceParameterName, "vec2"); var s = this.strength.isConnectedToInputBlock && this.strength.connectInputBlock.isConstant ? "" + t._emitFloat(1 / this.strength.connectInputBlock.value) : "1.0 / " + this.strength.associatedVariableName; t._emitExtension("derivatives", "#extension GL_OES_standard_derivatives : enable"); var c = { search: /defined\(TANGENT\)/g, replace: a.isConnected ? "defined(TANGENT)" : "defined(IGNORE)" }; return ( a.isConnected && ((t.compilationString += "vec3 tbnNormal = normalize(" + o.associatedVariableName + ".xyz);\r\n"), (t.compilationString += "vec3 tbnTangent = normalize(" + a.associatedVariableName + ".xyz);\r\n"), (t.compilationString += "vec3 tbnBitangent = cross(tbnNormal, tbnTangent);\r\n"), (t.compilationString += "mat3 vTBN = mat3(tbnTangent, tbnBitangent, tbnNormal);\r\n")), t._emitFunctionFromInclude("bumpFragmentFunctions", n, { replaceStrings: [{ search: /vBumpInfos.y/g, replace: s }, { search: /vTangentSpaceParams/g, replace: this._tangentSpaceParameterName }, { search: /vPositionW/g, replace: r.associatedVariableName + ".xyz" }, c], }), (t.compilationString += this._declareOutput(this.output, t) + " = vec4(0.);\r\n"), (t.compilationString += t._emitCodeFromInclude("bumpFragment", n, { replaceStrings: [ { search: /perturbNormal\(TBN,vBumpUV\+uvOffset\)/g, replace: "perturbNormal(TBN, " + this.normalMapColor.associatedVariableName + ")" }, { search: /vBumpInfos.y/g, replace: s }, { search: /vBumpUV/g, replace: i.associatedVariableName }, { search: /vPositionW/g, replace: r.associatedVariableName + ".xyz" }, { search: /normalW=/g, replace: this.output.associatedVariableName + ".xyz = " }, { search: /normalW/g, replace: o.associatedVariableName + ".xyz" }, c, ], })), this ); }), (t.prototype._dumpPropertiesCode = function () { var e = this._codeVariableName + ".invertX = " + this.invertX + ";\r\n"; return (e += this._codeVariableName + ".invertY = " + this.invertY + ";\r\n"); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.invertX = this.invertX), (t.invertY = this.invertY), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.invertX = t.invertX), (this.invertY = t.invertY); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.PerturbNormalBlock"] = Ws; var Xs = (function (e) { function t(t) { var n = e.call(this, t, ps.Fragment, !0) || this; return n.registerInput("value", fs.Float, !0), n.registerInput("cutoff", fs.Float, !0), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "DiscardBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cutoff", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { return ( e.prototype._buildBlock.call(this, t), (t.sharedData.hints.needAlphaTesting = !0), (t.compilationString += "if (" + this.value.associatedVariableName + " < " + this.cutoff.associatedVariableName + ") discard;\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.DiscardBlock"] = Xs; var Ys = (function (e) { function t(t) { var n = e.call(this, t, ps.Fragment) || this; return n.registerOutput("output", fs.Float, ps.Fragment), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "FrontFacingBlock"; }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { if ((e.prototype._buildBlock.call(this, t), t.target === ps.Vertex)) throw "FrontFacingBlock must only be used in a fragment shader"; var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = gl_FrontFacing ? 1.0 : 0.0;\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.FrontFacingBlock"] = Ys; var Ks = (function (e) { function t(t) { var n = e.call(this, t, ps.Fragment) || this; return ( n.registerInput("input", fs.AutoDetect, !1), n.registerOutput("dx", fs.BasedOnInput), n.registerOutput("dy", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), (n._outputs[1]._typeConnectionSource = n._inputs[0]), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "DerivativeBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dx", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dy", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = this._outputs[1]; return ( t._emitExtension("derivatives", "#extension GL_OES_standard_derivatives : enable"), n.hasEndpoints && (t.compilationString += this._declareOutput(n, t) + " = dFdx(" + this.input.associatedVariableName + ");\r\n"), i.hasEndpoints && (t.compilationString += this._declareOutput(i, t) + " = dFdy(" + this.input.associatedVariableName + ");\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.DerivativeBlock"] = Ks; var Zs = (function (e) { function t(t) { var n = e.call(this, t, ps.VertexAndFragment, !0) || this; return ( n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex), n.registerInput("view", fs.Matrix, !1, ps.Vertex), n.registerInput("input", fs.Color3, !1, ps.Fragment), n.registerInput("fogColor", fs.Color3, !1, ps.Fragment), n.registerOutput("output", fs.Color3, ps.Fragment), n.input.acceptedConnectionPointTypes.push(fs.Color4), n.fogColor.acceptedConnectionPointTypes.push(fs.Color4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "FogBlock"; }), Object.defineProperty(t.prototype, "worldPosition", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "view", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fogColor", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.view.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.View; }); t || (t = new ks("view")).setAsSystemValue(gs.View), t.output.connectTo(this.view); } if (!this.fogColor.isConnected) { var n = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.FogColor; }); n || (n = new ks("fogColor", void 0, fs.Color3)).setAsSystemValue(gs.FogColor), n.output.connectTo(this.fogColor); } }), (t.prototype.prepareDefines = function (e, t, n) { var i = e.getScene(); n.setValue("FOG", t.fogEnabled && Ir.a.GetFogState(e, i)); }), (t.prototype.bind = function (e, t, n) { if (n) { var i = n.getScene(); e.setFloat4(this._fogParameters, i.fogMode, i.fogStart, i.fogEnd, i.fogDensity); } }), (t.prototype._buildBlock = function (t) { if ((e.prototype._buildBlock.call(this, t), t.target === ps.Fragment)) { t.sharedData.blocksWithDefines.push(this), t.sharedData.bindableBlocks.push(this), t._emitFunctionFromInclude("fogFragmentDeclaration", "//" + this.name, { removeUniforms: !0, removeVaryings: !0, removeIfDef: !1, replaceStrings: [{ search: /float CalcFogFactor\(\)/, replace: "float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)" }], }); var n = t._getFreeVariableName("fog"), i = this.input, r = this.fogColor; this._fogParameters = t._getFreeVariableName("fogParameters"); var o = this._outputs[0]; t._emitUniformFromString(this._fogParameters, "vec4"), (t.compilationString += "#ifdef FOG\r\n"), (t.compilationString += "float " + n + " = CalcFogFactor(" + this._fogDistanceName + ", " + this._fogParameters + ");\r\n"), (t.compilationString += this._declareOutput(o, t) + " = " + n + " * " + i.associatedVariableName + ".rgb + (1.0 - " + n + ") * " + r.associatedVariableName + ".rgb;\r\n"), (t.compilationString += "#else\r\n" + this._declareOutput(o, t) + " = " + i.associatedVariableName + ".rgb;\r\n"), (t.compilationString += "#endif\r\n"); } else { var a = this.worldPosition, s = this.view; (this._fogDistanceName = t._getFreeVariableName("vFogDistance")), t._emitVaryingFromString(this._fogDistanceName, "vec3"), (t.compilationString += this._fogDistanceName + " = (" + s.associatedVariableName + " * " + a.associatedVariableName + ").xyz;\r\n"); } return this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.FogBlock"] = Zs; var qs = (function (e) { function t(t) { var n = e.call(this, t, ps.VertexAndFragment) || this; return ( (n._isUnique = !0), n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex), n.registerInput("worldNormal", fs.Vector4, !1, ps.Fragment), n.registerInput("cameraPosition", fs.Vector3, !1, ps.Fragment), n.registerInput("glossiness", fs.Float, !0, ps.Fragment), n.registerInput("glossPower", fs.Float, !0, ps.Fragment), n.registerInput("diffuseColor", fs.Color3, !0, ps.Fragment), n.registerInput("specularColor", fs.Color3, !0, ps.Fragment), n.registerOutput("diffuseOutput", fs.Color3, ps.Fragment), n.registerOutput("specularOutput", fs.Color3, ps.Fragment), n.registerOutput("shadow", fs.Float, ps.Fragment), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "LightBlock"; }), Object.defineProperty(t.prototype, "worldPosition", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldNormal", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraPosition", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "glossiness", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "glossPower", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "diffuseColor", { get: function () { return this._inputs[5]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "specularColor", { get: function () { return this._inputs[6]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "diffuseOutput", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "specularOutput", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadow", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.cameraPosition.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.CameraPosition; }); t || (t = new ks("cameraPosition")).setAsSystemValue(gs.CameraPosition), t.output.connectTo(this.cameraPosition); } }), (t.prototype.prepareDefines = function (e, t, n) { if (n._areLightsDirty) { var i = e.getScene(); if (this.light) { var r = { needNormals: !1, needRebuild: !1, lightmapMode: !1, shadowEnabled: !1, specularEnabled: !1 }; Ir.a.PrepareDefinesForLight(i, e, this.light, this._lightId, n, !0, r), r.needRebuild && n.rebuild(); } else Ir.a.PrepareDefinesForLights(i, e, n, !0, t.maxSimultaneousLights); } }), (t.prototype.updateUniformsAndSamples = function (e, t, n, i) { for (var r = 0; r < t.maxSimultaneousLights && n["LIGHT" + r]; r++) Ir.a.PrepareUniformsAndSamplersForLight(r, e.uniforms, e.samplers, n["PROJECTEDLIGHTTEXTURE" + r], i); }), (t.prototype.bind = function (e, t, n) { if (n) { var i = n.getScene(); this.light ? Ir.a.BindLight(this.light, this._lightId, i, e, !0) : Ir.a.BindLights(i, n, e, !0, t.maxSimultaneousLights); } }), (t.prototype._injectVertexCode = function (e) { var t = this.worldPosition, n = "//" + this.name; this.light ? ((this._lightId = (void 0 !== e.counters.lightCounter ? e.counters.lightCounter : -1) + 1), (e.counters.lightCounter = this._lightId), e._emitFunctionFromInclude(e.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }] }, this._lightId.toString())) : (e._emitFunctionFromInclude(e.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { repeatKey: "maxSimultaneousLights" }), (this._lightId = 0), e.sharedData.dynamicUniformBlocks.push(this)); var i = "v_" + t.associatedVariableName; e._emitVaryingFromString(i, "vec4") && (e.compilationString += i + " = " + t.associatedVariableName + ";\r\n"), this.light ? (e.compilationString += e._emitCodeFromInclude("shadowsVertex", n, { replaceStrings: [ { search: /{X}/g, replace: this._lightId.toString() }, { search: /worldPos/g, replace: t.associatedVariableName }, ], })) : ((e.compilationString += "vec4 worldPos = " + t.associatedVariableName + ";\r\n"), (e.compilationString += e._emitCodeFromInclude("shadowsVertex", n, { repeatKey: "maxSimultaneousLights" }))); }), (t.prototype._buildBlock = function (t) { if ((e.prototype._buildBlock.call(this, t), t.target === ps.Fragment)) { t.sharedData.bindableBlocks.push(this), t.sharedData.blocksWithDefines.push(this); var n = "//" + this.name, i = this.worldPosition; t._emitFunctionFromInclude("helperFunctions", n), t._emitFunctionFromInclude("lightsFragmentFunctions", n, { replaceStrings: [{ search: /vPositionW/g, replace: "v_" + i.associatedVariableName + ".xyz" }] }), t._emitFunctionFromInclude("shadowsFragmentFunctions", n, { replaceStrings: [{ search: /vPositionW/g, replace: "v_" + i.associatedVariableName + ".xyz" }] }), this.light ? t._emitFunctionFromInclude( t.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }] }, this._lightId.toString() ) : t._emitFunctionFromInclude(t.supportUniformBuffers ? "lightUboDeclaration" : "lightFragmentDeclaration", n, { repeatKey: "maxSimultaneousLights" }), 0 === this._lightId && (t._registerTempVariable("viewDirectionW") && (t.compilationString += "vec3 viewDirectionW = normalize(" + this.cameraPosition.associatedVariableName + " - v_" + i.associatedVariableName + ".xyz);\r\n"), (t.compilationString += "lightingInfo info;\r\n"), (t.compilationString += "float shadow = 1.;\r\n"), (t.compilationString += "float glossiness = " + (this.glossiness.isConnected ? this.glossiness.associatedVariableName : "1.0") + " * " + (this.glossPower.isConnected ? this.glossPower.associatedVariableName : "1024.0") + ";\r\n"), (t.compilationString += "vec3 diffuseBase = vec3(0., 0., 0.);\r\n"), (t.compilationString += "vec3 specularBase = vec3(0., 0., 0.);\r\n"), (t.compilationString += "vec3 normalW = " + this.worldNormal.associatedVariableName + ".xyz;\r\n")), this.light ? (t.compilationString += t._emitCodeFromInclude("lightFragment", n, { replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }] })) : (t.compilationString += t._emitCodeFromInclude("lightFragment", n, { repeatKey: "maxSimultaneousLights" })); var r = this.diffuseOutput, o = this.specularOutput; return ( (t.compilationString += this._declareOutput(r, t) + " = diffuseBase" + (this.diffuseColor.isConnected ? " * " + this.diffuseColor.associatedVariableName : "") + ";\r\n"), o.hasEndpoints && (t.compilationString += this._declareOutput(o, t) + " = specularBase" + (this.specularColor.isConnected ? " * " + this.specularColor.associatedVariableName : "") + ";\r\n"), this.shadow.hasEndpoints && (t.compilationString += this._declareOutput(this.shadow, t) + " = shadow;\r\n"), this ); } this._injectVertexCode(t); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return this.light && (t.lightId = this.light.id), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), t.lightId && (this.light = n.getLightByID(t.lightId)); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.LightBlock"] = qs; var Qs = (function (e) { function t(t) { var n = e.call(this, t, ps.VertexAndFragment) || this; return ( (n.convertToGammaSpace = !1), n.registerInput("uv", fs.Vector2, !1, ps.VertexAndFragment), n.registerOutput("rgba", fs.Color4, ps.Neutral), n.registerOutput("rgb", fs.Color3, ps.Neutral), n.registerOutput("r", fs.Float, ps.Neutral), n.registerOutput("g", fs.Float, ps.Neutral), n.registerOutput("b", fs.Float, ps.Neutral), n.registerOutput("a", fs.Float, ps.Neutral), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), (n._inputs[0]._prioritizeVertex = !0), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "TextureBlock"; }), Object.defineProperty(t.prototype, "uv", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgba", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgb", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "r", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "g", { get: function () { return this._outputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "b", { get: function () { return this._outputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "a", { get: function () { return this._outputs[5]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "target", { get: function () { if (!this.uv.isConnected) return ps.VertexAndFragment; if (this.uv.sourceBlock.isInput) return ps.VertexAndFragment; for (var e = this.uv.connectedPoint; e; ) { if (e.target === ps.Fragment) return ps.Fragment; if (e.target === ps.Vertex) return ps.VertexAndFragment; if (e.target === ps.Neutral || e.target === ps.VertexAndFragment) { var t = e.ownerBlock; e = null; for (var n = 0, i = t.inputs; n < i.length; n++) { var r = i[n]; if (r.connectedPoint) { e = r.connectedPoint; break; } } } } return ps.VertexAndFragment; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.uv.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "uv" === e.name; }); t || (t = new ks("uv")).setAsAttribute(), t.output.connectTo(this.uv); } }), (t.prototype.initializeDefines = function (e, t, n, i) { void 0 === i && (i = !1), n._areTexturesDirty && n.setValue(this._mainUVDefineName, !1); }), (t.prototype.prepareDefines = function (e, t, n) { if (n._areTexturesDirty) { if (!this.texture || !this.texture.getTextureMatrix) return n.setValue(this._defineName, !1), void n.setValue(this._mainUVDefineName, !0); n.setValue(this._linearDefineName, this.convertToGammaSpace), this._isMixed && (this.texture.getTextureMatrix().isIdentityAs3x2() ? (n.setValue(this._defineName, !1), n.setValue(this._mainUVDefineName, !0)) : n.setValue(this._defineName, !0)); } }), (t.prototype.isReady = function () { return !(this.texture && !this.texture.isReadyOrNotBlocking()); }), (t.prototype.bind = function (e, t, n) { n && this.texture && (this._isMixed && (e.setFloat(this._textureInfoName, this.texture.level), e.setMatrix(this._textureTransformName, this.texture.getTextureMatrix())), e.setTexture(this._samplerName, this.texture)); }), Object.defineProperty(t.prototype, "_isMixed", { get: function () { return this.target !== ps.Fragment; }, enumerable: !0, configurable: !0, }), (t.prototype._injectVertexCode = function (e) { var t = this.uv; ((this._defineName = e._getFreeDefineName("UVTRANSFORM")), (this._mainUVDefineName = "VMAIN" + t.associatedVariableName.toUpperCase()), t.connectedPoint.ownerBlock.isInput) && (t.connectedPoint.ownerBlock.isAttribute || e._emitUniformFromString(t.associatedVariableName, "vec2")); if ( ((this._mainUVName = "vMain" + t.associatedVariableName), (this._transformedUVName = e._getFreeVariableName("transformedUV")), (this._textureTransformName = e._getFreeVariableName("textureTransform")), (this._textureInfoName = e._getFreeVariableName("textureInfoName")), e._emitVaryingFromString(this._transformedUVName, "vec2", this._defineName), e._emitVaryingFromString(this._mainUVName, "vec2", this._mainUVDefineName), e._emitUniformFromString(this._textureTransformName, "mat4", this._defineName), (e.compilationString += "#ifdef " + this._defineName + "\r\n"), (e.compilationString += this._transformedUVName + " = vec2(" + this._textureTransformName + " * vec4(" + t.associatedVariableName + ".xy, 1.0, 0.0));\r\n"), (e.compilationString += "#elif defined(" + this._mainUVDefineName + ")\r\n"), (e.compilationString += this._mainUVName + " = " + t.associatedVariableName + ".xy;\r\n"), (e.compilationString += "#endif\r\n"), this._outputs.some(function (e) { return e.isConnectedInVertexShader; })) ) { this._writeTextureRead(e, !0); for (var n = 0, i = this._outputs; n < i.length; n++) { var r = i[n]; r.hasEndpoints && this._writeOutput(e, r, r.name, !0); } } }), (t.prototype._writeTextureRead = function (e, t) { void 0 === t && (t = !1); var n = this.uv; if (t) { if (e.target === ps.Fragment) return; e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + n.associatedVariableName + ");\r\n"; } else this.uv.ownerBlock.target !== ps.Fragment ? ((e.compilationString += "#ifdef " + this._defineName + "\r\n"), (e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + this._transformedUVName + ");\r\n"), (e.compilationString += "#elif defined(" + this._mainUVDefineName + ")\r\n"), (e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + this._mainUVName + ");\r\n"), (e.compilationString += "#endif\r\n")) : (e.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + n.associatedVariableName + ");\r\n"); }), (t.prototype._writeOutput = function (e, t, n, i) { if ((void 0 === i && (i = !1), i)) { if (e.target === ps.Fragment) return; e.compilationString += this._declareOutput(t, e) + " = " + this._tempTextureRead + "." + n + ";\r\n"; } else if (this.uv.ownerBlock.target !== ps.Fragment) { var r = " * " + this._textureInfoName; (e.compilationString += this._declareOutput(t, e) + " = " + this._tempTextureRead + "." + n + r + ";\r\n"), (e.compilationString += "#ifdef " + this._linearDefineName + "\r\n"), (e.compilationString += t.associatedVariableName + " = toGammaSpace(" + t.associatedVariableName + ");\r\n"), (e.compilationString += "#endif\r\n"); } else e.compilationString += this._declareOutput(t, e) + " = " + this._tempTextureRead + "." + n + ";\r\n"; }), (t.prototype._buildBlock = function (t) { if ( (e.prototype._buildBlock.call(this, t), t.target === ps.Vertex && (this._tempTextureRead = t._getFreeVariableName("tempTextureRead")), ((!this._isMixed && t.target === ps.Fragment) || (this._isMixed && t.target === ps.Vertex)) && ((this._samplerName = t._getFreeVariableName(this.name + "Sampler")), t._emit2DSampler(this._samplerName), t.sharedData.blockingBlocks.push(this), t.sharedData.textureBlocks.push(this), t.sharedData.blocksWithDefines.push(this), t.sharedData.bindableBlocks.push(this)), t.target === ps.Fragment) ) { if ( this._outputs.some(function (e) { return e.isConnectedInFragmentShader; }) ) { this._isMixed && t._emit2DSampler(this._samplerName), (this._linearDefineName = t._getFreeDefineName("ISLINEAR")); var n = "//" + this.name; t._emitFunctionFromInclude("helperFunctions", n), this._isMixed && t._emitUniformFromString(this._textureInfoName, "float"), this._writeTextureRead(t); for (var i = 0, r = this._outputs; i < r.length; i++) { var o = r[i]; o.hasEndpoints && this._writeOutput(t, o, o.name); } return this; } } else this._injectVertexCode(t); }), (t.prototype._dumpPropertiesCode = function () { if (!this.texture) return ""; var e = this._codeVariableName + '.texture = new BABYLON.Texture("' + this.texture.name + '");\r\n'; return ( (e += this._codeVariableName + ".texture.wrapU = " + this.texture.wrapU + ";\r\n"), (e += this._codeVariableName + ".texture.wrapV = " + this.texture.wrapV + ";\r\n"), (e += this._codeVariableName + ".texture.uAng = " + this.texture.uAng + ";\r\n"), (e += this._codeVariableName + ".texture.vAng = " + this.texture.vAng + ";\r\n"), (e += this._codeVariableName + ".texture.wAng = " + this.texture.wAng + ";\r\n"), (e += this._codeVariableName + ".texture.uOffset = " + this.texture.uOffset + ";\r\n"), (e += this._codeVariableName + ".texture.vOffset = " + this.texture.vOffset + ";\r\n"), (e += this._codeVariableName + ".texture.uScale = " + this.texture.uScale + ";\r\n"), (e += this._codeVariableName + ".texture.vScale = " + this.texture.vScale + ";\r\n"), (e += this._codeVariableName + ".convertToGammaSpace = " + this.convertToGammaSpace + ";\r\n") ); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.convertToGammaSpace = this.convertToGammaSpace), this.texture && (t.texture = this.texture.serialize()), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.convertToGammaSpace = t.convertToGammaSpace), t.texture && ((i = 0 === t.texture.url.indexOf("data:") ? "" : i), (this.texture = ln.a.Parse(t.texture, n, i))); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.TextureBlock"] = Qs; var Js = (function (e) { function t(t) { var n = e.call(this, t, ps.VertexAndFragment) || this; return ( n.registerInput("position", fs.Vector3, !1, ps.Vertex), n.registerInput("worldPosition", fs.Vector4, !1, ps.Vertex), n.registerInput("worldNormal", fs.Vector4, !1, ps.Fragment), n.registerInput("world", fs.Matrix, !1, ps.Vertex), n.registerInput("cameraPosition", fs.Vector3, !1, ps.Fragment), n.registerInput("view", fs.Matrix, !1, ps.Fragment), n.registerOutput("rgb", fs.Color3, ps.Fragment), n.registerOutput("r", fs.Float, ps.Fragment), n.registerOutput("g", fs.Float, ps.Fragment), n.registerOutput("b", fs.Float, ps.Fragment), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ReflectionTextureBlock"; }), Object.defineProperty(t.prototype, "position", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldPosition", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldNormal", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "world", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraPosition", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "view", { get: function () { return this._inputs[5]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgb", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "r", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "g", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "b", { get: function () { return this._outputs[3]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.position.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.isAttribute && "position" === e.name; }); t || (t = new ks("position")).setAsAttribute(), t.output.connectTo(this.position); } if (!this.world.isConnected) { var n = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.World; }); n || (n = new ks("world")).setAsSystemValue(gs.World), n.output.connectTo(this.world); } if (!this.cameraPosition.isConnected) { var i = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.CameraPosition; }); i || (i = new ks("cameraPosition")).setAsSystemValue(gs.CameraPosition), i.output.connectTo(this.cameraPosition); } if (!this.view.isConnected) { var r = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.View; }); r || (r = new ks("view")).setAsSystemValue(gs.View), r.output.connectTo(this.view); } }), (t.prototype.prepareDefines = function (e, t, n) { n._areTexturesDirty && this.texture && this.texture.getTextureMatrix && (n.setValue(this._define3DName, this.texture.isCube), n.setValue(this._defineLocalCubicName, !!this.texture.boundingBoxSize), n.setValue(this._defineExplicitName, 0 === this.texture.coordinatesMode), n.setValue(this._defineSkyboxName, 5 === this.texture.coordinatesMode), n.setValue(this._defineCubicName, 3 === this.texture.coordinatesMode), n.setValue(this._defineSphericalName, 1 === this.texture.coordinatesMode), n.setValue(this._definePlanarName, 2 === this.texture.coordinatesMode), n.setValue(this._defineProjectionName, 4 === this.texture.coordinatesMode), n.setValue(this._defineEquirectangularName, 7 === this.texture.coordinatesMode), n.setValue(this._defineEquirectangularFixedName, 8 === this.texture.coordinatesMode), n.setValue(this._defineMirroredEquirectangularFixedName, 9 === this.texture.coordinatesMode)); }), (t.prototype.isReady = function () { return !(this.texture && !this.texture.isReadyOrNotBlocking()); }), (t.prototype.bind = function (e, t, n) { n && this.texture && (e.setMatrix(this._reflectionMatrixName, this.texture.getReflectionTextureMatrix()), this.texture.isCube ? e.setTexture(this._cubeSamplerName, this.texture) : e.setTexture(this._2DSamplerName, this.texture)); }), (t.prototype._injectVertexCode = function (e) { var t = "v_" + this.worldPosition.associatedVariableName; e._emitVaryingFromString(t, "vec4") && (e.compilationString += t + " = " + this.worldPosition.associatedVariableName + ";\r\n"), (this._positionUVWName = e._getFreeVariableName("positionUVW")), (this._directionWName = e._getFreeVariableName("directionW")), e._emitVaryingFromString(this._positionUVWName, "vec3", this._defineSkyboxName) && ((e.compilationString += "#ifdef " + this._defineSkyboxName + "\r\n"), (e.compilationString += this._positionUVWName + " = " + this.position.associatedVariableName + ".xyz;\r\n"), (e.compilationString += "#endif\r\n")), e._emitVaryingFromString(this._directionWName, "vec3", "defined(" + this._defineEquirectangularFixedName + ") || defined(" + this._defineMirroredEquirectangularFixedName + ")") && ((e.compilationString += "#if defined(" + this._defineEquirectangularFixedName + ") || defined(" + this._defineMirroredEquirectangularFixedName + ")\r\n"), (e.compilationString += this._directionWName + " = normalize(vec3(" + this.world.associatedVariableName + " * vec4(" + this.position.associatedVariableName + ".xyz, 0.0)));\r\n"), (e.compilationString += "#endif\r\n")); }), (t.prototype._writeOutput = function (e, t, n) { e.compilationString += this._declareOutput(t, e) + " = " + this._reflectionColorName + "." + n + ";\r\n"; }), (t.prototype._buildBlock = function (t) { if ((e.prototype._buildBlock.call(this, t), this.texture)) { if (t.target !== ps.Fragment) return ( (this._define3DName = t._getFreeDefineName("REFLECTIONMAP_3D")), (this._defineCubicName = t._getFreeDefineName("REFLECTIONMAP_CUBIC")), (this._defineSphericalName = t._getFreeDefineName("REFLECTIONMAP_SPHERICAL")), (this._definePlanarName = t._getFreeDefineName("REFLECTIONMAP_PLANAR")), (this._defineProjectionName = t._getFreeDefineName("REFLECTIONMAP_PROJECTION")), (this._defineExplicitName = t._getFreeDefineName("REFLECTIONMAP_EXPLICIT")), (this._defineEquirectangularName = t._getFreeDefineName("REFLECTIONMAP_EQUIRECTANGULAR")), (this._defineLocalCubicName = t._getFreeDefineName("USE_LOCAL_REFLECTIONMAP_CUBIC")), (this._defineMirroredEquirectangularFixedName = t._getFreeDefineName("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED")), (this._defineEquirectangularFixedName = t._getFreeDefineName("REFLECTIONMAP_EQUIRECTANGULAR_FIXED")), (this._defineSkyboxName = t._getFreeDefineName("REFLECTIONMAP_SKYBOX")), void this._injectVertexCode(t) ); t.sharedData.blockingBlocks.push(this), t.sharedData.textureBlocks.push(this), (this._cubeSamplerName = t._getFreeVariableName(this.name + "CubeSampler")), t.samplers.push(this._cubeSamplerName), (this._2DSamplerName = t._getFreeVariableName(this.name + "2DSampler")), t.samplers.push(this._2DSamplerName), (t._samplerDeclaration += "#ifdef " + this._define3DName + "\r\n"), (t._samplerDeclaration += "uniform samplerCube " + this._cubeSamplerName + ";\r\n"), (t._samplerDeclaration += "#else\r\n"), (t._samplerDeclaration += "uniform sampler2D " + this._2DSamplerName + ";\r\n"), (t._samplerDeclaration += "#endif\r\n"), t.sharedData.blocksWithDefines.push(this), t.sharedData.bindableBlocks.push(this); var n = "//" + this.name; t._emitFunction("ReciprocalPI", "#define RECIPROCAL_PI2 0.15915494", ""), t._emitFunctionFromInclude("reflectionFunction", n), (this._reflectionColorName = t._getFreeVariableName("reflectionColor")), (this._reflectionCoordsName = t._getFreeVariableName("reflectionUVW")), (this._reflection2DCoordsName = t._getFreeVariableName("reflectionUV")), (this._reflectionMatrixName = t._getFreeVariableName("reflectionMatrix")), t._emitUniformFromString(this._reflectionMatrixName, "mat4"); var i = "v_" + this.worldPosition.associatedVariableName, r = this.worldNormal.associatedVariableName + ".xyz", o = this._reflectionMatrixName, a = "normalize(" + this._directionWName + ")", s = "" + this._positionUVWName, c = "" + this.cameraPosition.associatedVariableName, l = "" + this.view.associatedVariableName; (t.compilationString += "vec3 " + this._reflectionColorName + ";\r\n"), (t.compilationString += "#ifdef " + this._defineMirroredEquirectangularFixedName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeMirroredFixedEquirectangularCoords(" + i + ", " + r + ", " + a + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._defineEquirectangularFixedName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeFixedEquirectangularCoords(" + i + ", " + r + ", " + a + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._defineEquirectangularName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeEquirectangularCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ");\r\n"), (t.compilationString += " #endif\r\n"), (t.compilationString += "#ifdef " + this._defineSphericalName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeSphericalCoords(" + i + ", " + r + ", " + l + ", " + o + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._definePlanarName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computePlanarCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._defineCubicName + "\r\n"), (t.compilationString += " #ifdef " + this._defineLocalCubicName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeCubicLocalCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ", vReflectionSize, vReflectionPosition);\r\n"), (t.compilationString += " #else\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeCubicCoords(" + i + ", " + r + ", " + c + ".xyz, " + o + ");\r\n"), (t.compilationString += " #endif\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._defineProjectionName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeProjectionCoords(" + i + ", " + l + ", " + o + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._defineSkyboxName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = computeSkyBoxCoords(" + s + ", " + o + ");\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._defineExplicitName + "\r\n"), (t.compilationString += " vec3 " + this._reflectionCoordsName + " = vec3(0, 0, 0);\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += "#ifdef " + this._define3DName + "\r\n"), (t.compilationString += this._reflectionColorName + " = textureCube(" + this._cubeSamplerName + ", " + this._reflectionCoordsName + ").rgb;\r\n"), (t.compilationString += "#else\r\n"), (t.compilationString += "vec2 " + this._reflection2DCoordsName + " = " + this._reflectionCoordsName + ".xy;\r\n"), (t.compilationString += "#ifdef " + this._defineProjectionName + "\r\n"), (t.compilationString += this._reflection2DCoordsName + " /= " + this._reflectionCoordsName + ".z;\r\n"), (t.compilationString += "#endif\r\n"), (t.compilationString += this._reflection2DCoordsName + ".y = 1.0 - " + this._reflection2DCoordsName + ".y;\r\n"), (t.compilationString += this._reflectionColorName + " = texture2D(" + this._2DSamplerName + ", " + this._reflection2DCoordsName + ").rgb;\r\n"), (t.compilationString += "#endif\r\n"); for (var u = 0, h = this._outputs; u < h.length; u++) { (f = h[u]).hasEndpoints && this._writeOutput(t, f, f.name); } return this; } if (t.target === ps.Fragment) for (var d = 0, p = this._outputs; d < p.length; d++) { var f; (f = p[d]).hasEndpoints && (t.compilationString += this._declareOutput(f, t) + " = vec3(0.)." + f.name + ";\r\n"); } }), (t.prototype._dumpPropertiesCode = function () { return this.texture ? ((e = this.texture.isCube ? this._codeVariableName + '.texture = new BABYLON.CubeTexture("' + this.texture.name + '");\r\n' : this._codeVariableName + '.texture = new BABYLON.Texture("' + this.texture.name + '");\r\n'), (e += this._codeVariableName + ".texture.coordinatesMode = " + this.texture.coordinatesMode + ";\r\n")) : ""; var e; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return this.texture && (t.texture = this.texture.serialize()), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), t.texture && ((i = 0 === t.texture.url.indexOf("data:") ? "" : i), t.texture.isCube ? (this.texture = Ar.a.Parse(t.texture, n, i)) : (this.texture = ln.a.Parse(t.texture, n, i))); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ReflectionTextureBlock"] = Js; var $s = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "MultiplyBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " * " + this.right.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.MultiplyBlock"] = $s; var ec = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "AddBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " + " + this.right.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.AddBlock"] = ec; var tc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("input", fs.AutoDetect), n.registerInput("factor", fs.Float), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ScaleBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "factor", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = " + this.input.associatedVariableName + " * " + this.factor.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ScaleBlock"] = tc; var nc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return (n.minimum = 0), (n.maximum = 1), n.registerInput("value", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ClampBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = clamp(" + this.value.associatedVariableName + ", " + this._writeFloat(this.minimum) + ", " + this._writeFloat(this.maximum) + ");\r\n"), this; }), (t.prototype._dumpPropertiesCode = function () { var e = this._codeVariableName + ".minimum = " + this.minimum + ";\r\n"; return (e += this._codeVariableName + ".maximum = " + this.maximum + ";\r\n"); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.minimum = this.minimum), (t.maximum = this.maximum), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.minimum = t.minimum), (this.maximum = t.maximum); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ClampBlock"] = nc; var ic = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.Vector3), n._linkConnectionTypes(0, 1), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[0].excludedConnectionPointTypes.push(fs.Vector2), n._inputs[1].excludedConnectionPointTypes.push(fs.Float), n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[1].excludedConnectionPointTypes.push(fs.Vector2), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "CrossBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = cross(" + this.left.associatedVariableName + ".xyz, " + this.right.associatedVariableName + ".xyz);\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.CrossBlock"] = ic; var rc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.Float), n._linkConnectionTypes(0, 1), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[1].excludedConnectionPointTypes.push(fs.Float), n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "DotBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = dot(" + this.left.associatedVariableName + ", " + this.right.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.DotBlock"] = rc; var oc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( (n.sourceRange = new a.d(-1, 1)), (n.targetRange = new a.d(0, 1)), n.registerInput("input", fs.AutoDetect), n.registerInput("sourceMin", fs.Float, !0), n.registerInput("sourceMax", fs.Float, !0), n.registerInput("targetMin", fs.Float, !0), n.registerInput("targetMax", fs.Float, !0), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "RemapBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "sourceMin", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "sourceMax", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "targetMin", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "targetMax", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = this.sourceMin.isConnected ? this.sourceMin.associatedVariableName : this._writeFloat(this.sourceRange.x), r = this.sourceMax.isConnected ? this.sourceMax.associatedVariableName : this._writeFloat(this.sourceRange.y), o = this.targetMin.isConnected ? this.targetMin.associatedVariableName : this._writeFloat(this.targetRange.x), a = this.targetMax.isConnected ? this.targetMax.associatedVariableName : this._writeFloat(this.targetRange.y); return (t.compilationString += this._declareOutput(n, t) + " = " + o + " + (" + this._inputs[0].associatedVariableName + " - " + i + ") * (" + a + " - " + o + ") / (" + r + " - " + i + ");\r\n"), this; }), (t.prototype._dumpPropertiesCode = function () { var e = this._codeVariableName + ".sourceRange = new BABYLON.Vector2(" + this.sourceRange.x + ", " + this.sourceRange.y + ");\r\n"; return (e += this._codeVariableName + ".targetRange = new BABYLON.Vector2(" + this.targetRange.x + ", " + this.targetRange.y + ");\r\n"); }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.sourceRange = this.sourceRange.asArray()), (t.targetRange = this.targetRange.asArray()), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.sourceRange = a.d.FromArray(t.sourceRange)), (this.targetRange = a.d.FromArray(t.targetRange)); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.RemapBlock"] = oc; var ac, sc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "NormalizeBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = this._inputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = normalize(" + i.associatedVariableName + ");\r\n"), this; }), t ); })(Is); (c.a.RegisteredTypes["BABYLON.NormalizeBlock"] = sc), (function (e) { (e[(e.Cos = 0)] = "Cos"), (e[(e.Sin = 1)] = "Sin"), (e[(e.Abs = 2)] = "Abs"), (e[(e.Exp = 3)] = "Exp"), (e[(e.Exp2 = 4)] = "Exp2"), (e[(e.Round = 5)] = "Round"), (e[(e.Floor = 6)] = "Floor"), (e[(e.Ceiling = 7)] = "Ceiling"), (e[(e.Sqrt = 8)] = "Sqrt"), (e[(e.Log = 9)] = "Log"), (e[(e.Tan = 10)] = "Tan"), (e[(e.ArcTan = 11)] = "ArcTan"), (e[(e.ArcCos = 12)] = "ArcCos"), (e[(e.ArcSin = 13)] = "ArcSin"), (e[(e.Fract = 14)] = "Fract"), (e[(e.Sign = 15)] = "Sign"), (e[(e.Radians = 16)] = "Radians"), (e[(e.Degrees = 17)] = "Degrees"); })(ac || (ac = {})); var cc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return (n.operation = ac.Cos), n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "TrigonometryBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = ""; switch (this.operation) { case ac.Cos: i = "cos"; break; case ac.Sin: i = "sin"; break; case ac.Abs: i = "abs"; break; case ac.Exp: i = "exp"; break; case ac.Exp2: i = "exp2"; break; case ac.Round: i = "round"; break; case ac.Floor: i = "floor"; break; case ac.Ceiling: i = "ceil"; break; case ac.Sqrt: i = "sqrt"; break; case ac.Log: i = "log"; break; case ac.Tan: i = "tan"; break; case ac.ArcTan: i = "atan"; break; case ac.ArcCos: i = "acos"; break; case ac.ArcSin: i = "asin"; break; case ac.Fract: i = "fract"; break; case ac.Sign: i = "sign"; break; case ac.Radians: i = "radians"; break; case ac.Degrees: i = "degrees"; } return (t.compilationString += this._declareOutput(n, t) + " = " + i + "(" + this.input.associatedVariableName + ");\r\n"), this; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.operation = this.operation), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.operation = t.operation); }), (t.prototype._dumpPropertiesCode = function () { return this._codeVariableName + ".operation = BABYLON.TrigonometryBlockOperations." + ac[this.operation] + ";\r\n"; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.TrigonometryBlock"] = cc; var lc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("rgb ", fs.Color3, !0), n.registerInput("r", fs.Float, !0), n.registerInput("g", fs.Float, !0), n.registerInput("b", fs.Float, !0), n.registerInput("a", fs.Float, !0), n.registerOutput("rgba", fs.Color4), n.registerOutput("rgb", fs.Color3), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ColorMergerBlock"; }), Object.defineProperty(t.prototype, "rgbIn", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "r", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "g", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "b", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "a", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgba", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgbOut", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgb", { get: function () { return this.rgbOut; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.r, i = this.g, r = this.b, o = this.a, a = this.rgbIn, s = this._outputs[0], c = this._outputs[1]; return ( a.isConnected ? s.hasEndpoints ? (t.compilationString += this._declareOutput(s, t) + " = vec4(" + a.associatedVariableName + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n") : c.hasEndpoints && (t.compilationString += this._declareOutput(c, t) + " = " + a.associatedVariableName + ";\r\n") : s.hasEndpoints ? (t.compilationString += this._declareOutput(s, t) + " = vec4(" + (n.isConnected ? this._writeVariable(n) : "0.0") + ", " + (i.isConnected ? this._writeVariable(i) : "0.0") + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n") : c.hasEndpoints && (t.compilationString += this._declareOutput(c, t) + " = vec3(" + (n.isConnected ? this._writeVariable(n) : "0.0") + ", " + (i.isConnected ? this._writeVariable(i) : "0.0") + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ");\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ColorMergerBlock"] = lc; var uc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("xyz ", fs.Vector3, !0), n.registerInput("xy ", fs.Vector2, !0), n.registerInput("x", fs.Float, !0), n.registerInput("y", fs.Float, !0), n.registerInput("z", fs.Float, !0), n.registerInput("w", fs.Float, !0), n.registerOutput("xyzw", fs.Vector4), n.registerOutput("xyz", fs.Vector3), n.registerOutput("xy", fs.Vector2), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VectorMergerBlock"; }), Object.defineProperty(t.prototype, "xyzIn", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyIn", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "x", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "y", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "z", { get: function () { return this._inputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "w", { get: function () { return this._inputs[5]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyzw", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyzOut", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyOut", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xy", { get: function () { return this.xyOut; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyz", { get: function () { return this.xyzOut; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.x, i = this.y, r = this.z, o = this.w, a = this.xyIn, s = this.xyzIn, c = this._outputs[0], l = this._outputs[1], u = this._outputs[2]; return ( a.isConnected ? c.hasEndpoints ? (t.compilationString += this._declareOutput(c, t) + " = vec4(" + a.associatedVariableName + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n") : l.hasEndpoints ? (t.compilationString += this._declareOutput(l, t) + " = vec3(" + a.associatedVariableName + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ");\r\n") : u.hasEndpoints && (t.compilationString += this._declareOutput(u, t) + " = " + a.associatedVariableName + ";\r\n") : s.isConnected ? c.hasEndpoints ? (t.compilationString += this._declareOutput(c, t) + " = vec4(" + s.associatedVariableName + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n") : l.hasEndpoints ? (t.compilationString += this._declareOutput(l, t) + " = " + s.associatedVariableName + ";\r\n") : u.hasEndpoints && (t.compilationString += this._declareOutput(u, t) + " = " + s.associatedVariableName + ".xy;\r\n") : c.hasEndpoints ? (t.compilationString += this._declareOutput(c, t) + " = vec4(" + (n.isConnected ? this._writeVariable(n) : "0.0") + ", " + (i.isConnected ? this._writeVariable(i) : "0.0") + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ", " + (o.isConnected ? this._writeVariable(o) : "0.0") + ");\r\n") : l.hasEndpoints ? (t.compilationString += this._declareOutput(l, t) + " = vec3(" + (n.isConnected ? this._writeVariable(n) : "0.0") + ", " + (i.isConnected ? this._writeVariable(i) : "0.0") + ", " + (r.isConnected ? this._writeVariable(r) : "0.0") + ");\r\n") : u.hasEndpoints && (t.compilationString += this._declareOutput(u, t) + " = vec2(" + (n.isConnected ? this._writeVariable(n) : "0.0") + ", " + (i.isConnected ? this._writeVariable(i) : "0.0") + ");\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.VectorMergerBlock"] = uc; var hc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("rgba", fs.Color4, !0), n.registerInput("rgb ", fs.Color3, !0), n.registerOutput("rgb", fs.Color3), n.registerOutput("r", fs.Float), n.registerOutput("g", fs.Float), n.registerOutput("b", fs.Float), n.registerOutput("a", fs.Float), (n.inputsAreExclusive = !0), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ColorSplitterBlock"; }), Object.defineProperty(t.prototype, "rgba", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgbIn", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rgbOut", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "r", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "g", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "b", { get: function () { return this._outputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "a", { get: function () { return this._outputs[4]; }, enumerable: !0, configurable: !0, }), (t.prototype._inputRename = function (e) { return "rgb " === e ? "rgbIn" : e; }), (t.prototype._outputRename = function (e) { return "rgb" === e ? "rgbOut" : e; }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.rgba.isConnected ? this.rgba : this.rgbIn; if (n.isConnected) { var i = this._outputs[0], r = this._outputs[1], o = this._outputs[2], a = this._outputs[3], s = this._outputs[4]; return ( i.hasEndpoints && (t.compilationString += this._declareOutput(i, t) + " = " + n.associatedVariableName + ".rgb;\r\n"), r.hasEndpoints && (t.compilationString += this._declareOutput(r, t) + " = " + n.associatedVariableName + ".r;\r\n"), o.hasEndpoints && (t.compilationString += this._declareOutput(o, t) + " = " + n.associatedVariableName + ".g;\r\n"), a.hasEndpoints && (t.compilationString += this._declareOutput(a, t) + " = " + n.associatedVariableName + ".b;\r\n"), s.hasEndpoints && (t.compilationString += this._declareOutput(s, t) + " = " + n.associatedVariableName + ".a;\r\n"), this ); } }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ColorSplitterBlock"] = hc; var dc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("xyzw", fs.Vector4, !0), n.registerInput("xyz ", fs.Vector3, !0), n.registerInput("xy ", fs.Vector2, !0), n.registerOutput("xyz", fs.Vector3), n.registerOutput("xy", fs.Vector2), n.registerOutput("x", fs.Float), n.registerOutput("y", fs.Float), n.registerOutput("z", fs.Float), n.registerOutput("w", fs.Float), (n.inputsAreExclusive = !0), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "VectorSplitterBlock"; }), Object.defineProperty(t.prototype, "xyzw", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyzIn", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyIn", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyzOut", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "xyOut", { get: function () { return this._outputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "x", { get: function () { return this._outputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "y", { get: function () { return this._outputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "z", { get: function () { return this._outputs[4]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "w", { get: function () { return this._outputs[5]; }, enumerable: !0, configurable: !0, }), (t.prototype._inputRename = function (e) { switch (e) { case "xy ": return "xyIn"; case "xyz ": return "xyzIn"; default: return e; } }), (t.prototype._outputRename = function (e) { switch (e) { case "xy": return "xyOut"; case "xyz": return "xyzOut"; default: return e; } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this.xyzw.isConnected ? this.xyzw : this.xyzIn.isConnected ? this.xyzIn : this.xyIn, i = this._outputs[0], r = this._outputs[1], o = this._outputs[2], a = this._outputs[3], s = this._outputs[4], c = this._outputs[5]; return ( i.hasEndpoints && (n === this.xyIn ? (t.compilationString += this._declareOutput(i, t) + " = vec3(" + n.associatedVariableName + ", 0.0);\r\n") : (t.compilationString += this._declareOutput(i, t) + " = " + n.associatedVariableName + ".xyz;\r\n")), r.hasEndpoints && (t.compilationString += this._declareOutput(r, t) + " = " + n.associatedVariableName + ".xy;\r\n"), o.hasEndpoints && (t.compilationString += this._declareOutput(o, t) + " = " + n.associatedVariableName + ".x;\r\n"), a.hasEndpoints && (t.compilationString += this._declareOutput(a, t) + " = " + n.associatedVariableName + ".y;\r\n"), s.hasEndpoints && (t.compilationString += this._declareOutput(s, t) + " = " + n.associatedVariableName + ".z;\r\n"), c.hasEndpoints && (t.compilationString += this._declareOutput(c, t) + " = " + n.associatedVariableName + ".w;\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.VectorSplitterBlock"] = dc; var pc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerInput("gradient", fs.Float), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "LerpBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "gradient", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = mix(" + this.left.associatedVariableName + " , " + this.right.associatedVariableName + ", " + this.gradient.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.LerpBlock"] = pc; var fc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "DivideBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " / " + this.right.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.DivideBlock"] = fc; var mc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "SubtractBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = " + this.left.associatedVariableName + " - " + this.right.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.SubtractBlock"] = mc; var gc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("value", fs.Float), n.registerInput("edge", fs.Float), n.registerOutput("output", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "StepBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "edge", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = step(" + this.edge.associatedVariableName + ", " + this.value.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.StepBlock"] = gc; var bc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._outputs[0].excludedConnectionPointTypes.push(fs.Matrix), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "OneMinusBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = 1. - " + this.input.associatedVariableName + ";\r\n"), this; }), t ); })(Is); (c.a.RegisteredTypes["BABYLON.OneMinusBlock"] = bc), (c.a.RegisteredTypes["BABYLON.OppositeBlock"] = bc); var _c = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("worldPosition", fs.Vector4), n.registerInput("cameraPosition", fs.Vector3), n.registerOutput("output", fs.Vector3), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ViewDirectionBlock"; }), Object.defineProperty(t.prototype, "worldPosition", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "cameraPosition", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.cameraPosition.isConnected) { var t = e.getInputBlockByPredicate(function (e) { return e.systemValue === gs.CameraPosition; }); t || (t = new ks("cameraPosition")).setAsSystemValue(gs.CameraPosition), t.output.connectTo(this.cameraPosition); } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = normalize(" + this.cameraPosition.associatedVariableName + " - " + this.worldPosition.associatedVariableName + ".xyz);\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ViewDirectionBlock"] = _c; n(223); var vc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("worldNormal", fs.Vector4), n.registerInput("viewDirection", fs.Vector3), n.registerInput("bias", fs.Float), n.registerInput("power", fs.Float), n.registerOutput("fresnel", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "FresnelBlock"; }), Object.defineProperty(t.prototype, "worldNormal", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "viewDirection", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bias", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "power", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fresnel", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.viewDirection.isConnected) { var t = new _c("View direction"); t.output.connectTo(this.viewDirection), t.autoConfigure(e); } if (!this.bias.isConnected) { var n = new ks("bias"); (n.value = 0), n.output.connectTo(this.bias); } if (!this.power.isConnected) { var i = new ks("power"); (i.value = 1), i.output.connectTo(this.power); } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = "//" + this.name; return ( t._emitFunctionFromInclude("fresnelFunction", n, { removeIfDef: !0 }), (t.compilationString += this._declareOutput(this.fresnel, t) + " = computeFresnelTerm(" + this.viewDirection.associatedVariableName + ".xyz, " + this.worldNormal.associatedVariableName + ".xyz, " + this.bias.associatedVariableName + ", " + this.power.associatedVariableName + ");\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.FresnelBlock"] = vc; var yc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "MaxBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = max(" + this.left.associatedVariableName + ", " + this.right.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.MaxBlock"] = yc; var Cc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "MinBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = min(" + this.left.associatedVariableName + ", " + this.right.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.MinBlock"] = Cc; var Pc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerOutput("output", fs.Float), n._linkConnectionTypes(0, 1), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[1].excludedConnectionPointTypes.push(fs.Float), n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "DistanceBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = length(" + this.left.associatedVariableName + " - " + this.right.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.DistanceBlock"] = Pc; var xc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("value", fs.AutoDetect), n.registerOutput("output", fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "LengthBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = length(" + this.value.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.LengthBlock"] = xc; var Tc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("value", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "NegateBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = -1.0 * " + this.value.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.NegateBlock"] = Tc; var Sc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("value", fs.Float), n.registerInput("power", fs.Float), n.registerOutput("output", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "PowBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "power", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = pow(" + this.value.associatedVariableName + ", " + this.power.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.PowBlock"] = Sc; var Oc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("seed", fs.Vector2), n.registerOutput("output", fs.Float), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "RandomNumberBlock"; }), Object.defineProperty(t.prototype, "seed", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = "//" + this.name; return t._emitFunctionFromInclude("helperFunctions", i), (t.compilationString += this._declareOutput(n, t) + " = getRand(" + this.seed.associatedVariableName + ".xy);\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.RandomNumberBlock"] = Oc; var Ec = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("x", fs.Float), n.registerInput("y", fs.Float), n.registerOutput("output", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ArcTan2Block"; }), Object.defineProperty(t.prototype, "x", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "y", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = atan(" + this.x.associatedVariableName + ", " + this.y.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ArcTan2Block"] = Ec; var Mc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("value", fs.Float), n.registerInput("edge0", fs.Float), n.registerInput("edge1", fs.Float), n.registerOutput("output", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "SmoothStepBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "edge0", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "edge1", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = smoothstep(" + this.edge0.associatedVariableName + ", " + this.edge1.associatedVariableName + ", " + this.value.associatedVariableName + ");\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.SmoothStepBlock"] = Mc; var Ac = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._outputs[0].excludedConnectionPointTypes.push(fs.Matrix), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ReciprocalBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = 1. / " + this.input.associatedVariableName + ";\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ReciprocalBlock"] = Ac; var Ic = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("value", fs.AutoDetect), n.registerInput("reference", fs.AutoDetect), n.registerInput("distance", fs.Float), n.registerInput("replacement", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n._linkConnectionTypes(0, 3), n._inputs[0].excludedConnectionPointTypes.push(fs.Float), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[1].excludedConnectionPointTypes.push(fs.Float), n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[3].excludedConnectionPointTypes.push(fs.Float), n._inputs[3].excludedConnectionPointTypes.push(fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ReplaceColorBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "reference", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "distance", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "replacement", { get: function () { return this._inputs[3]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return ( (t.compilationString += this._declareOutput(n, t) + ";\r\n"), (t.compilationString += "if (length(" + this.value.associatedVariableName + " - " + this.reference.associatedVariableName + ") < " + this.distance.associatedVariableName + ") {\r\n"), (t.compilationString += n.associatedVariableName + " = " + this.replacement.associatedVariableName + ";\r\n"), (t.compilationString += "} else {\r\n"), (t.compilationString += n.associatedVariableName + " = " + this.value.associatedVariableName + ";\r\n"), (t.compilationString += "}\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ReplaceColorBlock"] = Ic; var Dc, Rc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("value", fs.AutoDetect), n.registerInput("steps", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n._inputs[1].excludedConnectionPointTypes.push(fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "PosterizeBlock"; }), Object.defineProperty(t.prototype, "value", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "steps", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return ( (t.compilationString += this._declareOutput(n, t) + " = floor(" + this.value.associatedVariableName + " / (1.0 / " + this.steps.associatedVariableName + ")) * (1.0 / " + this.steps.associatedVariableName + ");\r\n"), this ); }), t ); })(Is); (c.a.RegisteredTypes["BABYLON.PosterizeBlock"] = Rc), (function (e) { (e[(e.SawTooth = 0)] = "SawTooth"), (e[(e.Square = 1)] = "Square"), (e[(e.Triangle = 2)] = "Triangle"); })(Dc || (Dc = {})); var wc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( (n.kind = Dc.SawTooth), n.registerInput("input", fs.AutoDetect), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._inputs[0].excludedConnectionPointTypes.push(fs.Matrix), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "WaveBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; switch (this.kind) { case Dc.SawTooth: t.compilationString += this._declareOutput(n, t) + " = " + this.input.associatedVariableName + " - floor(0.5 + " + this.input.associatedVariableName + ");\r\n"; break; case Dc.Square: t.compilationString += this._declareOutput(n, t) + " = 1.0 - 2.0 * round(fract(" + this.input.associatedVariableName + "));\r\n"; break; case Dc.Triangle: t.compilationString += this._declareOutput(n, t) + " = 2.0 * abs(2.0 * (" + this.input.associatedVariableName + " - floor(0.5 + " + this.input.associatedVariableName + "))) - 1.0;\r\n"; } return this; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.kind = this.kind), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.kind = t.kind); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.WaveBlock"] = wc; var Lc = function (e, t) { (this.step = e), (this.color = t); }, Fc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( (n.colorSteps = [new Lc(0, s.a.Black()), new Lc(1, s.a.White())]), n.registerInput("gradient", fs.Float), n.registerOutput("output", fs.Color3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector2), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "GradientBlock"; }), Object.defineProperty(t.prototype, "gradient", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._writeColorConstant = function (e) { var t = this.colorSteps[e]; return "vec3(" + t.color.r + ", " + t.color.g + ", " + t.color.b + ")"; }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; if (this.colorSteps.length && this.gradient.connectedPoint) { var i = t._getFreeVariableName("gradientTempColor"), r = t._getFreeVariableName("gradientTempPosition"); (t.compilationString += "vec3 " + i + " = " + this._writeColorConstant(0) + ";\r\n"), (t.compilationString += "float " + r + ";\r\n"); var o = this.gradient.associatedVariableName; this.gradient.connectedPoint.type !== fs.Float && (o += ".x"); for (var a = 1; a < this.colorSteps.length; a++) { var s = this.colorSteps[a], c = this.colorSteps[a - 1]; (t.compilationString += r + " = clamp((" + o + " - " + t._emitFloat(c.step) + ") / (" + t._emitFloat(s.step) + " - " + t._emitFloat(c.step) + "), 0.0, 1.0) * step(" + t._emitFloat(a) + ", " + t._emitFloat(this.colorSteps.length - 1) + ");\r\n"), (t.compilationString += i + " = mix(" + i + ", " + this._writeColorConstant(a) + ", " + r + ");\r\n"); } return (t.compilationString += this._declareOutput(n, t) + " = " + i + ";\r\n"), this; } t.compilationString += this._declareOutput(n, t) + " = vec3(0., 0., 0.);\r\n"; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.colorSteps = this.colorSteps), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.colorSteps = []); for (var r = 0, o = t.colorSteps; r < o.length; r++) { var a = o[r]; this.colorSteps.push(new Lc(a.step, new s.a(a.color.r, a.color.g, a.color.b))); } }), (t.prototype._dumpPropertiesCode = function () { for (var e = "", t = 0, n = this.colorSteps; t < n.length; t++) { var i = n[t]; e += this._codeVariableName + ".colorSteps.push(new BABYLON.GradientBlockColorStep(" + i.step + ", new BABYLON.Color3(" + i.color.r + ", " + i.color.g + ", " + i.color.b + ")));\r\n"; } return e; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.GradientBlock"] = Fc; var Nc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("left", fs.AutoDetect), n.registerInput("right", fs.AutoDetect), n.registerInput("gradient", fs.Float), n.registerOutput("output", fs.BasedOnInput), (n._outputs[0]._typeConnectionSource = n._inputs[0]), n._linkConnectionTypes(0, 1), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "NLerpBlock"; }), Object.defineProperty(t.prototype, "left", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "gradient", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return ( (t.compilationString += this._declareOutput(n, t) + " = normalize(mix(" + this.left.associatedVariableName + " , " + this.right.associatedVariableName + ", " + this.gradient.associatedVariableName + "));\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.NLerpBlock"] = Nc; var kc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return (n.manhattanDistance = !1), n.registerInput("seed", fs.Vector3), n.registerInput("jitter", fs.Float), n.registerOutput("output", fs.Vector2), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "WorleyNoise3DBlock"; }), Object.defineProperty(t.prototype, "seed", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "jitter", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { if ((e.prototype._buildBlock.call(this, t), this.seed.isConnected && this._outputs[0].hasEndpoints)) { return ( " return mod((34.0 * x + 1.0) * x, 289.0);\r\n", "}\r\n\r\n", "vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\r\n", " return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\r\n", "}\r\n\r\n", "vec2 worley(vec3 P, float jitter, bool manhattanDistance){\r\n", " float K = 0.142857142857; // 1/7\r\n", " float Ko = 0.428571428571; // 1/2-K/2\r\n", " float K2 = 0.020408163265306; // 1/(7*7)\r\n", " float Kz = 0.166666666667; // 1/6\r\n", " float Kzo = 0.416666666667; // 1/2-1/6*2\r\n", "\r\n", " vec3 Pi = mod(floor(P), 289.0);\r\n", " vec3 Pf = fract(P) - 0.5;\r\n", "\r\n", " vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\r\n", " vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\r\n", " vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\r\n", "\r\n", " vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\r\n", " vec3 p1 = permute(p + Pi.y - 1.0);\r\n", " vec3 p2 = permute(p + Pi.y);\r\n", " vec3 p3 = permute(p + Pi.y + 1.0);\r\n", "\r\n", " vec3 p11 = permute(p1 + Pi.z - 1.0);\r\n", " vec3 p12 = permute(p1 + Pi.z);\r\n", " vec3 p13 = permute(p1 + Pi.z + 1.0);\r\n", "\r\n", " vec3 p21 = permute(p2 + Pi.z - 1.0);\r\n", " vec3 p22 = permute(p2 + Pi.z);\r\n", " vec3 p23 = permute(p2 + Pi.z + 1.0);\r\n", "\r\n", " vec3 p31 = permute(p3 + Pi.z - 1.0);\r\n", " vec3 p32 = permute(p3 + Pi.z);\r\n", " vec3 p33 = permute(p3 + Pi.z + 1.0);\r\n", "\r\n", " vec3 ox11 = fract(p11*K) - Ko;\r\n", " vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\r\n", " vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\r\n", "\r\n", " vec3 ox12 = fract(p12*K) - Ko;\r\n", " vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\r\n", " vec3 oz12 = floor(p12*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox13 = fract(p13*K) - Ko;\r\n", " vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\r\n", " vec3 oz13 = floor(p13*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox21 = fract(p21*K) - Ko;\r\n", " vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\r\n", " vec3 oz21 = floor(p21*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox22 = fract(p22*K) - Ko;\r\n", " vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\r\n", " vec3 oz22 = floor(p22*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox23 = fract(p23*K) - Ko;\r\n", " vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\r\n", " vec3 oz23 = floor(p23*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox31 = fract(p31*K) - Ko;\r\n", " vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\r\n", " vec3 oz31 = floor(p31*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox32 = fract(p32*K) - Ko;\r\n", " vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\r\n", " vec3 oz32 = floor(p32*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 ox33 = fract(p33*K) - Ko;\r\n", " vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\r\n", " vec3 oz33 = floor(p33*K2)*Kz - Kzo;\r\n", "\r\n", " vec3 dx11 = Pfx + jitter*ox11;\r\n", " vec3 dy11 = Pfy.x + jitter*oy11;\r\n", " vec3 dz11 = Pfz.x + jitter*oz11;\r\n", "\r\n", " vec3 dx12 = Pfx + jitter*ox12;\r\n", " vec3 dy12 = Pfy.x + jitter*oy12;\r\n", " vec3 dz12 = Pfz.y + jitter*oz12;\r\n", "\r\n", " vec3 dx13 = Pfx + jitter*ox13;\r\n", " vec3 dy13 = Pfy.x + jitter*oy13;\r\n", " vec3 dz13 = Pfz.z + jitter*oz13;\r\n", "\r\n", " vec3 dx21 = Pfx + jitter*ox21;\r\n", " vec3 dy21 = Pfy.y + jitter*oy21;\r\n", " vec3 dz21 = Pfz.x + jitter*oz21;\r\n", "\r\n", " vec3 dx22 = Pfx + jitter*ox22;\r\n", " vec3 dy22 = Pfy.y + jitter*oy22;\r\n", " vec3 dz22 = Pfz.y + jitter*oz22;\r\n", "\r\n", " vec3 dx23 = Pfx + jitter*ox23;\r\n", " vec3 dy23 = Pfy.y + jitter*oy23;\r\n", " vec3 dz23 = Pfz.z + jitter*oz23;\r\n", "\r\n", " vec3 dx31 = Pfx + jitter*ox31;\r\n", " vec3 dy31 = Pfy.z + jitter*oy31;\r\n", " vec3 dz31 = Pfz.x + jitter*oz31;\r\n", "\r\n", " vec3 dx32 = Pfx + jitter*ox32;\r\n", " vec3 dy32 = Pfy.z + jitter*oy32;\r\n", " vec3 dz32 = Pfz.y + jitter*oz32;\r\n", "\r\n", " vec3 dx33 = Pfx + jitter*ox33;\r\n", " vec3 dy33 = Pfy.z + jitter*oy33;\r\n", " vec3 dz33 = Pfz.z + jitter*oz33;\r\n", "\r\n", " vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\r\n", " vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\r\n", " vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\r\n", " vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\r\n", " vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\r\n", " vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\r\n", " vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\r\n", " vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\r\n", " vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\r\n", "\r\n", " vec3 d1a = min(d11, d12);\r\n", " d12 = max(d11, d12);\r\n", " d11 = min(d1a, d13); // Smallest now not in d12 or d13\r\n", " d13 = max(d1a, d13);\r\n", " d12 = min(d12, d13); // 2nd smallest now not in d13\r\n", " vec3 d2a = min(d21, d22);\r\n", " d22 = max(d21, d22);\r\n", " d21 = min(d2a, d23); // Smallest now not in d22 or d23\r\n", " d23 = max(d2a, d23);\r\n", " d22 = min(d22, d23); // 2nd smallest now not in d23\r\n", " vec3 d3a = min(d31, d32);\r\n", " d32 = max(d31, d32);\r\n", " d31 = min(d3a, d33); // Smallest now not in d32 or d33\r\n", " d33 = max(d3a, d33);\r\n", " d32 = min(d32, d33); // 2nd smallest now not in d33\r\n", " vec3 da = min(d11, d21);\r\n", " d21 = max(d11, d21);\r\n", " d11 = min(da, d31); // Smallest now in d11\r\n", " d31 = max(da, d31); // 2nd smallest now not in d31\r\n", " d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\r\n", " d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\r\n", " d12 = min(d12, d21); // 2nd smallest now not in d21\r\n", " d12 = min(d12, d22); // nor in d22\r\n", " d12 = min(d12, d31); // nor in d31\r\n", " d12 = min(d12, d32); // nor in d32\r\n", " d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\r\n", " d11.y = min(d11.y,d12.z); // Only two more to go\r\n", " d11.y = min(d11.y,d11.z); // Done! (Phew!)\r\n", " return sqrt(d11.xy); // F1, F2\r\n", "}\r\n\r\n", t._emitFunction( "worley3D", "vec3 permute(vec3 x){\r\n return mod((34.0 * x + 1.0) * x, 289.0);\r\n}\r\n\r\nvec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\r\n return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\r\n}\r\n\r\nvec2 worley(vec3 P, float jitter, bool manhattanDistance){\r\n float K = 0.142857142857; // 1/7\r\n float Ko = 0.428571428571; // 1/2-K/2\r\n float K2 = 0.020408163265306; // 1/(7*7)\r\n float Kz = 0.166666666667; // 1/6\r\n float Kzo = 0.416666666667; // 1/2-1/6*2\r\n\r\n vec3 Pi = mod(floor(P), 289.0);\r\n vec3 Pf = fract(P) - 0.5;\r\n\r\n vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\r\n vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\r\n vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\r\n\r\n vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\r\n vec3 p1 = permute(p + Pi.y - 1.0);\r\n vec3 p2 = permute(p + Pi.y);\r\n vec3 p3 = permute(p + Pi.y + 1.0);\r\n\r\n vec3 p11 = permute(p1 + Pi.z - 1.0);\r\n vec3 p12 = permute(p1 + Pi.z);\r\n vec3 p13 = permute(p1 + Pi.z + 1.0);\r\n\r\n vec3 p21 = permute(p2 + Pi.z - 1.0);\r\n vec3 p22 = permute(p2 + Pi.z);\r\n vec3 p23 = permute(p2 + Pi.z + 1.0);\r\n\r\n vec3 p31 = permute(p3 + Pi.z - 1.0);\r\n vec3 p32 = permute(p3 + Pi.z);\r\n vec3 p33 = permute(p3 + Pi.z + 1.0);\r\n\r\n vec3 ox11 = fract(p11*K) - Ko;\r\n vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\r\n vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\r\n\r\n vec3 ox12 = fract(p12*K) - Ko;\r\n vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\r\n vec3 oz12 = floor(p12*K2)*Kz - Kzo;\r\n\r\n vec3 ox13 = fract(p13*K) - Ko;\r\n vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\r\n vec3 oz13 = floor(p13*K2)*Kz - Kzo;\r\n\r\n vec3 ox21 = fract(p21*K) - Ko;\r\n vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\r\n vec3 oz21 = floor(p21*K2)*Kz - Kzo;\r\n\r\n vec3 ox22 = fract(p22*K) - Ko;\r\n vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\r\n vec3 oz22 = floor(p22*K2)*Kz - Kzo;\r\n\r\n vec3 ox23 = fract(p23*K) - Ko;\r\n vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\r\n vec3 oz23 = floor(p23*K2)*Kz - Kzo;\r\n\r\n vec3 ox31 = fract(p31*K) - Ko;\r\n vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\r\n vec3 oz31 = floor(p31*K2)*Kz - Kzo;\r\n\r\n vec3 ox32 = fract(p32*K) - Ko;\r\n vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\r\n vec3 oz32 = floor(p32*K2)*Kz - Kzo;\r\n\r\n vec3 ox33 = fract(p33*K) - Ko;\r\n vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\r\n vec3 oz33 = floor(p33*K2)*Kz - Kzo;\r\n\r\n vec3 dx11 = Pfx + jitter*ox11;\r\n vec3 dy11 = Pfy.x + jitter*oy11;\r\n vec3 dz11 = Pfz.x + jitter*oz11;\r\n\r\n vec3 dx12 = Pfx + jitter*ox12;\r\n vec3 dy12 = Pfy.x + jitter*oy12;\r\n vec3 dz12 = Pfz.y + jitter*oz12;\r\n\r\n vec3 dx13 = Pfx + jitter*ox13;\r\n vec3 dy13 = Pfy.x + jitter*oy13;\r\n vec3 dz13 = Pfz.z + jitter*oz13;\r\n\r\n vec3 dx21 = Pfx + jitter*ox21;\r\n vec3 dy21 = Pfy.y + jitter*oy21;\r\n vec3 dz21 = Pfz.x + jitter*oz21;\r\n\r\n vec3 dx22 = Pfx + jitter*ox22;\r\n vec3 dy22 = Pfy.y + jitter*oy22;\r\n vec3 dz22 = Pfz.y + jitter*oz22;\r\n\r\n vec3 dx23 = Pfx + jitter*ox23;\r\n vec3 dy23 = Pfy.y + jitter*oy23;\r\n vec3 dz23 = Pfz.z + jitter*oz23;\r\n\r\n vec3 dx31 = Pfx + jitter*ox31;\r\n vec3 dy31 = Pfy.z + jitter*oy31;\r\n vec3 dz31 = Pfz.x + jitter*oz31;\r\n\r\n vec3 dx32 = Pfx + jitter*ox32;\r\n vec3 dy32 = Pfy.z + jitter*oy32;\r\n vec3 dz32 = Pfz.y + jitter*oz32;\r\n\r\n vec3 dx33 = Pfx + jitter*ox33;\r\n vec3 dy33 = Pfy.z + jitter*oy33;\r\n vec3 dz33 = Pfz.z + jitter*oz33;\r\n\r\n vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\r\n vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\r\n vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\r\n vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\r\n vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\r\n vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\r\n vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\r\n vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\r\n vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\r\n\r\n vec3 d1a = min(d11, d12);\r\n d12 = max(d11, d12);\r\n d11 = min(d1a, d13); // Smallest now not in d12 or d13\r\n d13 = max(d1a, d13);\r\n d12 = min(d12, d13); // 2nd smallest now not in d13\r\n vec3 d2a = min(d21, d22);\r\n d22 = max(d21, d22);\r\n d21 = min(d2a, d23); // Smallest now not in d22 or d23\r\n d23 = max(d2a, d23);\r\n d22 = min(d22, d23); // 2nd smallest now not in d23\r\n vec3 d3a = min(d31, d32);\r\n d32 = max(d31, d32);\r\n d31 = min(d3a, d33); // Smallest now not in d32 or d33\r\n d33 = max(d3a, d33);\r\n d32 = min(d32, d33); // 2nd smallest now not in d33\r\n vec3 da = min(d11, d21);\r\n d21 = max(d11, d21);\r\n d11 = min(da, d31); // Smallest now in d11\r\n d31 = max(da, d31); // 2nd smallest now not in d31\r\n d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\r\n d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\r\n d12 = min(d12, d21); // 2nd smallest now not in d21\r\n d12 = min(d12, d22); // nor in d22\r\n d12 = min(d12, d31); // nor in d31\r\n d12 = min(d12, d32); // nor in d32\r\n d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\r\n d11.y = min(d11.y,d12.z); // Only two more to go\r\n d11.y = min(d11.y,d11.z); // Done! (Phew!)\r\n return sqrt(d11.xy); // F1, F2\r\n}\r\n\r\n", "// Worley3D" ), (t.compilationString += this._declareOutput(this._outputs[0], t) + " = worley(" + this.seed.associatedVariableName + ", " + this.jitter.associatedVariableName + ", " + this.manhattanDistance + ");\r\n"), this ); } }), (t.prototype._dumpPropertiesCode = function () { return this._codeVariableName + ".manhattanDistance = " + this.manhattanDistance + ";\r\n"; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.manhattanDistance = this.manhattanDistance), t; }), (t.prototype._deserialize = function (t, n, i) { e.prototype._deserialize.call(this, t, n, i), (this.manhattanDistance = t.manhattanDistance); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.WorleyNoise3DBlock"] = kc; var zc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("seed", fs.Vector3), n.registerOutput("output", fs.Float), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "SimplexPerlin3DBlock"; }), Object.defineProperty(t.prototype, "seed", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { if ((e.prototype._buildBlock.call(this, t), this.seed.isConnected && this._outputs[0].hasEndpoints)) { return ( "const float UNSKEWFACTOR = 1.0/6.0;\r\n", "const float SIMPLEX_CORNER_POS = 0.5;\r\n", "const float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;\r\n", "float SimplexPerlin3D( vec3 P ){\r\n", " P *= SIMPLEX_TETRAHADRON_HEIGHT;\r\n", " vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) );", " vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );\r\n", " vec3 g = step(x0.yzx, x0.xyz);\r\n", " vec3 l = 1.0 - g;\r\n", " vec3 Pi_1 = min( g.xyz, l.zxy );\r\n", " vec3 Pi_2 = max( g.xyz, l.zxy );\r\n", " vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;\r\n", " vec3 x2 = x0 - Pi_2 + SKEWFACTOR;\r\n", " vec3 x3 = x0 - SIMPLEX_CORNER_POS;\r\n", " vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );\r\n", " vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );\r\n", " vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );\r\n", " Pi.xyz = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;\r\n", " vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );\r\n", " vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;\r\n", " Pt *= Pt;\r\n", " vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );\r\n", " Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );\r\n", " const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );\r\n", " const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );\r\n", " vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );\r\n", " vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );\r\n", " Pi_1 = ( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods;\r\n", " Pi_2 = ( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods;\r\n", " vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;\r\n", " vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;\r\n", " vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;\r\n", " vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );\r\n", " const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;\r\n", " vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;\r\n", " kernel_weights = max(0.5 - kernel_weights, 0.0);\r\n", " kernel_weights = kernel_weights*kernel_weights*kernel_weights;\r\n", " return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;\r\n", "}\r\n", t._emitFunction( "SimplexPerlin3D", "const float SKEWFACTOR = 1.0/3.0;\r\nconst float UNSKEWFACTOR = 1.0/6.0;\r\nconst float SIMPLEX_CORNER_POS = 0.5;\r\nconst float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;\r\nfloat SimplexPerlin3D( vec3 P ){\r\n P *= SIMPLEX_TETRAHADRON_HEIGHT;\r\n vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) ); vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );\r\n vec3 g = step(x0.yzx, x0.xyz);\r\n vec3 l = 1.0 - g;\r\n vec3 Pi_1 = min( g.xyz, l.zxy );\r\n vec3 Pi_2 = max( g.xyz, l.zxy );\r\n vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;\r\n vec3 x2 = x0 - Pi_2 + SKEWFACTOR;\r\n vec3 x3 = x0 - SIMPLEX_CORNER_POS;\r\n vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );\r\n vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );\r\n vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );\r\n Pi.xyz = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;\r\n vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );\r\n vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;\r\n Pt *= Pt;\r\n vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );\r\n Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );\r\n const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );\r\n const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );\r\n vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );\r\n vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );\r\n Pi_1 = ( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods;\r\n Pi_2 = ( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods;\r\n vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;\r\n vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;\r\n vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;\r\n vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );\r\n const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;\r\n vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;\r\n kernel_weights = max(0.5 - kernel_weights, 0.0);\r\n kernel_weights = kernel_weights*kernel_weights*kernel_weights;\r\n return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;\r\n}\r\n", "// SimplexPerlin3D" ), (t.compilationString += this._declareOutput(this._outputs[0], t) + " = SimplexPerlin3D(" + this.seed.associatedVariableName + ");\r\n"), this ); } }), t ); })(Is); c.a.RegisteredTypes["BABYLON.SimplexPerlin3DBlock"] = zc; var jc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("normalMap0", fs.Vector3), n.registerInput("normalMap1", fs.Vector3), n.registerOutput("output", fs.Vector3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[1].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[1].acceptedConnectionPointTypes.push(fs.Color4), n._inputs[1].acceptedConnectionPointTypes.push(fs.Vector4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "NormalBlendBlock"; }), Object.defineProperty(t.prototype, "normalMap0", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "normalMap1", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = this._inputs[0], r = this._inputs[1], o = t._getFreeVariableName("stepR"), a = t._getFreeVariableName("stepG"); return ( (t.compilationString += "float " + o + " = step(0.5, " + i.associatedVariableName + ".r);\r\n"), (t.compilationString += "float " + a + " = step(0.5, " + i.associatedVariableName + ".g);\r\n"), (t.compilationString += this._declareOutput(n, t) + ";\r\n"), (t.compilationString += n.associatedVariableName + ".r = (1.0 - " + o + ") * " + i.associatedVariableName + ".r * " + r.associatedVariableName + ".r * 2.0 + " + o + " * (1.0 - " + i.associatedVariableName + ".r) * (1.0 - " + r.associatedVariableName + ".r) * 2.0;\r\n"), (t.compilationString += n.associatedVariableName + ".g = (1.0 - " + a + ") * " + i.associatedVariableName + ".g * " + r.associatedVariableName + ".g * 2.0 + " + a + " * (1.0 - " + i.associatedVariableName + ".g) * (1.0 - " + r.associatedVariableName + ".g) * 2.0;\r\n"), (t.compilationString += n.associatedVariableName + ".b = " + i.associatedVariableName + ".b * " + r.associatedVariableName + ".b;\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.NormalBlendBlock"] = jc; var Bc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("input", fs.Vector2), n.registerInput("angle", fs.Float), n.registerOutput("output", fs.Vector2), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "Rotate2dBlock"; }), Object.defineProperty(t.prototype, "input", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "angle", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype.autoConfigure = function (e) { if (!this.angle.isConnected) { var t = new ks("angle"); (t.value = 0), t.output.connectTo(this.angle); } }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = this.angle, r = this.input; return ( (t.compilationString += this._declareOutput(n, t) + " = vec2(cos(" + i.associatedVariableName + ") * " + r.associatedVariableName + ".x - sin(" + i.associatedVariableName + ") * " + r.associatedVariableName + ".y, sin(" + i.associatedVariableName + ") * " + r.associatedVariableName + ".x + cos(" + i.associatedVariableName + ") * " + r.associatedVariableName + ".y);\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.Rotate2dBlock"] = Bc; var Vc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("incident", fs.Vector3), n.registerInput("normal", fs.Vector3), n.registerOutput("output", fs.Vector3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4), n._inputs[1].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[1].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[1].acceptedConnectionPointTypes.push(fs.Color4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "ReflectBlock"; }), Object.defineProperty(t.prototype, "incident", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "normal", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return (t.compilationString += this._declareOutput(n, t) + " = reflect(" + this.incident.associatedVariableName + ".xyz, " + this.normal.associatedVariableName + ".xyz);\r\n"), this; }), t ); })(Is); c.a.RegisteredTypes["BABYLON.ReflectBlock"] = Vc; var Gc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return ( n.registerInput("incident", fs.Vector3), n.registerInput("normal", fs.Vector3), n.registerInput("ior", fs.Float), n.registerOutput("output", fs.Vector3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[0].acceptedConnectionPointTypes.push(fs.Color4), n._inputs[1].acceptedConnectionPointTypes.push(fs.Vector4), n._inputs[1].acceptedConnectionPointTypes.push(fs.Color3), n._inputs[1].acceptedConnectionPointTypes.push(fs.Color4), n ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "RefractBlock"; }), Object.defineProperty(t.prototype, "incident", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "normal", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "ior", { get: function () { return this._inputs[2]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0]; return ( (t.compilationString += this._declareOutput(n, t) + " = refract(" + this.incident.associatedVariableName + ".xyz, " + this.normal.associatedVariableName + ".xyz, " + this.ior.associatedVariableName + ");\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.RefractBlock"] = Gc; var Uc = (function (e) { function t(t) { var n = e.call(this, t, ps.Neutral) || this; return n.registerInput("color", fs.Color3), n.registerInput("level", fs.Float), n.registerOutput("output", fs.Color3), n; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "DesaturateBlock"; }), Object.defineProperty(t.prototype, "color", { get: function () { return this._inputs[0]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "level", { get: function () { return this._inputs[1]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "output", { get: function () { return this._outputs[0]; }, enumerable: !0, configurable: !0, }), (t.prototype._buildBlock = function (t) { e.prototype._buildBlock.call(this, t); var n = this._outputs[0], i = this.color.associatedVariableName, r = t._getFreeVariableName("colorMin"), o = t._getFreeVariableName("colorMax"), a = t._getFreeVariableName("colorMerge"); return ( (t.compilationString += "float " + r + " = min(min(" + i + ".x, " + i + ".y), " + i + ".z);\r\n"), (t.compilationString += "float " + o + " = max(max(" + i + ".x, " + i + ".y), " + i + ".z);\r\n"), (t.compilationString += "float " + a + " = 0.5 * (" + r + " + " + o + ");\r\n"), (t.compilationString += this._declareOutput(n, t) + " = mix(" + i + ", vec3(" + a + ", " + a + ", " + a + "), " + this.level.associatedVariableName + ");\r\n"), this ); }), t ); })(Is); c.a.RegisteredTypes["BABYLON.DesaturateBlock"] = Uc; var Hc = (function () { function e() {} return (e.prototype.optimize = function (e, t) {}), e; })(), Wc = (n(166), (function () { function e(t, n) { var i; void 0 === n && (n = e._DefaultOptions), (this.engine = t), (this._ringBufferIndex = 0), (this._ringScreenBuffer = null), (this._fullscreenViewport = new vn.a(0, 0, 1, 1)), (n = Object(h.a)(Object(h.a)({}, e._DefaultOptions), n)), (this._vertexBuffers = (((i = {})[wn.b.PositionKind] = new wn.b(t, n.positions, wn.b.PositionKind, !1, !1, 2)), i)), (this._indexBuffer = t.createIndexBuffer(n.indices)), (t.depthCullingState.depthTest = !1), (t.stencilState.stencilTest = !1); } return ( (e.prototype._getNextFrameBuffer = function (e) { if ((void 0 === e && (e = !0), !this._ringScreenBuffer)) { this._ringScreenBuffer = []; for (var t = 0; t < 2; t++) { var n = this.engine.createRenderTargetTexture( { width: this.engine.getRenderWidth(!0), height: this.engine.getRenderHeight(!0) }, { generateDepthBuffer: !1, generateStencilBuffer: !1, generateMipMaps: !1, samplingMode: 1 } ), i = new ln.a("", null); (i._texture = n), this._ringScreenBuffer.push(i); } } var r = this._ringScreenBuffer[this._ringBufferIndex]; return e && (this._ringBufferIndex = (this._ringBufferIndex + 1) % 2), r; }), (e.prototype.setViewport = function (e) { void 0 === e && (e = this._fullscreenViewport), this.engine.setViewport(e); }), (e.prototype.bindBuffers = function (e) { this.engine.bindBuffers(this._vertexBuffers, this._indexBuffer, e); }), (e.prototype.applyEffectWrapper = function (e) { this.engine.enableEffect(e.effect), this.bindBuffers(e.effect), e.onApplyObservable.notifyObservers({}); }), (e.prototype.draw = function () { this.engine.drawElementsType(0, 0, 6); }), (e.prototype.render = function (e, t) { var n = this; void 0 === t && (t = null), Array.isArray(e) || (e = [e]); for (var i = 0, r = e; i < r.length; i++) { if (!r[i].effect.isReady()) return; } e.forEach(function (i, r) { var o = t; 0 !== r && i.effect.onBindObservable.addOnce(function () { i.effect.setTexture("textureSampler", n._getNextFrameBuffer(!1)); }), (o = e.length > 1 && r != e.length - 1 ? n._getNextFrameBuffer() : t), n.setViewport(), n.applyEffectWrapper(i), o && n.engine.bindFramebuffer(o.getInternalTexture()), n.draw(), o && n.engine.unBindFramebuffer(o.getInternalTexture()); }); }), (e.prototype.dispose = function () { this._ringScreenBuffer && (this._ringScreenBuffer.forEach(function (e) { e.dispose(); }), (this._ringScreenBuffer = null)); var e = this._vertexBuffers[wn.b.PositionKind]; e && (e.dispose(), delete this._vertexBuffers[wn.b.PositionKind]), this._indexBuffer && this.engine._releaseBuffer(this._indexBuffer); }), (e._DefaultOptions = { positions: [1, 1, -1, 1, -1, -1, 1, -1], indices: [0, 1, 2, 0, 2, 3] }), e ); })()), Xc = (function () { function e(e) { var t, n = this; this.onApplyObservable = new o.c(); var i = e.uniformNames || []; e.vertexShader ? (t = { fragmentSource: e.fragmentShader, vertexSource: e.vertexShader, spectorName: e.name || "effectWrapper" }) : (i.push("scale"), (t = { fragmentSource: e.fragmentShader, vertex: "postprocess", spectorName: e.name || "effectWrapper" }), this.onApplyObservable.add(function () { n.effect.setFloat2("scale", 1, 1); })), (this.effect = new Xt.a(t, e.attributeNames || ["position"], i, e.samplerNames, e.engine)); } return ( (e.prototype.dispose = function () { this.effect.dispose(); }), e ); })(), Yc = n(167), Kc = n(78), Zc = 0, qc = (function () { function e(e, t, n) { (this.pos = e), (this.normal = t), (this.uv = n); } return ( (e.prototype.clone = function () { return new e(this.pos.clone(), this.normal.clone(), this.uv.clone()); }), (e.prototype.flip = function () { this.normal = this.normal.scale(-1); }), (e.prototype.interpolate = function (t, n) { return new e(a.e.Lerp(this.pos, t.pos, n), a.e.Lerp(this.normal, t.normal, n), a.d.Lerp(this.uv, t.uv, n)); }), e ); })(), Qc = (function () { function e(e, t) { (this.normal = e), (this.w = t); } return ( (e.FromPoints = function (t, n, i) { var r = i.subtract(t), o = n.subtract(t); if (0 === r.lengthSquared() || 0 === o.lengthSquared()) return null; var s = a.e.Normalize(a.e.Cross(r, o)); return new e(s, a.e.Dot(s, t)); }), (e.prototype.clone = function () { return new e(this.normal.clone(), this.w); }), (e.prototype.flip = function () { this.normal.scaleInPlace(-1), (this.w = -this.w); }), (e.prototype.splitPolygon = function (t, n, i, r, o) { var s, c, l = 0, u = []; for (s = 0; s < t.vertices.length; s++) { var h = (c = a.e.Dot(this.normal, t.vertices[s].pos) - this.w) < -e.EPSILON ? 2 : c > e.EPSILON ? 1 : 0; (l |= h), u.push(h); } switch (l) { case 0: (a.e.Dot(this.normal, t.plane.normal) > 0 ? n : i).push(t); break; case 1: r.push(t); break; case 2: o.push(t); break; case 3: var d, p = [], f = []; for (s = 0; s < t.vertices.length; s++) { var m = (s + 1) % t.vertices.length, g = u[s], b = u[m], _ = t.vertices[s], v = t.vertices[m]; if ((2 !== g && p.push(_), 1 !== g && f.push(2 !== g ? _.clone() : _), 3 == (g | b))) { c = (this.w - a.e.Dot(this.normal, _.pos)) / a.e.Dot(this.normal, v.pos.subtract(_.pos)); var y = _.interpolate(v, c); p.push(y), f.push(y.clone()); } } p.length >= 3 && (d = new Jc(p, t.shared)).plane && r.push(d), f.length >= 3 && (d = new Jc(f, t.shared)).plane && o.push(d); } }), (e.EPSILON = 1e-5), e ); })(), Jc = (function () { function e(e, t) { (this.vertices = e), (this.shared = t), (this.plane = Qc.FromPoints(e[0].pos, e[1].pos, e[2].pos)); } return ( (e.prototype.clone = function () { return new e( this.vertices.map(function (e) { return e.clone(); }), this.shared ); }), (e.prototype.flip = function () { this.vertices.reverse().map(function (e) { e.flip(); }), this.plane.flip(); }), e ); })(), $c = (function () { function e(e) { (this.plane = null), (this.front = null), (this.back = null), (this.polygons = new Array()), e && this.build(e); } return ( (e.prototype.clone = function () { var t = new e(); return ( (t.plane = this.plane && this.plane.clone()), (t.front = this.front && this.front.clone()), (t.back = this.back && this.back.clone()), (t.polygons = this.polygons.map(function (e) { return e.clone(); })), t ); }), (e.prototype.invert = function () { for (var e = 0; e < this.polygons.length; e++) this.polygons[e].flip(); this.plane && this.plane.flip(), this.front && this.front.invert(), this.back && this.back.invert(); var t = this.front; (this.front = this.back), (this.back = t); }), (e.prototype.clipPolygons = function (e) { if (!this.plane) return e.slice(); for (var t = new Array(), n = new Array(), i = 0; i < e.length; i++) this.plane.splitPolygon(e[i], t, n, t, n); return this.front && (t = this.front.clipPolygons(t)), (n = this.back ? this.back.clipPolygons(n) : []), t.concat(n); }), (e.prototype.clipTo = function (e) { (this.polygons = e.clipPolygons(this.polygons)), this.front && this.front.clipTo(e), this.back && this.back.clipTo(e); }), (e.prototype.allPolygons = function () { var e = this.polygons.slice(); return this.front && (e = e.concat(this.front.allPolygons())), this.back && (e = e.concat(this.back.allPolygons())), e; }), (e.prototype.build = function (t) { if (t.length) { this.plane || (this.plane = t[0].plane.clone()); for (var n = new Array(), i = new Array(), r = 0; r < t.length; r++) this.plane.splitPolygon(t[r], this.polygons, this.polygons, n, i); n.length && (this.front || (this.front = new e()), this.front.build(n)), i.length && (this.back || (this.back = new e()), this.back.build(i)); } }), e ); })(), el = (function () { function e() { this.polygons = new Array(); } return ( (e.FromMesh = function (t) { var n, i, r, o, s, c, l, u, h, d, p = new Array(), f = null; if (!(t instanceof Ee.a)) throw "BABYLON.CSG: Wrong Mesh type, must be BABYLON.Mesh"; t.computeWorldMatrix(!0), (l = t.getWorldMatrix()), (u = t.position.clone()), (h = t.rotation.clone()), t.rotationQuaternion && (f = t.rotationQuaternion.clone()), (d = t.scaling.clone()); for (var m = t.getIndices(), g = t.getVerticesData(wn.b.PositionKind), b = t.getVerticesData(wn.b.NormalKind), _ = t.getVerticesData(wn.b.UVKind), v = t.subMeshes, y = 0, C = v.length; y < C; y++) for (var P = v[y].indexStart, x = v[y].indexCount + v[y].indexStart; P < x; P += 3) { c = []; for (var T = 0; T < 3; T++) { var S = new a.e(b[3 * m[P + T]], b[3 * m[P + T] + 1], b[3 * m[P + T] + 2]); r = new a.d(_[2 * m[P + T]], _[2 * m[P + T] + 1]); var O = new a.e(g[3 * m[P + T]], g[3 * m[P + T] + 1], g[3 * m[P + T] + 2]); (o = a.e.TransformCoordinates(O, l)), (i = a.e.TransformNormal(S, l)), (n = new qc(o, i, r)), c.push(n); } (s = new Jc(c, { subMeshId: y, meshId: Zc, materialIndex: v[y].materialIndex })).plane && p.push(s); } var E = e.FromPolygons(p); return (E.matrix = l), (E.position = u), (E.rotation = h), (E.scaling = d), (E.rotationQuaternion = f), Zc++, E; }), (e.FromPolygons = function (t) { var n = new e(); return (n.polygons = t), n; }), (e.prototype.clone = function () { var t = new e(); return ( (t.polygons = this.polygons.map(function (e) { return e.clone(); })), t.copyTransformAttributes(this), t ); }), (e.prototype.union = function (t) { var n = new $c(this.clone().polygons), i = new $c(t.clone().polygons); return n.clipTo(i), i.clipTo(n), i.invert(), i.clipTo(n), i.invert(), n.build(i.allPolygons()), e.FromPolygons(n.allPolygons()).copyTransformAttributes(this); }), (e.prototype.unionInPlace = function (e) { var t = new $c(this.polygons), n = new $c(e.polygons); t.clipTo(n), n.clipTo(t), n.invert(), n.clipTo(t), n.invert(), t.build(n.allPolygons()), (this.polygons = t.allPolygons()); }), (e.prototype.subtract = function (t) { var n = new $c(this.clone().polygons), i = new $c(t.clone().polygons); return n.invert(), n.clipTo(i), i.clipTo(n), i.invert(), i.clipTo(n), i.invert(), n.build(i.allPolygons()), n.invert(), e.FromPolygons(n.allPolygons()).copyTransformAttributes(this); }), (e.prototype.subtractInPlace = function (e) { var t = new $c(this.polygons), n = new $c(e.polygons); t.invert(), t.clipTo(n), n.clipTo(t), n.invert(), n.clipTo(t), n.invert(), t.build(n.allPolygons()), t.invert(), (this.polygons = t.allPolygons()); }), (e.prototype.intersect = function (t) { var n = new $c(this.clone().polygons), i = new $c(t.clone().polygons); return n.invert(), i.clipTo(n), i.invert(), n.clipTo(i), i.clipTo(n), n.build(i.allPolygons()), n.invert(), e.FromPolygons(n.allPolygons()).copyTransformAttributes(this); }), (e.prototype.intersectInPlace = function (e) { var t = new $c(this.polygons), n = new $c(e.polygons); t.invert(), n.clipTo(t), n.invert(), t.clipTo(n), n.clipTo(t), t.build(n.allPolygons()), t.invert(), (this.polygons = t.allPolygons()); }), (e.prototype.inverse = function () { var e = this.clone(); return e.inverseInPlace(), e; }), (e.prototype.inverseInPlace = function () { this.polygons.map(function (e) { e.flip(); }); }), (e.prototype.copyTransformAttributes = function (e) { return (this.matrix = e.matrix), (this.position = e.position), (this.rotation = e.rotation), (this.scaling = e.scaling), (this.rotationQuaternion = e.rotationQuaternion), this; }), (e.prototype.buildMeshGeometry = function (e, t, n) { var i = this.matrix.clone(); i.invert(); var r, o, s, c = new Ee.a(e, t), l = [], u = [], h = [], d = [], p = a.e.Zero(), f = a.e.Zero(), m = a.d.Zero(), g = this.polygons, b = [0, 0, 0], _ = {}, v = 0, y = {}; n && g.sort(function (e, t) { return e.shared.meshId === t.shared.meshId ? e.shared.subMeshId - t.shared.subMeshId : e.shared.meshId - t.shared.meshId; }); for (var C = 0, P = g.length; C < P; C++) { y[(r = g[C]).shared.meshId] || (y[r.shared.meshId] = {}), y[r.shared.meshId][r.shared.subMeshId] || (y[r.shared.meshId][r.shared.subMeshId] = { indexStart: 1 / 0, indexEnd: -1 / 0, materialIndex: r.shared.materialIndex }), (s = y[r.shared.meshId][r.shared.subMeshId]); for (var x = 2, T = r.vertices.length; x < T; x++) { (b[0] = 0), (b[1] = x - 1), (b[2] = x); for (var S = 0; S < 3; S++) { p.copyFrom(r.vertices[b[S]].pos), f.copyFrom(r.vertices[b[S]].normal), m.copyFrom(r.vertices[b[S]].uv); var O = a.e.TransformCoordinates(p, i), E = a.e.TransformNormal(f, i); (void 0 !== (o = _[O.x + "," + O.y + "," + O.z]) && h[3 * o] === E.x && h[3 * o + 1] === E.y && h[3 * o + 2] === E.z && d[2 * o] === m.x && d[2 * o + 1] === m.y) || (l.push(O.x, O.y, O.z), d.push(m.x, m.y), h.push(f.x, f.y, f.z), (o = _[O.x + "," + O.y + "," + O.z] = l.length / 3 - 1)), u.push(o), (s.indexStart = Math.min(v, s.indexStart)), (s.indexEnd = Math.max(v, s.indexEnd)), v++; } } } if ((c.setVerticesData(wn.b.PositionKind, l), c.setVerticesData(wn.b.NormalKind, h), c.setVerticesData(wn.b.UVKind, d), c.setIndices(u, null), n)) { var M, A = 0; for (var I in ((c.subMeshes = new Array()), y)) { for (var D in ((M = -1), y[I])) (s = y[I][D]), Kc.b.CreateFromIndices(s.materialIndex + A, s.indexStart, s.indexEnd - s.indexStart + 1, c), (M = Math.max(s.materialIndex, M)); A += ++M; } } return c; }), (e.prototype.toMesh = function (e, t, n, i) { void 0 === t && (t = null); var r = this.buildMeshGeometry(e, n, i); return ( (r.material = t), r.position.copyFrom(this.position), r.rotation.copyFrom(this.rotation), this.rotationQuaternion && (r.rotationQuaternion = this.rotationQuaternion.clone()), r.scaling.copyFrom(this.scaling), r.computeWorldMatrix(!0), r ); }), e ); })(), tl = (function (e) { function t(t, n, i, r, o, s) { void 0 === r && (r = 1), void 0 === o && (o = 60), void 0 === s && (s = !0); var c = e.call(this, t, i) || this; (c._sectionPolygonPointsCount = 4), (c._running = !1), (c._autoStart = s), (c._generator = n), (c._diameter = r), (c._length = o), (c._sectionVectors = []), (c._sectionNormalVectors = []); for (var l = 0; l < c._sectionPolygonPointsCount; l++) (c._sectionVectors[l] = a.e.Zero()), (c._sectionNormalVectors[l] = a.e.Zero()); return c._createMesh(), c; } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "TrailMesh"; }), (t.prototype._createMesh = function () { var e = new Rn.a(), t = [], n = [], i = [], r = a.e.Zero(); r = this._generator instanceof ke.a && this._generator._boundingInfo ? this._generator._boundingInfo.boundingBox.centerWorld : this._generator.position; for (var o = (2 * Math.PI) / this._sectionPolygonPointsCount, s = 0; s < this._sectionPolygonPointsCount; s++) t.push(r.x + Math.cos(s * o) * this._diameter, r.y + Math.sin(s * o) * this._diameter, r.z); for (s = 1; s <= this._length; s++) { for (var c = 0; c < this._sectionPolygonPointsCount; c++) t.push(r.x + Math.cos(c * o) * this._diameter, r.y + Math.sin(c * o) * this._diameter, r.z); var l = t.length / 3 - 2 * this._sectionPolygonPointsCount; for (c = 0; c < this._sectionPolygonPointsCount - 1; c++) i.push(l + c, l + c + this._sectionPolygonPointsCount, l + c + this._sectionPolygonPointsCount + 1), i.push(l + c, l + c + this._sectionPolygonPointsCount + 1, l + c + 1); i.push(l + this._sectionPolygonPointsCount - 1, l + this._sectionPolygonPointsCount - 1 + this._sectionPolygonPointsCount, l + this._sectionPolygonPointsCount), i.push(l + this._sectionPolygonPointsCount - 1, l + this._sectionPolygonPointsCount, l); } Rn.a.ComputeNormals(t, i, n), (e.positions = t), (e.normals = n), (e.indices = i), e.applyToMesh(this, !0), this._autoStart && this.start(); }), (t.prototype.start = function () { var e = this; this._running || ((this._running = !0), (this._beforeRenderObserver = this.getScene().onBeforeRenderObservable.add(function () { e.update(); }))); }), (t.prototype.stop = function () { this._beforeRenderObserver && this._running && ((this._running = !1), this.getScene().onBeforeRenderObservable.remove(this._beforeRenderObserver)); }), (t.prototype.update = function () { var e = this.getVerticesData(wn.b.PositionKind), t = this.getVerticesData(wn.b.NormalKind), n = this._generator.getWorldMatrix(); if (e && t) { for (var i = 3 * this._sectionPolygonPointsCount; i < e.length; i++) e[i - 3 * this._sectionPolygonPointsCount] = e[i] - (t[i] / this._length) * this._diameter; for (i = 3 * this._sectionPolygonPointsCount; i < t.length; i++) t[i - 3 * this._sectionPolygonPointsCount] = t[i]; var r = e.length - 3 * this._sectionPolygonPointsCount, o = (2 * Math.PI) / this._sectionPolygonPointsCount; for (i = 0; i < this._sectionPolygonPointsCount; i++) this._sectionVectors[i].copyFromFloats(Math.cos(i * o) * this._diameter, Math.sin(i * o) * this._diameter, 0), this._sectionNormalVectors[i].copyFromFloats(Math.cos(i * o), Math.sin(i * o), 0), a.e.TransformCoordinatesToRef(this._sectionVectors[i], n, this._sectionVectors[i]), a.e.TransformNormalToRef(this._sectionNormalVectors[i], n, this._sectionNormalVectors[i]); for (i = 0; i < this._sectionPolygonPointsCount; i++) (e[r + 3 * i] = this._sectionVectors[i].x), (e[r + 3 * i + 1] = this._sectionVectors[i].y), (e[r + 3 * i + 2] = this._sectionVectors[i].z), (t[r + 3 * i] = this._sectionNormalVectors[i].x), (t[r + 3 * i + 1] = this._sectionNormalVectors[i].y), (t[r + 3 * i + 2] = this._sectionNormalVectors[i].z); this.updateVerticesData(wn.b.PositionKind, e, !0, !1), this.updateVerticesData(wn.b.NormalKind, t, !0, !1); } }), (t.prototype.clone = function (e, n) { return void 0 === e && (e = ""), new t(e, void 0 === n ? this._generator : n, this.getScene(), this._diameter, this._length, this._autoStart); }), (t.prototype.serialize = function (t) { e.prototype.serialize.call(this, t); }), (t.Parse = function (e, n) { return new t(e.name, e._generator, n, e._diameter, e._length, e._autoStart); }), t ); })(Ee.a), nl = n(149); (Rn.a.CreateDisc = function (e) { var t = new Array(), n = new Array(), i = new Array(), r = new Array(), o = e.radius || 0.5, a = e.tessellation || 64, s = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1, c = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE; t.push(0, 0, 0), r.push(0.5, 0.5); for (var l = 2 * Math.PI * s, u = l / a, h = 0; h < l; h += u) { var d = Math.cos(h), p = Math.sin(h), f = (d + 1) / 2, m = (1 - p) / 2; t.push(o * d, o * p, 0), r.push(f, m); } 1 === s && (t.push(t[3], t[4], t[5]), r.push(r[2], r[3])); for (var g = t.length / 3, b = 1; b < g - 1; b++) n.push(b + 1, 0, b); Rn.a.ComputeNormals(t, n, i), Rn.a._ComputeSides(c, t, n, i, r, e.frontUVs, e.backUVs); var _ = new Rn.a(); return (_.indices = n), (_.positions = t), (_.normals = i), (_.uvs = r), _; }), (Ee.a.CreateDisc = function (e, t, n, i, r, o) { void 0 === i && (i = null); var a = { radius: t, tessellation: n, sideOrientation: o, updatable: r }; return il.CreateDisc(e, a, i); }); var il = (function () { function e() {} return ( (e.CreateDisc = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateDisc(t).applyToMesh(i, t.updatable), i; }), e ); })(); Rn.a.CreateTiledBox = function (e) { for ( var t = e.faceUV || new Array(6), n = e.faceColors, i = e.pattern || Ee.a.NO_FLIP, r = e.width || e.size || 1, o = e.height || e.size || 1, c = e.depth || e.size || 1, l = e.tileWidth || e.tileSize || 1, u = e.tileHeight || e.tileSize || 1, h = e.alignHorizontal || 0, d = e.alignVertical || 0, p = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, f = 0; f < 6; f++ ) void 0 === t[f] && (t[f] = new a.f(0, 0, 1, 1)), n && void 0 === n[f] && (n[f] = new s.b(1, 1, 1, 1)); var m = r / 2, g = o / 2, b = c / 2, _ = []; for (f = 0; f < 2; f++) _[f] = Rn.a.CreateTiledPlane({ pattern: i, tileWidth: l, tileHeight: u, width: r, height: o, alignVertical: d, alignHorizontal: h, sideOrientation: p }); for (f = 2; f < 4; f++) _[f] = Rn.a.CreateTiledPlane({ pattern: i, tileWidth: l, tileHeight: u, width: c, height: o, alignVertical: d, alignHorizontal: h, sideOrientation: p }); var v = d; d === Ee.a.BOTTOM ? (v = Ee.a.TOP) : d === Ee.a.TOP && (v = Ee.a.BOTTOM); for (f = 4; f < 6; f++) _[f] = Rn.a.CreateTiledPlane({ pattern: i, tileWidth: l, tileHeight: u, width: r, height: c, alignVertical: v, alignHorizontal: h, sideOrientation: p }); var y = [], C = [], P = [], x = [], T = [], S = [], O = [], E = [], M = 0, A = 0, I = 0; for (f = 0; f < 6; f++) { M = _[f].positions.length; (S[f] = []), (O[f] = []); for (var D = 0; D < M / 3; D++) S[f].push(new a.e(_[f].positions[3 * D], _[f].positions[3 * D + 1], _[f].positions[3 * D + 2])), O[f].push(new a.e(_[f].normals[3 * D], _[f].normals[3 * D + 1], _[f].normals[3 * D + 2])); (A = _[f].uvs.length), (E[f] = []); for (var R = 0; R < A; R += 2) (E[f][R] = t[f].x + (t[f].z - t[f].x) * _[f].uvs[R]), (E[f][R + 1] = t[f].y + (t[f].w - t[f].y) * _[f].uvs[R + 1]); if ( ((P = P.concat(E[f])), (x = x.concat( _[f].indices.map(function (e) { return e + I; }) )), (I += S[f].length), n) ) for (var w = 0; w < 4; w++) T.push(n[f].r, n[f].g, n[f].b, n[f].a); } var L = new a.e(0, 0, b), F = a.a.RotationY(Math.PI); (y = S[0] .map(function (e) { return a.e.TransformNormal(e, F).add(L); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, [])), (C = O[0] .map(function (e) { return a.e.TransformNormal(e, F); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, [])), (y = y.concat( S[1] .map(function (e) { return e.subtract(L); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )), (C = C.concat( O[1] .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )); var N = new a.e(m, 0, 0), k = a.a.RotationY(-Math.PI / 2); (y = y.concat( S[2] .map(function (e) { return a.e.TransformNormal(e, k).add(N); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )), (C = C.concat( O[2] .map(function (e) { return a.e.TransformNormal(e, k); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )); var z = a.a.RotationY(Math.PI / 2); (y = y.concat( S[3] .map(function (e) { return a.e.TransformNormal(e, z).subtract(N); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )), (C = C.concat( O[3] .map(function (e) { return a.e.TransformNormal(e, z); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )); var j = new a.e(0, g, 0), B = a.a.RotationX(Math.PI / 2); (y = y.concat( S[4] .map(function (e) { return a.e.TransformNormal(e, B).add(j); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )), (C = C.concat( O[4] .map(function (e) { return a.e.TransformNormal(e, B); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )); var V = a.a.RotationX(-Math.PI / 2); (y = y.concat( S[5] .map(function (e) { return a.e.TransformNormal(e, V).subtract(j); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )), (C = C.concat( O[5] .map(function (e) { return a.e.TransformNormal(e, V); }) .map(function (e) { return [e.x, e.y, e.z]; }) .reduce(function (e, t) { return e.concat(t); }, []) )), Rn.a._ComputeSides(p, y, x, C, P); var G = new Rn.a(); if (((G.indices = x), (G.positions = y), (G.normals = C), (G.uvs = P), n)) { var U = p === Rn.a.DOUBLESIDE ? T.concat(T) : T; G.colors = U; } return G; }; var rl = (function () { function e() {} return ( (e.CreateTiledBox = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTiledBox(t).applyToMesh(i, t.updatable), i; }), e ); })(); (Rn.a.CreateTorusKnot = function (e) { var t, n, i = new Array(), r = new Array(), o = new Array(), s = new Array(), c = e.radius || 2, l = e.tube || 0.5, u = e.radialSegments || 32, h = e.tubularSegments || 32, d = e.p || 2, p = e.q || 3, f = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE, m = function (e) { var t = Math.cos(e), n = Math.sin(e), i = (p / d) * e, r = Math.cos(i), o = c * (2 + r) * 0.5 * t, s = c * (2 + r) * n * 0.5, l = c * Math.sin(i) * 0.5; return new a.e(o, s, l); }; for (t = 0; t <= u; t++) { var g = ((t % u) / u) * 2 * d * Math.PI, b = m(g), _ = m(g + 0.01), v = _.subtract(b), y = _.add(b), C = a.e.Cross(v, y); for (y = a.e.Cross(C, v), C.normalize(), y.normalize(), n = 0; n < h; n++) { var P = ((n % h) / h) * 2 * Math.PI, x = -l * Math.cos(P), T = l * Math.sin(P); r.push(b.x + x * y.x + T * C.x), r.push(b.y + x * y.y + T * C.y), r.push(b.z + x * y.z + T * C.z), s.push(t / u), s.push(n / h); } } for (t = 0; t < u; t++) for (n = 0; n < h; n++) { var S = (n + 1) % h, O = t * h + n, E = (t + 1) * h + n, M = (t + 1) * h + S, A = t * h + S; i.push(A), i.push(E), i.push(O), i.push(A), i.push(M), i.push(E); } Rn.a.ComputeNormals(r, i, o), Rn.a._ComputeSides(f, r, i, o, s, e.frontUVs, e.backUVs); var I = new Rn.a(); return (I.indices = i), (I.positions = r), (I.normals = o), (I.uvs = s), I; }), (Ee.a.CreateTorusKnot = function (e, t, n, i, r, o, a, s, c, l) { var u = { radius: t, tube: n, radialSegments: i, tubularSegments: r, p: o, q: a, sideOrientation: l, updatable: c }; return ol.CreateTorusKnot(e, u, s); }); var ol = (function () { function e() {} return ( (e.CreateTorusKnot = function (e, t, n) { var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTorusKnot(t).applyToMesh(i, t.updatable), i; }), e ); })(), al = (function (e) { function t(t, n) { var i = e.call(this, t.x, t.y) || this; return (i.index = n), i; } return Object(h.d)(t, e), t; })(a.d), sl = (function () { function e() { this.elements = new Array(); } return ( (e.prototype.add = function (e) { var t = this, n = new Array(); return ( e.forEach(function (e) { if (0 === n.length || !e.equalsWithEpsilon(n[0])) { var i = new al(e, t.elements.length); n.push(i), t.elements.push(i); } }), n ); }), (e.prototype.computeBounds = function () { var e = new a.d(this.elements[0].x, this.elements[0].y), t = new a.d(this.elements[0].x, this.elements[0].y); return ( this.elements.forEach(function (n) { n.x < e.x ? (e.x = n.x) : n.x > t.x && (t.x = n.x), n.y < e.y ? (e.y = n.y) : n.y > t.y && (t.y = n.y); }), { min: e, max: t, width: t.x - e.x, height: t.y - e.y } ); }), e ); })(), cl = (function () { function e() {} return ( (e.Rectangle = function (e, t, n, i) { return [new a.d(e, t), new a.d(n, t), new a.d(n, i), new a.d(e, i)]; }), (e.Circle = function (e, t, n, i) { void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 32); for (var r = new Array(), o = 0, s = (2 * Math.PI) / i, c = 0; c < i; c++) r.push(new a.d(t + Math.cos(o) * e, n + Math.sin(o) * e)), (o -= s); return r; }), (e.Parse = function (e) { var t, n = e .split(/[^-+eE\.\d]+/) .map(parseFloat) .filter(function (e) { return !isNaN(e); }), i = []; for (t = 0; t < (2147483646 & n.length); t += 2) i.push(new a.d(n[t], n[t + 1])); return i; }), (e.StartingAt = function (e, t) { return U.StartingAt(e, t); }), e ); })(), ll = (function () { function e(e, t, n, i) { var r; void 0 === i && (i = earcut), (this._points = new sl()), (this._outlinepoints = new sl()), (this._holes = new Array()), (this._epoints = new Array()), (this._eholes = new Array()), (this.bjsEarcut = i), (this._name = e), (this._scene = n || ue.a.LastCreatedScene), (r = t instanceof U ? t.getPoints() : t), this._addToepoint(r), this._points.add(r), this._outlinepoints.add(r), void 0 === this.bjsEarcut && g.a.Warn("Earcut was not found, the polygon will not be built."); } return ( (e.prototype._addToepoint = function (e) { for (var t = 0, n = e; t < n.length; t++) { var i = n[t]; this._epoints.push(i.x, i.y); } }), (e.prototype.addHole = function (e) { this._points.add(e); var t = new sl(); return t.add(e), this._holes.push(t), this._eholes.push(this._epoints.length / 2), this._addToepoint(e), this; }), (e.prototype.build = function (e, t) { void 0 === e && (e = !1), void 0 === t && (t = 0); var n = new Ee.a(this._name, this._scene), i = this.buildVertexData(t); return n.setVerticesData(wn.b.PositionKind, i.positions, e), n.setVerticesData(wn.b.NormalKind, i.normals, e), n.setVerticesData(wn.b.UVKind, i.uvs, e), n.setIndices(i.indices), n; }), (e.prototype.buildVertexData = function (e) { var t = this; void 0 === e && (e = 0); var n = new Rn.a(), i = new Array(), r = new Array(), o = new Array(), a = this._points.computeBounds(); this._points.elements.forEach(function (e) { i.push(0, 1, 0), r.push(e.x, 0, e.y), o.push((e.x - a.min.x) / a.width, (e.y - a.min.y) / a.height); }); for (var s = new Array(), c = this.bjsEarcut(this._epoints, this._eholes, 2), l = 0; l < c.length; l++) s.push(c[l]); if (e > 0) { var u = r.length / 3; this._points.elements.forEach(function (t) { i.push(0, -1, 0), r.push(t.x, -e, t.y), o.push(1 - (t.x - a.min.x) / a.width, 1 - (t.y - a.min.y) / a.height); }); var h = s.length; for (l = 0; l < h; l += 3) { var d = s[l + 0], p = s[l + 1], f = s[l + 2]; s.push(f + u), s.push(p + u), s.push(d + u); } this.addSide(r, i, o, s, a, this._outlinepoints, e, !1), this._holes.forEach(function (n) { t.addSide(r, i, o, s, a, n, e, !0); }); } return (n.indices = s), (n.positions = r), (n.normals = i), (n.uvs = o), n; }), (e.prototype.addSide = function (e, t, n, i, r, o, s, c) { for (var l = e.length / 3, u = 0, h = 0; h < o.elements.length; h++) { var d, p = o.elements[h]; (d = h + 1 > o.elements.length - 1 ? o.elements[0] : o.elements[h + 1]), e.push(p.x, 0, p.y), e.push(p.x, -s, p.y), e.push(d.x, 0, d.y), e.push(d.x, -s, d.y); var f = new a.e(p.x, 0, p.y), m = new a.e(d.x, 0, d.y).subtract(f), g = new a.e(0, 1, 0), b = a.e.Cross(m, g); (b = b.normalize()), n.push(u / r.width, 0), n.push(u / r.width, 1), (u += m.length()), n.push(u / r.width, 0), n.push(u / r.width, 1), c ? (t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), i.push(l), i.push(l + 2), i.push(l + 1), i.push(l + 1), i.push(l + 2), i.push(l + 3)) : (t.push(-b.x, -b.y, -b.z), t.push(-b.x, -b.y, -b.z), t.push(-b.x, -b.y, -b.z), t.push(-b.x, -b.y, -b.z), i.push(l), i.push(l + 1), i.push(l + 2), i.push(l + 1), i.push(l + 3), i.push(l + 2)), (l += 4); } }), e ); })(); (Rn.a.CreatePolygon = function (e, t, n, i, r, o) { for (var c = n || new Array(3), l = i, u = [], h = 0; h < 3; h++) void 0 === c[h] && (c[h] = new a.f(0, 0, 1, 1)), l && void 0 === l[h] && (l[h] = new s.b(1, 1, 1, 1)); for (var d = e.getVerticesData(wn.b.PositionKind), p = e.getVerticesData(wn.b.NormalKind), f = e.getVerticesData(wn.b.UVKind), m = e.getIndices(), g = 0, b = 0, _ = 0; _ < p.length; _ += 3) Math.abs(p[_ + 1]) < 0.001 && (b = 1), Math.abs(p[_ + 1] - 1) < 0.001 && (b = 0), Math.abs(p[_ + 1] + 1) < 0.001 && (b = 2), (f[2 * (g = _ / 3)] = (1 - f[2 * g]) * c[b].x + f[2 * g] * c[b].z), (f[2 * g + 1] = (1 - f[2 * g + 1]) * c[b].y + f[2 * g + 1] * c[b].w), l && u.push(l[b].r, l[b].g, l[b].b, l[b].a); Rn.a._ComputeSides(t, d, m, p, f, r, o); var v = new Rn.a(); if (((v.indices = m), (v.positions = d), (v.normals = p), (v.uvs = f), l)) { var y = t === Rn.a.DOUBLESIDE ? u.concat(u) : u; v.colors = y; } return v; }), (Ee.a.CreatePolygon = function (e, t, n, i, r, o, a) { void 0 === a && (a = earcut); var s = { shape: t, holes: i, updatable: r, sideOrientation: o }; return ul.CreatePolygon(e, s, n, a); }), (Ee.a.ExtrudePolygon = function (e, t, n, i, r, o, a, s) { void 0 === s && (s = earcut); var c = { shape: t, holes: r, depth: n, updatable: o, sideOrientation: a }; return ul.ExtrudePolygon(e, c, i, s); }); var ul = (function () { function e() {} return ( (e.CreatePolygon = function (e, t, n, i) { void 0 === n && (n = null), void 0 === i && (i = earcut), (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)); for (var r = t.shape, o = t.holes || [], s = t.depth || 0, c = [], l = [], u = 0; u < r.length; u++) c[u] = new a.d(r[u].x, r[u].z); c[0].equalsWithEpsilon(c[c.length - 1], 1e-8) && c.pop(); for (var h = new ll(e, c, n || E.a.LastCreatedScene, i), d = 0; d < o.length; d++) { l = []; for (var p = 0; p < o[d].length; p++) l.push(new a.d(o[d][p].x, o[d][p].z)); h.addHole(l); } var f = h.build(t.updatable, s); return (f._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreatePolygon(f, t.sideOrientation, t.faceUV, t.faceColors, t.frontUVs, t.backUVs).applyToMesh(f, t.updatable), f; }), (e.ExtrudePolygon = function (t, n, i, r) { return void 0 === i && (i = null), void 0 === r && (r = earcut), e.CreatePolygon(t, n, i, r); }), e ); })(); Ee.a.CreateLathe = function (e, t, n, i, r, o, a) { var s = { shape: t, radius: n, tessellation: i, sideOrientation: a, updatable: o }; return hl.CreateLathe(e, s, r); }; var hl = (function () { function e() {} return ( (e.CreateLathe = function (e, t, n) { void 0 === n && (n = null); var i, r = t.arc ? (t.arc <= 0 || t.arc > 1 ? 1 : t.arc) : 1, o = void 0 === t.closed || t.closed, s = t.shape, c = t.radius || 1, l = t.tessellation || 64, u = t.clip || 0, h = t.updatable, d = Ee.a._GetDefaultSideOrientation(t.sideOrientation), p = t.cap || Ee.a.NO_CAP, f = 2 * Math.PI, m = new Array(), g = t.invertUV || !1, b = 0, _ = 0, v = (f / l) * r, y = new Array(); for (b = 0; b <= l - u; b++) { y = []; for ((p != Ee.a.CAP_START && p != Ee.a.CAP_ALL) || (y.push(new a.e(0, s[0].y, 0)), y.push(new a.e(Math.cos(b * v) * s[0].x * c, s[0].y, Math.sin(b * v) * s[0].x * c))), _ = 0; _ < s.length; _++) (i = new a.e(Math.cos(b * v) * s[_].x * c, s[_].y, Math.sin(b * v) * s[_].x * c)), y.push(i); (p != Ee.a.CAP_END && p != Ee.a.CAP_ALL) || (y.push(new a.e(Math.cos(b * v) * s[s.length - 1].x * c, s[s.length - 1].y, Math.sin(b * v) * s[s.length - 1].x * c)), y.push(new a.e(0, s[s.length - 1].y, 0))), m.push(y); } return wa.CreateRibbon(e, { pathArray: m, closeArray: o, sideOrientation: d, updatable: h, invertUV: g, frontUVs: t.frontUVs, backUVs: t.backUVs }, n); }), e ); })(); Rn.a.CreateTiledPlane = function (e) { var t = e.pattern || Ee.a.NO_FLIP, n = e.tileWidth || e.tileSize || 1, i = e.tileHeight || e.tileSize || 1, r = e.alignHorizontal || 0, o = e.alignVertical || 0, a = e.width || e.size || 1, s = Math.floor(a / n), c = a - s * n, l = e.height || e.size || 1, u = Math.floor(l / i), h = l - u * i, d = (n * s) / 2, p = (i * u) / 2, f = 0, m = 0, g = 0, b = 0, _ = 0, v = 0; if (c > 0 || h > 0) { (g = -d), (b = -p); (_ = d), (v = p); switch (r) { case Ee.a.CENTER: (g -= c /= 2), (_ += c); break; case Ee.a.LEFT: (_ += c), (f = -c / 2); break; case Ee.a.RIGHT: (g -= c), (f = c / 2); } switch (o) { case Ee.a.CENTER: (b -= h /= 2), (v += h); break; case Ee.a.BOTTOM: (v += h), (m = -h / 2); break; case Ee.a.TOP: (b -= h), (m = h / 2); } } var y = [], C = [], P = []; (P[0] = [0, 0, 1, 0, 1, 1, 0, 1]), (P[1] = [0, 0, 1, 0, 1, 1, 0, 1]), (t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (P[1] = [1, 1, 0, 1, 0, 0, 1, 0]), (t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (P[1] = [1, 0, 0, 0, 0, 1, 1, 1]), (t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (P[1] = [0, 1, 1, 1, 1, 0, 0, 0]); for (var x = [], T = [], S = [], O = 0, E = 0; E < u; E++) for (var M = 0; M < s; M++) y.push(M * n - d + f, E * i - p + m, 0), y.push((M + 1) * n - d + f, E * i - p + m, 0), y.push((M + 1) * n - d + f, (E + 1) * i - p + m, 0), y.push(M * n - d + f, (E + 1) * i - p + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (x = t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE ? x.concat(P[((M % 2) + (E % 2)) % 2]) : t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW ? x.concat(P[E % 2]) : x.concat(P[0])), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1), (O += 4); if (c > 0 || h > 0) { var A, I, D, R, w = h > 0 && (o === Ee.a.CENTER || o === Ee.a.TOP), L = h > 0 && (o === Ee.a.CENTER || o === Ee.a.BOTTOM), F = c > 0 && (r === Ee.a.CENTER || r === Ee.a.RIGHT), N = c > 0 && (r === Ee.a.CENTER || r === Ee.a.LEFT), k = []; if ( (w && F && (y.push(g + f, b + m, 0), y.push(-d + f, b + m, 0), y.push(-d + f, b + h + m, 0), y.push(g + f, b + h + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (k = [(A = 1 - c / n), (I = 1 - h / i), (D = 1), I, D, (R = 1), A, R]), t === Ee.a.ROTATE_ROW && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), t === Ee.a.FLIP_ROW && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), t === Ee.a.FLIP_N_ROTATE_ROW && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]), (x = x.concat(k)), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), w && N && (y.push(d + f, b + m, 0), y.push(_ + f, b + m, 0), y.push(_ + f, b + h + m, 0), y.push(d + f, b + h + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (k = [(A = 0), (I = 1 - h / i), (D = c / n), I, D, (R = 1), A, R]), (t === Ee.a.ROTATE_ROW || (t === Ee.a.ROTATE_TILE && s % 2 == 0)) && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), (t === Ee.a.FLIP_ROW || (t === Ee.a.FLIP_TILE && s % 2 == 0)) && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), (t === Ee.a.FLIP_N_ROTATE_ROW || (t === Ee.a.FLIP_N_ROTATE_TILE && s % 2 == 0)) && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]), (x = x.concat(k)), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), L && F && (y.push(g + f, p + m, 0), y.push(-d + f, p + m, 0), y.push(-d + f, v + m, 0), y.push(g + f, v + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (k = [(A = 1 - c / n), (I = 0), (D = 1), I, D, (R = h / i), A, R]), ((t === Ee.a.ROTATE_ROW && u % 2 == 1) || (t === Ee.a.ROTATE_TILE && u % 1 == 0)) && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), ((t === Ee.a.FLIP_ROW && u % 2 == 1) || (t === Ee.a.FLIP_TILE && u % 2 == 0)) && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), ((t === Ee.a.FLIP_N_ROTATE_ROW && u % 2 == 1) || (t === Ee.a.FLIP_N_ROTATE_TILE && u % 2 == 0)) && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]), (x = x.concat(k)), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), L && N && (y.push(d + f, p + m, 0), y.push(_ + f, p + m, 0), y.push(_ + f, v + m, 0), y.push(d + f, v + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (k = [(A = 0), (I = 0), (D = c / n), I, D, (R = h / i), A, R]), ((t === Ee.a.ROTATE_ROW && u % 2 == 1) || (t === Ee.a.ROTATE_TILE && (u + s) % 2 == 1)) && (k = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), ((t === Ee.a.FLIP_ROW && u % 2 == 1) || (t === Ee.a.FLIP_TILE && (u + s) % 2 == 1)) && (k = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), ((t === Ee.a.FLIP_N_ROTATE_ROW && u % 2 == 1) || (t === Ee.a.FLIP_N_ROTATE_TILE && (u + s) % 2 == 1)) && (k = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]), (x = x.concat(k)), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), w) ) { var z = []; (A = 0), (I = 1 - h / i), (D = 1), (R = 1), (z[0] = [A, I, D, I, D, R, A, R]), (z[1] = [A, I, D, I, D, R, A, R]), (t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (z[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), (t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (z[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), (t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (z[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]); for (M = 0; M < s; M++) y.push(M * n - d + f, b + m, 0), y.push((M + 1) * n - d + f, b + m, 0), y.push((M + 1) * n - d + f, b + h + m, 0), y.push(M * n - d + f, b + h + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (x = t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE ? x.concat(z[(M + 1) % 2]) : t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW ? x.concat(z[1]) : x.concat(z[0])), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1); } if (L) { var j = []; (A = 0), (I = 0), (D = 1), (R = h / i), (j[0] = [A, I, D, I, D, R, A, R]), (j[1] = [A, I, D, I, D, R, A, R]), (t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (j[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), (t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (j[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), (t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (j[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]); for (M = 0; M < s; M++) y.push(M * n - d + f, v - h + m, 0), y.push((M + 1) * n - d + f, v - h + m, 0), y.push((M + 1) * n - d + f, v + m, 0), y.push(M * n - d + f, v + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (x = t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE ? x.concat(j[(M + u) % 2]) : t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW ? x.concat(j[u % 2]) : x.concat(j[0])), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1); } if (F) { var B = []; (A = 1 - c / n), (I = 0), (D = 1), (R = 1), (B[0] = [A, I, D, I, D, R, A, R]), (B[1] = [A, I, D, I, D, R, A, R]), (t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (B[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), (t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (B[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), (t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (B[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]); for (E = 0; E < u; E++) y.push(g + f, E * i - p + m, 0), y.push(g + c + f, E * i - p + m, 0), y.push(g + c + f, (E + 1) * i - p + m, 0), y.push(g + f, (E + 1) * i - p + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (x = t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE ? x.concat(B[(E + 1) % 2]) : t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW ? x.concat(B[E % 2]) : x.concat(B[0])), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1); } if (N) { var V = []; (A = 0), (I = 0), (D = c / i), (R = 1), (V[0] = [A, I, D, I, D, R, A, R]), (V[1] = [A, I, D, I, D, R, A, R]), (t !== Ee.a.ROTATE_TILE && t !== Ee.a.ROTATE_ROW) || (V[1] = [1 - A, 1 - I, 1 - D, 1 - I, 1 - D, 1 - R, 1 - A, 1 - R]), (t !== Ee.a.FLIP_TILE && t !== Ee.a.FLIP_ROW) || (V[1] = [1 - A, I, 1 - D, I, 1 - D, R, 1 - A, R]), (t !== Ee.a.FLIP_N_ROTATE_TILE && t !== Ee.a.FLIP_N_ROTATE_ROW) || (V[1] = [A, 1 - I, D, 1 - I, D, 1 - R, A, 1 - R]); for (E = 0; E < u; E++) y.push(_ - c + f, E * i - p + m, 0), y.push(_ + f, E * i - p + m, 0), y.push(_ + f, (E + 1) * i - p + m, 0), y.push(_ - c + f, (E + 1) * i - p + m, 0), S.push(O, O + 1, O + 3, O + 1, O + 2, O + 3), (O += 4), (x = t === Ee.a.FLIP_TILE || t === Ee.a.ROTATE_TILE || t === Ee.a.FLIP_N_ROTATE_TILE ? x.concat(V[(E + s) % 2]) : t === Ee.a.FLIP_ROW || t === Ee.a.ROTATE_ROW || t === Ee.a.FLIP_N_ROTATE_ROW ? x.concat(V[E % 2]) : x.concat(V[0])), T.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), C.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1); } } var G = 0 === e.sideOrientation ? 0 : e.sideOrientation || Rn.a.DEFAULTSIDE; Rn.a._ComputeSides(G, y, S, C, x, e.frontUVs, e.backUVs); var U = new Rn.a(); (U.indices = S), (U.positions = y), (U.normals = C), (U.uvs = x); var H = G === Rn.a.DOUBLESIDE ? T.concat(T) : T; return (U.colors = H), U; }; var dl = (function () { function e() {} return ( (e.CreateTiledPlane = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateTiledPlane(t).applyToMesh(i, t.updatable), i; }), e ); })(); Ee.a.CreateTube = function (e, t, n, i, r, o, a, s, c, l) { var u = { path: t, radius: n, tessellation: i, radiusFunction: r, arc: 1, cap: o, updatable: s, sideOrientation: c, instance: l }; return pl.CreateTube(e, u, a); }; var pl = (function () { function e() {} return ( (e.CreateTube = function (e, t, n) { void 0 === n && (n = null); var i = t.path, r = t.instance, o = 1; void 0 !== t.radius ? (o = t.radius) : r && (o = r._creationDataStorage.radius); var s = t.tessellation || 64, c = t.radiusFunction || null, l = t.cap || Ee.a.NO_CAP, u = t.invertUV || !1, h = t.updatable, d = Ee.a._GetDefaultSideOrientation(t.sideOrientation); t.arc = t.arc && (t.arc <= 0 || t.arc > 1) ? 1 : t.arc || 1; var p, f, m = function (e, t, n, i, r, o, s, c) { for ( var l, u, h, d, p = t.getTangents(), f = t.getNormals(), m = t.getDistances(), g = ((2 * Math.PI) / r) * c, b = o || function () { return i; }, _ = a.c.Matrix[0], v = s === Ee.a.NO_CAP || s === Ee.a.CAP_END ? 0 : 2, y = 0; y < e.length; y++ ) { (u = b(y, m[y])), (l = Array()), (h = f[y]); for (var C = 0; C < r; C++) a.a.RotationAxisToRef(p[y], g * C, _), (d = l[C] ? l[C] : a.e.Zero()), a.e.TransformCoordinatesToRef(h, _, d), d.scaleInPlace(u).addInPlace(e[y]), (l[C] = d); (n[v] = l), v++; } var P = function (t, n) { for (var i = Array(), r = 0; r < t; r++) i.push(e[n]); return i; }; switch (s) { case Ee.a.NO_CAP: break; case Ee.a.CAP_START: (n[0] = P(r, 0)), (n[1] = n[2].slice(0)); break; case Ee.a.CAP_END: (n[v] = n[v - 1].slice(0)), (n[v + 1] = P(r, e.length - 1)); break; case Ee.a.CAP_ALL: (n[0] = P(r, 0)), (n[1] = n[2].slice(0)), (n[v] = n[v - 1].slice(0)), (n[v + 1] = P(r, e.length - 1)); } return n; }; if (r) { var g = r._creationDataStorage, b = t.arc || g.arc; return (f = m(i, (p = g.path3D.update(i)), g.pathArray, o, g.tessellation, c, g.cap, b)), (r = wa.CreateRibbon("", { pathArray: f, instance: r })), (g.path3D = p), (g.pathArray = f), (g.arc = b), (g.radius = o), r; } f = m(i, (p = new H(i)), new Array(), o, s, c, (l = l < 0 || l > 3 ? 0 : l), t.arc); var _ = wa.CreateRibbon(e, { pathArray: f, closePath: !0, closeArray: !1, updatable: h, sideOrientation: d, invertUV: u, frontUVs: t.frontUVs, backUVs: t.backUVs }, n); return ( (_._creationDataStorage.pathArray = f), (_._creationDataStorage.path3D = p), (_._creationDataStorage.tessellation = s), (_._creationDataStorage.cap = l), (_._creationDataStorage.arc = t.arc), (_._creationDataStorage.radius = o), _ ); }), e ); })(); (Rn.a.CreateIcoSphere = function (e) { var t, n = e.sideOrientation || Rn.a.DEFAULTSIDE, i = e.radius || 1, r = void 0 === e.flat || e.flat, o = e.subdivisions || 4, s = e.radiusX || i, c = e.radiusY || i, l = e.radiusZ || i, u = (1 + Math.sqrt(5)) / 2, h = [-1, u, -0, 1, u, 0, -1, -u, 0, 1, -u, 0, 0, -1, -u, 0, 1, -u, 0, -1, u, 0, 1, u, u, 0, 1, u, 0, -1, -u, 0, 1, -u, 0, -1], d = [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 12, 22, 23, 1, 5, 20, 5, 11, 4, 23, 22, 13, 22, 18, 6, 7, 1, 8, 14, 21, 4, 14, 4, 2, 16, 13, 6, 15, 6, 19, 3, 8, 9, 4, 21, 5, 13, 17, 23, 6, 13, 22, 19, 6, 18, 9, 8, 1], p = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 2, 3, 3, 3, 4, 7, 8, 9, 9, 10, 11], f = [5, 1, 3, 1, 6, 4, 0, 0, 5, 3, 4, 2, 2, 2, 4, 0, 2, 0, 1, 1, 6, 0, 6, 2, 0, 4, 3, 3, 4, 4, 3, 1, 4, 2, 4, 4, 0, 2, 1, 1, 2, 2, 3, 3, 1, 3, 2, 4], m = [0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0], g = new Array(), b = new Array(), _ = new Array(), v = new Array(), y = 0, C = new Array(3), P = new Array(3); for (t = 0; t < 3; t++) (C[t] = a.e.Zero()), (P[t] = a.d.Zero()); for (var x = 0; x < 20; x++) { for (t = 0; t < 3; t++) { var T = d[3 * x + t]; C[t].copyFromFloats(h[3 * p[T]], h[3 * p[T] + 1], h[3 * p[T] + 2]), C[t].normalize().scaleInPlace(i), P[t].copyFromFloats(f[2 * T] * (138 / 1024) + 60 / 1024 + m[x] * (-40 / 1024), f[2 * T + 1] * (239 / 1024) + 26 / 1024 + m[x] * (20 / 1024)); } for ( var S = function (e, t, n, i) { var u, h = a.e.Lerp(C[0], C[2], t / o), d = a.e.Lerp(C[1], C[2], t / o), p = o === t ? C[2] : a.e.Lerp(h, d, e / (o - t)); if ((p.normalize(), r)) { var f = a.e.Lerp(C[0], C[2], i / o), m = a.e.Lerp(C[1], C[2], i / o); u = a.e.Lerp(f, m, n / (o - i)); } else u = new a.e(p.x, p.y, p.z); (u.x /= s), (u.y /= c), (u.z /= l), u.normalize(); var x = a.d.Lerp(P[0], P[2], t / o), T = a.d.Lerp(P[1], P[2], t / o), S = o === t ? P[2] : a.d.Lerp(x, T, e / (o - t)); b.push(p.x * s, p.y * c, p.z * l), _.push(u.x, u.y, u.z), v.push(S.x, S.y), g.push(y), y++; }, O = 0; O < o; O++ ) for (var E = 0; E + O < o; E++) S(E, O, E + 1 / 3, O + 1 / 3), S(E + 1, O, E + 1 / 3, O + 1 / 3), S(E, O + 1, E + 1 / 3, O + 1 / 3), E + O + 1 < o && (S(E + 1, O, E + 2 / 3, O + 2 / 3), S(E + 1, O + 1, E + 2 / 3, O + 2 / 3), S(E, O + 1, E + 2 / 3, O + 2 / 3)); } Rn.a._ComputeSides(n, b, g, _, v, e.frontUVs, e.backUVs); var M = new Rn.a(); return (M.indices = g), (M.positions = b), (M.normals = _), (M.uvs = v), M; }), (Ee.a.CreateIcoSphere = function (e, t, n) { return fl.CreateIcoSphere(e, t, n); }); var fl = (function () { function e() {} return ( (e.CreateIcoSphere = function (e, t, n) { void 0 === n && (n = null); var i = new Ee.a(e, n); return (t.sideOrientation = Ee.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), Rn.a.CreateIcoSphere(t).applyToMesh(i, t.updatable), i; }), e ); })(); Ee.a.CreateDecal = function (e, t, n, i, r, o) { var a = { position: n, normal: i, size: r, angle: o }; return gl.CreateDecal(e, t, a); }; var ml, gl = (function () { function e() {} return ( (e.CreateDecal = function (e, t, n) { var i = t.getIndices(), r = t.getVerticesData(wn.b.PositionKind), o = t.getVerticesData(wn.b.NormalKind), s = n.position || a.e.Zero(), c = n.normal || a.e.Up(), l = n.size || a.e.One(), u = n.angle || 0; if (!c) { var h = new a.e(0, 0, 1), d = t.getScene().activeCamera, p = a.e.TransformCoordinates(h, d.getWorldMatrix()); c = d.globalPosition.subtract(p); } var f = -Math.atan2(c.z, c.x) - Math.PI / 2, m = Math.sqrt(c.x * c.x + c.z * c.z), g = Math.atan2(c.y, m), b = a.a.RotationYawPitchRoll(f, g, u).multiply(a.a.Translation(s.x, s.y, s.z)), _ = a.a.Invert(b), v = t.getWorldMatrix().multiply(_), y = new Rn.a(); (y.indices = []), (y.positions = []), (y.normals = []), (y.uvs = []); for ( var C = 0, P = function (e) { var t = new Ao(); if (!i || !r || !o) return t; var n = i[e]; return ( (t.position = new a.e(r[3 * n], r[3 * n + 1], r[3 * n + 2])), (t.position = a.e.TransformCoordinates(t.position, v)), (t.normal = new a.e(o[3 * n], o[3 * n + 1], o[3 * n + 2])), (t.normal = a.e.TransformNormal(t.normal, v)), t ); }, x = function (e, t) { if (0 === e.length) return e; for ( var n = 0.5 * Math.abs(a.e.Dot(l, t)), i = function (e, i) { var r = a.e.GetClipFactor(e.position, i.position, t, n); return new Ao(a.e.Lerp(e.position, i.position, r), a.e.Lerp(e.normal, i.normal, r)); }, r = new Array(), o = 0; o < e.length; o += 3 ) { var s, c, u, h = null, d = null, p = null, f = null; switch (((s = a.e.Dot(e[o].position, t) - n > 0) ? 1 : 0) + ((c = a.e.Dot(e[o + 1].position, t) - n > 0) ? 1 : 0) + ((u = a.e.Dot(e[o + 2].position, t) - n > 0) ? 1 : 0)) { case 0: r.push(e[o]), r.push(e[o + 1]), r.push(e[o + 2]); break; case 1: if ((s && ((h = e[o + 1]), (d = e[o + 2]), (p = i(e[o], h)), (f = i(e[o], d))), c)) { (h = e[o]), (d = e[o + 2]), (p = i(e[o + 1], h)), (f = i(e[o + 1], d)), r.push(p), r.push(d.clone()), r.push(h.clone()), r.push(d.clone()), r.push(p.clone()), r.push(f); break; } u && ((h = e[o]), (d = e[o + 1]), (p = i(e[o + 2], h)), (f = i(e[o + 2], d))), h && d && p && f && (r.push(h.clone()), r.push(d.clone()), r.push(p), r.push(f), r.push(p.clone()), r.push(d.clone())); break; case 2: s || ((d = i((h = e[o].clone()), e[o + 1])), (p = i(h, e[o + 2])), r.push(h), r.push(d), r.push(p)), c || ((d = i((h = e[o + 1].clone()), e[o + 2])), (p = i(h, e[o])), r.push(h), r.push(d), r.push(p)), u || ((d = i((h = e[o + 2].clone()), e[o])), (p = i(h, e[o + 1])), r.push(h), r.push(d), r.push(p)); } } return r; }, T = 0; T < i.length; T += 3 ) { var S = new Array(); if ( (S.push(P(T)), S.push(P(T + 1)), S.push(P(T + 2)), (S = x(S, new a.e(1, 0, 0))), (S = x(S, new a.e(-1, 0, 0))), (S = x(S, new a.e(0, 1, 0))), (S = x(S, new a.e(0, -1, 0))), (S = x(S, new a.e(0, 0, 1))), 0 !== (S = x(S, new a.e(0, 0, -1))).length) ) for (var O = 0; O < S.length; O++) { var E = S[O]; y.indices.push(C), E.position.toArray(y.positions, 3 * C), E.normal.toArray(y.normals, 3 * C), y.uvs.push(0.5 + E.position.x / l.x), y.uvs.push(0.5 + E.position.y / l.y), C++; } } var M = new Ee.a(e, t.getScene()); return y.applyToMesh(M), (M.position = s.clone()), (M.rotation = new a.e(g, f, u)), M; }), e ); })(), bl = (function () { function e() {} return ( (e.CreateBox = function (e, t, n) { return void 0 === n && (n = null), fi.a.CreateBox(e, t, n); }), (e.CreateTiledBox = function (e, t, n) { return void 0 === n && (n = null), rl.CreateTiledBox(e, t, n); }), (e.CreateSphere = function (e, t, n) { return void 0 === n && (n = null), mi.CreateSphere(e, t, n); }), (e.CreateDisc = function (e, t, n) { return void 0 === n && (n = null), il.CreateDisc(e, t, n); }), (e.CreateIcoSphere = function (e, t, n) { return void 0 === n && (n = null), fl.CreateIcoSphere(e, t, n); }), (e.CreateRibbon = function (e, t, n) { return void 0 === n && (n = null), wa.CreateRibbon(e, t, n); }), (e.CreateCylinder = function (e, t, n) { return void 0 === n && (n = null), jn.CreateCylinder(e, t, n); }), (e.CreateTorus = function (e, t, n) { return void 0 === n && (n = null), kn.CreateTorus(e, t, n); }), (e.CreateTorusKnot = function (e, t, n) { return void 0 === n && (n = null), ol.CreateTorusKnot(e, t, n); }), (e.CreateLineSystem = function (e, t, n) { return Ti.CreateLineSystem(e, t, n); }), (e.CreateLines = function (e, t, n) { return void 0 === n && (n = null), Ti.CreateLines(e, t, n); }), (e.CreateDashedLines = function (e, t, n) { return void 0 === n && (n = null), Ti.CreateDashedLines(e, t, n); }), (e.ExtrudeShape = function (e, t, n) { return void 0 === n && (n = null), La.ExtrudeShape(e, t, n); }), (e.ExtrudeShapeCustom = function (e, t, n) { return void 0 === n && (n = null), La.ExtrudeShapeCustom(e, t, n); }), (e.CreateLathe = function (e, t, n) { return void 0 === n && (n = null), hl.CreateLathe(e, t, n); }), (e.CreateTiledPlane = function (e, t, n) { return void 0 === n && (n = null), dl.CreateTiledPlane(e, t, n); }), (e.CreatePlane = function (e, t, n) { return void 0 === n && (n = null), Le.a.CreatePlane(e, t, n); }), (e.CreateGround = function (e, t, n) { return void 0 === n && (n = null), Nn.CreateGround(e, t, n); }), (e.CreateTiledGround = function (e, t, n) { return void 0 === n && (n = null), Nn.CreateTiledGround(e, t, n); }), (e.CreateGroundFromHeightMap = function (e, t, n, i) { return void 0 === i && (i = null), Nn.CreateGroundFromHeightMap(e, t, n, i); }), (e.CreatePolygon = function (e, t, n, i) { return void 0 === n && (n = null), void 0 === i && (i = earcut), ul.CreatePolygon(e, t, n, i); }), (e.ExtrudePolygon = function (e, t, n, i) { return void 0 === n && (n = null), void 0 === i && (i = earcut), ul.ExtrudePolygon(e, t, n, i); }), (e.CreateTube = function (e, t, n) { return void 0 === n && (n = null), pl.CreateTube(e, t, n); }), (e.CreatePolyhedron = function (e, t, n) { return void 0 === n && (n = null), fr.CreatePolyhedron(e, t, n); }), (e.CreateDecal = function (e, t, n) { return gl.CreateDecal(e, t, n); }), e ); })(), _l = function (e, t, n) { (this.quality = e), (this.distance = t), (this.optimizeMesh = n); }, vl = (function () { function e() { (this.running = !1), (this._simplificationArray = []); } return ( (e.prototype.addTask = function (e) { this._simplificationArray.push(e); }), (e.prototype.executeNext = function () { var e = this._simplificationArray.pop(); e ? ((this.running = !0), this.runSimplification(e)) : (this.running = !1); }), (e.prototype.runSimplification = function (e) { var t = this; if (e.parallelProcessing) e.settings.forEach(function (n) { t.getSimplifier(e).simplify(n, function (i) { e.mesh.addLODLevel(n.distance, i), (i.isVisible = !0), n.quality === e.settings[e.settings.length - 1].quality && e.successCallback && e.successCallback(), t.executeNext(); }); }); else { var n = this.getSimplifier(e); $e.a.Run( e.settings.length, function (t) { var i, r; (i = e.settings[t.index]), (r = function () { t.executeNext(); }), n.simplify(i, function (t) { e.mesh.addLODLevel(i.distance, t), (t.isVisible = !0), r(); }); }, function () { e.successCallback && e.successCallback(), t.executeNext(); } ); } }), (e.prototype.getSimplifier = function (e) { switch (e.simplificationType) { case ml.QUADRATIC: default: return new Tl(e.mesh); } }), e ); })(); !(function (e) { e[(e.QUADRATIC = 0)] = "QUADRATIC"; })(ml || (ml = {})); var yl = function (e) { (this.vertices = e), (this.error = new Array(4)), (this.deleted = !1), (this.isDirty = !1), (this.deletePending = !1), (this.borderFactor = 0); }, Cl = (function () { function e(e, t) { (this.position = e), (this.id = t), (this.isBorder = !0), (this.q = new Pl()), (this.triangleCount = 0), (this.triangleStart = 0), (this.originalOffsets = []); } return ( (e.prototype.updatePosition = function (e) { this.position.copyFrom(e); }), e ); })(), Pl = (function () { function e(e) { this.data = new Array(10); for (var t = 0; t < 10; ++t) e && e[t] ? (this.data[t] = e[t]) : (this.data[t] = 0); } return ( (e.prototype.det = function (e, t, n, i, r, o, a, s, c) { return ( this.data[e] * this.data[r] * this.data[c] + this.data[n] * this.data[i] * this.data[s] + this.data[t] * this.data[o] * this.data[a] - this.data[n] * this.data[r] * this.data[a] - this.data[e] * this.data[o] * this.data[s] - this.data[t] * this.data[i] * this.data[c] ); }), (e.prototype.addInPlace = function (e) { for (var t = 0; t < 10; ++t) this.data[t] += e.data[t]; }), (e.prototype.addArrayInPlace = function (e) { for (var t = 0; t < 10; ++t) this.data[t] += e[t]; }), (e.prototype.add = function (t) { for (var n = new e(), i = 0; i < 10; ++i) n.data[i] = this.data[i] + t.data[i]; return n; }), (e.FromData = function (t, n, i, r) { return new e(e.DataFromNumbers(t, n, i, r)); }), (e.DataFromNumbers = function (e, t, n, i) { return [e * e, e * t, e * n, e * i, t * t, t * n, t * i, n * n, n * i, i * i]; }), e ); })(), xl = function (e, t) { (this.vertexId = e), (this.triangleId = t); }, Tl = (function () { function e(e) { (this._mesh = e), (this.syncIterations = 5e3), (this.aggressiveness = 7), (this.decimationIterations = 100), (this.boundingBoxEpsilon = j.a); } return ( (e.prototype.simplify = function (e, t) { var n = this; this.initDecimatedMesh(), $e.a.Run( this._mesh.subMeshes.length, function (t) { n.initWithMesh( t.index, function () { n.runDecimation(e, t.index, function () { t.executeNext(); }); }, e.optimizeMesh ); }, function () { setTimeout(function () { t(n._reconstructedMesh); }, 0); } ); }), (e.prototype.runDecimation = function (e, t, n) { var i = this, r = ~~(this.triangles.length * e.quality), o = 0, s = this.triangles.length; $e.a.Run( this.decimationIterations, function (e) { var t, n; s - o <= r ? e.breakLoop() : ((t = e.index), (n = function () { e.executeNext(); }), setTimeout(function () { t % 5 == 0 && i.updateMesh(0 === t); for (var e = 0; e < i.triangles.length; ++e) i.triangles[e].isDirty = !1; var c = 1e-9 * Math.pow(t + 3, i.aggressiveness); $e.a.SyncAsyncForLoop( i.triangles.length, i.syncIterations, function (e) { var t = ~~((i.triangles.length / 2 + e) % i.triangles.length), n = i.triangles[t]; if (n && !(n.error[3] > c || n.deleted || n.isDirty)) for (var r = 0; r < 3; ++r) if (n.error[r] < c) { var s = [], l = [], u = n.vertices[r], h = n.vertices[(r + 1) % 3]; if (u.isBorder || h.isBorder) continue; var d = a.e.Zero(); i.calculateError(u, h, d); var p = new Array(); if (i.isFlipped(u, h, d, s, p)) continue; if (i.isFlipped(h, u, d, l, p)) continue; if (s.indexOf(!0) < 0 || l.indexOf(!0) < 0) continue; var f = new Array(); if ( (p.forEach(function (e) { -1 === f.indexOf(e) && ((e.deletePending = !0), f.push(e)); }), f.length % 2 != 0) ) continue; (u.q = h.q.add(u.q)), u.updatePosition(d); var m = i.references.length; (o = i.updateTriangles(u, u, s, o)), (o = i.updateTriangles(u, h, l, o)); var g = i.references.length - m; if (g <= u.triangleCount) { if (g) for (var b = 0; b < g; b++) i.references[u.triangleStart + b] = i.references[m + b]; } else u.triangleStart = m; u.triangleCount = g; break; } }, n, function () { return s - o <= r; } ); }, 0)); }, function () { setTimeout(function () { i.reconstructMesh(t), n(); }, 0); } ); }), (e.prototype.initWithMesh = function (e, t, n) { var i = this; (this.vertices = []), (this.triangles = []); var r = this._mesh.getVerticesData(wn.b.PositionKind), o = this._mesh.getIndices(), s = this._mesh.subMeshes[e], c = [], l = s.verticesCount; $e.a.SyncAsyncForLoop( l, (this.syncIterations / 4) >> 0, function (e) { if (r) { var t = e + s.verticesStart, o = a.e.FromArray(r, 3 * t), l = (function (e) { if (n) for (var t = 0; t < i.vertices.length; ++t) if (i.vertices[t].position.equals(e)) return i.vertices[t]; return null; })(o) || new Cl(o, i.vertices.length); l.originalOffsets.push(t), l.id === i.vertices.length && i.vertices.push(l), c.push(l.id); } }, function () { $e.a.SyncAsyncForLoop( s.indexCount / 3, i.syncIterations, function (e) { if (o) { var t = 3 * (s.indexStart / 3 + e), n = o[t + 0], r = o[t + 1], a = o[t + 2], l = i.vertices[c[n - s.verticesStart]], u = i.vertices[c[r - s.verticesStart]], h = i.vertices[c[a - s.verticesStart]], d = new yl([l, u, h]); (d.originalOffset = t), i.triangles.push(d); } }, function () { i.init(t); } ); } ); }), (e.prototype.init = function (e) { var t = this; $e.a.SyncAsyncForLoop( this.triangles.length, this.syncIterations, function (e) { var n = t.triangles[e]; n.normal = a.e.Cross(n.vertices[1].position.subtract(n.vertices[0].position), n.vertices[2].position.subtract(n.vertices[0].position)).normalize(); for (var i = 0; i < 3; i++) n.vertices[i].q.addArrayInPlace(Pl.DataFromNumbers(n.normal.x, n.normal.y, n.normal.z, -a.e.Dot(n.normal, n.vertices[0].position))); }, function () { $e.a.SyncAsyncForLoop( t.triangles.length, t.syncIterations, function (e) { for (var n = t.triangles[e], i = 0; i < 3; ++i) n.error[i] = t.calculateError(n.vertices[i], n.vertices[(i + 1) % 3]); n.error[3] = Math.min(n.error[0], n.error[1], n.error[2]); }, function () { e(); } ); } ); }), (e.prototype.reconstructMesh = function (e) { var t, n, i, r = []; for (t = 0; t < this.vertices.length; ++t) this.vertices[t].triangleCount = 0; for (t = 0; t < this.triangles.length; ++t) if (!this.triangles[t].deleted) { for (n = this.triangles[t], i = 0; i < 3; ++i) n.vertices[i].triangleCount = 1; r.push(n); } var o = this._reconstructedMesh.getVerticesData(wn.b.PositionKind) || [], a = this._reconstructedMesh.getVerticesData(wn.b.NormalKind) || [], s = this._reconstructedMesh.getVerticesData(wn.b.UVKind) || [], c = this._reconstructedMesh.getVerticesData(wn.b.ColorKind) || [], l = this._mesh.getVerticesData(wn.b.NormalKind), u = this._mesh.getVerticesData(wn.b.UVKind), h = this._mesh.getVerticesData(wn.b.ColorKind), d = 0; for (t = 0; t < this.vertices.length; ++t) { var p = this.vertices[t]; (p.id = d), p.triangleCount && p.originalOffsets.forEach(function (e) { l && (o.push(p.position.x), o.push(p.position.y), o.push(p.position.z), a.push(l[3 * e]), a.push(l[3 * e + 1]), a.push(l[3 * e + 2]), u && u.length && (s.push(u[2 * e]), s.push(u[2 * e + 1])), h && h.length && (c.push(h[4 * e]), c.push(h[4 * e + 1]), c.push(h[4 * e + 2]), c.push(h[4 * e + 3])), ++d); }); } var f = this._reconstructedMesh.getTotalIndices(), m = this._reconstructedMesh.getTotalVertices(), g = this._reconstructedMesh.subMeshes; this._reconstructedMesh.subMeshes = []; var b = this._reconstructedMesh.getIndices(), _ = this._mesh.getIndices(); for (t = 0; t < r.length; ++t) (n = r[t]), [0, 1, 2].forEach(function (e) { var t = _[n.originalOffset + e], i = n.vertices[e].originalOffsets.indexOf(t); i < 0 && (i = 0), b.push(n.vertices[e].id + i + m); }); this._reconstructedMesh.setIndices(b), this._reconstructedMesh.setVerticesData(wn.b.PositionKind, o), this._reconstructedMesh.setVerticesData(wn.b.NormalKind, a), s.length > 0 && this._reconstructedMesh.setVerticesData(wn.b.UVKind, s), c.length > 0 && this._reconstructedMesh.setVerticesData(wn.b.ColorKind, c); var v = this._mesh.subMeshes[e]; e > 0 && ((this._reconstructedMesh.subMeshes = []), g.forEach(function (e) { Kc.b.AddToMesh(e.materialIndex, e.verticesStart, e.verticesCount, e.indexStart, e.indexCount, e.getMesh()); }), Kc.b.AddToMesh(v.materialIndex, m, d, f, 3 * r.length, this._reconstructedMesh)); }), (e.prototype.initDecimatedMesh = function () { (this._reconstructedMesh = new Ee.a(this._mesh.name + "Decimated", this._mesh.getScene())), (this._reconstructedMesh.material = this._mesh.material), (this._reconstructedMesh.parent = this._mesh.parent), (this._reconstructedMesh.isVisible = !1), (this._reconstructedMesh.renderingGroupId = this._mesh.renderingGroupId); }), (e.prototype.isFlipped = function (e, t, n, i, r) { for (var o = 0; o < e.triangleCount; ++o) { var s = this.triangles[this.references[e.triangleStart + o].triangleId]; if (!s.deleted) { var c = this.references[e.triangleStart + o].vertexId, l = s.vertices[(c + 1) % 3], u = s.vertices[(c + 2) % 3]; if (l !== t && u !== t) { var h = l.position.subtract(n); h = h.normalize(); var d = u.position.subtract(n); if (((d = d.normalize()), Math.abs(a.e.Dot(h, d)) > 0.999)) return !0; var p = a.e.Cross(h, d).normalize(); if (((i[o] = !1), a.e.Dot(p, s.normal) < 0.2)) return !0; } else (i[o] = !0), r.push(s); } } return !1; }), (e.prototype.updateTriangles = function (e, t, n, i) { for (var r = i, o = 0; o < t.triangleCount; ++o) { var a = this.references[t.triangleStart + o], s = this.triangles[a.triangleId]; s.deleted || (n[o] && s.deletePending ? ((s.deleted = !0), r++) : ((s.vertices[a.vertexId] = e), (s.isDirty = !0), (s.error[0] = this.calculateError(s.vertices[0], s.vertices[1]) + s.borderFactor / 2), (s.error[1] = this.calculateError(s.vertices[1], s.vertices[2]) + s.borderFactor / 2), (s.error[2] = this.calculateError(s.vertices[2], s.vertices[0]) + s.borderFactor / 2), (s.error[3] = Math.min(s.error[0], s.error[1], s.error[2])), this.references.push(a))); } return r; }), (e.prototype.identifyBorder = function () { for (var e = 0; e < this.vertices.length; ++e) { var t, n = [], i = [], r = this.vertices[e]; for (t = 0; t < r.triangleCount; ++t) for (var o = this.triangles[this.references[r.triangleStart + t].triangleId], a = 0; a < 3; a++) { for (var s = 0, c = o.vertices[a]; s < n.length && i[s] !== c.id; ) ++s; s === n.length ? (n.push(1), i.push(c.id)) : n[s]++; } for (t = 0; t < n.length; ++t) 1 === n[t] ? (this.vertices[i[t]].isBorder = !0) : (this.vertices[i[t]].isBorder = !1); } }), (e.prototype.updateMesh = function (e) { var t, n, i, r; if ((void 0 === e && (e = !1), !e)) { var o = []; for (t = 0; t < this.triangles.length; ++t) this.triangles[t].deleted || o.push(this.triangles[t]); this.triangles = o; } for (t = 0; t < this.vertices.length; ++t) (this.vertices[t].triangleCount = 0), (this.vertices[t].triangleStart = 0); for (t = 0; t < this.triangles.length; ++t) for (n = this.triangles[t], i = 0; i < 3; ++i) (r = n.vertices[i]).triangleCount++; var a = 0; for (t = 0; t < this.vertices.length; ++t) (this.vertices[t].triangleStart = a), (a += this.vertices[t].triangleCount), (this.vertices[t].triangleCount = 0); var s = new Array(3 * this.triangles.length); for (t = 0; t < this.triangles.length; ++t) for (n = this.triangles[t], i = 0; i < 3; ++i) (s[(r = n.vertices[i]).triangleStart + r.triangleCount] = new xl(i, t)), r.triangleCount++; (this.references = s), e && this.identifyBorder(); }), (e.prototype.vertexError = function (e, t) { var n = t.x, i = t.y, r = t.z; return e.data[0] * n * n + 2 * e.data[1] * n * i + 2 * e.data[2] * n * r + 2 * e.data[3] * n + e.data[4] * i * i + 2 * e.data[5] * i * r + 2 * e.data[6] * i + e.data[7] * r * r + 2 * e.data[8] * r + e.data[9]; }), (e.prototype.calculateError = function (e, t, n) { var i = e.q.add(t.q), r = e.isBorder && t.isBorder, o = 0, s = i.det(0, 1, 2, 1, 4, 5, 2, 5, 7); if (0 === s || r) { var c = e.position.add(t.position).divide(new a.e(2, 2, 2)), l = this.vertexError(i, e.position), u = this.vertexError(i, t.position), h = this.vertexError(i, c); (o = Math.min(l, u, h)) === l ? n && n.copyFrom(e.position) : o === u ? n && n.copyFrom(t.position) : n && n.copyFrom(c); } else n || (n = a.e.Zero()), (n.x = (-1 / s) * i.det(1, 2, 3, 4, 5, 6, 5, 7, 8)), (n.y = (1 / s) * i.det(0, 2, 3, 1, 5, 6, 2, 7, 8)), (n.z = (-1 / s) * i.det(0, 1, 3, 1, 4, 6, 2, 5, 8)), (o = this.vertexError(i, n)); return o; }), e ); })(); Object.defineProperty(ge.a.prototype, "simplificationQueue", { get: function () { if (!this._simplificationQueue) { this._simplificationQueue = new vl(); var e = this._getComponent(me.a.NAME_SIMPLIFICATIONQUEUE); e || ((e = new Sl(this)), this._addComponent(e)); } return this._simplificationQueue; }, set: function (e) { this._simplificationQueue = e; }, enumerable: !0, configurable: !0, }), (Ee.a.prototype.simplify = function (e, t, n, i) { return void 0 === t && (t = !0), void 0 === n && (n = ml.QUADRATIC), this.getScene().simplificationQueue.addTask({ settings: e, parallelProcessing: t, mesh: this, simplificationType: n, successCallback: i }), this; }); var Sl = (function () { function e(e) { (this.name = me.a.NAME_SIMPLIFICATIONQUEUE), (this.scene = e); } return ( (e.prototype.register = function () { this.scene._beforeCameraUpdateStage.registerStep(me.a.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE, this, this._beforeCameraUpdate); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () {}), (e.prototype._beforeCameraUpdate = function () { this.scene._simplificationQueue && !this.scene._simplificationQueue.running && this.scene._simplificationQueue.executeNext(); }), e ); })(), Ol = n(191), El = n(126), Ml = n(159), Al = (function () { function e(e) { void 0 === e && (e = Recast), (this.bjsRECAST = {}), (this.name = "RecastJSPlugin"), "function" == typeof e ? e(this.bjsRECAST) : (this.bjsRECAST = e), this.isSupported() || g.a.Error("RecastJS is not available. Please make sure you included the js file."); } return ( (e.prototype.createNavMesh = function (e, t) { var n, i, r, o = new this.bjsRECAST.rcConfig(); (o.cs = t.cs), (o.ch = t.ch), (o.borderSize = 0), (o.tileSize = 0), (o.walkableSlopeAngle = t.walkableSlopeAngle), (o.walkableHeight = t.walkableHeight), (o.walkableClimb = t.walkableClimb), (o.walkableRadius = t.walkableRadius), (o.maxEdgeLen = t.maxEdgeLen), (o.maxSimplificationError = t.maxSimplificationError), (o.minRegionArea = t.minRegionArea), (o.mergeRegionArea = t.mergeRegionArea), (o.maxVertsPerPoly = t.maxVertsPerPoly), (o.detailSampleDist = t.detailSampleDist), (o.detailSampleMaxError = t.detailSampleMaxError), (this.navMesh = new this.bjsRECAST.NavMesh()); var s = [], c = [], l = 0; for (n = 0; n < e.length; n++) if (e[n]) { var u = e[n], h = u.getIndices(); if (!h) continue; var d = u.getVerticesData(wn.b.PositionKind, !1, !1); if (!d) continue; var p = u.computeWorldMatrix(!1); for (i = 0; i < h.length; i++) s.push(h[i] + l); var f = a.e.Zero(), m = a.e.Zero(); for (r = 0; r < d.length; r += 3) a.e.FromArrayToRef(d, r, m), a.e.TransformCoordinatesToRef(m, p, f), c.push(f.x, f.y, f.z); l += d.length / 3; } this.navMesh.build(c, l, s, s.length, o); }), (e.prototype.createDebugNavMesh = function (e) { var t, n, i = this.navMesh.getDebugNavMesh(), r = i.getTriangleCount(), o = [], a = []; for (t = 0; t < 3 * r; t++) o.push(t); for (t = 0; t < r; t++) for (n = 0; n < 3; n++) { var s = i.getTriangle(t).getPoint(n); a.push(s.x, s.y, s.z); } var c = new Ee.a("NavMeshDebug", e), l = new Rn.a(); return (l.indices = o), (l.positions = a), l.applyToMesh(c, !1), c; }), (e.prototype.getClosestPoint = function (e) { var t = new this.bjsRECAST.Vec3(e.x, e.y, e.z), n = this.navMesh.getClosestPoint(t); return new a.e(n.x, n.y, n.z); }), (e.prototype.getRandomPointAround = function (e, t) { var n = new this.bjsRECAST.Vec3(e.x, e.y, e.z), i = this.navMesh.getRandomPointAround(n, t); return new a.e(i.x, i.y, i.z); }), (e.prototype.moveAlong = function (e, t) { var n = new this.bjsRECAST.Vec3(e.x, e.y, e.z), i = new this.bjsRECAST.Vec3(t.x, t.y, t.z), r = this.navMesh.moveAlong(n, i); return new a.e(r.x, r.y, r.z); }), (e.prototype.computePath = function (e, t) { var n, i = new this.bjsRECAST.Vec3(e.x, e.y, e.z), r = new this.bjsRECAST.Vec3(t.x, t.y, t.z), o = this.navMesh.computePath(i, r), s = o.getPointCount(), c = []; for (n = 0; n < s; n++) { var l = o.getPoint(n); c.push(new a.e(l.x, l.y, l.z)); } return c; }), (e.prototype.createCrowd = function (e, t, n) { return new Il(this, e, t, n); }), (e.prototype.setDefaultQueryExtent = function (e) { var t = new this.bjsRECAST.Vec3(e.x, e.y, e.z); this.navMesh.setDefaultQueryExtent(t); }), (e.prototype.getDefaultQueryExtent = function () { var e = this.navMesh.getDefaultQueryExtent(); return new a.e(e.x, e.y, e.z); }), (e.prototype.dispose = function () {}), (e.prototype.isSupported = function () { return void 0 !== this.bjsRECAST; }), e ); })(), Il = (function () { function e(e, t, n, i) { var r = this; (this.recastCrowd = {}), (this.transforms = new Array()), (this.agents = new Array()), (this._onBeforeAnimationsObserver = null), (this.bjsRECASTPlugin = e), (this.recastCrowd = new this.bjsRECASTPlugin.bjsRECAST.Crowd(t, n, this.bjsRECASTPlugin.navMesh.getNavMesh())), (this._scene = i), (this._onBeforeAnimationsObserver = i.onBeforeAnimationsObservable.add(function () { r.update(0.001 * i.getEngine().getDeltaTime()); })); } return ( (e.prototype.addAgent = function (e, t, n) { var i = new this.bjsRECASTPlugin.bjsRECAST.dtCrowdAgentParams(); (i.radius = t.radius), (i.height = t.height), (i.maxAcceleration = t.maxAcceleration), (i.maxSpeed = t.maxSpeed), (i.collisionQueryRange = t.collisionQueryRange), (i.pathOptimizationRange = t.pathOptimizationRange), (i.separationWeight = t.separationWeight), (i.updateFlags = 7), (i.obstacleAvoidanceType = 0), (i.queryFilterType = 0), (i.userData = 0); var r = this.recastCrowd.addAgent(new this.bjsRECASTPlugin.bjsRECAST.Vec3(e.x, e.y, e.z), i); return this.transforms.push(n), this.agents.push(r), r; }), (e.prototype.getAgentPosition = function (e) { var t = this.recastCrowd.getAgentPosition(e); return new a.e(t.x, t.y, t.z); }), (e.prototype.getAgentVelocity = function (e) { var t = this.recastCrowd.getAgentVelocity(e); return new a.e(t.x, t.y, t.z); }), (e.prototype.agentGoto = function (e, t) { this.recastCrowd.agentGoto(e, new this.bjsRECASTPlugin.bjsRECAST.Vec3(t.x, t.y, t.z)); }), (e.prototype.agentTeleport = function (e, t) { this.recastCrowd.agentTeleport(e, new this.bjsRECASTPlugin.bjsRECAST.Vec3(t.x, t.y, t.z)); }), (e.prototype.updateAgentParameters = function (e, t) { var n = this.recastCrowd.getAgentParameters(e); void 0 !== t.radius && (n.radius = t.radius), void 0 !== t.height && (n.height = t.height), void 0 !== t.maxAcceleration && (n.maxAcceleration = t.maxAcceleration), void 0 !== t.maxSpeed && (n.maxSpeed = t.maxSpeed), void 0 !== t.collisionQueryRange && (n.collisionQueryRange = t.collisionQueryRange), void 0 !== t.pathOptimizationRange && (n.pathOptimizationRange = t.pathOptimizationRange), void 0 !== t.separationWeight && (n.separationWeight = t.separationWeight), this.recastCrowd.setAgentParameters(e, n); }), (e.prototype.removeAgent = function (e) { this.recastCrowd.removeAgent(e); var t = this.agents.indexOf(e); t > -1 && (this.agents.splice(t, 1), this.transforms.splice(t, 1)); }), (e.prototype.getAgents = function () { return this.agents; }), (e.prototype.update = function (e) { this.recastCrowd.update(e); for (var t = 0; t < this.agents.length; t++) this.transforms[t].position = this.getAgentPosition(this.agents[t]); }), (e.prototype.setDefaultQueryExtent = function (e) { var t = new this.bjsRECASTPlugin.bjsRECAST.Vec3(e.x, e.y, e.z); this.recastCrowd.setDefaultQueryExtent(t); }), (e.prototype.getDefaultQueryExtent = function () { var e = this.recastCrowd.getDefaultQueryExtent(); return new a.e(e.x, e.y, e.z); }), (e.prototype.dispose = function () { this.recastCrowd.destroy(), this._scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver), (this._onBeforeAnimationsObserver = null); }), e ); })(); ue.a.OfflineProviderFactory = function (e, t, n) { return void 0 === n && (n = !1), new Rl(e, t, n); }; var Dl, Rl = (function () { function e(t, n, i) { var r = this; void 0 === i && (i = !1), (this._idbFactory = "undefined" != typeof window ? window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB : indexedDB), (this._callbackManifestChecked = n), (this._currentSceneUrl = e._ReturnFullUrlLocation(t)), (this._db = null), (this._enableSceneOffline = !1), (this._enableTexturesOffline = !1), (this._manifestVersionFound = 0), (this._mustUpdateRessources = !1), (this._hasReachedQuota = !1), e.IDBStorageEnabled ? i ? ((this._enableSceneOffline = !0), (this._enableTexturesOffline = !0), (this._manifestVersionFound = 1), $e.b.SetImmediate(function () { r._callbackManifestChecked(!0); })) : this._checkManifestFile() : this._callbackManifestChecked(!0); } return ( Object.defineProperty(e.prototype, "enableSceneOffline", { get: function () { return this._enableSceneOffline; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "enableTexturesOffline", { get: function () { return this._enableTexturesOffline; }, enumerable: !0, configurable: !0, }), (e.prototype._checkManifestFile = function () { var t = this, n = function () { (t._enableSceneOffline = !1), (t._enableTexturesOffline = !1), t._callbackManifestChecked(!1); }, i = !1, r = this._currentSceneUrl + ".manifest", o = new ls.a(); navigator.onLine && ((i = !0), (r = r + (null == r.match(/\?/) ? "?" : "&") + Date.now())), o.open("GET", r), o.addEventListener( "load", function () { if (200 === o.status || e._ValidateXHRData(o, 1)) try { var i = JSON.parse(o.response); (t._enableSceneOffline = i.enableSceneOffline), (t._enableTexturesOffline = i.enableTexturesOffline && e.IsUASupportingBlobStorage), i.version && !isNaN(parseInt(i.version)) && (t._manifestVersionFound = i.version), t._callbackManifestChecked && t._callbackManifestChecked(!0); } catch (e) { n(); } else n(); }, !1 ), o.addEventListener( "error", function () { if (i) { i = !1; var e = t._currentSceneUrl + ".manifest"; o.open("GET", e), o.send(); } else n(); }, !1 ); try { o.send(); } catch (e) { g.a.Error("Error on XHR send request."), this._callbackManifestChecked(!1); } }), (e.prototype.open = function (e, t) { var n = this, i = function () { (n._isSupported = !1), t && t(); }; if (this._idbFactory && (this._enableSceneOffline || this._enableTexturesOffline)) if (this._db) e && e(); else { (this._hasReachedQuota = !1), (this._isSupported = !0); var r = this._idbFactory.open("babylonjs", 1); (r.onerror = function () { i(); }), (r.onblocked = function () { g.a.Error("IDB request blocked. Please reload the page."), i(); }), (r.onsuccess = function () { (n._db = r.result), e(); }), (r.onupgradeneeded = function (e) { if (((n._db = e.target.result), n._db)) try { n._db.createObjectStore("scenes", { keyPath: "sceneUrl" }), n._db.createObjectStore("versions", { keyPath: "sceneUrl" }), n._db.createObjectStore("textures", { keyPath: "textureUrl" }); } catch (e) { g.a.Error("Error while creating object stores. Exception: " + e.message), i(); } }); } else (this._isSupported = !1), t && t(); }), (e.prototype.loadImage = function (t, n) { var i = this, r = e._ReturnFullUrlLocation(t), o = function () { i._hasReachedQuota || null === i._db ? (n.src = t) : i._saveImageIntoDBAsync(r, n); }; this._mustUpdateRessources ? o() : this._loadImageFromDBAsync(r, n, o); }), (e.prototype._loadImageFromDBAsync = function (e, t, n) { if (this._isSupported && null !== this._db) { var i, r = this._db.transaction(["textures"]); (r.onabort = function () { t.src = e; }), (r.oncomplete = function () { var r; if (i) { var o = window.URL || window.webkitURL; (r = o.createObjectURL(i.data)), (t.onerror = function () { g.a.Error("Error loading image from blob URL: " + r + " switching back to web url: " + e), (t.src = e); }), (t.src = r); } else n(); }); var o = r.objectStore("textures").get(e); (o.onsuccess = function (e) { i = e.target.result; }), (o.onerror = function () { g.a.Error("Error loading texture " + e + " from DB."), (t.src = e); }); } else g.a.Error("Error: IndexedDB not supported by your browser or BabylonJS Database is not open."), (t.src = e); }), (e.prototype._saveImageIntoDBAsync = function (t, n) { var i = this; if (this._isSupported) { var r = function () { var e; if (o) { var t = window.URL || window.webkitURL; try { e = t.createObjectURL(o); } catch (n) { e = t.createObjectURL(o); } } e && (n.src = e); }; if (e.IsUASupportingBlobStorage) { var o, a = new ls.a(); a.open("GET", t), (a.responseType = "blob"), a.addEventListener( "load", function () { if (200 === a.status && i._db) { o = a.response; var s = i._db.transaction(["textures"], "readwrite"); (s.onabort = function (e) { try { var t = (e.srcElement || e.target).error; t && "QuotaExceededError" === t.name && (i._hasReachedQuota = !0); } catch (e) {} r(); }), (s.oncomplete = function () { r(); }); var c = { textureUrl: t, data: o }; try { var l = s.objectStore("textures").put(c); (l.onsuccess = function () {}), (l.onerror = function () { r(); }); } catch (r) { 25 === r.code && ((e.IsUASupportingBlobStorage = !1), (i._enableTexturesOffline = !1)), (n.src = t); } } else n.src = t; }, !1 ), a.addEventListener( "error", function () { g.a.Error("Error in XHR request in BABYLON.Database."), (n.src = t); }, !1 ), a.send(); } else n.src = t; } else g.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."), (n.src = t); }), (e.prototype._checkVersionFromDB = function (e, t) { var n = this; this._loadVersionFromDBAsync(e, t, function () { n._saveVersionIntoDBAsync(e, t); }); }), (e.prototype._loadVersionFromDBAsync = function (e, t, n) { var i, r = this; if (this._isSupported && this._db) try { var o = this._db.transaction(["versions"]); (o.oncomplete = function () { i ? (r._manifestVersionFound !== i.data ? ((r._mustUpdateRessources = !0), n()) : t(i.data)) : ((r._mustUpdateRessources = !0), n()); }), (o.onabort = function () { t(-1); }); var a = o.objectStore("versions").get(e); (a.onsuccess = function (e) { i = e.target.result; }), (a.onerror = function () { g.a.Error("Error loading version for scene " + e + " from DB."), t(-1); }); } catch (e) { g.a.Error("Error while accessing 'versions' object store (READ OP). Exception: " + e.message), t(-1); } else g.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."), t(-1); }), (e.prototype._saveVersionIntoDBAsync = function (e, t) { var n = this; if (this._isSupported && !this._hasReachedQuota && this._db) try { var i = this._db.transaction(["versions"], "readwrite"); (i.onabort = function (e) { try { var i = e.srcElement.error; i && "QuotaExceededError" === i.name && (n._hasReachedQuota = !0); } catch (e) {} t(-1); }), (i.oncomplete = function () { t(n._manifestVersionFound); }); var r = { sceneUrl: e, data: this._manifestVersionFound }, o = i.objectStore("versions").put(r); (o.onsuccess = function () {}), (o.onerror = function () { g.a.Error("Error in DB add version request in BABYLON.Database."); }); } catch (e) { g.a.Error("Error while accessing 'versions' object store (WRITE OP). Exception: " + e.message), t(-1); } else t(-1); }), (e.prototype.loadFile = function (t, n, i, r, o) { var a = this, s = e._ReturnFullUrlLocation(t), c = function () { a._saveFileAsync(s, n, i, o, r); }; this._checkVersionFromDB(s, function (e) { -1 !== e ? (a._mustUpdateRessources ? a._saveFileAsync(s, n, i, o, r) : a._loadFileAsync(s, n, c)) : r && r(); }); }), (e.prototype._loadFileAsync = function (e, t, n) { if (this._isSupported && this._db) { var i, r; i = -1 !== e.indexOf(".babylon") ? "scenes" : "textures"; var o = this._db.transaction([i]); (o.oncomplete = function () { r ? t(r.data) : n(); }), (o.onabort = function () { n(); }); var a = o.objectStore(i).get(e); (a.onsuccess = function (e) { r = e.target.result; }), (a.onerror = function () { g.a.Error("Error loading file " + e + " from DB."), n(); }); } else g.a.Error("Error: IndexedDB not supported by your browser or BabylonJS Database is not open."), t(); }), (e.prototype._saveFileAsync = function (t, n, i, r, o) { var a = this; if (this._isSupported) { var s; s = -1 !== t.indexOf(".babylon") ? "scenes" : "textures"; var c, l = new ls.a(); l.open("GET", t + "?" + Date.now()), r && (l.responseType = "arraybuffer"), i && (l.onprogress = i), l.addEventListener( "load", function () { if (200 === l.status || (l.status < 400 && e._ValidateXHRData(l, r ? 6 : 1))) if (((c = r ? l.response : l.responseText), !a._hasReachedQuota && a._db)) { var i, u = a._db.transaction([s], "readwrite"); (u.onabort = function (e) { try { var t = e.srcElement.error; t && "QuotaExceededError" === t.name && (a._hasReachedQuota = !0); } catch (e) {} n(c); }), (u.oncomplete = function () { n(c); }), (i = "scenes" === s ? { sceneUrl: t, data: c, version: a._manifestVersionFound } : { textureUrl: t, data: c }); try { var h = u.objectStore(s).put(i); (h.onsuccess = function () {}), (h.onerror = function () { g.a.Error("Error in DB add file request in BABYLON.Database."); }); } catch (e) { n(c); } } else n(c); else l.status >= 400 && o ? o(l) : n(); }, !1 ), l.addEventListener( "error", function () { g.a.Error("error on XHR request."), n(); }, !1 ), l.send(); } else g.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."), n(); }), (e._ValidateXHRData = function (e, t) { void 0 === t && (t = 7); try { if (1 & t) { if (e.responseText && e.responseText.length > 0) return !0; if (1 === t) return !1; } if (2 & t) { var n = es.GetTGAHeader(e.response); if (n.width && n.height && n.width > 0 && n.height > 0) return !0; if (2 === t) return !1; } if (4 & t) { var i = new Uint8Array(e.response, 0, 3); return 68 === i[0] && 68 === i[1] && 83 === i[2]; } } catch (e) {} return !1; }), (e.IsUASupportingBlobStorage = !0), (e.IDBStorageEnabled = !1), (e._ParseURL = function (e) { document.createElement("a").href = e; var t = e.substring(0, e.lastIndexOf("#")), n = e.substring(t.lastIndexOf("/") + 1, e.length); return e.substring(0, e.indexOf(n, 0)); }), (e._ReturnFullUrlLocation = function (t) { //return -1 === t.indexOf("http:/") && -1 === t.indexOf("https:/") ? e._ParseURL(window.location.href) + t : t; }), e ); })(), wl = (function () { function e() { (this.direction1 = new a.e(0, 1, 0)), (this.direction2 = new a.e(0, 1, 0)), (this.minEmitBox = new a.e(-0.5, -0.5, -0.5)), (this.maxEmitBox = new a.e(0.5, 0.5, 0.5)); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { var r = z.a.RandomRange(this.direction1.x, this.direction2.x), o = z.a.RandomRange(this.direction1.y, this.direction2.y), s = z.a.RandomRange(this.direction1.z, this.direction2.z); if (i) return (t.x = r), (t.y = o), void (t.z = s); a.e.TransformNormalFromFloatsToRef(r, o, s, e, t); }), (e.prototype.startPositionFunction = function (e, t, n, i) { var r = z.a.RandomRange(this.minEmitBox.x, this.maxEmitBox.x), o = z.a.RandomRange(this.minEmitBox.y, this.maxEmitBox.y), s = z.a.RandomRange(this.minEmitBox.z, this.maxEmitBox.z); if (i) return (t.x = r), (t.y = o), void (t.z = s); a.e.TransformCoordinatesFromFloatsToRef(r, o, s, e, t); }), (e.prototype.clone = function () { var t = new e(); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2), e.setVector3("minEmitBox", this.minEmitBox), e.setVector3("maxEmitBox", this.maxEmitBox); }), (e.prototype.getEffectDefines = function () { return "#define BOXEMITTER"; }), (e.prototype.getClassName = function () { return "BoxParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return ( (e.type = this.getClassName()), (e.direction1 = this.direction1.asArray()), (e.direction2 = this.direction2.asArray()), (e.minEmitBox = this.minEmitBox.asArray()), (e.maxEmitBox = this.maxEmitBox.asArray()), e ); }), (e.prototype.parse = function (e) { a.e.FromArrayToRef(e.direction1, 0, this.direction1), a.e.FromArrayToRef(e.direction2, 0, this.direction2), a.e.FromArrayToRef(e.minEmitBox, 0, this.minEmitBox), a.e.FromArrayToRef(e.maxEmitBox, 0, this.maxEmitBox); }), e ); })(), Ll = (function () { function e(e, t, n) { void 0 === e && (e = 1), void 0 === t && (t = Math.PI), void 0 === n && (n = 0), (this.directionRandomizer = n), (this.radiusRange = 1), (this.heightRange = 1), (this.emitFromSpawnPointOnly = !1), (this.angle = t), (this.radius = e); } return ( Object.defineProperty(e.prototype, "radius", { get: function () { return this._radius; }, set: function (e) { (this._radius = e), this._buildHeight(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "angle", { get: function () { return this._angle; }, set: function (e) { (this._angle = e), this._buildHeight(); }, enumerable: !0, configurable: !0, }), (e.prototype._buildHeight = function () { 0 !== this._angle ? (this._height = this._radius / Math.tan(this._angle / 2)) : (this._height = 1); }), (e.prototype.startDirectionFunction = function (e, t, n, i) { if (1 === Math.abs(Math.cos(this._angle))) { if (i) return (t.x = 0), (t.y = 1), void (t.z = 0); a.e.TransformNormalFromFloatsToRef(0, 1, 0, e, t); } else { var r = n.position.subtract(e.getTranslation()).normalize(), o = z.a.RandomRange(0, this.directionRandomizer), s = z.a.RandomRange(0, this.directionRandomizer), c = z.a.RandomRange(0, this.directionRandomizer); if (((r.x += o), (r.y += s), (r.z += c), r.normalize(), i)) return void t.copyFrom(r); a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t); } }), (e.prototype.startPositionFunction = function (e, t, n, i) { var r, o = z.a.RandomRange(0, 2 * Math.PI); r = this.emitFromSpawnPointOnly ? 1e-4 : 1 - (r = z.a.RandomRange(0, this.heightRange)) * r; var s = this._radius - z.a.RandomRange(0, this._radius * this.radiusRange), c = (s *= r) * Math.sin(o), l = s * Math.cos(o), u = r * this._height; if (i) return (t.x = c), (t.y = u), void (t.z = l); a.e.TransformCoordinatesFromFloatsToRef(c, u, l, e, t); }), (e.prototype.clone = function () { var t = new e(this._radius, this._angle, this.directionRandomizer); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setFloat2("radius", this._radius, this.radiusRange), e.setFloat("coneAngle", this._angle), e.setFloat2("height", this._height, this.heightRange), e.setFloat("directionRandomizer", this.directionRandomizer); }), (e.prototype.getEffectDefines = function () { var e = "#define CONEEMITTER"; return this.emitFromSpawnPointOnly && (e += "\n#define CONEEMITTERSPAWNPOINT"), e; }), (e.prototype.getClassName = function () { return "ConeParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return ( (e.type = this.getClassName()), (e.radius = this._radius), (e.angle = this._angle), (e.directionRandomizer = this.directionRandomizer), (e.radiusRange = this.radiusRange), (e.heightRange = this.heightRange), (e.emitFromSpawnPointOnly = this.emitFromSpawnPointOnly), e ); }), (e.prototype.parse = function (e) { (this.radius = e.radius), (this.angle = e.angle), (this.directionRandomizer = e.directionRandomizer), (this.radiusRange = e.radiusRange), (this.heightRange = e.heightRange), (this.emitFromSpawnPointOnly = e.emitFromSpawnPointOnly); }), e ); })(), Fl = (function () { function e(e, t, n, i) { void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = 0), (this.radius = e), (this.height = t), (this.radiusRange = n), (this.directionRandomizer = i); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { var r = n.position.subtract(e.getTranslation()).normalize(), o = z.a.RandomRange(-this.directionRandomizer / 2, this.directionRandomizer / 2), s = Math.atan2(r.x, r.z); (s += z.a.RandomRange(-Math.PI / 2, Math.PI / 2) * this.directionRandomizer), (r.y = o), (r.x = Math.sin(s)), (r.z = Math.cos(s)), r.normalize(), i ? t.copyFrom(r) : a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t); }), (e.prototype.startPositionFunction = function (e, t, n, i) { var r = z.a.RandomRange(-this.height / 2, this.height / 2), o = z.a.RandomRange(0, 2 * Math.PI), s = z.a.RandomRange((1 - this.radiusRange) * (1 - this.radiusRange), 1), c = Math.sqrt(s) * this.radius, l = c * Math.cos(o), u = c * Math.sin(o); i ? t.copyFromFloats(l, r, u) : a.e.TransformCoordinatesFromFloatsToRef(l, r, u, e, t); }), (e.prototype.clone = function () { var t = new e(this.radius, this.directionRandomizer); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setFloat("radius", this.radius), e.setFloat("height", this.height), e.setFloat("radiusRange", this.radiusRange), e.setFloat("directionRandomizer", this.directionRandomizer); }), (e.prototype.getEffectDefines = function () { return "#define CYLINDEREMITTER"; }), (e.prototype.getClassName = function () { return "CylinderParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return (e.type = this.getClassName()), (e.radius = this.radius), (e.height = this.height), (e.radiusRange = this.radiusRange), (e.directionRandomizer = this.directionRandomizer), e; }), (e.prototype.parse = function (e) { (this.radius = e.radius), (this.height = e.height), (this.radiusRange = e.radiusRange), (this.directionRandomizer = e.directionRandomizer); }), e ); })(), Nl = (function (e) { function t(t, n, i, r, o) { void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = 1), void 0 === r && (r = new a.e(0, 1, 0)), void 0 === o && (o = new a.e(0, 1, 0)); var s = e.call(this, t, n, i) || this; return (s.direction1 = r), (s.direction2 = o), s; } return ( Object(h.d)(t, e), (t.prototype.startDirectionFunction = function (e, t, n) { var i = z.a.RandomRange(this.direction1.x, this.direction2.x), r = z.a.RandomRange(this.direction1.y, this.direction2.y), o = z.a.RandomRange(this.direction1.z, this.direction2.z); a.e.TransformNormalFromFloatsToRef(i, r, o, e, t); }), (t.prototype.clone = function () { var e = new t(this.radius, this.height, this.radiusRange, this.direction1, this.direction2); return M.a.DeepCopy(this, e), e; }), (t.prototype.applyToShader = function (e) { e.setFloat("radius", this.radius), e.setFloat("height", this.height), e.setFloat("radiusRange", this.radiusRange), e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2); }), (t.prototype.getEffectDefines = function () { return "#define CYLINDEREMITTER\n#define DIRECTEDCYLINDEREMITTER"; }), (t.prototype.getClassName = function () { return "CylinderDirectedParticleEmitter"; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.direction1 = this.direction1.asArray()), (t.direction2 = this.direction2.asArray()), t; }), (t.prototype.parse = function (t) { e.prototype.parse.call(this, t), this.direction1.copyFrom(t.direction1), this.direction2.copyFrom(t.direction2); }), t ); })(Fl), kl = (function () { function e(e, t, n) { void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 0), (this.radius = e), (this.radiusRange = t), (this.directionRandomizer = n); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { var r = n.position.subtract(e.getTranslation()).normalize(), o = z.a.RandomRange(0, this.directionRandomizer), s = z.a.RandomRange(0, this.directionRandomizer), c = z.a.RandomRange(0, this.directionRandomizer); (r.x += o), (r.y += s), (r.z += c), r.normalize(), i ? t.copyFrom(r) : a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t); }), (e.prototype.startPositionFunction = function (e, t, n, i) { var r = this.radius - z.a.RandomRange(0, this.radius * this.radiusRange), o = z.a.RandomRange(0, 1), s = z.a.RandomRange(0, 2 * Math.PI), c = Math.acos(2 * o - 1), l = r * Math.cos(s) * Math.sin(c), u = r * Math.cos(c), h = r * Math.sin(s) * Math.sin(c); i ? t.copyFromFloats(l, Math.abs(u), h) : a.e.TransformCoordinatesFromFloatsToRef(l, Math.abs(u), h, e, t); }), (e.prototype.clone = function () { var t = new e(this.radius, this.directionRandomizer); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setFloat("radius", this.radius), e.setFloat("radiusRange", this.radiusRange), e.setFloat("directionRandomizer", this.directionRandomizer); }), (e.prototype.getEffectDefines = function () { return "#define HEMISPHERICEMITTER"; }), (e.prototype.getClassName = function () { return "HemisphericParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return (e.type = this.getClassName()), (e.radius = this.radius), (e.radiusRange = this.radiusRange), (e.directionRandomizer = this.directionRandomizer), e; }), (e.prototype.parse = function (e) { (this.radius = e.radius), (this.radiusRange = e.radiusRange), (this.directionRandomizer = e.directionRandomizer); }), e ); })(), zl = (function () { function e() { (this.direction1 = new a.e(0, 1, 0)), (this.direction2 = new a.e(0, 1, 0)); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { var r = z.a.RandomRange(this.direction1.x, this.direction2.x), o = z.a.RandomRange(this.direction1.y, this.direction2.y), s = z.a.RandomRange(this.direction1.z, this.direction2.z); i ? t.copyFromFloats(r, o, s) : a.e.TransformNormalFromFloatsToRef(r, o, s, e, t); }), (e.prototype.startPositionFunction = function (e, t, n, i) { i ? t.copyFromFloats(0, 0, 0) : a.e.TransformCoordinatesFromFloatsToRef(0, 0, 0, e, t); }), (e.prototype.clone = function () { var t = new e(); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2); }), (e.prototype.getEffectDefines = function () { return "#define POINTEMITTER"; }), (e.prototype.getClassName = function () { return "PointParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return (e.type = this.getClassName()), (e.direction1 = this.direction1.asArray()), (e.direction2 = this.direction2.asArray()), e; }), (e.prototype.parse = function (e) { a.e.FromArrayToRef(e.direction1, 0, this.direction1), a.e.FromArrayToRef(e.direction2, 0, this.direction2); }), e ); })(), jl = (function () { function e(e, t, n) { void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 0), (this.radius = e), (this.radiusRange = t), (this.directionRandomizer = n); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { var r = n.position.subtract(e.getTranslation()).normalize(), o = z.a.RandomRange(0, this.directionRandomizer), s = z.a.RandomRange(0, this.directionRandomizer), c = z.a.RandomRange(0, this.directionRandomizer); (r.x += o), (r.y += s), (r.z += c), r.normalize(), i ? t.copyFrom(r) : a.e.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t); }), (e.prototype.startPositionFunction = function (e, t, n, i) { var r = this.radius - z.a.RandomRange(0, this.radius * this.radiusRange), o = z.a.RandomRange(0, 1), s = z.a.RandomRange(0, 2 * Math.PI), c = Math.acos(2 * o - 1), l = r * Math.cos(s) * Math.sin(c), u = r * Math.cos(c), h = r * Math.sin(s) * Math.sin(c); i ? t.copyFromFloats(l, u, h) : a.e.TransformCoordinatesFromFloatsToRef(l, u, h, e, t); }), (e.prototype.clone = function () { var t = new e(this.radius, this.directionRandomizer); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setFloat("radius", this.radius), e.setFloat("radiusRange", this.radiusRange), e.setFloat("directionRandomizer", this.directionRandomizer); }), (e.prototype.getEffectDefines = function () { return "#define SPHEREEMITTER"; }), (e.prototype.getClassName = function () { return "SphereParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return (e.type = this.getClassName()), (e.radius = this.radius), (e.radiusRange = this.radiusRange), (e.directionRandomizer = this.directionRandomizer), e; }), (e.prototype.parse = function (e) { (this.radius = e.radius), (this.radiusRange = e.radiusRange), (this.directionRandomizer = e.directionRandomizer); }), e ); })(), Bl = (function (e) { function t(t, n, i) { void 0 === t && (t = 1), void 0 === n && (n = new a.e(0, 1, 0)), void 0 === i && (i = new a.e(0, 1, 0)); var r = e.call(this, t) || this; return (r.direction1 = n), (r.direction2 = i), r; } return ( Object(h.d)(t, e), (t.prototype.startDirectionFunction = function (e, t, n) { var i = z.a.RandomRange(this.direction1.x, this.direction2.x), r = z.a.RandomRange(this.direction1.y, this.direction2.y), o = z.a.RandomRange(this.direction1.z, this.direction2.z); a.e.TransformNormalFromFloatsToRef(i, r, o, e, t); }), (t.prototype.clone = function () { var e = new t(this.radius, this.direction1, this.direction2); return M.a.DeepCopy(this, e), e; }), (t.prototype.applyToShader = function (e) { e.setFloat("radius", this.radius), e.setFloat("radiusRange", this.radiusRange), e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2); }), (t.prototype.getEffectDefines = function () { return "#define SPHEREEMITTER\n#define DIRECTEDSPHEREEMITTER"; }), (t.prototype.getClassName = function () { return "SphereDirectedParticleEmitter"; }), (t.prototype.serialize = function () { var t = e.prototype.serialize.call(this); return (t.direction1 = this.direction1.asArray()), (t.direction2 = this.direction2.asArray()), t; }), (t.prototype.parse = function (t) { e.prototype.parse.call(this, t), this.direction1.copyFrom(t.direction1), this.direction2.copyFrom(t.direction2); }), t ); })(jl), Vl = (function () { function e() { (this.particlePositionGenerator = function () {}), (this.particleDestinationGenerator = function () {}); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { var r = a.c.Vector3[0]; if (this.particleDestinationGenerator) { this.particleDestinationGenerator(-1, n, r); var o = a.c.Vector3[1]; r.subtractToRef(n.position, o), o.scaleToRef(1 / n.lifeTime, r); } else r.set(0, 0, 0); i ? t.copyFrom(r) : a.e.TransformNormalToRef(r, e, t); }), (e.prototype.startPositionFunction = function (e, t, n, i) { var r = a.c.Vector3[0]; this.particlePositionGenerator ? this.particlePositionGenerator(-1, n, r) : r.set(0, 0, 0), i ? t.copyFrom(r) : a.e.TransformCoordinatesToRef(r, e, t); }), (e.prototype.clone = function () { var t = new e(); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) {}), (e.prototype.getEffectDefines = function () { return "#define CUSTOMEMITTER"; }), (e.prototype.getClassName = function () { return "CustomParticleEmitter"; }), (e.prototype.serialize = function () { var e = {}; return (e.type = this.getClassName()), e; }), (e.prototype.parse = function (e) {}), e ); })(), Gl = (function () { function e(e) { (this.mesh = e), (this._indices = null), (this._positions = null), (this._normals = null), (this._storedNormal = a.e.Zero()), (this.direction1 = new a.e(0, 1, 0)), (this.direction2 = new a.e(0, 1, 0)), (this.useMeshNormalsForDirection = !0), e && ((this._indices = e.getIndices()), (this._positions = e.getVerticesData(wn.b.PositionKind)), (this._normals = e.getVerticesData(wn.b.NormalKind))); } return ( (e.prototype.startDirectionFunction = function (e, t, n, i) { if (this.useMeshNormalsForDirection && this._normals) a.e.TransformNormalToRef(this._storedNormal, e, t); else { var r = z.a.RandomRange(this.direction1.x, this.direction2.x), o = z.a.RandomRange(this.direction1.y, this.direction2.y), s = z.a.RandomRange(this.direction1.z, this.direction2.z); i ? t.copyFromFloats(r, o, s) : a.e.TransformNormalFromFloatsToRef(r, o, s, e, t); } }), (e.prototype.startPositionFunction = function (e, t, n, i) { if (this._indices && this._positions) { var r = (3 * Math.random() * (this._indices.length / 3)) | 0, o = Math.random(), s = Math.random() * (1 - o), c = 1 - o - s, l = this._indices[r], u = this._indices[r + 1], h = this._indices[r + 2], d = a.c.Vector3[0], p = a.c.Vector3[1], f = a.c.Vector3[2], m = a.c.Vector3[3]; a.e.FromArrayToRef(this._positions, 3 * l, d), a.e.FromArrayToRef(this._positions, 3 * u, p), a.e.FromArrayToRef(this._positions, 3 * h, f), (m.x = o * d.x + s * p.x + c * f.x), (m.y = o * d.y + s * p.y + c * f.y), (m.z = o * d.z + s * p.z + c * f.z), i ? t.copyFromFloats(m.x, m.y, m.z) : a.e.TransformCoordinatesFromFloatsToRef(m.x, m.y, m.z, e, t), this.useMeshNormalsForDirection && this._normals && (a.e.FromArrayToRef(this._normals, 3 * l, d), a.e.FromArrayToRef(this._normals, 3 * u, p), a.e.FromArrayToRef(this._normals, 3 * h, f), (this._storedNormal.x = o * d.x + s * p.x + c * f.x), (this._storedNormal.y = o * d.y + s * p.y + c * f.y), (this._storedNormal.z = o * d.z + s * p.z + c * f.z)); } }), (e.prototype.clone = function () { var t = new e(this.mesh); return M.a.DeepCopy(this, t), t; }), (e.prototype.applyToShader = function (e) { e.setVector3("direction1", this.direction1), e.setVector3("direction2", this.direction2); }), (e.prototype.getEffectDefines = function () { return ""; }), (e.prototype.getClassName = function () { return "MeshParticleEmitter"; }), (e.prototype.serialize = function () { var e, t = {}; return ( (t.type = this.getClassName()), (t.direction1 = this.direction1.asArray()), (t.direction2 = this.direction2.asArray()), (t.meshId = null === (e = this.mesh) || void 0 === e ? void 0 : e.id), (t.useMeshNormalsForDirection = this.useMeshNormalsForDirection), t ); }), (e.prototype.parse = function (e, t) { a.e.FromArrayToRef(e.direction1, 0, this.direction1), a.e.FromArrayToRef(e.direction2, 0, this.direction2), e.meshId && (this.mesh = t.getLastMeshByID(e.meshId) || void 0), (this.useMeshNormalsForDirection = e.useMeshNormalsForDirection); }), e ); })(), Ul = (function () { function e(t) { (this.animations = []), (this.renderingGroupId = 0), (this.emitter = a.e.Zero()), (this.emitRate = 10), (this.manualEmitCount = -1), (this.updateSpeed = 0.01), (this.targetStopDuration = 0), (this.disposeOnStop = !1), (this.minEmitPower = 1), (this.maxEmitPower = 1), (this.minLifeTime = 1), (this.maxLifeTime = 1), (this.minSize = 1), (this.maxSize = 1), (this.minScaleX = 1), (this.maxScaleX = 1), (this.minScaleY = 1), (this.maxScaleY = 1), (this.minInitialRotation = 0), (this.maxInitialRotation = 0), (this.minAngularSpeed = 0), (this.maxAngularSpeed = 0), (this.layerMask = 268435455), (this.customShader = null), (this.preventAutoStart = !1), (this.noiseStrength = new a.e(10, 10, 10)), (this.onAnimationEnd = null), (this.blendMode = e.BLENDMODE_ONEONE), (this.forceDepthWrite = !1), (this.preWarmCycles = 0), (this.preWarmStepOffset = 1), (this.spriteCellChangeSpeed = 1), (this.startSpriteCellID = 0), (this.endSpriteCellID = 0), (this.spriteCellWidth = 0), (this.spriteCellHeight = 0), (this.spriteRandomStartCell = !1), (this.translationPivot = new a.d(0, 0)), (this.beginAnimationOnStart = !1), (this.beginAnimationFrom = 0), (this.beginAnimationTo = 60), (this.beginAnimationLoop = !1), (this.worldOffset = new a.e(0, 0, 0)), (this.gravity = a.e.Zero()), (this._colorGradients = null), (this._sizeGradients = null), (this._lifeTimeGradients = null), (this._angularSpeedGradients = null), (this._velocityGradients = null), (this._limitVelocityGradients = null), (this._dragGradients = null), (this._emitRateGradients = null), (this._startSizeGradients = null), (this._rampGradients = null), (this._colorRemapGradients = null), (this._alphaRemapGradients = null), (this.startDelay = 0), (this.limitVelocityDamping = 0.4), (this.color1 = new s.b(1, 1, 1, 1)), (this.color2 = new s.b(1, 1, 1, 1)), (this.colorDead = new s.b(0, 0, 0, 1)), (this.textureMask = new s.b(1, 1, 1, 1)), (this._isSubEmitter = !1), (this.billboardMode = 7), (this._isBillboardBased = !0), (this._imageProcessingConfigurationDefines = new En.b()), (this.id = t), (this.name = t); } return ( Object.defineProperty(e.prototype, "noiseTexture", { get: function () { return this._noiseTexture; }, set: function (e) { this._noiseTexture !== e && ((this._noiseTexture = e), this._reset()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isAnimationSheetEnabled", { get: function () { return this._isAnimationSheetEnabled; }, set: function (e) { this._isAnimationSheetEnabled != e && ((this._isAnimationSheetEnabled = e), this._reset()); }, enumerable: !0, configurable: !0, }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype._hasTargetStopDurationDependantGradient = function () { return (this._startSizeGradients && this._startSizeGradients.length > 0) || (this._emitRateGradients && this._emitRateGradients.length > 0) || (this._lifeTimeGradients && this._lifeTimeGradients.length > 0); }), (e.prototype.getDragGradients = function () { return this._dragGradients; }), (e.prototype.getLimitVelocityGradients = function () { return this._limitVelocityGradients; }), (e.prototype.getColorGradients = function () { return this._colorGradients; }), (e.prototype.getSizeGradients = function () { return this._sizeGradients; }), (e.prototype.getColorRemapGradients = function () { return this._colorRemapGradients; }), (e.prototype.getAlphaRemapGradients = function () { return this._alphaRemapGradients; }), (e.prototype.getLifeTimeGradients = function () { return this._lifeTimeGradients; }), (e.prototype.getAngularSpeedGradients = function () { return this._angularSpeedGradients; }), (e.prototype.getVelocityGradients = function () { return this._velocityGradients; }), (e.prototype.getStartSizeGradients = function () { return this._startSizeGradients; }), (e.prototype.getEmitRateGradients = function () { return this._emitRateGradients; }), Object.defineProperty(e.prototype, "direction1", { get: function () { return this.particleEmitterType.direction1 ? this.particleEmitterType.direction1 : a.e.Zero(); }, set: function (e) { this.particleEmitterType.direction1 && (this.particleEmitterType.direction1 = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "direction2", { get: function () { return this.particleEmitterType.direction2 ? this.particleEmitterType.direction2 : a.e.Zero(); }, set: function (e) { this.particleEmitterType.direction2 && (this.particleEmitterType.direction2 = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "minEmitBox", { get: function () { return this.particleEmitterType.minEmitBox ? this.particleEmitterType.minEmitBox : a.e.Zero(); }, set: function (e) { this.particleEmitterType.minEmitBox && (this.particleEmitterType.minEmitBox = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "maxEmitBox", { get: function () { return this.particleEmitterType.maxEmitBox ? this.particleEmitterType.maxEmitBox : a.e.Zero(); }, set: function (e) { this.particleEmitterType.maxEmitBox && (this.particleEmitterType.maxEmitBox = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isBillboardBased", { get: function () { return this._isBillboardBased; }, set: function (e) { this._isBillboardBased !== e && ((this._isBillboardBased = e), this._reset()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "imageProcessingConfiguration", { get: function () { return this._imageProcessingConfiguration; }, set: function (e) { this._attachImageProcessingConfiguration(e); }, enumerable: !0, configurable: !0, }), (e.prototype._attachImageProcessingConfiguration = function (e) { e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration = e || this._scene.imageProcessingConfiguration); }), (e.prototype._reset = function () {}), (e.prototype._removeGradientAndTexture = function (e, t, n) { if (!t) return this; for (var i = 0, r = 0, o = t; r < o.length; r++) { if (o[r].gradient === e) { t.splice(i, 1); break; } i++; } return n && n.dispose(), this; }), (e.prototype.createPointEmitter = function (e, t) { var n = new zl(); return (n.direction1 = e), (n.direction2 = t), (this.particleEmitterType = n), n; }), (e.prototype.createHemisphericEmitter = function (e, t) { void 0 === e && (e = 1), void 0 === t && (t = 1); var n = new kl(e, t); return (this.particleEmitterType = n), n; }), (e.prototype.createSphereEmitter = function (e, t) { void 0 === e && (e = 1), void 0 === t && (t = 1); var n = new jl(e, t); return (this.particleEmitterType = n), n; }), (e.prototype.createDirectedSphereEmitter = function (e, t, n) { void 0 === e && (e = 1), void 0 === t && (t = new a.e(0, 1, 0)), void 0 === n && (n = new a.e(0, 1, 0)); var i = new Bl(e, t, n); return (this.particleEmitterType = i), i; }), (e.prototype.createCylinderEmitter = function (e, t, n, i) { void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = 0); var r = new Fl(e, t, n, i); return (this.particleEmitterType = r), r; }), (e.prototype.createDirectedCylinderEmitter = function (e, t, n, i, r) { void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === n && (n = 1), void 0 === i && (i = new a.e(0, 1, 0)), void 0 === r && (r = new a.e(0, 1, 0)); var o = new Nl(e, t, n, i, r); return (this.particleEmitterType = o), o; }), (e.prototype.createConeEmitter = function (e, t) { void 0 === e && (e = 1), void 0 === t && (t = Math.PI / 4); var n = new Ll(e, t); return (this.particleEmitterType = n), n; }), (e.prototype.createBoxEmitter = function (e, t, n, i) { var r = new wl(); return (this.particleEmitterType = r), (this.direction1 = e), (this.direction2 = t), (this.minEmitBox = n), (this.maxEmitBox = i), r; }), (e.BLENDMODE_ONEONE = 0), (e.BLENDMODE_STANDARD = 1), (e.BLENDMODE_ADD = 2), (e.BLENDMODE_MULTIPLY = 3), (e.BLENDMODE_MULTIPLYADD = 4), e ); })(), Hl = (function () { function e() {} return ( (e.prototype.getColorToRef = function (e) { this.color2 ? s.b.LerpToRef(this.color1, this.color2, Math.random(), e) : e.copyFrom(this.color1); }), e ); })(), Wl = function () {}, Xl = (function () { function e() {} return ( (e.prototype.getFactor = function () { return void 0 === this.factor2 ? this.factor1 : this.factor1 + (this.factor2 - this.factor1) * Math.random(); }), e ); })(), Yl = (function () { function e() {} return ( (e.GetCurrentGradient = function (e, t, n) { for (var i = 0; i < t.length - 1; i++) { var r = t[i], o = t[i + 1]; if (e >= r.gradient && e <= o.gradient) return void n(r, o, (e - r.gradient) / (o.gradient - r.gradient)); } var a = t.length - 1; n(t[a], t[a], 1); }), e ); })(), Kl = (function () { function e(t) { (this.particleSystem = t), (this.position = a.e.Zero()), (this.direction = a.e.Zero()), (this.color = new s.b(0, 0, 0, 0)), (this.colorStep = new s.b(0, 0, 0, 0)), (this.lifeTime = 1), (this.age = 0), (this.size = 0), (this.scale = new a.d(1, 1)), (this.angle = 0), (this.angularSpeed = 0), (this.cellIndex = 0), (this._attachedSubEmitters = null), (this._currentColor1 = new s.b(0, 0, 0, 0)), (this._currentColor2 = new s.b(0, 0, 0, 0)), (this._currentSize1 = 0), (this._currentSize2 = 0), (this._currentAngularSpeed1 = 0), (this._currentAngularSpeed2 = 0), (this._currentVelocity1 = 0), (this._currentVelocity2 = 0), (this._currentLimitVelocity1 = 0), (this._currentLimitVelocity2 = 0), (this._currentDrag1 = 0), (this._currentDrag2 = 0), (this.id = e._Count++), this.particleSystem.isAnimationSheetEnabled && this.updateCellInfoFromSystem(); } return ( (e.prototype.updateCellInfoFromSystem = function () { this.cellIndex = this.particleSystem.startSpriteCellID; }), (e.prototype.updateCellIndex = function () { var e = this.age, t = this.particleSystem.spriteCellChangeSpeed; this.particleSystem.spriteRandomStartCell && (void 0 === this._randomCellOffset && (this._randomCellOffset = Math.random() * this.lifeTime), 0 === t ? ((t = 1), (e = this._randomCellOffset)) : (e += this._randomCellOffset)); var n = this._initialEndSpriteCellID - this._initialStartSpriteCellID, i = z.a.Clamp(((e * t) % this.lifeTime) / this.lifeTime); this.cellIndex = (this._initialStartSpriteCellID + i * n) | 0; }), (e.prototype._inheritParticleInfoToSubEmitter = function (e) { if (e.particleSystem.emitter.position) { var t = e.particleSystem.emitter; t.position.copyFrom(this.position), e.inheritDirection && t.setDirection(this.direction.normalize(), 0, Math.PI / 2); } else { e.particleSystem.emitter.copyFrom(this.position); } this.direction.scaleToRef(e.inheritedVelocityAmount / 2, a.c.Vector3[0]), e.particleSystem._inheritedVelocityOffset.copyFrom(a.c.Vector3[0]); }), (e.prototype._inheritParticleInfoToSubEmitters = function () { var e = this; this._attachedSubEmitters && this._attachedSubEmitters.length > 0 && this._attachedSubEmitters.forEach(function (t) { e._inheritParticleInfoToSubEmitter(t); }); }), (e.prototype._reset = function () { (this.age = 0), (this.id = e._Count++), (this._currentColorGradient = null), (this._currentSizeGradient = null), (this._currentAngularSpeedGradient = null), (this._currentVelocityGradient = null), (this._currentLimitVelocityGradient = null), (this._currentDragGradient = null), (this.cellIndex = this.particleSystem.startSpriteCellID), (this._randomCellOffset = void 0); }), (e.prototype.copyTo = function (e) { e.position.copyFrom(this.position), this._initialDirection ? (e._initialDirection ? e._initialDirection.copyFrom(this._initialDirection) : (e._initialDirection = this._initialDirection.clone())) : (e._initialDirection = null), e.direction.copyFrom(this.direction), this._localPosition && (e._localPosition ? e._localPosition.copyFrom(this._localPosition) : (e._localPosition = this._localPosition.clone())), e.color.copyFrom(this.color), e.colorStep.copyFrom(this.colorStep), (e.lifeTime = this.lifeTime), (e.age = this.age), (e._randomCellOffset = this._randomCellOffset), (e.size = this.size), e.scale.copyFrom(this.scale), (e.angle = this.angle), (e.angularSpeed = this.angularSpeed), (e.particleSystem = this.particleSystem), (e.cellIndex = this.cellIndex), (e.id = this.id), (e._attachedSubEmitters = this._attachedSubEmitters), this._currentColorGradient && ((e._currentColorGradient = this._currentColorGradient), e._currentColor1.copyFrom(this._currentColor1), e._currentColor2.copyFrom(this._currentColor2)), this._currentSizeGradient && ((e._currentSizeGradient = this._currentSizeGradient), (e._currentSize1 = this._currentSize1), (e._currentSize2 = this._currentSize2)), this._currentAngularSpeedGradient && ((e._currentAngularSpeedGradient = this._currentAngularSpeedGradient), (e._currentAngularSpeed1 = this._currentAngularSpeed1), (e._currentAngularSpeed2 = this._currentAngularSpeed2)), this._currentVelocityGradient && ((e._currentVelocityGradient = this._currentVelocityGradient), (e._currentVelocity1 = this._currentVelocity1), (e._currentVelocity2 = this._currentVelocity2)), this._currentLimitVelocityGradient && ((e._currentLimitVelocityGradient = this._currentLimitVelocityGradient), (e._currentLimitVelocity1 = this._currentLimitVelocity1), (e._currentLimitVelocity2 = this._currentLimitVelocity2)), this._currentDragGradient && ((e._currentDragGradient = this._currentDragGradient), (e._currentDrag1 = this._currentDrag1), (e._currentDrag2 = this._currentDrag2)), this.particleSystem.isAnimationSheetEnabled && ((e._initialStartSpriteCellID = this._initialStartSpriteCellID), (e._initialEndSpriteCellID = this._initialEndSpriteCellID)), this.particleSystem.useRampGradients && e.remapData.copyFrom(this.remapData), this._randomNoiseCoordinates1 && (e._randomNoiseCoordinates1 ? (e._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1), e._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2)) : ((e._randomNoiseCoordinates1 = this._randomNoiseCoordinates1.clone()), (e._randomNoiseCoordinates2 = this._randomNoiseCoordinates2.clone()))); }), (e._Count = 0), e ); })(); !(function (e) { (e[(e.ATTACHED = 0)] = "ATTACHED"), (e[(e.END = 1)] = "END"); })(Dl || (Dl = {})); var Zl = (function () { function e(e) { (this.particleSystem = e), (this.type = Dl.END), (this.inheritDirection = !1), (this.inheritedVelocityAmount = 0), (e.emitter && e.emitter.dispose) || (e.emitter = new ke.a("SubemitterSystemEmitter", e.getScene())), e.onDisposeObservable.add(function () { e.emitter && e.emitter.dispose && e.emitter.dispose(); }); } return ( (e.prototype.clone = function () { var t = this.particleSystem.emitter; t ? (t instanceof a.e ? (t = t.clone()) : t instanceof ke.a && ((t = new Ee.a("", t.getScene())).isVisible = !1)) : (t = new a.e()); var n = new e(this.particleSystem.clone("", t)); return ( (n.particleSystem.name += "Clone"), (n.type = this.type), (n.inheritDirection = this.inheritDirection), (n.inheritedVelocityAmount = this.inheritedVelocityAmount), (n.particleSystem._disposeEmitterOnDispose = !0), (n.particleSystem.disposeOnStop = !0), n ); }), (e.prototype.serialize = function () { var e = {}; return (e.type = this.type), (e.inheritDirection = this.inheritDirection), (e.inheritedVelocityAmount = this.inheritedVelocityAmount), (e.particleSystem = this.particleSystem.serialize()), e; }), (e._ParseParticleSystem = function (e, t, n) { throw zo.a.WarnImport("ParseParticle"); }), (e.Parse = function (t, n, i) { var r = t.particleSystem, o = new e(e._ParseParticleSystem(r, n, i)); return (o.type = t.type), (o.inheritDirection = t.inheritDirection), (o.inheritedVelocityAmount = t.inheritedVelocityAmount), (o.particleSystem._isSubEmitter = !0), o; }), (e.prototype.dispose = function () { this.particleSystem.dispose(); }), e ); })(), ql = "\nvarying vec2 vUV;\nvarying vec4 vColor;\nuniform vec4 textureMask;\nuniform sampler2D diffuseSampler;\n#include\n#include\n#include\n#include\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\nuniform sampler2D rampSampler;\n#endif\nvoid main(void) {\n#include\nvec4 textureColor=texture2D(diffuseSampler,vUV);\nvec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\n#ifdef RAMPGRADIENT\nfloat alpha=baseColor.a;\nfloat remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);\nvec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));\nbaseColor.rgb*=rampColor.rgb;\n\nfloat finalAlpha=baseColor.a;\nbaseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\n#endif\n#ifdef BLENDMULTIPLYMODE\nfloat sourceAlpha=vColor.a*textureColor.a;\nbaseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\n#endif\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\nbaseColor=applyImageProcessing(baseColor);\n#endif\n#endif\ngl_FragColor=baseColor;\n}"; Xt.a.ShadersStore.particlesPixelShader = ql; var Ql = "\nattribute vec3 position;\nattribute vec4 color;\nattribute float angle;\nattribute vec2 size;\n#ifdef ANIMATESHEET\nattribute float cellIndex;\n#endif\n#ifndef BILLBOARD\nattribute vec3 direction;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute vec3 direction;\n#endif\n#ifdef RAMPGRADIENT\nattribute vec4 remapData;\n#endif\nattribute vec2 offset;\n\nuniform mat4 view;\nuniform mat4 projection;\nuniform vec2 translationPivot;\n#ifdef ANIMATESHEET\nuniform vec3 particlesInfos;\n#endif\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nuniform mat4 invView;\n#endif\n#include\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\nvec3 zaxis=normalize(cross(yaxis,xaxis));\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn position+alignedCorner;\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\nvec3 normalizedToCamera=normalize(toCamera);\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn position+alignedCorner;\n}\n#endif\nvoid main(void) {\nvec2 cornerPos;\ncornerPos=(vec2(offset.x-0.5,offset.y-0.5)-translationPivot)*size+translationPivot;\n#ifdef BILLBOARD\n\nvec3 rotatedCorner;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=position-eyePosition;\nyaxis.y=0.;\nvec3 worldPos=rotate(normalize(yaxis),rotatedCorner);\nvec3 viewPos=(view*vec4(worldPos,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 toCamera=position-eyePosition;\nvec3 worldPos=rotateAlign(toCamera,rotatedCorner);\nvec3 viewPos=(view*vec4(worldPos,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\n\ngl_Position=projection*vec4(viewPos,1.0);\n#else\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=normalize(direction);\nvec3 worldPos=rotate(yaxis,rotatedCorner);\ngl_Position=projection*view*vec4(worldPos,1.0);\n#endif\nvColor=color;\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/particlesInfos.z);\nfloat columnOffset=cellIndex-rowOffset*particlesInfos.z;\nvec2 uvScale=particlesInfos.xy;\nvec2 uvOffset=vec2(offset.x ,1.0-offset.y);\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=offset;\n#endif\n\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nvec4 worldPos=invView*vec4(viewPos,1.0);\n#endif\n#include\n}"; Xt.a.ShadersStore.particlesVertexShader = Ql; var Jl = (function (e) { function t(t, n, i, r, c, l) { void 0 === r && (r = null), void 0 === c && (c = !1), void 0 === l && (l = 0.01); var u = e.call(this, t) || this; return ( (u._inheritedVelocityOffset = new a.e()), (u.onDisposeObservable = new o.c()), (u._particles = new Array()), (u._stockParticles = new Array()), (u._newPartsExcess = 0), (u._vertexBuffers = {}), (u._scaledColorStep = new s.b(0, 0, 0, 0)), (u._colorDiff = new s.b(0, 0, 0, 0)), (u._scaledDirection = a.e.Zero()), (u._scaledGravity = a.e.Zero()), (u._currentRenderId = -1), (u._useInstancing = !1), (u._started = !1), (u._stopped = !1), (u._actualFrame = 0), (u._currentEmitRate1 = 0), (u._currentEmitRate2 = 0), (u._currentStartSize1 = 0), (u._currentStartSize2 = 0), (u._rawTextureWidth = 256), (u._useRampGradients = !1), (u._disposeEmitterOnDispose = !1), (u.isLocal = !1), (u.recycleParticle = function (e) { var t = u._particles.pop(); t !== e && t.copyTo(e), u._stockParticles.push(t); }), (u._createParticle = function () { var e; if ((0 !== u._stockParticles.length ? (e = u._stockParticles.pop())._reset() : (e = new Kl(u)), u._subEmitters && u._subEmitters.length > 0)) { var t = u._subEmitters[Math.floor(Math.random() * u._subEmitters.length)]; (e._attachedSubEmitters = []), t.forEach(function (t) { if (t.type === Dl.ATTACHED) { var n = t.clone(); e._attachedSubEmitters.push(n), n.particleSystem.start(); } }); } return e; }), (u._emitFromParticle = function (e) { if (u._subEmitters && 0 !== u._subEmitters.length) { var t = Math.floor(Math.random() * u._subEmitters.length); u._subEmitters[t].forEach(function (t) { if (t.type === Dl.END) { var n = t.clone(); e._inheritParticleInfoToSubEmitter(n), (n.particleSystem._rootParticleSystem = u), u.activeSubSystems.push(n.particleSystem), n.particleSystem.start(); } }); } }), (u._capacity = n), (u._epsilon = l), (u._isAnimationSheetEnabled = c), (u._scene = i || E.a.LastCreatedScene), u._attachImageProcessingConfiguration(null), (u._customEffect = r), u._scene.particleSystems.push(u), (u._useInstancing = u._scene.getEngine().getCaps().instancedArrays), u._createIndexBuffer(), u._createVertexBuffers(), (u.particleEmitterType = new wl()), (u.updateFunction = function (e) { var t = null, n = null; u.noiseTexture && ((t = u.noiseTexture.getSize()), (n = u.noiseTexture.getContent())); for ( var i, r = function () { i = e[o]; var r = u._scaledUpdateSpeed, c = i.age; if (((i.age += r), i.age > i.lifeTime)) { var l = i.age - c; (r = ((i.lifeTime - c) * r) / l), (i.age = i.lifeTime); } var h = i.age / i.lifeTime; u._colorGradients && u._colorGradients.length > 0 ? Yl.GetCurrentGradient(h, u._colorGradients, function (e, t, n) { e !== i._currentColorGradient && (i._currentColor1.copyFrom(i._currentColor2), t.getColorToRef(i._currentColor2), (i._currentColorGradient = e)), s.b.LerpToRef(i._currentColor1, i._currentColor2, n, i.color); }) : (i.colorStep.scaleToRef(r, u._scaledColorStep), i.color.addInPlace(u._scaledColorStep), i.color.a < 0 && (i.color.a = 0)), u._angularSpeedGradients && u._angularSpeedGradients.length > 0 && Yl.GetCurrentGradient(h, u._angularSpeedGradients, function (e, t, n) { e !== i._currentAngularSpeedGradient && ((i._currentAngularSpeed1 = i._currentAngularSpeed2), (i._currentAngularSpeed2 = t.getFactor()), (i._currentAngularSpeedGradient = e)), (i.angularSpeed = z.a.Lerp(i._currentAngularSpeed1, i._currentAngularSpeed2, n)); }), (i.angle += i.angularSpeed * r); var d = r; if ( (u._velocityGradients && u._velocityGradients.length > 0 && Yl.GetCurrentGradient(h, u._velocityGradients, function (e, t, n) { e !== i._currentVelocityGradient && ((i._currentVelocity1 = i._currentVelocity2), (i._currentVelocity2 = t.getFactor()), (i._currentVelocityGradient = e)), (d *= z.a.Lerp(i._currentVelocity1, i._currentVelocity2, n)); }), i.direction.scaleToRef(d, u._scaledDirection), u._limitVelocityGradients && u._limitVelocityGradients.length > 0 && Yl.GetCurrentGradient(h, u._limitVelocityGradients, function (e, t, n) { e !== i._currentLimitVelocityGradient && ((i._currentLimitVelocity1 = i._currentLimitVelocity2), (i._currentLimitVelocity2 = t.getFactor()), (i._currentLimitVelocityGradient = e)); var r = z.a.Lerp(i._currentLimitVelocity1, i._currentLimitVelocity2, n); i.direction.length() > r && i.direction.scaleInPlace(u.limitVelocityDamping); }), u._dragGradients && u._dragGradients.length > 0 && Yl.GetCurrentGradient(h, u._dragGradients, function (e, t, n) { e !== i._currentDragGradient && ((i._currentDrag1 = i._currentDrag2), (i._currentDrag2 = t.getFactor()), (i._currentDragGradient = e)); var r = z.a.Lerp(i._currentDrag1, i._currentDrag2, n); u._scaledDirection.scaleInPlace(1 - r); }), u.isLocal ? (i._localPosition.addInPlace(u._scaledDirection), a.e.TransformCoordinatesToRef(i._localPosition, u._emitterWorldMatrix, i.position)) : i.position.addInPlace(u._scaledDirection), n && t && i._randomNoiseCoordinates1) ) { var p = u._fetchR(i._randomNoiseCoordinates1.x, i._randomNoiseCoordinates1.y, t.width, t.height, n), f = u._fetchR(i._randomNoiseCoordinates1.z, i._randomNoiseCoordinates2.x, t.width, t.height, n), m = u._fetchR(i._randomNoiseCoordinates2.y, i._randomNoiseCoordinates2.z, t.width, t.height, n), g = a.c.Vector3[0], b = a.c.Vector3[1]; g.copyFromFloats((2 * p - 1) * u.noiseStrength.x, (2 * f - 1) * u.noiseStrength.y, (2 * m - 1) * u.noiseStrength.z), g.scaleToRef(r, b), i.direction.addInPlace(b); } if ( (u.gravity.scaleToRef(r, u._scaledGravity), i.direction.addInPlace(u._scaledGravity), u._sizeGradients && u._sizeGradients.length > 0 && Yl.GetCurrentGradient(h, u._sizeGradients, function (e, t, n) { e !== i._currentSizeGradient && ((i._currentSize1 = i._currentSize2), (i._currentSize2 = t.getFactor()), (i._currentSizeGradient = e)), (i.size = z.a.Lerp(i._currentSize1, i._currentSize2, n)); }), u._useRampGradients && (u._colorRemapGradients && u._colorRemapGradients.length > 0 && Yl.GetCurrentGradient(h, u._colorRemapGradients, function (e, t, n) { var r = z.a.Lerp(e.factor1, t.factor1, n), o = z.a.Lerp(e.factor2, t.factor2, n); (i.remapData.x = r), (i.remapData.y = o - r); }), u._alphaRemapGradients && u._alphaRemapGradients.length > 0 && Yl.GetCurrentGradient(h, u._alphaRemapGradients, function (e, t, n) { var r = z.a.Lerp(e.factor1, t.factor1, n), o = z.a.Lerp(e.factor2, t.factor2, n); (i.remapData.z = r), (i.remapData.w = o - r); })), u._isAnimationSheetEnabled && i.updateCellIndex(), i._inheritParticleInfoToSubEmitters(), i.age >= i.lifeTime) ) return ( u._emitFromParticle(i), i._attachedSubEmitters && (i._attachedSubEmitters.forEach(function (e) { (e.particleSystem.disposeOnStop = !0), e.particleSystem.stop(); }), (i._attachedSubEmitters = null)), u.recycleParticle(i), o--, "continue" ); }, o = 0; o < e.length; o++ ) r(); }), u ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "useRampGradients", { get: function () { return this._useRampGradients; }, set: function (e) { this._useRampGradients !== e && ((this._useRampGradients = e), this._resetEffect()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "particles", { get: function () { return this._particles; }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "ParticleSystem"; }), (t.prototype._addFactorGradient = function (e, t, n, i) { var r = new Xl(); (r.gradient = t), (r.factor1 = n), (r.factor2 = i), e.push(r), e.sort(function (e, t) { return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0; }); }), (t.prototype._removeFactorGradient = function (e, t) { if (e) for (var n = 0, i = 0, r = e; i < r.length; i++) { if (r[i].gradient === t) { e.splice(n, 1); break; } n++; } }), (t.prototype.addLifeTimeGradient = function (e, t, n) { return this._lifeTimeGradients || (this._lifeTimeGradients = []), this._addFactorGradient(this._lifeTimeGradients, e, t, n), this; }), (t.prototype.removeLifeTimeGradient = function (e) { return this._removeFactorGradient(this._lifeTimeGradients, e), this; }), (t.prototype.addSizeGradient = function (e, t, n) { return this._sizeGradients || (this._sizeGradients = []), this._addFactorGradient(this._sizeGradients, e, t, n), this; }), (t.prototype.removeSizeGradient = function (e) { return this._removeFactorGradient(this._sizeGradients, e), this; }), (t.prototype.addColorRemapGradient = function (e, t, n) { return this._colorRemapGradients || (this._colorRemapGradients = []), this._addFactorGradient(this._colorRemapGradients, e, t, n), this; }), (t.prototype.removeColorRemapGradient = function (e) { return this._removeFactorGradient(this._colorRemapGradients, e), this; }), (t.prototype.addAlphaRemapGradient = function (e, t, n) { return this._alphaRemapGradients || (this._alphaRemapGradients = []), this._addFactorGradient(this._alphaRemapGradients, e, t, n), this; }), (t.prototype.removeAlphaRemapGradient = function (e) { return this._removeFactorGradient(this._alphaRemapGradients, e), this; }), (t.prototype.addAngularSpeedGradient = function (e, t, n) { return this._angularSpeedGradients || (this._angularSpeedGradients = []), this._addFactorGradient(this._angularSpeedGradients, e, t, n), this; }), (t.prototype.removeAngularSpeedGradient = function (e) { return this._removeFactorGradient(this._angularSpeedGradients, e), this; }), (t.prototype.addVelocityGradient = function (e, t, n) { return this._velocityGradients || (this._velocityGradients = []), this._addFactorGradient(this._velocityGradients, e, t, n), this; }), (t.prototype.removeVelocityGradient = function (e) { return this._removeFactorGradient(this._velocityGradients, e), this; }), (t.prototype.addLimitVelocityGradient = function (e, t, n) { return this._limitVelocityGradients || (this._limitVelocityGradients = []), this._addFactorGradient(this._limitVelocityGradients, e, t, n), this; }), (t.prototype.removeLimitVelocityGradient = function (e) { return this._removeFactorGradient(this._limitVelocityGradients, e), this; }), (t.prototype.addDragGradient = function (e, t, n) { return this._dragGradients || (this._dragGradients = []), this._addFactorGradient(this._dragGradients, e, t, n), this; }), (t.prototype.removeDragGradient = function (e) { return this._removeFactorGradient(this._dragGradients, e), this; }), (t.prototype.addEmitRateGradient = function (e, t, n) { return this._emitRateGradients || (this._emitRateGradients = []), this._addFactorGradient(this._emitRateGradients, e, t, n), this; }), (t.prototype.removeEmitRateGradient = function (e) { return this._removeFactorGradient(this._emitRateGradients, e), this; }), (t.prototype.addStartSizeGradient = function (e, t, n) { return this._startSizeGradients || (this._startSizeGradients = []), this._addFactorGradient(this._startSizeGradients, e, t, n), this; }), (t.prototype.removeStartSizeGradient = function (e) { return this._removeFactorGradient(this._emitRateGradients, e), this; }), (t.prototype._createRampGradientTexture = function () { if (this._rampGradients && this._rampGradients.length && !this._rampGradientsTexture) { for (var e = new Uint8Array(4 * this._rawTextureWidth), t = s.c.Color3[0], n = 0; n < this._rawTextureWidth; n++) { var i = n / this._rawTextureWidth; Yl.GetCurrentGradient(i, this._rampGradients, function (i, r, o) { s.a.LerpToRef(i.color, r.color, o, t), (e[4 * n] = 255 * t.r), (e[4 * n + 1] = 255 * t.g), (e[4 * n + 2] = 255 * t.b), (e[4 * n + 3] = 255); }); } this._rampGradientsTexture = Cs.a.CreateRGBATexture(e, this._rawTextureWidth, 1, this._scene, !1, !1, ln.a.NEAREST_SAMPLINGMODE); } }), (t.prototype.getRampGradients = function () { return this._rampGradients; }), (t.prototype.addRampGradient = function (e, t) { this._rampGradients || (this._rampGradients = []); var n = new Wl(); return ( (n.gradient = e), (n.color = t), this._rampGradients.push(n), this._rampGradients.sort(function (e, t) { return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0; }), this._rampGradientsTexture && (this._rampGradientsTexture.dispose(), (this._rampGradientsTexture = null)), this._createRampGradientTexture(), this ); }), (t.prototype.removeRampGradient = function (e) { return ( this._removeGradientAndTexture(e, this._rampGradients, this._rampGradientsTexture), (this._rampGradientsTexture = null), this._rampGradients && this._rampGradients.length > 0 && this._createRampGradientTexture(), this ); }), (t.prototype.addColorGradient = function (e, t, n) { this._colorGradients || (this._colorGradients = []); var i = new Hl(); return ( (i.gradient = e), (i.color1 = t), (i.color2 = n), this._colorGradients.push(i), this._colorGradients.sort(function (e, t) { return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0; }), this ); }), (t.prototype.removeColorGradient = function (e) { if (!this._colorGradients) return this; for (var t = 0, n = 0, i = this._colorGradients; n < i.length; n++) { if (i[n].gradient === e) { this._colorGradients.splice(t, 1); break; } t++; } return this; }), (t.prototype._fetchR = function (e, t, n, i, r) { return r[4 * ((((e = 0.5 * Math.abs(e) + 0.5) * n) % n | 0) + (((t = 0.5 * Math.abs(t) + 0.5) * i) % i | 0) * n)] / 255; }), (t.prototype._reset = function () { this._resetEffect(); }), (t.prototype._resetEffect = function () { this._vertexBuffer && (this._vertexBuffer.dispose(), (this._vertexBuffer = null)), this._spriteBuffer && (this._spriteBuffer.dispose(), (this._spriteBuffer = null)), this._createVertexBuffers(); }), (t.prototype._createVertexBuffers = function () { (this._vertexBufferSize = this._useInstancing ? 10 : 12), this._isAnimationSheetEnabled && (this._vertexBufferSize += 1), (this._isBillboardBased && this.billboardMode !== t.BILLBOARDMODE_STRETCHED) || (this._vertexBufferSize += 3), this._useRampGradients && (this._vertexBufferSize += 4); var e = this._scene.getEngine(); (this._vertexData = new Float32Array(this._capacity * this._vertexBufferSize * (this._useInstancing ? 1 : 4))), (this._vertexBuffer = new wn.a(e, this._vertexData, !0, this._vertexBufferSize)); var n = 0, i = this._vertexBuffer.createVertexBuffer(wn.b.PositionKind, n, 3, this._vertexBufferSize, this._useInstancing); (this._vertexBuffers[wn.b.PositionKind] = i), (n += 3); var r = this._vertexBuffer.createVertexBuffer(wn.b.ColorKind, n, 4, this._vertexBufferSize, this._useInstancing); (this._vertexBuffers[wn.b.ColorKind] = r), (n += 4); var o = this._vertexBuffer.createVertexBuffer("angle", n, 1, this._vertexBufferSize, this._useInstancing); (this._vertexBuffers.angle = o), (n += 1); var a, s = this._vertexBuffer.createVertexBuffer("size", n, 2, this._vertexBufferSize, this._useInstancing); if (((this._vertexBuffers.size = s), (n += 2), this._isAnimationSheetEnabled)) { var c = this._vertexBuffer.createVertexBuffer("cellIndex", n, 1, this._vertexBufferSize, this._useInstancing); (this._vertexBuffers.cellIndex = c), (n += 1); } if (!this._isBillboardBased || this.billboardMode === t.BILLBOARDMODE_STRETCHED) { var l = this._vertexBuffer.createVertexBuffer("direction", n, 3, this._vertexBufferSize, this._useInstancing); (this._vertexBuffers.direction = l), (n += 3); } if (this._useRampGradients) { var u = this._vertexBuffer.createVertexBuffer("remapData", n, 4, this._vertexBufferSize, this._useInstancing); (this._vertexBuffers.remapData = u), (n += 4); } if (this._useInstancing) { var h = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]); (this._spriteBuffer = new wn.a(e, h, !1, 2)), (a = this._spriteBuffer.createVertexBuffer("offset", 0, 2)); } else (a = this._vertexBuffer.createVertexBuffer("offset", n, 2, this._vertexBufferSize, this._useInstancing)), (n += 2); this._vertexBuffers.offset = a; }), (t.prototype._createIndexBuffer = function () { if (!this._useInstancing) { for (var e = [], t = 0, n = 0; n < this._capacity; n++) e.push(t), e.push(t + 1), e.push(t + 2), e.push(t), e.push(t + 2), e.push(t + 3), (t += 4); this._indexBuffer = this._scene.getEngine().createIndexBuffer(e); } }), (t.prototype.getCapacity = function () { return this._capacity; }), (t.prototype.isAlive = function () { return this._alive; }), (t.prototype.isStarted = function () { return this._started; }), (t.prototype._prepareSubEmitterInternalArray = function () { var e = this; (this._subEmitters = new Array()), this.subEmitters && this.subEmitters.forEach(function (n) { n instanceof t ? e._subEmitters.push([new Zl(n)]) : n instanceof Zl ? e._subEmitters.push([n]) : n instanceof Array && e._subEmitters.push(n); }); }), (t.prototype.start = function (e) { var t = this; if ((void 0 === e && (e = this.startDelay), !this.targetStopDuration && this._hasTargetStopDurationDependantGradient())) throw "Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set"; if (e) setTimeout(function () { t.start(0); }, e); else { if ( (this._prepareSubEmitterInternalArray(), (this._started = !0), (this._stopped = !1), (this._actualFrame = 0), this._subEmitters && 0 != this._subEmitters.length && (this.activeSubSystems = new Array()), this._emitRateGradients && (this._emitRateGradients.length > 0 && ((this._currentEmitRateGradient = this._emitRateGradients[0]), (this._currentEmitRate1 = this._currentEmitRateGradient.getFactor()), (this._currentEmitRate2 = this._currentEmitRate1)), this._emitRateGradients.length > 1 && (this._currentEmitRate2 = this._emitRateGradients[1].getFactor())), this._startSizeGradients && (this._startSizeGradients.length > 0 && ((this._currentStartSizeGradient = this._startSizeGradients[0]), (this._currentStartSize1 = this._currentStartSizeGradient.getFactor()), (this._currentStartSize2 = this._currentStartSize1)), this._startSizeGradients.length > 1 && (this._currentStartSize2 = this._startSizeGradients[1].getFactor())), this.preWarmCycles) ) { this.emitter instanceof ke.a && this.emitter.computeWorldMatrix(!0); var n = this.noiseTexture; if (n && n.onGeneratedObservable) n.onGeneratedObservable.addOnce(function () { setTimeout(function () { for (var e = 0; e < t.preWarmCycles; e++) t.animate(!0), n.render(); }); }); else for (var i = 0; i < this.preWarmCycles; i++) this.animate(!0); } this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this.getScene().beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop); } }), (t.prototype.stop = function (e) { void 0 === e && (e = !0), (this._stopped = !0), e && this._stopSubEmitters(); }), (t.prototype.reset = function () { (this._stockParticles = []), (this._particles = []); }), (t.prototype._appendParticleVertex = function (e, n, i, r) { var o = e * this._vertexBufferSize; if ( ((this._vertexData[o++] = n.position.x + this.worldOffset.x), (this._vertexData[o++] = n.position.y + this.worldOffset.y), (this._vertexData[o++] = n.position.z + this.worldOffset.z), (this._vertexData[o++] = n.color.r), (this._vertexData[o++] = n.color.g), (this._vertexData[o++] = n.color.b), (this._vertexData[o++] = n.color.a), (this._vertexData[o++] = n.angle), (this._vertexData[o++] = n.scale.x * n.size), (this._vertexData[o++] = n.scale.y * n.size), this._isAnimationSheetEnabled && (this._vertexData[o++] = n.cellIndex), this._isBillboardBased) ) this.billboardMode === t.BILLBOARDMODE_STRETCHED && ((this._vertexData[o++] = n.direction.x), (this._vertexData[o++] = n.direction.y), (this._vertexData[o++] = n.direction.z)); else if (n._initialDirection) { var s = n._initialDirection; this.isLocal && (a.e.TransformNormalToRef(s, this._emitterWorldMatrix, a.c.Vector3[0]), (s = a.c.Vector3[0])), 0 === s.x && 0 === s.z && (s.x = 0.001), (this._vertexData[o++] = s.x), (this._vertexData[o++] = s.y), (this._vertexData[o++] = s.z); } else { var c = n.direction; this.isLocal && (a.e.TransformNormalToRef(c, this._emitterWorldMatrix, a.c.Vector3[0]), (c = a.c.Vector3[0])), 0 === c.x && 0 === c.z && (c.x = 0.001), (this._vertexData[o++] = c.x), (this._vertexData[o++] = c.y), (this._vertexData[o++] = c.z); } this._useRampGradients && ((this._vertexData[o++] = n.remapData.x), (this._vertexData[o++] = n.remapData.y), (this._vertexData[o++] = n.remapData.z), (this._vertexData[o++] = n.remapData.w)), this._useInstancing || (this._isAnimationSheetEnabled && (0 === i ? (i = this._epsilon) : 1 === i && (i = 1 - this._epsilon), 0 === r ? (r = this._epsilon) : 1 === r && (r = 1 - this._epsilon)), (this._vertexData[o++] = i), (this._vertexData[o++] = r)); }), (t.prototype._stopSubEmitters = function () { this.activeSubSystems && (this.activeSubSystems.forEach(function (e) { e.stop(!0); }), (this.activeSubSystems = new Array())); }), (t.prototype._removeFromRoot = function () { if (this._rootParticleSystem) { var e = this._rootParticleSystem.activeSubSystems.indexOf(this); -1 !== e && this._rootParticleSystem.activeSubSystems.splice(e, 1), (this._rootParticleSystem = null); } }), (t.prototype._update = function (e) { var t, n = this; if (((this._alive = this._particles.length > 0), this.emitter.position)) { var i = this.emitter; this._emitterWorldMatrix = i.getWorldMatrix(); } else { var r = this.emitter; this._emitterWorldMatrix = a.a.Translation(r.x, r.y, r.z); } this.updateFunction(this._particles); for ( var o, c = function () { if (l._particles.length === l._capacity) return "break"; if (((t = l._createParticle()), l._particles.push(t), l.targetStopDuration && l._lifeTimeGradients && l._lifeTimeGradients.length > 0)) { var e = z.a.Clamp(l._actualFrame / l.targetStopDuration); Yl.GetCurrentGradient(e, l._lifeTimeGradients, function (n, i) { var r = n, o = i, a = r.getFactor(), s = o.getFactor(), c = (e - r.gradient) / (o.gradient - r.gradient); t.lifeTime = z.a.Lerp(a, s, c); }); } else t.lifeTime = z.a.RandomRange(l.minLifeTime, l.maxLifeTime); var i = z.a.RandomRange(l.minEmitPower, l.maxEmitPower); if ( (l.startPositionFunction ? l.startPositionFunction(l._emitterWorldMatrix, t.position, t, l.isLocal) : l.particleEmitterType.startPositionFunction(l._emitterWorldMatrix, t.position, t, l.isLocal), l.isLocal && (t._localPosition ? t._localPosition.copyFrom(t.position) : (t._localPosition = t.position.clone()), a.e.TransformCoordinatesToRef(t._localPosition, l._emitterWorldMatrix, t.position)), l.startDirectionFunction ? l.startDirectionFunction(l._emitterWorldMatrix, t.direction, t, l.isLocal) : l.particleEmitterType.startDirectionFunction(l._emitterWorldMatrix, t.direction, t, l.isLocal), 0 === i ? (t._initialDirection ? t._initialDirection.copyFrom(t.direction) : (t._initialDirection = t.direction.clone())) : (t._initialDirection = null), t.direction.scaleInPlace(i), l._sizeGradients && 0 !== l._sizeGradients.length ? ((t._currentSizeGradient = l._sizeGradients[0]), (t._currentSize1 = t._currentSizeGradient.getFactor()), (t.size = t._currentSize1), l._sizeGradients.length > 1 ? (t._currentSize2 = l._sizeGradients[1].getFactor()) : (t._currentSize2 = t._currentSize1)) : (t.size = z.a.RandomRange(l.minSize, l.maxSize)), t.scale.copyFromFloats(z.a.RandomRange(l.minScaleX, l.maxScaleX), z.a.RandomRange(l.minScaleY, l.maxScaleY)), l._startSizeGradients && l._startSizeGradients[0] && l.targetStopDuration) ) { var r = l._actualFrame / l.targetStopDuration; Yl.GetCurrentGradient(r, l._startSizeGradients, function (e, i, r) { e !== n._currentStartSizeGradient && ((n._currentStartSize1 = n._currentStartSize2), (n._currentStartSize2 = i.getFactor()), (n._currentStartSizeGradient = e)); var o = z.a.Lerp(n._currentStartSize1, n._currentStartSize2, r); t.scale.scaleInPlace(o); }); } l._angularSpeedGradients && 0 !== l._angularSpeedGradients.length ? ((t._currentAngularSpeedGradient = l._angularSpeedGradients[0]), (t.angularSpeed = t._currentAngularSpeedGradient.getFactor()), (t._currentAngularSpeed1 = t.angularSpeed), l._angularSpeedGradients.length > 1 ? (t._currentAngularSpeed2 = l._angularSpeedGradients[1].getFactor()) : (t._currentAngularSpeed2 = t._currentAngularSpeed1)) : (t.angularSpeed = z.a.RandomRange(l.minAngularSpeed, l.maxAngularSpeed)), (t.angle = z.a.RandomRange(l.minInitialRotation, l.maxInitialRotation)), l._velocityGradients && l._velocityGradients.length > 0 && ((t._currentVelocityGradient = l._velocityGradients[0]), (t._currentVelocity1 = t._currentVelocityGradient.getFactor()), l._velocityGradients.length > 1 ? (t._currentVelocity2 = l._velocityGradients[1].getFactor()) : (t._currentVelocity2 = t._currentVelocity1)), l._limitVelocityGradients && l._limitVelocityGradients.length > 0 && ((t._currentLimitVelocityGradient = l._limitVelocityGradients[0]), (t._currentLimitVelocity1 = t._currentLimitVelocityGradient.getFactor()), l._limitVelocityGradients.length > 1 ? (t._currentLimitVelocity2 = l._limitVelocityGradients[1].getFactor()) : (t._currentLimitVelocity2 = t._currentLimitVelocity1)), l._dragGradients && l._dragGradients.length > 0 && ((t._currentDragGradient = l._dragGradients[0]), (t._currentDrag1 = t._currentDragGradient.getFactor()), l._dragGradients.length > 1 ? (t._currentDrag2 = l._dragGradients[1].getFactor()) : (t._currentDrag2 = t._currentDrag1)), l._colorGradients && 0 !== l._colorGradients.length ? ((t._currentColorGradient = l._colorGradients[0]), t._currentColorGradient.getColorToRef(t.color), t._currentColor1.copyFrom(t.color), l._colorGradients.length > 1 ? l._colorGradients[1].getColorToRef(t._currentColor2) : t._currentColor2.copyFrom(t.color)) : ((o = z.a.RandomRange(0, 1)), s.b.LerpToRef(l.color1, l.color2, o, t.color), l.colorDead.subtractToRef(t.color, l._colorDiff), l._colorDiff.scaleToRef(1 / t.lifeTime, t.colorStep)), l._isAnimationSheetEnabled && ((t._initialStartSpriteCellID = l.startSpriteCellID), (t._initialEndSpriteCellID = l.endSpriteCellID)), t.direction.addInPlace(l._inheritedVelocityOffset), l._useRampGradients && (t.remapData = new a.f(0, 1, 0, 1)), l.noiseTexture && (t._randomNoiseCoordinates1 ? (t._randomNoiseCoordinates1.copyFromFloats(Math.random(), Math.random(), Math.random()), t._randomNoiseCoordinates2.copyFromFloats(Math.random(), Math.random(), Math.random())) : ((t._randomNoiseCoordinates1 = new a.e(Math.random(), Math.random(), Math.random())), (t._randomNoiseCoordinates2 = new a.e(Math.random(), Math.random(), Math.random())))), t._inheritParticleInfoToSubEmitters(); }, l = this, u = 0; u < e; u++ ) { if ("break" === c()) break; } }), (t._GetAttributeNamesOrOptions = function (e, t, n) { void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1); var i = [wn.b.PositionKind, wn.b.ColorKind, "angle", "offset", "size"]; return e && i.push("cellIndex"), t || i.push("direction"), n && i.push("remapData"), i; }), (t._GetEffectCreationOptions = function (e) { void 0 === e && (e = !1); var t = ["invView", "view", "projection", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "textureMask", "translationPivot", "eyePosition"]; return e && t.push("particlesInfos"), t; }), (t.prototype._getEffect = function (e) { if (this._customEffect) return this._customEffect; var n = []; if ( (this._scene.clipPlane && n.push("#define CLIPPLANE"), this._scene.clipPlane2 && n.push("#define CLIPPLANE2"), this._scene.clipPlane3 && n.push("#define CLIPPLANE3"), this._scene.clipPlane4 && n.push("#define CLIPPLANE4"), this._scene.clipPlane5 && n.push("#define CLIPPLANE5"), this._scene.clipPlane6 && n.push("#define CLIPPLANE6"), this._isAnimationSheetEnabled && n.push("#define ANIMATESHEET"), e === t.BLENDMODE_MULTIPLY && n.push("#define BLENDMULTIPLYMODE"), this._useRampGradients && n.push("#define RAMPGRADIENT"), this._isBillboardBased) ) switch ((n.push("#define BILLBOARD"), this.billboardMode)) { case t.BILLBOARDMODE_Y: n.push("#define BILLBOARDY"); break; case t.BILLBOARDMODE_STRETCHED: n.push("#define BILLBOARDSTRETCHED"); break; case t.BILLBOARDMODE_ALL: } this._imageProcessingConfiguration && (this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines), n.push(this._imageProcessingConfigurationDefines.toString())); var i = n.join("\n"); if (this._cachedDefines !== i) { this._cachedDefines = i; var r = t._GetAttributeNamesOrOptions(this._isAnimationSheetEnabled, this._isBillboardBased && this.billboardMode !== t.BILLBOARDMODE_STRETCHED, this._useRampGradients), o = t._GetEffectCreationOptions(this._isAnimationSheetEnabled), a = ["diffuseSampler", "rampSampler"]; En.a && (En.a.PrepareUniforms(o, this._imageProcessingConfigurationDefines), En.a.PrepareSamplers(a, this._imageProcessingConfigurationDefines)), (this._effect = this._scene.getEngine().createEffect("particles", r, o, a, i)); } return this._effect; }), (t.prototype.animate = function (e) { var t = this; if ((void 0 === e && (e = !1), this._started)) { if (!e) { if (!this.isReady()) return; if (this._currentRenderId === this._scene.getFrameId()) return; this._currentRenderId = this._scene.getFrameId(); } var n; if (((this._scaledUpdateSpeed = this.updateSpeed * (e ? this.preWarmStepOffset : this._scene.getAnimationRatio())), this.manualEmitCount > -1)) (n = this.manualEmitCount), (this._newPartsExcess = 0), (this.manualEmitCount = 0); else { var i = this.emitRate; if (this._emitRateGradients && this._emitRateGradients.length > 0 && this.targetStopDuration) { var r = this._actualFrame / this.targetStopDuration; Yl.GetCurrentGradient(r, this._emitRateGradients, function (e, n, r) { e !== t._currentEmitRateGradient && ((t._currentEmitRate1 = t._currentEmitRate2), (t._currentEmitRate2 = n.getFactor()), (t._currentEmitRateGradient = e)), (i = z.a.Lerp(t._currentEmitRate1, t._currentEmitRate2, r)); }); } (n = (i * this._scaledUpdateSpeed) >> 0), (this._newPartsExcess += i * this._scaledUpdateSpeed - n); } if ( (this._newPartsExcess > 1 && ((n += this._newPartsExcess >> 0), (this._newPartsExcess -= this._newPartsExcess >> 0)), (this._alive = !1), this._stopped ? (n = 0) : ((this._actualFrame += this._scaledUpdateSpeed), this.targetStopDuration && this._actualFrame >= this.targetStopDuration && this.stop()), this._update(n), this._stopped && (this._alive || ((this._started = !1), this.onAnimationEnd && this.onAnimationEnd(), this.disposeOnStop && this._scene._toBeDisposed.push(this))), !e) ) { for (var o = 0, a = 0; a < this._particles.length; a++) { var s = this._particles[a]; this._appendParticleVertices(o, s), (o += this._useInstancing ? 1 : 4); } this._vertexBuffer && this._vertexBuffer.update(this._vertexData); } 0 === this.manualEmitCount && this.disposeOnStop && this.stop(); } }), (t.prototype._appendParticleVertices = function (e, t) { this._appendParticleVertex(e++, t, 0, 0), this._useInstancing || (this._appendParticleVertex(e++, t, 1, 0), this._appendParticleVertex(e++, t, 1, 1), this._appendParticleVertex(e++, t, 0, 1)); }), (t.prototype.rebuild = function () { for (var e in (this._createIndexBuffer(), this._vertexBuffer && this._vertexBuffer._rebuild(), this._vertexBuffers)) this._vertexBuffers[e]._rebuild(); }), (t.prototype.isReady = function () { if (!(this.emitter && this._imageProcessingConfiguration.isReady() && this.particleTexture && this.particleTexture.isReady())) return !1; if (this.blendMode !== t.BLENDMODE_MULTIPLYADD) { if (!this._getEffect(this.blendMode).isReady()) return !1; } else { if (!this._getEffect(t.BLENDMODE_MULTIPLY).isReady()) return !1; if (!this._getEffect(t.BLENDMODE_ADD).isReady()) return !1; } return !0; }), (t.prototype._render = function (e) { var n = this._getEffect(e), i = this._scene.getEngine(); i.enableEffect(n); var r = this._scene.getViewMatrix(); if ((n.setTexture("diffuseSampler", this.particleTexture), n.setMatrix("view", r), n.setMatrix("projection", this._scene.getProjectionMatrix()), this._isAnimationSheetEnabled && this.particleTexture)) { var o = this.particleTexture.getBaseSize(); n.setFloat3("particlesInfos", this.spriteCellWidth / o.width, this.spriteCellHeight / o.height, o.width / this.spriteCellWidth); } if ((n.setVector2("translationPivot", this.translationPivot), n.setFloat4("textureMask", this.textureMask.r, this.textureMask.g, this.textureMask.b, this.textureMask.a), this._isBillboardBased)) { var a = this._scene.activeCamera; n.setVector3("eyePosition", a.globalPosition); } if ( (this._rampGradientsTexture && n.setTexture("rampSampler", this._rampGradientsTexture), this._scene.clipPlane || this._scene.clipPlane2 || this._scene.clipPlane3 || this._scene.clipPlane4 || this._scene.clipPlane5 || this._scene.clipPlane6) ) { var s = r.clone(); s.invert(), n.setMatrix("invView", s), Ir.a.BindClipPlane(n, this._scene); } switch ((i.bindBuffers(this._vertexBuffers, this._indexBuffer, n), this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(n), e)) { case t.BLENDMODE_ADD: i.setAlphaMode(1); break; case t.BLENDMODE_ONEONE: i.setAlphaMode(6); break; case t.BLENDMODE_STANDARD: i.setAlphaMode(2); break; case t.BLENDMODE_MULTIPLY: i.setAlphaMode(4); } return this._useInstancing ? i.drawArraysType(Fo.a.TriangleFanDrawMode, 0, 4, this._particles.length) : i.drawElementsType(Fo.a.TriangleFillMode, 0, 6 * this._particles.length), this._particles.length; }), (t.prototype.render = function () { if (!this.isReady() || !this._particles.length) return 0; var e = this._scene.getEngine(); e.setState(!1), this.forceDepthWrite && e.setDepthWrite(!0); var n = 0; return this.blendMode === t.BLENDMODE_MULTIPLYADD && (n = this._render(t.BLENDMODE_MULTIPLY) + this._render(t.BLENDMODE_ADD)), (n = this._render(this.blendMode)), e.unbindInstanceAttributes(), e.setAlphaMode(0), n; }), (t.prototype.dispose = function (e) { if ( (void 0 === e && (e = !0), this._vertexBuffer && (this._vertexBuffer.dispose(), (this._vertexBuffer = null)), this._spriteBuffer && (this._spriteBuffer.dispose(), (this._spriteBuffer = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)), e && this.particleTexture && (this.particleTexture.dispose(), (this.particleTexture = null)), e && this.noiseTexture && (this.noiseTexture.dispose(), (this.noiseTexture = null)), this._rampGradientsTexture && (this._rampGradientsTexture.dispose(), (this._rampGradientsTexture = null)), this._removeFromRoot(), this._subEmitters && this._subEmitters.length) ) { for (var t = 0; t < this._subEmitters.length; t++) for (var n = 0, i = this._subEmitters[t]; n < i.length; n++) { i[n].dispose(); } (this._subEmitters = []), (this.subEmitters = []); } this._disposeEmitterOnDispose && this.emitter && this.emitter.dispose && this.emitter.dispose(!0), (t = this._scene.particleSystems.indexOf(this)) > -1 && this._scene.particleSystems.splice(t, 1), this._scene._activeParticleSystems.dispose(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.reset(); }), (t.prototype.clone = function (e, n) { var i = null, r = null; if (null != this.customShader) { var o = (r = this.customShader).shaderOptions.defines.length > 0 ? r.shaderOptions.defines.join("\n") : ""; i = this._scene.getEngine().createEffectForParticles(r.shaderPath.fragmentElement, r.shaderOptions.uniforms, r.shaderOptions.samplers, o); } else this._customEffect && (i = this._customEffect); var a = new t(e, this._capacity, this._scene, i); ((a.customShader = r), M.a.DeepCopy(this, a, ["particles", "customShader", "noiseTexture", "particleTexture", "onDisposeObservable"]), void 0 === n && (n = this.emitter), (a.noiseTexture = this.noiseTexture), (a.emitter = n), this.particleTexture) && (this.particleTexture instanceof An.a ? ((a.particleTexture = this.particleTexture.clone()), a.particleTexture.getContext().drawImage(this.particleTexture.getContext().canvas, 0, 0), a.particleTexture.update()) : (a.particleTexture = new ln.a(this.particleTexture.url, this._scene))); return ( this._colorGradients && this._colorGradients.forEach(function (e) { a.addColorGradient(e.gradient, e.color1, e.color2); }), this._dragGradients && this._dragGradients.forEach(function (e) { a.addDragGradient(e.gradient, e.factor1, e.factor2); }), this._angularSpeedGradients && this._angularSpeedGradients.forEach(function (e) { a.addAngularSpeedGradient(e.gradient, e.factor1, e.factor2); }), this._emitRateGradients && this._emitRateGradients.forEach(function (e) { a.addEmitRateGradient(e.gradient, e.factor1, e.factor2); }), this._lifeTimeGradients && this._lifeTimeGradients.forEach(function (e) { a.addLifeTimeGradient(e.gradient, e.factor1, e.factor2); }), this._limitVelocityGradients && this._limitVelocityGradients.forEach(function (e) { a.addLimitVelocityGradient(e.gradient, e.factor1, e.factor2); }), this._sizeGradients && this._sizeGradients.forEach(function (e) { a.addSizeGradient(e.gradient, e.factor1, e.factor2); }), this._startSizeGradients && this._startSizeGradients.forEach(function (e) { a.addStartSizeGradient(e.gradient, e.factor1, e.factor2); }), this._velocityGradients && this._velocityGradients.forEach(function (e) { a.addVelocityGradient(e.gradient, e.factor1, e.factor2); }), this._rampGradients && this._rampGradients.forEach(function (e) { a.addRampGradient(e.gradient, e.color); }), this._colorRemapGradients && this._colorRemapGradients.forEach(function (e) { a.addColorRemapGradient(e.gradient, e.factor1, e.factor2); }), this._alphaRemapGradients && this._alphaRemapGradients.forEach(function (e) { a.addAlphaRemapGradient(e.gradient, e.factor1, e.factor2); }), this.preventAutoStart || a.start(), a ); }), (t.prototype.serialize = function () { var e = {}; if ((t._Serialize(e, this), (e.textureMask = this.textureMask.asArray()), (e.customShader = this.customShader), (e.preventAutoStart = this.preventAutoStart), this.subEmitters)) { (e.subEmitters = []), this._subEmitters || this._prepareSubEmitterInternalArray(); for (var n = 0, i = this._subEmitters; n < i.length; n++) { for (var r = [], o = 0, a = i[n]; o < a.length; o++) { var s = a[o]; r.push(s.serialize()); } e.subEmitters.push(r); } } return e; }), (t._Serialize = function (e, t) { if (((e.name = t.name), (e.id = t.id), (e.capacity = t.getCapacity()), t.emitter.position)) { var n = t.emitter; e.emitterId = n.id; } else { var i = t.emitter; e.emitter = i.asArray(); } t.particleEmitterType && (e.particleEmitterType = t.particleEmitterType.serialize()), t.particleTexture && ((e.textureName = t.particleTexture.name), (e.invertY = t.particleTexture._invertY)), (e.isLocal = t.isLocal), He.a.AppendSerializedAnimations(t, e), (e.beginAnimationOnStart = t.beginAnimationOnStart), (e.beginAnimationFrom = t.beginAnimationFrom), (e.beginAnimationTo = t.beginAnimationTo), (e.beginAnimationLoop = t.beginAnimationLoop), (e.startDelay = t.startDelay), (e.renderingGroupId = t.renderingGroupId), (e.isBillboardBased = t.isBillboardBased), (e.billboardMode = t.billboardMode), (e.minAngularSpeed = t.minAngularSpeed), (e.maxAngularSpeed = t.maxAngularSpeed), (e.minSize = t.minSize), (e.maxSize = t.maxSize), (e.minScaleX = t.minScaleX), (e.maxScaleX = t.maxScaleX), (e.minScaleY = t.minScaleY), (e.maxScaleY = t.maxScaleY), (e.minEmitPower = t.minEmitPower), (e.maxEmitPower = t.maxEmitPower), (e.minLifeTime = t.minLifeTime), (e.maxLifeTime = t.maxLifeTime), (e.emitRate = t.emitRate), (e.gravity = t.gravity.asArray()), (e.noiseStrength = t.noiseStrength.asArray()), (e.color1 = t.color1.asArray()), (e.color2 = t.color2.asArray()), (e.colorDead = t.colorDead.asArray()), (e.updateSpeed = t.updateSpeed), (e.targetStopDuration = t.targetStopDuration), (e.blendMode = t.blendMode), (e.preWarmCycles = t.preWarmCycles), (e.preWarmStepOffset = t.preWarmStepOffset), (e.minInitialRotation = t.minInitialRotation), (e.maxInitialRotation = t.maxInitialRotation), (e.startSpriteCellID = t.startSpriteCellID), (e.endSpriteCellID = t.endSpriteCellID), (e.spriteCellChangeSpeed = t.spriteCellChangeSpeed), (e.spriteCellWidth = t.spriteCellWidth), (e.spriteCellHeight = t.spriteCellHeight), (e.spriteRandomStartCell = t.spriteRandomStartCell), (e.isAnimationSheetEnabled = t.isAnimationSheetEnabled); var r = t.getColorGradients(); if (r) { e.colorGradients = []; for (var o = 0, a = r; o < a.length; o++) { var s = a[o], c = { gradient: s.gradient, color1: s.color1.asArray() }; s.color2 && (c.color2 = s.color2.asArray()), e.colorGradients.push(c); } } var l = t.getRampGradients(); if (l) { e.rampGradients = []; for (var u = 0, h = l; u < h.length; u++) { var d = h[u]; c = { gradient: d.gradient, color: d.color.asArray() }; e.rampGradients.push(c); } e.useRampGradients = t.useRampGradients; } var p = t.getColorRemapGradients(); if (p) { e.colorRemapGradients = []; for (var f = 0, m = p; f < m.length; f++) { var g = m[f]; c = { gradient: g.gradient, factor1: g.factor1 }; void 0 !== g.factor2 && (c.factor2 = g.factor2), e.colorRemapGradients.push(c); } } var b = t.getAlphaRemapGradients(); if (b) { e.alphaRemapGradients = []; for (var _ = 0, v = b; _ < v.length; _++) { var y = v[_]; c = { gradient: y.gradient, factor1: y.factor1 }; void 0 !== y.factor2 && (c.factor2 = y.factor2), e.alphaRemapGradients.push(c); } } var C = t.getSizeGradients(); if (C) { e.sizeGradients = []; for (var P = 0, x = C; P < x.length; P++) { var T = x[P]; c = { gradient: T.gradient, factor1: T.factor1 }; void 0 !== T.factor2 && (c.factor2 = T.factor2), e.sizeGradients.push(c); } } var S = t.getAngularSpeedGradients(); if (S) { e.angularSpeedGradients = []; for (var O = 0, E = S; O < E.length; O++) { var M = E[O]; c = { gradient: M.gradient, factor1: M.factor1 }; void 0 !== M.factor2 && (c.factor2 = M.factor2), e.angularSpeedGradients.push(c); } } var A = t.getVelocityGradients(); if (A) { e.velocityGradients = []; for (var I = 0, D = A; I < D.length; I++) { var R = D[I]; c = { gradient: R.gradient, factor1: R.factor1 }; void 0 !== R.factor2 && (c.factor2 = R.factor2), e.velocityGradients.push(c); } } var w = t.getDragGradients(); if (w) { e.dragGradients = []; for (var L = 0, F = w; L < F.length; L++) { var N = F[L]; c = { gradient: N.gradient, factor1: N.factor1 }; void 0 !== N.factor2 && (c.factor2 = N.factor2), e.dragGradients.push(c); } } var k = t.getEmitRateGradients(); if (k) { e.emitRateGradients = []; for (var z = 0, j = k; z < j.length; z++) { var B = j[z]; c = { gradient: B.gradient, factor1: B.factor1 }; void 0 !== B.factor2 && (c.factor2 = B.factor2), e.emitRateGradients.push(c); } } var V = t.getStartSizeGradients(); if (V) { e.startSizeGradients = []; for (var G = 0, U = V; G < U.length; G++) { var H = U[G]; c = { gradient: H.gradient, factor1: H.factor1 }; void 0 !== H.factor2 && (c.factor2 = H.factor2), e.startSizeGradients.push(c); } } var W = t.getLifeTimeGradients(); if (W) { e.lifeTimeGradients = []; for (var X = 0, Y = W; X < Y.length; X++) { var K = Y[X]; c = { gradient: K.gradient, factor1: K.factor1 }; void 0 !== K.factor2 && (c.factor2 = K.factor2), e.lifeTimeGradients.push(c); } } var Z = t.getLimitVelocityGradients(); if (Z) { e.limitVelocityGradients = []; for (var q = 0, Q = Z; q < Q.length; q++) { var J = Q[q]; c = { gradient: J.gradient, factor1: J.factor1 }; void 0 !== J.factor2 && (c.factor2 = J.factor2), e.limitVelocityGradients.push(c); } e.limitVelocityDamping = t.limitVelocityDamping; } t.noiseTexture && (e.noiseTexture = t.noiseTexture.serialize()); }), (t._Parse = function (e, t, n, i) { if ( (e.textureName && ((t.particleTexture = new ln.a(i + e.textureName, n, !1, void 0 === e.invertY || e.invertY)), (t.particleTexture.name = e.textureName)), e.emitterId || 0 === e.emitterId || void 0 !== e.emitter ? (e.emitterId ? (t.emitter = n.getLastMeshByID(e.emitterId)) : (t.emitter = a.e.FromArray(e.emitter))) : (t.emitter = a.e.Zero()), (t.isLocal = !!e.isLocal), void 0 !== e.renderingGroupId && (t.renderingGroupId = e.renderingGroupId), void 0 !== e.isBillboardBased && (t.isBillboardBased = e.isBillboardBased), void 0 !== e.billboardMode && (t.billboardMode = e.billboardMode), e.animations) ) { for (var r = 0; r < e.animations.length; r++) { var o = e.animations[r], l = c.a.GetClass("BABYLON.Animation"); l && t.animations.push(l.Parse(o)); } (t.beginAnimationOnStart = e.beginAnimationOnStart), (t.beginAnimationFrom = e.beginAnimationFrom), (t.beginAnimationTo = e.beginAnimationTo), (t.beginAnimationLoop = e.beginAnimationLoop); } if ( (e.autoAnimate && n.beginAnimation(t, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), (t.startDelay = 0 | e.startDelay), (t.minAngularSpeed = e.minAngularSpeed), (t.maxAngularSpeed = e.maxAngularSpeed), (t.minSize = e.minSize), (t.maxSize = e.maxSize), e.minScaleX && ((t.minScaleX = e.minScaleX), (t.maxScaleX = e.maxScaleX), (t.minScaleY = e.minScaleY), (t.maxScaleY = e.maxScaleY)), void 0 !== e.preWarmCycles && ((t.preWarmCycles = e.preWarmCycles), (t.preWarmStepOffset = e.preWarmStepOffset)), void 0 !== e.minInitialRotation && ((t.minInitialRotation = e.minInitialRotation), (t.maxInitialRotation = e.maxInitialRotation)), (t.minLifeTime = e.minLifeTime), (t.maxLifeTime = e.maxLifeTime), (t.minEmitPower = e.minEmitPower), (t.maxEmitPower = e.maxEmitPower), (t.emitRate = e.emitRate), (t.gravity = a.e.FromArray(e.gravity)), e.noiseStrength && (t.noiseStrength = a.e.FromArray(e.noiseStrength)), (t.color1 = s.b.FromArray(e.color1)), (t.color2 = s.b.FromArray(e.color2)), (t.colorDead = s.b.FromArray(e.colorDead)), (t.updateSpeed = e.updateSpeed), (t.targetStopDuration = e.targetStopDuration), (t.blendMode = e.blendMode), e.colorGradients) ) for (var u = 0, h = e.colorGradients; u < h.length; u++) { var d = h[u]; t.addColorGradient(d.gradient, s.b.FromArray(d.color1), d.color2 ? s.b.FromArray(d.color2) : void 0); } if (e.rampGradients) { for (var p = 0, f = e.rampGradients; p < f.length; p++) { var m = f[p]; t.addRampGradient(m.gradient, s.a.FromArray(m.color)); } t.useRampGradients = e.useRampGradients; } if (e.colorRemapGradients) for (var g = 0, b = e.colorRemapGradients; g < b.length; g++) { var _ = b[g]; t.addColorRemapGradient(_.gradient, void 0 !== _.factor1 ? _.factor1 : _.factor, _.factor2); } if (e.alphaRemapGradients) for (var v = 0, y = e.alphaRemapGradients; v < y.length; v++) { var C = y[v]; t.addAlphaRemapGradient(C.gradient, void 0 !== C.factor1 ? C.factor1 : C.factor, C.factor2); } if (e.sizeGradients) for (var P = 0, x = e.sizeGradients; P < x.length; P++) { var T = x[P]; t.addSizeGradient(T.gradient, void 0 !== T.factor1 ? T.factor1 : T.factor, T.factor2); } if (e.angularSpeedGradients) for (var S = 0, O = e.angularSpeedGradients; S < O.length; S++) { var E = O[S]; t.addAngularSpeedGradient(E.gradient, void 0 !== E.factor1 ? E.factor1 : E.factor, E.factor2); } if (e.velocityGradients) for (var M = 0, A = e.velocityGradients; M < A.length; M++) { var I = A[M]; t.addVelocityGradient(I.gradient, void 0 !== I.factor1 ? I.factor1 : I.factor, I.factor2); } if (e.dragGradients) for (var D = 0, R = e.dragGradients; D < R.length; D++) { var w = R[D]; t.addDragGradient(w.gradient, void 0 !== w.factor1 ? w.factor1 : w.factor, w.factor2); } if (e.emitRateGradients) for (var L = 0, F = e.emitRateGradients; L < F.length; L++) { var N = F[L]; t.addEmitRateGradient(N.gradient, void 0 !== N.factor1 ? N.factor1 : N.factor, N.factor2); } if (e.startSizeGradients) for (var k = 0, z = e.startSizeGradients; k < z.length; k++) { var j = z[k]; t.addStartSizeGradient(j.gradient, void 0 !== j.factor1 ? j.factor1 : j.factor, j.factor2); } if (e.lifeTimeGradients) for (var B = 0, V = e.lifeTimeGradients; B < V.length; B++) { var G = V[B]; t.addLifeTimeGradient(G.gradient, void 0 !== G.factor1 ? G.factor1 : G.factor, G.factor2); } if (e.limitVelocityGradients) { for (var U = 0, H = e.limitVelocityGradients; U < H.length; U++) { var W = H[U]; t.addLimitVelocityGradient(W.gradient, void 0 !== W.factor1 ? W.factor1 : W.factor, W.factor2); } t.limitVelocityDamping = e.limitVelocityDamping; } var X; if ((e.noiseTexture && (t.noiseTexture = cs.a.Parse(e.noiseTexture, n, i)), e.particleEmitterType)) { switch (e.particleEmitterType.type) { case "SphereParticleEmitter": X = new jl(); break; case "SphereDirectedParticleEmitter": X = new Bl(); break; case "ConeEmitter": case "ConeParticleEmitter": X = new Ll(); break; case "CylinderParticleEmitter": X = new Fl(); break; case "HemisphericParticleEmitter": X = new kl(); break; case "BoxEmitter": case "BoxParticleEmitter": default: X = new wl(); } X.parse(e.particleEmitterType, n); } else (X = new wl()).parse(e, n); (t.particleEmitterType = X), (t.startSpriteCellID = e.startSpriteCellID), (t.endSpriteCellID = e.endSpriteCellID), (t.spriteCellWidth = e.spriteCellWidth), (t.spriteCellHeight = e.spriteCellHeight), (t.spriteCellChangeSpeed = e.spriteCellChangeSpeed), (t.spriteRandomStartCell = e.spriteRandomStartCell); }), (t.Parse = function (e, n, i, r) { void 0 === r && (r = !1); var o = e.name, a = null, c = null; if (e.customShader) { var l = (c = e.customShader).shaderOptions.defines.length > 0 ? c.shaderOptions.defines.join("\n") : ""; a = n.getEngine().createEffectForParticles(c.shaderPath.fragmentElement, c.shaderOptions.uniforms, c.shaderOptions.samplers, l); } var u = new t(o, e.capacity, n, a, e.isAnimationSheetEnabled); if (((u.customShader = c), e.id && (u.id = e.id), e.subEmitters)) { u.subEmitters = []; for (var h = 0, d = e.subEmitters; h < d.length; h++) { for (var p = [], f = 0, m = d[h]; f < m.length; f++) { var g = m[f]; p.push(Zl.Parse(g, n, i)); } u.subEmitters.push(p); } } return t._Parse(e, u, n, i), (u.textureMask = s.b.FromArray(e.textureMask)), e.preventAutoStart && (u.preventAutoStart = e.preventAutoStart), r || u.preventAutoStart || u.start(), u; }), (t.BILLBOARDMODE_Y = 2), (t.BILLBOARDMODE_ALL = 7), (t.BILLBOARDMODE_STRETCHED = 8), t ); })(Ul); Zl._ParseParticleSystem = Jl.Parse; Xt.a.ShadersStore.gpuUpdateParticlesPixelShader = "#version 300 es\nvoid main() {\ndiscard;\n}\n"; var $l = "#version 300 es\n#define PI 3.14159\nuniform float currentCount;\nuniform float timeDelta;\nuniform float stopFactor;\nuniform mat4 emitterWM;\nuniform vec2 lifeTime;\nuniform vec2 emitPower;\nuniform vec2 sizeRange;\nuniform vec4 scaleRange;\n#ifndef COLORGRADIENTS\nuniform vec4 color1;\nuniform vec4 color2;\n#endif\nuniform vec3 gravity;\nuniform sampler2D randomSampler;\nuniform sampler2D randomSampler2;\nuniform vec4 angleRange;\n#ifdef BOXEMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\nuniform vec3 minEmitBox;\nuniform vec3 maxEmitBox;\n#endif\n#ifdef POINTEMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\n#endif\n#ifdef HEMISPHERICEMITTER\nuniform float radius;\nuniform float radiusRange;\nuniform float directionRandomizer;\n#endif\n#ifdef SPHEREEMITTER\nuniform float radius;\nuniform float radiusRange;\n#ifdef DIRECTEDSPHEREEMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nuniform float radius;\nuniform float height;\nuniform float radiusRange;\n#ifdef DIRECTEDCYLINDEREMITTER\nuniform vec3 direction1;\nuniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CONEEMITTER\nuniform vec2 radius;\nuniform float coneAngle;\nuniform vec2 height;\nuniform float directionRandomizer;\n#endif\n\nin vec3 position;\n#ifdef CUSTOMEMITTER\nin vec3 initialPosition;\n#endif\nin float age;\nin float life;\nin vec4 seed;\nin vec3 size;\n#ifndef COLORGRADIENTS\nin vec4 color;\n#endif\nin vec3 direction;\n#ifndef BILLBOARD\nin vec3 initialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nin float angle;\n#else\nin vec2 angle;\n#endif\n#ifdef ANIMATESHEET\nin float cellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nin float cellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nin vec3 noiseCoordinates1;\nin vec3 noiseCoordinates2;\n#endif\n\nout vec3 outPosition;\n#ifdef CUSTOMEMITTER\nout vec3 outInitialPosition;\n#endif\nout float outAge;\nout float outLife;\nout vec4 outSeed;\nout vec3 outSize;\n#ifndef COLORGRADIENTS\nout vec4 outColor;\n#endif\nout vec3 outDirection;\n#ifndef BILLBOARD\nout vec3 outInitialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nout float outAngle;\n#else\nout vec2 outAngle;\n#endif\n#ifdef ANIMATESHEET\nout float outCellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nout float outCellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nout vec3 outNoiseCoordinates1;\nout vec3 outNoiseCoordinates2;\n#endif\n#ifdef SIZEGRADIENTS\nuniform sampler2D sizeGradientSampler;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nuniform sampler2D angularSpeedGradientSampler;\n#endif\n#ifdef VELOCITYGRADIENTS\nuniform sampler2D velocityGradientSampler;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\nuniform sampler2D limitVelocityGradientSampler;\nuniform float limitVelocityDamping;\n#endif\n#ifdef DRAGGRADIENTS\nuniform sampler2D dragGradientSampler;\n#endif\n#ifdef NOISE\nuniform vec3 noiseStrength;\nuniform sampler2D noiseSampler;\n#endif\n#ifdef ANIMATESHEET\nuniform vec3 cellInfos;\n#endif\nvec3 getRandomVec3(float offset) {\nreturn texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;\n}\nvec4 getRandomVec4(float offset) {\nreturn texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));\n}\nvoid main() {\nfloat newAge=age+timeDelta;\n\nif (newAge>=life && stopFactor != 0.) {\nvec3 newPosition;\nvec3 newDirection;\n\nvec4 randoms=getRandomVec4(seed.x);\n\noutLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;\noutAge=newAge-life;\n\noutSeed=seed;\n\n#ifdef SIZEGRADIENTS\noutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\n#else\noutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\n#endif\noutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;\noutSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a;\n#ifndef COLORGRADIENTS\n\noutColor=color1+(color2-color1)*randoms.b;\n#endif\n\n#ifndef ANGULARSPEEDGRADIENTS\noutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;\noutAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#else\noutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#endif\n\n#ifdef POINTEMITTER\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\nnewPosition=vec3(0,0,0);\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#elif defined(BOXEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\nnewPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#elif defined(HEMISPHERICEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\n\nfloat phi=2.0*PI*randoms2.x;\nfloat theta=acos(2.0*randoms2.y-1.0);\nfloat randX=cos(phi)*sin(theta);\nfloat randY=cos(theta);\nfloat randZ=sin(phi)*sin(theta);\nnewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);\nnewDirection=newPosition+directionRandomizer*randoms3;\n#elif defined(SPHEREEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\n\nfloat phi=2.0*PI*randoms2.x;\nfloat theta=acos(2.0*randoms2.y-1.0);\nfloat randX=cos(phi)*sin(theta);\nfloat randY=cos(theta);\nfloat randZ=sin(phi)*sin(theta);\nnewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\n\nnewDirection=newPosition+directionRandomizer*randoms3;\n#endif\n#elif defined(CYLINDEREMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nvec3 randoms3=getRandomVec3(seed.z);\n\nfloat yPos=(randoms2.x-0.5)*height;\nfloat angle=randoms2.y*PI*2.;\nfloat inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));\nfloat positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));\nfloat xPos=positionRadius*cos(angle);\nfloat zPos=positionRadius*sin(angle);\nnewPosition=vec3(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\n\nangle=angle+((randoms3.x-0.5)*PI);\nnewDirection=vec3(cos(angle),randoms3.y-0.5,sin(angle));\nnewDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);\nfloat s=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nfloat h=0.0001;\n#else\nfloat h=randoms2.y*height.y;\n\nh=1.-h*h;\n#endif\nfloat lRadius=radius.x-radius.x*randoms2.z*radius.y;\nlRadius=lRadius*h;\nfloat randX=lRadius*sin(s);\nfloat randZ=lRadius*cos(s);\nfloat randY=h*height.x;\nnewPosition=vec3(randX,randY,randZ);\n\nif (abs(cos(coneAngle)) == 1.0) {\nnewDirection=vec3(0.,1.0,0.);\n} else {\nvec3 randoms3=getRandomVec3(seed.z);\nnewDirection=normalize(newPosition+directionRandomizer*randoms3);\n}\n#elif defined(CUSTOMEMITTER)\nnewPosition=initialPosition;\noutInitialPosition=initialPosition;\n#else\n\nnewPosition=vec3(0.,0.,0.);\n\nnewDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\n#endif\nfloat power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\noutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#ifndef BILLBOARD\noutInitialDirection=direction;\n#endif\n#else\nvec3 initial=(emitterWM*vec4(newDirection,0.)).xyz;\noutDirection=initial*power;\n#ifndef BILLBOARD\noutInitialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET\noutCellIndex=cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=randoms.a*outLife;\n#endif\n#endif\n#ifdef NOISE\noutNoiseCoordinates1=noiseCoordinates1;\noutNoiseCoordinates2=noiseCoordinates2;\n#endif\n} else {\nfloat directionScale=timeDelta;\noutAge=newAge;\nfloat ageGradient=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#if defined(CUSTOMEMITTER)\noutPosition=position+(direction-position)*ageGradient;\noutInitialPosition=initialPosition;\n#else\noutPosition=position+direction*directionScale;\n#endif\noutLife=life;\noutSeed=seed;\n#ifndef COLORGRADIENTS\noutColor=color;\n#endif\n#ifdef SIZEGRADIENTS\noutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;\noutSize.yz=size.yz;\n#else\noutSize=size;\n#endif\n#ifndef BILLBOARD\noutInitialDirection=initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#else\nvec3 updatedDirection=direction+gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nfloat limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;\nfloat currentVelocity=length(updatedDirection);\nif (currentVelocity>limitVelocity) {\nupdatedDirection=updatedDirection*limitVelocityDamping;\n}\n#endif\noutDirection=updatedDirection;\n#ifdef NOISE\nvec3 localPosition=outPosition-emitterWM[3].xyz;\nfloat fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;\nfloat fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;\nfloat fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;\nvec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;\noutDirection=outDirection+force*timeDelta;\noutNoiseCoordinates1=noiseCoordinates1;\noutNoiseCoordinates2=noiseCoordinates2;\n#endif\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nfloat angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;\noutAngle=angle+angularSpeed*timeDelta;\n#else\noutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET\nfloat offsetAge=outAge;\nfloat dist=cellInfos.y-cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=cellStartOffset;\noffsetAge+=cellStartOffset;\n#else\nfloat cellStartOffset=0.;\n#endif\nfloat ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);\noutCellIndex=float(int(cellInfos.x+ratio*dist));\n#endif\n}\n}"; Xt.a.ShadersStore.gpuUpdateParticlesVertexShader = $l; var eu = "#ifdef CLIPPLANE\nin float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nin float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nin float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nin float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nin float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nin float fClipDistance6;\n#endif"; Xt.a.IncludesShadersStore.clipPlaneFragmentDeclaration2 = eu; var tu = "#version 300 es\nuniform sampler2D textureSampler;\nin vec2 vUV;\nin vec4 vColor;\nout vec4 outFragColor;\n#include\n#include\n#include\n#include\nvoid main() {\n#include\nvec4 textureColor=texture(textureSampler,vUV);\noutFragColor=textureColor*vColor;\n#ifdef BLENDMULTIPLYMODE\nfloat alpha=vColor.a*textureColor.a;\noutFragColor.rgb=outFragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\n#endif\n\n\n#ifdef IMAGEPROCESSINGPOSTPROCESS\noutFragColor.rgb=toLinearSpace(outFragColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\noutFragColor.rgb=toLinearSpace(outFragColor.rgb);\noutFragColor=applyImageProcessing(outFragColor);\n#endif\n#endif\n}\n"; Xt.a.ShadersStore.gpuRenderParticlesPixelShader = tu; var nu = "#ifdef CLIPPLANE\nuniform vec4 vClipPlane;\nout float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;\nout float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;\nout float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;\nout float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;\nout float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;\nout float fClipDistance6;\n#endif"; Xt.a.IncludesShadersStore.clipPlaneVertexDeclaration2 = nu; var iu = "#version 300 es\nuniform mat4 view;\nuniform mat4 projection;\nuniform vec2 translationPivot;\nuniform vec3 worldOffset;\n\nin vec3 position;\nin float age;\nin float life;\nin vec3 size;\n#ifndef BILLBOARD\nin vec3 initialDirection;\n#endif\n#ifdef BILLBOARDSTRETCHED\nin vec3 direction;\n#endif\nin float angle;\n#ifdef ANIMATESHEET\nin float cellIndex;\n#endif\nin vec2 offset;\nin vec2 uv;\nout vec2 vUV;\nout vec4 vColor;\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nuniform mat4 invView;\n#endif\n#include\n#ifdef COLORGRADIENTS\nuniform sampler2D colorGradientSampler;\n#else\nuniform vec4 colorDead;\nin vec4 color;\n#endif\n#ifdef ANIMATESHEET\nuniform vec3 sheetInfos;\n#endif\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\nvec3 zaxis=normalize(cross(yaxis,xaxis));\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn (position+worldOffset)+alignedCorner;\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\nvec3 normalizedToCamera=normalize(toCamera);\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\nmat3 rotMatrix=mat3(row0,row1,row2);\nvec3 alignedCorner=rotMatrix*rotatedCorner;\nreturn (position+worldOffset)+alignedCorner;\n}\n#endif\nvoid main() {\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/sheetInfos.z);\nfloat columnOffset=cellIndex-rowOffset*sheetInfos.z;\nvec2 uvScale=sheetInfos.xy;\nvec2 uvOffset=vec2(uv.x ,1.0-uv.y);\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=uv;\n#endif\nfloat ratio=age/life;\n#ifdef COLORGRADIENTS\nvColor=texture(colorGradientSampler,vec2(ratio,0));\n#else\nvColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\n#endif\nvec2 cornerPos=(offset-translationPivot)*size.yz*size.x+translationPivot;\n#ifdef BILLBOARD\nvec4 rotatedCorner;\nrotatedCorner.w=0.;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.y=0.;\nvec3 yaxis=(position+worldOffset)-eyePosition;\nyaxis.y=0.;\nvec3 worldPos=rotate(normalize(yaxis),rotatedCorner.xyz);\nvec4 viewPosition=(view*vec4(worldPos,1.0));\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\nvec3 toCamera=(position+worldOffset)-eyePosition;\nvec3 worldPos=rotateAlign(toCamera,rotatedCorner.xyz);\nvec4 viewPosition=(view*vec4(worldPos,1.0));\n#else\n\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nvec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\n#endif\n#else\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=0.;\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nvec3 yaxis=normalize(initialDirection);\nvec3 worldPos=rotate(yaxis,rotatedCorner);\n\nvec4 viewPosition=view*vec4(worldPos,1.0);\n#endif\ngl_Position=projection*viewPosition;\n\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nvec4 worldPos=invView*viewPosition;\n#endif\n#include\n}"; Xt.a.ShadersStore.gpuRenderParticlesVertexShader = iu; var ru = (function (e) { function t(t, n, i, r) { void 0 === r && (r = !1); var a = e.call(this, t) || this; (a.layerMask = 268435455), (a._accumulatedCount = 0), (a._targetIndex = 0), (a._currentRenderId = -1), (a._started = !1), (a._stopped = !1), (a._timeDelta = 0), (a._actualFrame = 0), (a._rawTextureWidth = 256), (a.onDisposeObservable = new o.c()), (a.forceDepthWrite = !1), (a._preWarmDone = !1), (a._scene = i || E.a.LastCreatedScene), a._attachImageProcessingConfiguration(null), (a._engine = a._scene.getEngine()), n.randomTextureSize || delete n.randomTextureSize; var s = Object(h.a)({ capacity: 5e4, randomTextureSize: a._engine.getCaps().maxTextureSize }, n), c = n; isFinite(c) && (s.capacity = c), (a._capacity = s.capacity), (a._activeCount = s.capacity), (a._currentActiveCount = 0), (a._isAnimationSheetEnabled = r), a._scene.particleSystems.push(a), (a._updateEffectOptions = { attributes: ["position", "initialPosition", "age", "life", "seed", "size", "color", "direction", "initialDirection", "angle", "cellIndex", "cellStartOffset", "noiseCoordinates1", "noiseCoordinates2"], uniformsNames: [ "currentCount", "timeDelta", "emitterWM", "lifeTime", "color1", "color2", "sizeRange", "scaleRange", "gravity", "emitPower", "direction1", "direction2", "minEmitBox", "maxEmitBox", "radius", "directionRandomizer", "height", "coneAngle", "stopFactor", "angleRange", "radiusRange", "cellInfos", "noiseStrength", "limitVelocityDamping", ], uniformBuffersNames: [], samplers: ["randomSampler", "randomSampler2", "sizeGradientSampler", "angularSpeedGradientSampler", "velocityGradientSampler", "limitVelocityGradientSampler", "noiseSampler", "dragGradientSampler"], defines: "", fallbacks: null, onCompiled: null, onError: null, indexParameters: null, maxSimultaneousLights: 0, transformFeedbackVaryings: [], }), (a.particleEmitterType = new wl()); for (var l = Math.min(a._engine.getCaps().maxTextureSize, s.randomTextureSize), u = [], d = 0; d < l; ++d) u.push(Math.random()), u.push(Math.random()), u.push(Math.random()), u.push(Math.random()); (a._randomTexture = new Cs.a(new Float32Array(u), l, 1, 5, a._scene, !1, !1, 1, 1)), (a._randomTexture.wrapU = ln.a.WRAP_ADDRESSMODE), (a._randomTexture.wrapV = ln.a.WRAP_ADDRESSMODE), (u = []); for (d = 0; d < l; ++d) u.push(Math.random()), u.push(Math.random()), u.push(Math.random()), u.push(Math.random()); return ( (a._randomTexture2 = new Cs.a(new Float32Array(u), l, 1, 5, a._scene, !1, !1, 1, 1)), (a._randomTexture2.wrapU = ln.a.WRAP_ADDRESSMODE), (a._randomTexture2.wrapV = ln.a.WRAP_ADDRESSMODE), (a._randomTextureSize = l), a ); } return ( Object(h.d)(t, e), Object.defineProperty(t, "IsSupported", { get: function () { return !!E.a.LastCreatedEngine && E.a.LastCreatedEngine.webGLVersion > 1; }, enumerable: !0, configurable: !0, }), (t.prototype.getCapacity = function () { return this._capacity; }), Object.defineProperty(t.prototype, "activeParticleCount", { get: function () { return this._activeCount; }, set: function (e) { this._activeCount = Math.min(e, this._capacity); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "isLocal", { get: function () { return !1; }, set: function (e) {}, enumerable: !0, configurable: !0, }), (t.prototype.isReady = function () { return this._updateEffect ? !!(this.emitter && this._updateEffect.isReady() && this._imageProcessingConfiguration.isReady() && this._renderEffect.isReady() && this.particleTexture && this.particleTexture.isReady()) : (this._recreateUpdateEffect(), this._recreateRenderEffect(), !1); }), (t.prototype.isStarted = function () { return this._started; }), (t.prototype.start = function (e) { var t = this; if ((void 0 === e && (e = this.startDelay), !this.targetStopDuration && this._hasTargetStopDurationDependantGradient())) throw "Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set"; e ? setTimeout(function () { t.start(0); }, e) : ((this._started = !0), (this._stopped = !1), (this._preWarmDone = !1), this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this.getScene().beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop)); }), (t.prototype.stop = function () { this._stopped = !0; }), (t.prototype.reset = function () { this._releaseBuffers(), this._releaseVAOs(), (this._currentActiveCount = 0), (this._targetIndex = 0); }), (t.prototype.getClassName = function () { return "GPUParticleSystem"; }), (t.prototype._removeGradientAndTexture = function (t, n, i) { return e.prototype._removeGradientAndTexture.call(this, t, n, i), this._releaseBuffers(), this; }), (t.prototype.addColorGradient = function (e, t, n) { this._colorGradients || (this._colorGradients = []); var i = new Hl(); return ( (i.gradient = e), (i.color1 = t), this._colorGradients.push(i), this._colorGradients.sort(function (e, t) { return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0; }), this._colorGradientsTexture && (this._colorGradientsTexture.dispose(), (this._colorGradientsTexture = null)), this._releaseBuffers(), this ); }), (t.prototype.removeColorGradient = function (e) { return this._removeGradientAndTexture(e, this._colorGradients, this._colorGradientsTexture), (this._colorGradientsTexture = null), this; }), (t.prototype._addFactorGradient = function (e, t, n) { var i = new Xl(); (i.gradient = t), (i.factor1 = n), e.push(i), e.sort(function (e, t) { return e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0; }), this._releaseBuffers(); }), (t.prototype.addSizeGradient = function (e, t) { return ( this._sizeGradients || (this._sizeGradients = []), this._addFactorGradient(this._sizeGradients, e, t), this._sizeGradientsTexture && (this._sizeGradientsTexture.dispose(), (this._sizeGradientsTexture = null)), this._releaseBuffers(), this ); }), (t.prototype.removeSizeGradient = function (e) { return this._removeGradientAndTexture(e, this._sizeGradients, this._sizeGradientsTexture), (this._sizeGradientsTexture = null), this; }), (t.prototype.addAngularSpeedGradient = function (e, t) { return ( this._angularSpeedGradients || (this._angularSpeedGradients = []), this._addFactorGradient(this._angularSpeedGradients, e, t), this._angularSpeedGradientsTexture && (this._angularSpeedGradientsTexture.dispose(), (this._angularSpeedGradientsTexture = null)), this._releaseBuffers(), this ); }), (t.prototype.removeAngularSpeedGradient = function (e) { return this._removeGradientAndTexture(e, this._angularSpeedGradients, this._angularSpeedGradientsTexture), (this._angularSpeedGradientsTexture = null), this; }), (t.prototype.addVelocityGradient = function (e, t) { return ( this._velocityGradients || (this._velocityGradients = []), this._addFactorGradient(this._velocityGradients, e, t), this._velocityGradientsTexture && (this._velocityGradientsTexture.dispose(), (this._velocityGradientsTexture = null)), this._releaseBuffers(), this ); }), (t.prototype.removeVelocityGradient = function (e) { return this._removeGradientAndTexture(e, this._velocityGradients, this._velocityGradientsTexture), (this._velocityGradientsTexture = null), this; }), (t.prototype.addLimitVelocityGradient = function (e, t) { return ( this._limitVelocityGradients || (this._limitVelocityGradients = []), this._addFactorGradient(this._limitVelocityGradients, e, t), this._limitVelocityGradientsTexture && (this._limitVelocityGradientsTexture.dispose(), (this._limitVelocityGradientsTexture = null)), this._releaseBuffers(), this ); }), (t.prototype.removeLimitVelocityGradient = function (e) { return this._removeGradientAndTexture(e, this._limitVelocityGradients, this._limitVelocityGradientsTexture), (this._limitVelocityGradientsTexture = null), this; }), (t.prototype.addDragGradient = function (e, t) { return ( this._dragGradients || (this._dragGradients = []), this._addFactorGradient(this._dragGradients, e, t), this._dragGradientsTexture && (this._dragGradientsTexture.dispose(), (this._dragGradientsTexture = null)), this._releaseBuffers(), this ); }), (t.prototype.removeDragGradient = function (e) { return this._removeGradientAndTexture(e, this._dragGradients, this._dragGradientsTexture), (this._dragGradientsTexture = null), this; }), (t.prototype.addEmitRateGradient = function (e, t, n) { return this; }), (t.prototype.removeEmitRateGradient = function (e) { return this; }), (t.prototype.addStartSizeGradient = function (e, t, n) { return this; }), (t.prototype.removeStartSizeGradient = function (e) { return this; }), (t.prototype.addColorRemapGradient = function (e, t, n) { return this; }), (t.prototype.removeColorRemapGradient = function () { return this; }), (t.prototype.addAlphaRemapGradient = function (e, t, n) { return this; }), (t.prototype.removeAlphaRemapGradient = function () { return this; }), (t.prototype.addRampGradient = function (e, t) { return this; }), (t.prototype.removeRampGradient = function () { return this; }), (t.prototype.getRampGradients = function () { return null; }), Object.defineProperty(t.prototype, "useRampGradients", { get: function () { return !1; }, set: function (e) {}, enumerable: !0, configurable: !0, }), (t.prototype.addLifeTimeGradient = function (e, t, n) { return this; }), (t.prototype.removeLifeTimeGradient = function (e) { return this; }), (t.prototype._reset = function () { this._releaseBuffers(); }), (t.prototype._createUpdateVAO = function (e) { var t = {}; t.position = e.createVertexBuffer("position", 0, 3); var n = 3; this.particleEmitterType instanceof Vl && ((t.initialPosition = e.createVertexBuffer("initialPosition", n, 3)), (n += 3)), (t.age = e.createVertexBuffer("age", n, 1)), (n += 1), (t.life = e.createVertexBuffer("life", n, 1)), (n += 1), (t.seed = e.createVertexBuffer("seed", n, 4)), (n += 4), (t.size = e.createVertexBuffer("size", n, 3)), (n += 3), this._colorGradientsTexture || ((t.color = e.createVertexBuffer("color", n, 4)), (n += 4)), (t.direction = e.createVertexBuffer("direction", n, 3)), (n += 3), this._isBillboardBased || ((t.initialDirection = e.createVertexBuffer("initialDirection", n, 3)), (n += 3)), this._angularSpeedGradientsTexture ? ((t.angle = e.createVertexBuffer("angle", n, 1)), (n += 1)) : ((t.angle = e.createVertexBuffer("angle", n, 2)), (n += 2)), this._isAnimationSheetEnabled && ((t.cellIndex = e.createVertexBuffer("cellIndex", n, 1)), (n += 1), this.spriteRandomStartCell && ((t.cellStartOffset = e.createVertexBuffer("cellStartOffset", n, 1)), (n += 1))), this.noiseTexture && ((t.noiseCoordinates1 = e.createVertexBuffer("noiseCoordinates1", n, 3)), (n += 3), (t.noiseCoordinates2 = e.createVertexBuffer("noiseCoordinates2", n, 3)), (n += 3)); var i = this._engine.recordVertexArrayObject(t, null, this._updateEffect); return this._engine.bindArrayBuffer(null), i; }), (t.prototype._createRenderVAO = function (e, t) { var n = {}; n.position = e.createVertexBuffer("position", 0, 3, this._attributesStrideSize, !0); var i = 3; this.particleEmitterType instanceof Vl && (i += 3), (n.age = e.createVertexBuffer("age", i, 1, this._attributesStrideSize, !0)), (i += 1), (n.life = e.createVertexBuffer("life", i, 1, this._attributesStrideSize, !0)), (i += 5), (n.size = e.createVertexBuffer("size", i, 3, this._attributesStrideSize, !0)), (i += 3), this._colorGradientsTexture || ((n.color = e.createVertexBuffer("color", i, 4, this._attributesStrideSize, !0)), (i += 4)), this.billboardMode === Jl.BILLBOARDMODE_STRETCHED && (n.direction = e.createVertexBuffer("direction", i, 3, this._attributesStrideSize, !0)), (i += 3), this._isBillboardBased || ((n.initialDirection = e.createVertexBuffer("initialDirection", i, 3, this._attributesStrideSize, !0)), (i += 3)), (n.angle = e.createVertexBuffer("angle", i, 1, this._attributesStrideSize, !0)), this._angularSpeedGradientsTexture ? i++ : (i += 2), this._isAnimationSheetEnabled && ((n.cellIndex = e.createVertexBuffer("cellIndex", i, 1, this._attributesStrideSize, !0)), (i += 1), this.spriteRandomStartCell && ((n.cellStartOffset = e.createVertexBuffer("cellStartOffset", i, 1, this._attributesStrideSize, !0)), (i += 1))), this.noiseTexture && ((n.noiseCoordinates1 = e.createVertexBuffer("noiseCoordinates1", i, 3, this._attributesStrideSize, !0)), (i += 3), (n.noiseCoordinates2 = e.createVertexBuffer("noiseCoordinates2", i, 3, this._attributesStrideSize, !0)), (i += 3)), (n.offset = t.createVertexBuffer("offset", 0, 2)), (n.uv = t.createVertexBuffer("uv", 2, 2)); var r = this._engine.recordVertexArrayObject(n, null, this._renderEffect); return this._engine.bindArrayBuffer(null), r; }), (t.prototype._initialize = function (e) { if ((void 0 === e && (e = !1), !this._buffer0 || e)) { var t = this._scene.getEngine(), n = new Array(); (this._attributesStrideSize = 21), (this._targetIndex = 0), this.particleEmitterType instanceof Vl && (this._attributesStrideSize += 3), this.isBillboardBased || (this._attributesStrideSize += 3), this._colorGradientsTexture && (this._attributesStrideSize -= 4), this._angularSpeedGradientsTexture && (this._attributesStrideSize -= 1), this._isAnimationSheetEnabled && ((this._attributesStrideSize += 1), this.spriteRandomStartCell && (this._attributesStrideSize += 1)), this.noiseTexture && (this._attributesStrideSize += 6); for (var i = this.particleEmitterType instanceof Vl, r = a.c.Vector3[0], o = 0; o < this._capacity; o++) n.push(0), n.push(0), n.push(0), i && (this.particleEmitterType.particlePositionGenerator(o, null, r), n.push(r.x), n.push(r.y), n.push(r.z)), n.push(0), n.push(0), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(0), n.push(0), n.push(0), this._colorGradientsTexture || (n.push(0), n.push(0), n.push(0), n.push(0)), i ? (this.particleEmitterType.particleDestinationGenerator(o, null, r), n.push(r.x), n.push(r.y), n.push(r.z)) : (n.push(0), n.push(0), n.push(0)), this.isBillboardBased || (n.push(0), n.push(0), n.push(0)), n.push(0), this._angularSpeedGradientsTexture || n.push(0), this._isAnimationSheetEnabled && (n.push(0), this.spriteRandomStartCell && n.push(0)), this.noiseTexture && (n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random()), n.push(Math.random())); var s = new Float32Array([0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1, -0.5, -0.5, 0, 0, 0.5, -0.5, 1, 0]); (this._buffer0 = new wn.a(t, n, !1, this._attributesStrideSize)), (this._buffer1 = new wn.a(t, n, !1, this._attributesStrideSize)), (this._spriteBuffer = new wn.a(t, s, !1, 4)), (this._updateVAO = []), this._updateVAO.push(this._createUpdateVAO(this._buffer0)), this._updateVAO.push(this._createUpdateVAO(this._buffer1)), (this._renderVAO = []), this._renderVAO.push(this._createRenderVAO(this._buffer1, this._spriteBuffer)), this._renderVAO.push(this._createRenderVAO(this._buffer0, this._spriteBuffer)), (this._sourceBuffer = this._buffer0), (this._targetBuffer = this._buffer1); } }), (t.prototype._recreateUpdateEffect = function () { var e = this.particleEmitterType ? this.particleEmitterType.getEffectDefines() : ""; this._isBillboardBased && (e += "\n#define BILLBOARD"), this._colorGradientsTexture && (e += "\n#define COLORGRADIENTS"), this._sizeGradientsTexture && (e += "\n#define SIZEGRADIENTS"), this._angularSpeedGradientsTexture && (e += "\n#define ANGULARSPEEDGRADIENTS"), this._velocityGradientsTexture && (e += "\n#define VELOCITYGRADIENTS"), this._limitVelocityGradientsTexture && (e += "\n#define LIMITVELOCITYGRADIENTS"), this._dragGradientsTexture && (e += "\n#define DRAGGRADIENTS"), this.isAnimationSheetEnabled && ((e += "\n#define ANIMATESHEET"), this.spriteRandomStartCell && (e += "\n#define ANIMATESHEETRANDOMSTART")), this.noiseTexture && (e += "\n#define NOISE"), (this._updateEffect && this._updateEffectOptions.defines === e) || ((this._updateEffectOptions.transformFeedbackVaryings = ["outPosition"]), this.particleEmitterType instanceof Vl && this._updateEffectOptions.transformFeedbackVaryings.push("outInitialPosition"), this._updateEffectOptions.transformFeedbackVaryings.push("outAge"), this._updateEffectOptions.transformFeedbackVaryings.push("outLife"), this._updateEffectOptions.transformFeedbackVaryings.push("outSeed"), this._updateEffectOptions.transformFeedbackVaryings.push("outSize"), this._colorGradientsTexture || this._updateEffectOptions.transformFeedbackVaryings.push("outColor"), this._updateEffectOptions.transformFeedbackVaryings.push("outDirection"), this._isBillboardBased || this._updateEffectOptions.transformFeedbackVaryings.push("outInitialDirection"), this._updateEffectOptions.transformFeedbackVaryings.push("outAngle"), this.isAnimationSheetEnabled && (this._updateEffectOptions.transformFeedbackVaryings.push("outCellIndex"), this.spriteRandomStartCell && this._updateEffectOptions.transformFeedbackVaryings.push("outCellStartOffset")), this.noiseTexture && (this._updateEffectOptions.transformFeedbackVaryings.push("outNoiseCoordinates1"), this._updateEffectOptions.transformFeedbackVaryings.push("outNoiseCoordinates2")), (this._updateEffectOptions.defines = e), (this._updateEffect = new Xt.a("gpuUpdateParticles", this._updateEffectOptions, this._scene.getEngine()))); }), (t.prototype._recreateRenderEffect = function () { var e = ""; if ( (this._scene.clipPlane && (e = "\n#define CLIPPLANE"), this._scene.clipPlane2 && (e = "\n#define CLIPPLANE2"), this._scene.clipPlane3 && (e = "\n#define CLIPPLANE3"), this._scene.clipPlane4 && (e = "\n#define CLIPPLANE4"), this._scene.clipPlane5 && (e = "\n#define CLIPPLANE5"), this._scene.clipPlane6 && (e = "\n#define CLIPPLANE6"), this.blendMode === Jl.BLENDMODE_MULTIPLY && (e = "\n#define BLENDMULTIPLYMODE"), this._isBillboardBased) ) switch (((e += "\n#define BILLBOARD"), this.billboardMode)) { case Jl.BILLBOARDMODE_Y: e += "\n#define BILLBOARDY"; break; case Jl.BILLBOARDMODE_STRETCHED: e += "\n#define BILLBOARDSTRETCHED"; break; case Jl.BILLBOARDMODE_ALL: } if ( (this._colorGradientsTexture && (e += "\n#define COLORGRADIENTS"), this.isAnimationSheetEnabled && (e += "\n#define ANIMATESHEET"), this._imageProcessingConfiguration && (this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines), (e += "\n" + this._imageProcessingConfigurationDefines.toString())), !this._renderEffect || this._renderEffect.defines !== e) ) { var t = ["worldOffset", "view", "projection", "colorDead", "invView", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "sheetInfos", "translationPivot", "eyePosition"], n = ["textureSampler", "colorGradientSampler"]; En.a && (En.a.PrepareUniforms(t, this._imageProcessingConfigurationDefines), En.a.PrepareSamplers(n, this._imageProcessingConfigurationDefines)), (this._renderEffect = new Xt.a("gpuRenderParticles", ["position", "age", "life", "size", "color", "offset", "uv", "direction", "initialDirection", "angle", "cellIndex"], t, n, this._scene.getEngine(), e)); } }), (t.prototype.animate = function (e) { void 0 === e && (e = !1), (this._timeDelta = this.updateSpeed * (e ? this.preWarmStepOffset : this._scene.getAnimationRatio())), (this._actualFrame += this._timeDelta), this._stopped || (this.targetStopDuration && this._actualFrame >= this.targetStopDuration && this.stop()); }), (t.prototype._createFactorGradientTexture = function (e, t) { var n = this[t]; if (e && e.length && !n) { for (var i = new Float32Array(this._rawTextureWidth), r = 0; r < this._rawTextureWidth; r++) { var o = r / this._rawTextureWidth; Yl.GetCurrentGradient(o, e, function (e, t, n) { i[r] = z.a.Lerp(e.factor1, t.factor1, n); }); } this[t] = Cs.a.CreateRTexture(i, this._rawTextureWidth, 1, this._scene, !1, !1, ln.a.NEAREST_SAMPLINGMODE); } }), (t.prototype._createSizeGradientTexture = function () { this._createFactorGradientTexture(this._sizeGradients, "_sizeGradientsTexture"); }), (t.prototype._createAngularSpeedGradientTexture = function () { this._createFactorGradientTexture(this._angularSpeedGradients, "_angularSpeedGradientsTexture"); }), (t.prototype._createVelocityGradientTexture = function () { this._createFactorGradientTexture(this._velocityGradients, "_velocityGradientsTexture"); }), (t.prototype._createLimitVelocityGradientTexture = function () { this._createFactorGradientTexture(this._limitVelocityGradients, "_limitVelocityGradientsTexture"); }), (t.prototype._createDragGradientTexture = function () { this._createFactorGradientTexture(this._dragGradients, "_dragGradientsTexture"); }), (t.prototype._createColorGradientTexture = function () { if (this._colorGradients && this._colorGradients.length && !this._colorGradientsTexture) { for (var e = new Uint8Array(4 * this._rawTextureWidth), t = s.c.Color4[0], n = 0; n < this._rawTextureWidth; n++) { var i = n / this._rawTextureWidth; Yl.GetCurrentGradient(i, this._colorGradients, function (i, r, o) { s.b.LerpToRef(i.color1, r.color1, o, t), (e[4 * n] = 255 * t.r), (e[4 * n + 1] = 255 * t.g), (e[4 * n + 2] = 255 * t.b), (e[4 * n + 3] = 255 * t.a); }); } this._colorGradientsTexture = Cs.a.CreateRGBATexture(e, this._rawTextureWidth, 1, this._scene, !1, !1, ln.a.NEAREST_SAMPLINGMODE); } }), (t.prototype.render = function (e) { if ((void 0 === e && (e = !1), !this._started)) return 0; if ( (this._createColorGradientTexture(), this._createSizeGradientTexture(), this._createAngularSpeedGradientTexture(), this._createVelocityGradientTexture(), this._createLimitVelocityGradientTexture(), this._createDragGradientTexture(), this._recreateUpdateEffect(), this._recreateRenderEffect(), !this.isReady()) ) return 0; if (!e) { if (!this._preWarmDone && this.preWarmCycles) { for (var t = 0; t < this.preWarmCycles; t++) this.animate(!0), this.render(!0); this._preWarmDone = !0; } if (this._currentRenderId === this._scene.getFrameId()) return 0; this._currentRenderId = this._scene.getFrameId(); } if ((this._initialize(), (this._accumulatedCount += this.emitRate * this._timeDelta), this._accumulatedCount > 1)) { var n = 0 | this._accumulatedCount; (this._accumulatedCount -= n), (this._currentActiveCount = Math.min(this._activeCount, this._currentActiveCount + n)); } if (!this._currentActiveCount) return 0; var i; if ( (this._engine.enableEffect(this._updateEffect), this._engine.setState(!1), this._updateEffect.setFloat("currentCount", this._currentActiveCount), this._updateEffect.setFloat("timeDelta", this._timeDelta), this._updateEffect.setFloat("stopFactor", this._stopped ? 0 : 1), this._updateEffect.setTexture("randomSampler", this._randomTexture), this._updateEffect.setTexture("randomSampler2", this._randomTexture2), this._updateEffect.setFloat2("lifeTime", this.minLifeTime, this.maxLifeTime), this._updateEffect.setFloat2("emitPower", this.minEmitPower, this.maxEmitPower), this._colorGradientsTexture || (this._updateEffect.setDirectColor4("color1", this.color1), this._updateEffect.setDirectColor4("color2", this.color2)), this._updateEffect.setFloat2("sizeRange", this.minSize, this.maxSize), this._updateEffect.setFloat4("scaleRange", this.minScaleX, this.maxScaleX, this.minScaleY, this.maxScaleY), this._updateEffect.setFloat4("angleRange", this.minAngularSpeed, this.maxAngularSpeed, this.minInitialRotation, this.maxInitialRotation), this._updateEffect.setVector3("gravity", this.gravity), this._sizeGradientsTexture && this._updateEffect.setTexture("sizeGradientSampler", this._sizeGradientsTexture), this._angularSpeedGradientsTexture && this._updateEffect.setTexture("angularSpeedGradientSampler", this._angularSpeedGradientsTexture), this._velocityGradientsTexture && this._updateEffect.setTexture("velocityGradientSampler", this._velocityGradientsTexture), this._limitVelocityGradientsTexture && (this._updateEffect.setTexture("limitVelocityGradientSampler", this._limitVelocityGradientsTexture), this._updateEffect.setFloat("limitVelocityDamping", this.limitVelocityDamping)), this._dragGradientsTexture && this._updateEffect.setTexture("dragGradientSampler", this._dragGradientsTexture), this.particleEmitterType && this.particleEmitterType.applyToShader(this._updateEffect), this._isAnimationSheetEnabled && this._updateEffect.setFloat3("cellInfos", this.startSpriteCellID, this.endSpriteCellID, this.spriteCellChangeSpeed), this.noiseTexture && (this._updateEffect.setTexture("noiseSampler", this.noiseTexture), this._updateEffect.setVector3("noiseStrength", this.noiseStrength)), this.emitter.position) ) { i = this.emitter.getWorldMatrix(); } else { var r = this.emitter; i = a.a.Translation(r.x, r.y, r.z); } if ( (this._updateEffect.setMatrix("emitterWM", i), this._engine.bindVertexArrayObject(this._updateVAO[this._targetIndex], null), this._engine.bindTransformFeedbackBuffer(this._targetBuffer.getBuffer()), this._engine.setRasterizerState(!1), this._engine.beginTransformFeedback(!0), this._engine.drawArraysType(Fo.a.PointListDrawMode, 0, this._currentActiveCount), this._engine.endTransformFeedback(), this._engine.setRasterizerState(!0), this._engine.bindTransformFeedbackBuffer(null), !e) ) { this._engine.enableEffect(this._renderEffect); var o = this._scene.getViewMatrix(); if ( (this._renderEffect.setMatrix("view", o), this._renderEffect.setMatrix("projection", this._scene.getProjectionMatrix()), this._renderEffect.setTexture("textureSampler", this.particleTexture), this._renderEffect.setVector2("translationPivot", this.translationPivot), this._renderEffect.setVector3("worldOffset", this.worldOffset), this._colorGradientsTexture ? this._renderEffect.setTexture("colorGradientSampler", this._colorGradientsTexture) : this._renderEffect.setDirectColor4("colorDead", this.colorDead), this._isAnimationSheetEnabled && this.particleTexture) ) { var s = this.particleTexture.getBaseSize(); this._renderEffect.setFloat3("sheetInfos", this.spriteCellWidth / s.width, this.spriteCellHeight / s.height, s.width / this.spriteCellWidth); } if (this._isBillboardBased) { var c = this._scene.activeCamera; this._renderEffect.setVector3("eyePosition", c.globalPosition); } if (this._scene.clipPlane || this._scene.clipPlane2 || this._scene.clipPlane3 || this._scene.clipPlane4 || this._scene.clipPlane5 || this._scene.clipPlane6) { var l = o.clone(); l.invert(), this._renderEffect.setMatrix("invView", l), Ir.a.BindClipPlane(this._renderEffect, this._scene); } switch ((this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(this._renderEffect), this.blendMode)) { case Jl.BLENDMODE_ADD: this._engine.setAlphaMode(1); break; case Jl.BLENDMODE_ONEONE: this._engine.setAlphaMode(6); break; case Jl.BLENDMODE_STANDARD: this._engine.setAlphaMode(2); break; case Jl.BLENDMODE_MULTIPLY: this._engine.setAlphaMode(4); } this.forceDepthWrite && this._engine.setDepthWrite(!0), this._engine.bindVertexArrayObject(this._renderVAO[this._targetIndex], null), this._engine.drawArraysType(Fo.a.TriangleFanDrawMode, 0, 4, this._currentActiveCount), this._engine.setAlphaMode(0); } this._targetIndex++, 2 === this._targetIndex && (this._targetIndex = 0); var u = this._sourceBuffer; return (this._sourceBuffer = this._targetBuffer), (this._targetBuffer = u), this._currentActiveCount; }), (t.prototype.rebuild = function () { this._initialize(!0); }), (t.prototype._releaseBuffers = function () { this._buffer0 && (this._buffer0.dispose(), (this._buffer0 = null)), this._buffer1 && (this._buffer1.dispose(), (this._buffer1 = null)), this._spriteBuffer && (this._spriteBuffer.dispose(), (this._spriteBuffer = null)); }), (t.prototype._releaseVAOs = function () { if (this._updateVAO) { for (var e = 0; e < this._updateVAO.length; e++) this._engine.releaseVertexArrayObject(this._updateVAO[e]); this._updateVAO = []; for (e = 0; e < this._renderVAO.length; e++) this._engine.releaseVertexArrayObject(this._renderVAO[e]); this._renderVAO = []; } }), (t.prototype.dispose = function (e) { void 0 === e && (e = !0); var t = this._scene.particleSystems.indexOf(this); t > -1 && this._scene.particleSystems.splice(t, 1), this._releaseBuffers(), this._releaseVAOs(), this._colorGradientsTexture && (this._colorGradientsTexture.dispose(), (this._colorGradientsTexture = null)), this._sizeGradientsTexture && (this._sizeGradientsTexture.dispose(), (this._sizeGradientsTexture = null)), this._angularSpeedGradientsTexture && (this._angularSpeedGradientsTexture.dispose(), (this._angularSpeedGradientsTexture = null)), this._velocityGradientsTexture && (this._velocityGradientsTexture.dispose(), (this._velocityGradientsTexture = null)), this._limitVelocityGradientsTexture && (this._limitVelocityGradientsTexture.dispose(), (this._limitVelocityGradientsTexture = null)), this._dragGradientsTexture && (this._dragGradientsTexture.dispose(), (this._dragGradientsTexture = null)), this._randomTexture && (this._randomTexture.dispose(), (this._randomTexture = null)), this._randomTexture2 && (this._randomTexture2.dispose(), (this._randomTexture2 = null)), e && this.particleTexture && (this.particleTexture.dispose(), (this.particleTexture = null)), e && this.noiseTexture && (this.noiseTexture.dispose(), (this.noiseTexture = null)), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(); }), (t.prototype.clone = function (e, n) { var i = new t(e, { capacity: this._capacity, randomTextureSize: this._randomTextureSize }, this._scene); return ( M.a.DeepCopy(this, i, ["particles", "customShader", "noiseTexture", "particleTexture", "onDisposeObservable"]), void 0 === n && (n = this.emitter), (i.emitter = n), this.particleTexture && (i.particleTexture = new ln.a(this.particleTexture.url, this._scene)), (i.noiseTexture = this.noiseTexture), this._colorGradients && this._colorGradients.forEach(function (e) { i.addColorGradient(e.gradient, e.color1, e.color2); }), this._dragGradients && this._dragGradients.forEach(function (e) { i.addDragGradient(e.gradient, e.factor1); }), this._angularSpeedGradients && this._angularSpeedGradients.forEach(function (e) { i.addAngularSpeedGradient(e.gradient, e.factor1); }), this._emitRateGradients && this._emitRateGradients.forEach(function (e) { i.addEmitRateGradient(e.gradient, e.factor1, e.factor2); }), this._lifeTimeGradients && this._lifeTimeGradients.forEach(function (e) { i.addLifeTimeGradient(e.gradient, e.factor1, e.factor2); }), this._limitVelocityGradients && this._limitVelocityGradients.forEach(function (e) { i.addLimitVelocityGradient(e.gradient, e.factor1); }), this._sizeGradients && this._sizeGradients.forEach(function (e) { i.addSizeGradient(e.gradient, e.factor1); }), this._startSizeGradients && this._startSizeGradients.forEach(function (e) { i.addStartSizeGradient(e.gradient, e.factor1, e.factor2); }), this._velocityGradients && this._velocityGradients.forEach(function (e) { i.addVelocityGradient(e.gradient, e.factor1); }), this._rampGradients && this._rampGradients.forEach(function (e) { i.addRampGradient(e.gradient, e.color); }), this._colorRemapGradients && this._colorRemapGradients.forEach(function (e) { i.addColorRemapGradient(e.gradient, e.factor1, e.factor2); }), this._alphaRemapGradients && this._alphaRemapGradients.forEach(function (e) { i.addAlphaRemapGradient(e.gradient, e.factor1, e.factor2); }), i ); }), (t.prototype.serialize = function () { var e = {}; return Jl._Serialize(e, this), (e.activeParticleCount = this.activeParticleCount), e; }), (t.Parse = function (e, n, i, r) { void 0 === r && (r = !1); var o = new t(e.name, { capacity: e.capacity, randomTextureSize: e.randomTextureSize }, n); return e.activeParticleCount && (o.activeParticleCount = e.activeParticleCount), Jl._Parse(e, o, n, i), e.preventAutoStart && (o.preventAutoStart = e.preventAutoStart), r || o.preventAutoStart || o.start(), o; }), t ); })(Ul), ou = (function () { function e() { this.systems = new Array(); } return ( Object.defineProperty(e.prototype, "emitterNode", { get: function () { return this._emitterNode; }, enumerable: !0, configurable: !0, }), (e.prototype.setEmitterAsSphere = function (e, t, n) { this._emitterNode && this._emitterNode.dispose(), (this._emitterCreationOptions = { kind: "Sphere", options: e, renderingGroupId: t }); var i = mi.CreateSphere("emitterSphere", { diameter: e.diameter, segments: e.segments }, n); i.renderingGroupId = t; var r = new Mn.a("emitterSphereMaterial", n); (r.emissiveColor = e.color), (i.material = r); for (var o = 0, a = this.systems; o < a.length; o++) { a[o].emitter = i; } this._emitterNode = i; }), (e.prototype.start = function (e) { for (var t = 0, n = this.systems; t < n.length; t++) { var i = n[t]; e && (i.emitter = e), i.start(); } }), (e.prototype.dispose = function () { for (var e = 0, t = this.systems; e < t.length; e++) { t[e].dispose(); } (this.systems = []), this._emitterNode && (this._emitterNode.dispose(), (this._emitterNode = null)); }), (e.prototype.serialize = function () { for (var e = { systems: [] }, t = 0, n = this.systems; t < n.length; t++) { var i = n[t]; e.systems.push(i.serialize()); } return this._emitterNode && (e.emitter = this._emitterCreationOptions), e; }), (e.Parse = function (t, n, i) { void 0 === i && (i = !1); var r = new e(), o = this.BaseAssetsUrl + "/textures/"; n = n || E.a.LastCreatedScene; for (var a = 0, c = t.systems; a < c.length; a++) { var l = c[a]; r.systems.push(i ? ru.Parse(l, n, o, !0) : Jl.Parse(l, n, o, !0)); } if (t.emitter) { var u = t.emitter.options; switch (t.emitter.kind) { case "Sphere": r.setEmitterAsSphere({ diameter: u.diameter, segments: u.segments, color: s.a.FromArray(u.color) }, t.emitter.renderingGroupId, n); } } return r; }), (e.BaseAssetsUrl = "https://assets.babylonjs.com/particles"), e ); })(), au = (function () { function e() {} return ( (e.CreateDefault = function (e, t, n, i) { var r; return ( void 0 === t && (t = 500), void 0 === i && (i = !1), ((r = i ? new ru("default system", { capacity: t }, n) : new Jl("default system", t, n)).emitter = e), (r.particleTexture = new ln.a("https://www.babylonjs.com/assets/Flare.png", r.getScene())), r.createConeEmitter(0.1, Math.PI / 4), (r.color1 = new s.b(1, 1, 1, 1)), (r.color2 = new s.b(1, 1, 1, 1)), (r.colorDead = new s.b(1, 1, 1, 0)), (r.minSize = 0.1), (r.maxSize = 0.1), (r.minEmitPower = 2), (r.maxEmitPower = 2), (r.updateSpeed = 1 / 60), (r.emitRate = 30), r ); }), (e.CreateAsync = function (t, n, i) { void 0 === i && (i = !1), n || (n = E.a.LastCreatedScene); var r = {}; return ( n._addPendingData(r), new Promise(function (o, a) { if (i && !ru.IsSupported) return n._removePendingData(r), a("Particle system with GPU is not supported."); $e.b.LoadFile( e.BaseAssetsUrl + "/systems/" + t + ".json", function (e) { n._removePendingData(r); var t = JSON.parse(e.toString()); return o(ou.Parse(t, n, i)); }, void 0, void 0, void 0, function () { return n._removePendingData(r), a("An error occured while the creation of your particle system. Check if your type '" + t + "' exists."); } ); }) ); }), (e.ExportSet = function (e) { for (var t = new ou(), n = 0, i = e; n < i.length; n++) { var r = i[n]; t.systems.push(r); } return t; }), (e.BaseAssetsUrl = ou.BaseAssetsUrl), e ); })(); i.a.AddParser(me.a.NAME_PARTICLESYSTEM, function (e, t, n, r) { var o = i.a.GetIndividualParser(me.a.NAME_PARTICLESYSTEM); if (o && void 0 !== e.particleSystems && null !== e.particleSystems) for (var a = 0, s = e.particleSystems.length; a < s; a++) { var c = e.particleSystems[a]; n.particleSystems.push(o(c, t, r)); } }), i.a.AddIndividualParser(me.a.NAME_PARTICLESYSTEM, function (e, t, n) { return e.activeParticleCount ? ru.Parse(e, t, n) : Jl.Parse(e, t, n); }), (ue.a.prototype.createEffectForParticles = function (e, t, n, i, r, o, a) { void 0 === t && (t = []), void 0 === n && (n = []), void 0 === i && (i = ""); var s = Jl._GetAttributeNamesOrOptions(), c = Jl._GetEffectCreationOptions(); return ( -1 === i.indexOf(" BILLBOARD") && (i += "\n#define BILLBOARD\n"), -1 === n.indexOf("diffuseSampler") && n.push("diffuseSampler"), this.createEffect({ vertex: "particles", fragmentElement: e }, s, c.concat(t), n, i, r, o, a) ); }), (Ee.a.prototype.getEmittedParticleSystems = function () { for (var e = new Array(), t = 0; t < this.getScene().particleSystems.length; t++) { var n = this.getScene().particleSystems[t]; n.emitter === this && e.push(n); } return e; }), (Ee.a.prototype.getHierarchyEmittedParticleSystems = function () { var e = new Array(), t = this.getDescendants(); t.push(this); for (var n = 0; n < this.getScene().particleSystems.length; n++) { var i = this.getScene().particleSystems[n], r = i.emitter; r.position && -1 !== t.indexOf(r) && e.push(i); } return e; }); var su, cu = 42, lu = (function () { function e(e, t, n, i, r, o, c, l, u, h) { void 0 === u && (u = null), void 0 === h && (h = null), (this.idx = 0), (this.id = 0), (this.color = new s.b(1, 1, 1, 1)), (this.position = a.e.Zero()), (this.rotation = a.e.Zero()), (this.scaling = a.e.One()), (this.uvs = new a.f(0, 0, 1, 1)), (this.velocity = a.e.Zero()), (this.pivot = a.e.Zero()), (this.translateFromPivot = !1), (this.alive = !0), (this.isVisible = !0), (this._pos = 0), (this._ind = 0), (this.shapeId = 0), (this.idxInShape = 0), (this._stillInvisible = !1), (this._rotationMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]), (this.parentId = null), (this.materialIndex = null), (this.cullingStrategy = ke.a.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY), (this._globalPosition = a.e.Zero()), (this.idx = e), (this.id = t), (this._pos = n), (this._ind = i), (this._model = r), (this.shapeId = o), (this.idxInShape = c), (this._sps = l), u && ((this._modelBoundingInfo = u), (this._boundingInfo = new ti.a(u.minimum, u.maximum))), null !== h && (this.materialIndex = h); } return ( (e.prototype.copyToRef = function (e) { return ( e.position.copyFrom(this.position), e.rotation.copyFrom(this.rotation), this.rotationQuaternion && (e.rotationQuaternion ? e.rotationQuaternion.copyFrom(this.rotationQuaternion) : (e.rotationQuaternion = this.rotationQuaternion.clone())), e.scaling.copyFrom(this.scaling), this.color && (e.color ? e.color.copyFrom(this.color) : (e.color = this.color.clone())), e.uvs.copyFrom(this.uvs), e.velocity.copyFrom(this.velocity), e.pivot.copyFrom(this.pivot), (e.translateFromPivot = this.translateFromPivot), (e.alive = this.alive), (e.isVisible = this.isVisible), (e.parentId = this.parentId), (e.cullingStrategy = this.cullingStrategy), null !== this.materialIndex && (e.materialIndex = this.materialIndex), this ); }), Object.defineProperty(e.prototype, "scale", { get: function () { return this.scaling; }, set: function (e) { this.scaling = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "quaternion", { get: function () { return this.rotationQuaternion; }, set: function (e) { this.rotationQuaternion = e; }, enumerable: !0, configurable: !0, }), (e.prototype.intersectsMesh = function (e) { return !(!this._boundingInfo || !e._boundingInfo) && (this._sps._bSphereOnly ? ni.a.Intersects(this._boundingInfo.boundingSphere, e._boundingInfo.boundingSphere) : this._boundingInfo.intersects(e._boundingInfo, !1)); }), (e.prototype.isInFrustum = function (e) { return null !== this._boundingInfo && this._boundingInfo.isInFrustum(e, this.cullingStrategy); }), (e.prototype.getRotationMatrix = function (e) { var t; if (this.rotationQuaternion) t = this.rotationQuaternion; else { t = a.c.Quaternion[0]; var n = this.rotation; a.b.RotationYawPitchRollToRef(n.y, n.x, n.z, t); } t.toRotationMatrix(e); }), e ); })(), uu = function (e, t, n, i, r, o, a, s, c) { (this._indicesLength = 0), (this.shapeID = e), (this._shape = t), (this._indices = n), (this._indicesLength = n.length), (this._shapeUV = o), (this._shapeColors = r), (this._normals = i), (this._positionFunction = a), (this._vertexFunction = s), (this._material = c); }, hu = function (e, t, n) { (this.ind = 0), (this.indicesLength = 0), (this.sqDistance = 0), (this.materialIndex = 0), (this.ind = e), (this.indicesLength = t), (this.materialIndex = n); }, du = (function () { function e(e, t, n) { (this.particles = new Array()), (this.nbParticles = 0), (this.billboard = !1), (this.recomputeNormals = !1), (this.counter = 0), (this.vars = {}), (this._bSphereOnly = !1), (this._bSphereRadiusFactor = 1), (this._positions = new Array()), (this._indices = new Array()), (this._normals = new Array()), (this._colors = new Array()), (this._uvs = new Array()), (this._index = 0), (this._updatable = !0), (this._pickable = !1), (this._isVisibilityBoxLocked = !1), (this._alwaysVisible = !1), (this._depthSort = !1), (this._expandable = !1), (this._shapeCounter = 0), (this._copy = new lu(0, 0, 0, 0, null, 0, 0, this)), (this._color = new s.b(0, 0, 0, 0)), (this._computeParticleColor = !0), (this._computeParticleTexture = !0), (this._computeParticleRotation = !0), (this._computeParticleVertex = !1), (this._computeBoundingBox = !1), (this._depthSortParticles = !0), (this._mustUnrotateFixedNormals = !1), (this._particlesIntersect = !1), (this._needs32Bits = !1), (this._isNotBuilt = !0), (this._lastParticleId = 0), (this._idxOfId = []), (this._multimaterialEnabled = !1), (this._useModelMaterial = !1), (this._depthSortFunction = function (e, t) { return t.sqDistance - e.sqDistance; }), (this._materialSortFunction = function (e, t) { return e.materialIndex - t.materialIndex; }), (this._autoUpdateSubMeshes = !1), (this.name = e), (this._scene = t || E.a.LastCreatedScene), (this._camera = t.activeCamera), (this._pickable = !!n && n.isPickable), (this._depthSort = !!n && n.enableDepthSort), (this._multimaterialEnabled = !!n && n.enableMultiMaterial), (this._useModelMaterial = !!n && n.useModelMaterial), (this._multimaterialEnabled = !!this._useModelMaterial || this._multimaterialEnabled), (this._expandable = !!n && n.expandable), (this._particlesIntersect = !!n && n.particleIntersection), (this._bSphereOnly = !!n && n.boundingSphereOnly), (this._bSphereRadiusFactor = n && n.bSphereRadiusFactor ? n.bSphereRadiusFactor : 1), n && void 0 !== n.updatable ? (this._updatable = n.updatable) : (this._updatable = !0), this._pickable && (this.pickedParticles = []), (this._depthSort || this._multimaterialEnabled) && (this.depthSortedParticles = []), this._multimaterialEnabled && ((this._multimaterial = new Ta.a(this.name + "MultiMaterial", this._scene)), (this._materials = []), (this._materialIndexesById = {})); } return ( (e.prototype.buildMesh = function () { if (!this._isNotBuilt && this.mesh) return this.mesh; if (0 === this.nbParticles && !this.mesh) { var e = il.CreateDisc("", { radius: 1, tessellation: 3 }, this._scene); this.addShape(e, 1), e.dispose(); } if ( ((this._indices32 = this._needs32Bits ? new Uint32Array(this._indices) : new Uint16Array(this._indices)), (this._positions32 = new Float32Array(this._positions)), (this._uvs32 = new Float32Array(this._uvs)), (this._colors32 = new Float32Array(this._colors)), !this.mesh) ) { var t = new Ee.a(this.name, this._scene); this.mesh = t; } !this._updatable && this._multimaterialEnabled && this._sortParticlesByMaterial(), this.recomputeNormals && Rn.a.ComputeNormals(this._positions32, this._indices32, this._normals), (this._normals32 = new Float32Array(this._normals)), (this._fixedNormal32 = new Float32Array(this._normals)), this._mustUnrotateFixedNormals && this._unrotateFixedNormals(); var n = new Rn.a(); return ( (n.indices = this._depthSort ? this._indices : this._indices32), n.set(this._positions32, wn.b.PositionKind), n.set(this._normals32, wn.b.NormalKind), this._uvs32.length > 0 && n.set(this._uvs32, wn.b.UVKind), this._colors32.length > 0 && n.set(this._colors32, wn.b.ColorKind), n.applyToMesh(this.mesh, this._updatable), (this.mesh.isPickable = this._pickable), this._multimaterialEnabled && this.setMultiMaterial(this._materials), this._expandable || (this._depthSort || this._multimaterialEnabled || (this._indices = null), (this._positions = null), (this._normals = null), (this._uvs = null), (this._colors = null), this._updatable || (this.particles.length = 0)), (this._isNotBuilt = !1), (this.recomputeNormals = !1), this.mesh ); }), (e.prototype.digest = function (e, t) { var n = (t && t.facetNb) || 1, i = (t && t.number) || 0, r = (t && t.delta) || 0, o = e.getVerticesData(wn.b.PositionKind), s = e.getIndices(), c = e.getVerticesData(wn.b.UVKind), l = e.getVerticesData(wn.b.ColorKind), u = e.getVerticesData(wn.b.NormalKind), h = t && t.storage ? t.storage : null, d = 0, p = s.length / 3; i ? ((i = i > p ? p : i), (n = Math.round(p / i)), (r = 0)) : (n = n > p ? p : n); for (var f = [], m = [], g = [], b = [], _ = [], v = a.e.Zero(), y = n; d < p; ) { d > p - (n = y + Math.floor((1 + r) * Math.random())) && (n = p - d), (f.length = 0), (m.length = 0), (g.length = 0), (b.length = 0), (_.length = 0); for (var C = 0, P = 3 * d; P < 3 * (d + n); P++) { g.push(C); var x = s[P], T = 3 * x; if ((f.push(o[T], o[T + 1], o[T + 2]), m.push(u[T], u[T + 1], u[T + 2]), c)) { var S = 2 * x; b.push(c[S], c[S + 1]); } if (l) { var O = 4 * x; _.push(l[O], l[O + 1], l[O + 2], l[O + 3]); } C++; } var E, M = this.nbParticles, A = this._posToShape(f), I = this._uvsToShapeUV(b), D = Array.from(g), R = Array.from(_), w = Array.from(m); for (v.copyFromFloats(0, 0, 0), E = 0; E < A.length; E++) v.addInPlace(A[E]); v.scaleInPlace(1 / A.length); var L, F = new a.e(1 / 0, 1 / 0, 1 / 0), N = new a.e(-1 / 0, -1 / 0, -1 / 0); for (E = 0; E < A.length; E++) A[E].subtractInPlace(v), F.minimizeInPlaceFromFloats(A[E].x, A[E].y, A[E].z), N.maximizeInPlaceFromFloats(A[E].x, A[E].y, A[E].z); this._particlesIntersect && (L = new ti.a(F, N)); var k = null; this._useModelMaterial && (k = e.material ? e.material : this._setDefaultMaterial()); var z = new uu(this._shapeCounter, A, D, w, R, I, null, null, k), j = this._positions.length, B = this._indices.length; this._meshBuilder(this._index, B, A, this._positions, D, this._indices, b, this._uvs, R, this._colors, w, this._normals, M, 0, null, z), this._addParticle(M, this._lastParticleId, j, B, z, this._shapeCounter, 0, L, h), this.particles[this.nbParticles].position.addInPlace(v), h || ((this._index += A.length), M++, this.nbParticles++, this._lastParticleId++), this._shapeCounter++, (d += n); } return (this._isNotBuilt = !0), this; }), (e.prototype._unrotateFixedNormals = function () { for (var e = 0, t = 0, n = a.c.Vector3[0], i = a.c.Quaternion[0], r = a.c.Matrix[0], o = 0; o < this.particles.length; o++) { var s = this.particles[o], c = s._model._shape; if (s.rotationQuaternion) s.rotationQuaternion.conjugateToRef(i); else { var l = s.rotation; a.b.RotationYawPitchRollToRef(l.y, l.x, l.z, i), i.conjugateInPlace(); } i.toRotationMatrix(r); for (var u = 0; u < c.length; u++) (t = e + 3 * u), a.e.TransformNormalFromFloatsToRef(this._normals32[t], this._normals32[t + 1], this._normals32[t + 2], r, n), n.toArray(this._fixedNormal32, t); e = t + 3; } }), (e.prototype._resetCopy = function () { var e = this._copy; e.position.setAll(0), e.rotation.setAll(0), (e.rotationQuaternion = null), e.scaling.setAll(1), e.uvs.copyFromFloats(0, 0, 1, 1), (e.color = null), (e.translateFromPivot = !1), (e.materialIndex = null); }), (e.prototype._meshBuilder = function (e, t, n, i, r, o, s, c, l, u, h, d, p, f, m, g) { var b, _ = 0, v = 0, y = 0; this._resetCopy(); var C = this._copy, P = !(!m || !m.storage); if (((C.idx = p), (C.idxInShape = f), this._useModelMaterial)) { var x = g._material.uniqueId, T = this._materialIndexesById; T.hasOwnProperty(x) || ((T[x] = this._materials.length), this._materials.push(g._material)); var S = T[x]; C.materialIndex = S; } if ((m && m.positionFunction && (m.positionFunction(C, p, f), (this._mustUnrotateFixedNormals = !0)), P)) return C; var O = a.c.Matrix[0], E = a.c.Vector3[0], M = a.c.Vector3[1], A = a.c.Vector3[2], I = a.c.Vector3[3]; a.a.IdentityToRef(O), C.getRotationMatrix(O), C.pivot.multiplyToRef(C.scaling, I), C.translateFromPivot ? A.setAll(0) : A.copyFrom(I); var D = m && m.vertexFunction; for (b = 0; b < n.length; b++) { if ((E.copyFrom(n[b]), D && m.vertexFunction(C, E, b), E.multiplyInPlace(C.scaling).subtractInPlace(I), a.e.TransformCoordinatesToRef(E, O, M), M.addInPlace(A).addInPlace(C.position), i.push(M.x, M.y, M.z), s)) { var R = C.uvs; c.push((R.z - R.x) * s[_] + R.x, (R.w - R.y) * s[_ + 1] + R.y), (_ += 2); } if (C.color) this._color = C.color; else { var w = this._color; l && void 0 !== l[v] ? ((w.r = l[v]), (w.g = l[v + 1]), (w.b = l[v + 2]), (w.a = l[v + 3])) : ((w.r = 1), (w.g = 1), (w.b = 1), (w.a = 1)); } u.push(this._color.r, this._color.g, this._color.b, this._color.a), (v += 4), !this.recomputeNormals && h && (a.e.TransformNormalFromFloatsToRef(h[y], h[y + 1], h[y + 2], O, E), d.push(E.x, E.y, E.z), (y += 3)); } for (b = 0; b < r.length; b++) { var L = e + r[b]; o.push(L), L > 65535 && (this._needs32Bits = !0); } if (this._pickable) { var F = r.length / 3; for (b = 0; b < F; b++) this.pickedParticles.push({ idx: p, faceId: b }); } if (this._depthSort || this._multimaterialEnabled) { var N = null !== C.materialIndex ? C.materialIndex : 0; this.depthSortedParticles.push(new hu(t, r.length, N)); } return C; }), (e.prototype._posToShape = function (e) { for (var t = [], n = 0; n < e.length; n += 3) t.push(a.e.FromArray(e, n)); return t; }), (e.prototype._uvsToShapeUV = function (e) { var t = []; if (e) for (var n = 0; n < e.length; n++) t.push(e[n]); return t; }), (e.prototype._addParticle = function (e, t, n, i, r, o, a, s, c) { void 0 === s && (s = null), void 0 === c && (c = null); var l = new lu(e, t, n, i, r, o, a, this, s); return (c || this.particles).push(l), l; }), (e.prototype.addShape = function (e, t, n) { var i = e.getVerticesData(wn.b.PositionKind), r = e.getIndices(), o = e.getVerticesData(wn.b.UVKind), a = e.getVerticesData(wn.b.ColorKind), s = e.getVerticesData(wn.b.NormalKind); this.recomputeNormals = !s; var c = Array.from(r), l = Array.from(s), u = a ? Array.from(a) : [], h = n && n.storage ? n.storage : null, d = null; this._particlesIntersect && (d = e.getBoundingInfo()); var p = this._posToShape(i), f = this._uvsToShapeUV(o), m = n ? n.positionFunction : null, g = n ? n.vertexFunction : null, b = null; this._useModelMaterial && (b = e.material ? e.material : this._setDefaultMaterial()); for (var _ = new uu(this._shapeCounter, p, c, l, u, f, m, g, b), v = 0; v < t; v++) this._insertNewParticle(this.nbParticles, v, _, p, r, o, a, s, d, h, n); return this._shapeCounter++, (this._isNotBuilt = !0), this._shapeCounter - 1; }), (e.prototype._rebuildParticle = function (e, t) { void 0 === t && (t = !1), this._resetCopy(); var n = this._copy; e._model._positionFunction && e._model._positionFunction(n, e.idx, e.idxInShape); var i = a.c.Matrix[0], r = a.c.Vector3[0], o = a.c.Vector3[1], s = a.c.Vector3[2], c = a.c.Vector3[3]; n.getRotationMatrix(i), e.pivot.multiplyToRef(e.scaling, c), n.translateFromPivot ? s.copyFromFloats(0, 0, 0) : s.copyFrom(c); for (var l = e._model._shape, u = 0; u < l.length; u++) r.copyFrom(l[u]), e._model._vertexFunction && e._model._vertexFunction(n, r, u), r.multiplyInPlace(n.scaling).subtractInPlace(c), a.e.TransformCoordinatesToRef(r, i, o), o .addInPlace(s) .addInPlace(n.position) .toArray(this._positions32, e._pos + 3 * u); t && (e.position.setAll(0), e.rotation.setAll(0), (e.rotationQuaternion = null), e.scaling.setAll(1), e.uvs.setAll(0), e.pivot.setAll(0), (e.translateFromPivot = !1), (e.parentId = null)); }), (e.prototype.rebuildMesh = function (e) { void 0 === e && (e = !1); for (var t = 0; t < this.particles.length; t++) this._rebuildParticle(this.particles[t], e); return this.mesh.updateVerticesData(wn.b.PositionKind, this._positions32, !1, !1), this; }), (e.prototype.removeParticles = function (e, t) { var n = t - e + 1; if (!this._expandable || n <= 0 || n >= this.nbParticles || !this._updatable) return []; var i = this.particles, r = this.nbParticles; if (t < r - 1) for (var o = t + 1, a = i[o]._pos - i[e]._pos, s = i[o]._ind - i[e]._ind, c = o; c < r; c++) { var l = i[c]; (l._pos -= a), (l._ind -= s); } var u = i.splice(e, n); (this._positions.length = 0), (this._indices.length = 0), (this._colors.length = 0), (this._uvs.length = 0), (this._normals.length = 0), (this._index = 0), (this._idxOfId.length = 0), (this._depthSort || this._multimaterialEnabled) && (this.depthSortedParticles = []); for (var h = 0, d = i.length, p = 0; p < d; p++) { var f = i[p], m = f._model, g = m._shape, b = m._indices, _ = m._normals, v = m._shapeColors, y = m._shapeUV; (f.idx = p), (this._idxOfId[f.id] = p), this._meshBuilder(this._index, h, g, this._positions, b, this._indices, y, this._uvs, v, this._colors, _, this._normals, f.idx, f.idxInShape, null, m), (this._index += g.length), (h += b.length); } return (this.nbParticles -= n), (this._isNotBuilt = !0), u; }), (e.prototype.insertParticlesFromArray = function (e) { if (!this._expandable) return this; for (var t = 0, n = e[0].shapeId, i = e.length, r = 0; r < i; r++) { var o = e[r], a = o._model, s = a._shape, c = a._indices, l = a._shapeUV, u = a._shapeColors, h = a._normals, d = !h; this.recomputeNormals = d || this.recomputeNormals; var p = o._boundingInfo, f = this._insertNewParticle(this.nbParticles, t, a, s, c, l, u, h, p, null, null); o.copyToRef(f), t++, n != o.shapeId && ((n = o.shapeId), (t = 0)); } return (this._isNotBuilt = !0), this; }), (e.prototype._insertNewParticle = function (e, t, n, i, r, o, a, s, c, l, u) { var h = this._positions.length, d = this._indices.length, p = this._meshBuilder(this._index, d, i, this._positions, r, this._indices, o, this._uvs, a, this._colors, s, this._normals, e, t, u, n), f = null; return ( this._updatable && ((f = this._addParticle(this.nbParticles, this._lastParticleId, h, d, n, this._shapeCounter, t, c, l)).position.copyFrom(p.position), f.rotation.copyFrom(p.rotation), p.rotationQuaternion && (f.rotationQuaternion ? f.rotationQuaternion.copyFrom(p.rotationQuaternion) : (f.rotationQuaternion = p.rotationQuaternion.clone())), p.color && (f.color ? f.color.copyFrom(p.color) : (f.color = p.color.clone())), f.scaling.copyFrom(p.scaling), f.uvs.copyFrom(p.uvs), null !== p.materialIndex && (f.materialIndex = p.materialIndex), this.expandable && (this._idxOfId[f.id] = f.idx)), l || ((this._index += i.length), this.nbParticles++, this._lastParticleId++), f ); }), (e.prototype.setParticles = function (e, t, n) { if ((void 0 === e && (e = 0), void 0 === t && (t = this.nbParticles - 1), void 0 === n && (n = !0), !this._updatable || this._isNotBuilt)) return this; this.beforeUpdateParticles(e, t, n); var i = a.c.Matrix[0], r = a.c.Matrix[1], o = this.mesh, s = this._colors32, c = this._positions32, l = this._normals32, u = this._uvs32, h = this._indices32, d = this._indices, p = this._fixedNormal32, f = a.c.Vector3, m = f[5].copyFromFloats(1, 0, 0), g = f[6].copyFromFloats(0, 1, 0), b = f[7].copyFromFloats(0, 0, 1), _ = f[8].setAll(Number.MAX_VALUE), v = f[9].setAll(-Number.MAX_VALUE), y = f[10].setAll(0); if (((this.billboard || this._depthSort) && (this.mesh.computeWorldMatrix(!0), this.mesh._worldMatrix.invertToRef(r)), this.billboard)) { var C = f[0]; this._camera.getDirectionToRef(Be.a.Z, C), a.e.TransformNormalToRef(C, r, b), b.normalize(); var P = this._camera.getViewMatrix(!0); a.e.TransformNormalFromFloatsToRef(P.m[1], P.m[5], P.m[9], r, g), a.e.CrossToRef(g, b, m), g.normalize(), m.normalize(); } this._depthSort && a.e.TransformCoordinatesToRef(this._camera.globalPosition, r, y), a.a.IdentityToRef(i); var x = 0, T = 0, S = 0, O = 0, E = 0, M = 0, A = 0; if ((this.mesh.isFacetDataEnabled && (this._computeBoundingBox = !0), (t = t >= this.nbParticles ? this.nbParticles - 1 : t), this._computeBoundingBox && (0 != e || t != this.nbParticles - 1))) { var I = this.mesh._boundingInfo; I && (_.copyFrom(I.minimum), v.copyFrom(I.maximum)); } var D = ((T = this.particles[e]._pos) / 3) | 0; (O = 4 * D), (M = 2 * D); for (var R = e; R <= t; R++) { var w = this.particles[R]; this.updateParticle(w); var L = w._model._shape, F = w._model._shapeUV, N = w._rotationMatrix, k = w.position, z = w.rotation, j = w.scaling, B = w._globalPosition; if (this._depthSort && this._depthSortParticles) { var V = this.depthSortedParticles[R]; (V.ind = w._ind), (V.indicesLength = w._model._indicesLength), (V.sqDistance = a.e.DistanceSquared(w.position, y)); } if (!w.alive || (w._stillInvisible && !w.isVisible)) (T += 3 * (A = L.length)), (O += 4 * A), (M += 2 * A); else { if (w.isVisible) { w._stillInvisible = !1; var G = f[12]; if ((w.pivot.multiplyToRef(j, G), this.billboard && ((z.x = 0), (z.y = 0)), (this._computeParticleRotation || this.billboard) && w.getRotationMatrix(i), null !== w.parentId)) { var U = this.getParticleById(w.parentId); if (U) { var H = U._rotationMatrix, W = U._globalPosition, X = k.x * H[1] + k.y * H[4] + k.z * H[7], Y = k.x * H[0] + k.y * H[3] + k.z * H[6], K = k.x * H[2] + k.y * H[5] + k.z * H[8]; if (((B.x = W.x + Y), (B.y = W.y + X), (B.z = W.z + K), this._computeParticleRotation || this.billboard)) { var Z = i.m; (N[0] = Z[0] * H[0] + Z[1] * H[3] + Z[2] * H[6]), (N[1] = Z[0] * H[1] + Z[1] * H[4] + Z[2] * H[7]), (N[2] = Z[0] * H[2] + Z[1] * H[5] + Z[2] * H[8]), (N[3] = Z[4] * H[0] + Z[5] * H[3] + Z[6] * H[6]), (N[4] = Z[4] * H[1] + Z[5] * H[4] + Z[6] * H[7]), (N[5] = Z[4] * H[2] + Z[5] * H[5] + Z[6] * H[8]), (N[6] = Z[8] * H[0] + Z[9] * H[3] + Z[10] * H[6]), (N[7] = Z[8] * H[1] + Z[9] * H[4] + Z[10] * H[7]), (N[8] = Z[8] * H[2] + Z[9] * H[5] + Z[10] * H[8]); } } else w.parentId = null; } else if (((B.x = k.x), (B.y = k.y), (B.z = k.z), this._computeParticleRotation || this.billboard)) { Z = i.m; (N[0] = Z[0]), (N[1] = Z[1]), (N[2] = Z[2]), (N[3] = Z[4]), (N[4] = Z[5]), (N[5] = Z[6]), (N[6] = Z[8]), (N[7] = Z[9]), (N[8] = Z[10]); } var q = f[11]; for (w.translateFromPivot ? q.setAll(0) : q.copyFrom(G), A = 0; A < L.length; A++) { (x = T + 3 * A), (S = O + 4 * A), (E = M + 2 * A), (C = f[0]).copyFrom(L[A]), this._computeParticleVertex && this.updateParticleVertex(w, C, A); var Q = C.x * j.x - G.x, J = C.y * j.y - G.y, $ = C.z * j.z - G.z; (Y = Q * N[0] + J * N[3] + $ * N[6]), (X = Q * N[1] + J * N[4] + $ * N[7]), (K = Q * N[2] + J * N[5] + $ * N[8]); (Y += q.x), (X += q.y), (K += q.z); var ee = (c[x] = B.x + m.x * Y + g.x * X + b.x * K), te = (c[x + 1] = B.y + m.y * Y + g.y * X + b.y * K), ne = (c[x + 2] = B.z + m.z * Y + g.z * X + b.z * K); if ((this._computeBoundingBox && (_.minimizeInPlaceFromFloats(ee, te, ne), v.maximizeInPlaceFromFloats(ee, te, ne)), !this._computeParticleVertex)) { var ie = p[x], re = p[x + 1], oe = p[x + 2], ae = ie * N[0] + re * N[3] + oe * N[6], se = ie * N[1] + re * N[4] + oe * N[7], ce = ie * N[2] + re * N[5] + oe * N[8]; (l[x] = m.x * ae + g.x * se + b.x * ce), (l[x + 1] = m.y * ae + g.y * se + b.y * ce), (l[x + 2] = m.z * ae + g.z * se + b.z * ce); } if (this._computeParticleColor && w.color) { var le = w.color, ue = this._colors32; (ue[S] = le.r), (ue[S + 1] = le.g), (ue[S + 2] = le.b), (ue[S + 3] = le.a); } if (this._computeParticleTexture) { var he = w.uvs; (u[E] = F[2 * A] * (he.z - he.x) + he.x), (u[E + 1] = F[2 * A + 1] * (he.w - he.y) + he.y); } } } else for (w._stillInvisible = !0, A = 0; A < L.length; A++) { if (((S = O + 4 * A), (E = M + 2 * A), (c[(x = T + 3 * A)] = c[x + 1] = c[x + 2] = 0), (l[x] = l[x + 1] = l[x + 2] = 0), this._computeParticleColor && w.color)) { le = w.color; (s[S] = le.r), (s[S + 1] = le.g), (s[S + 2] = le.b), (s[S + 3] = le.a); } if (this._computeParticleTexture) { he = w.uvs; (u[E] = F[2 * A] * (he.z - he.x) + he.x), (u[E + 1] = F[2 * A + 1] * (he.w - he.y) + he.y); } } if (this._particlesIntersect) { var de = w._boundingInfo, pe = de.boundingBox, fe = de.boundingSphere, me = w._modelBoundingInfo; if (!this._bSphereOnly) { var ge = me.boundingBox.vectors, be = f[1], _e = f[2]; be.setAll(Number.MAX_VALUE), _e.setAll(-Number.MAX_VALUE); for (var ve = 0; ve < 8; ve++) { var ye = ge[ve].x * j.x, Ce = ge[ve].y * j.y, Pe = ge[ve].z * j.z, xe = ((Y = ye * N[0] + Ce * N[3] + Pe * N[6]), (X = ye * N[1] + Ce * N[4] + Pe * N[7]), (K = ye * N[2] + Ce * N[5] + Pe * N[8]), k.x + m.x * Y + g.x * X + b.x * K), Te = k.y + m.y * Y + g.y * X + b.y * K, Se = k.z + m.z * Y + g.z * X + b.z * K; be.minimizeInPlaceFromFloats(xe, Te, Se), _e.maximizeInPlaceFromFloats(xe, Te, Se); } pe.reConstruct(be, _e, o._worldMatrix); } var Oe = me.minimum.multiplyToRef(j, f[1]), Ee = me.maximum.multiplyToRef(j, f[2]), Me = Ee.addToRef(Oe, f[3]).scaleInPlace(0.5).addInPlace(B), Ae = Ee.subtractToRef(Oe, f[4]).scaleInPlace(0.5 * this._bSphereRadiusFactor), Ie = Me.subtractToRef(Ae, f[1]), De = Me.addToRef(Ae, f[2]); fe.reConstruct(Ie, De, o._worldMatrix); } (T = x + 3), (O = S + 4), (M = E + 2); } } if (n) { if ( (this._computeParticleColor && o.updateVerticesData(wn.b.ColorKind, s, !1, !1), this._computeParticleTexture && o.updateVerticesData(wn.b.UVKind, u, !1, !1), o.updateVerticesData(wn.b.PositionKind, c, !1, !1), !o.areNormalsFrozen || o.isFacetDataEnabled) ) { if (this._computeParticleVertex || o.isFacetDataEnabled) { var Re = o.isFacetDataEnabled ? o.getFacetDataParameters() : null; Rn.a.ComputeNormals(c, h, l, Re); for (var we = 0; we < l.length; we++) p[we] = l[we]; } o.areNormalsFrozen || o.updateVerticesData(wn.b.NormalKind, l, !1, !1); } if (this._depthSort && this._depthSortParticles) { var Le = this.depthSortedParticles; Le.sort(this._depthSortFunction); for (var Fe = Le.length, Ne = 0, ke = 0; ke < Fe; ke++) { var ze = Le[ke].indicesLength, je = Le[ke].ind; for (we = 0; we < ze; we++) (h[Ne] = d[je + we]), Ne++; } o.updateIndices(h); } } return ( this._computeBoundingBox && (o._boundingInfo ? o._boundingInfo.reConstruct(_, v, o._worldMatrix) : (o._boundingInfo = new ti.a(_, v, o._worldMatrix))), this._autoUpdateSubMeshes && this.computeSubMeshes(), this.afterUpdateParticles(e, t, n), this ); }), (e.prototype.dispose = function () { this.mesh.dispose(), (this.vars = null), (this._positions = null), (this._indices = null), (this._normals = null), (this._uvs = null), (this._colors = null), (this._indices32 = null), (this._positions32 = null), (this._normals32 = null), (this._fixedNormal32 = null), (this._uvs32 = null), (this._colors32 = null), (this.pickedParticles = null); }), (e.prototype.getParticleById = function (e) { var t = this.particles[e]; if (t && t.id == e) return t; var n = this.particles, i = this._idxOfId[e]; if (void 0 !== i) return n[i]; for (var r = 0, o = this.nbParticles; r < o; ) { var a = n[r]; if (a.id == e) return a; r++; } return null; }), (e.prototype.getParticlesByShapeId = function (e) { var t = []; return this.getParticlesByShapeIdToRef(e, t), t; }), (e.prototype.getParticlesByShapeIdToRef = function (e, t) { t.length = 0; for (var n = 0; n < this.nbParticles; n++) { var i = this.particles[n]; i.shapeId == e && t.push(i); } return this; }), (e.prototype.computeSubMeshes = function () { if (!this.mesh || !this._multimaterialEnabled) return this; var e = this.depthSortedParticles; if (this.particles.length > 0) for (var t = 0; t < this.particles.length; t++) { var n = this.particles[t]; n.materialIndex || (n.materialIndex = 0); var i = e[t]; (i.materialIndex = n.materialIndex), (i.ind = n._ind), (i.indicesLength = n._model._indicesLength); } this._sortParticlesByMaterial(); var r = this._indicesByMaterial, o = this._materialIndexes, a = this.mesh; a.subMeshes = []; for (var s = a.getTotalVertices(), c = 0; c < o.length; c++) { var l = r[c], u = r[c + 1] - l, h = o[c]; new Kc.b(h, 0, s, l, u, a); } return this; }), (e.prototype._sortParticlesByMaterial = function () { var e = [0]; this._indicesByMaterial = e; var t = []; this._materialIndexes = t; var n = this.depthSortedParticles; n.sort(this._materialSortFunction); var i = n.length, r = this._indices32, o = this._indices, a = 0, s = n[0].materialIndex; t.push(s); for (var c = 0; c < i; c++) { var l = n[c], u = l.indicesLength, h = l.ind; l.materialIndex !== s && ((s = l.materialIndex), e.push(a), t.push(s)); for (var d = 0; d < u; d++) (r[a] = o[h + d]), a++; } return e.push(r.length), this._updatable && this.mesh.updateIndices(r), this; }), (e.prototype._setMaterialIndexesById = function () { this._materialIndexesById = {}; for (var e = 0; e < this._materials.length; e++) { var t = this._materials[e].uniqueId; this._materialIndexesById[t] = e; } }), (e.prototype._filterUniqueMaterialId = function (e) { return e.filter(function (e, t, n) { return n.indexOf(e) === t; }); }), (e.prototype._setDefaultMaterial = function () { return this._defaultMaterial || (this._defaultMaterial = new Mn.a(this.name + "DefaultMaterial", this._scene)), this._defaultMaterial; }), (e.prototype.refreshVisibleSize = function () { return this._isVisibilityBoxLocked || this.mesh.refreshBoundingInfo(), this; }), (e.prototype.setVisibilityBox = function (e) { var t = e / 2; this.mesh._boundingInfo = new ti.a(new a.e(-t, -t, -t), new a.e(t, t, t)); }), Object.defineProperty(e.prototype, "isAlwaysVisible", { get: function () { return this._alwaysVisible; }, set: function (e) { (this._alwaysVisible = e), (this.mesh.alwaysSelectAsActiveMesh = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isVisibilityBoxLocked", { get: function () { return this._isVisibilityBoxLocked; }, set: function (e) { (this._isVisibilityBoxLocked = e), (this.mesh.getBoundingInfo().isLocked = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleRotation", { get: function () { return this._computeParticleRotation; }, set: function (e) { this._computeParticleRotation = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleColor", { get: function () { return this._computeParticleColor; }, set: function (e) { this._computeParticleColor = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleTexture", { get: function () { return this._computeParticleTexture; }, set: function (e) { this._computeParticleTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleVertex", { get: function () { return this._computeParticleVertex; }, set: function (e) { this._computeParticleVertex = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeBoundingBox", { get: function () { return this._computeBoundingBox; }, set: function (e) { this._computeBoundingBox = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "depthSortParticles", { get: function () { return this._depthSortParticles; }, set: function (e) { this._depthSortParticles = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "expandable", { get: function () { return this._expandable; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "multimaterialEnabled", { get: function () { return this._multimaterialEnabled; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "useModelMaterial", { get: function () { return this._useModelMaterial; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "materials", { get: function () { return this._materials; }, enumerable: !0, configurable: !0, }), (e.prototype.setMultiMaterial = function (e) { (this._materials = this._filterUniqueMaterialId(e)), this._setMaterialIndexesById(), this._multimaterial && this._multimaterial.dispose(), (this._multimaterial = new Ta.a(this.name + "MultiMaterial", this._scene)); for (var t = 0; t < this._materials.length; t++) this._multimaterial.subMaterials.push(this._materials[t]); this.computeSubMeshes(), (this.mesh.material = this._multimaterial); }), Object.defineProperty(e.prototype, "multimaterial", { get: function () { return this._multimaterial; }, set: function (e) { this._multimaterial = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "autoUpdateSubMeshes", { get: function () { return this._autoUpdateSubMeshes; }, set: function (e) { this._autoUpdateSubMeshes = e; }, enumerable: !0, configurable: !0, }), (e.prototype.initParticles = function () {}), (e.prototype.recycleParticle = function (e) { return e; }), (e.prototype.updateParticle = function (e) { return e; }), (e.prototype.updateParticleVertex = function (e, t, n) { return t; }), (e.prototype.beforeUpdateParticles = function (e, t, n) {}), (e.prototype.afterUpdateParticles = function (e, t, n) {}), e ); })(), pu = (function () { function e(e, t, n, i, r) { (this.idx = 0), (this.color = new s.b(1, 1, 1, 1)), (this.position = a.e.Zero()), (this.rotation = a.e.Zero()), (this.uv = new a.d(0, 0)), (this.velocity = a.e.Zero()), (this.pivot = a.e.Zero()), (this.translateFromPivot = !1), (this._pos = 0), (this._ind = 0), (this.groupId = 0), (this.idxInGroup = 0), (this._stillInvisible = !1), (this._rotationMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]), (this.parentId = null), (this._globalPosition = a.e.Zero()), (this.idx = e), (this._group = t), (this.groupId = n), (this.idxInGroup = i), (this._pcs = r); } return ( Object.defineProperty(e.prototype, "size", { get: function () { return this.size; }, set: function (e) { this.size = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "quaternion", { get: function () { return this.rotationQuaternion; }, set: function (e) { this.rotationQuaternion = e; }, enumerable: !0, configurable: !0, }), (e.prototype.intersectsMesh = function (e, t) { if (!e._boundingInfo) return !1; if ((t = t || !1)) return e.getBoundingInfo().boundingSphere.intersectsPoint(this.position.add(this._pcs.mesh.position)); var n, i, r, o, a, s; (n = e.getBoundingInfo().boundingBox.maximumWorld.x), (i = e.getBoundingInfo().boundingBox.minimumWorld.x), (r = e.getBoundingInfo().boundingBox.maximumWorld.y), (o = e.getBoundingInfo().boundingBox.minimumWorld.y), (a = e.getBoundingInfo().boundingBox.maximumWorld.z), (s = e.getBoundingInfo().boundingBox.minimumWorld.z); var c = this.position.x + this._pcs.mesh.position.x, l = this.position.y + this._pcs.mesh.position.y, u = this.position.z + this._pcs.mesh.position.z; return i <= c && c <= n && o <= l && l <= r && s <= u && u <= a; }), (e.prototype.getRotationMatrix = function (e) { var t; if (this.rotationQuaternion) t = this.rotationQuaternion; else { t = a.c.Quaternion[0]; var n = this.rotation; a.b.RotationYawPitchRollToRef(n.y, n.x, n.z, t); } t.toRotationMatrix(e); }), e ); })(), fu = function (e, t) { (this.groupID = e), (this._positionFunction = t); }; !(function (e) { (e[(e.Color = 2)] = "Color"), (e[(e.UV = 1)] = "UV"), (e[(e.Random = 0)] = "Random"), (e[(e.Stated = 3)] = "Stated"); })(su || (su = {})); var mu = (function () { function e(e, t, n, i) { (this.particles = new Array()), (this.nbParticles = 0), (this.counter = 0), (this.vars = {}), (this._promises = []), (this._positions = new Array()), (this._indices = new Array()), (this._normals = new Array()), (this._colors = new Array()), (this._uvs = new Array()), (this._updatable = !0), (this._isVisibilityBoxLocked = !1), (this._alwaysVisible = !1), (this._groups = new Array()), (this._groupCounter = 0), (this._computeParticleColor = !0), (this._computeParticleTexture = !0), (this._computeParticleRotation = !0), (this._computeBoundingBox = !1), (this._isReady = !1), (this.name = e), (this._size = t), (this._scene = n || E.a.LastCreatedScene), i && void 0 !== i.updatable ? (this._updatable = i.updatable) : (this._updatable = !0); } return ( (e.prototype.buildMeshAsync = function () { var e = this; return Promise.all(this._promises).then(function () { return (e._isReady = !0), e._buildMesh(); }); }), (e.prototype._buildMesh = function () { 0 === this.nbParticles && this.addPoints(1), (this._positions32 = new Float32Array(this._positions)), (this._uvs32 = new Float32Array(this._uvs)), (this._colors32 = new Float32Array(this._colors)); var e = new Rn.a(); e.set(this._positions32, wn.b.PositionKind), this._uvs32.length > 0 && e.set(this._uvs32, wn.b.UVKind); var t = 0; this._colors32.length > 0 && ((t = 1), e.set(this._colors32, wn.b.ColorKind)); var n = new Ee.a(this.name, this._scene); e.applyToMesh(n, this._updatable), (this.mesh = n), (this._positions = null), (this._uvs = null), (this._colors = null), this._updatable || (this.particles.length = 0); var i = new Mn.a("point cloud material", this._scene); return ( (i.emissiveColor = new s.a(t, t, t)), (i.disableLighting = !0), (i.pointsCloud = !0), (i.pointSize = this._size), (n.material = i), new Promise(function (e) { return e(n); }) ); }), (e.prototype._addParticle = function (e, t, n, i) { var r = new pu(e, t, n, i, this); return this.particles.push(r), r; }), (e.prototype._randomUnitVector = function (e) { (e.position = new a.e(Math.random(), Math.random(), Math.random())), (e.color = new s.b(1, 1, 1, 1)); }), (e.prototype._getColorIndicesForCoord = function (e, t, n, i) { var r = e._groupImageData, o = n * (4 * i) + 4 * t, a = [o, o + 1, o + 2, o + 3], c = a[1], l = a[2], u = a[3], h = r[a[0]], d = r[c], p = r[l], f = r[u]; return new s.b(h / 255, d / 255, p / 255, f); }), (e.prototype._setPointsColorOrUV = function (e, t, n, i, r, o, c) { n && e.updateFacetData(); var l = 2 * e.getBoundingInfo().boundingSphere.radius, u = e.getVerticesData(wn.b.PositionKind), h = e.getIndices(), d = e.getVerticesData(wn.b.UVKind), p = e.getVerticesData(wn.b.ColorKind), f = a.e.Zero(); e.computeWorldMatrix(); var m = e.getWorldMatrix(); if (!m.isIdentity()) for (var g = 0; g < u.length / 3; g++) a.e.TransformCoordinatesFromFloatsToRef(u[3 * g], u[3 * g + 1], u[3 * g + 2], m, f), (u[3 * g] = f.x), (u[3 * g + 1] = f.y), (u[3 * g + 2] = f.z); var b, _, v = 0, y = 0, C = 0, P = 0, x = 0, T = 0, S = 0, O = 0, E = 0, M = 0, A = 0, I = 0, D = 0, R = 0, w = a.e.Zero(), L = a.e.Zero(), F = a.e.Zero(), N = a.e.Zero(), k = a.e.Zero(), j = 0, B = 0, V = 0, G = 0, U = 0, H = 0, W = a.d.Zero(), X = a.d.Zero(), Y = a.d.Zero(), K = a.d.Zero(), Z = a.d.Zero(), q = 0, Q = 0, J = 0, $ = 0, ee = 0, te = 0, ne = 0, ie = 0, re = 0, oe = 0, ae = 0, se = 0, ce = a.f.Zero(), le = a.f.Zero(), ue = a.f.Zero(), he = a.f.Zero(), de = a.f.Zero(), pe = 0, fe = 0; c = c || 0; var me, ge = new a.f(0, 0, 0, 0), be = a.e.Zero(), _e = a.e.Zero(), ve = a.e.Zero(), ye = 0, Ce = a.e.Zero(), Pe = 0, xe = 0, Te = new Re(a.e.Zero(), new a.e(1, 0, 0)), Se = a.e.Zero(); for (y = 0; y < h.length / 3; y++) { var Oe, Ee, Me, Ae, Ie, De, we, Le; (C = h[3 * y]), (P = h[3 * y + 1]), (x = h[3 * y + 2]), (T = u[3 * C]), (S = u[3 * C + 1]), (O = u[3 * C + 2]), (E = u[3 * P]), (M = u[3 * P + 1]), (A = u[3 * P + 2]), (I = u[3 * x]), (D = u[3 * x + 1]), (R = u[3 * x + 2]), w.set(T, S, O), L.set(E, M, A), F.set(I, D, R), L.subtractToRef(w, N), F.subtractToRef(L, k), d && ((j = d[2 * C]), (B = d[2 * C + 1]), (V = d[2 * P]), (G = d[2 * P + 1]), (U = d[2 * x]), (H = d[2 * x + 1]), W.set(j, B), X.set(V, G), Y.set(U, H), X.subtractToRef(W, K), Y.subtractToRef(X, Z)), p && i && ((q = p[4 * C]), (Q = p[4 * C + 1]), (J = p[4 * C + 2]), ($ = p[4 * C + 3]), (ee = p[4 * P]), (te = p[4 * P + 1]), (ne = p[4 * P + 2]), (ie = p[4 * P + 3]), (re = p[4 * x]), (oe = p[4 * x + 1]), (ae = p[4 * x + 2]), (se = p[4 * x + 3]), ce.set(q, Q, J, $), le.set(ee, te, ne, ie), ue.set(re, oe, ae, se), le.subtractToRef(ce, he), ue.subtractToRef(le, de)); for (var Fe, Ne, ke = new s.a(0, 0, 0), ze = new s.a(0, 0, 0), je = 0; je < t._groupDensity[y]; je++) (v = this.particles.length), this._addParticle(v, t, this._groupCounter, y + je), (Ne = this.particles[v]), (pe = z.a.RandomRange(0, 1)), (fe = z.a.RandomRange(0, 1)), (b = w.add(N.scale(pe)).add(k.scale(pe * fe))), n && ((be = e.getFacetNormal(y).normalize().scale(-1)), (_e = N.clone().normalize()), (ve = a.e.Cross(be, _e)), (ye = z.a.RandomRange(0, 2 * Math.PI)), (Ce = _e.scale(Math.cos(ye)).add(ve.scale(Math.sin(ye)))), (ye = z.a.RandomRange(0.1, Math.PI / 2)), (Se = Ce.scale(Math.cos(ye)).add(be.scale(Math.sin(ye)))), (Te.origin = b.add(Se.scale(1e-5))), (Te.direction = Se), (Te.length = l), (me = Te.intersectsMesh(e)).hit && ((xe = me.pickedPoint.subtract(b).length()), (Pe = z.a.RandomRange(0, 1) * xe), b.addInPlace(Se.scale(Pe)))), (Ne.position = b.clone()), this._positions.push(Ne.position.x, Ne.position.y, Ne.position.z), void 0 !== i ? d && ((_ = W.add(K.scale(pe)).add(Z.scale(pe * fe))), i ? r && null !== t._groupImageData ? ((Oe = t._groupImgWidth), (Ee = t._groupImgHeight), (Fe = this._getColorIndicesForCoord(t, Math.round(_.x * Oe), Math.round(_.y * Ee), Oe)), (Ne.color = Fe), this._colors.push(Fe.r, Fe.g, Fe.b, Fe.a)) : p ? ((ge = ce.add(he.scale(pe)).add(de.scale(pe * fe))), (Ne.color = new s.b(ge.x, ge.y, ge.z, ge.w)), this._colors.push(ge.x, ge.y, ge.z, ge.w)) : ((ge = ce.set(Math.random(), Math.random(), Math.random(), 1)), (Ne.color = new s.b(ge.x, ge.y, ge.z, ge.w)), this._colors.push(ge.x, ge.y, ge.z, ge.w)) : ((Ne.uv = _.clone()), this._uvs.push(Ne.uv.x, Ne.uv.y))) : (o ? (ke.set(o.r, o.g, o.b), (Me = z.a.RandomRange(-c, c)), (Ae = z.a.RandomRange(-c, c)), (Ie = (Le = ke.toHSV()).r), (De = Le.g + Me) < 0 && (De = 0), De > 1 && (De = 1), (we = Le.b + Ae) < 0 && (we = 0), we > 1 && (we = 1), s.a.HSVtoRGBToRef(Ie, De, we, ze), ge.set(ze.r, ze.g, ze.b, 1)) : (ge = ce.set(Math.random(), Math.random(), Math.random(), 1)), (Ne.color = new s.b(ge.x, ge.y, ge.z, ge.w)), this._colors.push(ge.x, ge.y, ge.z, ge.w)); } }), (e.prototype._colorFromTexture = function (e, t, n) { var i = this; if (null === e.material) return g.a.Warn(e.name + "has no material."), (t._groupImageData = null), void this._setPointsColorOrUV(e, t, n, !0, !1); var r = e.material.getActiveTextures(); if (0 === r.length) return g.a.Warn(e.name + "has no useable texture."), (t._groupImageData = null), void this._setPointsColorOrUV(e, t, n, !0, !1); var o = e.clone(); o.setEnabled(!1), this._promises.push( new Promise(function (e) { Cr.a.WhenAllReady(r, function () { var a = t._textureNb; return ( a < 0 && (a = 0), a > r.length - 1 && (a = r.length - 1), (t._groupImageData = r[a].readPixels()), (t._groupImgWidth = r[a].getSize().width), (t._groupImgHeight = r[a].getSize().height), i._setPointsColorOrUV(o, t, n, !0, !0), o.dispose(), e() ); }); }) ); }), (e.prototype._calculateDensity = function (e, t, n) { for ( var i, r, o, s, c, l, u, h, d, p, f, m, g, b, _, v, y, C = new Array(), P = a.e.Zero(), x = a.e.Zero(), T = a.e.Zero(), S = a.e.Zero(), O = a.e.Zero(), E = a.e.Zero(), M = new Array(), A = 0, I = n.length / 3, D = 0; D < I; D++ ) (i = n[3 * D]), (r = n[3 * D + 1]), (o = n[3 * D + 2]), (s = t[3 * i]), (c = t[3 * i + 1]), (l = t[3 * i + 2]), (u = t[3 * r]), (h = t[3 * r + 1]), (d = t[3 * r + 2]), (p = t[3 * o]), (f = t[3 * o + 1]), (m = t[3 * o + 2]), P.set(s, c, l), x.set(u, h, d), T.set(p, f, m), x.subtractToRef(P, S), T.subtractToRef(x, O), T.subtractToRef(P, E), (v = ((g = S.length()) + (b = O.length()) + (_ = E.length())) / 2), (A += y = Math.sqrt(v * (v - g) * (v - b) * (v - _))), (M[D] = y); var R = 0; for (D = 0; D < I; D++) (C[D] = Math.floor((e * M[D]) / A)), (R += C[D]); var w = e - R, L = Math.floor(w / I), F = w % I; L > 0 && (C = C.map(function (e) { return e + L; })); for (D = 0; D < F; D++) C[D] += 1; return C; }), (e.prototype.addPoints = function (e, t) { void 0 === t && (t = this._randomUnitVector); for (var n, i = new fu(this._groupCounter, t), r = this.nbParticles, o = 0; o < e; o++) (n = this._addParticle(r, i, this._groupCounter, o)), i && i._positionFunction && i._positionFunction(n, r, o), this._positions.push(n.position.x, n.position.y, n.position.z), n.color && this._colors.push(n.color.r, n.color.g, n.color.b, n.color.a), n.uv && this._uvs.push(n.uv.x, n.uv.y), r++; return (this.nbParticles += e), this._groupCounter++, this._groupCounter; }), (e.prototype.addSurfacePoints = function (e, t, n, i, r) { var o = n || su.Random; (isNaN(o) || o < 0 || o > 3) && (o = su.Random); var a = e.getVerticesData(wn.b.PositionKind), c = e.getIndices(); this._groups.push(this._groupCounter); var l = new fu(this._groupCounter, null); switch (((l._groupDensity = this._calculateDensity(t, a, c)), o === su.Color ? (l._textureNb = i || 0) : (i = i || new s.b(1, 1, 1, 1)), o)) { case su.Color: this._colorFromTexture(e, l, !1); break; case su.UV: this._setPointsColorOrUV(e, l, !1, !1, !1); break; case su.Random: this._setPointsColorOrUV(e, l, !1); break; case su.Stated: this._setPointsColorOrUV(e, l, !1, void 0, void 0, i, r); } return (this.nbParticles += t), this._groupCounter++, this._groupCounter - 1; }), (e.prototype.addVolumePoints = function (e, t, n, i, r) { var o = n || su.Random; (isNaN(o) || o < 0 || o > 3) && (o = su.Random); var a = e.getVerticesData(wn.b.PositionKind), c = e.getIndices(); this._groups.push(this._groupCounter); var l = new fu(this._groupCounter, null); switch (((l._groupDensity = this._calculateDensity(t, a, c)), o === su.Color ? (l._textureNb = i || 0) : (i = i || new s.b(1, 1, 1, 1)), o)) { case su.Color: this._colorFromTexture(e, l, !0); break; case su.UV: this._setPointsColorOrUV(e, l, !0, !1, !1); break; case su.Random: this._setPointsColorOrUV(e, l, !0); break; case su.Stated: this._setPointsColorOrUV(e, l, !0, void 0, void 0, i, r); } return (this.nbParticles += t), this._groupCounter++, this._groupCounter - 1; }), (e.prototype.setParticles = function (e, t, n) { if ((void 0 === e && (e = 0), void 0 === t && (t = this.nbParticles - 1), void 0 === n && (n = !0), !this._updatable || !this._isReady)) return this; this.beforeUpdateParticles(e, t, n); var i = a.c.Matrix[0], r = this.mesh, o = this._colors32, s = this._positions32, c = this._uvs32, l = a.c.Vector3, u = l[5].copyFromFloats(1, 0, 0), h = l[6].copyFromFloats(0, 1, 0), d = l[7].copyFromFloats(0, 0, 1), p = l[8].setAll(Number.MAX_VALUE), f = l[9].setAll(-Number.MAX_VALUE); a.a.IdentityToRef(i); var m = 0; if ((this.mesh.isFacetDataEnabled && (this._computeBoundingBox = !0), (t = t >= this.nbParticles ? this.nbParticles - 1 : t), this._computeBoundingBox && (0 != e || t != this.nbParticles - 1))) { var g = this.mesh._boundingInfo; g && (p.copyFrom(g.minimum), f.copyFrom(g.maximum)); } m = 0; for (var b = 0, _ = 0, v = 0, y = e; y <= t; y++) { var C = this.particles[y]; (b = 3 * (m = C.idx)), (_ = 4 * m), (v = 2 * m), this.updateParticle(C); var P = C._rotationMatrix, x = C.position, T = C._globalPosition; if ((this._computeParticleRotation && C.getRotationMatrix(i), null !== C.parentId)) { var S = this.particles[C.parentId], O = S._rotationMatrix, E = S._globalPosition, M = x.x * O[1] + x.y * O[4] + x.z * O[7], A = x.x * O[0] + x.y * O[3] + x.z * O[6], I = x.x * O[2] + x.y * O[5] + x.z * O[8]; if (((T.x = E.x + A), (T.y = E.y + M), (T.z = E.z + I), this._computeParticleRotation)) { var D = i.m; (P[0] = D[0] * O[0] + D[1] * O[3] + D[2] * O[6]), (P[1] = D[0] * O[1] + D[1] * O[4] + D[2] * O[7]), (P[2] = D[0] * O[2] + D[1] * O[5] + D[2] * O[8]), (P[3] = D[4] * O[0] + D[5] * O[3] + D[6] * O[6]), (P[4] = D[4] * O[1] + D[5] * O[4] + D[6] * O[7]), (P[5] = D[4] * O[2] + D[5] * O[5] + D[6] * O[8]), (P[6] = D[8] * O[0] + D[9] * O[3] + D[10] * O[6]), (P[7] = D[8] * O[1] + D[9] * O[4] + D[10] * O[7]), (P[8] = D[8] * O[2] + D[9] * O[5] + D[10] * O[8]); } } else if (((T.x = 0), (T.y = 0), (T.z = 0), this._computeParticleRotation)) { D = i.m; (P[0] = D[0]), (P[1] = D[1]), (P[2] = D[2]), (P[3] = D[4]), (P[4] = D[5]), (P[5] = D[6]), (P[6] = D[8]), (P[7] = D[9]), (P[8] = D[10]); } var R = l[11]; C.translateFromPivot ? R.setAll(0) : R.copyFrom(C.pivot); var w = l[0]; w.copyFrom(C.position); var L = w.x - C.pivot.x, F = w.y - C.pivot.y, N = w.z - C.pivot.z, k = L * P[0] + F * P[3] + N * P[6], z = L * P[1] + F * P[4] + N * P[7], j = L * P[2] + F * P[5] + N * P[8]; (k += R.x), (z += R.y), (j += R.z); var B = (s[b] = T.x + u.x * k + h.x * z + d.x * j), V = (s[b + 1] = T.y + u.y * k + h.y * z + d.y * j), G = (s[b + 2] = T.z + u.z * k + h.z * z + d.z * j); if ((this._computeBoundingBox && (p.minimizeInPlaceFromFloats(B, V, G), f.maximizeInPlaceFromFloats(B, V, G)), this._computeParticleColor && C.color)) { var U = C.color, H = this._colors32; (H[_] = U.r), (H[_ + 1] = U.g), (H[_ + 2] = U.b), (H[_ + 3] = U.a); } if (this._computeParticleTexture && C.uv) { var W = C.uv, X = this._uvs32; (X[v] = W.x), (X[v + 1] = W.y); } } return ( n && (this._computeParticleColor && r.updateVerticesData(wn.b.ColorKind, o, !1, !1), this._computeParticleTexture && r.updateVerticesData(wn.b.UVKind, c, !1, !1), r.updateVerticesData(wn.b.PositionKind, s, !1, !1)), this._computeBoundingBox && (r._boundingInfo ? r._boundingInfo.reConstruct(p, f, r._worldMatrix) : (r._boundingInfo = new ti.a(p, f, r._worldMatrix))), this.afterUpdateParticles(e, t, n), this ); }), (e.prototype.dispose = function () { this.mesh.dispose(), (this.vars = null), (this._positions = null), (this._indices = null), (this._normals = null), (this._uvs = null), (this._colors = null), (this._indices32 = null), (this._positions32 = null), (this._uvs32 = null), (this._colors32 = null); }), (e.prototype.refreshVisibleSize = function () { return this._isVisibilityBoxLocked || this.mesh.refreshBoundingInfo(), this; }), (e.prototype.setVisibilityBox = function (e) { var t = e / 2; this.mesh._boundingInfo = new ti.a(new a.e(-t, -t, -t), new a.e(t, t, t)); }), Object.defineProperty(e.prototype, "isAlwaysVisible", { get: function () { return this._alwaysVisible; }, set: function (e) { (this._alwaysVisible = e), (this.mesh.alwaysSelectAsActiveMesh = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleRotation", { set: function (e) { this._computeParticleRotation = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleColor", { get: function () { return this._computeParticleColor; }, set: function (e) { this._computeParticleColor = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeParticleTexture", { get: function () { return this._computeParticleTexture; }, set: function (e) { this._computeParticleTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "computeBoundingBox", { get: function () { return this._computeBoundingBox; }, set: function (e) { this._computeBoundingBox = e; }, enumerable: !0, configurable: !0, }), (e.prototype.initParticles = function () {}), (e.prototype.recycleParticle = function (e) { return e; }), (e.prototype.updateParticle = function (e) { return e; }), (e.prototype.beforeUpdateParticles = function (e, t, n) {}), (e.prototype.afterUpdateParticles = function (e, t, n) {}), e ); })(); (ge.a.prototype.getPhysicsEngine = function () { return this._physicsEngine; }), (ge.a.prototype.enablePhysics = function (e, t) { if ((void 0 === e && (e = null), this._physicsEngine)) return !0; var n = this._getComponent(me.a.NAME_PHYSICSENGINE); n || ((n = new _u(this)), this._addComponent(n)); try { return (this._physicsEngine = new Aa(e, t)), (this._physicsTimeAccumulator = 0), !0; } catch (e) { return g.a.Error(e.message), !1; } }), (ge.a.prototype.disablePhysicsEngine = function () { this._physicsEngine && (this._physicsEngine.dispose(), (this._physicsEngine = null)); }), (ge.a.prototype.isPhysicsEnabled = function () { return void 0 !== this._physicsEngine; }), (ge.a.prototype.deleteCompoundImpostor = function (e) { var t = e.parts[0].mesh; t.physicsImpostor && (t.physicsImpostor.dispose(), (t.physicsImpostor = null)); }), (ge.a.prototype._advancePhysicsEngineStep = function (e) { if (this._physicsEngine) { var t = this._physicsEngine.getSubTimeStep(); if (t > 0) for (this._physicsTimeAccumulator += e; this._physicsTimeAccumulator > t; ) this.onBeforePhysicsObservable.notifyObservers(this), this._physicsEngine._step(t / 1e3), this.onAfterPhysicsObservable.notifyObservers(this), (this._physicsTimeAccumulator -= t); else this.onBeforePhysicsObservable.notifyObservers(this), this._physicsEngine._step(e / 1e3), this.onAfterPhysicsObservable.notifyObservers(this); } }), Object.defineProperty(ke.a.prototype, "physicsImpostor", { get: function () { return this._physicsImpostor; }, set: function (e) { var t = this; this._physicsImpostor !== e && (this._disposePhysicsObserver && this.onDisposeObservable.remove(this._disposePhysicsObserver), (this._physicsImpostor = e), e && (this._disposePhysicsObserver = this.onDisposeObservable.add(function () { t.physicsImpostor && (t.physicsImpostor.dispose(), (t.physicsImpostor = null)); }))); }, enumerable: !0, configurable: !0, }), (ke.a.prototype.getPhysicsImpostor = function () { return this.physicsImpostor; }), (ke.a.prototype.applyImpulse = function (e, t) { return this.physicsImpostor ? (this.physicsImpostor.applyImpulse(e, t), this) : this; }), (ke.a.prototype.setPhysicsLinkWith = function (e, t, n, i) { return this.physicsImpostor && e.physicsImpostor ? (this.physicsImpostor.createJoint(e.physicsImpostor, gi.HingeJoint, { mainPivot: t, connectedPivot: n, nativeParams: i }), this) : this; }); var gu, bu, _u = (function () { function e(e) { var t = this; (this.name = me.a.NAME_PHYSICSENGINE), (this.scene = e), (this.scene.onBeforePhysicsObservable = new o.c()), (this.scene.onAfterPhysicsObservable = new o.c()), (this.scene.getDeterministicFrameTime = function () { return t.scene._physicsEngine ? 1e3 * t.scene._physicsEngine.getTimeStep() : 1e3 / 60; }); } return ( (e.prototype.register = function () {}), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () { this.scene.onBeforePhysicsObservable.clear(), this.scene.onAfterPhysicsObservable.clear(), this.scene._physicsEngine && this.scene.disablePhysicsEngine(); }), e ); })(), vu = (function () { function e(e) { (this._scene = e), (this._physicsEngine = this._scene.getPhysicsEngine()), this._physicsEngine || g.a.Warn("Physics engine not enabled. Please enable the physics before you can use the methods."); } return ( (e.prototype.applyRadialExplosionImpulse = function (e, t, n, i) { if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call this method."), null; var r = this._physicsEngine.getImpostors(); if (0 === r.length) return null; "number" == typeof t && (((t = new Tu()).radius = t), (t.strength = n || t.strength), (t.falloff = i || t.falloff)); var o = new yu(this._scene, t), a = Array(); return ( r.forEach(function (t) { var n = o.getImpostorHitData(t, e); n && (t.applyImpulse(n.force, n.contactPoint), a.push({ impostor: t, hitData: n })); }), o.triggerAffectedImpostorsCallback(a), o.dispose(!1), o ); }), (e.prototype.applyRadialExplosionForce = function (e, t, n, i) { if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null; var r = this._physicsEngine.getImpostors(); if (0 === r.length) return null; "number" == typeof t && (((t = new Tu()).radius = t), (t.strength = n || t.strength), (t.falloff = i || t.falloff)); var o = new yu(this._scene, t), a = Array(); return ( r.forEach(function (t) { var n = o.getImpostorHitData(t, e); n && (t.applyForce(n.force, n.contactPoint), a.push({ impostor: t, hitData: n })); }), o.triggerAffectedImpostorsCallback(a), o.dispose(!1), o ); }), (e.prototype.gravitationalField = function (e, t, n, i) { if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null; if (0 === this._physicsEngine.getImpostors().length) return null; "number" == typeof t && (((t = new Tu()).radius = t), (t.strength = n || t.strength), (t.falloff = i || t.falloff)); var r = new Cu(this, this._scene, e, t); return r.dispose(!1), r; }), (e.prototype.updraft = function (e, t, n, i, r) { if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null; if (0 === this._physicsEngine.getImpostors().length) return null; "number" == typeof t && (((t = new Su()).radius = t), (t.strength = n || t.strength), (t.height = i || t.height), (t.updraftMode = r || t.updraftMode)); var o = new Pu(this._scene, e, t); return o.dispose(!1), o; }), (e.prototype.vortex = function (e, t, n, i) { if (!this._physicsEngine) return g.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."), null; if (0 === this._physicsEngine.getImpostors().length) return null; "number" == typeof t && (((t = new Ou()).radius = t), (t.strength = n || t.strength), (t.height = i || t.height)); var r = new xu(this._scene, e, t); return r.dispose(!1), r; }), e ); })(), yu = (function () { function e(e, t) { (this._scene = e), (this._options = t), (this._dataFetched = !1), (this._options = Object(h.a)(Object(h.a)({}, new Tu()), this._options)); } return ( (e.prototype.getData = function () { return (this._dataFetched = !0), { sphere: this._sphere }; }), (e.prototype.getImpostorHitData = function (e, t) { if (0 === e.mass) return null; if (!this._intersectsWithSphere(e, t, this._options.radius)) return null; if ("Mesh" !== e.object.getClassName() && "InstancedMesh" !== e.object.getClassName()) return null; var n = e.getObjectCenter().subtract(t), i = new Re(t, n, this._options.radius).intersectsMesh(e.object).pickedPoint; if (!i) return null; var r = a.e.Distance(t, i); if (r > this._options.radius) return null; var o = this._options.falloff === gu.Constant ? this._options.strength : this._options.strength * (1 - r / this._options.radius); return { force: n.multiplyByFloats(o, o, o), contactPoint: i, distanceFromOrigin: r }; }), (e.prototype.triggerAffectedImpostorsCallback = function (e) { this._options.affectedImpostorsCallback && this._options.affectedImpostorsCallback(e); }), (e.prototype.dispose = function (e) { var t = this; void 0 === e && (e = !0), e ? this._sphere.dispose() : setTimeout(function () { t._dataFetched || t._sphere.dispose(); }, 0); }), (e.prototype._prepareSphere = function () { this._sphere || ((this._sphere = mi.CreateSphere("radialExplosionEventSphere", this._options.sphere, this._scene)), (this._sphere.isVisible = !1)); }), (e.prototype._intersectsWithSphere = function (e, t, n) { var i = e.object; return ( this._prepareSphere(), (this._sphere.position = t), (this._sphere.scaling = new a.e(2 * n, 2 * n, 2 * n)), this._sphere._updateBoundingInfo(), this._sphere.computeWorldMatrix(!0), this._sphere.intersectsMesh(i, !0) ); }), e ); })(), Cu = (function () { function e(e, t, n, i) { (this._physicsHelper = e), (this._scene = t), (this._origin = n), (this._options = i), (this._dataFetched = !1), (this._options = Object(h.a)(Object(h.a)({}, new Tu()), this._options)), (this._tickCallback = this._tick.bind(this)), (this._options.strength = -1 * this._options.strength); } return ( (e.prototype.getData = function () { return (this._dataFetched = !0), { sphere: this._sphere }; }), (e.prototype.enable = function () { this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback); }), (e.prototype.disable = function () { this._scene.unregisterBeforeRender(this._tickCallback); }), (e.prototype.dispose = function (e) { var t = this; void 0 === e && (e = !0), e ? this._sphere.dispose() : setTimeout(function () { t._dataFetched || t._sphere.dispose(); }, 0); }), (e.prototype._tick = function () { if (this._sphere) this._physicsHelper.applyRadialExplosionForce(this._origin, this._options); else { var e = this._physicsHelper.applyRadialExplosionForce(this._origin, this._options); e && (this._sphere = e.getData().sphere.clone("radialExplosionEventSphereClone")); } }), e ); })(), Pu = (function () { function e(e, t, n) { (this._scene = e), (this._origin = t), (this._options = n), (this._originTop = a.e.Zero()), (this._originDirection = a.e.Zero()), (this._cylinderPosition = a.e.Zero()), (this._dataFetched = !1), (this._physicsEngine = this._scene.getPhysicsEngine()), (this._options = Object(h.a)(Object(h.a)({}, new Su()), this._options)), this._origin.addToRef(new a.e(0, this._options.height / 2, 0), this._cylinderPosition), this._origin.addToRef(new a.e(0, this._options.height, 0), this._originTop), this._options.updraftMode === bu.Perpendicular && (this._originDirection = this._origin.subtract(this._originTop).normalize()), (this._tickCallback = this._tick.bind(this)), this._prepareCylinder(); } return ( (e.prototype.getData = function () { return (this._dataFetched = !0), { cylinder: this._cylinder }; }), (e.prototype.enable = function () { this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback); }), (e.prototype.disable = function () { this._scene.unregisterBeforeRender(this._tickCallback); }), (e.prototype.dispose = function (e) { var t = this; void 0 === e && (e = !0), this._cylinder && (e ? this._cylinder.dispose() : setTimeout(function () { t._dataFetched || t._cylinder.dispose(); }, 0)); }), (e.prototype.getImpostorHitData = function (e) { if (0 === e.mass) return null; if (!this._intersectsWithCylinder(e)) return null; var t = e.getObjectCenter(); if (this._options.updraftMode === bu.Perpendicular) var n = this._originDirection; else n = t.subtract(this._originTop); var i = a.e.Distance(this._origin, t), r = -1 * this._options.strength; return { force: n.multiplyByFloats(r, r, r), contactPoint: t, distanceFromOrigin: i }; }), (e.prototype._tick = function () { var e = this; this._physicsEngine.getImpostors().forEach(function (t) { var n = e.getImpostorHitData(t); n && t.applyForce(n.force, n.contactPoint); }); }), (e.prototype._prepareCylinder = function () { this._cylinder || ((this._cylinder = jn.CreateCylinder("updraftEventCylinder", { height: this._options.height, diameter: 2 * this._options.radius }, this._scene)), (this._cylinder.isVisible = !1)); }), (e.prototype._intersectsWithCylinder = function (e) { var t = e.object; return (this._cylinder.position = this._cylinderPosition), this._cylinder.intersectsMesh(t, !0); }), e ); })(), xu = (function () { function e(e, t, n) { (this._scene = e), (this._origin = t), (this._options = n), (this._originTop = a.e.Zero()), (this._cylinderPosition = a.e.Zero()), (this._dataFetched = !1), (this._physicsEngine = this._scene.getPhysicsEngine()), (this._options = Object(h.a)(Object(h.a)({}, new Ou()), this._options)), this._origin.addToRef(new a.e(0, this._options.height / 2, 0), this._cylinderPosition), this._origin.addToRef(new a.e(0, this._options.height, 0), this._originTop), (this._tickCallback = this._tick.bind(this)), this._prepareCylinder(); } return ( (e.prototype.getData = function () { return (this._dataFetched = !0), { cylinder: this._cylinder }; }), (e.prototype.enable = function () { this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback); }), (e.prototype.disable = function () { this._scene.unregisterBeforeRender(this._tickCallback); }), (e.prototype.dispose = function (e) { var t = this; void 0 === e && (e = !0), e ? this._cylinder.dispose() : setTimeout(function () { t._dataFetched || t._cylinder.dispose(); }, 0); }), (e.prototype.getImpostorHitData = function (e) { if (0 === e.mass) return null; if (!this._intersectsWithCylinder(e)) return null; if ("Mesh" !== e.object.getClassName() && "InstancedMesh" !== e.object.getClassName()) return null; var t = e.getObjectCenter(), n = new a.e(this._origin.x, t.y, this._origin.z), i = t.subtract(n), r = new Re(n, i, this._options.radius).intersectsMesh(e.object), o = r.pickedPoint; if (!o) return null; var s = r.distance / this._options.radius, c = o.normalize(); if ((s > this._options.centripetalForceThreshold && (c = c.negate()), s > this._options.centripetalForceThreshold)) var l = c.x * this._options.centripetalForceMultiplier, u = c.y * this._options.updraftForceMultiplier, h = c.z * this._options.centripetalForceMultiplier; else { var d = a.e.Cross(n, t).normalize(); (l = (d.x + c.x) * this._options.centrifugalForceMultiplier), (u = this._originTop.y * this._options.updraftForceMultiplier), (h = (d.z + c.z) * this._options.centrifugalForceMultiplier); } var p = new a.e(l, u, h); return { force: (p = p.multiplyByFloats(this._options.strength, this._options.strength, this._options.strength)), contactPoint: t, distanceFromOrigin: s }; }), (e.prototype._tick = function () { var e = this; this._physicsEngine.getImpostors().forEach(function (t) { var n = e.getImpostorHitData(t); n && t.applyForce(n.force, n.contactPoint); }); }), (e.prototype._prepareCylinder = function () { this._cylinder || ((this._cylinder = jn.CreateCylinder("vortexEventCylinder", { height: this._options.height, diameter: 2 * this._options.radius }, this._scene)), (this._cylinder.isVisible = !1)); }), (e.prototype._intersectsWithCylinder = function (e) { var t = e.object; return (this._cylinder.position = this._cylinderPosition), this._cylinder.intersectsMesh(t, !0); }), e ); })(), Tu = function () { (this.radius = 5), (this.strength = 10), (this.falloff = gu.Constant), (this.sphere = { segments: 32, diameter: 1 }); }, Su = function () { (this.radius = 5), (this.strength = 10), (this.height = 10), (this.updraftMode = bu.Center); }, Ou = function () { (this.radius = 5), (this.strength = 10), (this.height = 10), (this.centripetalForceThreshold = 0.7), (this.centripetalForceMultiplier = 5), (this.centrifugalForceMultiplier = 0.5), (this.updraftForceMultiplier = 0.02); }; !(function (e) { (e[(e.Constant = 0)] = "Constant"), (e[(e.Linear = 1)] = "Linear"); })(gu || (gu = {})), (function (e) { (e[(e.Center = 0)] = "Center"), (e[(e.Perpendicular = 1)] = "Perpendicular"); })(bu || (bu = {})); var Eu = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float degree;\nvoid main(void)\n{\nvec3 color=texture2D(textureSampler,vUV).rgb;\nfloat luminance=dot(color,vec3(0.3,0.59,0.11));\nvec3 blackAndWhite=vec3(luminance,luminance,luminance);\ngl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);\n}"; Xt.a.ShadersStore.blackAndWhitePixelShader = Eu; var Mu = (function (e) { function t(t, n, i, r, o, a) { var s = e.call(this, t, "blackAndWhite", ["degree"], null, n, i, r, o, a) || this; return ( (s.degree = 1), s.onApplyObservable.add(function (e) { e.setFloat("degree", s.degree); }), s ); } return Object(h.d)(t, e), t; })(Wt.a), Au = (function () { function e(e, t, n, i) { (this._name = t), (this._singleInstance = i || !0), (this._getPostProcesses = n), (this._cameras = {}), (this._indicesForCamera = {}), (this._postProcesses = {}); } return ( Object.defineProperty(e.prototype, "isSupported", { get: function () { for (var e in this._postProcesses) if (this._postProcesses.hasOwnProperty(e)) for (var t = this._postProcesses[e], n = 0; n < t.length; n++) if (!t[n].isSupported) return !1; return !0; }, enumerable: !0, configurable: !0, }), (e.prototype._update = function () {}), (e.prototype._attachCameras = function (e) { var t, n = this, i = $e.b.MakeArray(e || this._cameras); if (i) for (var r = 0; r < i.length; r++) { var o = i[r], a = o.name; if (((t = this._singleInstance ? 0 : a), !this._postProcesses[t])) { var s = this._getPostProcesses(); s && (this._postProcesses[t] = Array.isArray(s) ? s : [s]); } this._indicesForCamera[a] || (this._indicesForCamera[a] = []), this._postProcesses[t].forEach(function (e) { var t = o.attachPostProcess(e); n._indicesForCamera[a].push(t); }), this._cameras[a] || (this._cameras[a] = o); } }), (e.prototype._detachCameras = function (e) { var t = $e.b.MakeArray(e || this._cameras); if (t) for (var n = 0; n < t.length; n++) { var i = t[n], r = i.name, o = this._postProcesses[this._singleInstance ? 0 : r]; o && o.forEach(function (e) { i.detachPostProcess(e); }), this._cameras[r] && (this._cameras[r] = null); } }), (e.prototype._enable = function (e) { var t = this, n = $e.b.MakeArray(e || this._cameras); if (n) for (var i = 0; i < n.length; i++) for (var r = n[i], o = r.name, a = 0; a < this._indicesForCamera[o].length; a++) (void 0 !== r._postProcesses[this._indicesForCamera[o][a]] && null !== r._postProcesses[this._indicesForCamera[o][a]]) || this._postProcesses[this._singleInstance ? 0 : o].forEach(function (e) { n[i].attachPostProcess(e, t._indicesForCamera[o][a]); }); }), (e.prototype._disable = function (e) { var t = $e.b.MakeArray(e || this._cameras); if (t) for (var n = 0; n < t.length; n++) { var i = t[n], r = i.name; this._postProcesses[this._singleInstance ? 0 : r].forEach(function (e) { i.detachPostProcess(e); }); } }), (e.prototype.getPostProcesses = function (e) { return this._singleInstance ? this._postProcesses[0] : e ? this._postProcesses[e.name] : null; }), e ); })(), Iu = "#include\n\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float threshold;\nuniform float exposure;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nfloat luma=getLuminance(gl_FragColor.rgb*exposure);\ngl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;\n}"; Xt.a.ShadersStore.extractHighlightsPixelShader = Iu; var Du = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === s && (s = 0), void 0 === c && (c = !1); var l = e.call(this, t, "extractHighlights", ["threshold", "exposure"], null, n, i, r, o, a, null, s, void 0, null, c) || this; return ( (l.threshold = 0.9), (l._exposure = 1), (l._inputPostProcess = null), l.onApplyObservable.add(function (e) { l._inputPostProcess && e.setTextureFromPostProcess("textureSampler", l._inputPostProcess), e.setFloat("threshold", Math.pow(l.threshold, j.b)), e.setFloat("exposure", l._exposure); }), l ); } return Object(h.d)(t, e), t; })(Wt.a), Ru = "uniform sampler2D textureSampler;\nuniform sampler2D bloomBlur;\nvarying vec2 vUV;\nuniform float bloomWeight;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nvec3 blurred=texture2D(bloomBlur,vUV).rgb;\ngl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight);\n}\n"; Xt.a.ShadersStore.bloomMergePixelShader = Ru; var wu = (function (e) { function t(t, n, i, r, o, a, s, c, l, u, h) { void 0 === u && (u = 0), void 0 === h && (h = !1); var d = e.call(this, t, "bloomMerge", ["bloomWeight"], ["circleOfConfusionSampler", "blurStep0", "blurStep1", "blurStep2", "bloomBlur"], o, a, s, c, l, null, u, void 0, null, !0) || this; return ( (d.weight = r), d.onApplyObservable.add(function (e) { e.setTextureFromPostProcess("textureSampler", n), e.setTextureFromPostProcessOutput("bloomBlur", i), e.setFloat("bloomWeight", d.weight); }), h || d.updateEffect(), d ); } return Object(h.d)(t, e), t; })(Wt.a), Lu = (function (e) { function t(t, n, i, r, o, s) { void 0 === o && (o = 0), void 0 === s && (s = !1); var c = e.call( this, t.getEngine(), "bloom", function () { return c._effects; }, !0 ) || this; return ( (c.bloomScale = n), (c._effects = []), (c._downscale = new Du("highlights", 1, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, s)), (c._blurX = new Er("horizontal blur", new a.d(1, 0), 10, n, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, void 0, s)), (c._blurX.alwaysForcePOT = !0), (c._blurX.autoClear = !1), (c._blurY = new Er("vertical blur", new a.d(0, 1), 10, n, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, void 0, s)), (c._blurY.alwaysForcePOT = !0), (c._blurY.autoClear = !1), (c.kernel = r), (c._effects = [c._downscale, c._blurX, c._blurY]), (c._merge = new wu("bloomMerge", c._downscale, c._blurY, i, n, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, o, s)), (c._merge.autoClear = !1), c._effects.push(c._merge), c ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "threshold", { get: function () { return this._downscale.threshold; }, set: function (e) { this._downscale.threshold = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "weight", { get: function () { return this._merge.weight; }, set: function (e) { this._merge.weight = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "kernel", { get: function () { return this._blurX.kernel / this.bloomScale; }, set: function (e) { (this._blurX.kernel = e * this.bloomScale), (this._blurY.kernel = e * this.bloomScale); }, enumerable: !0, configurable: !0, }), (t.prototype.disposeEffects = function (e) { for (var t = 0; t < this._effects.length; t++) this._effects[t].dispose(e); }), (t.prototype._updateEffects = function () { for (var e = 0; e < this._effects.length; e++) this._effects[e].updateEffect(); }), (t.prototype._isReady = function () { for (var e = 0; e < this._effects.length; e++) if (!this._effects[e].isReady()) return !1; return !0; }), t ); })(Au), Fu = "\nuniform sampler2D textureSampler;\n\nuniform float chromatic_aberration;\nuniform float radialIntensity;\nuniform vec2 direction;\nuniform vec2 centerPosition;\nuniform float screen_width;\nuniform float screen_height;\n\nvarying vec2 vUV;\nvoid main(void)\n{\nvec2 centered_screen_pos=vec2(vUV.x-centerPosition.x,vUV.y-centerPosition.y);\nvec2 directionOfEffect=direction;\nif(directionOfEffect.x == 0. && directionOfEffect.y == 0.){\ndirectionOfEffect=normalize(centered_screen_pos);\n}\nfloat radius2=centered_screen_pos.x*centered_screen_pos.x\n+centered_screen_pos.y*centered_screen_pos.y;\nfloat radius=sqrt(radius2);\nvec4 original=texture2D(textureSampler,vUV);\n\nvec3 ref_indices=vec3(-0.3,0.0,0.3);\nfloat ref_shiftX=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.x/screen_width;\nfloat ref_shiftY=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.y/screen_height;\n\nvec2 ref_coords_r=vec2(vUV.x+ref_indices.r*ref_shiftX,vUV.y+ref_indices.r*ref_shiftY*0.5);\nvec2 ref_coords_g=vec2(vUV.x+ref_indices.g*ref_shiftX,vUV.y+ref_indices.g*ref_shiftY*0.5);\nvec2 ref_coords_b=vec2(vUV.x+ref_indices.b*ref_shiftX,vUV.y+ref_indices.b*ref_shiftY*0.5);\noriginal.r=texture2D(textureSampler,ref_coords_r).r;\noriginal.g=texture2D(textureSampler,ref_coords_g).g;\noriginal.b=texture2D(textureSampler,ref_coords_b).b;\noriginal.a=clamp(texture2D(textureSampler,ref_coords_r).a+texture2D(textureSampler,ref_coords_g).a+texture2D(textureSampler,ref_coords_b).a,0.,1.);\ngl_FragColor=original;\n}"; Xt.a.ShadersStore.chromaticAberrationPixelShader = Fu; var Nu = (function (e) { function t(t, n, i, r, o, s, c, l, u, h) { void 0 === u && (u = 0), void 0 === h && (h = !1); var d = e.call(this, t, "chromaticAberration", ["chromatic_aberration", "screen_width", "screen_height", "direction", "radialIntensity", "centerPosition"], [], r, o, s, c, l, null, u, void 0, null, h) || this; return ( (d.aberrationAmount = 30), (d.radialIntensity = 0), (d.direction = new a.d(0.707, 0.707)), (d.centerPosition = new a.d(0.5, 0.5)), d.onApplyObservable.add(function (e) { e.setFloat("chromatic_aberration", d.aberrationAmount), e.setFloat("screen_width", n), e.setFloat("screen_height", i), e.setFloat("radialIntensity", d.radialIntensity), e.setFloat2("direction", d.direction.x, d.direction.y), e.setFloat2("centerPosition", d.centerPosition.x, d.centerPosition.y); }), d ); } return Object(h.d)(t, e), t; })(Wt.a), ku = "\nuniform sampler2D depthSampler;\n\nvarying vec2 vUV;\n\nuniform vec2 cameraMinMaxZ;\n\nuniform float focusDistance;\nuniform float cocPrecalculation;\nvoid main(void)\n{\nfloat depth=texture2D(depthSampler,vUV).r;\nfloat pixelDistance=(cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth)*1000.0;\nfloat coc=abs(cocPrecalculation* ((focusDistance-pixelDistance)/pixelDistance));\ncoc=clamp(coc,0.0,1.0);\ngl_FragColor=vec4(coc,depth,coc,1.0);\n}\n"; Xt.a.ShadersStore.circleOfConfusionPixelShader = ku; var zu = (function (e) { function t(t, n, i, r, o, a, s, c, l) { void 0 === c && (c = 0), void 0 === l && (l = !1); var u = e.call(this, t, "circleOfConfusion", ["cameraMinMaxZ", "focusDistance", "cocPrecalculation"], ["depthSampler"], i, r, o, a, s, null, c, void 0, null, l) || this; return ( (u.lensSize = 50), (u.fStop = 1.4), (u.focusDistance = 2e3), (u.focalLength = 50), (u._depthTexture = null), (u._depthTexture = n), u.onApplyObservable.add(function (e) { if (u._depthTexture) { e.setTexture("depthSampler", u._depthTexture); var t = ((u.lensSize / u.fStop) * u.focalLength) / (u.focusDistance - u.focalLength); e.setFloat("focusDistance", u.focusDistance), e.setFloat("cocPrecalculation", t), e.setFloat2("cameraMinMaxZ", u._depthTexture.activeCamera.minZ, u._depthTexture.activeCamera.maxZ); } else g.a.Warn("No depth texture set on CircleOfConfusionPostProcess"); }), u ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "depthTexture", { set: function (e) { this._depthTexture = e; }, enumerable: !0, configurable: !0, }), t ); })(Wt.a), ju = "\nuniform sampler2D textureSampler;\nuniform sampler2D colorTable;\n\nvarying vec2 vUV;\n\nconst float SLICE_COUNT=16.0;\n\nvec4 sampleAs3DTexture(sampler2D textureSampler,vec3 uv,float width) {\nfloat sliceSize=1.0/width;\nfloat slicePixelSize=sliceSize/width;\nfloat sliceInnerSize=slicePixelSize*(width-1.0);\nfloat zSlice0=min(floor(uv.z*width),width-1.0);\nfloat zSlice1=min(zSlice0+1.0,width-1.0);\nfloat xOffset=slicePixelSize*0.5+uv.x*sliceInnerSize;\nfloat s0=xOffset+(zSlice0*sliceSize);\nfloat s1=xOffset+(zSlice1*sliceSize);\nvec4 slice0Color=texture2D(textureSampler,vec2(s0,uv.y));\nvec4 slice1Color=texture2D(textureSampler,vec2(s1,uv.y));\nfloat zOffset=mod(uv.z*width,1.0);\nvec4 result=mix(slice0Color,slice1Color,zOffset);\nreturn result;\n}\nvoid main(void)\n{\nvec4 screen_color=texture2D(textureSampler,vUV);\ngl_FragColor=sampleAs3DTexture(colorTable,screen_color.rgb,SLICE_COUNT);\n}"; Xt.a.ShadersStore.colorCorrectionPixelShader = ju; var Bu = (function (e) { function t(t, n, i, r, o, a, s) { var c = e.call(this, t, "colorCorrection", null, ["colorTable"], i, r, o, a, s) || this; return ( (c._colorTableTexture = new ln.a(n, r.getScene(), !0, !1, ln.a.TRILINEAR_SAMPLINGMODE)), (c._colorTableTexture.anisotropicFilteringLevel = 1), (c._colorTableTexture.wrapU = ln.a.CLAMP_ADDRESSMODE), (c._colorTableTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), (c.onApply = function (e) { e.setTexture("colorTable", c._colorTableTexture); }), c ); } return Object(h.d)(t, e), t; })(Wt.a), Vu = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 screenSize;\nuniform float kernel[9];\nvoid main(void)\n{\nvec2 onePixel=vec2(1.0,1.0)/screenSize;\nvec4 colorSum =\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,-1))*kernel[0] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,-1))*kernel[1] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,-1))*kernel[2] +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0))*kernel[3] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,0))*kernel[4] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0))*kernel[5] +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,1))*kernel[6] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1))*kernel[7] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,1))*kernel[8];\nfloat kernelWeight =\nkernel[0] +\nkernel[1] +\nkernel[2] +\nkernel[3] +\nkernel[4] +\nkernel[5] +\nkernel[6] +\nkernel[7] +\nkernel[8];\nif (kernelWeight<=0.0) {\nkernelWeight=1.0;\n}\ngl_FragColor=vec4((colorSum/kernelWeight).rgb,1);\n}"; Xt.a.ShadersStore.convolutionPixelShader = Vu; var Gu = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === c && (c = 0); var l = e.call(this, t, "convolution", ["kernel", "screenSize"], null, i, r, o, a, s, null, c) || this; return ( (l.kernel = n), (l.onApply = function (e) { e.setFloat2("screenSize", l.width, l.height), e.setArray("kernel", l.kernel); }), l ); } return ( Object(h.d)(t, e), (t.EdgeDetect0Kernel = [1, 0, -1, 0, 0, 0, -1, 0, 1]), (t.EdgeDetect1Kernel = [0, 1, 0, 1, -4, 1, 0, 1, 0]), (t.EdgeDetect2Kernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1]), (t.SharpenKernel = [0, -1, 0, -1, 5, -1, 0, -1, 0]), (t.EmbossKernel = [-2, -1, 0, -1, 1, 1, 0, 1, 2]), (t.GaussianKernel = [0, 1, 0, 1, 1, 1, 0, 1, 0]), t ); })(Wt.a), Uu = (function (e) { function t(t, n, i, r, o, a, s, c, l, u, h, d, p) { void 0 === c && (c = null), void 0 === l && (l = ln.a.BILINEAR_SAMPLINGMODE), void 0 === d && (d = 0), void 0 === p && (p = !1); var f = e.call(this, t, i, r, o, a, (l = 2), u, h, (d = 0), "#define DOF 1\r\n", p) || this; return ( (f.direction = i), f.onApplyObservable.add(function (e) { null != c && e.setTextureFromPostProcess("textureSampler", c), e.setTextureFromPostProcessOutput("circleOfConfusionSampler", s), n.activeCamera && e.setFloat2("cameraMinMaxZ", n.activeCamera.minZ, n.activeCamera.maxZ); }), f ); } return Object(h.d)(t, e), t; })(Er), Hu = "uniform sampler2D textureSampler;\nvarying vec2 vUV;\nuniform sampler2D circleOfConfusionSampler;\nuniform sampler2D blurStep0;\n#if BLUR_LEVEL>0\nuniform sampler2D blurStep1;\n#endif\n#if BLUR_LEVEL>1\nuniform sampler2D blurStep2;\n#endif\nvoid main(void)\n{\nfloat coc=texture2D(circleOfConfusionSampler,vUV).r;\n#if BLUR_LEVEL == 0\nvec4 original=texture2D(textureSampler,vUV);\nvec4 blurred0=texture2D(blurStep0,vUV);\ngl_FragColor=mix(original,blurred0,coc);\n#endif\n#if BLUR_LEVEL == 1\nif(coc<0.5){\nvec4 original=texture2D(textureSampler,vUV);\nvec4 blurred1=texture2D(blurStep1,vUV);\ngl_FragColor=mix(original,blurred1,coc/0.5);\n}else{\nvec4 blurred0=texture2D(blurStep0,vUV);\nvec4 blurred1=texture2D(blurStep1,vUV);\ngl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);\n}\n#endif\n#if BLUR_LEVEL == 2\nif(coc<0.33){\nvec4 original=texture2D(textureSampler,vUV);\nvec4 blurred2=texture2D(blurStep2,vUV);\ngl_FragColor=mix(original,blurred2,coc/0.33);\n}else if(coc<0.66){\nvec4 blurred1=texture2D(blurStep1,vUV);\nvec4 blurred2=texture2D(blurStep2,vUV);\ngl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);\n}else{\nvec4 blurred0=texture2D(blurStep0,vUV);\nvec4 blurred1=texture2D(blurStep1,vUV);\ngl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);\n}\n#endif\n}\n"; Xt.a.ShadersStore.depthOfFieldMergePixelShader = Hu; var Wu, Xu = function () {}, Yu = (function (e) { function t(t, n, i, r, o, a, s, c, l, u, h) { void 0 === u && (u = 0), void 0 === h && (h = !1); var d = e.call(this, t, "depthOfFieldMerge", [], ["circleOfConfusionSampler", "blurStep0", "blurStep1", "blurStep2"], o, a, s, c, l, null, u, void 0, null, !0) || this; return ( (d.blurSteps = r), d.onApplyObservable.add(function (e) { e.setTextureFromPostProcess("textureSampler", n), e.setTextureFromPostProcessOutput("circleOfConfusionSampler", i), r.forEach(function (t, n) { e.setTextureFromPostProcessOutput("blurStep" + (r.length - n - 1), t); }); }), h || d.updateEffect(), d ); } return ( Object(h.d)(t, e), (t.prototype.updateEffect = function (t, n, i, r, o, a) { void 0 === t && (t = null), void 0 === n && (n = null), void 0 === i && (i = null), t || ((t = ""), (t += "#define BLUR_LEVEL " + (this.blurSteps.length - 1) + "\n")), e.prototype.updateEffect.call(this, t, n, i, r, o, a); }), t ); })(Wt.a); !(function (e) { (e[(e.Low = 0)] = "Low"), (e[(e.Medium = 1)] = "Medium"), (e[(e.High = 2)] = "High"); })(Wu || (Wu = {})); var Ku = (function (e) { function t(t, n, i, r, o) { void 0 === i && (i = Wu.Low), void 0 === r && (r = 0), void 0 === o && (o = !1); var s = e.call( this, t.getEngine(), "depth of field", function () { return s._effects; }, !0 ) || this; (s._effects = []), (s._circleOfConfusion = new zu("circleOfConfusion", n, 1, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o)), (s._depthOfFieldBlurY = []), (s._depthOfFieldBlurX = []); var c = 1, l = 15; switch (i) { case Wu.High: (c = 3), (l = 51); break; case Wu.Medium: (c = 2), (l = 31); break; default: (l = 15), (c = 1); } for (var u = l / Math.pow(2, c - 1), h = 1, d = 0; d < c; d++) { var p = new Uu("verticle blur", t, new a.d(0, 1), u, h, null, s._circleOfConfusion, 0 == d ? s._circleOfConfusion : null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o); (p.autoClear = !1), (h = 0.75 / Math.pow(2, d)); var f = new Uu("horizontal blur", t, new a.d(1, 0), u, h, null, s._circleOfConfusion, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o); (f.autoClear = !1), s._depthOfFieldBlurY.push(p), s._depthOfFieldBlurX.push(f); } s._effects = [s._circleOfConfusion]; for (d = 0; d < s._depthOfFieldBlurX.length; d++) s._effects.push(s._depthOfFieldBlurY[d]), s._effects.push(s._depthOfFieldBlurX[d]); return ( (s._dofMerge = new Yu("dofMerge", s._circleOfConfusion, s._circleOfConfusion, s._depthOfFieldBlurX, h, null, ln.a.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, r, o)), (s._dofMerge.autoClear = !1), s._effects.push(s._dofMerge), s ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "focalLength", { get: function () { return this._circleOfConfusion.focalLength; }, set: function (e) { this._circleOfConfusion.focalLength = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fStop", { get: function () { return this._circleOfConfusion.fStop; }, set: function (e) { this._circleOfConfusion.fStop = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "focusDistance", { get: function () { return this._circleOfConfusion.focusDistance; }, set: function (e) { this._circleOfConfusion.focusDistance = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "lensSize", { get: function () { return this._circleOfConfusion.lensSize; }, set: function (e) { this._circleOfConfusion.lensSize = e; }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "DepthOfFieldEffect"; }), Object.defineProperty(t.prototype, "depthTexture", { set: function (e) { this._circleOfConfusion.depthTexture = e; }, enumerable: !0, configurable: !0, }), (t.prototype.disposeEffects = function (e) { for (var t = 0; t < this._effects.length; t++) this._effects[t].dispose(e); }), (t.prototype._updateEffects = function () { for (var e = 0; e < this._effects.length; e++) this._effects[e].updateEffect(); }), (t.prototype._isReady = function () { for (var e = 0; e < this._effects.length; e++) if (!this._effects[e].isReady()) return !1; return !0; }), t ); })(Au), Zu = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D passSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(passSampler,vUV);\n}"; Xt.a.ShadersStore.displayPassPixelShader = Zu; var qu = (function (e) { function t(t, n, i, r, o, a) { return e.call(this, t, "displayPass", ["passSampler"], ["passSampler"], n, i, r, o, a) || this; } return Object(h.d)(t, e), t; })(Wt.a), Qu = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform mat4 kernelMatrix;\nvoid main(void)\n{\nvec3 baseColor=texture2D(textureSampler,vUV).rgb;\nvec3 updatedColor=(kernelMatrix*vec4(baseColor,1.0)).rgb;\ngl_FragColor=vec4(updatedColor,1.0);\n}"; Xt.a.ShadersStore.filterPixelShader = Qu; var Ju = (function (e) { function t(t, n, i, r, o, a, s) { var c = e.call(this, t, "filter", ["kernelMatrix"], null, i, r, o, a, s) || this; return ( (c.kernelMatrix = n), (c.onApply = function (e) { e.setMatrix("kernelMatrix", c.kernelMatrix); }), c ); } return Object(h.d)(t, e), t; })(Wt.a), $u = "uniform sampler2D textureSampler;\nuniform vec2 texelSize;\nvarying vec2 vUV;\nvarying vec2 sampleCoordS;\nvarying vec2 sampleCoordE;\nvarying vec2 sampleCoordN;\nvarying vec2 sampleCoordW;\nvarying vec2 sampleCoordNW;\nvarying vec2 sampleCoordSE;\nvarying vec2 sampleCoordNE;\nvarying vec2 sampleCoordSW;\nconst float fxaaQualitySubpix=1.0;\nconst float fxaaQualityEdgeThreshold=0.166;\nconst float fxaaQualityEdgeThresholdMin=0.0833;\nconst vec3 kLumaCoefficients=vec3(0.2126,0.7152,0.0722);\n#define FxaaLuma(rgba) dot(rgba.rgb,kLumaCoefficients)\nvoid main(){\nvec2 posM;\nposM.x=vUV.x;\nposM.y=vUV.y;\nvec4 rgbyM=texture2D(textureSampler,vUV,0.0);\nfloat lumaM=FxaaLuma(rgbyM);\nfloat lumaS=FxaaLuma(texture2D(textureSampler,sampleCoordS,0.0));\nfloat lumaE=FxaaLuma(texture2D(textureSampler,sampleCoordE,0.0));\nfloat lumaN=FxaaLuma(texture2D(textureSampler,sampleCoordN,0.0));\nfloat lumaW=FxaaLuma(texture2D(textureSampler,sampleCoordW,0.0));\nfloat maxSM=max(lumaS,lumaM);\nfloat minSM=min(lumaS,lumaM);\nfloat maxESM=max(lumaE,maxSM);\nfloat minESM=min(lumaE,minSM);\nfloat maxWN=max(lumaN,lumaW);\nfloat minWN=min(lumaN,lumaW);\nfloat rangeMax=max(maxWN,maxESM);\nfloat rangeMin=min(minWN,minESM);\nfloat rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;\nfloat range=rangeMax-rangeMin;\nfloat rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);\n#ifndef MALI\nif(range=edgeVert;\nfloat subpixA=subpixNSWE*2.0+subpixNWSWNESE;\nif (!horzSpan)\n{\nlumaN=lumaW;\n}\nif (!horzSpan)\n{\nlumaS=lumaE;\n}\nif (horzSpan)\n{\nlengthSign=texelSize.y;\n}\nfloat subpixB=(subpixA*(1.0/12.0))-lumaM;\nfloat gradientN=lumaN-lumaM;\nfloat gradientS=lumaS-lumaM;\nfloat lumaNN=lumaN+lumaM;\nfloat lumaSS=lumaS+lumaM;\nbool pairN=abs(gradientN)>=abs(gradientS);\nfloat gradient=max(abs(gradientN),abs(gradientS));\nif (pairN)\n{\nlengthSign=-lengthSign;\n}\nfloat subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);\nvec2 posB;\nposB.x=posM.x;\nposB.y=posM.y;\nvec2 offNP;\noffNP.x=(!horzSpan) ? 0.0 : texelSize.x;\noffNP.y=(horzSpan) ? 0.0 : texelSize.y;\nif (!horzSpan)\n{\nposB.x+=lengthSign*0.5;\n}\nif (horzSpan)\n{\nposB.y+=lengthSign*0.5;\n}\nvec2 posN;\nposN.x=posB.x-offNP.x*1.5;\nposN.y=posB.y-offNP.y*1.5;\nvec2 posP;\nposP.x=posB.x+offNP.x*1.5;\nposP.y=posB.y+offNP.y*1.5;\nfloat subpixD=((-2.0)*subpixC)+3.0;\nfloat lumaEndN=FxaaLuma(texture2D(textureSampler,posN,0.0));\nfloat subpixE=subpixC*subpixC;\nfloat lumaEndP=FxaaLuma(texture2D(textureSampler,posP,0.0));\nif (!pairN)\n{\nlumaNN=lumaSS;\n}\nfloat gradientScaled=gradient*1.0/4.0;\nfloat lumaMM=lumaM-lumaNN*0.5;\nfloat subpixF=subpixD*subpixE;\nbool lumaMLTZero=lumaMM<0.0;\nlumaEndN-=lumaNN*0.5;\nlumaEndP-=lumaNN*0.5;\nbool doneN=abs(lumaEndN)>=gradientScaled;\nbool doneP=abs(lumaEndP)>=gradientScaled;\nif (!doneN)\n{\nposN.x-=offNP.x*3.0;\n}\nif (!doneN)\n{\nposN.y-=offNP.y*3.0;\n}\nbool doneNP=(!doneN) || (!doneP);\nif (!doneP)\n{\nposP.x+=offNP.x*3.0;\n}\nif (!doneP)\n{\nposP.y+=offNP.y*3.0;\n}\nif (doneNP)\n{\nif (!doneN) lumaEndN=FxaaLuma(texture2D(textureSampler,posN.xy,0.0));\nif (!doneP) lumaEndP=FxaaLuma(texture2D(textureSampler,posP.xy,0.0));\nif (!doneN) lumaEndN=lumaEndN-lumaNN*0.5;\nif (!doneP) lumaEndP=lumaEndP-lumaNN*0.5;\ndoneN=abs(lumaEndN)>=gradientScaled;\ndoneP=abs(lumaEndP)>=gradientScaled;\nif (!doneN) posN.x-=offNP.x*12.0;\nif (!doneN) posN.y-=offNP.y*12.0;\ndoneNP=(!doneN) || (!doneP);\nif (!doneP) posP.x+=offNP.x*12.0;\nif (!doneP) posP.y+=offNP.y*12.0;\n}\nfloat dstN=posM.x-posN.x;\nfloat dstP=posP.x-posM.x;\nif (!horzSpan)\n{\ndstN=posM.y-posN.y;\n}\nif (!horzSpan)\n{\ndstP=posP.y-posM.y;\n}\nbool goodSpanN=(lumaEndN<0.0) != lumaMLTZero;\nfloat spanLength=(dstP+dstN);\nbool goodSpanP=(lumaEndP<0.0) != lumaMLTZero;\nfloat spanLengthRcp=1.0/spanLength;\nbool directionN=dstN -1 ? "#define MALI 1\n" : null; }), t ); })(Wt.a), nh = "#include\n\nuniform sampler2D textureSampler;\n\nuniform float intensity;\nuniform float animatedSeed;\n\nvarying vec2 vUV;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\nvec2 seed=vUV*(animatedSeed);\nfloat grain=dither(seed,intensity);\n\nfloat lum=getLuminance(gl_FragColor.rgb);\nfloat grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;\ngl_FragColor.rgb+=grain*grainAmount;\ngl_FragColor.rgb=max(gl_FragColor.rgb,0.0);\n}"; Xt.a.ShadersStore.grainPixelShader = nh; var ih = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === s && (s = 0), void 0 === c && (c = !1); var l = e.call(this, t, "grain", ["intensity", "animatedSeed"], [], n, i, r, o, a, null, s, void 0, null, c) || this; return ( (l.intensity = 30), (l.animated = !1), l.onApplyObservable.add(function (e) { e.setFloat("intensity", l.intensity), e.setFloat("animatedSeed", l.animated ? Math.random() + 1 : 1); }), l ); } return Object(h.d)(t, e), t; })(Wt.a), rh = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nconst vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\nvoid main(void)\n{\nvec4 tex=texture2D(textureSampler,vUV);\nvec3 c=tex.rgb;\nfloat luma=dot(c.rgb,RGBLuminanceCoefficients);\n\n\ngl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a);\n}"; Xt.a.ShadersStore.highlightsPixelShader = rh; var oh = (function (e) { function t(t, n, i, r, o, a, s) { return void 0 === s && (s = 0), e.call(this, t, "highlights", null, null, n, i, r, o, a, null, s) || this; } return Object(h.d)(t, e), t; })(Wt.a); Xt.a.IncludesShadersStore.mrtFragmentDeclaration = "#if __VERSION__>=200\nlayout(location=0) out vec4 glFragData[{X}];\n#endif\n"; var ah = "#extension GL_EXT_draw_buffers : require\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\nprecision highp int;\n#ifdef BUMP\nvarying mat4 vWorldView;\nvarying vec3 vNormalW;\n#else\nvarying vec3 vNormalV;\n#endif\nvarying vec4 vViewPos;\n#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\n#endif\n#ifdef VELOCITY\nvarying vec4 vCurrentPosition;\nvarying vec4 vPreviousPosition;\n#endif\n#ifdef NEED_UV\nvarying vec2 vUV;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#ifdef REFLECTIVITY\nvarying vec2 vReflectivityUV;\nuniform sampler2D reflectivitySampler;\n#endif\n#ifdef ALPHATEST\nuniform sampler2D diffuseSampler;\n#endif\n#include[RENDER_TARGET_COUNT]\n#include\nvoid main() {\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\ngl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\n\n#ifdef BUMP\nvec3 normalW=normalize(vNormalW);\n#include\ngl_FragData[1]=vec4(normalize(vec3(vWorldView*vec4(normalW,0.0))),1.0);\n#else\ngl_FragData[1]=vec4(normalize(vNormalV),1.0);\n#endif\n#ifdef POSITION\ngl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\n#endif\n#ifdef VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\nvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\nvec2 velocity=abs(a-b);\nvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\ngl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\n#endif\n#ifdef REFLECTIVITY\n#ifdef HAS_SPECULAR\n\nvec4 reflectivity=texture2D(reflectivitySampler,vReflectivityUV);\n#elif HAS_REFLECTIVITY\n\nvec4 reflectivity=vec4(texture2D(reflectivitySampler,vReflectivityUV).rgb,1.0);\n#else\nvec4 reflectivity=vec4(0.0,0.0,0.0,1.0);\n#endif\ngl_FragData[REFLECTIVITY_INDEX]=reflectivity;\n#endif\n}"; Xt.a.ShadersStore.geometryPixelShader = ah; n(210); var sh = "precision highp float;\nprecision highp int;\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nattribute vec3 position;\nattribute vec3 normal;\n#ifdef NEED_UV\nvarying vec2 vUV;\n#ifdef ALPHATEST\nuniform mat4 diffuseMatrix;\n#endif\n#ifdef BUMP\nuniform mat4 bumpMatrix;\nvarying vec2 vBumpUV;\n#endif\n#ifdef REFLECTIVITY\nuniform mat4 reflectivityMatrix;\nvarying vec2 vReflectivityUV;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n\nuniform mat4 viewProjection;\nuniform mat4 view;\n#ifdef BUMP\nvarying mat4 vWorldView;\n#endif\n#ifdef BUMP\nvarying vec3 vNormalW;\n#else\nvarying vec3 vNormalV;\n#endif\nvarying vec4 vViewPos;\n#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\n#endif\n#ifdef VELOCITY\nuniform mat4 previousWorld;\nuniform mat4 previousViewProjection;\n#ifdef BONES_VELOCITY_ENABLED\n#if NUM_BONE_INFLUENCERS>0\nuniform mat4 mPreviousBones[BonesPerMesh];\n#endif\n#endif\nvarying vec4 vCurrentPosition;\nvarying vec4 vPreviousPosition;\n#endif\nvoid main(void)\n{\nvec3 positionUpdated=position;\nvec3 normalUpdated=normal;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\n#include\n#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\n\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\n#endif\n#include\nvec4 pos=vec4(finalWorld*vec4(positionUpdated,1.0));\n#ifdef BUMP\nvWorldView=view*finalWorld;\nvNormalW=normalUpdated;\n#else\nvNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\n#endif\nvViewPos=view*pos;\n#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;\npreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(positionUpdated,1.0);\n#else\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\n#endif\n#endif\n#if defined(POSITION) || defined(BUMP)\nvPositionW=pos.xyz/pos.w;\n#endif\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#ifdef NEED_UV\n#ifdef UV1\n#ifdef ALPHATEST\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#else\nvUV=uv;\n#endif\n#ifdef BUMP\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef REFLECTIVITY\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#endif\n#ifdef UV2\n#ifdef ALPHATEST\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#else\nvUV=uv2;\n#endif\n#ifdef BUMP\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\n#endif\n#ifdef REFLECTIVITY\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#endif\n#include\n}\n"; Xt.a.ShadersStore.geometryVertexShader = sh; var ch = (function () { function e(t, n) { void 0 === n && (n = 1), (this._previousTransformationMatrices = {}), (this._previousBonesTransformationMatrices = {}), (this.excludedSkinnedMeshesFromVelocity = []), (this.renderTransparentMeshes = !0), (this._enablePosition = !1), (this._enableVelocity = !1), (this._enableReflectivity = !1), (this._positionIndex = -1), (this._velocityIndex = -1), (this._reflectivityIndex = -1), (this._scene = t), (this._ratio = n), e._SceneComponentInitialization(this._scene), this._createRenderTargets(); } return ( Object.defineProperty(e.prototype, "renderList", { set: function (e) { this._multiRenderTarget.renderList = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isSupported", { get: function () { return this._multiRenderTarget.isSupported; }, enumerable: !0, configurable: !0, }), (e.prototype.getTextureIndex = function (t) { switch (t) { case e.POSITION_TEXTURE_TYPE: return this._positionIndex; case e.VELOCITY_TEXTURE_TYPE: return this._velocityIndex; case e.REFLECTIVITY_TEXTURE_TYPE: return this._reflectivityIndex; default: return -1; } }), Object.defineProperty(e.prototype, "enablePosition", { get: function () { return this._enablePosition; }, set: function (e) { (this._enablePosition = e), this.dispose(), this._createRenderTargets(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "enableVelocity", { get: function () { return this._enableVelocity; }, set: function (e) { (this._enableVelocity = e), e || (this._previousTransformationMatrices = {}), this.dispose(), this._createRenderTargets(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "enableReflectivity", { get: function () { return this._enableReflectivity; }, set: function (e) { (this._enableReflectivity = e), this.dispose(), this._createRenderTargets(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "scene", { get: function () { return this._scene; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "ratio", { get: function () { return this._ratio; }, enumerable: !0, configurable: !0, }), (e.prototype.isReady = function (e, t) { var n = e.getMaterial(); if (n && n.disableDepthWrite) return !1; var i = [], r = [wn.b.PositionKind, wn.b.NormalKind], o = e.getMesh(); if (n) { var a = !1; n.needAlphaBlending() && (i.push("#define ALPHATEST"), (a = !0)), n.bumpTexture && Mn.a.BumpTextureEnabled && (i.push("#define BUMP"), (a = !0)), this._enableReflectivity && (n instanceof Mn.a && n.specularTexture ? (i.push("#define HAS_SPECULAR"), (a = !0)) : n instanceof Hr.a && n.reflectivityTexture && (i.push("#define HAS_REFLECTIVITY"), (a = !0))), a && (i.push("#define NEED_UV"), o.isVerticesDataPresent(wn.b.UVKind) && (r.push(wn.b.UVKind), i.push("#define UV1")), o.isVerticesDataPresent(wn.b.UV2Kind) && (r.push(wn.b.UV2Kind), i.push("#define UV2"))); } this._enablePosition && (i.push("#define POSITION"), i.push("#define POSITION_INDEX " + this._positionIndex)), this._enableVelocity && (i.push("#define VELOCITY"), i.push("#define VELOCITY_INDEX " + this._velocityIndex), -1 === this.excludedSkinnedMeshesFromVelocity.indexOf(o) && i.push("#define BONES_VELOCITY_ENABLED")), this._enableReflectivity && (i.push("#define REFLECTIVITY"), i.push("#define REFLECTIVITY_INDEX " + this._reflectivityIndex)), o.useBones && o.computeBonesUsingShaders ? (r.push(wn.b.MatricesIndicesKind), r.push(wn.b.MatricesWeightsKind), o.numBoneInfluencers > 4 && (r.push(wn.b.MatricesIndicesExtraKind), r.push(wn.b.MatricesWeightsExtraKind)), i.push("#define NUM_BONE_INFLUENCERS " + o.numBoneInfluencers), i.push("#define BonesPerMesh " + (o.skeleton ? o.skeleton.bones.length + 1 : 0))) : i.push("#define NUM_BONE_INFLUENCERS 0"); var s = o.morphTargetManager, c = 0; s && s.numInfluencers > 0 && ((c = s.numInfluencers), i.push("#define MORPHTARGETS"), i.push("#define NUM_MORPH_INFLUENCERS " + c), Ir.a.PrepareAttributesForMorphTargetsInfluencers(r, o, c)), t && (i.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(r)), i.push("#define RENDER_TARGET_COUNT " + this._multiRenderTarget.textures.length); var l = i.join("\n"); return ( this._cachedDefines !== l && ((this._cachedDefines = l), (this._effect = this._scene .getEngine() .createEffect( "geometry", r, [ "world", "mBones", "viewProjection", "diffuseMatrix", "view", "previousWorld", "previousViewProjection", "mPreviousBones", "morphTargetInfluences", "bumpMatrix", "reflectivityMatrix", "vTangentSpaceParams", "vBumpInfos", ], ["diffuseSampler", "bumpSampler", "reflectivitySampler"], l, void 0, void 0, void 0, { buffersCount: this._multiRenderTarget.textures.length - 1, maxSimultaneousMorphTargets: c } ))), this._effect.isReady() ); }), (e.prototype.getGBuffer = function () { return this._multiRenderTarget; }), Object.defineProperty(e.prototype, "samples", { get: function () { return this._multiRenderTarget.samples; }, set: function (e) { this._multiRenderTarget.samples = e; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this.getGBuffer().dispose(); }), (e.prototype._createRenderTargets = function () { var e = this, t = this._scene.getEngine(), n = 2; if ( (this._enablePosition && ((this._positionIndex = n), n++), this._enableVelocity && ((this._velocityIndex = n), n++), this._enableReflectivity && ((this._reflectivityIndex = n), n++), (this._multiRenderTarget = new ss("gBuffer", { width: t.getRenderWidth() * this._ratio, height: t.getRenderHeight() * this._ratio }, n, this._scene, { generateMipMaps: !1, generateDepthTexture: !0, defaultType: 1, })), this.isSupported) ) { (this._multiRenderTarget.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._multiRenderTarget.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._multiRenderTarget.refreshRate = 1), (this._multiRenderTarget.renderParticles = !1), (this._multiRenderTarget.renderList = null), this._multiRenderTarget.onClearObservable.add(function (e) { e.clear(new s.b(0, 0, 0, 1), !0, !0, !0); }); var i = function (t) { var n = t.getRenderingMesh(), i = e._scene, r = i.getEngine(), o = t.getMaterial(); if (o) { if ( ((n._internalAbstractMeshDataInfo._isActiveIntermediate = !1), e._enableVelocity && !e._previousTransformationMatrices[n.uniqueId] && ((e._previousTransformationMatrices[n.uniqueId] = { world: a.a.Identity(), viewProjection: i.getTransformMatrix() }), n.skeleton)) ) { var s = n.skeleton.getTransformMatrices(n); e._previousBonesTransformationMatrices[n.uniqueId] = e._copyBonesTransformationMatrices(s, new Float32Array(s.length)); } r.setState(o.backFaceCulling, 0, !1, i.useRightHandedSystem); var c = n._getInstancesRenderList(t._id); if (!c.mustReturn) { var l = r.getCaps().instancedArrays && null !== c.visibleInstances[t._id]; if (e.isReady(t, l)) { if ((r.enableEffect(e._effect), n._bind(t, e._effect, o.fillMode), e._effect.setMatrix("viewProjection", i.getTransformMatrix()), e._effect.setMatrix("view", i.getViewMatrix()), o)) { if (o.needAlphaTesting()) { var u = o.getAlphaTestTexture(); u && (e._effect.setTexture("diffuseSampler", u), e._effect.setMatrix("diffuseMatrix", u.getTextureMatrix())); } o.bumpTexture && i.getEngine().getCaps().standardDerivatives && Mn.a.BumpTextureEnabled && (e._effect.setFloat3("vBumpInfos", o.bumpTexture.coordinatesIndex, 1 / o.bumpTexture.level, o.parallaxScaleBias), e._effect.setMatrix("bumpMatrix", o.bumpTexture.getTextureMatrix()), e._effect.setTexture("bumpSampler", o.bumpTexture), e._effect.setFloat2("vTangentSpaceParams", o.invertNormalMapX ? -1 : 1, o.invertNormalMapY ? -1 : 1)), e._enableReflectivity && (o instanceof Mn.a && o.specularTexture ? (e._effect.setMatrix("reflectivityMatrix", o.specularTexture.getTextureMatrix()), e._effect.setTexture("reflectivitySampler", o.specularTexture)) : o instanceof Hr.a && o.reflectivityTexture && (e._effect.setMatrix("reflectivityMatrix", o.reflectivityTexture.getTextureMatrix()), e._effect.setTexture("reflectivitySampler", o.reflectivityTexture))); } n.useBones && n.computeBonesUsingShaders && n.skeleton && (e._effect.setMatrices("mBones", n.skeleton.getTransformMatrices(n)), e._enableVelocity && e._effect.setMatrices("mPreviousBones", e._previousBonesTransformationMatrices[n.uniqueId])), Ir.a.BindMorphTargetParameters(n, e._effect), e._enableVelocity && (e._effect.setMatrix("previousWorld", e._previousTransformationMatrices[n.uniqueId].world), e._effect.setMatrix("previousViewProjection", e._previousTransformationMatrices[n.uniqueId].viewProjection)), n._processRendering(t, e._effect, o.fillMode, c, l, function (t, n) { return e._effect.setMatrix("world", n); }); } e._enableVelocity && ((e._previousTransformationMatrices[n.uniqueId].world = n.getWorldMatrix().clone()), (e._previousTransformationMatrices[n.uniqueId].viewProjection = e._scene.getTransformMatrix().clone()), n.skeleton && e._copyBonesTransformationMatrices(n.skeleton.getTransformMatrices(n), e._previousBonesTransformationMatrices[n.uniqueId])); } } }; this._multiRenderTarget.customRenderFunction = function (n, r, o, a) { var s; if (a.length) { for (t.setColorWrite(!1), s = 0; s < a.length; s++) i(a.data[s]); t.setColorWrite(!0); } for (s = 0; s < n.length; s++) i(n.data[s]); for (s = 0; s < r.length; s++) i(r.data[s]); if (e.renderTransparentMeshes) for (s = 0; s < o.length; s++) i(o.data[s]); }; } }), (e.prototype._copyBonesTransformationMatrices = function (e, t) { for (var n = 0; n < e.length; n++) t[n] = e[n]; return t; }), (e.POSITION_TEXTURE_TYPE = 1), (e.VELOCITY_TEXTURE_TYPE = 2), (e.REFLECTIVITY_TEXTURE_TYPE = 3), (e._SceneComponentInitialization = function (e) { throw zo.a.WarnImport("GeometryBufferRendererSceneComponent"); }), e ); })(); Object.defineProperty(ge.a.prototype, "geometryBufferRenderer", { get: function () { this._geometryBufferRenderer; }, set: function (e) { e && e.isSupported && (this._geometryBufferRenderer = e); }, enumerable: !0, configurable: !0, }), (ge.a.prototype.enableGeometryBufferRenderer = function (e) { return ( void 0 === e && (e = 1), this._geometryBufferRenderer || ((this._geometryBufferRenderer = new ch(this, e)), this._geometryBufferRenderer.isSupported || (this._geometryBufferRenderer = null)), this._geometryBufferRenderer ); }), (ge.a.prototype.disableGeometryBufferRenderer = function () { this._geometryBufferRenderer && (this._geometryBufferRenderer.dispose(), (this._geometryBufferRenderer = null)); }); var lh = (function () { function e(e) { (this.name = me.a.NAME_GEOMETRYBUFFERRENDERER), (this.scene = e); } return ( (e.prototype.register = function () { this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER, this, this._gatherRenderTargets); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () {}), (e.prototype._gatherRenderTargets = function (e) { this.scene._geometryBufferRenderer && e.push(this.scene._geometryBufferRenderer.getGBuffer()); }), e ); })(); ch._SceneComponentInitialization = function (e) { var t = e._getComponent(me.a.NAME_GEOMETRYBUFFERRENDERER); t || ((t = new lh(e)), e._addComponent(t)); }; var uh = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D velocitySampler;\nuniform float motionStrength;\nuniform float motionScale;\nuniform vec2 screenSize;\nvoid main(void)\n{\n#ifdef GEOMETRY_SUPPORTED\nvec2 texelSize=1.0/screenSize;\nvec2 velocityColor=texture2D(velocitySampler,vUV).rg*2.0-1.0;\nvec2 velocity=vec2(pow(velocityColor.r,3.0),pow(velocityColor.g,3.0));\nvelocity*=motionScale*motionStrength;\nfloat speed=length(velocity/texelSize);\nint samplesCount=int(clamp(speed,1.0,SAMPLES));\nvelocity=normalize(velocity)*texelSize;\nfloat hlim=float(-samplesCount)*0.5+0.5;\nvec4 result=texture2D(textureSampler,vUV);\nfor (int i=1; i=samplesCount)\nbreak;\nvec2 offset=vUV+velocity*(hlim+float(i));\nresult+=texture2D(textureSampler,offset);\n}\ngl_FragColor=result/float(samplesCount);\ngl_FragColor.a=1.0;\n#else\ngl_FragColor=texture2D(textureSampler,vUV);\n#endif\n}\n"; Xt.a.ShadersStore.motionBlurPixelShader = uh; var hh = (function (e) { function t(t, n, i, r, o, s, c, l, u) { void 0 === l && (l = 0), void 0 === u && (u = !1); var h = e.call(this, t, "motionBlur", ["motionStrength", "motionScale", "screenSize"], ["velocitySampler"], i, r, o, s, c, "#define GEOMETRY_SUPPORTED\n#define SAMPLES 64.0", l, void 0, null, u) || this; return ( (h.motionStrength = 1), (h._motionBlurSamples = 32), (h._geometryBufferRenderer = n.enableGeometryBufferRenderer()), h._geometryBufferRenderer ? ((h._geometryBufferRenderer.enableVelocity = !0), (h.onApply = function (e) { if ((e.setVector2("screenSize", new a.d(h.width, h.height)), e.setFloat("motionScale", n.getAnimationRatio()), e.setFloat("motionStrength", h.motionStrength), h._geometryBufferRenderer)) { var t = h._geometryBufferRenderer.getTextureIndex(ch.VELOCITY_TEXTURE_TYPE); e.setTexture("velocitySampler", h._geometryBufferRenderer.getGBuffer().textures[t]); } })) : (g.a.Warn("Multiple Render Target support needed to compute object based motion blur"), h.updateEffect()), h ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "motionBlurSamples", { get: function () { return this._motionBlurSamples; }, set: function (e) { (this._motionBlurSamples = e), this._geometryBufferRenderer && this.updateEffect("#define GEOMETRY_SUPPORTED\n#define SAMPLES " + e.toFixed(1)); }, enumerable: !0, configurable: !0, }), (t.prototype.excludeSkinnedMesh = function (e) { this._geometryBufferRenderer && e.skeleton && this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity.push(e); }), (t.prototype.removeExcludedSkinnedMesh = function (e) { if (this._geometryBufferRenderer && e.skeleton) { var t = this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity.indexOf(e); -1 !== t && this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity.splice(t, 1); } }), (t.prototype.dispose = function (t) { this._geometryBufferRenderer && ((this._geometryBufferRenderer._previousTransformationMatrices = {}), (this._geometryBufferRenderer._previousBonesTransformationMatrices = {}), (this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity = [])), e.prototype.dispose.call(this, t); }), t ); })(Wt.a), dh = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D refractionSampler;\n\nuniform vec3 baseColor;\nuniform float depth;\nuniform float colorLevel;\nvoid main() {\nfloat ref=1.0-texture2D(refractionSampler,vUV).r;\nvec2 uv=vUV-vec2(0.5);\nvec2 offset=uv*depth*ref;\nvec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb;\ngl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);\n}"; Xt.a.ShadersStore.refractionPixelShader = dh; var ph = (function (e) { function t(t, n, i, r, o, a, s, c, l, u) { var h = e.call(this, t, "refraction", ["baseColor", "depth", "colorLevel"], ["refractionSampler"], a, s, c, l, u) || this; return ( (h.color = i), (h.depth = r), (h.colorLevel = o), (h._ownRefractionTexture = !0), h.onActivateObservable.add(function (e) { h._refTexture = h._refTexture || new ln.a(n, e.getScene()); }), h.onApplyObservable.add(function (e) { e.setColor3("baseColor", h.color), e.setFloat("depth", h.depth), e.setFloat("colorLevel", h.colorLevel), e.setTexture("refractionSampler", h._refTexture); }), h ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "refractionTexture", { get: function () { return this._refTexture; }, set: function (e) { this._refTexture && this._ownRefractionTexture && this._refTexture.dispose(), (this._refTexture = e), (this._ownRefractionTexture = !1); }, enumerable: !0, configurable: !0, }), (t.prototype.dispose = function (t) { this._refTexture && this._ownRefractionTexture && (this._refTexture.dispose(), (this._refTexture = null)), e.prototype.dispose.call(this, t); }), t ); })(Wt.a), fh = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform vec2 screenSize;\nuniform vec2 sharpnessAmounts;\nvoid main(void)\n{\nvec2 onePixel=vec2(1.0,1.0)/screenSize;\nvec4 color=texture2D(textureSampler,vUV);\nvec4 edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1)) -\ncolor*4.0;\ngl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);\n}"; Xt.a.ShadersStore.sharpenPixelShader = fh; var mh = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === s && (s = 0), void 0 === c && (c = !1); var l = e.call(this, t, "sharpen", ["sharpnessAmounts", "screenSize"], null, n, i, r, o, a, null, s, void 0, null, c) || this; return ( (l.colorAmount = 1), (l.edgeAmount = 0.3), (l.onApply = function (e) { e.setFloat2("screenSize", l.width, l.height), e.setFloat2("sharpnessAmounts", l.edgeAmount, l.colorAmount); }), l ); } return Object(h.d)(t, e), t; })(Wt.a), gh = (function () { function e(e, t) { (this.engine = e), (this._name = t), (this._renderEffects = {}), (this._renderEffectsForIsolatedPass = new Array()), (this._cameras = []); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return this._name; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "cameras", { get: function () { return this._cameras; }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "PostProcessRenderPipeline"; }), Object.defineProperty(e.prototype, "isSupported", { get: function () { for (var e in this._renderEffects) if (this._renderEffects.hasOwnProperty(e) && !this._renderEffects[e].isSupported) return !1; return !0; }, enumerable: !0, configurable: !0, }), (e.prototype.addEffect = function (e) { this._renderEffects[e._name] = e; }), (e.prototype._rebuild = function () {}), (e.prototype._enableEffect = function (e, t) { var n = this._renderEffects[e]; n && n._enable($e.b.MakeArray(t || this._cameras)); }), (e.prototype._disableEffect = function (e, t) { var n = this._renderEffects[e]; n && n._disable($e.b.MakeArray(t || this._cameras)); }), (e.prototype._attachCameras = function (e, t) { var n = $e.b.MakeArray(e || this._cameras); if (n) { var i, r = []; for (i = 0; i < n.length; i++) { var o = n[i], a = o.name; -1 === this._cameras.indexOf(o) ? (this._cameras[a] = o) : t && r.push(i); } for (i = 0; i < r.length; i++) e.splice(r[i], 1); for (var s in this._renderEffects) this._renderEffects.hasOwnProperty(s) && this._renderEffects[s]._attachCameras(n); } }), (e.prototype._detachCameras = function (e) { var t = $e.b.MakeArray(e || this._cameras); if (t) { for (var n in this._renderEffects) this._renderEffects.hasOwnProperty(n) && this._renderEffects[n]._detachCameras(t); for (var i = 0; i < t.length; i++) this._cameras.splice(this._cameras.indexOf(t[i]), 1); } }), (e.prototype._update = function () { for (var e in this._renderEffects) this._renderEffects.hasOwnProperty(e) && this._renderEffects[e]._update(); for (var t = 0; t < this._cameras.length; t++) { var n = this._cameras[t].name; this._renderEffectsForIsolatedPass[n] && this._renderEffectsForIsolatedPass[n]._update(); } }), (e.prototype._reset = function () { (this._renderEffects = {}), (this._renderEffectsForIsolatedPass = new Array()); }), (e.prototype._enableMSAAOnFirstPostProcess = function (e) { if (1 === this.engine.webGLVersion) return !1; var t = Object.keys(this._renderEffects); if (t.length > 0) { var n = this._renderEffects[t[0]].getPostProcesses(); n && (n[0].samples = e); } return !0; }), (e.prototype.dispose = function () {}), Object(h.c)([Object(He.c)()], e.prototype, "_name", void 0), e ); })(), bh = (function () { function e() { this._renderPipelines = {}; } return ( Object.defineProperty(e.prototype, "supportedPipelines", { get: function () { var e = []; for (var t in this._renderPipelines) if (this._renderPipelines.hasOwnProperty(t)) { var n = this._renderPipelines[t]; n.isSupported && e.push(n); } return e; }, enumerable: !0, configurable: !0, }), (e.prototype.addPipeline = function (e) { this._renderPipelines[e._name] = e; }), (e.prototype.attachCamerasToRenderPipeline = function (e, t, n) { void 0 === n && (n = !1); var i = this._renderPipelines[e]; i && i._attachCameras(t, n); }), (e.prototype.detachCamerasFromRenderPipeline = function (e, t) { var n = this._renderPipelines[e]; n && n._detachCameras(t); }), (e.prototype.enableEffectInPipeline = function (e, t, n) { var i = this._renderPipelines[e]; i && i._enableEffect(t, n); }), (e.prototype.disableEffectInPipeline = function (e, t, n) { var i = this._renderPipelines[e]; i && i._disableEffect(t, n); }), (e.prototype.update = function () { for (var e in this._renderPipelines) if (this._renderPipelines.hasOwnProperty(e)) { var t = this._renderPipelines[e]; t.isSupported ? t._update() : (t.dispose(), delete this._renderPipelines[e]); } }), (e.prototype._rebuild = function () { for (var e in this._renderPipelines) { if (this._renderPipelines.hasOwnProperty(e)) this._renderPipelines[e]._rebuild(); } }), (e.prototype.dispose = function () { for (var e in this._renderPipelines) { if (this._renderPipelines.hasOwnProperty(e)) this._renderPipelines[e].dispose(); } }), e ); })(); Object.defineProperty(ge.a.prototype, "postProcessRenderPipelineManager", { get: function () { if (!this._postProcessRenderPipelineManager) { var e = this._getComponent(me.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER); e || ((e = new _h(this)), this._addComponent(e)), (this._postProcessRenderPipelineManager = new bh()); } return this._postProcessRenderPipelineManager; }, enumerable: !0, configurable: !0, }); var _h = (function () { function e(e) { (this.name = me.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER), (this.scene = e); } return ( (e.prototype.register = function () { this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER, this, this._gatherRenderTargets); }), (e.prototype.rebuild = function () { this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager._rebuild(); }), (e.prototype.dispose = function () { this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager.dispose(); }), (e.prototype._gatherRenderTargets = function () { this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager.update(); }), e ); })(), vh = (function (e) { function t(t, n, i, r, o) { void 0 === t && (t = ""), void 0 === n && (n = !0), void 0 === i && (i = E.a.LastCreatedScene), void 0 === o && (o = !0); var a = e.call(this, i.getEngine(), t) || this; (a._camerasToBeAttached = []), (a.SharpenPostProcessId = "SharpenPostProcessEffect"), (a.ImageProcessingPostProcessId = "ImageProcessingPostProcessEffect"), (a.FxaaPostProcessId = "FxaaPostProcessEffect"), (a.ChromaticAberrationPostProcessId = "ChromaticAberrationPostProcessEffect"), (a.GrainPostProcessId = "GrainPostProcessEffect"), (a._glowLayer = null), (a.animations = []), (a._imageProcessingConfigurationObserver = null), (a._sharpenEnabled = !1), (a._bloomEnabled = !1), (a._depthOfFieldEnabled = !1), (a._depthOfFieldBlurLevel = Wu.Low), (a._fxaaEnabled = !1), (a._imageProcessingEnabled = !0), (a._bloomScale = 0.5), (a._chromaticAberrationEnabled = !1), (a._grainEnabled = !1), (a._buildAllowed = !0), (a._resizeObserver = null), (a._hardwareScaleLevel = 1), (a._bloomKernel = 64), (a._bloomWeight = 0.15), (a._bloomThreshold = 0.9), (a._samples = 1), (a._hasCleared = !1), (a._prevPostProcess = null), (a._prevPrevPostProcess = null), (a._depthOfFieldSceneObserver = null), (a._cameras = r || i.cameras), (a._cameras = a._cameras.slice()), (a._camerasToBeAttached = a._cameras.slice()), (a._buildAllowed = o), (a._scene = i); var s = a._scene.getEngine().getCaps(); (a._hdr = n && (s.textureHalfFloatRender || s.textureFloatRender)), a._hdr ? (s.textureHalfFloatRender ? (a._defaultPipelineTextureType = 2) : s.textureFloatRender && (a._defaultPipelineTextureType = 1)) : (a._defaultPipelineTextureType = 0), i.postProcessRenderPipelineManager.addPipeline(a); var c = a._scene.getEngine(); return ( (a.sharpen = new mh("sharpen", 1, null, ln.a.BILINEAR_SAMPLINGMODE, c, !1, a._defaultPipelineTextureType, !0)), (a._sharpenEffect = new Au( c, a.SharpenPostProcessId, function () { return a.sharpen; }, !0 )), (a.depthOfField = new Ku(a._scene, null, a._depthOfFieldBlurLevel, a._defaultPipelineTextureType, !0)), (a.bloom = new Lu(a._scene, a._bloomScale, a._bloomWeight, a.bloomKernel, a._defaultPipelineTextureType, !0)), (a.chromaticAberration = new Nu("ChromaticAberration", c.getRenderWidth(), c.getRenderHeight(), 1, null, ln.a.BILINEAR_SAMPLINGMODE, c, !1, a._defaultPipelineTextureType, !0)), (a._chromaticAberrationEffect = new Au( c, a.ChromaticAberrationPostProcessId, function () { return a.chromaticAberration; }, !0 )), (a.grain = new ih("Grain", 1, null, ln.a.BILINEAR_SAMPLINGMODE, c, !1, a._defaultPipelineTextureType, !0)), (a._grainEffect = new Au( c, a.GrainPostProcessId, function () { return a.grain; }, !0 )), (a._resizeObserver = c.onResizeObservable.add(function () { (a._hardwareScaleLevel = c.getHardwareScalingLevel()), (a.bloomKernel = a.bloomKernel); })), (a._imageProcessingConfigurationObserver = a._scene.imageProcessingConfiguration.onUpdateParameters.add(function () { a.bloom._downscale._exposure = a._scene.imageProcessingConfiguration.exposure; })), a._buildPipeline(), a ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "scene", { get: function () { return this._scene; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "sharpenEnabled", { get: function () { return this._sharpenEnabled; }, set: function (e) { this._sharpenEnabled !== e && ((this._sharpenEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bloomKernel", { get: function () { return this._bloomKernel; }, set: function (e) { (this._bloomKernel = e), (this.bloom.kernel = e / this._hardwareScaleLevel); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bloomWeight", { get: function () { return this._bloomWeight; }, set: function (e) { this._bloomWeight !== e && ((this.bloom.weight = e), (this._bloomWeight = e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bloomThreshold", { get: function () { return this._bloomThreshold; }, set: function (e) { this._bloomThreshold !== e && ((this.bloom.threshold = e), (this._bloomThreshold = e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bloomScale", { get: function () { return this._bloomScale; }, set: function (e) { this._bloomScale !== e && ((this._bloomScale = e), this._rebuildBloom(), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bloomEnabled", { get: function () { return this._bloomEnabled; }, set: function (e) { this._bloomEnabled !== e && ((this._bloomEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), (t.prototype._rebuildBloom = function () { var e = this.bloom; (this.bloom = new Lu(this._scene, this.bloomScale, this._bloomWeight, this.bloomKernel, this._defaultPipelineTextureType, !1)), (this.bloom.threshold = e.threshold); for (var t = 0; t < this._cameras.length; t++) e.disposeEffects(this._cameras[t]); }), Object.defineProperty(t.prototype, "depthOfFieldEnabled", { get: function () { return this._depthOfFieldEnabled; }, set: function (e) { this._depthOfFieldEnabled !== e && ((this._depthOfFieldEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "depthOfFieldBlurLevel", { get: function () { return this._depthOfFieldBlurLevel; }, set: function (e) { if (this._depthOfFieldBlurLevel !== e) { this._depthOfFieldBlurLevel = e; var t = this.depthOfField; (this.depthOfField = new Ku(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, !1)), (this.depthOfField.focalLength = t.focalLength), (this.depthOfField.focusDistance = t.focusDistance), (this.depthOfField.fStop = t.fStop), (this.depthOfField.lensSize = t.lensSize); for (var n = 0; n < this._cameras.length; n++) t.disposeEffects(this._cameras[n]); this._buildPipeline(); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fxaaEnabled", { get: function () { return this._fxaaEnabled; }, set: function (e) { this._fxaaEnabled !== e && ((this._fxaaEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "samples", { get: function () { return this._samples; }, set: function (e) { this._samples !== e && ((this._samples = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "imageProcessingEnabled", { get: function () { return this._imageProcessingEnabled; }, set: function (e) { this._imageProcessingEnabled !== e && ((this._imageProcessingEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "glowLayerEnabled", { get: function () { return null != this._glowLayer; }, set: function (e) { e && !this._glowLayer ? (this._glowLayer = new Uo("", this._scene)) : !e && this._glowLayer && (this._glowLayer.dispose(), (this._glowLayer = null)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "glowLayer", { get: function () { return this._glowLayer; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "chromaticAberrationEnabled", { get: function () { return this._chromaticAberrationEnabled; }, set: function (e) { this._chromaticAberrationEnabled !== e && ((this._chromaticAberrationEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "grainEnabled", { get: function () { return this._grainEnabled; }, set: function (e) { this._grainEnabled !== e && ((this._grainEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "DefaultRenderingPipeline"; }), (t.prototype.prepare = function () { var e = this._buildAllowed; (this._buildAllowed = !0), this._buildPipeline(), (this._buildAllowed = e); }), (t.prototype._setAutoClearAndTextureSharing = function (e, t) { void 0 === t && (t = !1), this._hasCleared ? (e.autoClear = !1) : ((e.autoClear = !0), (this._scene.autoClear = !1), (this._hasCleared = !0)), t || (this._prevPrevPostProcess ? e.shareOutputWith(this._prevPrevPostProcess) : e.useOwnOutput(), this._prevPostProcess && (this._prevPrevPostProcess = this._prevPostProcess), (this._prevPostProcess = e)); }), (t.prototype._buildPipeline = function () { var e = this; if (this._buildAllowed) { this._scene.autoClear = !0; var t = this._scene.getEngine(); if ( (this._disposePostProcesses(), null !== this._cameras && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), (this._cameras = this._camerasToBeAttached.slice())), this._reset(), (this._prevPostProcess = null), (this._prevPrevPostProcess = null), (this._hasCleared = !1), this.depthOfFieldEnabled) ) { if (this._cameras.length > 1) { for (var n = 0, i = this._cameras; n < i.length; n++) { var r = i[n]; (o = this._scene.enableDepthRenderer(r)).useOnlyInActiveCamera = !0; } this._depthOfFieldSceneObserver = this._scene.onAfterRenderTargetsRenderObservable.add(function (t) { e._cameras.indexOf(t.activeCamera) > -1 && (e.depthOfField.depthTexture = t.enableDepthRenderer(t.activeCamera).getDepthMap()); }); } else { this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver); var o = this._scene.enableDepthRenderer(this._cameras[0]); this.depthOfField.depthTexture = o.getDepthMap(); } this.depthOfField._isReady() || this.depthOfField._updateEffects(), this.addEffect(this.depthOfField), this._setAutoClearAndTextureSharing(this.depthOfField._effects[0], !0); } else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver); this.bloomEnabled && (this.bloom._isReady() || this.bloom._updateEffects(), this.addEffect(this.bloom), this._setAutoClearAndTextureSharing(this.bloom._effects[0], !0)), this._imageProcessingEnabled && ((this.imageProcessing = new Dn("imageProcessing", 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._defaultPipelineTextureType)), this._hdr ? (this.addEffect( new Au( t, this.ImageProcessingPostProcessId, function () { return e.imageProcessing; }, !0 ) ), this._setAutoClearAndTextureSharing(this.imageProcessing)) : (this._scene.imageProcessingConfiguration.applyByPostProcess = !1)), this.sharpenEnabled && (this.sharpen.isReady() || this.sharpen.updateEffect(), this.addEffect(this._sharpenEffect), this._setAutoClearAndTextureSharing(this.sharpen)), this.grainEnabled && (this.grain.isReady() || this.grain.updateEffect(), this.addEffect(this._grainEffect), this._setAutoClearAndTextureSharing(this.grain)), this.chromaticAberrationEnabled && (this.chromaticAberration.isReady() || this.chromaticAberration.updateEffect(), this.addEffect(this._chromaticAberrationEffect), this._setAutoClearAndTextureSharing(this.chromaticAberration)), this.fxaaEnabled && ((this.fxaa = new th("fxaa", 1, null, ln.a.BILINEAR_SAMPLINGMODE, t, !1, this._defaultPipelineTextureType)), this.addEffect( new Au( t, this.FxaaPostProcessId, function () { return e.fxaa; }, !0 ) ), this._setAutoClearAndTextureSharing(this.fxaa, !0)), null !== this._cameras && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras), this._scene.activeCameras && this._scene.activeCameras.length > 1 && (this._scene.autoClear = !0), !this._enableMSAAOnFirstPostProcess(this.samples) && this.samples > 1 && g.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0"); } }), (t.prototype._disposePostProcesses = function (e) { void 0 === e && (e = !1); for (var t = 0; t < this._cameras.length; t++) { var n = this._cameras[t]; this.imageProcessing && this.imageProcessing.dispose(n), this.fxaa && this.fxaa.dispose(n), e && (this.sharpen && this.sharpen.dispose(n), this.depthOfField && (this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver), this.depthOfField.disposeEffects(n)), this.bloom && this.bloom.disposeEffects(n), this.chromaticAberration && this.chromaticAberration.dispose(n), this.grain && this.grain.dispose(n), this._glowLayer && this._glowLayer.dispose()); } (this.imageProcessing = null), (this.fxaa = null), e && ((this.sharpen = null), (this._sharpenEffect = null), (this.depthOfField = null), (this.bloom = null), (this.chromaticAberration = null), (this._chromaticAberrationEffect = null), (this.grain = null), (this._grainEffect = null), (this._glowLayer = null)); }), (t.prototype.addCamera = function (e) { this._camerasToBeAttached.push(e), this._buildPipeline(); }), (t.prototype.removeCamera = function (e) { var t = this._camerasToBeAttached.indexOf(e); this._camerasToBeAttached.splice(t, 1), this._buildPipeline(); }), (t.prototype.dispose = function () { this._disposePostProcesses(!0), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), (this._scene.autoClear = !0), this._resizeObserver && (this._scene.getEngine().onResizeObservable.remove(this._resizeObserver), (this._resizeObserver = null)), this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver), e.prototype.dispose.call(this); }), (t.prototype.serialize = function () { var e = He.a.Serialize(this); return (e.customType = "DefaultRenderingPipeline"), e; }), (t.Parse = function (e, n, i) { return He.a.Parse( function () { return new t(e._name, e._name._hdr, n); }, e, n, i ); }), Object(h.c)([Object(He.c)()], t.prototype, "sharpenEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "bloomKernel", null), Object(h.c)([Object(He.c)()], t.prototype, "_bloomWeight", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_bloomThreshold", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_hdr", void 0), Object(h.c)([Object(He.c)()], t.prototype, "bloomWeight", null), Object(h.c)([Object(He.c)()], t.prototype, "bloomThreshold", null), Object(h.c)([Object(He.c)()], t.prototype, "bloomScale", null), Object(h.c)([Object(He.c)()], t.prototype, "bloomEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldBlurLevel", null), Object(h.c)([Object(He.c)()], t.prototype, "fxaaEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "samples", null), Object(h.c)([Object(He.c)()], t.prototype, "imageProcessingEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "glowLayerEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "chromaticAberrationEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "grainEnabled", null), t ); })(gh); c.a.RegisteredTypes["BABYLON.DefaultRenderingPipeline"] = vh; var yh = "\nuniform sampler2D textureSampler;\n\nuniform float gain;\nuniform float threshold;\nuniform float screen_width;\nuniform float screen_height;\n\nvarying vec2 vUV;\n\nvec4 highlightColor(vec4 color) {\nvec4 highlight=color;\nfloat luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));\nfloat lum_threshold;\nif (threshold>1.0) { lum_threshold=0.94+0.01*threshold; }\nelse { lum_threshold=0.5+0.44*threshold; }\nluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);\nhighlight*=luminance*gain;\nhighlight.a=1.0;\nreturn highlight;\n}\nvoid main(void)\n{\nvec4 original=texture2D(textureSampler,vUV);\n\nif (gain == -1.0) {\ngl_FragColor=vec4(0.0,0.0,0.0,1.0);\nreturn;\n}\nfloat w=2.0/screen_width;\nfloat h=2.0/screen_height;\nfloat weight=1.0;\n\nvec4 blurred=vec4(0.0,0.0,0.0,0.0);\n#ifdef PENTAGON\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\n#else\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\n#endif\nblurred/=39.0;\ngl_FragColor=blurred;\n\n}"; Xt.a.ShadersStore.lensHighlightsPixelShader = yh; var Ch = "\n\n\n\n\nuniform sampler2D textureSampler;\nuniform sampler2D highlightsSampler;\nuniform sampler2D depthSampler;\nuniform sampler2D grainSampler;\n\nuniform float grain_amount;\nuniform bool blur_noise;\nuniform float screen_width;\nuniform float screen_height;\nuniform float distortion;\nuniform bool dof_enabled;\n\nuniform float screen_distance;\nuniform float aperture;\nuniform float darken;\nuniform float edge_blur;\nuniform bool highlights;\n\nuniform float near;\nuniform float far;\n\nvarying vec2 vUV;\n\n#define PI 3.14159265\n#define TWOPI 6.28318530\n#define inverse_focal_length 0.1\n\nvec2 centered_screen_pos;\nvec2 distorted_coords;\nfloat radius2;\nfloat radius;\n\nvec2 rand(vec2 co)\n{\nfloat noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));\nfloat noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));\nreturn clamp(vec2(noise1,noise2),0.0,1.0);\n}\n\nvec2 getDistortedCoords(vec2 coords) {\nif (distortion == 0.0) { return coords; }\nvec2 direction=1.0*normalize(centered_screen_pos);\nvec2 dist_coords=vec2(0.5,0.5);\ndist_coords.x=0.5+direction.x*radius2*1.0;\ndist_coords.y=0.5+direction.y*radius2*1.0;\nfloat dist_amount=clamp(distortion*0.23,0.0,1.0);\ndist_coords=mix(coords,dist_coords,dist_amount);\nreturn dist_coords;\n}\n\nfloat sampleScreen(inout vec4 color,const in vec2 offset,const in float weight) {\n\nvec2 coords=distorted_coords;\nfloat angle=rand(coords*100.0).x*TWOPI;\ncoords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));\ncolor+=texture2D(textureSampler,coords)*weight;\nreturn weight;\n}\n\nfloat getBlurLevel(float size) {\nreturn min(3.0,ceil(size/1.0));\n}\n\nvec4 getBlurColor(float size) {\nvec4 col=texture2D(textureSampler,distorted_coords);\nif (size == 0.0) { return col; }\n\n\nfloat blur_level=getBlurLevel(size);\nfloat w=(size/screen_width);\nfloat h=(size/screen_height);\nfloat total_weight=1.0;\nvec2 sample_coords;\ntotal_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);\ntotal_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);\ntotal_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);\ntotal_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);\ntotal_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);\ntotal_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);\ntotal_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);\ntotal_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);\ntotal_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);\ntotal_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);\nif (blur_level>1.0) {\ntotal_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);\ntotal_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);\ntotal_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);\ntotal_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);\ntotal_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);\ntotal_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);\ntotal_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);\ntotal_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);\ntotal_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);\ntotal_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);\n}\nif (blur_level>2.0) {\ntotal_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);\ntotal_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);\ntotal_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);\ntotal_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);\ntotal_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);\ntotal_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);\ntotal_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);\ntotal_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);\ntotal_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);\n}\ncol/=total_weight;\n\nif (darken>0.0) {\ncol.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);\n}\n\n\n\n\nreturn col;\n}\nvoid main(void)\n{\n\ncentered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);\nradius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;\nradius=sqrt(radius2);\ndistorted_coords=getDistortedCoords(vUV);\nvec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height);\nfloat depth=texture2D(depthSampler,distorted_coords).r;\nfloat distance=near+(far-near)*depth;\nvec4 color=texture2D(textureSampler,vUV);\n\n\nfloat coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));\n\nif (dof_enabled == false || coc<0.07) { coc=0.0; }\n\nfloat edge_blur_amount=0.0;\nif (edge_blur>0.0) {\nedge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;\n}\n\nfloat blur_amount=max(edge_blur_amount,coc);\n\nif (blur_amount == 0.0) {\ngl_FragColor=texture2D(textureSampler,distorted_coords);\n}\nelse {\n\ngl_FragColor=getBlurColor(blur_amount*1.7);\n\nif (highlights) {\ngl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;\n}\nif (blur_noise) {\n\nvec2 noise=rand(distorted_coords)*0.01*blur_amount;\nvec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);\ngl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;\n}\n}\n\nif (grain_amount>0.0) {\nvec4 grain_color=texture2D(grainSampler,texels_coords*0.003);\ngl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;\n}\n}\n"; Xt.a.ShadersStore.depthOfFieldPixelShader = Ch; var Ph = (function (e) { function t(t, n, i, r, o) { void 0 === r && (r = 1); var a = e.call(this, i.getEngine(), t) || this; return ( (a.LensChromaticAberrationEffect = "LensChromaticAberrationEffect"), (a.HighlightsEnhancingEffect = "HighlightsEnhancingEffect"), (a.LensDepthOfFieldEffect = "LensDepthOfFieldEffect"), (a._pentagonBokehIsEnabled = !1), (a._scene = i), (a._depthTexture = i.enableDepthRenderer().getDepthMap()), n.grain_texture ? (a._grainTexture = n.grain_texture) : a._createGrainTexture(), (a._edgeBlur = n.edge_blur ? n.edge_blur : 0), (a._grainAmount = n.grain_amount ? n.grain_amount : 0), (a._chromaticAberration = n.chromatic_aberration ? n.chromatic_aberration : 0), (a._distortion = n.distortion ? n.distortion : 0), (a._highlightsGain = void 0 !== n.dof_gain ? n.dof_gain : -1), (a._highlightsThreshold = n.dof_threshold ? n.dof_threshold : 1), (a._dofDistance = void 0 !== n.dof_focus_distance ? n.dof_focus_distance : -1), (a._dofAperture = n.dof_aperture ? n.dof_aperture : 1), (a._dofDarken = n.dof_darken ? n.dof_darken : 0), (a._dofPentagon = void 0 === n.dof_pentagon || n.dof_pentagon), (a._blurNoise = void 0 === n.blur_noise || n.blur_noise), a._createChromaticAberrationPostProcess(r), a._createHighlightsPostProcess(r), a._createDepthOfFieldPostProcess(r / 4), a.addEffect( new Au( i.getEngine(), a.LensChromaticAberrationEffect, function () { return a._chromaticAberrationPostProcess; }, !0 ) ), a.addEffect( new Au( i.getEngine(), a.HighlightsEnhancingEffect, function () { return a._highlightsPostProcess; }, !0 ) ), a.addEffect( new Au( i.getEngine(), a.LensDepthOfFieldEffect, function () { return a._depthOfFieldPostProcess; }, !0 ) ), -1 === a._highlightsGain && a._disableEffect(a.HighlightsEnhancingEffect, null), i.postProcessRenderPipelineManager.addPipeline(a), o && i.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(t, o), a ); } return ( Object(h.d)(t, e), (t.prototype.getClassName = function () { return "LensRenderingPipeline"; }), Object.defineProperty(t.prototype, "scene", { get: function () { return this._scene; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "edgeBlur", { get: function () { return this._edgeBlur; }, set: function (e) { this.setEdgeBlur(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "grainAmount", { get: function () { return this._grainAmount; }, set: function (e) { this.setGrainAmount(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "chromaticAberration", { get: function () { return this._chromaticAberration; }, set: function (e) { this.setChromaticAberration(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dofAperture", { get: function () { return this._dofAperture; }, set: function (e) { this.setAperture(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "edgeDistortion", { get: function () { return this._distortion; }, set: function (e) { this.setEdgeDistortion(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "dofDistortion", { get: function () { return this._dofDistance; }, set: function (e) { this.setFocusDistance(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "darkenOutOfFocus", { get: function () { return this._dofDarken; }, set: function (e) { this.setDarkenOutOfFocus(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "blurNoise", { get: function () { return this._blurNoise; }, set: function (e) { this._blurNoise = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "pentagonBokeh", { get: function () { return this._pentagonBokehIsEnabled; }, set: function (e) { e ? this.enablePentagonBokeh() : this.disablePentagonBokeh(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "highlightsGain", { get: function () { return this._highlightsGain; }, set: function (e) { this.setHighlightsGain(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "highlightsThreshold", { get: function () { return this._highlightsThreshold; }, set: function (e) { this.setHighlightsThreshold(e); }, enumerable: !0, configurable: !0, }), (t.prototype.setEdgeBlur = function (e) { this._edgeBlur = e; }), (t.prototype.disableEdgeBlur = function () { this._edgeBlur = 0; }), (t.prototype.setGrainAmount = function (e) { this._grainAmount = e; }), (t.prototype.disableGrain = function () { this._grainAmount = 0; }), (t.prototype.setChromaticAberration = function (e) { this._chromaticAberration = e; }), (t.prototype.disableChromaticAberration = function () { this._chromaticAberration = 0; }), (t.prototype.setEdgeDistortion = function (e) { this._distortion = e; }), (t.prototype.disableEdgeDistortion = function () { this._distortion = 0; }), (t.prototype.setFocusDistance = function (e) { this._dofDistance = e; }), (t.prototype.disableDepthOfField = function () { this._dofDistance = -1; }), (t.prototype.setAperture = function (e) { this._dofAperture = e; }), (t.prototype.setDarkenOutOfFocus = function (e) { this._dofDarken = e; }), (t.prototype.enablePentagonBokeh = function () { this._highlightsPostProcess.updateEffect("#define PENTAGON\n"), (this._pentagonBokehIsEnabled = !0); }), (t.prototype.disablePentagonBokeh = function () { (this._pentagonBokehIsEnabled = !1), this._highlightsPostProcess.updateEffect(); }), (t.prototype.enableNoiseBlur = function () { this._blurNoise = !0; }), (t.prototype.disableNoiseBlur = function () { this._blurNoise = !1; }), (t.prototype.setHighlightsGain = function (e) { this._highlightsGain = e; }), (t.prototype.setHighlightsThreshold = function (e) { -1 === this._highlightsGain && (this._highlightsGain = 1), (this._highlightsThreshold = e); }), (t.prototype.disableHighlights = function () { this._highlightsGain = -1; }), (t.prototype.dispose = function (e) { void 0 === e && (e = !1), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras), (this._chromaticAberrationPostProcess = null), (this._highlightsPostProcess = null), (this._depthOfFieldPostProcess = null), this._grainTexture.dispose(), e && this._scene.disableDepthRenderer(); }), (t.prototype._createChromaticAberrationPostProcess = function (e) { var t = this; (this._chromaticAberrationPostProcess = new Wt.a( "LensChromaticAberration", "chromaticAberration", ["chromatic_aberration", "screen_width", "screen_height", "direction", "radialIntensity", "centerPosition"], [], e, null, ln.a.TRILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1 )), (this._chromaticAberrationPostProcess.onApply = function (e) { e.setFloat("chromatic_aberration", t._chromaticAberration), e.setFloat("screen_width", t._scene.getEngine().getRenderWidth()), e.setFloat("screen_height", t._scene.getEngine().getRenderHeight()), e.setFloat("radialIntensity", 1), e.setFloat2("direction", 17, 17), e.setFloat2("centerPosition", 0.5, 0.5); }); }), (t.prototype._createHighlightsPostProcess = function (e) { var t = this; (this._highlightsPostProcess = new Wt.a( "LensHighlights", "lensHighlights", ["gain", "threshold", "screen_width", "screen_height"], [], e, null, ln.a.TRILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, this._dofPentagon ? "#define PENTAGON\n" : "" )), (this._highlightsPostProcess.onApply = function (e) { e.setFloat("gain", t._highlightsGain), e.setFloat("threshold", t._highlightsThreshold), e.setTextureFromPostProcess("textureSampler", t._chromaticAberrationPostProcess), e.setFloat("screen_width", t._scene.getEngine().getRenderWidth()), e.setFloat("screen_height", t._scene.getEngine().getRenderHeight()); }); }), (t.prototype._createDepthOfFieldPostProcess = function (e) { var t = this; (this._depthOfFieldPostProcess = new Wt.a( "LensDepthOfField", "depthOfField", ["grain_amount", "blur_noise", "screen_width", "screen_height", "distortion", "dof_enabled", "screen_distance", "aperture", "darken", "edge_blur", "highlights", "near", "far"], ["depthSampler", "grainSampler", "highlightsSampler"], e, null, ln.a.TRILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1 )), (this._depthOfFieldPostProcess.onApply = function (e) { e.setTexture("depthSampler", t._depthTexture), e.setTexture("grainSampler", t._grainTexture), e.setTextureFromPostProcess("textureSampler", t._highlightsPostProcess), e.setTextureFromPostProcess("highlightsSampler", t._depthOfFieldPostProcess), e.setFloat("grain_amount", t._grainAmount), e.setBool("blur_noise", t._blurNoise), e.setFloat("screen_width", t._scene.getEngine().getRenderWidth()), e.setFloat("screen_height", t._scene.getEngine().getRenderHeight()), e.setFloat("distortion", t._distortion), e.setBool("dof_enabled", -1 !== t._dofDistance), e.setFloat("screen_distance", 1 / (0.1 - 1 / t._dofDistance)), e.setFloat("aperture", t._dofAperture), e.setFloat("darken", t._dofDarken), e.setFloat("edge_blur", t._edgeBlur), e.setBool("highlights", -1 !== t._highlightsGain), t._scene.activeCamera && (e.setFloat("near", t._scene.activeCamera.minZ), e.setFloat("far", t._scene.activeCamera.maxZ)); }); }), (t.prototype._createGrainTexture = function () { (this._grainTexture = new An.a("LensNoiseTexture", 512, this._scene, !1, ln.a.BILINEAR_SAMPLINGMODE)), (this._grainTexture.wrapU = ln.a.WRAP_ADDRESSMODE), (this._grainTexture.wrapV = ln.a.WRAP_ADDRESSMODE); for (var e, t, n, i = this._grainTexture.getContext(), r = 0; r < 512; r++) for (var o = 0; o < 512; o++) (e = Math.floor(255 * ((t = 0.42), (n = 0.58), Math.random() * (n - t) + t))), (i.fillStyle = "rgb(" + e + ", " + e + ", " + e + ")"), i.fillRect(r, o, 1, 1); this._grainTexture.update(!1); }), t ); })(gh), xh = "\nprecision highp float;\nuniform sampler2D textureSampler;\nuniform float near;\nuniform float far;\nuniform float radius;\nfloat scales[16]=float[16](\n0.1,\n0.11406250000000001,\n0.131640625,\n0.15625,\n0.187890625,\n0.2265625,\n0.272265625,\n0.325,\n0.384765625,\n0.4515625,\n0.525390625,\n0.60625,\n0.694140625,\n0.7890625,\n0.891015625,\n1.0\n);\nvarying vec2 vUV;\nfloat perspectiveDepthToViewZ( const in float invClipZ,const in float near,const in float far ) {\nreturn ( near*far )/( ( far-near )*invClipZ-far );\n}\nfloat viewZToPerspectiveDepth( const in float viewZ,const in float near,const in float far ) {\nreturn ( near*far/viewZ+far)/( far-near );\n}\nfloat viewZToOrthographicDepth( const in float viewZ,const in float near,const in float far ) {\nreturn ( viewZ+near )/( near-far );\n}\n#ifdef SSAO\nuniform sampler2D randomSampler;\nuniform sampler2D normalSampler;\nuniform float randTextureTiles;\nuniform float samplesFactor;\nuniform vec3 sampleSphere[SAMPLES];\nuniform float totalStrength;\nuniform float base;\nuniform float xViewport;\nuniform float yViewport;\nuniform float maxZ;\nuniform float minZAspect;\nuniform vec2 texelSize;\nuniform mat4 projection;\nvoid main()\n{\nvec3 random=texture2D(randomSampler,vUV*randTextureTiles).rgb;\nfloat depth=texture2D(textureSampler,vUV).r;\nfloat depthSign=depth/abs(depth);\ndepth=depth*depthSign;\nvec3 normal=texture2D(normalSampler,vUV).rgb;\nfloat occlusion=0.0;\nfloat correctedRadius=min(radius,minZAspect*depth/near);\nvec3 vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);\nvec3 origin=vViewRay*depth;\nvec3 rvec=random*2.0-1.0;\nrvec.z=0.0;\n\nfloat dotProduct=dot(rvec,normal);\nrvec=1.0-abs(dotProduct)>1e-2 ? rvec : vec3(-rvec.y,0.0,rvec.x);\nvec3 tangent=normalize(rvec-normal*dot(rvec,normal));\nvec3 bitangent=cross(normal,tangent);\nmat3 tbn=mat3(tangent,bitangent,normal);\nfloat difference;\nfor (int i=0; i1.0 || offset.y>1.0) {\ncontinue;\n}\n\nfloat sampleDepth=abs(texture2D(textureSampler,offset.xy).r);\n\ndifference=depthSign*samplePosition.z-sampleDepth;\nfloat rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);\nocclusion+=(difference>=0.0 ? 1.0 : 0.0)*rangeCheck;\n}\nocclusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));\nfloat ao=1.0-totalStrength*occlusion*samplesFactor;\nfloat result=clamp(ao+base,0.0,1.0);\ngl_FragColor=vec4(vec3(result),1.0);\n}\n#endif\n#ifdef BILATERAL_BLUR\nuniform sampler2D depthSampler;\nuniform float outSize;\nuniform float samplerOffsets[SAMPLES];\nvec4 blur9(sampler2D image,vec2 uv,float resolution,vec2 direction) {\nvec4 color=vec4(0.0);\nvec2 off1=vec2(1.3846153846)*direction;\nvec2 off2=vec2(3.2307692308)*direction;\ncolor+=texture2D(image,uv)*0.2270270270;\ncolor+=texture2D(image,uv+(off1/resolution))*0.3162162162;\ncolor+=texture2D(image,uv-(off1/resolution))*0.3162162162;\ncolor+=texture2D(image,uv+(off2/resolution))*0.0702702703;\ncolor+=texture2D(image,uv-(off2/resolution))*0.0702702703;\nreturn color;\n}\nvec4 blur13(sampler2D image,vec2 uv,float resolution,vec2 direction) {\nvec4 color=vec4(0.0);\nvec2 off1=vec2(1.411764705882353)*direction;\nvec2 off2=vec2(3.2941176470588234)*direction;\nvec2 off3=vec2(5.176470588235294)*direction;\ncolor+=texture2D(image,uv)*0.1964825501511404;\ncolor+=texture2D(image,uv+(off1/resolution))*0.2969069646728344;\ncolor+=texture2D(image,uv-(off1/resolution))*0.2969069646728344;\ncolor+=texture2D(image,uv+(off2/resolution))*0.09447039785044732;\ncolor+=texture2D(image,uv-(off2/resolution))*0.09447039785044732;\ncolor+=texture2D(image,uv+(off3/resolution))*0.010381362401148057;\ncolor+=texture2D(image,uv-(off3/resolution))*0.010381362401148057;\nreturn color;\n}\nvec4 blur13Bilateral(sampler2D image,vec2 uv,float resolution,vec2 direction) {\nvec4 color=vec4(0.0);\nvec2 off1=vec2(1.411764705882353)*direction;\nvec2 off2=vec2(3.2941176470588234)*direction;\nvec2 off3=vec2(5.176470588235294)*direction;\nfloat compareDepth=abs(texture2D(depthSampler,uv).r);\nfloat sampleDepth;\nfloat weight;\nfloat weightSum=30.0;\ncolor+=texture2D(image,uv)*30.0;\nsampleDepth=abs(texture2D(depthSampler,uv+(off1/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv+(off1/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv-(off1/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv-(off1/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv+(off2/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv+(off2/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv-(off2/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv-(off2/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv+(off3/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv+(off3/resolution))*weight;\nsampleDepth=abs(texture2D(depthSampler,uv-(off3/resolution)).r);\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\nweightSum+=weight;\ncolor+=texture2D(image,uv-(off3/resolution))*weight;\nreturn color/weightSum;\n}\nvoid main()\n{\n#if EXPENSIVE\nfloat compareDepth=abs(texture2D(depthSampler,vUV).r);\nfloat texelsize=1.0/outSize;\nfloat result=0.0;\nfloat weightSum=0.0;\nfor (int i=0; i 0 ? n._ssaoCombinePostProcess.width : n._originalColorPostProcess.width), e.setFloat("near", n._scene.activeCamera.minZ), e.setFloat("far", n._scene.activeCamera.maxZ), e.setFloat("radius", n.radius), e.setTexture("depthSampler", n._depthTexture), e.setArray("samplerOffsets", n._samplerOffsets)); }), (this._blurVPostProcess = new Wt.a( "BlurV", "ssao2", ["outSize", "samplerOffsets", "near", "far", "radius"], ["depthSampler"], t, null, ln.a.TRILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, "#define BILATERAL_BLUR\n#define BILATERAL_BLUR_V\n#define SAMPLES 16\n#define EXPENSIVE " + (i ? "1" : "0") + "\n" )), (this._blurVPostProcess.onApply = function (e) { n._scene.activeCamera && (e.setFloat("outSize", n._ssaoCombinePostProcess.height > 0 ? n._ssaoCombinePostProcess.height : n._originalColorPostProcess.height), e.setFloat("near", n._scene.activeCamera.minZ), e.setFloat("far", n._scene.activeCamera.maxZ), e.setFloat("radius", n.radius), e.setTexture("depthSampler", n._depthTexture), e.setArray("samplerOffsets", n._samplerOffsets)); }), (this._blurHPostProcess.samples = this.textureSamples), (this._blurVPostProcess.samples = this.textureSamples); }), (t.prototype._rebuild = function () { e.prototype._rebuild.call(this); }), (t.prototype._radicalInverse_VdC = function (e) { return ( (this._bits[0] = e), (this._bits[0] = ((this._bits[0] << 16) | (this._bits[0] >> 16)) >>> 0), (this._bits[0] = ((1431655765 & this._bits[0]) << 1) | (((2863311530 & this._bits[0]) >>> 1) >>> 0)), (this._bits[0] = ((858993459 & this._bits[0]) << 2) | (((3435973836 & this._bits[0]) >>> 2) >>> 0)), (this._bits[0] = ((252645135 & this._bits[0]) << 4) | (((4042322160 & this._bits[0]) >>> 4) >>> 0)), (this._bits[0] = ((16711935 & this._bits[0]) << 8) | (((4278255360 & this._bits[0]) >>> 8) >>> 0)), 2.3283064365386963e-10 * this._bits[0] ); }), (t.prototype._hammersley = function (e, t) { return [e / t, this._radicalInverse_VdC(e)]; }), (t.prototype._hemisphereSample_uniform = function (e, t) { var n = 2 * t * Math.PI, i = 1 - (0.85 * e + 0.15), r = Math.sqrt(1 - i * i); return new a.e(Math.cos(n) * r, Math.sin(n) * r, i); }), (t.prototype._generateHemisphere = function () { for (var e, t = this.samples, n = [], i = 0; i < t; ) { if (t < 16) e = this._hemisphereSample_uniform(Math.random(), Math.random()); else { var r = this._hammersley(i, t); e = this._hemisphereSample_uniform(r[0], r[1]); } n.push(e.x, e.y, e.z), i++; } return n; }), (t.prototype._createSSAOPostProcess = function (e) { var t = this, n = this.samples; (this._sampleSphere = this._generateHemisphere()), (this._ssaoPostProcess = new Wt.a( "ssao2", "ssao2", ["sampleSphere", "samplesFactor", "randTextureTiles", "totalStrength", "radius", "base", "range", "projection", "near", "far", "texelSize", "xViewport", "yViewport", "maxZ", "minZAspect"], ["randomSampler", "normalSampler"], e, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, "#define SAMPLES " + n + "\n#define SSAO" )), (this._ssaoPostProcess.onApply = function (e) { t._scene.activeCamera && (e.setArray3("sampleSphere", t._sampleSphere), e.setFloat("randTextureTiles", 32), e.setFloat("samplesFactor", 1 / t.samples), e.setFloat("totalStrength", t.totalStrength), e.setFloat2("texelSize", 1 / t._ssaoPostProcess.width, 1 / t._ssaoPostProcess.height), e.setFloat("radius", t.radius), e.setFloat("maxZ", t.maxZ), e.setFloat("minZAspect", t.minZAspect), e.setFloat("base", t.base), e.setFloat("near", t._scene.activeCamera.minZ), e.setFloat("far", t._scene.activeCamera.maxZ), e.setFloat("xViewport", Math.tan(t._scene.activeCamera.fov / 2) * t._scene.getEngine().getAspectRatio(t._scene.activeCamera, !0)), e.setFloat("yViewport", Math.tan(t._scene.activeCamera.fov / 2)), e.setMatrix("projection", t._scene.getProjectionMatrix()), e.setTexture("textureSampler", t._depthTexture), e.setTexture("normalSampler", t._normalTexture), e.setTexture("randomSampler", t._randomTexture)); }), (this._ssaoPostProcess.samples = this.textureSamples); }), (t.prototype._createSSAOCombinePostProcess = function (e) { var t = this; (this._ssaoCombinePostProcess = new Wt.a("ssaoCombine", "ssaoCombine", [], ["originalColor", "viewport"], e, null, ln.a.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1)), (this._ssaoCombinePostProcess.onApply = function (e) { var n = t._scene.activeCamera.viewport; e.setVector4("viewport", a.c.Vector4[0].copyFromFloats(n.x, n.y, n.width, n.height)), e.setTextureFromPostProcess("originalColor", t._originalColorPostProcess); }), (this._ssaoCombinePostProcess.samples = this.textureSamples); }), (t.prototype._createRandomTexture = function () { (this._randomTexture = new An.a("SSAORandomTexture", 128, this._scene, !1, ln.a.TRILINEAR_SAMPLINGMODE)), (this._randomTexture.wrapU = ln.a.WRAP_ADDRESSMODE), (this._randomTexture.wrapV = ln.a.WRAP_ADDRESSMODE); for ( var e = this._randomTexture.getContext(), t = function (e, t) { return Math.random() * (t - e) + e; }, n = a.e.Zero(), i = 0; i < 128; i++ ) for (var r = 0; r < 128; r++) (n.x = t(0, 1)), (n.y = t(0, 1)), (n.z = 0), n.normalize(), n.scaleInPlace(255), (n.x = Math.floor(n.x)), (n.y = Math.floor(n.y)), (e.fillStyle = "rgb(" + n.x + ", " + n.y + ", " + n.z + ")"), e.fillRect(i, r, 1, 1); this._randomTexture.update(!1); }), (t.prototype.serialize = function () { var e = He.a.Serialize(this); return (e.customType = "SSAO2RenderingPipeline"), e; }), (t.Parse = function (e, n, i) { return He.a.Parse( function () { return new t(e._name, n, e._ratio); }, e, n, i ); }), Object(h.c)([Object(He.c)()], t.prototype, "totalStrength", void 0), Object(h.c)([Object(He.c)()], t.prototype, "maxZ", void 0), Object(h.c)([Object(He.c)()], t.prototype, "minZAspect", void 0), Object(h.c)([Object(He.c)("samples")], t.prototype, "_samples", void 0), Object(h.c)([Object(He.c)("textureSamples")], t.prototype, "_textureSamples", void 0), Object(h.c)([Object(He.c)()], t.prototype, "_ratio", void 0), Object(h.c)([Object(He.c)("expensiveBlur")], t.prototype, "_expensiveBlur", void 0), Object(h.c)([Object(He.c)()], t.prototype, "radius", void 0), Object(h.c)([Object(He.c)()], t.prototype, "base", void 0), t ); })(gh); c.a.RegisteredTypes["BABYLON.SSAO2RenderingPipeline"] = Sh; var Oh = "\nuniform sampler2D textureSampler;\nvarying vec2 vUV;\n#ifdef SSAO\nuniform sampler2D randomSampler;\nuniform float randTextureTiles;\nuniform float samplesFactor;\nuniform vec3 sampleSphere[SAMPLES];\nuniform float totalStrength;\nuniform float radius;\nuniform float area;\nuniform float fallOff;\nuniform float base;\nvec3 normalFromDepth(float depth,vec2 coords)\n{\nvec2 offset1=vec2(0.0,radius);\nvec2 offset2=vec2(radius,0.0);\nfloat depth1=texture2D(textureSampler,coords+offset1).r;\nfloat depth2=texture2D(textureSampler,coords+offset2).r;\nvec3 p1=vec3(offset1,depth1-depth);\nvec3 p2=vec3(offset2,depth2-depth);\nvec3 normal=cross(p1,p2);\nnormal.z=-normal.z;\nreturn normalize(normal);\n}\nvoid main()\n{\nvec3 random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);\nfloat depth=texture2D(textureSampler,vUV).r;\nvec3 position=vec3(vUV,depth);\nvec3 normal=normalFromDepth(depth,vUV);\nfloat radiusDepth=radius/depth;\nfloat occlusion=0.0;\nvec3 ray;\nvec3 hemiRay;\nfloat occlusionDepth;\nfloat difference;\nfor (int i=0; i> 0)), e.push("#define SMOOTH_STEPS " + (this._smoothSteps >> 0)), this.updateEffect(e.join("\n")); }), Object(h.c)([Object(He.c)()], t.prototype, "threshold", void 0), Object(h.c)([Object(He.c)()], t.prototype, "strength", void 0), Object(h.c)([Object(He.c)()], t.prototype, "reflectionSpecularFalloffExponent", void 0), Object(h.c)([Object(He.c)()], t.prototype, "step", void 0), Object(h.c)([Object(He.c)()], t.prototype, "roughnessFactor", void 0), Object(h.c)([Object(He.c)()], t.prototype, "enableSmoothReflections", null), Object(h.c)([Object(He.c)()], t.prototype, "reflectionSamples", null), Object(h.c)([Object(He.c)()], t.prototype, "smoothSteps", null), t ); })(Wt.a), Ih = "uniform sampler2D textureSampler;\nvarying vec2 vUV;\n#if defined(PASS_POST_PROCESS)\nvoid main(void)\n{\nvec4 color=texture2D(textureSampler,vUV);\ngl_FragColor=color;\n}\n#endif\n#if defined(DOWN_SAMPLE_X4)\nuniform vec2 dsOffsets[16];\nvoid main(void)\n{\nvec4 average=vec4(0.0,0.0,0.0,0.0);\naverage=texture2D(textureSampler,vUV+dsOffsets[0]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[1]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[2]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[3]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[4]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[5]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[6]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[7]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[8]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[9]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[10]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[11]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[12]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[13]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[14]);\naverage+=texture2D(textureSampler,vUV+dsOffsets[15]);\naverage/=16.0;\ngl_FragColor=average;\n}\n#endif\n#if defined(BRIGHT_PASS)\nuniform vec2 dsOffsets[4];\nuniform float brightThreshold;\nvoid main(void)\n{\nvec4 average=vec4(0.0,0.0,0.0,0.0);\naverage=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));\naverage*=0.25;\nfloat luminance=length(average.rgb);\nif (luminanceshadowPixelDepth)\naccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));\ncurrentPosition+=stepL;\n}\naccumFog/=NB_STEPS;\nvec3 color=accumFog*scatteringPower;\ngl_FragColor=vec4(color*exp(color) ,1.0);\n}\n#endif\n#if defined(VLSMERGE)\nuniform sampler2D originalSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);\n}\n#endif\n#if defined(LUMINANCE)\nuniform vec2 lumOffsets[4];\nvoid main()\n{\nfloat average=0.0;\nvec4 color=vec4(0.0);\nfloat maximum=-1e20;\nvec3 weight=vec3(0.299,0.587,0.114);\nfor (int i=0; i<4; i++)\n{\ncolor=texture2D(textureSampler,vUV+ lumOffsets[i]);\n\nfloat GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\n\n#ifdef WEIGHTED_AVERAGE\nfloat GreyValue=dot(color.rgb,weight);\n#endif\n#ifdef BRIGHTNESS\nfloat GreyValue=max(color.r,max(color.g,color.b));\n#endif\n#ifdef HSL_COMPONENT\nfloat GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\n#endif\n#ifdef MAGNITUDE\nfloat GreyValue=length(color.rgb);\n#endif\nmaximum=max(maximum,GreyValue);\naverage+=(0.25*log(1e-5+GreyValue));\n}\naverage=exp(average);\ngl_FragColor=vec4(average,maximum,0.0,1.0);\n}\n#endif\n#if defined(LUMINANCE_DOWN_SAMPLE)\nuniform vec2 dsOffsets[9];\nuniform float halfDestPixelSize;\n#ifdef FINAL_DOWN_SAMPLER\n#include\n#endif\nvoid main()\n{\nvec4 color=vec4(0.0);\nfloat average=0.0;\nfor (int i=0; i<9; i++)\n{\ncolor=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);\naverage+=color.r;\n}\naverage/=9.0;\n#ifdef FINAL_DOWN_SAMPLER\ngl_FragColor=pack(average);\n#else\ngl_FragColor=vec4(average,average,0.0,1.0);\n#endif\n}\n#endif\n#if defined(HDR)\nuniform sampler2D textureAdderSampler;\nuniform float averageLuminance;\nvoid main()\n{\nvec4 color=texture2D(textureAdderSampler,vUV);\n#ifndef AUTO_EXPOSURE\nvec4 adjustedColor=color/averageLuminance;\ncolor=adjustedColor;\ncolor.a=1.0;\n#endif\ngl_FragColor=color;\n}\n#endif\n#if defined(LENS_FLARE)\n#define GHOSTS 3\nuniform sampler2D lensColorSampler;\nuniform float strength;\nuniform float ghostDispersal;\nuniform float haloWidth;\nuniform vec2 resolution;\nuniform float distortionStrength;\nfloat hash(vec2 p)\n{\nfloat h=dot(p,vec2(127.1,311.7));\nreturn -1.0+2.0*fract(sin(h)*43758.5453123);\n}\nfloat noise(in vec2 p)\n{\nvec2 i=floor(p);\nvec2 f=fract(p);\nvec2 u=f*f*(3.0-2.0*f);\nreturn mix(mix(hash(i+vec2(0.0,0.0)),\nhash(i+vec2(1.0,0.0)),u.x),\nmix(hash(i+vec2(0.0,1.0)),\nhash(i+vec2(1.0,1.0)),u.x),u.y);\n}\nfloat fbm(vec2 p)\n{\nfloat f=0.0;\nf+=0.5000*noise(p); p*=2.02;\nf+=0.2500*noise(p); p*=2.03;\nf+=0.1250*noise(p); p*=2.01;\nf+=0.0625*noise(p); p*=2.04;\nf/=0.9375;\nreturn f;\n}\nvec3 pattern(vec2 uv)\n{\nvec2 p=-1.0+2.0*uv;\nfloat p2=dot(p,p);\nfloat f=fbm(vec2(15.0*p2))/2.0;\nfloat r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));\nfloat g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));\nfloat b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));\nreturn (1.0-f)*vec3(r,g,b);\n}\nfloat luminance(vec3 color)\n{\nreturn dot(color.rgb,vec3(0.2126,0.7152,0.0722));\n}\nvec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion)\n{\nreturn vec4(\ntexture2D(tex,texcoord+direction*distortion.r).r,\ntexture2D(tex,texcoord+direction*distortion.g).g,\ntexture2D(tex,texcoord+direction*distortion.b).b,\n1.0\n);\n}\nvoid main(void)\n{\nvec2 uv=-vUV+vec2(1.0);\nvec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal;\nvec2 texelSize=1.0/resolution;\nvec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);\nvec4 result=vec4(0.0);\nfloat ghostIndice=1.0;\nfor (int i=0; i=nSamples)\nbreak;\nvec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\nresult+=texture2D(textureSampler,offset1);\n}\ngl_FragColor=result/float(nSamples);\n}\n#endif\n"; Xt.a.ShadersStore.standardPixelShader = Ih; var Dh = (function (e) { function t(t, n, i, r, o) { void 0 === r && (r = null); var a = e.call(this, n.getEngine(), t) || this; return ( (a.downSampleX4PostProcess = null), (a.brightPassPostProcess = null), (a.blurHPostProcesses = []), (a.blurVPostProcesses = []), (a.textureAdderPostProcess = null), (a.volumetricLightPostProcess = null), (a.volumetricLightSmoothXPostProcess = null), (a.volumetricLightSmoothYPostProcess = null), (a.volumetricLightMergePostProces = null), (a.volumetricLightFinalPostProcess = null), (a.luminancePostProcess = null), (a.luminanceDownSamplePostProcesses = []), (a.hdrPostProcess = null), (a.textureAdderFinalPostProcess = null), (a.lensFlareFinalPostProcess = null), (a.hdrFinalPostProcess = null), (a.lensFlarePostProcess = null), (a.lensFlareComposePostProcess = null), (a.motionBlurPostProcess = null), (a.depthOfFieldPostProcess = null), (a.fxaaPostProcess = null), (a.screenSpaceReflectionPostProcess = null), (a.brightThreshold = 1), (a.blurWidth = 512), (a.horizontalBlur = !1), (a.lensTexture = null), (a.volumetricLightCoefficient = 0.2), (a.volumetricLightPower = 4), (a.volumetricLightBlurScale = 64), (a.sourceLight = null), (a.hdrMinimumLuminance = 1), (a.hdrDecreaseRate = 0.5), (a.hdrIncreaseRate = 0.5), (a.lensColorTexture = null), (a.lensFlareStrength = 20), (a.lensFlareGhostDispersal = 1.4), (a.lensFlareHaloWidth = 0.7), (a.lensFlareDistortionStrength = 16), (a.lensFlareBlurWidth = 512), (a.lensStarTexture = null), (a.lensFlareDirtTexture = null), (a.depthOfFieldDistance = 10), (a.depthOfFieldBlurWidth = 64), (a.animations = []), (a._currentDepthOfFieldSource = null), (a._fixedExposure = 1), (a._currentExposure = 1), (a._hdrAutoExposure = !1), (a._hdrCurrentLuminance = 1), (a._motionStrength = 1), (a._isObjectBasedMotionBlur = !1), (a._camerasToBeAttached = []), (a._bloomEnabled = !1), (a._depthOfFieldEnabled = !1), (a._vlsEnabled = !1), (a._lensFlareEnabled = !1), (a._hdrEnabled = !1), (a._motionBlurEnabled = !1), (a._fxaaEnabled = !1), (a._screenSpaceReflectionsEnabled = !1), (a._motionBlurSamples = 64), (a._volumetricLightStepsCount = 50), (a._samples = 1), (a._cameras = o || n.cameras), (a._cameras = a._cameras.slice()), (a._camerasToBeAttached = a._cameras.slice()), (a._scene = n), (a._basePostProcess = r), (a._ratio = i), (a._floatTextureType = n.getEngine().getCaps().textureFloatRender ? 1 : 2), n.postProcessRenderPipelineManager.addPipeline(a), a._buildPipeline(), a ); } return ( Object(h.d)(t, e), Object.defineProperty(t.prototype, "exposure", { get: function () { return this._fixedExposure; }, set: function (e) { (this._fixedExposure = e), (this._currentExposure = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "hdrAutoExposure", { get: function () { return this._hdrAutoExposure; }, set: function (e) { if (((this._hdrAutoExposure = e), this.hdrPostProcess)) { var t = ["#define HDR"]; e && t.push("#define AUTO_EXPOSURE"), this.hdrPostProcess.updateEffect(t.join("\n")); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "motionStrength", { get: function () { return this._motionStrength; }, set: function (e) { (this._motionStrength = e), this._isObjectBasedMotionBlur && this.motionBlurPostProcess && (this.motionBlurPostProcess.motionStrength = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "objectBasedMotionBlur", { get: function () { return this._isObjectBasedMotionBlur; }, set: function (e) { var t = this._isObjectBasedMotionBlur !== e; (this._isObjectBasedMotionBlur = e), t && this._buildPipeline(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "BloomEnabled", { get: function () { return this._bloomEnabled; }, set: function (e) { this._bloomEnabled !== e && ((this._bloomEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "DepthOfFieldEnabled", { get: function () { return this._depthOfFieldEnabled; }, set: function (e) { this._depthOfFieldEnabled !== e && ((this._depthOfFieldEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "LensFlareEnabled", { get: function () { return this._lensFlareEnabled; }, set: function (e) { this._lensFlareEnabled !== e && ((this._lensFlareEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "HDREnabled", { get: function () { return this._hdrEnabled; }, set: function (e) { this._hdrEnabled !== e && ((this._hdrEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "VLSEnabled", { get: function () { return this._vlsEnabled; }, set: function (e) { if (this._vlsEnabled !== e) { if (e) if (!this._scene.enableGeometryBufferRenderer()) return void g.a.Warn("Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline"); (this._vlsEnabled = e), this._buildPipeline(); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "MotionBlurEnabled", { get: function () { return this._motionBlurEnabled; }, set: function (e) { this._motionBlurEnabled !== e && ((this._motionBlurEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "fxaaEnabled", { get: function () { return this._fxaaEnabled; }, set: function (e) { this._fxaaEnabled !== e && ((this._fxaaEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "screenSpaceReflectionsEnabled", { get: function () { return this._screenSpaceReflectionsEnabled; }, set: function (e) { this._screenSpaceReflectionsEnabled !== e && ((this._screenSpaceReflectionsEnabled = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "volumetricLightStepsCount", { get: function () { return this._volumetricLightStepsCount; }, set: function (e) { this.volumetricLightPostProcess && this.volumetricLightPostProcess.updateEffect("#define VLS\n#define NB_STEPS " + e.toFixed(1)), (this._volumetricLightStepsCount = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "motionBlurSamples", { get: function () { return this._motionBlurSamples; }, set: function (e) { this.motionBlurPostProcess && (this._isObjectBasedMotionBlur ? (this.motionBlurPostProcess.motionBlurSamples = e) : this.motionBlurPostProcess.updateEffect("#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES " + e.toFixed(1))), (this._motionBlurSamples = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "samples", { get: function () { return this._samples; }, set: function (e) { this._samples !== e && ((this._samples = e), this._buildPipeline()); }, enumerable: !0, configurable: !0, }), (t.prototype._buildPipeline = function () { var e = this, t = this._ratio, n = this._scene; this._disposePostProcesses(), null !== this._cameras && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), (this._cameras = this._camerasToBeAttached.slice())), this._reset(), this._screenSpaceReflectionsEnabled && ((this.screenSpaceReflectionPostProcess = new Ah("HDRPass", n, t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, this._floatTextureType)), this.screenSpaceReflectionPostProcess.onApplyObservable.add(function () { e._currentDepthOfFieldSource = e.screenSpaceReflectionPostProcess; }), this.addEffect( new Au( n.getEngine(), "HDRScreenSpaceReflections", function () { return e.screenSpaceReflectionPostProcess; }, !0 ) )), this._basePostProcess ? (this.originalPostProcess = this._basePostProcess) : (this.originalPostProcess = new Wt.a("HDRPass", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", this._floatTextureType)), (this.originalPostProcess.autoClear = !this.screenSpaceReflectionPostProcess), this.originalPostProcess.onApplyObservable.add(function () { e._currentDepthOfFieldSource = e.originalPostProcess; }), this.addEffect( new Au( n.getEngine(), "HDRPassPostProcess", function () { return e.originalPostProcess; }, !0 ) ), this._bloomEnabled && (this._createDownSampleX4PostProcess(n, t / 4), this._createBrightPassPostProcess(n, t / 4), this._createBlurPostProcesses(n, t / 4, 1), this._createTextureAdderPostProcess(n, t), (this.textureAdderFinalPostProcess = new Wt.a("HDRDepthOfFieldSource", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)), this.addEffect( new Au( n.getEngine(), "HDRBaseDepthOfFieldSource", function () { return e.textureAdderFinalPostProcess; }, !0 ) )), this._vlsEnabled && (this._createVolumetricLightPostProcess(n, t), (this.volumetricLightFinalPostProcess = new Wt.a("HDRVLSFinal", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)), this.addEffect( new Au( n.getEngine(), "HDRVLSFinal", function () { return e.volumetricLightFinalPostProcess; }, !0 ) )), this._lensFlareEnabled && (this._createLensFlarePostProcess(n, t), (this.lensFlareFinalPostProcess = new Wt.a("HDRPostLensFlareDepthOfFieldSource", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)), this.addEffect( new Au( n.getEngine(), "HDRPostLensFlareDepthOfFieldSource", function () { return e.lensFlareFinalPostProcess; }, !0 ) )), this._hdrEnabled && (this._createLuminancePostProcesses(n, this._floatTextureType), this._createHdrPostProcess(n, t), (this.hdrFinalPostProcess = new Wt.a("HDRPostHDReDepthOfFieldSource", "standard", [], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, "#define PASS_POST_PROCESS", 0)), this.addEffect( new Au( n.getEngine(), "HDRPostHDReDepthOfFieldSource", function () { return e.hdrFinalPostProcess; }, !0 ) )), this._depthOfFieldEnabled && (this._createBlurPostProcesses(n, t / 2, 3, "depthOfFieldBlurWidth"), this._createDepthOfFieldPostProcess(n, t)), this._motionBlurEnabled && this._createMotionBlurPostProcess(n, t), this._fxaaEnabled && ((this.fxaaPostProcess = new th("fxaa", 1, null, ln.a.BILINEAR_SAMPLINGMODE, n.getEngine(), !1, 0)), this.addEffect( new Au( n.getEngine(), "HDRFxaa", function () { return e.fxaaPostProcess; }, !0 ) )), null !== this._cameras && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras), !this._enableMSAAOnFirstPostProcess(this._samples) && this._samples > 1 && g.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0"); }), (t.prototype._createDownSampleX4PostProcess = function (e, t) { var n = this, i = new Array(32); (this.downSampleX4PostProcess = new Wt.a("HDRDownSampleX4", "standard", ["dsOffsets"], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define DOWN_SAMPLE_X4", this._floatTextureType)), (this.downSampleX4PostProcess.onApply = function (e) { for (var t = 0, r = n.downSampleX4PostProcess.width, o = n.downSampleX4PostProcess.height, a = -2; a < 2; a++) for (var s = -2; s < 2; s++) (i[t] = (a + 0.5) * (1 / r)), (i[t + 1] = (s + 0.5) * (1 / o)), (t += 2); e.setArray2("dsOffsets", i); }), this.addEffect( new Au( e.getEngine(), "HDRDownSampleX4", function () { return n.downSampleX4PostProcess; }, !0 ) ); }), (t.prototype._createBrightPassPostProcess = function (e, t) { var n = this, i = new Array(8); (this.brightPassPostProcess = new Wt.a("HDRBrightPass", "standard", ["dsOffsets", "brightThreshold"], [], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define BRIGHT_PASS", this._floatTextureType)), (this.brightPassPostProcess.onApply = function (e) { var t = 1 / n.brightPassPostProcess.width, r = 1 / n.brightPassPostProcess.height; (i[0] = -0.5 * t), (i[1] = 0.5 * r), (i[2] = 0.5 * t), (i[3] = 0.5 * r), (i[4] = -0.5 * t), (i[5] = -0.5 * r), (i[6] = 0.5 * t), (i[7] = -0.5 * r), e.setArray2("dsOffsets", i), e.setFloat("brightThreshold", n.brightThreshold); }), this.addEffect( new Au( e.getEngine(), "HDRBrightPass", function () { return n.brightPassPostProcess; }, !0 ) ); }), (t.prototype._createBlurPostProcesses = function (e, t, n, i) { var r = this; void 0 === i && (i = "blurWidth"); var o = e.getEngine(), s = new Er("HDRBlurH_" + n, new a.d(1, 0), this[i], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, this._floatTextureType), c = new Er("HDRBlurV_" + n, new a.d(0, 1), this[i], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, this._floatTextureType); s.onActivateObservable.add(function () { var e = s.width / o.getRenderWidth(); s.kernel = r[i] * e; }), c.onActivateObservable.add(function () { var e = c.height / o.getRenderHeight(); c.kernel = r.horizontalBlur ? 64 * e : r[i] * e; }), this.addEffect( new Au( e.getEngine(), "HDRBlurH" + n, function () { return s; }, !0 ) ), this.addEffect( new Au( e.getEngine(), "HDRBlurV" + n, function () { return c; }, !0 ) ), this.blurHPostProcesses.push(s), this.blurVPostProcesses.push(c); }), (t.prototype._createTextureAdderPostProcess = function (e, t) { var n = this; (this.textureAdderPostProcess = new Wt.a( "HDRTextureAdder", "standard", ["exposure"], ["otherSampler", "lensSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define TEXTURE_ADDER", this._floatTextureType )), (this.textureAdderPostProcess.onApply = function (e) { e.setTextureFromPostProcess("otherSampler", n._vlsEnabled ? n._currentDepthOfFieldSource : n.originalPostProcess), e.setTexture("lensSampler", n.lensTexture), e.setFloat("exposure", n._currentExposure), (n._currentDepthOfFieldSource = n.textureAdderFinalPostProcess); }), this.addEffect( new Au( e.getEngine(), "HDRTextureAdder", function () { return n.textureAdderPostProcess; }, !0 ) ); }), (t.prototype._createVolumetricLightPostProcess = function (e, t) { var n = this, i = e.enableGeometryBufferRenderer(); i.enablePosition = !0; var r = i.getGBuffer(); this.volumetricLightPostProcess = new Wt.a( "HDRVLS", "standard", ["shadowViewProjection", "cameraPosition", "sunDirection", "sunColor", "scatteringCoefficient", "scatteringPower", "depthValues"], ["shadowMapSampler", "positionSampler"], t / 8, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define VLS\n#define NB_STEPS " + this._volumetricLightStepsCount.toFixed(1) ); var o = a.d.Zero(); (this.volumetricLightPostProcess.onApply = function (e) { if (n.sourceLight && n.sourceLight.getShadowGenerator() && n._scene.activeCamera) { var t = n.sourceLight.getShadowGenerator(); e.setTexture("shadowMapSampler", t.getShadowMap()), e.setTexture("positionSampler", r.textures[2]), e.setColor3("sunColor", n.sourceLight.diffuse), e.setVector3("sunDirection", n.sourceLight.getShadowDirection()), e.setVector3("cameraPosition", n._scene.activeCamera.globalPosition), e.setMatrix("shadowViewProjection", t.getTransformMatrix()), e.setFloat("scatteringCoefficient", n.volumetricLightCoefficient), e.setFloat("scatteringPower", n.volumetricLightPower), (o.x = n.sourceLight.getDepthMinZ(n._scene.activeCamera)), (o.y = n.sourceLight.getDepthMaxZ(n._scene.activeCamera)), e.setVector2("depthValues", o); } }), this.addEffect( new Au( e.getEngine(), "HDRVLS", function () { return n.volumetricLightPostProcess; }, !0 ) ), this._createBlurPostProcesses(e, t / 4, 0, "volumetricLightBlurScale"), (this.volumetricLightMergePostProces = new Wt.a("HDRVLSMerge", "standard", [], ["originalSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define VLSMERGE")), (this.volumetricLightMergePostProces.onApply = function (e) { e.setTextureFromPostProcess("originalSampler", n._bloomEnabled ? n.textureAdderFinalPostProcess : n.originalPostProcess), (n._currentDepthOfFieldSource = n.volumetricLightFinalPostProcess); }), this.addEffect( new Au( e.getEngine(), "HDRVLSMerge", function () { return n.volumetricLightMergePostProces; }, !0 ) ); }), (t.prototype._createLuminancePostProcesses = function (e, n) { var i = this, r = Math.pow(3, t.LuminanceSteps); this.luminancePostProcess = new Wt.a("HDRLuminance", "standard", ["lumOffsets"], [], { width: r, height: r }, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define LUMINANCE", n); var o = []; (this.luminancePostProcess.onApply = function (e) { var t = 1 / i.luminancePostProcess.width, n = 1 / i.luminancePostProcess.height; (o[0] = -0.5 * t), (o[1] = 0.5 * n), (o[2] = 0.5 * t), (o[3] = 0.5 * n), (o[4] = -0.5 * t), (o[5] = -0.5 * n), (o[6] = 0.5 * t), (o[7] = -0.5 * n), e.setArray2("lumOffsets", o); }), this.addEffect( new Au( e.getEngine(), "HDRLuminance", function () { return i.luminancePostProcess; }, !0 ) ); for (var s = t.LuminanceSteps - 1; s >= 0; s--) { r = Math.pow(3, s); var c = "#define LUMINANCE_DOWN_SAMPLE\n"; 0 === s && (c += "#define FINAL_DOWN_SAMPLER"); var l = new Wt.a("HDRLuminanceDownSample" + s, "standard", ["dsOffsets", "halfDestPixelSize"], [], { width: r, height: r }, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, c, n); this.luminanceDownSamplePostProcesses.push(l); } var u = this.luminancePostProcess; this.luminanceDownSamplePostProcesses.forEach(function (t, n) { var r = new Array(18); (t.onApply = function (e) { if (u) { for (var o = 0, a = -1; a < 2; a++) for (var s = -1; s < 2; s++) (r[o] = a / u.width), (r[o + 1] = s / u.height), (o += 2); e.setArray2("dsOffsets", r), e.setFloat("halfDestPixelSize", 0.5 / u.width), (u = n === i.luminanceDownSamplePostProcesses.length - 1 ? i.luminancePostProcess : t); } }), n === i.luminanceDownSamplePostProcesses.length - 1 && (t.onAfterRender = function () { var t = e.getEngine().readPixels(0, 0, 1, 1), n = new a.f(1 / 16581375, 1 / 65025, 1 / 255, 1); i._hdrCurrentLuminance = (t[0] * n.x + t[1] * n.y + t[2] * n.z + t[3] * n.w) / 100; }), i.addEffect( new Au( e.getEngine(), "HDRLuminanceDownSample" + n, function () { return t; }, !0 ) ); }); }), (t.prototype._createHdrPostProcess = function (e, t) { var n = this, i = ["#define HDR"]; this._hdrAutoExposure && i.push("#define AUTO_EXPOSURE"), (this.hdrPostProcess = new Wt.a("HDR", "standard", ["averageLuminance"], ["textureAdderSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, i.join("\n"), 0)); var r = 1, o = 0, a = 0; (this.hdrPostProcess.onApply = function (t) { if ((t.setTextureFromPostProcess("textureAdderSampler", n._currentDepthOfFieldSource), (o += e.getEngine().getDeltaTime()), r < 0)) r = n._hdrCurrentLuminance; else { var i = (a - o) / 1e3; n._hdrCurrentLuminance < r + n.hdrDecreaseRate * i ? (r += n.hdrDecreaseRate * i) : n._hdrCurrentLuminance > r - n.hdrIncreaseRate * i ? (r -= n.hdrIncreaseRate * i) : (r = n._hdrCurrentLuminance); } n.hdrAutoExposure ? (n._currentExposure = n._fixedExposure / r) : ((r = z.a.Clamp(r, n.hdrMinimumLuminance, 1e20)), t.setFloat("averageLuminance", r)), (a = o), (n._currentDepthOfFieldSource = n.hdrFinalPostProcess); }), this.addEffect( new Au( e.getEngine(), "HDR", function () { return n.hdrPostProcess; }, !0 ) ); }), (t.prototype._createLensFlarePostProcess = function (e, t) { var n = this; (this.lensFlarePostProcess = new Wt.a( "HDRLensFlare", "standard", ["strength", "ghostDispersal", "haloWidth", "resolution", "distortionStrength"], ["lensColorSampler"], t / 2, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define LENS_FLARE", 0 )), this.addEffect( new Au( e.getEngine(), "HDRLensFlare", function () { return n.lensFlarePostProcess; }, !0 ) ), this._createBlurPostProcesses(e, t / 4, 2, "lensFlareBlurWidth"), (this.lensFlareComposePostProcess = new Wt.a( "HDRLensFlareCompose", "standard", ["lensStarMatrix"], ["otherSampler", "lensDirtSampler", "lensStarSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define LENS_FLARE_COMPOSE", 0 )), this.addEffect( new Au( e.getEngine(), "HDRLensFlareCompose", function () { return n.lensFlareComposePostProcess; }, !0 ) ); var i = new a.d(0, 0); this.lensFlarePostProcess.onApply = function (e) { e.setTextureFromPostProcess("textureSampler", n._bloomEnabled ? n.blurHPostProcesses[0] : n.originalPostProcess), e.setTexture("lensColorSampler", n.lensColorTexture), e.setFloat("strength", n.lensFlareStrength), e.setFloat("ghostDispersal", n.lensFlareGhostDispersal), e.setFloat("haloWidth", n.lensFlareHaloWidth), (i.x = n.lensFlarePostProcess.width), (i.y = n.lensFlarePostProcess.height), e.setVector2("resolution", i), e.setFloat("distortionStrength", n.lensFlareDistortionStrength); }; var r = a.a.FromValues(2, 0, -1, 0, 0, 2, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1), o = a.a.FromValues(0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1, 0, 0, 0, 0, 1); this.lensFlareComposePostProcess.onApply = function (e) { if (n._scene.activeCamera) { e.setTextureFromPostProcess("otherSampler", n.lensFlarePostProcess), e.setTexture("lensDirtSampler", n.lensFlareDirtTexture), e.setTexture("lensStarSampler", n.lensStarTexture); var t = n._scene.activeCamera.getViewMatrix().getRow(0), i = n._scene.activeCamera.getViewMatrix().getRow(2), s = a.e.Dot(t.toVector3(), new a.e(1, 0, 0)) + a.e.Dot(i.toVector3(), new a.e(0, 0, 1)); s *= 4; var c = a.a.FromValues(0.5 * Math.cos(s), -Math.sin(s), 0, 0, Math.sin(s), 0.5 * Math.cos(s), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), l = o.multiply(c).multiply(r); e.setMatrix("lensStarMatrix", l), (n._currentDepthOfFieldSource = n.lensFlareFinalPostProcess); } }; }), (t.prototype._createDepthOfFieldPostProcess = function (e, t) { var n = this; (this.depthOfFieldPostProcess = new Wt.a("HDRDepthOfField", "standard", ["distance"], ["otherSampler", "depthSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define DEPTH_OF_FIELD", 0)), (this.depthOfFieldPostProcess.onApply = function (e) { e.setTextureFromPostProcess("otherSampler", n._currentDepthOfFieldSource), e.setTexture("depthSampler", n._getDepthTexture()), e.setFloat("distance", n.depthOfFieldDistance); }), this.addEffect( new Au( e.getEngine(), "HDRDepthOfField", function () { return n.depthOfFieldPostProcess; }, !0 ) ); }), (t.prototype._createMotionBlurPostProcess = function (e, t) { var n = this; if (this._isObjectBasedMotionBlur) { var i = new hh("HDRMotionBlur", e, t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, 0); (i.motionStrength = this.motionStrength), (i.motionBlurSamples = this.motionBlurSamples), (this.motionBlurPostProcess = i); } else { this.motionBlurPostProcess = new Wt.a( "HDRMotionBlur", "standard", ["inverseViewProjection", "prevViewProjection", "screenSize", "motionScale", "motionStrength"], ["depthSampler"], t, null, ln.a.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, "#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES " + this.motionBlurSamples.toFixed(1), 0 ); var r = 0, o = a.a.Identity(), s = a.a.Identity(), c = a.a.Identity(), l = a.d.Zero(); this.motionBlurPostProcess.onApply = function (t) { (c = e.getProjectionMatrix().multiply(e.getViewMatrix())).invertToRef(s), t.setMatrix("inverseViewProjection", s), t.setMatrix("prevViewProjection", o), (o = c), (l.x = n.motionBlurPostProcess.width), (l.y = n.motionBlurPostProcess.height), t.setVector2("screenSize", l), (r = e.getEngine().getFps() / 60), t.setFloat("motionScale", r), t.setFloat("motionStrength", n.motionStrength), t.setTexture("depthSampler", n._getDepthTexture()); }; } this.addEffect( new Au( e.getEngine(), "HDRMotionBlur", function () { return n.motionBlurPostProcess; }, !0 ) ); }), (t.prototype._getDepthTexture = function () { return this._scene.getEngine().getCaps().drawBuffersExtension ? this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0] : this._scene.enableDepthRenderer().getDepthMap(); }), (t.prototype._disposePostProcesses = function () { for (var e = 0; e < this._cameras.length; e++) { var t = this._cameras[e]; this.originalPostProcess && this.originalPostProcess.dispose(t), this.screenSpaceReflectionPostProcess && this.screenSpaceReflectionPostProcess.dispose(t), this.downSampleX4PostProcess && this.downSampleX4PostProcess.dispose(t), this.brightPassPostProcess && this.brightPassPostProcess.dispose(t), this.textureAdderPostProcess && this.textureAdderPostProcess.dispose(t), this.volumetricLightPostProcess && this.volumetricLightPostProcess.dispose(t), this.volumetricLightSmoothXPostProcess && this.volumetricLightSmoothXPostProcess.dispose(t), this.volumetricLightSmoothYPostProcess && this.volumetricLightSmoothYPostProcess.dispose(t), this.volumetricLightMergePostProces && this.volumetricLightMergePostProces.dispose(t), this.volumetricLightFinalPostProcess && this.volumetricLightFinalPostProcess.dispose(t), this.lensFlarePostProcess && this.lensFlarePostProcess.dispose(t), this.lensFlareComposePostProcess && this.lensFlareComposePostProcess.dispose(t); for (var n = 0; n < this.luminanceDownSamplePostProcesses.length; n++) this.luminanceDownSamplePostProcesses[n].dispose(t); this.luminancePostProcess && this.luminancePostProcess.dispose(t), this.hdrPostProcess && this.hdrPostProcess.dispose(t), this.hdrFinalPostProcess && this.hdrFinalPostProcess.dispose(t), this.depthOfFieldPostProcess && this.depthOfFieldPostProcess.dispose(t), this.motionBlurPostProcess && this.motionBlurPostProcess.dispose(t), this.fxaaPostProcess && this.fxaaPostProcess.dispose(t); for (n = 0; n < this.blurHPostProcesses.length; n++) this.blurHPostProcesses[n].dispose(t); for (n = 0; n < this.blurVPostProcesses.length; n++) this.blurVPostProcesses[n].dispose(t); } (this.originalPostProcess = null), (this.downSampleX4PostProcess = null), (this.brightPassPostProcess = null), (this.textureAdderPostProcess = null), (this.textureAdderFinalPostProcess = null), (this.volumetricLightPostProcess = null), (this.volumetricLightSmoothXPostProcess = null), (this.volumetricLightSmoothYPostProcess = null), (this.volumetricLightMergePostProces = null), (this.volumetricLightFinalPostProcess = null), (this.lensFlarePostProcess = null), (this.lensFlareComposePostProcess = null), (this.luminancePostProcess = null), (this.hdrPostProcess = null), (this.hdrFinalPostProcess = null), (this.depthOfFieldPostProcess = null), (this.motionBlurPostProcess = null), (this.fxaaPostProcess = null), (this.screenSpaceReflectionPostProcess = null), (this.luminanceDownSamplePostProcesses = []), (this.blurHPostProcesses = []), (this.blurVPostProcesses = []); }), (t.prototype.dispose = function () { this._disposePostProcesses(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), e.prototype.dispose.call(this); }), (t.prototype.serialize = function () { var e = He.a.Serialize(this); return ( this.sourceLight && (e.sourceLightId = this.sourceLight.id), this.screenSpaceReflectionPostProcess && (e.screenSpaceReflectionPostProcess = He.a.Serialize(this.screenSpaceReflectionPostProcess)), (e.customType = "StandardRenderingPipeline"), e ); }), (t.Parse = function (e, n, i) { var r = He.a.Parse( function () { return new t(e._name, n, e._ratio); }, e, n, i ); return ( e.sourceLightId && (r.sourceLight = n.getLightByID(e.sourceLightId)), e.screenSpaceReflectionPostProcess && He.a.Parse( function () { return r.screenSpaceReflectionPostProcess; }, e.screenSpaceReflectionPostProcess, n, i ), r ); }), (t.LuminanceSteps = 6), Object(h.c)([Object(He.c)()], t.prototype, "brightThreshold", void 0), Object(h.c)([Object(He.c)()], t.prototype, "blurWidth", void 0), Object(h.c)([Object(He.c)()], t.prototype, "horizontalBlur", void 0), Object(h.c)([Object(He.c)()], t.prototype, "exposure", null), Object(h.c)([Object(He.m)("lensTexture")], t.prototype, "lensTexture", void 0), Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightCoefficient", void 0), Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightPower", void 0), Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightBlurScale", void 0), Object(h.c)([Object(He.c)()], t.prototype, "hdrMinimumLuminance", void 0), Object(h.c)([Object(He.c)()], t.prototype, "hdrDecreaseRate", void 0), Object(h.c)([Object(He.c)()], t.prototype, "hdrIncreaseRate", void 0), Object(h.c)([Object(He.c)()], t.prototype, "hdrAutoExposure", null), Object(h.c)([Object(He.m)("lensColorTexture")], t.prototype, "lensColorTexture", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lensFlareStrength", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lensFlareGhostDispersal", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lensFlareHaloWidth", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lensFlareDistortionStrength", void 0), Object(h.c)([Object(He.c)()], t.prototype, "lensFlareBlurWidth", void 0), Object(h.c)([Object(He.m)("lensStarTexture")], t.prototype, "lensStarTexture", void 0), Object(h.c)([Object(He.m)("lensFlareDirtTexture")], t.prototype, "lensFlareDirtTexture", void 0), Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldDistance", void 0), Object(h.c)([Object(He.c)()], t.prototype, "depthOfFieldBlurWidth", void 0), Object(h.c)([Object(He.c)()], t.prototype, "motionStrength", null), Object(h.c)([Object(He.c)()], t.prototype, "objectBasedMotionBlur", null), Object(h.c)([Object(He.c)()], t.prototype, "_ratio", void 0), Object(h.c)([Object(He.c)()], t.prototype, "BloomEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "DepthOfFieldEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "LensFlareEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "HDREnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "VLSEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "MotionBlurEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "fxaaEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "screenSpaceReflectionsEnabled", null), Object(h.c)([Object(He.c)()], t.prototype, "volumetricLightStepsCount", null), Object(h.c)([Object(He.c)()], t.prototype, "motionBlurSamples", null), Object(h.c)([Object(He.c)()], t.prototype, "samples", null), t ); })(gh); c.a.RegisteredTypes["BABYLON.StandardRenderingPipeline"] = Dh; var Rh = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform float _ExposureAdjustment;\n#if defined(HABLE_TONEMAPPING)\nconst float A=0.15;\nconst float B=0.50;\nconst float C=0.10;\nconst float D=0.20;\nconst float E=0.02;\nconst float F=0.30;\nconst float W=11.2;\n#endif\nfloat Luminance(vec3 c)\n{\nreturn dot(c,vec3(0.22,0.707,0.071));\n}\nvoid main(void)\n{\nvec3 colour=texture2D(textureSampler,vUV).rgb;\n#if defined(REINHARD_TONEMAPPING)\nfloat lum=Luminance(colour.rgb);\nfloat lumTm=lum*_ExposureAdjustment;\nfloat scale=lumTm/(1.0+lumTm);\ncolour*=scale/lum;\n#elif defined(HABLE_TONEMAPPING)\ncolour*=_ExposureAdjustment;\nconst float ExposureBias=2.0;\nvec3 x=ExposureBias*colour;\nvec3 curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\nx=vec3(W,W,W);\nvec3 whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);\ncolour=curr*whiteScale;\n#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)\ncolour*=_ExposureAdjustment;\nvec3 X=max(vec3(0.0,0.0,0.0),colour-0.004);\nvec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\ncolour=retColor*retColor;\n#elif defined(PHOTOGRAPHIC_TONEMAPPING)\ncolour=vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);\n#endif\ngl_FragColor=vec4(colour.rgb,1.0);\n}"; Xt.a.ShadersStore.tonemapPixelShader = Rh; var wh; !(function (e) { (e[(e.Hable = 0)] = "Hable"), (e[(e.Reinhard = 1)] = "Reinhard"), (e[(e.HejiDawson = 2)] = "HejiDawson"), (e[(e.Photographic = 3)] = "Photographic"); })(wh || (wh = {})); var Lh = (function (e) { function t(t, n, i, r, o, a, s) { void 0 === o && (o = 2), void 0 === s && (s = 0); var c = e.call(this, t, "tonemap", ["_ExposureAdjustment"], null, 1, r, o, a, !0, null, s) || this; (c._operator = n), (c.exposureAdjustment = i); var l = "#define "; return ( c._operator === wh.Hable ? (l += "HABLE_TONEMAPPING") : c._operator === wh.Reinhard ? (l += "REINHARD_TONEMAPPING") : c._operator === wh.HejiDawson ? (l += "OPTIMIZED_HEJIDAWSON_TONEMAPPING") : c._operator === wh.Photographic && (l += "PHOTOGRAPHIC_TONEMAPPING"), c.updateEffect(l), (c.onApply = function (e) { e.setFloat("_ExposureAdjustment", c.exposureAdjustment); }), c ); } return Object(h.d)(t, e), t; })(Wt.a), Fh = "uniform sampler2D textureSampler;\nuniform sampler2D lightScatteringSampler;\nuniform float decay;\nuniform float exposure;\nuniform float weight;\nuniform float density;\nuniform vec2 meshPositionOnScreen;\nvarying vec2 vUV;\nvoid main(void) {\nvec2 tc=vUV;\nvec2 deltaTexCoord=(tc-meshPositionOnScreen.xy);\ndeltaTexCoord*=1.0/float(NUM_SAMPLES)*density;\nfloat illuminationDecay=1.0;\nvec4 color=texture2D(lightScatteringSampler,tc)*0.4;\nfor(int i=0; i 0 && -1 !== this.excludedMeshes.indexOf(e); }), (t.prototype._createPass = function (e, t) { var n = this, i = e.getEngine(); (this._volumetricLightScatteringRTT = new mn.a("volumetricLightScatteringMap", { width: i.getRenderWidth() * t, height: i.getRenderHeight() * t }, e, !1, !0, 0)), (this._volumetricLightScatteringRTT.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._volumetricLightScatteringRTT.wrapV = ln.a.CLAMP_ADDRESSMODE), (this._volumetricLightScatteringRTT.renderList = null), (this._volumetricLightScatteringRTT.renderParticles = !1), (this._volumetricLightScatteringRTT.ignoreCameraViewport = !0); var r = this.getCamera(); r ? r.customRenderTargets.push(this._volumetricLightScatteringRTT) : e.customRenderTargets.push(this._volumetricLightScatteringRTT); var o, a = function (e) { var t = e.getRenderingMesh(); if (!n._meshExcluded(t)) { t._internalAbstractMeshDataInfo._isActiveIntermediate = !1; var i = e.getMaterial(); if (i) { var r = t.getScene(), o = r.getEngine(); o.setState(i.backFaceCulling); var a = t._getInstancesRenderList(e._id); if (!a.mustReturn) { var s = o.getCaps().instancedArrays && null !== a.visibleInstances[e._id]; if (n._isReady(e, s)) { var c = n._volumetricLightScatteringPass; if ((t === n.mesh && (c = e.effect ? e.effect : i.getEffect()), o.enableEffect(c), t._bind(e, c, i.fillMode), t === n.mesh)) i.bind(t.getWorldMatrix(), t); else { if ((n._volumetricLightScatteringPass.setMatrix("viewProjection", r.getTransformMatrix()), i && i.needAlphaTesting())) { var l = i.getAlphaTestTexture(); n._volumetricLightScatteringPass.setTexture("diffuseSampler", l), l && n._volumetricLightScatteringPass.setMatrix("diffuseMatrix", l.getTextureMatrix()); } t.useBones && t.computeBonesUsingShaders && t.skeleton && n._volumetricLightScatteringPass.setMatrices("mBones", t.skeleton.getTransformMatrices(t)); } t._processRendering(e, n._volumetricLightScatteringPass, Fo.a.TriangleFillMode, a, s, function (e, t) { return c.setMatrix("world", t); }); } } } } }, c = new s.b(0, 0, 0, 1); this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(function () { (o = e.clearColor), (e.clearColor = c); }), this._volumetricLightScatteringRTT.onAfterRenderObservable.add(function () { e.clearColor = o; }), (this._volumetricLightScatteringRTT.customRenderFunction = function (t, n, i, r) { var o, s = e.getEngine(); if (r.length) { for (s.setColorWrite(!1), o = 0; o < r.length; o++) a(r.data[o]); s.setColorWrite(!0); } for (o = 0; o < t.length; o++) a(t.data[o]); for (o = 0; o < n.length; o++) a(n.data[o]); if (i.length) { for (o = 0; o < i.length; o++) { var c = i.data[o], l = c.getBoundingInfo(); l && e.activeCamera && ((c._alphaIndex = c.getMesh().alphaIndex), (c._distanceToCamera = l.boundingSphere.centerWorld.subtract(e.activeCamera.position).length())); } var u = i.data.slice(0, i.length); for ( u.sort(function (e, t) { return e._alphaIndex > t._alphaIndex ? 1 : e._alphaIndex < t._alphaIndex ? -1 : e._distanceToCamera < t._distanceToCamera ? 1 : e._distanceToCamera > t._distanceToCamera ? -1 : 0; }), s.setAlphaMode(2), o = 0; o < u.length; o++ ) a(u[o]); s.setAlphaMode(0); } }); }), (t.prototype._updateMeshScreenCoordinates = function (e) { var t, n = e.getTransformMatrix(); t = this.useCustomMeshPosition ? this.customMeshPosition : this.attachedNode ? this.attachedNode.position : this.mesh.parent ? this.mesh.getAbsolutePosition() : this.mesh.position; var i = a.e.Project(t, a.a.Identity(), n, this._viewPort); (this._screenCoordinates.x = i.x / this._viewPort.width), (this._screenCoordinates.y = i.y / this._viewPort.height), this.invert && (this._screenCoordinates.y = 1 - this._screenCoordinates.y); }), (t.CreateDefaultMesh = function (e, t) { var n = Ee.a.CreatePlane(e, 1, t); n.billboardMode = ke.a.BILLBOARDMODE_ALL; var i = new Mn.a(e + "Material", t); return (i.emissiveColor = new s.a(1, 1, 1)), (n.material = i), n; }), Object(h.c)([Object(He.o)()], t.prototype, "customMeshPosition", void 0), Object(h.c)([Object(He.c)()], t.prototype, "useCustomMeshPosition", void 0), Object(h.c)([Object(He.c)()], t.prototype, "invert", void 0), Object(h.c)([Object(He.k)()], t.prototype, "mesh", void 0), Object(h.c)([Object(He.c)()], t.prototype, "excludedMeshes", void 0), Object(h.c)([Object(He.c)()], t.prototype, "exposure", void 0), Object(h.c)([Object(He.c)()], t.prototype, "decay", void 0), Object(h.c)([Object(He.c)()], t.prototype, "weight", void 0), Object(h.c)([Object(He.c)()], t.prototype, "density", void 0), t ); })(Wt.a); n(226), n(227); Object.defineProperty(ge.a.prototype, "forceShowBoundingBoxes", { get: function () { return this._forceShowBoundingBoxes || !1; }, set: function (e) { (this._forceShowBoundingBoxes = e), e && this.getBoundingBoxRenderer(); }, enumerable: !0, configurable: !0, }), (ge.a.prototype.getBoundingBoxRenderer = function () { return this._boundingBoxRenderer || (this._boundingBoxRenderer = new jh(this)), this._boundingBoxRenderer; }), Object.defineProperty(ke.a.prototype, "showBoundingBox", { get: function () { return this._showBoundingBox || !1; }, set: function (e) { (this._showBoundingBox = e), e && this.getScene().getBoundingBoxRenderer(); }, enumerable: !0, configurable: !0, }); var jh = (function () { function e(e) { (this.name = me.a.NAME_BOUNDINGBOXRENDERER), (this.frontColor = new s.a(1, 1, 1)), (this.backColor = new s.a(0.1, 0.1, 0.1)), (this.showBackLines = !0), (this.renderList = new ii.a(32)), (this._vertexBuffers = {}), (this._fillIndexBuffer = null), (this._fillIndexData = null), (this.scene = e), e._addComponent(this); } return ( (e.prototype.register = function () { this.scene._beforeEvaluateActiveMeshStage.registerStep(me.a.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER, this, this.reset), this.scene._activeMeshStage.registerStep(me.a.STEP_ACTIVEMESH_BOUNDINGBOXRENDERER, this, this._activeMesh), this.scene._evaluateSubMeshStage.registerStep(me.a.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER, this, this._evaluateSubMesh), this.scene._afterRenderingGroupDrawStage.registerStep(me.a.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER, this, this.render); }), (e.prototype._evaluateSubMesh = function (e, t) { if (e.showSubMeshesBoundingBox) { var n = t.getBoundingInfo(); null != n && ((n.boundingBox._tag = e.renderingGroupId), this.renderList.push(n.boundingBox)); } }), (e.prototype._activeMesh = function (e, t) { if (e.showBoundingBox || this.scene.forceShowBoundingBoxes) { var n = e.getBoundingInfo(); (n.boundingBox._tag = t.renderingGroupId), this.renderList.push(n.boundingBox); } }), (e.prototype._prepareRessources = function () { if (!this._colorShader) { (this._colorShader = new Qa.a("colorShader", this.scene, "color", { attributes: [wn.b.PositionKind], uniforms: ["world", "viewProjection", "color"] })), (this._colorShader.reservedDataStore = { hidden: !0 }); var e = this.scene.getEngine(), t = Rn.a.CreateBox({ size: 1 }); (this._vertexBuffers[wn.b.PositionKind] = new wn.b(e, t.positions, wn.b.PositionKind, !1)), this._createIndexBuffer(), (this._fillIndexData = t.indices); } }), (e.prototype._createIndexBuffer = function () { var e = this.scene.getEngine(); this._indexBuffer = e.createIndexBuffer([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 7, 1, 6, 2, 5, 3, 4]); }), (e.prototype.rebuild = function () { var e = this._vertexBuffers[wn.b.PositionKind]; e && e._rebuild(), this._createIndexBuffer(); }), (e.prototype.reset = function () { this.renderList.reset(); }), (e.prototype.render = function (e) { if (0 !== this.renderList.length && (this._prepareRessources(), this._colorShader.isReady())) { var t = this.scene.getEngine(); t.setDepthWrite(!1), this._colorShader._preBind(); for (var n = 0; n < this.renderList.length; n++) { var i = this.renderList.data[n]; if (i._tag === e) { var r = i.minimum, o = i.maximum.subtract(r), s = r.add(o.scale(0.5)), c = a.a.Scaling(o.x, o.y, o.z).multiply(a.a.Translation(s.x, s.y, s.z)).multiply(i.getWorldMatrix()); t.bindBuffers(this._vertexBuffers, this._indexBuffer, this._colorShader.getEffect()), this.showBackLines && (t.setDepthFunctionToGreaterOrEqual(), this.scene.resetCachedMaterial(), this._colorShader.setColor4("color", this.backColor.toColor4()), this._colorShader.bind(c), t.drawElementsType(Fo.a.LineListDrawMode, 0, 24)), t.setDepthFunctionToLess(), this.scene.resetCachedMaterial(), this._colorShader.setColor4("color", this.frontColor.toColor4()), this._colorShader.bind(c), t.drawElementsType(Fo.a.LineListDrawMode, 0, 24); } } this._colorShader.unbind(), t.setDepthFunctionToLessOrEqual(), t.setDepthWrite(!0); } }), (e.prototype.renderOcclusionBoundingBox = function (e) { if ((this._prepareRessources(), this._colorShader.isReady() && e._boundingInfo)) { var t = this.scene.getEngine(); this._fillIndexBuffer || (this._fillIndexBuffer = t.createIndexBuffer(this._fillIndexData)), t.setDepthWrite(!1), t.setColorWrite(!1), this._colorShader._preBind(); var n = e._boundingInfo.boundingBox, i = n.minimum, r = n.maximum.subtract(i), o = i.add(r.scale(0.5)), s = a.a.Scaling(r.x, r.y, r.z).multiply(a.a.Translation(o.x, o.y, o.z)).multiply(n.getWorldMatrix()); t.bindBuffers(this._vertexBuffers, this._fillIndexBuffer, this._colorShader.getEffect()), t.setDepthFunctionToLess(), this.scene.resetCachedMaterial(), this._colorShader.bind(s), t.drawElementsType(Fo.a.TriangleFillMode, 0, 36), this._colorShader.unbind(), t.setDepthFunctionToLessOrEqual(), t.setDepthWrite(!0), t.setColorWrite(!0); } }), (e.prototype.dispose = function () { if (this._colorShader) { this.renderList.dispose(), this._colorShader.dispose(); var e = this._vertexBuffers[wn.b.PositionKind]; e && (e.dispose(), (this._vertexBuffers[wn.b.PositionKind] = null)), this.scene.getEngine()._releaseBuffer(this._indexBuffer), this._fillIndexBuffer && (this.scene.getEngine()._releaseBuffer(this._fillIndexBuffer), (this._fillIndexBuffer = null)); } }), e ); })(); (ge.a.prototype.enableDepthRenderer = function (e, t) { if ((void 0 === t && (t = !1), !(e = e || this.activeCamera))) throw "No camera available to enable depth renderer"; if ((this._depthRenderer || (this._depthRenderer = {}), !this._depthRenderer[e.id])) { var n = 0; (n = this.getEngine().getCaps().textureHalfFloatRender ? 2 : this.getEngine().getCaps().textureFloatRender ? 1 : 0), (this._depthRenderer[e.id] = new la(this, n, e, t)); } return this._depthRenderer[e.id]; }), (ge.a.prototype.disableDepthRenderer = function (e) { (e = e || this.activeCamera) && this._depthRenderer && this._depthRenderer[e.id] && (this._depthRenderer[e.id].dispose(), delete this._depthRenderer[e.id]); }); var Bh = (function () { function e(e) { (this.name = me.a.NAME_DEPTHRENDERER), (this.scene = e); } return ( (e.prototype.register = function () { this.scene._gatherRenderTargetsStage.registerStep(me.a.STEP_GATHERRENDERTARGETS_DEPTHRENDERER, this, this._gatherRenderTargets), this.scene._gatherActiveCameraRenderTargetsStage.registerStep(me.a.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER, this, this._gatherActiveCameraRenderTargets); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () { for (var e in this.scene._depthRenderer) this.scene._depthRenderer[e].dispose(); }), (e.prototype._gatherRenderTargets = function (e) { if (this.scene._depthRenderer) for (var t in this.scene._depthRenderer) { var n = this.scene._depthRenderer[t]; n.enabled && !n.useOnlyInActiveCamera && e.push(n.getDepthMap()); } }), (e.prototype._gatherActiveCameraRenderTargets = function (e) { if (this.scene._depthRenderer) for (var t in this.scene._depthRenderer) { var n = this.scene._depthRenderer[t]; n.enabled && n.useOnlyInActiveCamera && this.scene.activeCamera.id === t && e.push(n.getDepthMap()); } }), e ); })(); la._SceneComponentInitialization = function (e) { var t = e._getComponent(me.a.NAME_DEPTHRENDERER); t || ((t = new Bh(e)), e._addComponent(t)); }; Xt.a.ShadersStore.linePixelShader = "uniform vec4 color;\nvoid main(void) {\ngl_FragColor=color;\n}"; var Vh = "\nattribute vec3 position;\nattribute vec4 normal;\n\nuniform mat4 worldViewProjection;\nuniform float width;\nuniform float aspectRatio;\nvoid main(void) {\nvec4 viewPosition=worldViewProjection*vec4(position,1.0);\nvec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);\nvec2 currentScreen=viewPosition.xy/viewPosition.w;\nvec2 nextScreen=viewPositionNext.xy/viewPositionNext.w;\ncurrentScreen.x*=aspectRatio;\nnextScreen.x*=aspectRatio;\nvec2 dir=normalize(nextScreen-currentScreen);\nvec2 normalDir=vec2(-dir.y,dir.x);\nnormalDir*=width/2.0;\nnormalDir.x/=aspectRatio;\nvec4 offset=vec4(normalDir*normal.w,0.0,0.0);\ngl_Position=viewPosition+offset;\n}"; Xt.a.ShadersStore.lineVertexShader = Vh; (ke.a.prototype.disableEdgesRendering = function () { return this._edgesRenderer && (this._edgesRenderer.dispose(), (this._edgesRenderer = null)), this; }), (ke.a.prototype.enableEdgesRendering = function (e, t) { return void 0 === e && (e = 0.95), void 0 === t && (t = !1), this.disableEdgesRendering(), (this._edgesRenderer = new Uh(this, e, t)), this; }), Object.defineProperty(ke.a.prototype, "edgesRenderer", { get: function () { return this._edgesRenderer; }, enumerable: !0, configurable: !0, }), (xi.b.prototype.enableEdgesRendering = function (e, t) { return void 0 === e && (e = 0.95), void 0 === t && (t = !1), this.disableEdgesRendering(), (this._edgesRenderer = new Hh(this, e, t)), this; }), (xi.a.prototype.enableEdgesRendering = function (e, t) { return void 0 === e && (e = 0.95), void 0 === t && (t = !1), xi.b.prototype.enableEdgesRendering.apply(this, arguments), this; }); var Gh = function () { (this.edges = new Array()), (this.edgesConnectedCount = 0); }, Uh = (function () { function e(e, t, n, i) { var r = this; void 0 === t && (t = 0.95), void 0 === n && (n = !1), void 0 === i && (i = !0), (this.edgesWidthScalerForOrthographic = 1e3), (this.edgesWidthScalerForPerspective = 50), (this._linesPositions = new Array()), (this._linesNormals = new Array()), (this._linesIndices = new Array()), (this._buffers = {}), (this._checkVerticesInsteadOfIndices = !1), (this.isEnabled = !0), (this._source = e), (this._checkVerticesInsteadOfIndices = n), (this._epsilon = t), this._prepareRessources(), i && this._generateEdgesLines(), (this._meshRebuildObserver = this._source.onRebuildObservable.add(function () { r._rebuild(); })), (this._meshDisposeObserver = this._source.onDisposeObservable.add(function () { r.dispose(); })); } return ( (e.prototype._prepareRessources = function () { this._lineShader || ((this._lineShader = new Qa.a("lineShader", this._source.getScene(), "line", { attributes: ["position", "normal"], uniforms: ["worldViewProjection", "color", "width", "aspectRatio"] })), (this._lineShader.disableDepthWrite = !0), (this._lineShader.backFaceCulling = !1)); }), (e.prototype._rebuild = function () { var e = this._buffers[wn.b.PositionKind]; e && e._rebuild(), (e = this._buffers[wn.b.NormalKind]) && e._rebuild(); var t = this._source.getScene().getEngine(); this._ib = t.createIndexBuffer(this._linesIndices); }), (e.prototype.dispose = function () { this._source.onRebuildObservable.remove(this._meshRebuildObserver), this._source.onDisposeObservable.remove(this._meshDisposeObserver); var e = this._buffers[wn.b.PositionKind]; e && (e.dispose(), (this._buffers[wn.b.PositionKind] = null)), (e = this._buffers[wn.b.NormalKind]) && (e.dispose(), (this._buffers[wn.b.NormalKind] = null)), this._ib && this._source.getScene().getEngine()._releaseBuffer(this._ib), this._lineShader.dispose(); }), (e.prototype._processEdgeForAdjacencies = function (e, t, n, i, r) { return (e === n && t === i) || (e === i && t === n) ? 0 : (e === i && t === r) || (e === r && t === i) ? 1 : (e === r && t === n) || (e === n && t === r) ? 2 : -1; }), (e.prototype._processEdgeForAdjacenciesWithVertices = function (e, t, n, i, r) { return (e.equalsWithEpsilon(n) && t.equalsWithEpsilon(i)) || (e.equalsWithEpsilon(i) && t.equalsWithEpsilon(n)) ? 0 : (e.equalsWithEpsilon(i) && t.equalsWithEpsilon(r)) || (e.equalsWithEpsilon(r) && t.equalsWithEpsilon(i)) ? 1 : (e.equalsWithEpsilon(r) && t.equalsWithEpsilon(n)) || (e.equalsWithEpsilon(n) && t.equalsWithEpsilon(r)) ? 2 : -1; }), (e.prototype._checkEdge = function (e, t, n, i, r) { var o; void 0 === t ? (o = !0) : (o = a.e.Dot(n[e], n[t]) < this._epsilon); o && this.createLine(i, r, this._linesPositions.length / 3); }), (e.prototype.createLine = function (e, t, n) { this._linesPositions.push(e.x, e.y, e.z, e.x, e.y, e.z, t.x, t.y, t.z, t.x, t.y, t.z), this._linesNormals.push(t.x, t.y, t.z, -1, t.x, t.y, t.z, 1, e.x, e.y, e.z, -1, e.x, e.y, e.z, 1), this._linesIndices.push(n, n + 1, n + 2, n, n + 2, n + 3); }), (e.prototype._generateEdgesLines = function () { var e = this._source.getVerticesData(wn.b.PositionKind), t = this._source.getIndices(); if (t && e) { var n, i, r = new Array(), o = new Array(); for (n = 0; n < t.length; n += 3) { i = new Gh(); var s = t[n], c = t[n + 1], l = t[n + 2]; (i.p0 = new a.e(e[3 * s], e[3 * s + 1], e[3 * s + 2])), (i.p1 = new a.e(e[3 * c], e[3 * c + 1], e[3 * c + 2])), (i.p2 = new a.e(e[3 * l], e[3 * l + 1], e[3 * l + 2])); var u = a.e.Cross(i.p1.subtract(i.p0), i.p2.subtract(i.p1)); u.normalize(), o.push(u), r.push(i); } for (n = 0; n < r.length; n++) { i = r[n]; for (var h = n + 1; h < r.length; h++) { var d = r[h]; if (3 === i.edgesConnectedCount) break; if (3 !== d.edgesConnectedCount) for (var p = t[3 * h], f = t[3 * h + 1], m = t[3 * h + 2], g = 0; g < 3; g++) { var b = 0; if (void 0 === i.edges[g]) { switch (g) { case 0: b = this._checkVerticesInsteadOfIndices ? this._processEdgeForAdjacenciesWithVertices(i.p0, i.p1, d.p0, d.p1, d.p2) : this._processEdgeForAdjacencies(t[3 * n], t[3 * n + 1], p, f, m); break; case 1: b = this._checkVerticesInsteadOfIndices ? this._processEdgeForAdjacenciesWithVertices(i.p1, i.p2, d.p0, d.p1, d.p2) : this._processEdgeForAdjacencies(t[3 * n + 1], t[3 * n + 2], p, f, m); break; case 2: b = this._checkVerticesInsteadOfIndices ? this._processEdgeForAdjacenciesWithVertices(i.p2, i.p0, d.p0, d.p1, d.p2) : this._processEdgeForAdjacencies(t[3 * n + 2], t[3 * n], p, f, m); } if (-1 !== b && ((i.edges[g] = h), (d.edges[b] = n), i.edgesConnectedCount++, d.edgesConnectedCount++, 3 === i.edgesConnectedCount)) break; } } } } for (n = 0; n < r.length; n++) { var _ = r[n]; this._checkEdge(n, _.edges[0], o, _.p0, _.p1), this._checkEdge(n, _.edges[1], o, _.p1, _.p2), this._checkEdge(n, _.edges[2], o, _.p2, _.p0); } var v = this._source.getScene().getEngine(); (this._buffers[wn.b.PositionKind] = new wn.b(v, this._linesPositions, wn.b.PositionKind, !1)), (this._buffers[wn.b.NormalKind] = new wn.b(v, this._linesNormals, wn.b.NormalKind, !1, !1, 4)), (this._ib = v.createIndexBuffer(this._linesIndices)), (this._indicesCount = this._linesIndices.length); } }), (e.prototype.isReady = function () { return this._lineShader.isReady(); }), (e.prototype.render = function () { var e = this._source.getScene(); if (this.isReady() && e.activeCamera) { var t = e.getEngine(); this._lineShader._preBind(), 1 !== this._source.edgesColor.a ? t.setAlphaMode(2) : t.setAlphaMode(0), t.bindBuffers(this._buffers, this._ib, this._lineShader.getEffect()), e.resetCachedMaterial(), this._lineShader.setColor4("color", this._source.edgesColor), e.activeCamera.mode === De.a.ORTHOGRAPHIC_CAMERA ? this._lineShader.setFloat("width", this._source.edgesWidth / this.edgesWidthScalerForOrthographic) : this._lineShader.setFloat("width", this._source.edgesWidth / this.edgesWidthScalerForPerspective), this._lineShader.setFloat("aspectRatio", t.getAspectRatio(e.activeCamera)), this._lineShader.bind(this._source.getWorldMatrix()), t.drawElementsType(Fo.a.TriangleFillMode, 0, this._indicesCount), this._lineShader.unbind(); } }), e ); })(), Hh = (function (e) { function t(t, n, i) { void 0 === n && (n = 0.95), void 0 === i && (i = !1); var r = e.call(this, t, n, i, !1) || this; return r._generateEdgesLines(), r; } return ( Object(h.d)(t, e), (t.prototype._generateEdgesLines = function () { var e = this._source.getVerticesData(wn.b.PositionKind), t = this._source.getIndices(); if (t && e) { for (var n = a.c.Vector3[0], i = a.c.Vector3[1], r = t.length - 1, o = 0, s = 0; o < r; o += 2, s += 4) a.e.FromArrayToRef(e, 3 * t[o], n), a.e.FromArrayToRef(e, 3 * t[o + 1], i), this.createLine(n, i, s); var c = this._source.getScene().getEngine(); (this._buffers[wn.b.PositionKind] = new wn.b(c, this._linesPositions, wn.b.PositionKind, !1)), (this._buffers[wn.b.NormalKind] = new wn.b(c, this._linesNormals, wn.b.NormalKind, !1, !1, 4)), (this._ib = c.createIndexBuffer(this._linesIndices)), (this._indicesCount = this._linesIndices.length); } }), t ); })(Uh), Wh = (n(142), n(174), "#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nuniform vec4 color;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n#endif\n#include\nvoid main(void) {\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#include\ngl_FragColor=color;\n}"); Xt.a.ShadersStore.outlinePixelShader = Wh; n(175); var Xh = "\nattribute vec3 position;\nattribute vec3 normal;\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n\nuniform float offset;\n#include\nuniform mat4 viewProjection;\n#ifdef ALPHATEST\nvarying vec2 vUV;\nuniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#include\nvoid main(void)\n{\nvec3 positionUpdated=position;\nvec3 normalUpdated=normal;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include[0..maxSimultaneousMorphTargets]\nvec3 offsetPosition=positionUpdated+(normalUpdated*offset);\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(offsetPosition,1.0);\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}\n"; Xt.a.ShadersStore.outlineVertexShader = Xh; (ge.a.prototype.getOutlineRenderer = function () { return this._outlineRenderer || (this._outlineRenderer = new Yh(this)), this._outlineRenderer; }), Object.defineProperty(Ee.a.prototype, "renderOutline", { get: function () { return this._renderOutline; }, set: function (e) { e && this.getScene().getOutlineRenderer(), (this._renderOutline = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(Ee.a.prototype, "renderOverlay", { get: function () { return this._renderOverlay; }, set: function (e) { e && this.getScene().getOutlineRenderer(), (this._renderOverlay = e); }, enumerable: !0, configurable: !0, }); var Yh = (function () { function e(e) { (this.name = me.a.NAME_OUTLINERENDERER), (this.zOffset = 1), (this.scene = e), (this._engine = e.getEngine()), this.scene._addComponent(this); } return ( (e.prototype.register = function () { this.scene._beforeRenderingMeshStage.registerStep(me.a.STEP_BEFORERENDERINGMESH_OUTLINE, this, this._beforeRenderingMesh), this.scene._afterRenderingMeshStage.registerStep(me.a.STEP_AFTERRENDERINGMESH_OUTLINE, this, this._afterRenderingMesh); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () {}), (e.prototype.render = function (e, t, n) { var i = this; void 0 === n && (n = !1); var r = this.scene, o = r.getEngine(), a = o.getCaps().instancedArrays && null !== t.visibleInstances[e._id] && void 0 !== t.visibleInstances[e._id]; if (this.isReady(e, a)) { var s = e.getRenderingMesh(), c = e.getMaterial(); if (c && r.activeCamera) { if ( (o.enableEffect(this._effect), c.useLogarithmicDepth && this._effect.setFloat("logarithmicDepthConstant", 2 / (Math.log(r.activeCamera.maxZ + 1) / Math.LN2)), this._effect.setFloat("offset", n ? 0 : s.outlineWidth), this._effect.setColor4("color", n ? s.overlayColor : s.outlineColor, n ? s.overlayAlpha : c.alpha), this._effect.setMatrix("viewProjection", r.getTransformMatrix()), s.useBones && s.computeBonesUsingShaders && s.skeleton && this._effect.setMatrices("mBones", s.skeleton.getTransformMatrices(s)), Ir.a.BindMorphTargetParameters(s, this._effect), s._bind(e, this._effect, c.fillMode), c && c.needAlphaTesting()) ) { var l = c.getAlphaTestTexture(); l && (this._effect.setTexture("diffuseSampler", l), this._effect.setMatrix("diffuseMatrix", l.getTextureMatrix())); } o.setZOffset(-this.zOffset), s._processRendering(e, this._effect, c.fillMode, t, a, function (e, t) { i._effect.setMatrix("world", t); }), o.setZOffset(0); } } }), (e.prototype.isReady = function (e, t) { var n = [], i = [wn.b.PositionKind, wn.b.NormalKind], r = e.getMesh(), o = e.getMaterial(); o && (o.needAlphaTesting() && (n.push("#define ALPHATEST"), r.isVerticesDataPresent(wn.b.UVKind) && (i.push(wn.b.UVKind), n.push("#define UV1")), r.isVerticesDataPresent(wn.b.UV2Kind) && (i.push(wn.b.UV2Kind), n.push("#define UV2"))), o.useLogarithmicDepth && n.push("#define LOGARITHMICDEPTH")), r.useBones && r.computeBonesUsingShaders ? (i.push(wn.b.MatricesIndicesKind), i.push(wn.b.MatricesWeightsKind), r.numBoneInfluencers > 4 && (i.push(wn.b.MatricesIndicesExtraKind), i.push(wn.b.MatricesWeightsExtraKind)), n.push("#define NUM_BONE_INFLUENCERS " + r.numBoneInfluencers), n.push("#define BonesPerMesh " + (r.skeleton ? r.skeleton.bones.length + 1 : 0))) : n.push("#define NUM_BONE_INFLUENCERS 0"); var a = r.morphTargetManager, s = 0; a && a.numInfluencers > 0 && ((s = a.numInfluencers), n.push("#define MORPHTARGETS"), n.push("#define NUM_MORPH_INFLUENCERS " + s), Ir.a.PrepareAttributesForMorphTargetsInfluencers(i, r, s)), t && (n.push("#define INSTANCES"), Ir.a.PushAttributesForInstances(i)); var c = n.join("\n"); return ( this._cachedDefines !== c && ((this._cachedDefines = c), (this._effect = this.scene .getEngine() .createEffect("outline", i, ["world", "mBones", "viewProjection", "diffuseMatrix", "offset", "color", "logarithmicDepthConstant", "morphTargetInfluences"], ["diffuseSampler"], c, void 0, void 0, void 0, { maxSimultaneousMorphTargets: s, }))), this._effect.isReady() ); }), (e.prototype._beforeRenderingMesh = function (t, n, i) { if (((this._savedDepthWrite = this._engine.getDepthWrite()), t.renderOutline)) { var r = n.getMaterial(); r && r.needAlphaBlending() && (this._engine.cacheStencilState(), this._engine.setDepthWrite(!1), this._engine.setColorWrite(!1), this._engine.setStencilBuffer(!0), this._engine.setStencilOperationPass(7681), this._engine.setStencilFunction(519), this._engine.setStencilMask(e._StencilReference), this._engine.setStencilFunctionReference(e._StencilReference), this.render(n, i, !0), this._engine.setColorWrite(!0), this._engine.setStencilFunction(517)), this._engine.setDepthWrite(!1), this.render(n, i), this._engine.setDepthWrite(this._savedDepthWrite), r && r.needAlphaBlending() && this._engine.restoreStencilState(); } }), (e.prototype._afterRenderingMesh = function (e, t, n) { if (e.renderOverlay) { var i = this._engine.getAlphaMode(), r = this._engine.alphaState.alphaBlend; this._engine.setAlphaMode(2), this.render(t, n, !0), this._engine.setAlphaMode(i), this._engine.setDepthWrite(this._savedDepthWrite), (this._engine.alphaState.alphaBlend = r); } e.renderOutline && this._savedDepthWrite && (this._engine.setDepthWrite(!0), this._engine.setColorWrite(!1), this.render(t, n), this._engine.setColorWrite(!0)); }), (e._StencilReference = 4), e ); })(), Kh = n(189), Zh = (function () { function e(e, t) { (this.name = e), (this.color = new s.b(1, 1, 1, 1)), (this.width = 1), (this.height = 1), (this.angle = 0), (this.invertU = 0), (this.invertV = 0), (this.animations = new Array()), (this.isPickable = !1), (this._animationStarted = !1), (this._loopAnimation = !1), (this._fromIndex = 0), (this._toIndex = 0), (this._delay = 0), (this._direction = 1), (this._time = 0), (this.isVisible = !0), (this._manager = t), this._manager.sprites.push(this), (this.position = a.e.Zero()); } return ( Object.defineProperty(e.prototype, "size", { get: function () { return this.width; }, set: function (e) { (this.width = e), (this.height = e); }, enumerable: !0, configurable: !0, }), (e.prototype.playAnimation = function (e, t, n, i, r) { (this._fromIndex = e), (this._toIndex = t), (this._loopAnimation = n), (this._delay = i), (this._animationStarted = !0), e < t ? (this._direction = 1) : ((this._direction = -1), (this._toIndex = e), (this._fromIndex = t)), (this.cellIndex = e), (this._time = 0), (this._onAnimationEnd = r); }), (e.prototype.stopAnimation = function () { this._animationStarted = !1; }), (e.prototype._animate = function (e) { this._animationStarted && ((this._time += e), this._time > this._delay && ((this._time = this._time % this._delay), (this.cellIndex += this._direction), ((this._direction > 0 && this.cellIndex > this._toIndex) || (this._direction < 0 && this.cellIndex < this._fromIndex)) && (this._loopAnimation ? (this.cellIndex = this._direction > 0 ? this._fromIndex : this._toIndex) : ((this.cellIndex = this._toIndex), (this._animationStarted = !1), this._onAnimationEnd && this._onAnimationEnd(), this.disposeWhenFinishedAnimating && this.dispose())))); }), (e.prototype.dispose = function () { for (var e = 0; e < this._manager.sprites.length; e++) this._manager.sprites[e] == this && this._manager.sprites.splice(e, 1); }), e ); })(); (ge.a.prototype._internalPickSprites = function (e, t, n, i) { if (!Ae.a) return null; var r = null; if (!i) { if (!this.activeCamera) return null; i = this.activeCamera; } if (this.spriteManagers.length > 0) for (var o = 0; o < this.spriteManagers.length; o++) { var a = this.spriteManagers[o]; if (a.isPickable) { var s = a.intersects(e, i, t, n); if (s && s.hit && (n || null == r || !(s.distance >= r.distance)) && ((r = s), n)) break; } } return r || new Ae.a(); }), (ge.a.prototype._internalMultiPickSprites = function (e, t, n) { if (!Ae.a) return null; var i = new Array(); if (!n) { if (!this.activeCamera) return null; n = this.activeCamera; } if (this.spriteManagers.length > 0) for (var r = 0; r < this.spriteManagers.length; r++) { var o = this.spriteManagers[r]; if (o.isPickable) { var a = o.multiIntersects(e, n, t); null !== a && (i = i.concat(a)); } } return i; }), (ge.a.prototype.pickSprite = function (e, t, n, i, r) { return this.createPickingRayInCameraSpaceToRef(e, t, this._tempSpritePickingRay, r), this._internalPickSprites(this._tempSpritePickingRay, n, i, r); }), (ge.a.prototype.pickSpriteWithRay = function (e, t, n, i) { if (!this._tempSpritePickingRay) return null; if (!i) { if (!this.activeCamera) return null; i = this.activeCamera; } return Re.TransformToRef(e, i.getViewMatrix(), this._tempSpritePickingRay), this._internalPickSprites(this._tempSpritePickingRay, t, n, i); }), (ge.a.prototype.multiPickSprite = function (e, t, n, i) { return this.createPickingRayInCameraSpaceToRef(e, t, this._tempSpritePickingRay, i), this._internalMultiPickSprites(this._tempSpritePickingRay, n, i); }), (ge.a.prototype.multiPickSpriteWithRay = function (e, t, n) { if (!this._tempSpritePickingRay) return null; if (!n) { if (!this.activeCamera) return null; n = this.activeCamera; } return Re.TransformToRef(e, n.getViewMatrix(), this._tempSpritePickingRay), this._internalMultiPickSprites(this._tempSpritePickingRay, t, n); }), (ge.a.prototype.setPointerOverSprite = function (e) { this._pointerOverSprite !== e && (this._pointerOverSprite && this._pointerOverSprite.actionManager && this._pointerOverSprite.actionManager.processTrigger(10, u.a.CreateNewFromSprite(this._pointerOverSprite, this)), (this._pointerOverSprite = e), this._pointerOverSprite && this._pointerOverSprite.actionManager && this._pointerOverSprite.actionManager.processTrigger(9, u.a.CreateNewFromSprite(this._pointerOverSprite, this))); }), (ge.a.prototype.getPointerOverSprite = function () { return this._pointerOverSprite; }); var qh = (function () { function e(e) { (this.name = me.a.NAME_SPRITE), (this.scene = e), (this.scene.spriteManagers = new Array()), (this.scene._tempSpritePickingRay = Re ? Re.Zero() : null), (this.scene.onBeforeSpritesRenderingObservable = new o.c()), (this.scene.onAfterSpritesRenderingObservable = new o.c()), (this._spritePredicate = function (e) { return !!e.actionManager && e.isPickable && e.actionManager.hasPointerTriggers; }); } return ( (e.prototype.register = function () { this.scene._pointerMoveStage.registerStep(me.a.STEP_POINTERMOVE_SPRITE, this, this._pointerMove), this.scene._pointerDownStage.registerStep(me.a.STEP_POINTERDOWN_SPRITE, this, this._pointerDown), this.scene._pointerUpStage.registerStep(me.a.STEP_POINTERUP_SPRITE, this, this._pointerUp); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () { this.scene.onBeforeSpritesRenderingObservable.clear(), this.scene.onAfterSpritesRenderingObservable.clear(); for (var e = this.scene.spriteManagers; e.length; ) e[0].dispose(); }), (e.prototype._pickSpriteButKeepRay = function (e, t, n, i, r) { var o = this.scene.pickSprite(t, n, this._spritePredicate, i, r); return o && (o.ray = e ? e.ray : null), o; }), (e.prototype._pointerMove = function (e, t, n, i, r) { var o = this.scene; return ( i ? o.setPointerOverSprite(null) : (n = this._pickSpriteButKeepRay(n, e, t, !1, o.cameraToUseForPointers || void 0)) && n.hit && n.pickedSprite ? (o.setPointerOverSprite(n.pickedSprite), o.doNotHandleCursors || (o._pointerOverSprite && o._pointerOverSprite.actionManager && o._pointerOverSprite.actionManager.hoverCursor ? (r.style.cursor = o._pointerOverSprite.actionManager.hoverCursor) : (r.style.cursor = o.hoverCursor))) : o.setPointerOverSprite(null), n ); }), (e.prototype._pointerDown = function (e, t, n, i) { var r = this.scene; if (((r._pickedDownSprite = null), r.spriteManagers.length > 0 && (n = r.pickSprite(e, t, this._spritePredicate, !1, r.cameraToUseForPointers || void 0)) && n.hit && n.pickedSprite && n.pickedSprite.actionManager)) { switch (((r._pickedDownSprite = n.pickedSprite), i.button)) { case 0: n.pickedSprite.actionManager.processTrigger(2, u.a.CreateNewFromSprite(n.pickedSprite, r, i)); break; case 1: n.pickedSprite.actionManager.processTrigger(4, u.a.CreateNewFromSprite(n.pickedSprite, r, i)); break; case 2: n.pickedSprite.actionManager.processTrigger(3, u.a.CreateNewFromSprite(n.pickedSprite, r, i)); } n.pickedSprite.actionManager && n.pickedSprite.actionManager.processTrigger(5, u.a.CreateNewFromSprite(n.pickedSprite, r, i)); } return n; }), (e.prototype._pointerUp = function (e, t, n, i) { var r = this.scene; if (r.spriteManagers.length > 0) { var o = r.pickSprite(e, t, this._spritePredicate, !1, r.cameraToUseForPointers || void 0); o && (o.hit && o.pickedSprite && o.pickedSprite.actionManager && (o.pickedSprite.actionManager.processTrigger(7, u.a.CreateNewFromSprite(o.pickedSprite, r, i)), o.pickedSprite.actionManager && (this.scene._inputManager._isPointerSwiping() || o.pickedSprite.actionManager.processTrigger(1, u.a.CreateNewFromSprite(o.pickedSprite, r, i)))), r._pickedDownSprite && r._pickedDownSprite.actionManager && r._pickedDownSprite !== o.pickedSprite && r._pickedDownSprite.actionManager.processTrigger(16, u.a.CreateNewFromSprite(r._pickedDownSprite, r, i))); } return n; }), e ); })(), Qh = "uniform bool alphaTest;\nvarying vec4 vColor;\n\nvarying vec2 vUV;\nuniform sampler2D diffuseSampler;\n\n#include\nvoid main(void) {\nvec4 color=texture2D(diffuseSampler,vUV);\nif (alphaTest)\n{\nif (color.a<0.95)\ndiscard;\n}\ncolor*=vColor;\n#include\ngl_FragColor=color;\n}"; Xt.a.ShadersStore.spritesPixelShader = Qh; var Jh = "\nattribute vec4 position;\nattribute vec4 options;\nattribute vec2 inverts;\nattribute vec4 cellInfo;\nattribute vec4 color;\n\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#include\nvoid main(void) {\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;\nvec2 cornerPos;\nfloat angle=position.w;\nvec2 size=vec2(options.x,options.y);\nvec2 offset=options.zw;\ncornerPos=vec2(offset.x-0.5,offset.y-0.5)*size;\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nviewPos+=rotatedCorner;\ngl_Position=projection*vec4(viewPos,1.0);\n\nvColor=color;\n\nvec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\nvec2 uvPlace=cellInfo.xy;\nvec2 uvSize=cellInfo.zw;\nvUV.x=uvPlace.x+uvSize.x*uvOffset.x;\nvUV.y=uvPlace.y+uvSize.y*uvOffset.y;\n\n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n}"; Xt.a.ShadersStore.spritesVertexShader = Jh; var $h = (function () { function e(e, t, n, i, r, a, s, c, l) { if ( (void 0 === a && (a = 0.01), void 0 === s && (s = ln.a.TRILINEAR_SAMPLINGMODE), void 0 === c && (c = !1), void 0 === l && (l = null), (this.name = e), (this.sprites = new Array()), (this.renderingGroupId = 0), (this.layerMask = 268435455), (this.fogEnabled = !0), (this.isPickable = !1), (this._packedAndReady = !1), (this.onDisposeObservable = new o.c()), (this._vertexBuffers = {}), (this._blendMode = 2), (this.disableDepthWrite = !1), r._getComponent(me.a.NAME_SPRITE) || r._addComponent(new qh(r)), (this._capacity = n), (this._fromPacked = c), (this._spriteTexture = new ln.a(t, r, !0, !1, s)), (this._spriteTexture.wrapU = ln.a.CLAMP_ADDRESSMODE), (this._spriteTexture.wrapV = ln.a.CLAMP_ADDRESSMODE), i.width && i.height) ) (this.cellWidth = i.width), (this.cellHeight = i.height); else { if (void 0 === i) return; (this.cellWidth = i), (this.cellHeight = i); } (this._epsilon = a), (this._scene = r), this._scene.spriteManagers.push(this); for (var u = [], h = 0, d = 0; d < n; d++) u.push(h), u.push(h + 1), u.push(h + 2), u.push(h), u.push(h + 2), u.push(h + 3), (h += 4); (this._indexBuffer = r.getEngine().createIndexBuffer(u)), (this._vertexData = new Float32Array(18 * n * 4)), (this._buffer = new wn.a(r.getEngine(), this._vertexData, !0, 18)); var p = this._buffer.createVertexBuffer(wn.b.PositionKind, 0, 4), f = this._buffer.createVertexBuffer("options", 4, 4), m = this._buffer.createVertexBuffer("inverts", 8, 2), g = this._buffer.createVertexBuffer("cellInfo", 10, 4), b = this._buffer.createVertexBuffer(wn.b.ColorKind, 14, 4); (this._vertexBuffers[wn.b.PositionKind] = p), (this._vertexBuffers.options = f), (this._vertexBuffers.inverts = m), (this._vertexBuffers.cellInfo = g), (this._vertexBuffers[wn.b.ColorKind] = b), (this._effectBase = this._scene .getEngine() .createEffect("sprites", [wn.b.PositionKind, "options", "inverts", "cellInfo", wn.b.ColorKind], ["view", "projection", "textureInfos", "alphaTest"], ["diffuseSampler"], "")), (this._effectFog = this._scene .getEngine() .createEffect("sprites", [wn.b.PositionKind, "options", "inverts", "cellInfo", wn.b.ColorKind], ["view", "projection", "textureInfos", "alphaTest", "vFogInfos", "vFogColor"], ["diffuseSampler"], "#define FOG")), this._fromPacked && this._makePacked(t, l); } return ( Object.defineProperty(e.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "texture", { get: function () { return this._spriteTexture; }, set: function (e) { this._spriteTexture = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "blendMode", { get: function () { return this._blendMode; }, set: function (e) { this._blendMode = e; }, enumerable: !0, configurable: !0, }), (e.prototype._makePacked = function (e, t) { var n = this; if (null !== t) try { var i = void 0; if ((i = "string" == typeof t ? JSON.parse(t) : t).frames.length) { for (var r = {}, o = 0; o < i.frames.length; o++) { var a = i.frames[o]; if ("string" != typeof Object.keys(a)[0]) throw new Error("Invalid JSON Format. Check the frame values and make sure the name is the first parameter."); r[a[Object.keys(a)[0]]] = a; } i.frames = r; } var s = Reflect.ownKeys(i.frames); (this._spriteMap = s), (this._packedAndReady = !0), (this._cellData = i.frames); } catch (e) { throw ((this._fromPacked = !1), (this._packedAndReady = !1), new Error("Invalid JSON from string. Spritesheet managed with constant cell size.")); } else { var c = /\./g, l = void 0; do { (l = c.lastIndex), c.test(e); } while (c.lastIndex > 0); var u = e.substring(0, l - 1) + ".json", h = new XMLHttpRequest(); h.open("GET", u, !0), (h.onerror = function () { g.a.Error("JSON ERROR: Unable to load JSON file."), (n._fromPacked = !1), (n._packedAndReady = !1); }), (h.onload = function () { try { var e = JSON.parse(h.response), t = Reflect.ownKeys(e.frames); (n._spriteMap = t), (n._packedAndReady = !0), (n._cellData = e.frames); } catch (e) { throw ((n._fromPacked = !1), (n._packedAndReady = !1), new Error("Invalid JSON format. Please check documentation for format specifications.")); } }), h.send(); } }), (e.prototype._appendSpriteVertex = function (e, t, n, i, r) { var o = 18 * e; if ( (0 === n ? (n = this._epsilon) : 1 === n && (n = 1 - this._epsilon), 0 === i ? (i = this._epsilon) : 1 === i && (i = 1 - this._epsilon), (this._vertexData[o] = t.position.x), (this._vertexData[o + 1] = t.position.y), (this._vertexData[o + 2] = t.position.z), (this._vertexData[o + 3] = t.angle), (this._vertexData[o + 4] = t.width), (this._vertexData[o + 5] = t.height), (this._vertexData[o + 6] = n), (this._vertexData[o + 7] = i), (this._vertexData[o + 8] = t.invertU ? 1 : 0), (this._vertexData[o + 9] = t.invertV ? 1 : 0), this._packedAndReady) ) { t.cellRef || (t.cellIndex = 0); var a = t.cellIndex; "number" == typeof a && isFinite(a) && Math.floor(a) === a && (t.cellRef = this._spriteMap[t.cellIndex]), (this._vertexData[o + 10] = this._cellData[t.cellRef].frame.x / r.width), (this._vertexData[o + 11] = this._cellData[t.cellRef].frame.y / r.height), (this._vertexData[o + 12] = this._cellData[t.cellRef].frame.w / r.width), (this._vertexData[o + 13] = this._cellData[t.cellRef].frame.h / r.height); } else { t.cellIndex || (t.cellIndex = 0); var s = r.width / this.cellWidth, c = (t.cellIndex / s) >> 0; (this._vertexData[o + 10] = ((t.cellIndex - c * s) * this.cellWidth) / r.width), (this._vertexData[o + 11] = (c * this.cellHeight) / r.height), (this._vertexData[o + 12] = this.cellWidth / r.width), (this._vertexData[o + 13] = this.cellHeight / r.height); } (this._vertexData[o + 14] = t.color.r), (this._vertexData[o + 15] = t.color.g), (this._vertexData[o + 16] = t.color.b), (this._vertexData[o + 17] = t.color.a); }), (e.prototype.intersects = function (e, t, n, i) { for (var r = Math.min(this._capacity, this.sprites.length), o = a.e.Zero(), s = a.e.Zero(), c = Number.MAX_VALUE, l = null, u = a.c.Vector3[0], h = a.c.Vector3[1], d = t.getViewMatrix(), p = 0; p < r; p++) { var f = this.sprites[p]; if (f) { if (n) { if (!n(f)) continue; } else if (!f.isPickable) continue; if ( (a.e.TransformCoordinatesToRef(f.position, d, h), o.copyFromFloats(h.x - f.width / 2, h.y - f.height / 2, h.z), s.copyFromFloats(h.x + f.width / 2, h.y + f.height / 2, h.z), e.intersectsBoxMinMax(o, s)) ) { var m = a.e.Distance(h, e.origin); if (c > m && ((c = m), (l = f), i)) break; } } } if (l) { var g = new Ae.a(); d.invertToRef(a.c.Matrix[0]), (g.hit = !0), (g.pickedSprite = l), (g.distance = c); var b = a.c.Vector3[2]; return b.copyFrom(e.direction), b.normalize(), b.scaleInPlace(c), e.origin.addToRef(b, u), (g.pickedPoint = a.e.TransformCoordinates(u, a.c.Matrix[0])), g; } return null; }), (e.prototype.multiIntersects = function (e, t, n) { for ( var i, r = Math.min(this._capacity, this.sprites.length), o = a.e.Zero(), s = a.e.Zero(), c = [], l = a.c.Vector3[0].copyFromFloats(0, 0, 0), u = a.c.Vector3[1].copyFromFloats(0, 0, 0), h = t.getViewMatrix(), d = 0; d < r; d++ ) { var p = this.sprites[d]; if (p) { if (n) { if (!n(p)) continue; } else if (!p.isPickable) continue; if ( (a.e.TransformCoordinatesToRef(p.position, h, u), o.copyFromFloats(u.x - p.width / 2, u.y - p.height / 2, u.z), s.copyFromFloats(u.x + p.width / 2, u.y + p.height / 2, u.z), e.intersectsBoxMinMax(o, s)) ) { i = a.e.Distance(u, e.origin); var f = new Ae.a(); c.push(f), h.invertToRef(a.c.Matrix[0]), (f.hit = !0), (f.pickedSprite = p), (f.distance = i); var m = a.c.Vector3[2]; m.copyFrom(e.direction), m.normalize(), m.scaleInPlace(i), e.origin.addToRef(m, l), (f.pickedPoint = a.e.TransformCoordinates(l, a.c.Matrix[0])); } } } return c; }), (e.prototype.render = function () { if ( this._effectBase.isReady() && this._effectFog.isReady() && this._spriteTexture && this._spriteTexture.isReady() && this.sprites.length && (!this._fromPacked || (this._packedAndReady && this._spriteMap && this._cellData)) ) { for (var e = this._scene.getEngine(), t = this._spriteTexture.getBaseSize(), n = e.getDeltaTime(), i = Math.min(this._capacity, this.sprites.length), r = 0, o = !0, a = 0; a < i; a++) { var s = this.sprites[a]; s && s.isVisible && ((o = !1), s._animate(n), this._appendSpriteVertex(r++, s, 0, 0, t), this._appendSpriteVertex(r++, s, 1, 0, t), this._appendSpriteVertex(r++, s, 1, 1, t), this._appendSpriteVertex(r++, s, 0, 1, t)); } if (!o) { this._buffer.update(this._vertexData); var c = this._effectBase; this._scene.fogEnabled && this._scene.fogMode !== ge.a.FOGMODE_NONE && this.fogEnabled && (c = this._effectFog), e.enableEffect(c); var l = this._scene.getViewMatrix(); c.setTexture("diffuseSampler", this._spriteTexture), c.setMatrix("view", l), c.setMatrix("projection", this._scene.getProjectionMatrix()), this._scene.fogEnabled && this._scene.fogMode !== ge.a.FOGMODE_NONE && this.fogEnabled && (c.setFloat4("vFogInfos", this._scene.fogMode, this._scene.fogStart, this._scene.fogEnd, this._scene.fogDensity), c.setColor3("vFogColor", this._scene.fogColor)), e.bindBuffers(this._vertexBuffers, this._indexBuffer, c), e.setDepthFunctionToLessOrEqual(), this.disableDepthWrite || (c.setBool("alphaTest", !0), e.setColorWrite(!1), e.drawElementsType(Fo.a.TriangleFillMode, 0, (r / 4) * 6), e.setColorWrite(!0), c.setBool("alphaTest", !1)), e.setAlphaMode(this._blendMode), e.drawElementsType(Fo.a.TriangleFillMode, 0, (r / 4) * 6), e.setAlphaMode(0); } } }), (e.prototype.dispose = function () { this._buffer && (this._buffer.dispose(), (this._buffer = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)), this._spriteTexture && (this._spriteTexture.dispose(), (this._spriteTexture = null)); var e = this._scene.spriteManagers.indexOf(this); this._scene.spriteManagers.splice(e, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(); }), e ); })(), ed = "precision highp float;\nvarying vec3 vPosition;\nvarying vec2 vUV;\nvarying vec2 tUV;\nuniform float time;\nuniform float spriteCount;\nuniform sampler2D spriteSheet;\nuniform vec2 spriteMapSize;\nuniform vec2 outputSize;\nuniform vec2 stageSize;\nuniform sampler2D frameMap;\nuniform sampler2D tileMaps[LAYERS];\nuniform sampler2D animationMap;\nuniform vec3 colorMul;\nfloat mt;\nconst float fdStep=1./4.;\nconst float aFrameSteps=1./MAX_ANIMATION_FRAMES;\nmat4 getFrameData(float frameID){\nfloat fX=frameID/spriteCount;\nreturn mat4(\ntexture2D(frameMap,vec2(fX,0.),0.),\ntexture2D(frameMap,vec2(fX,fdStep*1.),0.),\ntexture2D(frameMap,vec2(fX,fdStep*2.),0.),\nvec4(0.)\n);\n}\nvoid main(){\nvec4 color=vec4(0.);\nvec2 tileUV=fract(tUV);\n#ifdef FLIPU\ntileUV.y=1.0-tileUV.y;\n#endif\nvec2 tileID=floor(tUV);\nvec2 sheetUnits=1./spriteMapSize;\nfloat spriteUnits=1./spriteCount;\nvec2 stageUnits=1./stageSize;\nfor(int i=0; i0.) {\nmt=mod(time*animationData.z,1.0);\nfor(float f=0.; fmt){\nframeID=animationData.x;\nbreak;\n}\nanimationData=texture2D(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);\n}\n}\n\nmat4 frameData=getFrameData(frameID+0.5);\nvec2 frameSize=(frameData[0].wz)/spriteMapSize;\nvec2 offset=frameData[0].xy*sheetUnits;\nvec2 ratio=frameData[2].xy/frameData[0].wz;\n\nif (frameData[2].z == 1.){\ntileUV.xy=tileUV.yx;\n}\nif (i == 0){\ncolor=texture2D(spriteSheet,tileUV*frameSize+offset);\n} else {\nvec4 nc=texture2D(spriteSheet,tileUV*frameSize+offset);\nfloat alpha=min(color.a+nc.a,1.0);\nvec3 mixed=mix(color.xyz,nc.xyz,nc.a);\ncolor=vec4(mixed,alpha);\n}\n}\ncolor.xyz*=colorMul;\ngl_FragColor=color;\n}"; Xt.a.ShadersStore.spriteMapPixelShader = ed; var td = "precision highp float;\n\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\n\nvarying vec3 vPosition;\nvarying vec2 vUV;\nvarying vec2 tUV;\nvarying vec2 stageUnits;\nvarying vec2 levelUnits;\nvarying vec2 tileID;\n\nuniform float time;\nuniform mat4 worldViewProjection;\nuniform vec2 outputSize;\nuniform vec2 stageSize;\nuniform vec2 spriteMapSize;\nuniform float stageScale;\nvoid main() {\nvec4 p=vec4( position,1. );\nvPosition=p.xyz;\nvUV=uv;\ntUV=uv*stageSize;\ngl_Position=worldViewProjection*p;\n}"; Xt.a.ShadersStore.spriteMapVertexShader = td; var nd, id = (function () { function e(e, t, n, i, r) { var o = this; (this.name = e), (this.sprites = []), (this.atlasJSON = t), (this.sprites = this.atlasJSON.frames), (this.spriteSheet = n), (this.options = i), (i.stageSize = i.stageSize || new a.d(1, 1)), (i.outputSize = i.outputSize || i.stageSize), (i.outputPosition = i.outputPosition || a.e.Zero()), (i.outputRotation = i.outputRotation || a.e.Zero()), (i.layerCount = i.layerCount || 1), (i.maxAnimationFrames = i.maxAnimationFrames || 0), (i.baseTile = i.baseTile || 0), (i.flipU = i.flipU || !1), (i.colorMultiply = i.colorMultiply || new a.e(1, 1, 1)), (this._scene = r), (this._frameMap = this._createFrameBuffer()), (this._tileMaps = new Array()); for (var s = 0; s < i.layerCount; s++) this._tileMaps.push(this._createTileBuffer(null, s)); this._animationMap = this._createTileAnimationBuffer(null); var c = []; c.push("#define LAYERS " + i.layerCount), i.flipU && c.push("#define FLIPU"), c.push("#define MAX_ANIMATION_FRAMES " + i.maxAnimationFrames + ".0"); var l, u = Xt.a.ShadersStore.spriteMapPixelShader; if (1 === this._scene.getEngine().webGLVersion) { l = ""; for (s = 0; s < i.layerCount; s++) l += "if (" + s + " == i) { frameID = texture2D(tileMaps[" + s + "], (tileID + 0.5) / stageSize, 0.).x; }"; } else { l = "switch(i) {"; for (s = 0; s < i.layerCount; s++) (l += "case " + s + " : frameID = texture(tileMaps[" + s + "], (tileID + 0.5) / stageSize, 0.).x;"), (l += "break;"); l += "}"; } (Xt.a.ShadersStore["spriteMap" + this.name + "PixelShader"] = u.replace("#define LAYER_ID_SWITCH", l)), (this._material = new Qa.a( "spriteMap:" + this.name, this._scene, { vertex: "spriteMap", fragment: "spriteMap" + this.name }, { defines: c, attributes: ["position", "normal", "uv"], uniforms: ["worldViewProjection", "time", "stageSize", "outputSize", "spriteMapSize", "spriteCount", "time", "colorMul", "mousePosition", "curTile", "flipU"], samplers: ["spriteSheet", "frameMap", "tileMaps", "animationMap"], needAlphaBlending: !0, } )), (this._time = 0), this._material.setFloat("spriteCount", this.spriteCount), this._material.setVector2("stageSize", i.stageSize), this._material.setVector2("outputSize", i.outputSize), this._material.setTexture("spriteSheet", this.spriteSheet), this._material.setVector2("spriteMapSize", new a.d(1, 1)), this._material.setVector3("colorMul", i.colorMultiply); var h = 0, d = function () { o.spriteSheet && o.spriteSheet.isReady() && o.spriteSheet._texture ? o._material.setVector2("spriteMapSize", new a.d(o.spriteSheet._texture.baseWidth || 1, o.spriteSheet._texture.baseHeight || 1)) : h < 100 && setTimeout(function () { h++, d(); }, 100); }; d(), this._material.setVector3("colorMul", i.colorMultiply), this._material.setTexture("frameMap", this._frameMap), this._material.setTextureArray("tileMaps", this._tileMaps), this._material.setTexture("animationMap", this._animationMap), this._material.setFloat("time", this._time), (this._output = Ee.a.CreatePlane(e + ":output", 1, r, !0)), (this._output.scaling.x = i.outputSize.x), (this._output.scaling.y = i.outputSize.y); this._scene.onBeforeRenderObservable.add(function () { (o._time += o._scene.getEngine().getDeltaTime()), o._material.setFloat("time", o._time); }), (this._output.material = this._material); } return ( Object.defineProperty(e.prototype, "spriteCount", { get: function () { return this.sprites.length; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "position", { get: function () { return this._output.position; }, set: function (e) { this._output.position = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rotation", { get: function () { return this._output.rotation; }, set: function (e) { this._output.rotation = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "animationMap", { get: function () { return this._animationMap; }, set: function (e) { var t = e._texture._bufferView, n = this._createTileAnimationBuffer(t); this._animationMap.dispose(), (this._animationMap = n), this._material.setTexture("animationMap", this._animationMap); }, enumerable: !0, configurable: !0, }), (e.prototype.getTileID = function () { var e = this.getMousePosition(); return e.multiplyInPlace(this.options.stageSize || a.d.Zero()), (e.x = Math.floor(e.x)), (e.y = Math.floor(e.y)), e; }), (e.prototype.getMousePosition = function () { var e = this._output, t = this._scene.pick(this._scene.pointerX, this._scene.pointerY, function (t) { return t === e; }); if (!t || !t.hit || !t.getTextureCoordinates) return new a.d(-1, -1); var n = t.getTextureCoordinates(); return n || new a.d(-1, -1); }), (e.prototype._createFrameBuffer = function () { for (var e = new Array(), t = 0; t < this.spriteCount; t++) e.push(0, 0, 0, 0), e.push(0, 0, 0, 0), e.push(0, 0, 0, 0), e.push(0, 0, 0, 0); for (t = 0; t < this.spriteCount; t++) { var n = this.sprites[t].frame, i = this.sprites[t].spriteSourceSize, r = this.sprites[t].sourceSize, o = this.sprites[t].rotated ? 1 : 0, a = this.sprites[t].trimmed ? 1 : 0; (e[4 * t] = n.x), (e[4 * t + 1] = n.y), (e[4 * t + 2] = n.w), (e[4 * t + 3] = n.h), (e[4 * t + 4 * this.spriteCount] = i.x), (e[4 * t + 1 + 4 * this.spriteCount] = i.y), (e[4 * t + 3 + 4 * this.spriteCount] = i.h), (e[4 * t + 8 * this.spriteCount] = r.w), (e[4 * t + 1 + 8 * this.spriteCount] = r.h), (e[4 * t + 2 + 8 * this.spriteCount] = o), (e[4 * t + 3 + 8 * this.spriteCount] = a); } var s = new Float32Array(e); return Cs.a.CreateRGBATexture(s, this.spriteCount, 4, this._scene, !1, !1, ln.a.NEAREST_NEAREST, ue.a.TEXTURETYPE_FLOAT); }), (e.prototype._createTileBuffer = function (e, t) { void 0 === t && (t = 0); var n = new Array(), i = this.options.stageSize.y || 0, r = this.options.stageSize.x || 0; if (e) n = e; else { var o = this.options.baseTile; 0 != t && (o = 0); for (var a = 0; a < i; a++) for (var s = 0; s < 4 * r; s += 4) n.push(o, 0, 0, 0); } var c = new Float32Array(n); return Cs.a.CreateRGBATexture(c, r, i, this._scene, !1, !1, ln.a.NEAREST_NEAREST, ue.a.TEXTURETYPE_FLOAT); }), (e.prototype.changeTiles = function (e, t, n) { var i; if ((void 0 === e && (e = 0), void 0 === n && (n = 0), null !== (i = this._tileMaps[e]._texture._bufferView))) { var r = new Array(); t instanceof a.d ? r.push(t) : (r = t); for (var o = this.options.stageSize.x || 0, s = 0; s < r.length; s++) { var c = r[s]; (c.x = Math.floor(c.x)), (c.y = Math.floor(c.y)), (i[4 * c.x + c.y * (4 * o)] = n); } var l = this._createTileBuffer(i); this._tileMaps[e].dispose(), (this._tileMaps[e] = l), this._material.setTextureArray("tileMap", this._tileMaps); } }), (e.prototype._createTileAnimationBuffer = function (e) { var t, n = new Array(); if (e) t = e; else { for (var i = 0; i < this.spriteCount; i++) { n.push(0, 0, 0, 0); for (var r = 1; r < (this.options.maxAnimationFrames || 4); ) n.push(0, 0, 0, 0), r++; } t = new Float32Array(n); } return Cs.a.CreateRGBATexture(t, this.spriteCount, this.options.maxAnimationFrames || 4, this._scene, !1, !1, ln.a.NEAREST_NEAREST, ue.a.TEXTURETYPE_FLOAT); }), (e.prototype.addAnimationToTile = function (e, t, n, i, r) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i && (i = 0), void 0 === r && (r = 1); var o = this._animationMap._texture._bufferView, a = 4 * e + 4 * this.spriteCount * t; if (o) { (o[a] = n), (o[a + 1] = i), (o[a + 2] = r); var s = this._createTileAnimationBuffer(o); this._animationMap.dispose(), (this._animationMap = s), this._material.setTexture("animationMap", this._animationMap); } }), (e.prototype.saveTileMaps = function () { for (var e = "", t = 0; t < this._tileMaps.length; t++) t > 0 && (e += "\n\r"), (e += this._tileMaps[t]._texture._bufferView.toString()); var n = document.createElement("a"); (n.href = "data:octet/stream;charset=utf-8," + encodeURI(e)), (n.target = "_blank"), (n.download = this.name + ".tilemaps"), n.click(), n.remove(); }), (e.prototype.loadTileMaps = function (e) { var t = this, n = new XMLHttpRequest(); n.open("GET", e); var i = this.options.layerCount || 0; (n.onload = function () { for (var e = n.response.split("\n\r"), r = 0; r < i; r++) { var o = e[r].split(",").map(Number), a = t._createTileBuffer(o); t._tileMaps[r].dispose(), (t._tileMaps[r] = a); } t._material.setTextureArray("tileMap", t._tileMaps); }), n.send(); }), (e.prototype.dispose = function () { this._output.dispose(), this._material.dispose(), this._animationMap.dispose(), this._tileMaps.forEach(function (e) { e.dispose(); }), this._frameMap.dispose(); }), e ); })(), rd = (function (e) { function t(t, n, i, r, o, a, s) { void 0 === o && (o = null), void 0 === a && (a = 0.01), void 0 === s && (s = ln.a.TRILINEAR_SAMPLINGMODE); var c = e.call(this, t, n, i, 64, r, a, s, !0, o) || this; return (c.name = t), c; } return Object(h.d)(t, e), t; })($h), od = n(184), ad = n(182), sd = n(183), cd = n(179); !(function (e) { (e[(e.INIT = 0)] = "INIT"), (e[(e.RUNNING = 1)] = "RUNNING"), (e[(e.DONE = 2)] = "DONE"), (e[(e.ERROR = 3)] = "ERROR"); })(nd || (nd = {})); var ld, ud = (function () { function e(e) { (this.name = e), (this._isCompleted = !1), (this._taskState = nd.INIT); } return ( Object.defineProperty(e.prototype, "isCompleted", { get: function () { return this._isCompleted; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "taskState", { get: function () { return this._taskState; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "errorObject", { get: function () { return this._errorObject; }, enumerable: !0, configurable: !0, }), (e.prototype._setErrorObject = function (e, t) { this._errorObject || (this._errorObject = { message: e, exception: t }); }), (e.prototype.run = function (e, t, n) { var i = this; (this._taskState = nd.RUNNING), this.runTask( e, function () { i.onDoneCallback(t, n); }, function (e, t) { i.onErrorCallback(n, e, t); } ); }), (e.prototype.runTask = function (e, t, n) { throw new Error("runTask is not implemented"); }), (e.prototype.reset = function () { this._taskState = nd.INIT; }), (e.prototype.onErrorCallback = function (e, t, n) { (this._taskState = nd.ERROR), (this._errorObject = { message: t, exception: n }), this.onError && this.onError(this, t, n), e(); }), (e.prototype.onDoneCallback = function (e, t) { try { (this._taskState = nd.DONE), (this._isCompleted = !0), this.onSuccess && this.onSuccess(this), e(); } catch (e) { this.onErrorCallback(t, "Task is done, error executing success callback(s)", e); } }), e ); })(), hd = function (e, t, n) { (this.remainingCount = e), (this.totalCount = t), (this.task = n); }, dd = (function (e) { function t(t, n, i, r) { var o = e.call(this, t) || this; return (o.name = t), (o.meshesNames = n), (o.rootUrl = i), (o.sceneFilename = r), o; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { var i = this; $i.a.ImportMesh( this.meshesNames, this.rootUrl, this.sceneFilename, e, function (e, n, r, o) { (i.loadedMeshes = e), (i.loadedParticleSystems = n), (i.loadedSkeletons = r), (i.loadedAnimationGroups = o), t(); }, null, function (e, t, i) { n(t, i); } ); }), t ); })(ud), pd = (function (e) { function t(t, n) { var i = e.call(this, t) || this; return (i.name = t), (i.url = n), i; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { var i = this; e._loadFile( this.url, function (e) { (i.text = e), t(); }, void 0, !1, !1, function (e, t) { e && n(e.status + " " + e.statusText, t); } ); }), t ); })(ud), fd = (function (e) { function t(t, n) { var i = e.call(this, t) || this; return (i.name = t), (i.url = n), i; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { var i = this; e._loadFile( this.url, function (e) { (i.data = e), t(); }, void 0, !0, !0, function (e, t) { e && n(e.status + " " + e.statusText, t); } ); }), t ); })(ud), md = (function (e) { function t(t, n) { var i = e.call(this, t) || this; return (i.name = t), (i.url = n), i; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { var i = this, r = new Image(); $e.b.SetCorsBehavior(this.url, r), (r.onload = function () { (i.image = r), t(); }), (r.onerror = function (e) { n("Error loading image", e); }), (r.src = this.url); }), t ); })(ud), gd = (function (e) { function t(t, n, i, r, o) { void 0 === o && (o = ln.a.TRILINEAR_SAMPLINGMODE); var a = e.call(this, t) || this; return (a.name = t), (a.url = n), (a.noMipmap = i), (a.invertY = r), (a.samplingMode = o), a; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { this.texture = new ln.a( this.url, e, this.noMipmap, this.invertY, this.samplingMode, function () { t(); }, function (e, t) { n(e, t); } ); }), t ); })(ud), bd = (function (e) { function t(t, n, i, r, o) { var a = e.call(this, t) || this; return (a.name = t), (a.url = n), (a.extensions = i), (a.noMipmap = r), (a.files = o), a; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { this.texture = new Ar.a( this.url, e, this.extensions, this.noMipmap, this.files, function () { t(); }, function (e, t) { n(e, t); } ); }), t ); })(ud), _d = (function (e) { function t(t, n, i, r, o, a, s) { void 0 === r && (r = !1), void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = !1); var c = e.call(this, t) || this; return (c.name = t), (c.url = n), (c.size = i), (c.noMipmap = r), (c.generateHarmonics = o), (c.gammaSpace = a), (c.reserved = s), c; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { this.texture = new Ea( this.url, e, this.size, this.noMipmap, this.generateHarmonics, this.gammaSpace, this.reserved, function () { t(); }, function (e, t) { n(e, t); } ); }), t ); })(ud), vd = (function (e) { function t(t, n, i, r, o) { void 0 === r && (r = !1), void 0 === o && (o = !0); var a = e.call(this, t) || this; return (a.name = t), (a.url = n), (a.size = i), (a.noMipmap = r), (a.gammaSpace = o), a; } return ( Object(h.d)(t, e), (t.prototype.runTask = function (e, t, n) { this.texture = new $a( this.url, e, this.size, this.noMipmap, this.gammaSpace, function () { t(); }, function (e, t) { n(e, t); } ); }), t ); })(ud), yd = (function () { function e(e) { (this._isLoading = !1), (this._tasks = new Array()), (this._waitingTasksCount = 0), (this._totalTasksCount = 0), (this.onTaskSuccessObservable = new o.c()), (this.onTaskErrorObservable = new o.c()), (this.onTasksDoneObservable = new o.c()), (this.onProgressObservable = new o.c()), (this.useDefaultLoadingScreen = !0), (this.autoHideLoadingUI = !0), (this._scene = e); } return ( (e.prototype.addMeshTask = function (e, t, n, i) { var r = new dd(e, t, n, i); return this._tasks.push(r), r; }), (e.prototype.addTextFileTask = function (e, t) { var n = new pd(e, t); return this._tasks.push(n), n; }), (e.prototype.addBinaryFileTask = function (e, t) { var n = new fd(e, t); return this._tasks.push(n), n; }), (e.prototype.addImageTask = function (e, t) { var n = new md(e, t); return this._tasks.push(n), n; }), (e.prototype.addTextureTask = function (e, t, n, i, r) { void 0 === r && (r = ln.a.TRILINEAR_SAMPLINGMODE); var o = new gd(e, t, n, i, r); return this._tasks.push(o), o; }), (e.prototype.addCubeTextureTask = function (e, t, n, i, r) { var o = new bd(e, t, n, i, r); return this._tasks.push(o), o; }), (e.prototype.addHDRCubeTextureTask = function (e, t, n, i, r, o, a) { void 0 === i && (i = !1), void 0 === r && (r = !0), void 0 === o && (o = !1), void 0 === a && (a = !1); var s = new _d(e, t, n, i, r, o, a); return this._tasks.push(s), s; }), (e.prototype.addEquiRectangularCubeTextureAssetTask = function (e, t, n, i, r) { void 0 === i && (i = !1), void 0 === r && (r = !0); var o = new vd(e, t, n, i, r); return this._tasks.push(o), o; }), (e.prototype.removeTask = function (e) { var t = this._tasks.indexOf(e); t > -1 && this._tasks.splice(t, 1); }), (e.prototype._decreaseWaitingTasksCount = function (e) { this._waitingTasksCount--; try { this.onProgress && this.onProgress(this._waitingTasksCount, this._totalTasksCount, e), this.onProgressObservable.notifyObservers(new hd(this._waitingTasksCount, this._totalTasksCount, e)); } catch (e) { g.a.Error("Error running progress callbacks."); } if (0 === this._waitingTasksCount) { try { var t = this._tasks.slice(); this.onFinish && this.onFinish(t); for (var n = 0, i = t; n < i.length; n++) { if ((e = i[n]).taskState === nd.DONE) { var r = this._tasks.indexOf(e); r > -1 && this._tasks.splice(r, 1); } } this.onTasksDoneObservable.notifyObservers(this._tasks); } catch (e) { g.a.Error("Error running tasks-done callbacks."); } (this._isLoading = !1), this.autoHideLoadingUI && this._scene.getEngine().hideLoadingUI(); } }), (e.prototype._runTask = function (e) { var t = this, n = function (n, i) { e._setErrorObject(n, i), t.onTaskError && t.onTaskError(e), t.onTaskErrorObservable.notifyObservers(e), t._decreaseWaitingTasksCount(e); }; e.run( this._scene, function () { try { t.onTaskSuccess && t.onTaskSuccess(e), t.onTaskSuccessObservable.notifyObservers(e), t._decreaseWaitingTasksCount(e); } catch (e) { n("Error executing task success callbacks", e); } }, n ); }), (e.prototype.reset = function () { return (this._isLoading = !1), (this._tasks = new Array()), this; }), (e.prototype.load = function () { if (this._isLoading) return this; if (((this._isLoading = !0), (this._waitingTasksCount = this._tasks.length), (this._totalTasksCount = this._tasks.length), 0 === this._waitingTasksCount)) return (this._isLoading = !1), this.onFinish && this.onFinish(this._tasks), this.onTasksDoneObservable.notifyObservers(this._tasks), this; this.useDefaultLoadingScreen && this._scene.getEngine().displayLoadingUI(); for (var e = 0; e < this._tasks.length; e++) { var t = this._tasks[e]; t.taskState === nd.INIT && this._runTask(t); } return this; }), (e.prototype.loadAsync = function () { var e = this; return new Promise(function (t, n) { e._isLoading ? t() : (e.onTasksDoneObservable.addOnce(function (e) { e && e.length ? n(e) : t(); }), e.load()); }); }), e ); })(), Cd = n(138), Pd = (function () { function e(e, t) { (this._meshesOrigins = []), (this._toCenterVectors = []), (this._scaledDirection = a.e.Zero()), (this._newPosition = a.e.Zero()), (this._centerPosition = a.e.Zero()), (this._meshes = e.slice()), t ? (this._centerMesh = t) : this._setCenterMesh(); var n = this._meshes.indexOf(this._centerMesh); n >= 0 && this._meshes.splice(n, 1), (this._centerPosition = this._centerMesh.getAbsolutePosition().clone()); for (var i = 0; i < this._meshes.length; i++) if (this._meshes[i]) { var r = this._meshes[i]; (this._meshesOrigins[i] = r.getAbsolutePosition().clone()), (this._toCenterVectors[i] = a.e.Zero()), r._boundingInfo && this._centerMesh._boundingInfo && r._boundingInfo.boundingBox.centerWorld.subtractToRef(this._centerMesh._boundingInfo.boundingBox.centerWorld, this._toCenterVectors[i]); } } return ( (e.prototype._setCenterMesh = function () { for (var e = a.e.Zero(), t = a.e.Zero(), n = Number.MAX_VALUE, i = 0; i < this._meshes.length; i++) { if (this._meshes[i]) (o = (r = this._meshes[i]).getBoundingInfo()) && t.addInPlace(o.boundingBox.centerWorld); } e = t.scale(1 / this._meshes.length); for (i = 0; i < this._meshes.length; i++) { var r, o; if (this._meshes[i]) if ((o = (r = this._meshes[i]).getBoundingInfo())) { var s = o.boundingBox.centerWorld.subtract(e).lengthSquared(); s < n && ((this._centerMesh = r), (n = s)); } } }), (e.prototype.getClassName = function () { return "MeshExploder"; }), (e.prototype.getMeshes = function () { var e = this._meshes.slice(); return e.unshift(this._centerMesh), e; }), (e.prototype.explode = function (e) { void 0 === e && (e = 1); for (var t = 0; t < this._meshes.length; t++) this._meshes[t] && this._meshesOrigins[t] && this._toCenterVectors[t] && (this._toCenterVectors[t].scaleToRef(e, this._scaledDirection), this._meshesOrigins[t].addToRef(this._scaledDirection, this._newPosition), this._meshes[t].setAbsolutePosition(this._newPosition)); this._centerMesh.setAbsolutePosition(this._centerPosition); }), e ); })(), xd = n(118), Td = (function () { function e(e, t, n, i, r, o, a, s, c) { (this.onProcessFileCallback = function () { return !0; }), (this._engine = e), (this._currentScene = t), (this._sceneLoadedCallback = n), (this._progressCallback = i), (this._additionalRenderLoopLogicCallback = r), (this._textureLoadingCallback = o), (this._startingProcessingFilesCallback = a), (this._onReloadCallback = s), (this._errorCallback = c); } return ( Object.defineProperty(e, "FilesToLoad", { get: function () { return xd.a.FilesToLoad; }, enumerable: !0, configurable: !0, }), (e.prototype.monitorElementForDragNDrop = function (e) { var t = this; e && ((this._elementToMonitor = e), (this._dragEnterHandler = function (e) { t.drag(e); }), (this._dragOverHandler = function (e) { t.drag(e); }), (this._dropHandler = function (e) { t.drop(e); }), this._elementToMonitor.addEventListener("dragenter", this._dragEnterHandler, !1), this._elementToMonitor.addEventListener("dragover", this._dragOverHandler, !1), this._elementToMonitor.addEventListener("drop", this._dropHandler, !1)); }), (e.prototype.dispose = function () { this._elementToMonitor && (this._elementToMonitor.removeEventListener("dragenter", this._dragEnterHandler), this._elementToMonitor.removeEventListener("dragover", this._dragOverHandler), this._elementToMonitor.removeEventListener("drop", this._dropHandler)); }), (e.prototype.renderFunction = function () { if ((this._additionalRenderLoopLogicCallback && this._additionalRenderLoopLogicCallback(), this._currentScene)) { if (this._textureLoadingCallback) { var e = this._currentScene.getWaitingItemsCount(); e > 0 && this._textureLoadingCallback(e); } this._currentScene.render(); } }), (e.prototype.drag = function (e) { e.stopPropagation(), e.preventDefault(); }), (e.prototype.drop = function (e) { e.stopPropagation(), e.preventDefault(), this.loadFiles(e); }), (e.prototype._traverseFolder = function (e, t, n, i) { var r = this, o = e.createReader(), a = e.fullPath.replace(/^\//, "").replace(/(.+?)\/?$/, "$1/"); o.readEntries(function (e) { n.count += e.length; for (var o = 0, s = e; o < s.length; o++) { var c = s[o]; c.isFile ? c.file(function (e) { (e.correctName = a + e.name), t.push(e), 0 == --n.count && i(); }) : c.isDirectory && r._traverseFolder(c, t, n, i); } --n.count && i(); }); }), (e.prototype._processFiles = function (t) { for (var n = 0; n < t.length; n++) { var i = t[n].correctName.toLowerCase(), r = i.split(".").pop(); this.onProcessFileCallback(t[n], i, r) && (("babylon" !== r && "stl" !== r && "obj" !== r && "gltf" !== r && "glb" !== r) || -1 !== i.indexOf(".binary.babylon") || -1 !== i.indexOf(".incremental.babylon") || (this._sceneFileToLoad = t[n]), (e.FilesToLoad[i] = t[n])); } }), (e.prototype.loadFiles = function (e) { var t = this; if ( (e && e.dataTransfer && e.dataTransfer.files && (this._filesToLoad = e.dataTransfer.files), e && e.target && e.target.files && (this._filesToLoad = e.target.files), this._filesToLoad && 0 !== this._filesToLoad.length && (this._startingProcessingFilesCallback && this._startingProcessingFilesCallback(this._filesToLoad), this._filesToLoad && this._filesToLoad.length > 0)) ) { for (var n = new Array(), i = [], r = e.dataTransfer ? e.dataTransfer.items : null, o = 0; o < this._filesToLoad.length; o++) { var a = this._filesToLoad[o], s = a.name.toLowerCase(), c = void 0; if (((a.correctName = s), r)) { var l = r[o]; l.getAsEntry ? (c = l.getAsEntry()) : l.webkitGetAsEntry && (c = l.webkitGetAsEntry()); } c && c.isDirectory ? i.push(c) : n.push(a); } if (0 === i.length) this._processFiles(n), this._processReload(); else for (var u = { count: i.length }, h = 0, d = i; h < d.length; h++) { var p = d[h]; this._traverseFolder(p, n, u, function () { t._processFiles(n), 0 === u.count && t._processReload(); }); } } }), (e.prototype._processReload = function () { this._onReloadCallback ? this._onReloadCallback(this._sceneFileToLoad) : this.reload(); }), (e.prototype.reload = function () { var e = this; this._sceneFileToLoad ? (this._currentScene && (g.a.errorsCount > 0 && g.a.ClearLogCache(), this._engine.stopRenderLoop()), $i.a .LoadAsync("file:", this._sceneFileToLoad, this._engine, function (t) { e._progressCallback && e._progressCallback(t); }) .then(function (t) { e._currentScene && e._currentScene.dispose(), (e._currentScene = t), e._sceneLoadedCallback && e._sceneLoadedCallback(e._sceneFileToLoad, e._currentScene), e._currentScene.executeWhenReady(function () { e._engine.runRenderLoop(function () { e.renderFunction(); }); }); }) .catch(function (t) { e._errorCallback && e._errorCallback(e._sceneFileToLoad, e._currentScene, t.message); })) : g.a.Error("Please provide a valid .babylon file."); }), e ); })(), Sd = n(187), Od = n(186), Ed = (function () { function e(e) { void 0 === e && (e = 0), (this.priority = e); } return ( (e.prototype.getDescription = function () { return ""; }), (e.prototype.apply = function (e, t) { return !0; }), e ); })(), Md = (function (e) { function t(t, n, i) { void 0 === t && (t = 0), void 0 === n && (n = 1024), void 0 === i && (i = 0.5); var r = e.call(this, t) || this; return (r.priority = t), (r.maximumSize = n), (r.step = i), r; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Reducing render target texture size to " + this.maximumSize; }), (t.prototype.apply = function (e, t) { for (var n = !0, i = 0; i < e.textures.length; i++) { var r = e.textures[i]; if (r.canRescale && !r.getContext) { var o = r.getSize(); Math.max(o.width, o.height) > this.maximumSize && (r.scale(this.step), (n = !1)); } } return n; }), t ); })(Ed), Ad = (function (e) { function t(t, n, i) { void 0 === t && (t = 0), void 0 === n && (n = 2), void 0 === i && (i = 0.25); var r = e.call(this, t) || this; return (r.priority = t), (r.maximumScale = n), (r.step = i), (r._currentScale = -1), (r._directionOffset = 1), r; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Setting hardware scaling level to " + this._currentScale; }), (t.prototype.apply = function (e, t) { return ( -1 === this._currentScale && ((this._currentScale = e.getEngine().getHardwareScalingLevel()), this._currentScale > this.maximumScale && (this._directionOffset = -1)), (this._currentScale += this._directionOffset * this.step), e.getEngine().setHardwareScalingLevel(this._currentScale), 1 === this._directionOffset ? this._currentScale >= this.maximumScale : this._currentScale <= this.maximumScale ); }), t ); })(Ed), Id = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Turning shadows on/off"; }), (t.prototype.apply = function (e, t) { return (e.shadowsEnabled = t.isInImprovementMode), !0; }), t ); })(Ed), Dd = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Turning post-processes on/off"; }), (t.prototype.apply = function (e, t) { return (e.postProcessesEnabled = t.isInImprovementMode), !0; }), t ); })(Ed), Rd = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Turning lens flares on/off"; }), (t.prototype.apply = function (e, t) { return (e.lensFlaresEnabled = t.isInImprovementMode), !0; }), t ); })(Ed), wd = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return this.onGetDescription ? this.onGetDescription() : "Running user defined callback"; }), (t.prototype.apply = function (e, t) { return !this.onApply || this.onApply(e, t); }), t ); })(Ed), Ld = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Turning particles on/off"; }), (t.prototype.apply = function (e, t) { return (e.particlesEnabled = t.isInImprovementMode), !0; }), t ); })(Ed), Fd = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(h.d)(t, e), (t.prototype.getDescription = function () { return "Turning render targets off"; }), (t.prototype.apply = function (e, t) { return (e.renderTargetsEnabled = t.isInImprovementMode), !0; }), t ); })(Ed), Nd = (function (e) { function t() { var t = (null !== e && e.apply(this, arguments)) || this; return ( (t._canBeMerged = function (e) { if (!(e instanceof Ee.a)) return !1; var t = e; return !t.isDisposed() && !(!t.isVisible || !t.isEnabled()) && !(t.instances.length > 0) && !t.skeleton && !t.hasLODLevels; }), t ); } return ( Object(h.d)(t, e), Object.defineProperty(t, "UpdateSelectionTree", { get: function () { return t._UpdateSelectionTree; }, set: function (e) { t._UpdateSelectionTree = e; }, enumerable: !0, configurable: !0, }), (t.prototype.getDescription = function () { return "Merging similar meshes together"; }), (t.prototype.apply = function (e, n, i) { for (var r = e.meshes.slice(0), o = r.length, a = 0; a < o; a++) { var s = new Array(), c = r[a]; if (this._canBeMerged(c)) { s.push(c); for (var l = a + 1; l < o; l++) { var u = r[l]; this._canBeMerged(u) && u.material === c.material && u.checkCollisions === c.checkCollisions && (s.push(u), o--, r.splice(l, 1), l--); } s.length < 2 || Ee.a.MergeMeshes(s, void 0, !0); } } var h = e; return h.createOrUpdateSelectionOctree && (null != i ? i && h.createOrUpdateSelectionOctree() : t.UpdateSelectionTree && h.createOrUpdateSelectionOctree()), !0; }), (t._UpdateSelectionTree = !1), t ); })(Ed), kd = (function () { function e(e, t) { void 0 === e && (e = 60), void 0 === t && (t = 2e3), (this.targetFrameRate = e), (this.trackerDuration = t), (this.optimizations = new Array()); } return ( (e.prototype.addOptimization = function (e) { return this.optimizations.push(e), this; }), (e.prototype.addCustomOptimization = function (e, t, n) { void 0 === n && (n = 0); var i = new wd(n); return (i.onApply = e), (i.onGetDescription = t), this.optimizations.push(i), this; }), (e.LowDegradationAllowed = function (t) { var n = new e(t), i = 0; return n.addOptimization(new Nd(i)), n.addOptimization(new Id(i)), n.addOptimization(new Rd(i)), i++, n.addOptimization(new Dd(i)), n.addOptimization(new Ld(i)), i++, n.addOptimization(new Md(i, 1024)), n; }), (e.ModerateDegradationAllowed = function (t) { var n = new e(t), i = 0; return ( n.addOptimization(new Nd(i)), n.addOptimization(new Id(i)), n.addOptimization(new Rd(i)), i++, n.addOptimization(new Dd(i)), n.addOptimization(new Ld(i)), i++, n.addOptimization(new Md(i, 512)), i++, n.addOptimization(new Fd(i)), i++, n.addOptimization(new Ad(i, 2)), n ); }), (e.HighDegradationAllowed = function (t) { var n = new e(t), i = 0; return ( n.addOptimization(new Nd(i)), n.addOptimization(new Id(i)), n.addOptimization(new Rd(i)), i++, n.addOptimization(new Dd(i)), n.addOptimization(new Ld(i)), i++, n.addOptimization(new Md(i, 256)), i++, n.addOptimization(new Fd(i)), i++, n.addOptimization(new Ad(i, 4)), n ); }), e ); })(), zd = (function () { function e(e, t, n, i) { var r = this; if ( (void 0 === n && (n = !0), void 0 === i && (i = !1), (this._isRunning = !1), (this._currentPriorityLevel = 0), (this._targetFrameRate = 60), (this._trackerDuration = 2e3), (this._currentFrameRate = 0), (this._improvementMode = !1), (this.onSuccessObservable = new o.c()), (this.onNewOptimizationAppliedObservable = new o.c()), (this.onFailureObservable = new o.c()), (this._options = t || new kd()), this._options.targetFrameRate && (this._targetFrameRate = this._options.targetFrameRate), this._options.trackerDuration && (this._trackerDuration = this._options.trackerDuration), n) ) for (var a = 0, s = 0, c = this._options.optimizations; s < c.length; s++) { c[s].priority = a++; } (this._improvementMode = i), (this._scene = e || E.a.LastCreatedScene), (this._sceneDisposeObserver = this._scene.onDisposeObservable.add(function () { (r._sceneDisposeObserver = null), r.dispose(); })); } return ( Object.defineProperty(e.prototype, "isInImprovementMode", { get: function () { return this._improvementMode; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "currentPriorityLevel", { get: function () { return this._currentPriorityLevel; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "currentFrameRate", { get: function () { return this._currentFrameRate; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "targetFrameRate", { get: function () { return this._targetFrameRate; }, set: function (e) { this._targetFrameRate = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "trackerDuration", { get: function () { return this._trackerDuration; }, set: function (e) { this._trackerDuration = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "optimizations", { get: function () { return this._options.optimizations; }, enumerable: !0, configurable: !0, }), (e.prototype.stop = function () { this._isRunning = !1; }), (e.prototype.reset = function () { this._currentPriorityLevel = 0; }), (e.prototype.start = function () { var e = this; this._isRunning || ((this._isRunning = !0), this._scene.executeWhenReady(function () { setTimeout(function () { e._checkCurrentState(); }, e._trackerDuration); })); }), (e.prototype._checkCurrentState = function () { var e = this; if (this._isRunning) { var t = this._scene, n = this._options; if ( ((this._currentFrameRate = Math.round(t.getEngine().getFps())), (this._improvementMode && this._currentFrameRate <= this._targetFrameRate) || (!this._improvementMode && this._currentFrameRate >= this._targetFrameRate)) ) return (this._isRunning = !1), void this.onSuccessObservable.notifyObservers(this); for (var i = !0, r = !0, o = 0; o < n.optimizations.length; o++) { var a = n.optimizations[o]; a.priority === this._currentPriorityLevel && ((r = !1), (i = i && a.apply(t, this)), this.onNewOptimizationAppliedObservable.notifyObservers(a)); } if (r) return (this._isRunning = !1), void this.onFailureObservable.notifyObservers(this); i && this._currentPriorityLevel++, t.executeWhenReady(function () { setTimeout(function () { e._checkCurrentState(); }, e._trackerDuration); }); } }), (e.prototype.dispose = function () { this.stop(), this.onSuccessObservable.clear(), this.onFailureObservable.clear(), this.onNewOptimizationAppliedObservable.clear(), this._sceneDisposeObserver && this._scene.onDisposeObservable.remove(this._sceneDisposeObserver); }), (e.OptimizeAsync = function (t, n, i, r) { var o = new e(t, n || kd.ModerateDegradationAllowed(), !1); return ( i && o.onSuccessObservable.add(function () { i(); }), r && o.onFailureObservable.add(function () { r(); }), o.start(), o ); }), e ); })(), jd = [], Bd = function (e, t) { jd[e.id] || e.doNotSerialize || (t.vertexData.push(e.serializeVerticeData()), (jd[e.id] = !0)); }, Vd = function (e, t) { var n = {}, i = e._geometry; return i && (e.getScene().getGeometryByID(i.id) || Bd(i, t.geometries)), e.serialize && e.serialize(n), n; }, Gd = (function () { function e() {} return ( (e.ClearCache = function () { jd = []; }), (e.Serialize = function (t) { var n, i, r, o = {}; if ( (e.ClearCache(), (o.useDelayedTextureLoading = t.useDelayedTextureLoading), (o.autoClear = t.autoClear), (o.clearColor = t.clearColor.asArray()), (o.ambientColor = t.ambientColor.asArray()), (o.gravity = t.gravity.asArray()), (o.collisionsEnabled = t.collisionsEnabled), t.fogMode && 0 !== t.fogMode && ((o.fogMode = t.fogMode), (o.fogColor = t.fogColor.asArray()), (o.fogStart = t.fogStart), (o.fogEnd = t.fogEnd), (o.fogDensity = t.fogDensity)), t.isPhysicsEnabled()) ) { var a = t.getPhysicsEngine(); a && ((o.physicsEnabled = !0), (o.physicsGravity = a.gravity.asArray()), (o.physicsEngine = a.getPhysicsPluginName())); } t.metadata && (o.metadata = t.metadata), (o.morphTargetManagers = []); for (var s = 0, c = t.meshes; s < c.length; s++) { var l = (_ = c[s]).morphTargetManager; l && o.morphTargetManagers.push(l.serialize()); } for (o.lights = [], n = 0; n < t.lights.length; n++) (i = t.lights[n]).doNotSerialize || o.lights.push(i.serialize()); for (o.cameras = [], n = 0; n < t.cameras.length; n++) { var u = t.cameras[n]; u.doNotSerialize || o.cameras.push(u.serialize()); } if ((t.activeCamera && (o.activeCameraID = t.activeCamera.id), He.a.AppendSerializedAnimations(t, o), t.animationGroups && t.animationGroups.length > 0)) { o.animationGroups = []; for (var h = 0; h < t.animationGroups.length; h++) { var d = t.animationGroups[h]; o.animationGroups.push(d.serialize()); } } if (t.reflectionProbes && t.reflectionProbes.length > 0) for (o.reflectionProbes = [], n = 0; n < t.reflectionProbes.length; n++) { var p = t.reflectionProbes[n]; o.reflectionProbes.push(p.serialize()); } for (o.materials = [], o.multiMaterials = [], n = 0; n < t.materials.length; n++) (r = t.materials[n]).doNotSerialize || o.materials.push(r.serialize()); for (o.multiMaterials = [], n = 0; n < t.multiMaterials.length; n++) { var f = t.multiMaterials[n]; o.multiMaterials.push(f.serialize()); } for (t.environmentTexture && (o.environmentTexture = t.environmentTexture.name), o.environmentIntensity = t.environmentIntensity, o.skeletons = [], n = 0; n < t.skeletons.length; n++) { var m = t.skeletons[n]; m.doNotSerialize || o.skeletons.push(m.serialize()); } for (o.transformNodes = [], n = 0; n < t.transformNodes.length; n++) t.transformNodes[n].doNotSerialize || o.transformNodes.push(t.transformNodes[n].serialize()); (o.geometries = {}), (o.geometries.boxes = []), (o.geometries.spheres = []), (o.geometries.cylinders = []), (o.geometries.toruses = []), (o.geometries.grounds = []), (o.geometries.planes = []), (o.geometries.torusKnots = []), (o.geometries.vertexData = []), (jd = []); var g = t.getGeometries(); for (n = 0; n < g.length; n++) { var b = g[n]; b.isReady() && Bd(b, o.geometries); } for (o.meshes = [], n = 0; n < t.meshes.length; n++) { var _; if ((_ = t.meshes[n]) instanceof Ee.a) { var v = _; v.doNotSerialize || (1 !== v.delayLoadState && 0 !== v.delayLoadState) || o.meshes.push(Vd(v, o)); } } for (o.particleSystems = [], n = 0; n < t.particleSystems.length; n++) o.particleSystems.push(t.particleSystems[n].serialize()); t.actionManager && (o.actions = t.actionManager.serialize("scene")); for (var y = 0, C = t._serializableComponents; y < C.length; y++) { C[y].serialize(o); } return o; }), (e.SerializeMesh = function (t, n, i) { void 0 === n && (n = !1), void 0 === i && (i = !1); var r = {}; if ((e.ClearCache(), (t = t instanceof Array ? t : [t]), n || i)) for (var o = 0; o < t.length; ++o) i && t[o].getDescendants().forEach(function (e) { e instanceof Ee.a && t.indexOf(e) < 0 && !e.doNotSerialize && t.push(e); }), n && t[o].parent && t.indexOf(t[o].parent) < 0 && !t[o].parent.doNotSerialize && t.push(t[o].parent); return ( t.forEach(function (e) { !(function (e, t) { if (1 === e.delayLoadState || 0 === e.delayLoadState) { if (e.material && !e.material.doNotSerialize) if (e.material instanceof Ta.a) { if ( ((t.multiMaterials = t.multiMaterials || []), (t.materials = t.materials || []), !t.multiMaterials.some(function (t) { return t.id === e.material.id; })) ) { t.multiMaterials.push(e.material.serialize()); for ( var n = function (e) { e && (t.materials.some(function (t) { return t.id === e.id; }) || t.materials.push(e.serialize())); }, i = 0, r = e.material.subMaterials; i < r.length; i++ ) { n(r[i]); } } } else (t.materials = t.materials || []), t.materials.some(function (t) { return t.id === e.material.id; }) || t.materials.push(e.material.serialize()); var o = e._geometry; o && (t.geometries || ((t.geometries = {}), (t.geometries.boxes = []), (t.geometries.spheres = []), (t.geometries.cylinders = []), (t.geometries.toruses = []), (t.geometries.grounds = []), (t.geometries.planes = []), (t.geometries.torusKnots = []), (t.geometries.vertexData = [])), Bd(o, t.geometries)), e.skeleton && !e.skeleton.doNotSerialize && ((t.skeletons = t.skeletons || []), t.skeletons.push(e.skeleton.serialize())), (t.meshes = t.meshes || []), t.meshes.push(Vd(e, t)); } })(e, r); }), r ); }), e ); })(), Ud = n(45), Hd = n(168), Wd = (function () { function e(t, n) { if ((void 0 === n && (n = null), !e.IsSupported(t))) throw "Your browser does not support recording so far."; var i = t.getRenderingCanvas(); if (!i) throw "The babylon engine must have a canvas to be recorded"; (this._canvas = i), (this._canvas.isRecording = !1), (this._options = Object(h.a)(Object(h.a)({}, e._defaultOptions), n)); var r = this._canvas.captureStream(this._options.fps); if (this._options.audioTracks) for (var o = 0, a = this._options.audioTracks; o < a.length; o++) { var s = a[o]; r.addTrack(s); } (this._mediaRecorder = new MediaRecorder(r, { mimeType: this._options.mimeType })), (this._mediaRecorder.ondataavailable = this._handleDataAvailable.bind(this)), (this._mediaRecorder.onerror = this._handleError.bind(this)), (this._mediaRecorder.onstop = this._handleStop.bind(this)); } return ( (e.IsSupported = function (e) { var t = e.getRenderingCanvas(); return !!t && "function" == typeof t.captureStream; }), Object.defineProperty(e.prototype, "isRecording", { get: function () { return !!this._canvas && this._canvas.isRecording; }, enumerable: !0, configurable: !0, }), (e.prototype.stopRecording = function () { this._canvas && this._mediaRecorder && this.isRecording && ((this._canvas.isRecording = !1), this._mediaRecorder.stop()); }), (e.prototype.startRecording = function (e, t) { var n = this; if ((void 0 === e && (e = "babylonjs.webm"), void 0 === t && (t = 7), !this._canvas || !this._mediaRecorder)) throw "Recorder has already been disposed"; if (this.isRecording) throw "Recording already in progress"; return ( t > 0 && setTimeout(function () { n.stopRecording(); }, 1e3 * t), (this._fileName = e), (this._recordedChunks = []), (this._resolve = null), (this._reject = null), (this._canvas.isRecording = !0), this._mediaRecorder.start(this._options.recordChunckSize), new Promise(function (e, t) { (n._resolve = e), (n._reject = t); }) ); }), (e.prototype.dispose = function () { (this._canvas = null), (this._mediaRecorder = null), (this._recordedChunks = []), (this._fileName = null), (this._resolve = null), (this._reject = null); }), (e.prototype._handleDataAvailable = function (e) { e.data.size > 0 && this._recordedChunks.push(e.data); }), (e.prototype._handleError = function (e) { if ((this.stopRecording(), !this._reject)) throw new e.error(); this._reject(e.error); }), (e.prototype._handleStop = function () { this.stopRecording(); var e = new Blob(this._recordedChunks); this._resolve && this._resolve(e), window.URL.createObjectURL(e), this._fileName && $e.b.Download(e, this._fileName); }), (e._defaultOptions = { mimeType: "video/webm", fps: 25, recordChunckSize: 3e3 }), e ); })(), Xd = n(202), Yd = (function () { function e() {} return ( (e.CreateScreenshot = function (t, n, i, r, o) { void 0 === o && (o = "image/png"); var a = e._getScreenshotSize(t, n, i), s = a.height, c = a.width; if (s && c) { $e.b._ScreenshotCanvas || ($e.b._ScreenshotCanvas = document.createElement("canvas")), ($e.b._ScreenshotCanvas.width = c), ($e.b._ScreenshotCanvas.height = s); var l = $e.b._ScreenshotCanvas.getContext("2d"), u = t.getRenderWidth() / t.getRenderHeight(), h = c, d = h / u; d > s && (h = (d = s) * u); var p = Math.max(0, c - h) / 2, f = Math.max(0, s - d) / 2, m = t.getRenderingCanvas(); l && m && l.drawImage(m, p, f, h, d), $e.b.EncodeScreenshotCanvasData(r, o); } else g.a.Error("Invalid 'size' parameter !"); }), (e.CreateScreenshotAsync = function (t, n, i, r) { return ( void 0 === r && (r = "image/png"), new Promise(function (o, a) { e.CreateScreenshot( t, n, i, function (e) { void 0 !== e ? o(e) : a(new Error("Data is undefined")); }, r ); }) ); }), (e.CreateScreenshotUsingRenderTarget = function (t, n, i, r, o, a, s, c, l) { void 0 === o && (o = "image/png"), void 0 === a && (a = 1), void 0 === s && (s = !1), void 0 === l && (l = !1); var u = e._getScreenshotSize(t, n, i), h = u.height, d = u.width, p = { width: d, height: h }; if (h && d) { var f = n.getScene(), m = null; f.activeCamera !== n && ((m = f.activeCamera), (f.activeCamera = n)); var b = t.getRenderingCanvas(); if (b) { var _ = { width: b.width, height: b.height }; t.setSize(d, h), f.render(); var v = new mn.a("screenShot", p, f, !1, !1, 0, !1, ln.a.NEAREST_SAMPLINGMODE); (v.renderList = null), (v.samples = a), (v.renderSprites = l), v.onAfterRenderObservable.add(function () { $e.b.DumpFramebuffer(d, h, t, r, o, c); }); var y = function () { f.incrementRenderId(), f.resetCachedMaterial(), v.render(!0), v.dispose(), m && (f.activeCamera = m), t.setSize(_.width, _.height), n.getProjectionMatrix(!0); }; if (s) { var C = new th("antialiasing", 1, f.activeCamera); v.addPostProcess(C), C.getEffect().isReady() ? y() : (C.getEffect().onCompiled = function () { y(); }); } else y(); } else g.a.Error("No rendering canvas found !"); } else g.a.Error("Invalid 'size' parameter !"); }), (e.CreateScreenshotUsingRenderTargetAsync = function (t, n, i, r, o, a, s, c) { return ( void 0 === r && (r = "image/png"), void 0 === o && (o = 1), void 0 === a && (a = !1), void 0 === c && (c = !1), new Promise(function (l, u) { e.CreateScreenshotUsingRenderTarget( t, n, i, function (e) { void 0 !== e ? l(e) : u(new Error("Data is undefined")); }, r, o, a, s, c ); }) ); }), (e._getScreenshotSize = function (e, t, n) { var i = 0, r = 0; if ("object" == typeof n) { var o = n.precision ? Math.abs(n.precision) : 1; n.width && n.height ? ((i = n.height * o), (r = n.width * o)) : n.width && !n.height ? ((r = n.width * o), (i = Math.round(r / e.getAspectRatio(t)))) : n.height && !n.width ? ((i = n.height * o), (r = Math.round(i * e.getAspectRatio(t)))) : ((r = Math.round(e.getRenderWidth() * o)), (i = Math.round(r / e.getAspectRatio(t)))); } else isNaN(n) || ((i = n), (r = n)); return r && (r = Math.floor(r)), i && (i = Math.floor(i)), { height: 0 | i, width: 0 | r }; }), e ); })(); ($e.b.CreateScreenshot = Yd.CreateScreenshot), ($e.b.CreateScreenshotAsync = Yd.CreateScreenshotAsync), ($e.b.CreateScreenshotUsingRenderTarget = Yd.CreateScreenshotUsingRenderTarget), ($e.b.CreateScreenshotUsingRenderTargetAsync = Yd.CreateScreenshotUsingRenderTargetAsync), (function (e) { (e[(e.Checkbox = 0)] = "Checkbox"), (e[(e.Slider = 1)] = "Slider"), (e[(e.Vector3 = 2)] = "Vector3"), (e[(e.Quaternion = 3)] = "Quaternion"), (e[(e.Color3 = 4)] = "Color3"), (e[(e.String = 5)] = "String"); })(ld || (ld = {})); var Kd = n(158), Zd = n(197), qd = n(181), Qd = n(74), Jd = n(163), $d = (function (e) { function t(n, i) { void 0 === i && (i = {}); var r = e.call(this, n) || this; return ( (r.options = i), (r._direction = new a.e(0, 0, -1)), (r._mat = new a.a()), (r._onSelectEnabled = !1), (r._origin = new a.e(0, 0, 0)), (r.lastNativeXRHitResults = []), (r.onHitTestResultObservable = new o.c()), (r._onHitTestResults = function (e) { var t = e.map(function (e) { var t = a.a.FromArray(e.hitMatrix); return ( r._xrSessionManager.scene.useRightHandedSystem || t.toggleModelMatrixHandInPlace(), r.options.worldParentNode && t.multiplyToRef(r.options.worldParentNode.getWorldMatrix(), t), { xrHitResult: e, transformationMatrix: t } ); }); (r.lastNativeXRHitResults = e), r.onHitTestResultObservable.notifyObservers(t); }), (r._onSelect = function (e) { r._onSelectEnabled && t.XRHitTestWithSelectEvent(e, r._xrSessionManager.referenceSpace); }), r ); } return ( Object(h.d)(t, e), (t.XRHitTestWithRay = function (e, t, n, i) { return e.requestHitTest(t, n).then(function (e) { var t = i || function (e) { return !!e.hitMatrix; }; return e.filter(t); }); }), (t.XRHitTestWithSelectEvent = function (e, t) { var n = e.frame.getPose(e.inputSource.targetRaySpace, t); if (!n) return Promise.resolve([]); var i = new XRRay(n.transform); return this.XRHitTestWithRay(e.frame.session, i, t); }), (t.prototype.attach = function () { return !!e.prototype.attach.call(this) && (this.options.testOnPointerDownOnly && this._xrSessionManager.session.addEventListener("select", this._onSelect, !1), !0); }), (t.prototype.detach = function () { return !!e.prototype.detach.call(this) && ((this._onSelectEnabled = !1), this._xrSessionManager.session.removeEventListener("select", this._onSelect), !0); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onHitTestResultObservable.clear(); }), (t.prototype._onXRFrame = function (e) { if (this.attached && !this.options.testOnPointerDownOnly) { var n = e.getViewerPose(this._xrSessionManager.referenceSpace); if (n) { a.a.FromArrayToRef(n.transform.matrix, 0, this._mat), a.e.TransformCoordinatesFromFloatsToRef(0, 0, 0, this._mat, this._origin), a.e.TransformCoordinatesFromFloatsToRef(0, 0, -1, this._mat, this._direction), this._direction.subtractInPlace(this._origin), this._direction.normalize(); var i = new XRRay({ x: this._origin.x, y: this._origin.y, z: this._origin.z, w: 0 }, { x: this._direction.x, y: this._direction.y, z: this._direction.z, w: 0 }); t.XRHitTestWithRay(this._xrSessionManager.session, i, this._xrSessionManager.referenceSpace).then(this._onHitTestResults); } } }), (t.Name = ao.HIT_TEST), (t.Version = 1), t ); })(vo); so.AddWebXRFeature( $d.Name, function (e, t) { return function () { return new $d(e, t); }; }, $d.Version, !0 ); var ep = 0, tp = (function (e) { function t(t, n) { void 0 === n && (n = {}); var i = e.call(this, t) || this; return ( (i._options = n), (i._enabled = !1), (i._lastFrameDetected = new Set()), (i._onSelect = function (e) { if (i._options.addAnchorOnSelect) { var t = function (e) { if (e.length) { var t = e[0], n = new XRRigidTransform(t.hitMatrix); i.addAnchorAtRigidTransformation(n); } }; i._hitTestModule && !i._hitTestModule.options.testOnPointerDownOnly && t(i._hitTestModule.lastNativeXRHitResults), $d.XRHitTestWithSelectEvent(e, i._xrSessionManager.referenceSpace).then(t), i._planeDetector; } }), (i._trackedAnchors = []), (i.onAnchorAddedObservable = new o.c()), (i.onAnchorRemovedObservable = new o.c()), (i.onAnchorUpdatedObservable = new o.c()), i ); } return ( Object(h.d)(t, e), (t.prototype.addAnchorAtRigidTransformation = function (e, t) { return (t || this._xrSessionManager.session).createAnchor(e, this._xrSessionManager.referenceSpace); }), (t.prototype.attach = function () { return !!e.prototype.attach.call(this) && (this._options.addAnchorOnSelect && this._xrSessionManager.session.addEventListener("select", this._onSelect, !1), !0); }), (t.prototype.detach = function () { return !!e.prototype.detach.call(this) && (this._xrSessionManager.session.removeEventListener("select", this._onSelect), !0); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onAnchorAddedObservable.clear(), this.onAnchorRemovedObservable.clear(), this.onAnchorUpdatedObservable.clear(); }), (t.prototype.setHitTestModule = function (e) { this._hitTestModule = e; }), (t.prototype.setPlaneDetector = function (e, t) { void 0 === t && (t = !0), (this._planeDetector = e), (this._options.usePlaneDetection = t); }), (t.prototype._onXRFrame = function (e) { var t = this; if (this.attached && this._enabled && e) { var n = e.trackedAnchors; n && n.size && (this._trackedAnchors .filter(function (e) { return !n.has(e.xrAnchor); }) .map(function (e) { var n = t._trackedAnchors.indexOf(e); t._trackedAnchors.splice(n, 1), t.onAnchorRemovedObservable.notifyObservers(e); }), n.forEach(function (n) { if (t._lastFrameDetected.has(n)) { if (n.lastChangedTime === t._xrSessionManager.currentTimestamp) { var i = t._findIndexInAnchorArray(n), r = t._trackedAnchors[i]; t._updateAnchorWithXRFrame(n, r, e), t.onAnchorUpdatedObservable.notifyObservers(r); } } else { var o = { id: ep++, xrAnchor: n }, a = t._updateAnchorWithXRFrame(n, o, e); t._trackedAnchors.push(a), t.onAnchorAddedObservable.notifyObservers(a); } }), (this._lastFrameDetected = n)); } }), (t.prototype._findIndexInAnchorArray = function (e) { for (var t = 0; t < this._trackedAnchors.length; ++t) if (this._trackedAnchors[t].xrAnchor === e) return t; return -1; }), (t.prototype._updateAnchorWithXRFrame = function (e, t, n) { var i = n.getPose(e.anchorSpace, this._xrSessionManager.referenceSpace); if (i) { var r = t.transformationMatrix || new a.a(); a.a.FromArrayToRef(i.transform.matrix, 0, r), this._xrSessionManager.scene.useRightHandedSystem || r.toggleModelMatrixHandInPlace(), (t.transformationMatrix = r), this._options.worldParentNode && r.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), r); } return t; }), (t.Name = ao.ANCHOR_SYSTEM), (t.Version = 1), t ); })(vo), np = 0, ip = (function (e) { function t(t, n) { void 0 === n && (n = {}); var i = e.call(this, t) || this; return ( (i._options = n), (i._detectedPlanes = []), (i._enabled = !1), (i._lastFrameDetected = new Set()), (i.onPlaneAddedObservable = new o.c()), (i.onPlaneRemovedObservable = new o.c()), (i.onPlaneUpdatedObservable = new o.c()), i._xrSessionManager.session ? i._init() : i._xrSessionManager.onXRSessionInit.addOnce(function () { i._init(); }), i ); } return ( Object(h.d)(t, e), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onPlaneAddedObservable.clear(), this.onPlaneRemovedObservable.clear(), this.onPlaneUpdatedObservable.clear(); }), (t.prototype._onXRFrame = function (e) { var t = this; if (this.attached && this._enabled && e) { var n = e.worldInformation.detectedPlanes; n && n.size && (this._detectedPlanes .filter(function (e) { return !n.has(e.xrPlane); }) .map(function (e) { var n = t._detectedPlanes.indexOf(e); t._detectedPlanes.splice(n, 1), t.onPlaneRemovedObservable.notifyObservers(e); }), n.forEach(function (n) { if (t._lastFrameDetected.has(n)) { if (n.lastChangedTime === t._xrSessionManager.currentTimestamp) { var i = t.findIndexInPlaneArray(n); o = t._detectedPlanes[i]; t._updatePlaneWithXRPlane(n, o, e), t.onPlaneUpdatedObservable.notifyObservers(o); } } else { var r = { id: np++, xrPlane: n, polygonDefinition: [] }, o = t._updatePlaneWithXRPlane(n, r, e); t._detectedPlanes.push(o), t.onPlaneAddedObservable.notifyObservers(o); } }), (this._lastFrameDetected = n)); } }), (t.prototype._init = function () { this._xrSessionManager.session.updateWorldTrackingState && (this._xrSessionManager.session.updateWorldTrackingState({ planeDetectionState: { enabled: !0 } }), (this._enabled = !0), this._detectedPlanes.length && (this._detectedPlanes = [])); }), (t.prototype._updatePlaneWithXRPlane = function (e, t, n) { var i = this; t.polygonDefinition = e.polygon.map(function (e) { var t = i._xrSessionManager.scene.useRightHandedSystem ? 1 : -1; return new a.e(e.x, e.y, e.z * t); }); var r = n.getPose(e.planeSpace, this._xrSessionManager.referenceSpace); if (r) { var o = t.transformationMatrix || new a.a(); a.a.FromArrayToRef(r.transform.matrix, 0, o), this._xrSessionManager.scene.useRightHandedSystem || o.toggleModelMatrixHandInPlace(), (t.transformationMatrix = o), this._options.worldParentNode && o.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), o); } return t; }), (t.prototype.findIndexInPlaneArray = function (e) { for (var t = 0; t < this._detectedPlanes.length; ++t) if (this._detectedPlanes[t].xrPlane === e) return t; return -1; }), (t.Name = ao.PLANE_DETECTION), (t.Version = 1), t ); })(vo); so.AddWebXRFeature( ip.Name, function (e, t) { return function () { return new ip(e, t); }; }, ip.Version ); var rp = (function (e) { function t(t, n) { void 0 === n && (n = {}); var i = e.call(this, t) || this; return (i.options = n), (i.onBackgroundStateChangedObservable = new o.c()), i; } return ( Object(h.d)(t, e), (t.prototype.attach = function () { return this._setBackgroundState(!1), e.prototype.attach.call(this); }), (t.prototype.detach = function () { return this._setBackgroundState(!0), e.prototype.detach.call(this); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this.onBackgroundStateChangedObservable.clear(); }), (t.prototype._onXRFrame = function (e) {}), (t.prototype._setBackgroundState = function (e) { var t = this._xrSessionManager.scene; if (!this.options.ignoreEnvironmentHelper) if (this.options.environmentHelperRemovalFlags) { if (this.options.environmentHelperRemovalFlags.skyBox) { var n = t.getMeshByName("BackgroundSkybox"); n && n.setEnabled(e); } if (this.options.environmentHelperRemovalFlags.ground) { var i = t.getMeshByName("BackgroundPlane"); i && i.setEnabled(e); } } else { var r = t.getMeshByName("BackgroundHelper"); r && r.setEnabled(e); } this.options.backgroundMeshes && this.options.backgroundMeshes.forEach(function (t) { return t.setEnabled(e); }), this.onBackgroundStateChangedObservable.notifyObservers(e); }), (t.Name = ao.BACKGROUND_REMOVER), (t.Version = 1), t ); })(vo); so.AddWebXRFeature( rp.Name, function (e, t) { return function () { return new rp(e, t); }; }, rp.Version, !0 ); var op = function () {}, ap = (function (e) { function t(t, n) { var i = e.call(this, t) || this; return ( (i._options = n), (i._attachController = function (e) { if (!i._controllers[e.uniqueId]) if ((i._xrSessionManager.scene.isPhysicsEnabled() || g.a.Warn("physics engine not enabled, skipped. Please add this controller manually."), i._options.physicsProperties.useControllerMesh)) e.onMotionControllerInitObservable.addOnce(function (t) { t.onModelLoadedObservable.addOnce(function () { var n = new Ci(t.rootMesh, Ci.MeshImpostor, Object(h.a)({ mass: 0 }, i._options.physicsProperties)), r = e.grip || e.pointer; i._controllers[e.uniqueId] = { xrController: e, impostor: n, oldPos: r.position.clone(), oldRotation: r.rotationQuaternion.clone() }; }); }); else { var t = i._options.physicsProperties.impostorType || Ci.SphereImpostor, n = i._options.physicsProperties.impostorSize || 0.1, r = mi.CreateSphere("impostor-mesh-" + e.uniqueId, { diameterX: "number" == typeof n ? n : n.width, diameterY: "number" == typeof n ? n : n.height, diameterZ: "number" == typeof n ? n : n.depth }); (r.isVisible = i._debugMode), (r.isPickable = !1), (r.rotationQuaternion = new a.b()); var o = e.grip || e.pointer; r.position.copyFrom(o.position), r.rotationQuaternion.copyFrom(o.rotationQuaternion); var s = new Ci(r, t, Object(h.a)({ mass: 0 }, i._options.physicsProperties)); i._controllers[e.uniqueId] = { xrController: e, impostor: s, impostorMesh: r }; } }), (i._controllers = {}), (i._debugMode = !1), (i._delta = 0), (i._lastTimestamp = 0), (i._tmpQuaternion = new a.b()), (i._tmpVector = new a.e()), i._options.physicsProperties || (i._options.physicsProperties = {}), i ); } return ( Object(h.d)(t, e), (t.prototype._enablePhysicsDebug = function () { var e = this; (this._debugMode = !0), Object.keys(this._controllers).forEach(function (t) { var n = e._controllers[t]; n.impostorMesh && (n.impostorMesh.isVisible = !0); }); }), (t.prototype.addController = function (e) { this._attachController(e); }), (t.prototype.attach = function () { var t = this; if (!e.prototype.attach.call(this)) return !1; if (!this._options.xrInput) return !0; if ( (this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, function (e) { t._detachController(e.uniqueId); }), this._options.enableHeadsetImpostor) ) { var n = this._options.headsetImpostorParams || { impostorType: Ci.SphereImpostor, restitution: 0.8, impostorSize: 0.3 }, i = n.impostorSize || 0.3; (this._headsetMesh = mi.CreateSphere("headset-mesh", { diameterX: "number" == typeof i ? i : i.width, diameterY: "number" == typeof i ? i : i.height, diameterZ: "number" == typeof i ? i : i.depth })), (this._headsetMesh.rotationQuaternion = new a.b()), (this._headsetMesh.isVisible = !1), (this._headsetImpostor = new Ci(this._headsetMesh, n.impostorType, Object(h.a)({ mass: 0 }, n))); } return !0; }), (t.prototype.detach = function () { var t = this; return ( !!e.prototype.detach.call(this) && (Object.keys(this._controllers).forEach(function (e) { t._detachController(e); }), this._headsetMesh && this._headsetMesh.dispose(), !0) ); }), (t.prototype.getHeadsetImpostor = function () { return this._headsetImpostor; }), (t.prototype.getImpostorForController = function (e) { var t = "string" == typeof e ? e : e.uniqueId; return this._controllers[t] ? this._controllers[t].impostor : null; }), (t.prototype.setPhysicsProperties = function (e) { this._options.physicsProperties = Object(h.a)(Object(h.a)({}, this._options.physicsProperties), e); }), (t.prototype._onXRFrame = function (e) { var t = this; (this._delta = this._xrSessionManager.currentTimestamp - this._lastTimestamp), (this._lastTimestamp = this._xrSessionManager.currentTimestamp), this._headsetMesh && (this._headsetMesh.position.copyFrom(this._options.xrInput.xrCamera.position), this._headsetMesh.rotationQuaternion.copyFrom(this._options.xrInput.xrCamera.rotationQuaternion)), Object.keys(this._controllers).forEach(function (e) { var n = t._controllers[e], i = n.xrController.grip || n.xrController.pointer, r = n.oldPos || n.impostorMesh.position, o = n.oldRotation || n.impostorMesh.rotationQuaternion; if ((i.position.subtractToRef(r, t._tmpVector), t._tmpVector.scaleInPlace(1e3 / t._delta), n.impostor.setLinearVelocity(t._tmpVector), t._debugMode, !o.equalsWithEpsilon(i.rotationQuaternion))) { o.conjugateInPlace().multiplyToRef(i.rotationQuaternion, t._tmpQuaternion); var a = Math.sqrt(t._tmpQuaternion.x * t._tmpQuaternion.x + t._tmpQuaternion.y * t._tmpQuaternion.y + t._tmpQuaternion.z * t._tmpQuaternion.z); if ((t._tmpVector.set(t._tmpQuaternion.x, t._tmpQuaternion.y, t._tmpQuaternion.z), a < 0.001)) t._tmpVector.scaleInPlace(2); else { var s = 2 * Math.atan2(a, t._tmpQuaternion.w); t._tmpVector.scaleInPlace(s / (a * (t._delta / 1e3))); } n.impostor.setAngularVelocity(t._tmpVector), t._debugMode; } r.copyFrom(i.position), o.copyFrom(i.rotationQuaternion); }); }), (t.prototype._detachController = function (e) { var t = this._controllers[e]; t && (t.impostorMesh && t.impostorMesh.dispose(), delete this._controllers[e]); }), (t.Name = ao.PHYSICS_CONTROLLERS), (t.Version = 1), t ); })(vo); so.AddWebXRFeature( ap.Name, function (e, t) { return function () { return new ap(e, t); }; }, ap.Version, !0 ); var sp = (function (e) { function t(t, n, i) { var r = e.call(this, t, cp["left-right"], n, i) || this; return ( (r._mapping = { defaultButton: { valueNodeName: "VALUE", unpressedNodeName: "UNPRESSED", pressedNodeName: "PRESSED" }, defaultAxis: { valueNodeName: "VALUE", minNodeName: "MIN", maxNodeName: "MAX" }, buttons: { "xr-standard-trigger": { rootNodeName: "SELECT", componentProperty: "button", states: ["default", "touched", "pressed"] }, "xr-standard-squeeze": { rootNodeName: "GRASP", componentProperty: "state", states: ["pressed"] }, "xr-standard-touchpad": { rootNodeName: "TOUCHPAD_PRESS", labelAnchorNodeName: "squeeze-label", touchPointNodeName: "TOUCH" }, "xr-standard-thumbstick": { rootNodeName: "THUMBSTICK_PRESS", componentProperty: "state", states: ["pressed"] }, }, axes: { "xr-standard-touchpad": { "x-axis": { rootNodeName: "TOUCHPAD_TOUCH_X" }, "y-axis": { rootNodeName: "TOUCHPAD_TOUCH_Y" } }, "xr-standard-thumbstick": { "x-axis": { rootNodeName: "THUMBSTICK_X" }, "y-axis": { rootNodeName: "THUMBSTICK_Y" } }, }, }), (r.profileId = "microsoft-mixed-reality"), r ); } return ( Object(h.d)(t, e), (t.prototype._getFilenameAndPath = function () { return { filename: "left" === this.handness ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME, path: t.MODEL_BASE_URL + "default/" }; }), (t.prototype._getModelLoadingConstraints = function () { var e = $i.a.IsPluginForExtensionAvailable(".glb"); return e || g.a.Warn("glTF / glb loaded was not registered, using generic controller instead"), e; }), (t.prototype._processLoadedModel = function (e) { var t = this; this.rootMesh && (this.getComponentIds().forEach(function (e, n) { if (!t.disableAnimation && e && t.rootMesh) { var i = t._mapping.buttons[e], r = i.rootNodeName; if (!r) return void g.a.Log("Skipping unknown button at index: " + n + " with mapped name: " + e); var o = t._getChildByName(t.rootMesh, r); if (!o) return void g.a.Warn("Missing button mesh with name: " + r); if ( ((i.valueMesh = t._getImmediateChildByName(o, t._mapping.defaultButton.valueNodeName)), (i.pressedMesh = t._getImmediateChildByName(o, t._mapping.defaultButton.pressedNodeName)), (i.unpressedMesh = t._getImmediateChildByName(o, t._mapping.defaultButton.unpressedNodeName)), i.valueMesh && i.pressedMesh && i.unpressedMesh) ) { var a = t.getComponent(e); a && a.onButtonStateChangedObservable.add( function (e) { t._lerpTransform(i, e.value); }, void 0, !0 ); } else g.a.Warn("Missing button submesh under mesh with name: " + r); } }), this.getComponentIds().forEach(function (e, n) { var i = t.getComponent(e); i.isAxes() && ["x-axis", "y-axis"].forEach(function (n) { if (t.rootMesh) { var r = t._mapping.axes[e][n], o = t._getChildByName(t.rootMesh, r.rootNodeName); o ? ((r.valueMesh = t._getImmediateChildByName(o, t._mapping.defaultAxis.valueNodeName)), (r.minMesh = t._getImmediateChildByName(o, t._mapping.defaultAxis.minNodeName)), (r.maxMesh = t._getImmediateChildByName(o, t._mapping.defaultAxis.maxNodeName)), r.valueMesh && r.minMesh && r.maxMesh ? i && i.onAxisValueChangedObservable.add( function (e) { var i = "x-axis" === n ? e.x : e.y; t._lerpTransform(r, i, !0); }, void 0, !0 ) : g.a.Warn("Missing axis submesh under mesh with name: " + r.rootNodeName)) : g.a.Warn("Missing axis mesh with name: " + r.rootNodeName); } }); })); }), (t.prototype._setRootMesh = function (e) { var t; (this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)), (this.rootMesh.isPickable = !1); for (var n = 0; n < e.length; n++) { var i = e[n]; (i.isPickable = !1), i.parent || (t = i); } t && t.setParent(this.rootMesh), (this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0)); }), (t.prototype._updateModel = function () {}), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/microsoft/"), (t.MODEL_LEFT_FILENAME = "left.glb"), (t.MODEL_RIGHT_FILENAME = "right.glb"), t ); })(uo); mo.RegisterController("windows-mixed-reality", function (e, t) { return new sp(t, e.gamepad, e.handedness); }); var cp = { left: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: { xr_standard_trigger_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_trigger_pressed_value", minNodeName: "xr_standard_trigger_pressed_min", maxNodeName: "xr_standard_trigger_pressed_max", }, }, }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: { xr_standard_squeeze_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_squeeze_pressed_value", minNodeName: "xr_standard_squeeze_pressed_min", maxNodeName: "xr_standard_squeeze_pressed_max", }, }, }, "xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: { xr_standard_touchpad_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_pressed_value", minNodeName: "xr_standard_touchpad_pressed_min", maxNodeName: "xr_standard_touchpad_pressed_max", }, xr_standard_touchpad_xaxis_pressed: { componentProperty: "xAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_xaxis_pressed_value", minNodeName: "xr_standard_touchpad_xaxis_pressed_min", maxNodeName: "xr_standard_touchpad_xaxis_pressed_max", }, xr_standard_touchpad_yaxis_pressed: { componentProperty: "yAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_yaxis_pressed_value", minNodeName: "xr_standard_touchpad_yaxis_pressed_min", maxNodeName: "xr_standard_touchpad_yaxis_pressed_max", }, xr_standard_touchpad_xaxis_touched: { componentProperty: "xAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_xaxis_touched_value", minNodeName: "xr_standard_touchpad_xaxis_touched_min", maxNodeName: "xr_standard_touchpad_xaxis_touched_max", }, xr_standard_touchpad_yaxis_touched: { componentProperty: "yAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_yaxis_touched_value", minNodeName: "xr_standard_touchpad_yaxis_touched_min", maxNodeName: "xr_standard_touchpad_yaxis_touched_max", }, xr_standard_touchpad_axes_touched: { componentProperty: "state", states: ["touched", "pressed"], valueNodeProperty: "visibility", valueNodeName: "xr_standard_touchpad_axes_touched_value" }, }, touchPointNodeName: "xr_standard_touchpad_axes_touched_value", }, "xr-standard-thumbstick": { type: "thumbstick", gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 }, rootNodeName: "xr_standard_thumbstick", visualResponses: { xr_standard_thumbstick_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_thumbstick_pressed_value", minNodeName: "xr_standard_thumbstick_pressed_min", maxNodeName: "xr_standard_thumbstick_pressed_max", }, xr_standard_thumbstick_xaxis_pressed: { componentProperty: "xAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_thumbstick_xaxis_pressed_value", minNodeName: "xr_standard_thumbstick_xaxis_pressed_min", maxNodeName: "xr_standard_thumbstick_xaxis_pressed_max", }, xr_standard_thumbstick_yaxis_pressed: { componentProperty: "yAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_thumbstick_yaxis_pressed_value", minNodeName: "xr_standard_thumbstick_yaxis_pressed_min", maxNodeName: "xr_standard_thumbstick_yaxis_pressed_max", }, }, }, }, gamepadMapping: "xr-standard", rootNodeName: "microsoft-mixed-reality-left", assetPath: "left.glb", }, right: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: { xr_standard_trigger_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_trigger_pressed_value", minNodeName: "xr_standard_trigger_pressed_min", maxNodeName: "xr_standard_trigger_pressed_max", }, }, }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: { xr_standard_squeeze_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_squeeze_pressed_value", minNodeName: "xr_standard_squeeze_pressed_min", maxNodeName: "xr_standard_squeeze_pressed_max", }, }, }, "xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: { xr_standard_touchpad_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_pressed_value", minNodeName: "xr_standard_touchpad_pressed_min", maxNodeName: "xr_standard_touchpad_pressed_max", }, xr_standard_touchpad_xaxis_pressed: { componentProperty: "xAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_xaxis_pressed_value", minNodeName: "xr_standard_touchpad_xaxis_pressed_min", maxNodeName: "xr_standard_touchpad_xaxis_pressed_max", }, xr_standard_touchpad_yaxis_pressed: { componentProperty: "yAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_yaxis_pressed_value", minNodeName: "xr_standard_touchpad_yaxis_pressed_min", maxNodeName: "xr_standard_touchpad_yaxis_pressed_max", }, xr_standard_touchpad_xaxis_touched: { componentProperty: "xAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_xaxis_touched_value", minNodeName: "xr_standard_touchpad_xaxis_touched_min", maxNodeName: "xr_standard_touchpad_xaxis_touched_max", }, xr_standard_touchpad_yaxis_touched: { componentProperty: "yAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_touchpad_yaxis_touched_value", minNodeName: "xr_standard_touchpad_yaxis_touched_min", maxNodeName: "xr_standard_touchpad_yaxis_touched_max", }, xr_standard_touchpad_axes_touched: { componentProperty: "state", states: ["touched", "pressed"], valueNodeProperty: "visibility", valueNodeName: "xr_standard_touchpad_axes_touched_value" }, }, touchPointNodeName: "xr_standard_touchpad_axes_touched_value", }, "xr-standard-thumbstick": { type: "thumbstick", gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 }, rootNodeName: "xr_standard_thumbstick", visualResponses: { xr_standard_thumbstick_pressed: { componentProperty: "button", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_thumbstick_pressed_value", minNodeName: "xr_standard_thumbstick_pressed_min", maxNodeName: "xr_standard_thumbstick_pressed_max", }, xr_standard_thumbstick_xaxis_pressed: { componentProperty: "xAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_thumbstick_xaxis_pressed_value", minNodeName: "xr_standard_thumbstick_xaxis_pressed_min", maxNodeName: "xr_standard_thumbstick_xaxis_pressed_max", }, xr_standard_thumbstick_yaxis_pressed: { componentProperty: "yAxis", states: ["default", "touched", "pressed"], valueNodeProperty: "transform", valueNodeName: "xr_standard_thumbstick_yaxis_pressed_value", minNodeName: "xr_standard_thumbstick_yaxis_pressed_min", maxNodeName: "xr_standard_thumbstick_yaxis_pressed_max", }, }, }, }, gamepadMapping: "xr-standard", rootNodeName: "microsoft-mixed-reality-right", assetPath: "right.glb", }, }, lp = (function (e) { function t(t, n, i, r, o) { void 0 === r && (r = !1), void 0 === o && (o = !1); var a = e.call(this, t, up[i], n, i) || this; return (a._forceLegacyControllers = o), (a.profileId = "oculus-touch"), a; } return ( Object(h.d)(t, e), (t.prototype._getFilenameAndPath = function () { return { filename: "left" === this.handness ? t.MODEL_LEFT_FILENAME : t.MODEL_RIGHT_FILENAME, path: this._isQuest() ? t.QUEST_MODEL_BASE_URL : t.MODEL_BASE_URL }; }), (t.prototype._getModelLoadingConstraints = function () { return !0; }), (t.prototype._processLoadedModel = function (e) { var t = this, n = this._isQuest(), i = "right" === this.handness ? -1 : 1; this.getComponentIds().forEach(function (e) { var r = e && t.getComponent(e); r && r.onButtonStateChangedObservable.add( function (r) { if (t.rootMesh && !t.disableAnimation) switch (e) { case "xr-standard-trigger": return void ( n || ((t._modelRootNode.getChildren()[3].rotation.x = 0.2 * -r.value), (t._modelRootNode.getChildren()[3].position.y = 0.005 * -r.value), (t._modelRootNode.getChildren()[3].position.z = 0.005 * -r.value)) ); case "xr-standard-squeeze": return void (n || (t._modelRootNode.getChildren()[4].position.x = i * r.value * 0.0035)); case "xr-standard-thumbstick": return; case "a-button": case "x-button": return void (n || (r.pressed ? (t._modelRootNode.getChildren()[1].position.y = -0.001) : (t._modelRootNode.getChildren()[1].position.y = 0))); case "b-button": case "y-button": return void (n || (r.pressed ? (t._modelRootNode.getChildren()[2].position.y = -0.001) : (t._modelRootNode.getChildren()[2].position.y = 0))); } }, void 0, !0 ); }); }), (t.prototype._setRootMesh = function (e) { (this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)), (this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0)), e.forEach(function (e) { e.isPickable = !1; }), this._isQuest() ? (this._modelRootNode = e[0]) : ((this._modelRootNode = e[1]), (this.rootMesh.position.y = 0.034), (this.rootMesh.position.z = 0.052)), (this._modelRootNode.parent = this.rootMesh); }), (t.prototype._updateModel = function () {}), (t.prototype._isQuest = function () { return !!navigator.userAgent.match(/Quest/gi) && !this._forceLegacyControllers; }), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/oculus/"), (t.MODEL_LEFT_FILENAME = "left.babylon"), (t.MODEL_RIGHT_FILENAME = "right.babylon"), (t.QUEST_MODEL_BASE_URL = "https://controllers.babylonjs.com/oculusQuest/"), t ); })(uo); mo.RegisterController("oculus-touch", function (e, t) { return new lp(t, e.gamepad, e.handedness); }), mo.RegisterController("oculus-touch-legacy", function (e, t) { return new lp(t, e.gamepad, e.handedness, !0); }); var up = { left: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} }, "xr-standard-thumbstick": { type: "thumbstick", gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 }, rootNodeName: "xr_standard_thumbstick", visualResponses: {} }, "x-button": { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "x_button", visualResponses: {} }, "y-button": { type: "button", gamepadIndices: { button: 5 }, rootNodeName: "y_button", visualResponses: {} }, thumbrest: { type: "button", gamepadIndices: { button: 6 }, rootNodeName: "thumbrest", visualResponses: {} }, }, gamepadMapping: "xr-standard", rootNodeName: "oculus-touch-v2-left", assetPath: "left.glb", }, right: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} }, "xr-standard-thumbstick": { type: "thumbstick", gamepadIndices: { button: 3, xAxis: 2, yAxis: 3 }, rootNodeName: "xr_standard_thumbstick", visualResponses: {} }, "a-button": { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "a_button", visualResponses: {} }, "b-button": { type: "button", gamepadIndices: { button: 5 }, rootNodeName: "b_button", visualResponses: {} }, thumbrest: { type: "button", gamepadIndices: { button: 6 }, rootNodeName: "thumbrest", visualResponses: {} }, }, gamepadMapping: "xr-standard", rootNodeName: "oculus-touch-v2-right", assetPath: "right.glb", }, }, hp = (function (e) { function t(t, n, i) { var r = e.call(this, t, dp[i], n, i) || this; return (r.profileId = "htc-vive"), r; } return ( Object(h.d)(t, e), (t.prototype._getFilenameAndPath = function () { return { filename: t.MODEL_FILENAME, path: t.MODEL_BASE_URL }; }), (t.prototype._getModelLoadingConstraints = function () { return !0; }), (t.prototype._processLoadedModel = function (e) { var t = this; this.getComponentIds().forEach(function (e) { var n = e && t.getComponent(e); n && n.onButtonStateChangedObservable.add( function (n) { if (t.rootMesh && !t.disableAnimation) switch (e) { case "xr-standard-trigger": return void (t._modelRootNode.getChildren()[6].rotation.x = 0.15 * -n.value); case "xr-standard-touchpad": case "xr-standard-squeeze": return; } }, void 0, !0 ); }); }), (t.prototype._setRootMesh = function (e) { (this.rootMesh = new Ee.a(this.profileId + " " + this.handness, this.scene)), e.forEach(function (e) { e.isPickable = !1; }), (this._modelRootNode = e[1]), (this._modelRootNode.parent = this.rootMesh), (this.rootMesh.rotationQuaternion = a.b.FromEulerAngles(0, Math.PI, 0)); }), (t.prototype._updateModel = function () {}), (t.MODEL_BASE_URL = "https://controllers.babylonjs.com/vive/"), (t.MODEL_FILENAME = "wand.babylon"), t ); })(uo); mo.RegisterController("htc-vive", function (e, t) { return new hp(t, e.gamepad, e.handedness); }); var dp = { left: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} }, "xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: {} }, menu: { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "menu", visualResponses: {} }, }, gamepadMapping: "xr-standard", rootNodeName: "htc_vive_none", assetPath: "none.glb", }, right: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} }, "xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: {} }, menu: { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "menu", visualResponses: {} }, }, gamepadMapping: "xr-standard", rootNodeName: "htc_vive_none", assetPath: "none.glb", }, none: { selectComponentId: "xr-standard-trigger", components: { "xr-standard-trigger": { type: "trigger", gamepadIndices: { button: 0 }, rootNodeName: "xr_standard_trigger", visualResponses: {} }, "xr-standard-squeeze": { type: "squeeze", gamepadIndices: { button: 1 }, rootNodeName: "xr_standard_squeeze", visualResponses: {} }, "xr-standard-touchpad": { type: "touchpad", gamepadIndices: { button: 2, xAxis: 0, yAxis: 1 }, rootNodeName: "xr_standard_touchpad", visualResponses: {} }, menu: { type: "button", gamepadIndices: { button: 4 }, rootNodeName: "menu", visualResponses: {} }, }, gamepadMapping: "xr-standard", rootNodeName: "htc-vive-none", assetPath: "none.glb", }, }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return h; }); var i = n(58), r = n(1), o = n(148), a = n(152), s = { min: 0, max: 0 }, c = { min: 0, max: 0 }, l = function (e, t, n) { var i = r.e.Dot(t.centerWorld, e), o = Math.abs(r.e.Dot(t.directions[0], e)) * t.extendSize.x + Math.abs(r.e.Dot(t.directions[1], e)) * t.extendSize.y + Math.abs(r.e.Dot(t.directions[2], e)) * t.extendSize.z; (n.min = i - o), (n.max = i + o); }, u = function (e, t, n) { return l(e, t, s), l(e, n, c), !(s.min > c.max || c.min > s.max); }, h = (function () { function e(e, t, n) { (this._isLocked = !1), (this.boundingBox = new o.a(e, t, n)), (this.boundingSphere = new a.a(e, t, n)); } return ( (e.prototype.reConstruct = function (e, t, n) { this.boundingBox.reConstruct(e, t, n), this.boundingSphere.reConstruct(e, t, n); }), Object.defineProperty(e.prototype, "minimum", { get: function () { return this.boundingBox.minimum; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "maximum", { get: function () { return this.boundingBox.maximum; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isLocked", { get: function () { return this._isLocked; }, set: function (e) { this._isLocked = e; }, enumerable: !0, configurable: !0, }), (e.prototype.update = function (e) { this._isLocked || (this.boundingBox._update(e), this.boundingSphere._update(e)); }), (e.prototype.centerOn = function (t, n) { var i = e.TmpVector3[0].copyFrom(t).subtractInPlace(n), r = e.TmpVector3[1].copyFrom(t).addInPlace(n); return this.boundingBox.reConstruct(i, r, this.boundingBox.getWorldMatrix()), this.boundingSphere.reConstruct(i, r, this.boundingBox.getWorldMatrix()), this; }), (e.prototype.scale = function (e) { return this.boundingBox.scale(e), this.boundingSphere.scale(e), this; }), (e.prototype.isInFrustum = function (e, t) { return void 0 === t && (t = 0), !((2 !== t && 3 !== t) || !this.boundingSphere.isCenterInFrustum(e)) || (!!this.boundingSphere.isInFrustum(e) && (!(1 !== t && 3 !== t) || this.boundingBox.isInFrustum(e))); }), Object.defineProperty(e.prototype, "diagonalLength", { get: function () { var t = this.boundingBox; return t.maximumWorld.subtractToRef(t.minimumWorld, e.TmpVector3[0]).length(); }, enumerable: !0, configurable: !0, }), (e.prototype.isCompletelyInFrustum = function (e) { return this.boundingBox.isCompletelyInFrustum(e); }), (e.prototype._checkCollision = function (e) { return e._canDoCollision(this.boundingSphere.centerWorld, this.boundingSphere.radiusWorld, this.boundingBox.minimumWorld, this.boundingBox.maximumWorld); }), (e.prototype.intersectsPoint = function (e) { return !!this.boundingSphere.centerWorld && !!this.boundingSphere.intersectsPoint(e) && !!this.boundingBox.intersectsPoint(e); }), (e.prototype.intersects = function (e, t) { if (!a.a.Intersects(this.boundingSphere, e.boundingSphere)) return !1; if (!o.a.Intersects(this.boundingBox, e.boundingBox)) return !1; if (!t) return !0; var n = this.boundingBox, i = e.boundingBox; return ( !!u(n.directions[0], n, i) && !!u(n.directions[1], n, i) && !!u(n.directions[2], n, i) && !!u(i.directions[0], n, i) && !!u(i.directions[1], n, i) && !!u(i.directions[2], n, i) && !!u(r.e.Cross(n.directions[0], i.directions[0]), n, i) && !!u(r.e.Cross(n.directions[0], i.directions[1]), n, i) && !!u(r.e.Cross(n.directions[0], i.directions[2]), n, i) && !!u(r.e.Cross(n.directions[1], i.directions[0]), n, i) && !!u(r.e.Cross(n.directions[1], i.directions[1]), n, i) && !!u(r.e.Cross(n.directions[1], i.directions[2]), n, i) && !!u(r.e.Cross(n.directions[2], i.directions[0]), n, i) && !!u(r.e.Cross(n.directions[2], i.directions[1]), n, i) && !!u(r.e.Cross(n.directions[2], i.directions[2]), n, i) ); }), (e.TmpVector3 = i.a.BuildArray(2, r.e.Zero)), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e(e, t, n, i, r, o) { (this.source = e), (this.pointerX = t), (this.pointerY = n), (this.meshUnderPointer = i), (this.sourceEvent = r), (this.additionalData = o); } return ( (e.CreateNew = function (t, n, i) { var r = t.getScene(); return new e(t, r.pointerX, r.pointerY, r.meshUnderPointer || t, n, i); }), (e.CreateNewFromSprite = function (t, n, i, r) { return new e(t, n.pointerX, n.pointerY, n.meshUnderPointer, i, r); }), (e.CreateNewFromScene = function (t, n) { return new e(null, t.pointerX, t.pointerY, t.meshUnderPointer, n); }), (e.CreateNewFromPrimitive = function (t, n, i, r) { return new e(t, n.x, n.y, null, i, r); }), e ); })(); }, function (e, t, n) { "use strict"; var i, r = function () { return void 0 === i && (i = Boolean(window && document && document.all && !window.atob)), i; }, o = (function () { var e = {}; return function (t) { if (void 0 === e[t]) { var n = document.querySelector(t); if (window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement) try { n = n.contentDocument.head; } catch (e) { n = null; } e[t] = n; } return e[t]; }; })(), a = []; function s(e) { for (var t = -1, n = 0; n < a.length; n++) if (a[n].identifier === e) { t = n; break; } return t; } function c(e, t) { for (var n = {}, i = [], r = 0; r < e.length; r++) { var o = e[r], c = t.base ? o[0] + t.base : o[0], l = n[c] || 0, u = "".concat(c, " ").concat(l); n[c] = l + 1; var h = s(u), d = { css: o[1], media: o[2], sourceMap: o[3] }; -1 !== h ? (a[h].references++, a[h].updater(d)) : a.push({ identifier: u, updater: g(d, t), references: 1 }), i.push(u); } return i; } function l(e) { var t = document.createElement("style"), i = e.attributes || {}; if (void 0 === i.nonce) { var r = n.nc; r && (i.nonce = r); } if ( (Object.keys(i).forEach(function (e) { t.setAttribute(e, i[e]); }), "function" == typeof e.insert) ) e.insert(t); else { var a = o(e.insert || "head"); if (!a) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); a.appendChild(t); } return t; } var u, h = ((u = []), function (e, t) { return (u[e] = t), u.filter(Boolean).join("\n"); }); function d(e, t, n, i) { var r = n ? "" : i.media ? "@media ".concat(i.media, " {").concat(i.css, "}") : i.css; if (e.styleSheet) e.styleSheet.cssText = h(t, r); else { var o = document.createTextNode(r), a = e.childNodes; a[t] && e.removeChild(a[t]), a.length ? e.insertBefore(o, a[t]) : e.appendChild(o); } } function p(e, t, n) { var i = n.css, r = n.media, o = n.sourceMap; if ((r ? e.setAttribute("media", r) : e.removeAttribute("media"), o && btoa && (i += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))), " */")), e.styleSheet)) e.styleSheet.cssText = i; else { for (; e.firstChild; ) e.removeChild(e.firstChild); e.appendChild(document.createTextNode(i)); } } var f = null, m = 0; function g(e, t) { var n, i, r; if (t.singleton) { var o = m++; (n = f || (f = l(t))), (i = d.bind(null, n, o, !1)), (r = d.bind(null, n, o, !0)); } else (n = l(t)), (i = p.bind(null, n, t)), (r = function () { !(function (e) { if (null === e.parentNode) return !1; e.parentNode.removeChild(e); })(n); }); return ( i(e), function (t) { if (t) { if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return; i((e = t)); } else r(); } ); } e.exports = function (e, t) { (t = t || {}).singleton || "boolean" == typeof t.singleton || (t.singleton = r()); var n = c((e = e || []), t); return function (e) { if (((e = e || []), "[object Array]" === Object.prototype.toString.call(e))) { for (var i = 0; i < n.length; i++) { var r = s(n[i]); a[r].references--; } for (var o = c(e, t), l = 0; l < n.length; l++) { var u = s(n[l]); 0 === a[u].references && (a[u].updater(), a.splice(u, 1)); } n = o; } }; }; }, function (e, t, n) { "use strict"; e.exports = function (e) { var t = []; return ( (t.toString = function () { return this.map(function (t) { var n = (function (e, t) { var n = e[1] || "", i = e[3]; if (!i) return n; if (t && "function" == typeof btoa) { var r = ((a = i), (s = btoa(unescape(encodeURIComponent(JSON.stringify(a))))), (c = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s)), "/*# ".concat(c, " */")), o = i.sources.map(function (e) { return "/*# sourceURL=".concat(i.sourceRoot || "").concat(e, " */"); }); return [n].concat(o).concat([r]).join("\n"); } var a, s, c; return [n].join("\n"); })(t, e); return t[2] ? "@media ".concat(t[2], " {").concat(n, "}") : n; }).join(""); }), (t.i = function (e, n, i) { "string" == typeof e && (e = [[null, e, ""]]); var r = {}; if (i) for (var o = 0; o < this.length; o++) { var a = this[o][0]; null != a && (r[a] = !0); } for (var s = 0; s < e.length; s++) { var c = [].concat(e[s]); (i && r[c[0]]) || (n && (c[2] ? (c[2] = "".concat(n, " and ").concat(c[2])) : (c[2] = n)), t.push(c)); } }), t ); }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(3), o = n(1), a = n(14), s = n(102), c = n(120), l = (function (e) { function t(t, n, i, r) { void 0 === r && (r = !0); var s = e.call(this, t, n, i, r) || this; return ( (s.ellipsoid = new o.e(0.5, 1, 0.5)), (s.ellipsoidOffset = new o.e(0, 0, 0)), (s.checkCollisions = !1), (s.applyGravity = !1), (s._needMoveForGravity = !1), (s._oldPosition = o.e.Zero()), (s._diffPosition = o.e.Zero()), (s._newPosition = o.e.Zero()), (s._collisionMask = -1), (s._onCollisionPositionChange = function (e, t, n) { void 0 === n && (n = null); var i; (i = t), s._newPosition.copyFrom(i), s._newPosition.subtractToRef(s._oldPosition, s._diffPosition), s._diffPosition.length() > a.a.CollisionsEpsilon && (s.position.addInPlace(s._diffPosition), s.onCollide && n && s.onCollide(n)); }), (s.inputs = new c.a(s)), s.inputs.addKeyboard().addMouse(), s ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "angularSensibility", { get: function () { var e = this.inputs.attached.mouse; return e ? e.angularSensibility : 0; }, set: function (e) { var t = this.inputs.attached.mouse; t && (t.angularSensibility = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysUp", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysUp : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysUp = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysDown", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysDown : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysDown = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysLeft", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysLeft : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysLeft = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "keysRight", { get: function () { var e = this.inputs.attached.keyboard; return e ? e.keysRight : []; }, set: function (e) { var t = this.inputs.attached.keyboard; t && (t.keysRight = e); }, enumerable: !0, configurable: !0, }), (t.prototype.attachControl = function (e, t) { this.inputs.attachElement(e, t); }), (t.prototype.detachControl = function (e) { this.inputs.detachElement(e), (this.cameraDirection = new o.e(0, 0, 0)), (this.cameraRotation = new o.d(0, 0)); }), Object.defineProperty(t.prototype, "collisionMask", { get: function () { return this._collisionMask; }, set: function (e) { this._collisionMask = isNaN(e) ? -1 : e; }, enumerable: !0, configurable: !0, }), (t.prototype._collideWithWorld = function (e) { (this.parent ? o.e.TransformCoordinates(this.position, this.parent.getWorldMatrix()) : this.position).subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition), this._oldPosition.addInPlace(this.ellipsoidOffset); var t = this.getScene().collisionCoordinator; this._collider || (this._collider = t.createCollider()), (this._collider._radius = this.ellipsoid), (this._collider.collisionMask = this._collisionMask); var n = e; this.applyGravity && (n = e.add(this.getScene().gravity)), t.getNewPosition(this._oldPosition, n, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId); }), (t.prototype._checkInputs = function () { this._localDirection || ((this._localDirection = o.e.Zero()), (this._transformedDirection = o.e.Zero())), this.inputs.checkInputs(), e.prototype._checkInputs.call(this); }), (t.prototype._decideIfNeedsToMove = function () { return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0; }), (t.prototype._updatePosition = function () { this.checkCollisions && this.getScene().collisionsEnabled ? this._collideWithWorld(this.cameraDirection) : e.prototype._updatePosition.call(this); }), (t.prototype.dispose = function () { this.inputs.clear(), e.prototype.dispose.call(this); }), (t.prototype.getClassName = function () { return "FreeCamera"; }), Object(i.c)([Object(r.o)()], t.prototype, "ellipsoid", void 0), Object(i.c)([Object(r.o)()], t.prototype, "ellipsoidOffset", void 0), Object(i.c)([Object(r.c)()], t.prototype, "checkCollisions", void 0), Object(i.c)([Object(r.c)()], t.prototype, "applyGravity", void 0), t ); })(s.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return u; }); var i = n(2), r = n(3), o = n(6), a = n(1), s = n(25), c = n(204), l = n(109), u = (n(74), (function () { function e(t) { (this.metadata = null), (this.reservedDataStore = null), (this._hasAlpha = !1), (this.getAlphaFromRGB = !1), (this.level = 1), (this.coordinatesIndex = 0), (this._coordinatesMode = 0), (this.wrapU = 1), (this.wrapV = 1), (this.wrapR = 1), (this.anisotropicFilteringLevel = e.DEFAULT_ANISOTROPIC_FILTERING_LEVEL), (this.gammaSpace = !0), (this.invertZ = !1), (this.lodLevelInAlpha = !1), (this.isRenderTarget = !1), (this.animations = new Array()), (this.onDisposeObservable = new o.c()), (this._onDisposeObserver = null), (this.delayLoadState = 0), (this._scene = null), (this._texture = null), (this._uid = null), (this._cachedSize = l.a.Zero()), (this._scene = t || s.a.LastCreatedScene), this._scene && ((this.uniqueId = this._scene.getUniqueId()), this._scene.addTexture(this)), (this._uid = null); } return ( Object.defineProperty(e.prototype, "hasAlpha", { get: function () { return this._hasAlpha; }, set: function (e) { this._hasAlpha !== e && ((this._hasAlpha = e), this._scene && this._scene.markAllMaterialsAsDirty(17)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "coordinatesMode", { get: function () { return this._coordinatesMode; }, set: function (e) { this._coordinatesMode !== e && ((this._coordinatesMode = e), this._scene && this._scene.markAllMaterialsAsDirty(1)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isCube", { get: function () { return !!this._texture && this._texture.isCube; }, set: function (e) { this._texture && (this._texture.isCube = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "is3D", { get: function () { return !!this._texture && this._texture.is3D; }, set: function (e) { this._texture && (this._texture.is3D = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "is2DArray", { get: function () { return !!this._texture && this._texture.is2DArray; }, set: function (e) { this._texture && (this._texture.is2DArray = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isRGBD", { get: function () { return null != this._texture && this._texture._isRGBD; }, set: function (e) { this._texture && (this._texture._isRGBD = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "noMipmap", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "lodGenerationOffset", { get: function () { return this._texture ? this._texture._lodGenerationOffset : 0; }, set: function (e) { this._texture && (this._texture._lodGenerationOffset = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "lodGenerationScale", { get: function () { return this._texture ? this._texture._lodGenerationScale : 0; }, set: function (e) { this._texture && (this._texture._lodGenerationScale = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "linearSpecularLOD", { get: function () { return !!this._texture && this._texture._linearSpecularLOD; }, set: function (e) { this._texture && (this._texture._linearSpecularLOD = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "irradianceTexture", { get: function () { return this._texture ? this._texture._irradianceTexture : null; }, set: function (e) { this._texture && (this._texture._irradianceTexture = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "uid", { get: function () { return this._uid || (this._uid = c.a.RandomId()), this._uid; }, enumerable: !0, configurable: !0, }), (e.prototype.toString = function () { return this.name; }), (e.prototype.getClassName = function () { return "BaseTexture"; }), Object.defineProperty(e.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isBlocking", { get: function () { return !0; }, enumerable: !0, configurable: !0, }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype.getTextureMatrix = function () { return a.a.IdentityReadOnly; }), (e.prototype.getReflectionTextureMatrix = function () { return a.a.IdentityReadOnly; }), (e.prototype.getInternalTexture = function () { return this._texture; }), (e.prototype.isReadyOrNotBlocking = function () { return !this.isBlocking || this.isReady(); }), (e.prototype.isReady = function () { return 4 === this.delayLoadState ? (this.delayLoad(), !1) : !!this._texture && this._texture.isReady; }), (e.prototype.getSize = function () { if (this._texture) { if (this._texture.width) return (this._cachedSize.width = this._texture.width), (this._cachedSize.height = this._texture.height), this._cachedSize; if (this._texture._size) return (this._cachedSize.width = this._texture._size), (this._cachedSize.height = this._texture._size), this._cachedSize; } return this._cachedSize; }), (e.prototype.getBaseSize = function () { return this.isReady() && this._texture ? (this._texture._size ? new l.a(this._texture._size, this._texture._size) : new l.a(this._texture.baseWidth, this._texture.baseHeight)) : l.a.Zero(); }), (e.prototype.updateSamplingMode = function (e) { if (this._texture) { var t = this.getScene(); t && t.getEngine().updateTextureSamplingMode(e, this._texture); } }), (e.prototype.scale = function (e) {}), Object.defineProperty(e.prototype, "canRescale", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), (e.prototype._getFromCache = function (e, t, n, i) { if (!this._scene) return null; for (var r = this._scene.getEngine().getLoadedTexturesCache(), o = 0; o < r.length; o++) { var a = r[o]; if (!((void 0 !== i && i !== a.invertY) || a.url !== e || a.generateMipMaps !== !t || (n && n !== a.samplingMode))) return a.incrementReferences(), a; } return null; }), (e.prototype._rebuild = function () {}), (e.prototype.delayLoad = function () {}), (e.prototype.clone = function () { return null; }), Object.defineProperty(e.prototype, "textureType", { get: function () { return this._texture && void 0 !== this._texture.type ? this._texture.type : 0; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "textureFormat", { get: function () { return this._texture && void 0 !== this._texture.format ? this._texture.format : 5; }, enumerable: !0, configurable: !0, }), (e.prototype._markAllSubMeshesAsTexturesDirty = function () { var e = this.getScene(); e && e.markAllMaterialsAsDirty(1); }), (e.prototype.readPixels = function (e, t, n) { if ((void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = null), !this._texture)) return null; var i = this.getSize(), r = i.width, o = i.height, a = this.getScene(); if (!a) return null; var s = a.getEngine(); return ( 0 != t && ((r /= Math.pow(2, t)), (o /= Math.pow(2, t)), (r = Math.round(r)), (o = Math.round(o))), this._texture.isCube ? s._readTexturePixels(this._texture, r, o, e, t, n) : s._readTexturePixels(this._texture, r, o, -1, t, n) ); }), (e.prototype.releaseInternalTexture = function () { this._texture && (this._texture.dispose(), (this._texture = null)); }), Object.defineProperty(e.prototype, "_lodTextureHigh", { get: function () { return this._texture ? this._texture._lodTextureHigh : null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "_lodTextureMid", { get: function () { return this._texture ? this._texture._lodTextureMid : null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "_lodTextureLow", { get: function () { return this._texture ? this._texture._lodTextureLow : null; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { if (this._scene) { this._scene.stopAnimation && this._scene.stopAnimation(this), this._scene._removePendingData(this); var e = this._scene.textures.indexOf(this); e >= 0 && this._scene.textures.splice(e, 1), this._scene.onTextureRemovedObservable.notifyObservers(this); } void 0 !== this._texture && (this.releaseInternalTexture(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear()); }), (e.prototype.serialize = function () { if (!this.name) return null; var e = r.a.Serialize(this); return r.a.AppendSerializedAnimations(this, e), e; }), (e.WhenAllReady = function (e, t) { var n = e.length; if (0 !== n) for ( var i, r, o = function () { if ((i = e[a]).isReady()) 0 == --n && t(); else if ((r = i.onLoadObservable)) { var o = function () { r.removeCallback(o), 0 == --n && t(); }; r.add(o); } }, a = 0; a < e.length; a++ ) o(); else t(); }), (e.DEFAULT_ANISOTROPIC_FILTERING_LEVEL = 4), Object(i.c)([Object(r.c)()], e.prototype, "uniqueId", void 0), Object(i.c)([Object(r.c)()], e.prototype, "name", void 0), Object(i.c)([Object(r.c)()], e.prototype, "metadata", void 0), Object(i.c)([Object(r.c)("hasAlpha")], e.prototype, "_hasAlpha", void 0), Object(i.c)([Object(r.c)()], e.prototype, "getAlphaFromRGB", void 0), Object(i.c)([Object(r.c)()], e.prototype, "level", void 0), Object(i.c)([Object(r.c)()], e.prototype, "coordinatesIndex", void 0), Object(i.c)([Object(r.c)("coordinatesMode")], e.prototype, "_coordinatesMode", void 0), Object(i.c)([Object(r.c)()], e.prototype, "wrapU", void 0), Object(i.c)([Object(r.c)()], e.prototype, "wrapV", void 0), Object(i.c)([Object(r.c)()], e.prototype, "wrapR", void 0), Object(i.c)([Object(r.c)()], e.prototype, "anisotropicFilteringLevel", void 0), Object(i.c)([Object(r.c)()], e.prototype, "isCube", null), Object(i.c)([Object(r.c)()], e.prototype, "is3D", null), Object(i.c)([Object(r.c)()], e.prototype, "is2DArray", null), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "gammaSpace", void 0), Object(i.c)([Object(r.c)()], e.prototype, "invertZ", void 0), Object(i.c)([Object(r.c)()], e.prototype, "lodLevelInAlpha", void 0), Object(i.c)([Object(r.c)()], e.prototype, "lodGenerationOffset", null), Object(i.c)([Object(r.c)()], e.prototype, "lodGenerationScale", null), Object(i.c)([Object(r.c)()], e.prototype, "linearSpecularLOD", null), Object(i.c)([Object(r.m)()], e.prototype, "irradianceTexture", null), Object(i.c)([Object(r.c)()], e.prototype, "isRenderTarget", void 0), e ); })()); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(76), r = (function () { function e() { (this._startMonitoringTime = 0), (this._min = 0), (this._max = 0), (this._average = 0), (this._lastSecAverage = 0), (this._current = 0), (this._totalValueCount = 0), (this._totalAccumulated = 0), (this._lastSecAccumulated = 0), (this._lastSecTime = 0), (this._lastSecValueCount = 0); } return ( Object.defineProperty(e.prototype, "min", { get: function () { return this._min; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "max", { get: function () { return this._max; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "average", { get: function () { return this._average; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "lastSecAverage", { get: function () { return this._lastSecAverage; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "current", { get: function () { return this._current; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "total", { get: function () { return this._totalAccumulated; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "count", { get: function () { return this._totalValueCount; }, enumerable: !0, configurable: !0, }), (e.prototype.fetchNewFrame = function () { this._totalValueCount++, (this._current = 0), this._lastSecValueCount++; }), (e.prototype.addCount = function (t, n) { e.Enabled && ((this._current += t), n && this._fetchResult()); }), (e.prototype.beginMonitoring = function () { e.Enabled && (this._startMonitoringTime = i.a.Now); }), (e.prototype.endMonitoring = function (t) { if ((void 0 === t && (t = !0), e.Enabled)) { t && this.fetchNewFrame(); var n = i.a.Now; (this._current = n - this._startMonitoringTime), t && this._fetchResult(); } }), (e.prototype._fetchResult = function () { (this._totalAccumulated += this._current), (this._lastSecAccumulated += this._current), (this._min = Math.min(this._min, this._current)), (this._max = Math.max(this._max, this._current)), (this._average = this._totalAccumulated / this._totalValueCount); var e = i.a.Now; e - this._lastSecTime > 1e3 && ((this._lastSecAverage = this._lastSecAccumulated / this._lastSecValueCount), (this._lastSecTime = e), (this._lastSecAccumulated = 0), (this._lastSecValueCount = 0)); }), (e.Enabled = !0), e ); })(); }, function (e, t, n) { "use strict"; var i = "bonesDeclaration", r = "#if NUM_BONE_INFLUENCERS>0\n#ifdef BONETEXTURE\nuniform sampler2D boneSampler;\nuniform float boneTextureWidth;\n#else\nuniform mat4 mBones[BonesPerMesh];\n#endif\nattribute vec4 matricesIndices;\nattribute vec4 matricesWeights;\n#if NUM_BONE_INFLUENCERS>4\nattribute vec4 matricesIndicesExtra;\nattribute vec4 matricesWeightsExtra;\n#endif\n#ifdef BONETEXTURE\nmat4 readMatrixFromRawSampler(sampler2D smp,float index)\n{\nfloat offset=index*4.0;\nfloat dx=1.0/boneTextureWidth;\nvec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));\nvec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));\nvec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));\nvec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));\nreturn mat4(m0,m1,m2,m3);\n}\n#endif\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "instancesDeclaration", r = "#ifdef INSTANCES\nattribute vec4 world0;\nattribute vec4 world1;\nattribute vec4 world2;\nattribute vec4 world3;\n#else\nuniform mat4 world;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "instancesVertex", r = "#ifdef INSTANCES\nmat4 finalWorld=mat4(world0,world1,world2,world3);\n#else\nmat4 finalWorld=world;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "#if NUM_BONE_INFLUENCERS>0\nmat4 influence;\n#ifdef BONETEXTURE\ninfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\n#endif\n#else\ninfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\n#endif\nfinalWorld=finalWorld*influence;\n#endif"; n(7).a.IncludesShadersStore.bonesVertex = i; }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return p; }), n.d(t, "d", function () { return f; }), n.d(t, "c", function () { return m; }), n.d(t, "a", function () { return g; }); var i = n(2), r = n(97), o = n(56), a = n(6), s = n(118), c = n(181), l = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(i.d)(t, e), (t._setPrototypeOf = Object.setPrototypeOf || function (e, t) { return (e.__proto__ = t), e; }), t ); })(Error), u = n(53), h = n(38), d = n(170), p = (function (e) { function t(n, i) { var o = e.call(this, n) || this; return (o.name = "LoadFileError"), l._setPrototypeOf(o, t.prototype), i instanceof r.a ? (o.request = i) : (o.file = i), o; } return Object(i.d)(t, e), t; })(l), f = (function (e) { function t(n, i) { var r = e.call(this, n) || this; return (r.request = i), (r.name = "RequestFileError"), l._setPrototypeOf(r, t.prototype), r; } return Object(i.d)(t, e), t; })(l), m = (function (e) { function t(n, i) { var r = e.call(this, n) || this; return (r.file = i), (r.name = "ReadFileError"), l._setPrototypeOf(r, t.prototype), r; } return Object(i.d)(t, e), t; })(l), g = (function () { function e() {} return ( (e._CleanUrl = function (e) { return (e = e.replace(/#/gm, "%23")); }), (e.SetCorsBehavior = function (t, n) { if ((!t || 0 !== t.indexOf("data:")) && e.CorsBehavior) if ("string" == typeof e.CorsBehavior || this.CorsBehavior instanceof String) n.crossOrigin = e.CorsBehavior; else { var i = e.CorsBehavior(t); i && (n.crossOrigin = i); } }), (e.LoadImage = function (t, n, i, r, o) { var a; void 0 === o && (o = ""); var c = !1; if ( (t instanceof ArrayBuffer || ArrayBuffer.isView(t) ? "undefined" != typeof Blob ? ((a = URL.createObjectURL(new Blob([t], { type: o }))), (c = !0)) : (a = "data:" + o + ";base64," + u.a.EncodeArrayBufferToBase64(t)) : t instanceof Blob ? ((a = URL.createObjectURL(t)), (c = !0)) : ((a = e._CleanUrl(t)), (a = e.PreprocessUrl(t))), "undefined" == typeof Image) ) return ( e.LoadFile( a, function (e) { createImageBitmap(new Blob([e], { type: o })) .then(function (e) { n(e), c && URL.revokeObjectURL(a); }) .catch(function (e) { i && i("Error while trying to load image: " + t, e); }); }, void 0, r || void 0, !0, function (e, n) { i && i("Error while trying to load image: " + t, n); } ), null ); var l = new Image(); e.SetCorsBehavior(a, l); var h = function () { l.removeEventListener("load", h), l.removeEventListener("error", d), n(l), c && l.src && URL.revokeObjectURL(l.src); }, d = function (e) { l.removeEventListener("load", h), l.removeEventListener("error", d), i && i("Error while trying to load image: " + t, e), c && l.src && URL.revokeObjectURL(l.src); }; l.addEventListener("load", h), l.addEventListener("error", d); var p = function () { l.src = a; }; if ("data:" !== a.substr(0, 5) && r && r.enableTexturesOffline) r.open(function () { r && r.loadImage(a, l); }, p); else { if (-1 !== a.indexOf("file:")) { var f = decodeURIComponent(a.substring(5).toLowerCase()); if (s.a.FilesToLoad[f]) { try { var m; try { m = URL.createObjectURL(s.a.FilesToLoad[f]); } catch (e) { m = URL.createObjectURL(s.a.FilesToLoad[f]); } (l.src = m), (c = !0); } catch (e) { l.src = ""; } return l; } } p(); } return l; }), (e.ReadFile = function (e, t, n, i, r) { var o = new FileReader(), s = { onCompleteObservable: new a.c(), abort: function () { return o.abort(); }, }; return ( (o.onloadend = function (e) { return s.onCompleteObservable.notifyObservers(s); }), r && (o.onerror = function (t) { r(new m("Unable to read " + e.name, e)); }), (o.onload = function (e) { t(e.target.result); }), n && (o.onprogress = n), i ? o.readAsArrayBuffer(e) : o.readAsText(e), s ); }), (e.LoadFile = function (t, n, i, r, o, a) { if (-1 !== t.indexOf("file:")) { var c = decodeURIComponent(t.substring(5).toLowerCase()); 0 === c.indexOf("./") && (c = c.substring(2)); var l = s.a.FilesToLoad[c]; if (l) return e.ReadFile( l, n, i, o, a ? function (e) { return a(void 0, new p(e.message, e.file)); } : void 0 ); } return e.RequestFile( t, function (e, t) { n(e, t ? t.responseURL : void 0); }, i, r, o, a ? function (e) { a(e.request, new p(e.message, e.request)); } : void 0 ); }), (e.RequestFile = function (t, n, i, s, c, l, u) { (t = e._CleanUrl(t)), (t = e.PreprocessUrl(t)); var h = e.BaseUrl + t, d = !1, p = { onCompleteObservable: new a.c(), abort: function () { return (d = !0); }, }, m = function () { var t = new r.a(), a = null; p.abort = function () { (d = !0), t.readyState !== (XMLHttpRequest.DONE || 4) && t.abort(), null !== a && (clearTimeout(a), (a = null)); }; var s = function (m) { t.open("GET", h), u && u(t), c && (t.responseType = "arraybuffer"), i && t.addEventListener("progress", i); var g = function () { t.removeEventListener("loadend", g), p.onCompleteObservable.notifyObservers(p), p.onCompleteObservable.clear(); }; t.addEventListener("loadend", g); var b = function () { if (!d && t.readyState === (XMLHttpRequest.DONE || 4)) { if ((t.removeEventListener("readystatechange", b), (t.status >= 200 && t.status < 300) || (0 === t.status && (!o.a.IsWindowObjectExist() || e.IsFileURL())))) return void n(c ? t.response : t.responseText, t); var i = e.DefaultRetryStrategy; if (i) { var u = i(h, t, m); if (-1 !== u) return ( t.removeEventListener("loadend", g), (t = new r.a()), void (a = setTimeout(function () { return s(m + 1); }, u)) ); } var p = new f("Error status: " + t.status + " " + t.statusText + " - Unable to load " + h, t); l && l(p); } }; t.addEventListener("readystatechange", b), t.send(); }; s(0); }; if (s && s.enableSceneOffline) { var g = function (e) { e && e.status > 400 ? l && l(e) : m(); }; s.open(function () { s && s.loadFile( e.BaseUrl + t, function (e) { d || n(e), p.onCompleteObservable.notifyObservers(p); }, i ? function (e) { d || i(e); } : void 0, g, c ); }, g); } else m(); return p; }), (e.IsFileURL = function () { return "file:" === location.protocol; }), (e.DefaultRetryStrategy = c.a.ExponentialBackoff()), (e.BaseUrl = ""), (e.CorsBehavior = "anonymous"), (e.PreprocessUrl = function (e) { return e; }), e ); })(); (h.a._FileToolsLoadImage = g.LoadImage.bind(g)), (h.a._FileToolsLoadFile = g.LoadFile.bind(g)), (d.a._FileToolsLoadFile = g.LoadFile.bind(g)); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(2), r = n(10), o = n(8), a = (n(225), n(112)), s = (function (e) { function t(t, n, i, r, s, c) { void 0 === i && (i = null), void 0 === s && (s = 3), void 0 === c && (c = 5); var l = e.call(this, null, i, !r, void 0, s, void 0, void 0, void 0, void 0, c) || this; (l.name = t), (l._engine = l.getScene().getEngine()), (l.wrapU = o.a.CLAMP_ADDRESSMODE), (l.wrapV = o.a.CLAMP_ADDRESSMODE), (l._generateMipMaps = r), n.getContext ? ((l._canvas = n), (l._texture = l._engine.createDynamicTexture(n.width, n.height, r, s))) : ((l._canvas = a.a.CreateCanvas(1, 1)), n.width || 0 === n.width ? (l._texture = l._engine.createDynamicTexture(n.width, n.height, r, s)) : (l._texture = l._engine.createDynamicTexture(n, n, r, s))); var u = l.getSize(); return (l._canvas.width = u.width), (l._canvas.height = u.height), (l._context = l._canvas.getContext("2d")), l; } return ( Object(i.d)(t, e), (t.prototype.getClassName = function () { return "DynamicTexture"; }), Object.defineProperty(t.prototype, "canRescale", { get: function () { return !0; }, enumerable: !0, configurable: !0, }), (t.prototype._recreate = function (e) { (this._canvas.width = e.width), (this._canvas.height = e.height), this.releaseInternalTexture(), (this._texture = this._engine.createDynamicTexture(e.width, e.height, this._generateMipMaps, this.samplingMode)); }), (t.prototype.scale = function (e) { var t = this.getSize(); (t.width *= e), (t.height *= e), this._recreate(t); }), (t.prototype.scaleTo = function (e, t) { var n = this.getSize(); (n.width = e), (n.height = t), this._recreate(n); }), (t.prototype.getContext = function () { return this._context; }), (t.prototype.clear = function () { var e = this.getSize(); this._context.fillRect(0, 0, e.width, e.height); }), (t.prototype.update = function (e, t) { void 0 === t && (t = !1), this._engine.updateDynamicTexture(this._texture, this._canvas, void 0 === e || e, t, this._format || void 0); }), (t.prototype.drawText = function (e, t, n, i, r, o, a, s) { void 0 === s && (s = !0); var c = this.getSize(); if ((o && ((this._context.fillStyle = o), this._context.fillRect(0, 0, c.width, c.height)), (this._context.font = i), null == t)) { var l = this._context.measureText(e); t = (c.width - l.width) / 2; } if (null == n) { var u = parseInt(i.replace(/\D/g, "")); n = c.height / 2 + u / 3.65; } (this._context.fillStyle = r), this._context.fillText(e, t, n), s && this.update(a); }), (t.prototype.clone = function () { var e = this.getScene(); if (!e) return this; var n = this.getSize(), i = new t(this.name, n, e, this._generateMipMaps); return (i.hasAlpha = this.hasAlpha), (i.level = this.level), (i.wrapU = this.wrapU), (i.wrapV = this.wrapV), i; }), (t.prototype.serialize = function () { var t = this.getScene(); t && !t.isReady() && r.a.Warn("The scene must be ready before serializing the dynamic texture"); var n = e.prototype.serialize.call(this); return this._canvas.toDataURL && (n.base64String = this._canvas.toDataURL()), (n.invertY = this._invertY), (n.samplingMode = this.samplingMode), n; }), (t.prototype._rebuild = function () { this.update(); }), t ); })(o.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(56), r = (function () { function e() {} return ( Object.defineProperty(e, "Now", { get: function () { return i.a.IsWindowObjectExist() && window.performance && window.performance.now ? window.performance.now() : Date.now(); }, enumerable: !0, configurable: !0, }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e(e, t, n, i) { (this.x = e), (this.y = t), (this.width = n), (this.height = i); } return ( (e.prototype.toGlobal = function (t, n) { return new e(this.x * t, this.y * n, this.width * t, this.height * n); }), (e.prototype.toGlobalToRef = function (e, t, n) { return (n.x = this.x * e), (n.y = this.y * t), (n.width = this.width * e), (n.height = this.height * t), this; }), (e.prototype.clone = function () { return new e(this.x, this.y, this.width, this.height); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }), n.d(t, "b", function () { return l; }); var i = n(2), r = n(4), o = n(153), a = n(63), s = n(161), c = (function () { function e() { (this._materialDefines = null), (this._materialEffect = null); } return ( Object.defineProperty(e.prototype, "materialDefines", { get: function () { return this._materialDefines; }, set: function (e) { this._materialDefines = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "effect", { get: function () { return this._materialEffect; }, enumerable: !0, configurable: !0, }), (e.prototype.setEffect = function (e, t) { void 0 === t && (t = null), this._materialEffect !== e ? ((this._materialDefines = t), (this._materialEffect = e)) : e || (this._materialDefines = null); }), e ); })(), l = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === c && (c = !0); var l = e.call(this) || this; return ( (l.materialIndex = t), (l.verticesStart = n), (l.verticesCount = i), (l.indexStart = r), (l.indexCount = o), (l._linesIndexCount = 0), (l._linesIndexBuffer = null), (l._lastColliderWorldVertices = null), (l._lastColliderTransformMatrix = null), (l._renderId = 0), (l._alphaIndex = 0), (l._distanceToCamera = 0), (l._currentMaterial = null), (l._mesh = a), (l._renderingMesh = s || a), a.subMeshes.push(l), (l._trianglePlanes = []), (l._id = a.subMeshes.length - 1), c && (l.refreshBoundingInfo(), a.computeWorldMatrix(!0)), l ); } return ( Object(i.d)(t, e), (t.AddToMesh = function (e, n, i, r, o, a, s, c) { return void 0 === c && (c = !0), new t(e, n, i, r, o, a, s, c); }), Object.defineProperty(t.prototype, "IsGlobal", { get: function () { return 0 === this.verticesStart && this.verticesCount === this._mesh.getTotalVertices(); }, enumerable: !0, configurable: !0, }), (t.prototype.getBoundingInfo = function () { return this.IsGlobal ? this._mesh.getBoundingInfo() : this._boundingInfo; }), (t.prototype.setBoundingInfo = function (e) { return (this._boundingInfo = e), this; }), (t.prototype.getMesh = function () { return this._mesh; }), (t.prototype.getRenderingMesh = function () { return this._renderingMesh; }), (t.prototype.getMaterial = function () { var e = this._renderingMesh.material; if (null == e) return this._mesh.getScene().defaultMaterial; if (e.getSubMaterial) { var t = e.getSubMaterial(this.materialIndex); return this._currentMaterial !== t && ((this._currentMaterial = t), (this._materialDefines = null)), t; } return e; }), (t.prototype.refreshBoundingInfo = function (e) { if ((void 0 === e && (e = null), (this._lastColliderWorldVertices = null), this.IsGlobal || !this._renderingMesh || !this._renderingMesh.geometry)) return this; if ((e || (e = this._renderingMesh.getVerticesData(r.b.PositionKind)), !e)) return (this._boundingInfo = this._mesh.getBoundingInfo()), this; var t, n = this._renderingMesh.getIndices(); if (0 === this.indexStart && this.indexCount === n.length) { var i = this._renderingMesh.getBoundingInfo(); t = { minimum: i.minimum.clone(), maximum: i.maximum.clone() }; } else t = Object(s.b)(e, n, this.indexStart, this.indexCount, this._renderingMesh.geometry.boundingBias); return this._boundingInfo ? this._boundingInfo.reConstruct(t.minimum, t.maximum) : (this._boundingInfo = new a.a(t.minimum, t.maximum)), this; }), (t.prototype._checkCollision = function (e) { return this.getBoundingInfo()._checkCollision(e); }), (t.prototype.updateBoundingInfo = function (e) { var t = this.getBoundingInfo(); return t || (this.refreshBoundingInfo(), (t = this.getBoundingInfo())), t && t.update(e), this; }), (t.prototype.isInFrustum = function (e) { var t = this.getBoundingInfo(); return !!t && t.isInFrustum(e, this._mesh.cullingStrategy); }), (t.prototype.isCompletelyInFrustum = function (e) { var t = this.getBoundingInfo(); return !!t && t.isCompletelyInFrustum(e); }), (t.prototype.render = function (e) { return this._renderingMesh.render(this, e, this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh ? this._mesh : void 0), this; }), (t.prototype._getLinesIndexBuffer = function (e, t) { if (!this._linesIndexBuffer) { for (var n = [], i = this.indexStart; i < this.indexStart + this.indexCount; i += 3) n.push(e[i], e[i + 1], e[i + 1], e[i + 2], e[i + 2], e[i]); (this._linesIndexBuffer = t.createIndexBuffer(n)), (this._linesIndexCount = n.length); } return this._linesIndexBuffer; }), (t.prototype.canIntersects = function (e) { var t = this.getBoundingInfo(); return !!t && e.intersectsBox(t.boundingBox); }), (t.prototype.intersects = function (e, t, n, i, r) { var o = this.getMaterial(); if (!o) return null; var a = 3, s = !1; switch (o.fillMode) { case 3: case 4: case 5: case 6: case 8: return null; case 7: (a = 1), (s = !0); } return "InstancedLinesMesh" === this._mesh.getClassName() || "LinesMesh" === this._mesh.getClassName() ? n.length ? this._intersectLines(e, t, n, this._mesh.intersectionThreshold, i) : this._intersectUnIndexedLines(e, t, n, this._mesh.intersectionThreshold, i) : !n.length && this._mesh._unIndexed ? this._intersectUnIndexedTriangles(e, t, n, i, r) : this._intersectTriangles(e, t, n, a, s, i, r); }), (t.prototype._intersectLines = function (e, t, n, i, r) { for (var a = null, s = this.indexStart; s < this.indexStart + this.indexCount; s += 2) { var c = t[n[s]], l = t[n[s + 1]], u = e.intersectionSegment(c, l, i); if (!(u < 0) && (r || !a || u < a.distance) && (((a = new o.a(null, null, u)).faceId = s / 2), r)) break; } return a; }), (t.prototype._intersectUnIndexedLines = function (e, t, n, i, r) { for (var a = null, s = this.verticesStart; s < this.verticesStart + this.verticesCount; s += 2) { var c = t[s], l = t[s + 1], u = e.intersectionSegment(c, l, i); if (!(u < 0) && (r || !a || u < a.distance) && (((a = new o.a(null, null, u)).faceId = s / 2), r)) break; } return a; }), (t.prototype._intersectTriangles = function (e, t, n, i, r, o, a) { for (var s = null, c = -1, l = this.indexStart; l < this.indexStart + this.indexCount; l += i) { c++; var u = n[l], h = n[l + 1], d = n[l + 2]; if (r && 4294967295 === d) l += 2; else { var p = t[u], f = t[h], m = t[d]; if (!a || a(p, f, m, e)) { var g = e.intersectsTriangle(p, f, m); if (g) { if (g.distance < 0) continue; if ((o || !s || g.distance < s.distance) && (((s = g).faceId = c), o)) break; } } } } return s; }), (t.prototype._intersectUnIndexedTriangles = function (e, t, n, i, r) { for (var o = null, a = this.verticesStart; a < this.verticesStart + this.verticesCount; a += 3) { var s = t[a], c = t[a + 1], l = t[a + 2]; if (!r || r(s, c, l, e)) { var u = e.intersectsTriangle(s, c, l); if (u) { if (u.distance < 0) continue; if ((i || !o || u.distance < o.distance) && (((o = u).faceId = a / 3), i)) break; } } } return o; }), (t.prototype._rebuild = function () { this._linesIndexBuffer && (this._linesIndexBuffer = null); }), (t.prototype.clone = function (e, n) { var i = new t(this.materialIndex, this.verticesStart, this.verticesCount, this.indexStart, this.indexCount, e, n, !1); if (!this.IsGlobal) { var r = this.getBoundingInfo(); if (!r) return i; i._boundingInfo = new a.a(r.minimum, r.maximum); } return i; }), (t.prototype.dispose = function () { this._linesIndexBuffer && (this._mesh.getScene().getEngine()._releaseBuffer(this._linesIndexBuffer), (this._linesIndexBuffer = null)); var e = this._mesh.subMeshes.indexOf(this); this._mesh.subMeshes.splice(e, 1); }), (t.prototype.getClassName = function () { return "SubMesh"; }), (t.CreateFromIndices = function (e, n, i, r, o) { for (var a = Number.MAX_VALUE, s = -Number.MAX_VALUE, c = (o || r).getIndices(), l = n; l < n + i; l++) { var u = c[l]; u < a && (a = u), u > s && (s = u); } return new t(e, a, s - a + 1, n, i, r, o); }), t ); })(c); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return p; }); var i = n(1), r = n(5), o = n(16), a = n(4), s = n(78), c = n(103), l = n(63), u = n(12), h = n(45), d = n(161), p = (function () { function e(e, t, n, i, r) { void 0 === i && (i = !1), void 0 === r && (r = null), (this.delayLoadState = 0), (this._totalVertices = 0), (this._isDisposed = !1), (this._indexBufferIsUpdatable = !1), (this.id = e), (this.uniqueId = t.getUniqueId()), (this._engine = t.getEngine()), (this._meshes = []), (this._scene = t), (this._vertexBuffers = {}), (this._indices = []), (this._updatable = i), n ? this.setAllVerticesData(n, i) : ((this._totalVertices = 0), (this._indices = [])), this._engine.getCaps().vertexArrayObject && (this._vertexArrayObjects = {}), r && (this.applyToMesh(r), r.computeWorldMatrix(!0)); } return ( Object.defineProperty(e.prototype, "boundingBias", { get: function () { return this._boundingBias; }, set: function (e) { this._boundingBias ? this._boundingBias.copyFrom(e) : (this._boundingBias = e.clone()), this._updateBoundingInfo(!0, null); }, enumerable: !0, configurable: !0, }), (e.CreateGeometryForMesh = function (t) { var n = new e(e.RandomId(), t.getScene()); return n.applyToMesh(t), n; }), Object.defineProperty(e.prototype, "extend", { get: function () { return this._extend; }, enumerable: !0, configurable: !0, }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype.getEngine = function () { return this._engine; }), (e.prototype.isReady = function () { return 1 === this.delayLoadState || 0 === this.delayLoadState; }), Object.defineProperty(e.prototype, "doNotSerialize", { get: function () { for (var e = 0; e < this._meshes.length; e++) if (!this._meshes[e].doNotSerialize) return !1; return !0; }, enumerable: !0, configurable: !0, }), (e.prototype._rebuild = function () { for (var e in (this._vertexArrayObjects && (this._vertexArrayObjects = {}), 0 !== this._meshes.length && this._indices && (this._indexBuffer = this._engine.createIndexBuffer(this._indices)), this._vertexBuffers)) { this._vertexBuffers[e]._rebuild(); } }), (e.prototype.setAllVerticesData = function (e, t) { e.applyToGeometry(this, t), this.notifyUpdate(); }), (e.prototype.setVerticesData = function (e, t, n, i) { void 0 === n && (n = !1); var r = new a.b(this._engine, t, e, n, 0 === this._meshes.length, i); this.setVerticesBuffer(r); }), (e.prototype.removeVerticesData = function (e) { this._vertexBuffers[e] && (this._vertexBuffers[e].dispose(), delete this._vertexBuffers[e]); }), (e.prototype.setVerticesBuffer = function (e, t) { void 0 === t && (t = null); var n = e.getKind(); if ((this._vertexBuffers[n] && this._vertexBuffers[n].dispose(), (this._vertexBuffers[n] = e), n === a.b.PositionKind)) { var i = e.getData(); null != t ? (this._totalVertices = t) : null != i && (this._totalVertices = i.length / (e.byteStride / 4)), this._updateExtend(i), this._resetPointsArrayCache(); for (var r = this._meshes, o = r.length, s = 0; s < o; s++) { var c = r[s]; (c._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)), c._createGlobalSubMesh(!1), c.computeWorldMatrix(!0); } } this.notifyUpdate(n), this._vertexArrayObjects && (this._disposeVertexArrayObjects(), (this._vertexArrayObjects = {})); }), (e.prototype.updateVerticesDataDirectly = function (e, t, n, i) { void 0 === i && (i = !1); var r = this.getVertexBuffer(e); r && (r.updateDirectly(t, n, i), this.notifyUpdate(e)); }), (e.prototype.updateVerticesData = function (e, t, n) { void 0 === n && (n = !1); var i = this.getVertexBuffer(e); i && (i.update(t), e === a.b.PositionKind && this._updateBoundingInfo(n, t), this.notifyUpdate(e)); }), (e.prototype._updateBoundingInfo = function (e, t) { if ((e && this._updateExtend(t), this._resetPointsArrayCache(), e)) for (var n = 0, i = this._meshes; n < i.length; n++) { var r = i[n]; r._boundingInfo ? r._boundingInfo.reConstruct(this._extend.minimum, this._extend.maximum) : (r._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)); for (var o = 0, a = r.subMeshes; o < a.length; o++) { a[o].refreshBoundingInfo(); } } }), (e.prototype._bind = function (e, t) { if (e) { void 0 === t && (t = this._indexBuffer); var n = this.getVertexBuffers(); n && (t == this._indexBuffer && this._vertexArrayObjects ? (this._vertexArrayObjects[e.key] || (this._vertexArrayObjects[e.key] = this._engine.recordVertexArrayObject(n, t, e)), this._engine.bindVertexArrayObject(this._vertexArrayObjects[e.key], t)) : this._engine.bindBuffers(n, t, e)); } }), (e.prototype.getTotalVertices = function () { return this.isReady() ? this._totalVertices : 0; }), (e.prototype.getVerticesData = function (e, t, n) { var i = this.getVertexBuffer(e); if (!i) return null; var r = i.getData(); if (!r) return null; var o = i.getSize() * a.b.GetTypeByteLength(i.type), s = this._totalVertices * i.getSize(); if (i.type !== a.b.FLOAT || i.byteStride !== o) { var c = []; return ( i.forEach(s, function (e) { return c.push(e); }), c ); } if (!(r instanceof Array || r instanceof Float32Array) || 0 !== i.byteOffset || r.length !== s) { if (r instanceof Array) { var l = i.byteOffset / 4; return u.b.Slice(r, l, l + s); } if (r instanceof ArrayBuffer) return new Float32Array(r, i.byteOffset, s); l = r.byteOffset + i.byteOffset; if (n || (t && 1 !== this._meshes.length)) { var h = new Float32Array(s), d = new Float32Array(r.buffer, l, s); return h.set(d), h; } return new Float32Array(r.buffer, l, s); } return n || (t && 1 !== this._meshes.length) ? u.b.Slice(r) : r; }), (e.prototype.isVertexBufferUpdatable = function (e) { var t = this._vertexBuffers[e]; return !!t && t.isUpdatable(); }), (e.prototype.getVertexBuffer = function (e) { return this.isReady() ? this._vertexBuffers[e] : null; }), (e.prototype.getVertexBuffers = function () { return this.isReady() ? this._vertexBuffers : null; }), (e.prototype.isVerticesDataPresent = function (e) { return this._vertexBuffers ? void 0 !== this._vertexBuffers[e] : !!this._delayInfo && -1 !== this._delayInfo.indexOf(e); }), (e.prototype.getVerticesDataKinds = function () { var e, t = []; if (!this._vertexBuffers && this._delayInfo) for (e in this._delayInfo) t.push(e); else for (e in this._vertexBuffers) t.push(e); return t; }), (e.prototype.updateIndices = function (e, t, n) { if ((void 0 === n && (n = !1), this._indexBuffer)) if (this._indexBufferIsUpdatable) { var i = e.length !== this._indices.length; if ((n || (this._indices = e.slice()), this._engine.updateDynamicIndexBuffer(this._indexBuffer, e, t), i)) for (var r = 0, o = this._meshes; r < o.length; r++) { o[r]._createGlobalSubMesh(!0); } } else this.setIndices(e, null, !0); }), (e.prototype.setIndices = function (e, t, n) { void 0 === t && (t = null), void 0 === n && (n = !1), this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer), this._disposeVertexArrayObjects(), (this._indices = e), (this._indexBufferIsUpdatable = n), 0 !== this._meshes.length && this._indices && (this._indexBuffer = this._engine.createIndexBuffer(this._indices, n)), null != t && (this._totalVertices = t); for (var i = 0, r = this._meshes; i < r.length; i++) { r[i]._createGlobalSubMesh(!0); } this.notifyUpdate(); }), (e.prototype.getTotalIndices = function () { return this.isReady() ? this._indices.length : 0; }), (e.prototype.getIndices = function (e, t) { if (!this.isReady()) return null; var n = this._indices; if (t || (e && 1 !== this._meshes.length)) { for (var i = n.length, r = [], o = 0; o < i; o++) r.push(n[o]); return r; } return n; }), (e.prototype.getIndexBuffer = function () { return this.isReady() ? this._indexBuffer : null; }), (e.prototype._releaseVertexArrayObject = function (e) { void 0 === e && (e = null), e && this._vertexArrayObjects && this._vertexArrayObjects[e.key] && (this._engine.releaseVertexArrayObject(this._vertexArrayObjects[e.key]), delete this._vertexArrayObjects[e.key]); }), (e.prototype.releaseForMesh = function (e, t) { var n = this._meshes, i = n.indexOf(e); -1 !== i && (n.splice(i, 1), (e._geometry = null), 0 === n.length && t && this.dispose()); }), (e.prototype.applyToMesh = function (e) { if (e._geometry !== this) { var t = e._geometry; t && t.releaseForMesh(e); var n = this._meshes; (e._geometry = this), this._scene.pushGeometry(this), n.push(e), this.isReady() ? this._applyToMesh(e) : (e._boundingInfo = this._boundingInfo); } }), (e.prototype._updateExtend = function (e) { void 0 === e && (e = null), e || (e = this.getVerticesData(a.b.PositionKind)), (this._extend = Object(d.a)(e, 0, this._totalVertices, this.boundingBias, 3)); }), (e.prototype._applyToMesh = function (e) { var t = this._meshes.length; for (var n in this._vertexBuffers) { 1 === t && this._vertexBuffers[n].create(); var i = this._vertexBuffers[n].getBuffer(); i && (i.references = t), n === a.b.PositionKind && (this._extend || this._updateExtend(), (e._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)), e._createGlobalSubMesh(!1), e._updateBoundingInfo()); } 1 === t && this._indices && this._indices.length > 0 && (this._indexBuffer = this._engine.createIndexBuffer(this._indices)), this._indexBuffer && (this._indexBuffer.references = t), e._syncGeometryWithMorphTargetManager(), e.synchronizeInstances(); }), (e.prototype.notifyUpdate = function (e) { this.onGeometryUpdated && this.onGeometryUpdated(this, e); for (var t = 0, n = this._meshes; t < n.length; t++) { n[t]._markSubMeshesAsAttributesDirty(); } }), (e.prototype.load = function (e, t) { 2 !== this.delayLoadState && (this.isReady() ? t && t() : ((this.delayLoadState = 2), this._queueLoad(e, t))); }), (e.prototype._queueLoad = function (e, t) { var n = this; this.delayLoadingFile && (e._addPendingData(this), e._loadFile( this.delayLoadingFile, function (i) { if (n._delayLoadingFunction) { n._delayLoadingFunction(JSON.parse(i), n), (n.delayLoadState = 1), (n._delayInfo = []), e._removePendingData(n); for (var r = n._meshes, o = r.length, a = 0; a < o; a++) n._applyToMesh(r[a]); t && t(); } }, void 0, !0 )); }), (e.prototype.toLeftHanded = function () { var e = this.getIndices(!1); if (null != e && e.length > 0) { for (var t = 0; t < e.length; t += 3) { var n = e[t + 0]; (e[t + 0] = e[t + 2]), (e[t + 2] = n); } this.setIndices(e); } var i = this.getVerticesData(a.b.PositionKind, !1); if (null != i && i.length > 0) { for (t = 0; t < i.length; t += 3) i[t + 2] = -i[t + 2]; this.setVerticesData(a.b.PositionKind, i, !1); } var r = this.getVerticesData(a.b.NormalKind, !1); if (null != r && r.length > 0) { for (t = 0; t < r.length; t += 3) r[t + 2] = -r[t + 2]; this.setVerticesData(a.b.NormalKind, r, !1); } }), (e.prototype._resetPointsArrayCache = function () { this._positions = null; }), (e.prototype._generatePointsArray = function () { if (this._positions) return !0; var e = this.getVerticesData(a.b.PositionKind); if (!e || 0 === e.length) return !1; this._positions = []; for (var t = 0; t < e.length; t += 3) this._positions.push(i.e.FromArray(e, t)); return !0; }), (e.prototype.isDisposed = function () { return this._isDisposed; }), (e.prototype._disposeVertexArrayObjects = function () { if (this._vertexArrayObjects) { for (var e in this._vertexArrayObjects) this._engine.releaseVertexArrayObject(this._vertexArrayObjects[e]); this._vertexArrayObjects = {}; } }), (e.prototype.dispose = function () { var e, t = this._meshes, n = t.length; for (e = 0; e < n; e++) this.releaseForMesh(t[e]); for (var i in ((this._meshes = []), this._disposeVertexArrayObjects(), this._vertexBuffers)) this._vertexBuffers[i].dispose(); (this._vertexBuffers = {}), (this._totalVertices = 0), this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer), (this._indexBuffer = null), (this._indices = []), (this.delayLoadState = 0), (this.delayLoadingFile = null), (this._delayLoadingFunction = null), (this._delayInfo = []), (this._boundingInfo = null), this._scene.removeGeometry(this), (this._isDisposed = !0); }), (e.prototype.copy = function (t) { var n = new o.a(); n.indices = []; var i = this.getIndices(); if (i) for (var r = 0; r < i.length; r++) n.indices.push(i[r]); var a, s = !1, c = !1; for (a in this._vertexBuffers) { var u = this.getVerticesData(a); if (u && (u instanceof Float32Array ? n.set(new Float32Array(u), a) : n.set(u.slice(0), a), !c)) { var h = this.getVertexBuffer(a); h && (c = !(s = h.isUpdatable())); } } var d = new e(t, this._scene, n, s); for (a in ((d.delayLoadState = this.delayLoadState), (d.delayLoadingFile = this.delayLoadingFile), (d._delayLoadingFunction = this._delayLoadingFunction), this._delayInfo)) (d._delayInfo = d._delayInfo || []), d._delayInfo.push(a); return (d._boundingInfo = new l.a(this._extend.minimum, this._extend.maximum)), d; }), (e.prototype.serialize = function () { var e = {}; return (e.id = this.id), (e.updatable = this._updatable), h.a && h.a.HasTags(this) && (e.tags = h.a.GetTags(this)), e; }), (e.prototype.toNumberArray = function (e) { return Array.isArray(e) ? e : Array.prototype.slice.call(e); }), (e.prototype.serializeVerticeData = function () { var e = this.serialize(); return ( this.isVerticesDataPresent(a.b.PositionKind) && ((e.positions = this.toNumberArray(this.getVerticesData(a.b.PositionKind))), this.isVertexBufferUpdatable(a.b.PositionKind) && (e.positions._updatable = !0)), this.isVerticesDataPresent(a.b.NormalKind) && ((e.normals = this.toNumberArray(this.getVerticesData(a.b.NormalKind))), this.isVertexBufferUpdatable(a.b.NormalKind) && (e.normals._updatable = !0)), this.isVerticesDataPresent(a.b.TangentKind) && ((e.tangets = this.toNumberArray(this.getVerticesData(a.b.TangentKind))), this.isVertexBufferUpdatable(a.b.TangentKind) && (e.tangets._updatable = !0)), this.isVerticesDataPresent(a.b.UVKind) && ((e.uvs = this.toNumberArray(this.getVerticesData(a.b.UVKind))), this.isVertexBufferUpdatable(a.b.UVKind) && (e.uvs._updatable = !0)), this.isVerticesDataPresent(a.b.UV2Kind) && ((e.uv2s = this.toNumberArray(this.getVerticesData(a.b.UV2Kind))), this.isVertexBufferUpdatable(a.b.UV2Kind) && (e.uv2s._updatable = !0)), this.isVerticesDataPresent(a.b.UV3Kind) && ((e.uv3s = this.toNumberArray(this.getVerticesData(a.b.UV3Kind))), this.isVertexBufferUpdatable(a.b.UV3Kind) && (e.uv3s._updatable = !0)), this.isVerticesDataPresent(a.b.UV4Kind) && ((e.uv4s = this.toNumberArray(this.getVerticesData(a.b.UV4Kind))), this.isVertexBufferUpdatable(a.b.UV4Kind) && (e.uv4s._updatable = !0)), this.isVerticesDataPresent(a.b.UV5Kind) && ((e.uv5s = this.toNumberArray(this.getVerticesData(a.b.UV5Kind))), this.isVertexBufferUpdatable(a.b.UV5Kind) && (e.uv5s._updatable = !0)), this.isVerticesDataPresent(a.b.UV6Kind) && ((e.uv6s = this.toNumberArray(this.getVerticesData(a.b.UV6Kind))), this.isVertexBufferUpdatable(a.b.UV6Kind) && (e.uv6s._updatable = !0)), this.isVerticesDataPresent(a.b.ColorKind) && ((e.colors = this.toNumberArray(this.getVerticesData(a.b.ColorKind))), this.isVertexBufferUpdatable(a.b.ColorKind) && (e.colors._updatable = !0)), this.isVerticesDataPresent(a.b.MatricesIndicesKind) && ((e.matricesIndices = this.toNumberArray(this.getVerticesData(a.b.MatricesIndicesKind))), (e.matricesIndices._isExpanded = !0), this.isVertexBufferUpdatable(a.b.MatricesIndicesKind) && (e.matricesIndices._updatable = !0)), this.isVerticesDataPresent(a.b.MatricesWeightsKind) && ((e.matricesWeights = this.toNumberArray(this.getVerticesData(a.b.MatricesWeightsKind))), this.isVertexBufferUpdatable(a.b.MatricesWeightsKind) && (e.matricesWeights._updatable = !0)), (e.indices = this.toNumberArray(this.getIndices())), e ); }), (e.ExtractFromMesh = function (e, t) { var n = e._geometry; return n ? n.copy(t) : null; }), (e.RandomId = function () { return u.b.RandomId(); }), (e._ImportGeometry = function (t, n) { var i = n.getScene(), o = t.geometryId; if (o) { var c = i.getGeometryByID(o); c && c.applyToMesh(n); } else if (t instanceof ArrayBuffer) { var l = n._binaryInfo; if (l.positionsAttrDesc && l.positionsAttrDesc.count > 0) { var u = new Float32Array(t, l.positionsAttrDesc.offset, l.positionsAttrDesc.count); n.setVerticesData(a.b.PositionKind, u, !1); } if (l.normalsAttrDesc && l.normalsAttrDesc.count > 0) { var h = new Float32Array(t, l.normalsAttrDesc.offset, l.normalsAttrDesc.count); n.setVerticesData(a.b.NormalKind, h, !1); } if (l.tangetsAttrDesc && l.tangetsAttrDesc.count > 0) { var d = new Float32Array(t, l.tangetsAttrDesc.offset, l.tangetsAttrDesc.count); n.setVerticesData(a.b.TangentKind, d, !1); } if (l.uvsAttrDesc && l.uvsAttrDesc.count > 0) { var p = new Float32Array(t, l.uvsAttrDesc.offset, l.uvsAttrDesc.count); n.setVerticesData(a.b.UVKind, p, !1); } if (l.uvs2AttrDesc && l.uvs2AttrDesc.count > 0) { var f = new Float32Array(t, l.uvs2AttrDesc.offset, l.uvs2AttrDesc.count); n.setVerticesData(a.b.UV2Kind, f, !1); } if (l.uvs3AttrDesc && l.uvs3AttrDesc.count > 0) { var m = new Float32Array(t, l.uvs3AttrDesc.offset, l.uvs3AttrDesc.count); n.setVerticesData(a.b.UV3Kind, m, !1); } if (l.uvs4AttrDesc && l.uvs4AttrDesc.count > 0) { var g = new Float32Array(t, l.uvs4AttrDesc.offset, l.uvs4AttrDesc.count); n.setVerticesData(a.b.UV4Kind, g, !1); } if (l.uvs5AttrDesc && l.uvs5AttrDesc.count > 0) { var b = new Float32Array(t, l.uvs5AttrDesc.offset, l.uvs5AttrDesc.count); n.setVerticesData(a.b.UV5Kind, b, !1); } if (l.uvs6AttrDesc && l.uvs6AttrDesc.count > 0) { var _ = new Float32Array(t, l.uvs6AttrDesc.offset, l.uvs6AttrDesc.count); n.setVerticesData(a.b.UV6Kind, _, !1); } if (l.colorsAttrDesc && l.colorsAttrDesc.count > 0) { var v = new Float32Array(t, l.colorsAttrDesc.offset, l.colorsAttrDesc.count); n.setVerticesData(a.b.ColorKind, v, !1, l.colorsAttrDesc.stride); } if (l.matricesIndicesAttrDesc && l.matricesIndicesAttrDesc.count > 0) { for (var y = new Int32Array(t, l.matricesIndicesAttrDesc.offset, l.matricesIndicesAttrDesc.count), C = [], P = 0; P < y.length; P++) { var x = y[P]; C.push(255 & x), C.push((65280 & x) >> 8), C.push((16711680 & x) >> 16), C.push(x >> 24); } n.setVerticesData(a.b.MatricesIndicesKind, C, !1); } if (l.matricesWeightsAttrDesc && l.matricesWeightsAttrDesc.count > 0) { var T = new Float32Array(t, l.matricesWeightsAttrDesc.offset, l.matricesWeightsAttrDesc.count); n.setVerticesData(a.b.MatricesWeightsKind, T, !1); } if (l.indicesAttrDesc && l.indicesAttrDesc.count > 0) { var S = new Int32Array(t, l.indicesAttrDesc.offset, l.indicesAttrDesc.count); n.setIndices(S, null); } if (l.subMeshesAttrDesc && l.subMeshesAttrDesc.count > 0) { var O = new Int32Array(t, l.subMeshesAttrDesc.offset, 5 * l.subMeshesAttrDesc.count); n.subMeshes = []; for (P = 0; P < l.subMeshesAttrDesc.count; P++) { var E = O[5 * P + 0], M = O[5 * P + 1], A = O[5 * P + 2], I = O[5 * P + 3], D = O[5 * P + 4]; s.b.AddToMesh(E, M, A, I, D, n); } } } else if (t.positions && t.normals && t.indices) { if ( (n.setVerticesData(a.b.PositionKind, t.positions, t.positions._updatable), n.setVerticesData(a.b.NormalKind, t.normals, t.normals._updatable), t.tangents && n.setVerticesData(a.b.TangentKind, t.tangents, t.tangents._updatable), t.uvs && n.setVerticesData(a.b.UVKind, t.uvs, t.uvs._updatable), t.uvs2 && n.setVerticesData(a.b.UV2Kind, t.uvs2, t.uvs2._updatable), t.uvs3 && n.setVerticesData(a.b.UV3Kind, t.uvs3, t.uvs3._updatable), t.uvs4 && n.setVerticesData(a.b.UV4Kind, t.uvs4, t.uvs4._updatable), t.uvs5 && n.setVerticesData(a.b.UV5Kind, t.uvs5, t.uvs5._updatable), t.uvs6 && n.setVerticesData(a.b.UV6Kind, t.uvs6, t.uvs6._updatable), t.colors && n.setVerticesData(a.b.ColorKind, r.b.CheckColors4(t.colors, t.positions.length / 3), t.colors._updatable), t.matricesIndices) ) if (t.matricesIndices._isExpanded) delete t.matricesIndices._isExpanded, n.setVerticesData(a.b.MatricesIndicesKind, t.matricesIndices, t.matricesIndices._updatable); else { for (C = [], P = 0; P < t.matricesIndices.length; P++) { var R = t.matricesIndices[P]; C.push(255 & R), C.push((65280 & R) >> 8), C.push((16711680 & R) >> 16), C.push(R >> 24); } n.setVerticesData(a.b.MatricesIndicesKind, C, t.matricesIndices._updatable); } if (t.matricesIndicesExtra) if (t.matricesIndicesExtra._isExpanded) delete t.matricesIndices._isExpanded, n.setVerticesData(a.b.MatricesIndicesExtraKind, t.matricesIndicesExtra, t.matricesIndicesExtra._updatable); else { for (C = [], P = 0; P < t.matricesIndicesExtra.length; P++) { R = t.matricesIndicesExtra[P]; C.push(255 & R), C.push((65280 & R) >> 8), C.push((16711680 & R) >> 16), C.push(R >> 24); } n.setVerticesData(a.b.MatricesIndicesExtraKind, C, t.matricesIndicesExtra._updatable); } t.matricesWeights && (e._CleanMatricesWeights(t, n), n.setVerticesData(a.b.MatricesWeightsKind, t.matricesWeights, t.matricesWeights._updatable)), t.matricesWeightsExtra && n.setVerticesData(a.b.MatricesWeightsExtraKind, t.matricesWeightsExtra, t.matricesWeights._updatable), n.setIndices(t.indices, null); } if (t.subMeshes) { n.subMeshes = []; for (var w = 0; w < t.subMeshes.length; w++) { var L = t.subMeshes[w]; s.b.AddToMesh(L.materialIndex, L.verticesStart, L.verticesCount, L.indexStart, L.indexCount, n); } } n._shouldGenerateFlatShading && (n.convertToFlatShadedMesh(), delete n._shouldGenerateFlatShading), n.computeWorldMatrix(!0), i.onMeshImportedObservable.notifyObservers(n); }), (e._CleanMatricesWeights = function (e, t) { if (c.a.CleanBoneMatrixWeights) { var n = 0; if (e.skeletonId > -1) { var i = t.getScene().getLastSkeletonByID(e.skeletonId); if (i) { n = i.bones.length; for ( var r = t.getVerticesData(a.b.MatricesIndicesKind), o = t.getVerticesData(a.b.MatricesIndicesExtraKind), s = e.matricesWeights, l = e.matricesWeightsExtra, u = e.numBoneInfluencer, h = s.length, d = 0; d < h; d += 4 ) { for (var p = 0, f = -1, m = 0; m < 4; m++) { (p += g = s[d + m]), g < 0.001 && f < 0 && (f = m); } if (l) for (m = 0; m < 4; m++) { var g; (p += g = l[d + m]), g < 0.001 && f < 0 && (f = m + 4); } if (((f < 0 || f > u - 1) && (f = u - 1), p > 0.001)) { var b = 1 / p; for (m = 0; m < 4; m++) s[d + m] *= b; if (l) for (m = 0; m < 4; m++) l[d + m] *= b; } else f >= 4 ? ((l[d + f - 4] = 1 - p), (o[d + f - 4] = n)) : ((s[d + f] = 1 - p), (r[d + f] = n)); } t.setVerticesData(a.b.MatricesIndicesKind, r), e.matricesWeightsExtra && t.setVerticesData(a.b.MatricesIndicesExtraKind, o); } } } }), (e.Parse = function (t, n, r) { if (n.getGeometryByID(t.id)) return null; var s = new e(t.id, n, void 0, t.updatable); return ( h.a && h.a.AddTagsTo(s, t.tags), t.delayLoadingFile ? ((s.delayLoadState = 4), (s.delayLoadingFile = r + t.delayLoadingFile), (s._boundingInfo = new l.a(i.e.FromArray(t.boundingBoxMinimum), i.e.FromArray(t.boundingBoxMaximum))), (s._delayInfo = []), t.hasUVs && s._delayInfo.push(a.b.UVKind), t.hasUVs2 && s._delayInfo.push(a.b.UV2Kind), t.hasUVs3 && s._delayInfo.push(a.b.UV3Kind), t.hasUVs4 && s._delayInfo.push(a.b.UV4Kind), t.hasUVs5 && s._delayInfo.push(a.b.UV5Kind), t.hasUVs6 && s._delayInfo.push(a.b.UV6Kind), t.hasColors && s._delayInfo.push(a.b.ColorKind), t.hasMatricesIndices && s._delayInfo.push(a.b.MatricesIndicesKind), t.hasMatricesWeights && s._delayInfo.push(a.b.MatricesWeightsKind), (s._delayLoadingFunction = o.a.ImportVertexData)) : o.a.ImportVertexData(t, s), n.pushGeometry(s, !0), s ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.ALPHA_DISABLE = 0), (e.ALPHA_ADD = 1), (e.ALPHA_COMBINE = 2), (e.ALPHA_SUBTRACT = 3), (e.ALPHA_MULTIPLY = 4), (e.ALPHA_MAXIMIZED = 5), (e.ALPHA_ONEONE = 6), (e.ALPHA_PREMULTIPLIED = 7), (e.ALPHA_PREMULTIPLIED_PORTERDUFF = 8), (e.ALPHA_INTERPOLATE = 9), (e.ALPHA_SCREENMODE = 10), (e.ALPHA_ONEONE_ONEONE = 11), (e.ALPHA_ALPHATOCOLOR = 12), (e.ALPHA_REVERSEONEMINUS = 13), (e.ALPHA_SRC_DSTONEMINUSSRCALPHA = 14), (e.ALPHA_ONEONE_ONEZERO = 15), (e.ALPHA_EXCLUSION = 16), (e.ALPHA_EQUATION_ADD = 0), (e.ALPHA_EQUATION_SUBSTRACT = 1), (e.ALPHA_EQUATION_REVERSE_SUBTRACT = 2), (e.ALPHA_EQUATION_MAX = 3), (e.ALPHA_EQUATION_MIN = 4), (e.ALPHA_EQUATION_DARKEN = 5), (e.DELAYLOADSTATE_NONE = 0), (e.DELAYLOADSTATE_LOADED = 1), (e.DELAYLOADSTATE_LOADING = 2), (e.DELAYLOADSTATE_NOTLOADED = 4), (e.NEVER = 512), (e.ALWAYS = 519), (e.LESS = 513), (e.EQUAL = 514), (e.LEQUAL = 515), (e.GREATER = 516), (e.GEQUAL = 518), (e.NOTEQUAL = 517), (e.KEEP = 7680), (e.REPLACE = 7681), (e.INCR = 7682), (e.DECR = 7683), (e.INVERT = 5386), (e.INCR_WRAP = 34055), (e.DECR_WRAP = 34056), (e.TEXTURE_CLAMP_ADDRESSMODE = 0), (e.TEXTURE_WRAP_ADDRESSMODE = 1), (e.TEXTURE_MIRROR_ADDRESSMODE = 2), (e.TEXTUREFORMAT_ALPHA = 0), (e.TEXTUREFORMAT_LUMINANCE = 1), (e.TEXTUREFORMAT_LUMINANCE_ALPHA = 2), (e.TEXTUREFORMAT_RGB = 4), (e.TEXTUREFORMAT_RGBA = 5), (e.TEXTUREFORMAT_RED = 6), (e.TEXTUREFORMAT_R = 6), (e.TEXTUREFORMAT_RG = 7), (e.TEXTUREFORMAT_RED_INTEGER = 8), (e.TEXTUREFORMAT_R_INTEGER = 8), (e.TEXTUREFORMAT_RG_INTEGER = 9), (e.TEXTUREFORMAT_RGB_INTEGER = 10), (e.TEXTUREFORMAT_RGBA_INTEGER = 11), (e.TEXTURETYPE_UNSIGNED_BYTE = 0), (e.TEXTURETYPE_UNSIGNED_INT = 0), (e.TEXTURETYPE_FLOAT = 1), (e.TEXTURETYPE_HALF_FLOAT = 2), (e.TEXTURETYPE_BYTE = 3), (e.TEXTURETYPE_SHORT = 4), (e.TEXTURETYPE_UNSIGNED_SHORT = 5), (e.TEXTURETYPE_INT = 6), (e.TEXTURETYPE_UNSIGNED_INTEGER = 7), (e.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8), (e.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9), (e.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10), (e.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11), (e.TEXTURETYPE_UNSIGNED_INT_24_8 = 12), (e.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13), (e.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14), (e.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15), (e.TEXTURE_NEAREST_SAMPLINGMODE = 1), (e.TEXTURE_NEAREST_NEAREST = 1), (e.TEXTURE_BILINEAR_SAMPLINGMODE = 2), (e.TEXTURE_LINEAR_LINEAR = 2), (e.TEXTURE_TRILINEAR_SAMPLINGMODE = 3), (e.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3), (e.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4), (e.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5), (e.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6), (e.TEXTURE_NEAREST_LINEAR = 7), (e.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8), (e.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9), (e.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10), (e.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11), (e.TEXTURE_LINEAR_NEAREST = 12), (e.TEXTURE_EXPLICIT_MODE = 0), (e.TEXTURE_SPHERICAL_MODE = 1), (e.TEXTURE_PLANAR_MODE = 2), (e.TEXTURE_CUBIC_MODE = 3), (e.TEXTURE_PROJECTION_MODE = 4), (e.TEXTURE_SKYBOX_MODE = 5), (e.TEXTURE_INVCUBIC_MODE = 6), (e.TEXTURE_EQUIRECTANGULAR_MODE = 7), (e.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8), (e.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9), (e.SCALEMODE_FLOOR = 1), (e.SCALEMODE_NEAREST = 2), (e.SCALEMODE_CEILING = 3), (e.MATERIAL_TextureDirtyFlag = 1), (e.MATERIAL_LightDirtyFlag = 2), (e.MATERIAL_FresnelDirtyFlag = 4), (e.MATERIAL_AttributesDirtyFlag = 8), (e.MATERIAL_MiscDirtyFlag = 16), (e.MATERIAL_AllDirtyFlag = 31), (e.MATERIAL_TriangleFillMode = 0), (e.MATERIAL_WireFrameFillMode = 1), (e.MATERIAL_PointFillMode = 2), (e.MATERIAL_PointListDrawMode = 3), (e.MATERIAL_LineListDrawMode = 4), (e.MATERIAL_LineLoopDrawMode = 5), (e.MATERIAL_LineStripDrawMode = 6), (e.MATERIAL_TriangleStripDrawMode = 7), (e.MATERIAL_TriangleFanDrawMode = 8), (e.MATERIAL_ClockWiseSideOrientation = 0), (e.MATERIAL_CounterClockWiseSideOrientation = 1), (e.ACTION_NothingTrigger = 0), (e.ACTION_OnPickTrigger = 1), (e.ACTION_OnLeftPickTrigger = 2), (e.ACTION_OnRightPickTrigger = 3), (e.ACTION_OnCenterPickTrigger = 4), (e.ACTION_OnPickDownTrigger = 5), (e.ACTION_OnDoublePickTrigger = 6), (e.ACTION_OnPickUpTrigger = 7), (e.ACTION_OnPickOutTrigger = 16), (e.ACTION_OnLongPressTrigger = 8), (e.ACTION_OnPointerOverTrigger = 9), (e.ACTION_OnPointerOutTrigger = 10), (e.ACTION_OnEveryFrameTrigger = 11), (e.ACTION_OnIntersectionEnterTrigger = 12), (e.ACTION_OnIntersectionExitTrigger = 13), (e.ACTION_OnKeyDownTrigger = 14), (e.ACTION_OnKeyUpTrigger = 15), (e.PARTICLES_BILLBOARDMODE_Y = 2), (e.PARTICLES_BILLBOARDMODE_ALL = 7), (e.PARTICLES_BILLBOARDMODE_STRETCHED = 8), (e.MESHES_CULLINGSTRATEGY_STANDARD = 0), (e.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1), (e.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2), (e.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3), (e.SCENELOADER_NO_LOGGING = 0), (e.SCENELOADER_MINIMAL_LOGGING = 1), (e.SCENELOADER_SUMMARY_LOGGING = 2), (e.SCENELOADER_DETAILED_LOGGING = 3), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(1), r = n(4), o = (function () { function e() { (this._pickingUnavailable = !1), (this.hit = !1), (this.distance = 0), (this.pickedPoint = null), (this.pickedMesh = null), (this.bu = 0), (this.bv = 0), (this.faceId = -1), (this.subMeshId = 0), (this.pickedSprite = null), (this.originMesh = null), (this.ray = null); } return ( (e.prototype.getNormal = function (e, t) { if ((void 0 === e && (e = !1), void 0 === t && (t = !0), !this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(r.b.NormalKind))) return null; var n, o = this.pickedMesh.getIndices(); if (!o) return null; if (t) { var a = this.pickedMesh.getVerticesData(r.b.NormalKind), s = i.e.FromArray(a, 3 * o[3 * this.faceId]), c = i.e.FromArray(a, 3 * o[3 * this.faceId + 1]), l = i.e.FromArray(a, 3 * o[3 * this.faceId + 2]); (s = s.scale(this.bu)), (c = c.scale(this.bv)), (l = l.scale(1 - this.bu - this.bv)), (n = new i.e(s.x + c.x + l.x, s.y + c.y + l.y, s.z + c.z + l.z)); } else { var u = this.pickedMesh.getVerticesData(r.b.PositionKind), h = i.e.FromArray(u, 3 * o[3 * this.faceId]), d = i.e.FromArray(u, 3 * o[3 * this.faceId + 1]), p = i.e.FromArray(u, 3 * o[3 * this.faceId + 2]), f = h.subtract(d), m = p.subtract(d); n = i.e.Cross(f, m); } if (e) { var g = this.pickedMesh.getWorldMatrix(); this.pickedMesh.nonUniformScaling && (i.c.Matrix[0].copyFrom(g), (g = i.c.Matrix[0]).setTranslationFromFloats(0, 0, 0), g.invert(), g.transposeToRef(i.c.Matrix[1]), (g = i.c.Matrix[1])), (n = i.e.TransformNormal(n, g)); } return n.normalize(), n; }), (e.prototype.getTextureCoordinates = function () { if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(r.b.UVKind)) return null; var e = this.pickedMesh.getIndices(); if (!e) return null; var t = this.pickedMesh.getVerticesData(r.b.UVKind); if (!t) return null; var n = i.d.FromArray(t, 2 * e[3 * this.faceId]), o = i.d.FromArray(t, 2 * e[3 * this.faceId + 1]), a = i.d.FromArray(t, 2 * e[3 * this.faceId + 2]); return (n = n.scale(this.bu)), (o = o.scale(this.bv)), (a = a.scale(1 - this.bu - this.bv)), new i.d(n.x + o.x + a.x, n.y + o.y + a.y); }), e ); })(); }, function (e, t, n) { "use strict"; var i = "clipPlaneFragment", r = "#ifdef CLIPPLANE\nif (fClipDistance>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE2\nif (fClipDistance2>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE3\nif (fClipDistance3>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE4\nif (fClipDistance4>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE5\nif (fClipDistance5>0.0)\n{\ndiscard;\n}\n#endif\n#ifdef CLIPPLANE6\nif (fClipDistance6>0.0)\n{\ndiscard;\n}\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "clipPlaneVertex", r = "#ifdef CLIPPLANE\nfClipDistance=dot(worldPos,vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nfClipDistance2=dot(worldPos,vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nfClipDistance3=dot(worldPos,vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nfClipDistance4=dot(worldPos,vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nfClipDistance5=dot(worldPos,vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nfClipDistance6=dot(worldPos,vClipPlane6);\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(1), r = n(5), o = n(9), a = n(16); (a.a.CreateBox = function (e) { var t, n = [0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23], o = [ 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, ], s = [], c = e.width || e.size || 1, l = e.height || e.size || 1, u = e.depth || e.size || 1, h = e.wrap || !1, d = void 0 === e.topBaseAt ? 1 : e.topBaseAt, p = void 0 === e.bottomBaseAt ? 0 : e.bottomBaseAt, f = [2, 0, 3, 1][(d = (d + 4) % 4)], m = [2, 0, 1, 3][(p = (p + 4) % 4)], g = [ 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, ]; if (h) { (n = [2, 3, 0, 2, 0, 1, 4, 5, 6, 4, 6, 7, 9, 10, 11, 9, 11, 8, 12, 14, 15, 12, 13, 14]), (g = [-1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1]); for ( var b = [ [1, 1, 1], [-1, 1, 1], [-1, 1, -1], [1, 1, -1], ], _ = [ [-1, -1, 1], [1, -1, 1], [1, -1, -1], [-1, -1, -1], ], v = [17, 18, 19, 16], y = [22, 23, 20, 21]; f > 0; ) b.unshift(b.pop()), v.unshift(v.pop()), f--; for (; m > 0; ) _.unshift(_.pop()), y.unshift(y.pop()), m--; (b = b.flat()), (_ = _.flat()), (g = g.concat(b).concat(_)), n.push(v[0], v[2], v[3], v[0], v[1], v[2]), n.push(y[0], y[2], y[3], y[0], y[1], y[2]); } var C = [c / 2, l / 2, u / 2]; t = g.reduce(function (e, t, n) { return e.concat(t * C[n % 3]); }, []); for (var P = 0 === e.sideOrientation ? 0 : e.sideOrientation || a.a.DEFAULTSIDE, x = e.faceUV || new Array(6), T = e.faceColors, S = [], O = 0; O < 6; O++) void 0 === x[O] && (x[O] = new i.f(0, 0, 1, 1)), T && void 0 === T[O] && (T[O] = new r.b(1, 1, 1, 1)); for (var E = 0; E < 6; E++) if ((s.push(x[E].z, x[E].w), s.push(x[E].x, x[E].w), s.push(x[E].x, x[E].y), s.push(x[E].z, x[E].y), T)) for (var M = 0; M < 4; M++) S.push(T[E].r, T[E].g, T[E].b, T[E].a); a.a._ComputeSides(P, t, n, o, s, e.frontUVs, e.backUVs); var A = new a.a(); if (((A.indices = n), (A.positions = t), (A.normals = o), (A.uvs = s), T)) { var I = P === a.a.DOUBLESIDE ? S.concat(S) : S; A.colors = I; } return A; }), (o.a.CreateBox = function (e, t, n, i, r) { void 0 === n && (n = null); var o = { size: t, sideOrientation: r, updatable: i }; return s.CreateBox(e, o, n); }); var s = (function () { function e() {} return ( (e.CreateBox = function (e, t, n) { void 0 === n && (n = null); var i = new o.a(e, n); return (t.sideOrientation = o.a._GetDefaultSideOrientation(t.sideOrientation)), (i._originalBuilderSideOrientation = t.sideOrientation), a.a.CreateBox(t).applyToMesh(i, t.updatable), i; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(1), r = (function () { function e(e, t, n, r) { (this.normal = new i.e(e, t, n)), (this.d = r); } return ( (e.prototype.asArray = function () { return [this.normal.x, this.normal.y, this.normal.z, this.d]; }), (e.prototype.clone = function () { return new e(this.normal.x, this.normal.y, this.normal.z, this.d); }), (e.prototype.getClassName = function () { return "Plane"; }), (e.prototype.getHashCode = function () { var e = this.normal.getHashCode(); return (e = (397 * e) ^ (0 | this.d)); }), (e.prototype.normalize = function () { var e = Math.sqrt(this.normal.x * this.normal.x + this.normal.y * this.normal.y + this.normal.z * this.normal.z), t = 0; return 0 !== e && (t = 1 / e), (this.normal.x *= t), (this.normal.y *= t), (this.normal.z *= t), (this.d *= t), this; }), (e.prototype.transform = function (t) { var n = e._TmpMatrix; i.a.TransposeToRef(t, n); var r = n.m, o = this.normal.x, a = this.normal.y, s = this.normal.z, c = this.d; return new e(o * r[0] + a * r[1] + s * r[2] + c * r[3], o * r[4] + a * r[5] + s * r[6] + c * r[7], o * r[8] + a * r[9] + s * r[10] + c * r[11], o * r[12] + a * r[13] + s * r[14] + c * r[15]); }), (e.prototype.dotCoordinate = function (e) { return this.normal.x * e.x + this.normal.y * e.y + this.normal.z * e.z + this.d; }), (e.prototype.copyFromPoints = function (e, t, n) { var i, r = t.x - e.x, o = t.y - e.y, a = t.z - e.z, s = n.x - e.x, c = n.y - e.y, l = n.z - e.z, u = o * l - a * c, h = a * s - r * l, d = r * c - o * s, p = Math.sqrt(u * u + h * h + d * d); return (i = 0 !== p ? 1 / p : 0), (this.normal.x = u * i), (this.normal.y = h * i), (this.normal.z = d * i), (this.d = -(this.normal.x * e.x + this.normal.y * e.y + this.normal.z * e.z)), this; }), (e.prototype.isFrontFacingTo = function (e, t) { return i.e.Dot(this.normal, e) <= t; }), (e.prototype.signedDistanceTo = function (e) { return i.e.Dot(e, this.normal) + this.d; }), (e.FromArray = function (t) { return new e(t[0], t[1], t[2], t[3]); }), (e.FromPoints = function (t, n, i) { var r = new e(0, 0, 0, 0); return r.copyFromPoints(t, n, i), r; }), (e.FromPositionAndNormal = function (t, n) { var i = new e(0, 0, 0, 0); return n.normalize(), (i.normal = n), (i.d = -(n.x * t.x + n.y * t.y + n.z * t.z)), i; }), (e.SignedDistanceToPlaneFromPositionAndNormal = function (e, t, n) { var r = -(t.x * e.x + t.y * e.y + t.z * e.z); return i.e.Dot(n, t) + r; }), (e._TmpMatrix = i.a.Identity()), e ); })(); }, function (e, t, n) { "use strict"; var i = "clipPlaneFragmentDeclaration", r = "#ifdef CLIPPLANE\nvarying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nvarying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nvarying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nvarying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nvarying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nvarying float fClipDistance6;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "fogFragmentDeclaration", r = "#ifdef FOG\n#define FOGMODE_NONE 0.\n#define FOGMODE_EXP 1.\n#define FOGMODE_EXP2 2.\n#define FOGMODE_LINEAR 3.\n#define E 2.71828\nuniform vec4 vFogInfos;\nuniform vec3 vFogColor;\nvarying vec3 vFogDistance;\nfloat CalcFogFactor()\n{\nfloat fogCoeff=1.0;\nfloat fogStart=vFogInfos.y;\nfloat fogEnd=vFogInfos.z;\nfloat fogDensity=vFogInfos.w;\nfloat fogDistance=length(vFogDistance);\nif (FOGMODE_LINEAR == vFogInfos.x)\n{\nfogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);\n}\nelse if (FOGMODE_EXP == vFogInfos.x)\n{\nfogCoeff=1.0/pow(E,fogDistance*fogDensity);\n}\nelse if (FOGMODE_EXP2 == vFogInfos.x)\n{\nfogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);\n}\nreturn clamp(fogCoeff,0.0,1.0);\n}\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "clipPlaneVertexDeclaration", r = "#ifdef CLIPPLANE\nuniform vec4 vClipPlane;\nvarying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;\nvarying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;\nvarying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;\nvarying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;\nvarying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;\nvarying float fClipDistance6;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }), n.d(t, "b", function () { return o; }), n.d(t, "c", function () { return a; }); var i = n(2), r = (function () { function e() {} return (e.KEYDOWN = 1), (e.KEYUP = 2), e; })(), o = function (e, t) { (this.type = e), (this.event = t); }, a = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return (i.type = t), (i.event = n), (i.skipOnPointerObservable = !1), i; } return Object(i.d)(t, e), t; })(o); }, function (e, t, n) { "use strict"; var i = "#ifdef FOG\nfloat fog=CalcFogFactor();\ncolor.rgb=fog*color.rgb+(1.0-fog)*vFogColor;\n#endif"; n(7).a.IncludesShadersStore.fogFragment = i; }, function (e, t, n) { "use strict"; var i = "fogVertexDeclaration", r = "#ifdef FOG\nvarying vec3 vFogDistance;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(2), r = n(8), o = (n(155), (function (e) { function t(t, n, i, o, a, s, c, l, u) { void 0 === s && (s = !0), void 0 === c && (c = !1), void 0 === l && (l = 3), void 0 === u && (u = 0); var h = e.call(this, null, a, !s, c) || this; return (h.format = o), (h._engine = a.getEngine()), (h._texture = a.getEngine().createRawTexture(t, n, i, o, s, c, l, null, u)), (h.wrapU = r.a.CLAMP_ADDRESSMODE), (h.wrapV = r.a.CLAMP_ADDRESSMODE), h; } return ( Object(i.d)(t, e), (t.prototype.update = function (e) { this._engine.updateRawTexture(this._texture, e, this._texture.format, this._texture.invertY, null, this._texture.type); }), (t.CreateLuminanceTexture = function (e, n, i, r, o, a, s) { return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), new t(e, n, i, 1, r, o, a, s); }), (t.CreateLuminanceAlphaTexture = function (e, n, i, r, o, a, s) { return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), new t(e, n, i, 2, r, o, a, s); }), (t.CreateAlphaTexture = function (e, n, i, r, o, a, s) { return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), new t(e, n, i, 0, r, o, a, s); }), (t.CreateRGBTexture = function (e, n, i, r, o, a, s, c) { return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), void 0 === c && (c = 0), new t(e, n, i, 4, r, o, a, s, c); }), (t.CreateRGBATexture = function (e, n, i, r, o, a, s, c) { return void 0 === o && (o = !0), void 0 === a && (a = !1), void 0 === s && (s = 3), void 0 === c && (c = 0), new t(e, n, i, 5, r, o, a, s, c); }), (t.CreateRTexture = function (e, n, i, o, a, s, c, l) { return void 0 === a && (a = !0), void 0 === s && (s = !1), void 0 === c && (c = r.a.TRILINEAR_SAMPLINGMODE), void 0 === l && (l = 1), new t(e, n, i, 6, o, a, s, c, l); }), t ); })(r.a)); }, function (e, t, n) { "use strict"; var i = "#ifdef FOG\nvFogDistance=(view*worldPos).xyz;\n#endif"; n(7).a.IncludesShadersStore.fogVertex = i; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(2), r = n(28), o = n(45), a = n(13), s = (function (e) { function t(t, n) { var i = e.call(this, t, n, !0) || this; return n.multiMaterials.push(i), (i.subMaterials = new Array()), (i._storeEffectOnSubMeshes = !0), i; } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "subMaterials", { get: function () { return this._subMaterials; }, set: function (e) { (this._subMaterials = e), this._hookArray(e); }, enumerable: !0, configurable: !0, }), (t.prototype.getChildren = function () { return this.subMaterials; }), (t.prototype._hookArray = function (e) { var t = this, n = e.push; e.push = function () { for (var i = [], r = 0; r < arguments.length; r++) i[r] = arguments[r]; var o = n.apply(e, i); return t._markAllSubMeshesAsTexturesDirty(), o; }; var i = e.splice; e.splice = function (n, r) { var o = i.apply(e, [n, r]); return t._markAllSubMeshesAsTexturesDirty(), o; }; }), (t.prototype.getSubMaterial = function (e) { return e < 0 || e >= this.subMaterials.length ? this.getScene().defaultMaterial : this.subMaterials[e]; }), (t.prototype.getActiveTextures = function () { var t; return (t = e.prototype.getActiveTextures.call(this)).concat.apply( t, this.subMaterials.map(function (e) { return e ? e.getActiveTextures() : []; }) ); }), (t.prototype.getClassName = function () { return "MultiMaterial"; }), (t.prototype.isReadyForSubMesh = function (e, t, n) { for (var i = 0; i < this.subMaterials.length; i++) { var r = this.subMaterials[i]; if (r) { if (r._storeEffectOnSubMeshes) { if (!r.isReadyForSubMesh(e, t, n)) return !1; continue; } if (!r.isReady(e)) return !1; } } return !0; }), (t.prototype.clone = function (e, n) { for (var i = new t(e, this.getScene()), r = 0; r < this.subMaterials.length; r++) { var o = null, a = this.subMaterials[r]; (o = n && a ? a.clone(e + "-" + a.name) : this.subMaterials[r]), i.subMaterials.push(o); } return i; }), (t.prototype.serialize = function () { var e = {}; (e.name = this.name), (e.id = this.id), o.a && (e.tags = o.a.GetTags(this)), (e.materials = []); for (var t = 0; t < this.subMaterials.length; t++) { var n = this.subMaterials[t]; n ? e.materials.push(n.id) : e.materials.push(null); } return e; }), (t.prototype.dispose = function (t, n, i) { var r = this.getScene(); if (r) { if (i) for (var o = 0; o < this.subMaterials.length; o++) { var a = this.subMaterials[o]; a && a.dispose(t, n); } (o = r.multiMaterials.indexOf(this)) >= 0 && r.multiMaterials.splice(o, 1), e.prototype.dispose.call(this, t, n); } }), (t.ParseMultiMaterial = function (e, n) { var i = new t(e.name, n); (i.id = e.id), o.a && o.a.AddTagsTo(i, e.tags); for (var r = 0; r < e.materials.length; r++) { var a = e.materials[r]; a ? i.subMaterials.push(n.getLastMaterialByID(a)) : i.subMaterials.push(null); } return i; }), t ); })(r.a); a.a.RegisteredTypes["BABYLON.MultiMaterial"] = s; }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return B; }), n.d(t, "a", function () { return V; }); var i = n(2), r = n(3), o = n(10), a = n(47), s = n(158), c = n(18), l = n(1), u = n(4), h = n(5), d = n(17), p = n(11), f = (function () { function e(t) { (this._isEnabled = !1), (this.isEnabled = !1), (this.intensity = 1), (this.roughness = 0), (this._indexOfRefraction = e._DefaultIndexOfRefraction), (this.indexOfRefraction = e._DefaultIndexOfRefraction), (this._texture = null), (this.texture = null), (this._bumpTexture = null), (this.bumpTexture = null), (this._isTintEnabled = !1), (this.isTintEnabled = !1), (this.tintColor = h.a.White()), (this.tintColorAtDistance = 1), (this.tintThickness = 1), (this._tintTexture = null), (this.tintTexture = null), (this._internalMarkAllSubMeshesAsTexturesDirty = t); } return ( (e.prototype._markAllSubMeshesAsTexturesDirty = function () { this._internalMarkAllSubMeshesAsTexturesDirty(); }), (e.prototype.isReadyForSubMesh = function (e, t, n, i) { if (e._areTexturesDirty && t.texturesEnabled) { if (this._texture && d.a.ClearCoatTextureEnabled && !this._texture.isReadyOrNotBlocking()) return !1; if (n.getCaps().standardDerivatives && this._bumpTexture && d.a.ClearCoatBumpTextureEnabled && !i && !this._bumpTexture.isReady()) return !1; if (this._isTintEnabled && this._tintTexture && d.a.ClearCoatTintTextureEnabled && !this._tintTexture.isReadyOrNotBlocking()) return !1; } return !0; }), (e.prototype.prepareDefines = function (t, n) { this._isEnabled ? ((t.CLEARCOAT = !0), t._areTexturesDirty && n.texturesEnabled && (this._texture && d.a.ClearCoatTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._texture, t, "CLEARCOAT_TEXTURE") : (t.CLEARCOAT_TEXTURE = !1), this._bumpTexture && d.a.ClearCoatBumpTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._bumpTexture, t, "CLEARCOAT_BUMP") : (t.CLEARCOAT_BUMP = !1), (t.CLEARCOAT_DEFAULTIOR = this._indexOfRefraction === e._DefaultIndexOfRefraction), this._isTintEnabled ? ((t.CLEARCOAT_TINT = !0), this._tintTexture && d.a.ClearCoatTintTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._tintTexture, t, "CLEARCOAT_TINT_TEXTURE") : (t.CLEARCOAT_TINT_TEXTURE = !1)) : ((t.CLEARCOAT_TINT = !1), (t.CLEARCOAT_TINT_TEXTURE = !1)))) : ((t.CLEARCOAT = !1), (t.CLEARCOAT_TEXTURE = !1), (t.CLEARCOAT_BUMP = !1), (t.CLEARCOAT_TINT = !1), (t.CLEARCOAT_TINT_TEXTURE = !1)); }), (e.prototype.bindForSubMesh = function (e, t, n, i, r, o, a) { if (!e.useUbo || !r || !e.isSync) { this._texture && d.a.ClearCoatTextureEnabled && (e.updateFloat2("vClearCoatInfos", this._texture.coordinatesIndex, this._texture.level), p.a.BindTextureMatrix(this._texture, e, "clearCoat")), this._bumpTexture && n.getCaps().standardDerivatives && d.a.ClearCoatTextureEnabled && !i && (e.updateFloat2("vClearCoatBumpInfos", this._bumpTexture.coordinatesIndex, this._bumpTexture.level), p.a.BindTextureMatrix(this._bumpTexture, e, "clearCoatBump"), t._mirroredCameraPosition ? e.updateFloat2("vClearCoatTangentSpaceParams", o ? 1 : -1, a ? 1 : -1) : e.updateFloat2("vClearCoatTangentSpaceParams", o ? -1 : 1, a ? -1 : 1)), this._tintTexture && d.a.ClearCoatTintTextureEnabled && (e.updateFloat2("vClearCoatTintInfos", this._tintTexture.coordinatesIndex, this._tintTexture.level), p.a.BindTextureMatrix(this._tintTexture, e, "clearCoatTint")), e.updateFloat2("vClearCoatParams", this.intensity, this.roughness); var s = 1 - this._indexOfRefraction, c = 1 + this._indexOfRefraction, l = Math.pow(-s / c, 2), u = 1 / this._indexOfRefraction; e.updateFloat4("vClearCoatRefractionParams", l, u, s, c), this._isTintEnabled && (e.updateFloat4("vClearCoatTintParams", this.tintColor.r, this.tintColor.g, this.tintColor.b, Math.max(1e-5, this.tintThickness)), e.updateFloat("clearCoatColorAtDistance", Math.max(1e-5, this.tintColorAtDistance))); } t.texturesEnabled && (this._texture && d.a.ClearCoatTextureEnabled && e.setTexture("clearCoatSampler", this._texture), this._bumpTexture && n.getCaps().standardDerivatives && d.a.ClearCoatBumpTextureEnabled && !i && e.setTexture("clearCoatBumpSampler", this._bumpTexture), this._isTintEnabled && this._tintTexture && d.a.ClearCoatTintTextureEnabled && e.setTexture("clearCoatTintSampler", this._tintTexture)); }), (e.prototype.hasTexture = function (e) { return this._texture === e || this._bumpTexture === e || this._tintTexture === e; }), (e.prototype.getActiveTextures = function (e) { this._texture && e.push(this._texture), this._bumpTexture && e.push(this._bumpTexture), this._tintTexture && e.push(this._tintTexture); }), (e.prototype.getAnimatables = function (e) { this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture), this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture), this._tintTexture && this._tintTexture.animations && this._tintTexture.animations.length > 0 && e.push(this._tintTexture); }), (e.prototype.dispose = function (e) { e && (this._texture && this._texture.dispose(), this._bumpTexture && this._bumpTexture.dispose(), this._tintTexture && this._tintTexture.dispose()); }), (e.prototype.getClassName = function () { return "PBRClearCoatConfiguration"; }), (e.AddFallbacks = function (e, t, n) { return e.CLEARCOAT_BUMP && t.addFallback(n++, "CLEARCOAT_BUMP"), e.CLEARCOAT_TINT && t.addFallback(n++, "CLEARCOAT_TINT"), e.CLEARCOAT && t.addFallback(n++, "CLEARCOAT"), n; }), (e.AddUniforms = function (e) { e.push( "vClearCoatTangentSpaceParams", "vClearCoatParams", "vClearCoatRefractionParams", "vClearCoatTintParams", "clearCoatColorAtDistance", "clearCoatMatrix", "clearCoatBumpMatrix", "clearCoatTintMatrix", "vClearCoatInfos", "vClearCoatBumpInfos", "vClearCoatTintInfos" ); }), (e.AddSamplers = function (e) { e.push("clearCoatSampler", "clearCoatBumpSampler", "clearCoatTintSampler"); }), (e.PrepareUniformBuffer = function (e) { e.addUniform("vClearCoatParams", 2), e.addUniform("vClearCoatRefractionParams", 4), e.addUniform("vClearCoatInfos", 2), e.addUniform("clearCoatMatrix", 16), e.addUniform("vClearCoatBumpInfos", 2), e.addUniform("vClearCoatTangentSpaceParams", 2), e.addUniform("clearCoatBumpMatrix", 16), e.addUniform("vClearCoatTintParams", 4), e.addUniform("clearCoatColorAtDistance", 1), e.addUniform("vClearCoatTintInfos", 2), e.addUniform("clearCoatTintMatrix", 16); }), (e.prototype.copyTo = function (e) { r.a.Clone(function () { return e; }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.prototype.parse = function (e, t, n) { var i = this; r.a.Parse( function () { return i; }, e, t, n ); }), (e._DefaultIndexOfRefraction = 1.5), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "intensity", void 0), Object(i.c)([Object(r.c)()], e.prototype, "roughness", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "indexOfRefraction", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "texture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "bumpTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isTintEnabled", void 0), Object(i.c)([Object(r.e)()], e.prototype, "tintColor", void 0), Object(i.c)([Object(r.c)()], e.prototype, "tintColorAtDistance", void 0), Object(i.c)([Object(r.c)()], e.prototype, "tintThickness", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "tintTexture", void 0), e ); })(), m = (function () { function e(e) { (this._isEnabled = !1), (this.isEnabled = !1), (this.intensity = 1), (this.direction = new l.d(1, 0)), (this._texture = null), (this.texture = null), (this._internalMarkAllSubMeshesAsTexturesDirty = e); } return ( (e.prototype._markAllSubMeshesAsTexturesDirty = function () { this._internalMarkAllSubMeshesAsTexturesDirty(); }), (e.prototype.isReadyForSubMesh = function (e, t) { return !(e._areTexturesDirty && t.texturesEnabled && this._texture && d.a.AnisotropicTextureEnabled && !this._texture.isReadyOrNotBlocking()); }), (e.prototype.prepareDefines = function (e, t, n) { this._isEnabled ? ((e.ANISOTROPIC = this._isEnabled), this._isEnabled && !t.isVerticesDataPresent(u.b.TangentKind) && ((e._needUVs = !0), (e.MAINUV1 = !0)), e._areTexturesDirty && n.texturesEnabled && (this._texture && d.a.AnisotropicTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._texture, e, "ANISOTROPIC_TEXTURE") : (e.ANISOTROPIC_TEXTURE = !1))) : ((e.ANISOTROPIC = !1), (e.ANISOTROPIC_TEXTURE = !1)); }), (e.prototype.bindForSubMesh = function (e, t, n) { (e.useUbo && n && e.isSync) || (this._texture && d.a.AnisotropicTextureEnabled && (e.updateFloat2("vAnisotropyInfos", this._texture.coordinatesIndex, this._texture.level), p.a.BindTextureMatrix(this._texture, e, "anisotropy")), e.updateFloat3("vAnisotropy", this.direction.x, this.direction.y, this.intensity)), t.texturesEnabled && this._texture && d.a.AnisotropicTextureEnabled && e.setTexture("anisotropySampler", this._texture); }), (e.prototype.hasTexture = function (e) { return this._texture === e; }), (e.prototype.getActiveTextures = function (e) { this._texture && e.push(this._texture); }), (e.prototype.getAnimatables = function (e) { this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture); }), (e.prototype.dispose = function (e) { e && this._texture && this._texture.dispose(); }), (e.prototype.getClassName = function () { return "PBRAnisotropicConfiguration"; }), (e.AddFallbacks = function (e, t, n) { return e.ANISOTROPIC && t.addFallback(n++, "ANISOTROPIC"), n; }), (e.AddUniforms = function (e) { e.push("vAnisotropy", "vAnisotropyInfos", "anisotropyMatrix"); }), (e.PrepareUniformBuffer = function (e) { e.addUniform("vAnisotropy", 3), e.addUniform("vAnisotropyInfos", 2), e.addUniform("anisotropyMatrix", 16); }), (e.AddSamplers = function (e) { e.push("anisotropySampler"); }), (e.prototype.copyTo = function (e) { r.a.Clone(function () { return e; }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.prototype.parse = function (e, t, n) { var i = this; r.a.Parse( function () { return i; }, e, t, n ); }), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "intensity", void 0), Object(i.c)([Object(r.n)()], e.prototype, "direction", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "texture", void 0), e ); })(), g = (function () { function e(t) { (this._useEnergyConservation = e.DEFAULT_USE_ENERGY_CONSERVATION), (this.useEnergyConservation = e.DEFAULT_USE_ENERGY_CONSERVATION), (this._useSmithVisibilityHeightCorrelated = e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED), (this.useSmithVisibilityHeightCorrelated = e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED), (this._useSphericalHarmonics = e.DEFAULT_USE_SPHERICAL_HARMONICS), (this.useSphericalHarmonics = e.DEFAULT_USE_SPHERICAL_HARMONICS), (this._useSpecularGlossinessInputEnergyConservation = e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION), (this.useSpecularGlossinessInputEnergyConservation = e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION), (this._internalMarkAllSubMeshesAsMiscDirty = t); } return ( (e.prototype._markAllSubMeshesAsMiscDirty = function () { this._internalMarkAllSubMeshesAsMiscDirty(); }), (e.prototype.prepareDefines = function (e) { (e.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated), (e.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated), (e.SPHERICAL_HARMONICS = this._useSphericalHarmonics), (e.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation); }), (e.prototype.getClassName = function () { return "PBRBRDFConfiguration"; }), (e.prototype.copyTo = function (e) { r.a.Clone(function () { return e; }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.prototype.parse = function (e, t, n) { var i = this; r.a.Parse( function () { return i; }, e, t, n ); }), (e.DEFAULT_USE_ENERGY_CONSERVATION = !0), (e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = !0), (e.DEFAULT_USE_SPHERICAL_HARMONICS = !0), (e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = !0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useEnergyConservation", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useSmithVisibilityHeightCorrelated", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useSphericalHarmonics", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsMiscDirty")], e.prototype, "useSpecularGlossinessInputEnergyConservation", void 0), e ); })(), b = (function () { function e(e) { (this._isEnabled = !1), (this.isEnabled = !1), (this._linkSheenWithAlbedo = !1), (this.linkSheenWithAlbedo = !1), (this.intensity = 1), (this.color = h.a.White()), (this._texture = null), (this.texture = null), (this._internalMarkAllSubMeshesAsTexturesDirty = e); } return ( (e.prototype._markAllSubMeshesAsTexturesDirty = function () { this._internalMarkAllSubMeshesAsTexturesDirty(); }), (e.prototype.isReadyForSubMesh = function (e, t) { return !(e._areTexturesDirty && t.texturesEnabled && this._texture && d.a.SheenTextureEnabled && !this._texture.isReadyOrNotBlocking()); }), (e.prototype.prepareDefines = function (e, t) { this._isEnabled ? ((e.SHEEN = this._isEnabled), (e.SHEEN_LINKWITHALBEDO = this._linkSheenWithAlbedo), e._areTexturesDirty && t.texturesEnabled && (this._texture && d.a.SheenTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._texture, e, "SHEEN_TEXTURE") : (e.SHEEN_TEXTURE = !1))) : ((e.SHEEN = !1), (e.SHEEN_TEXTURE = !1), (e.SHEEN_LINKWITHALBEDO = !1)); }), (e.prototype.bindForSubMesh = function (e, t, n) { (e.useUbo && n && e.isSync) || (this._texture && d.a.SheenTextureEnabled && (e.updateFloat2("vSheenInfos", this._texture.coordinatesIndex, this._texture.level), p.a.BindTextureMatrix(this._texture, e, "sheen")), e.updateFloat4("vSheenColor", this.color.r, this.color.g, this.color.b, this.intensity)), t.texturesEnabled && this._texture && d.a.SheenTextureEnabled && e.setTexture("sheenSampler", this._texture); }), (e.prototype.hasTexture = function (e) { return this._texture === e; }), (e.prototype.getActiveTextures = function (e) { this._texture && e.push(this._texture); }), (e.prototype.getAnimatables = function (e) { this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture); }), (e.prototype.dispose = function (e) { e && this._texture && this._texture.dispose(); }), (e.prototype.getClassName = function () { return "PBRSheenConfiguration"; }), (e.AddFallbacks = function (e, t, n) { return e.SHEEN && t.addFallback(n++, "SHEEN"), n; }), (e.AddUniforms = function (e) { e.push("vSheenColor", "vSheenInfos", "sheenMatrix"); }), (e.PrepareUniformBuffer = function (e) { e.addUniform("vSheenColor", 4), e.addUniform("vSheenInfos", 2), e.addUniform("sheenMatrix", 16); }), (e.AddSamplers = function (e) { e.push("sheenSampler"); }), (e.prototype.copyTo = function (e) { r.a.Clone(function () { return e; }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.prototype.parse = function (e, t, n) { var i = this; r.a.Parse( function () { return i; }, e, t, n ); }), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isEnabled", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "linkSheenWithAlbedo", void 0), Object(i.c)([Object(r.c)()], e.prototype, "intensity", void 0), Object(i.c)([Object(r.e)()], e.prototype, "color", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "texture", void 0), e ); })(), _ = (function () { function e(e) { (this._isRefractionEnabled = !1), (this.isRefractionEnabled = !1), (this._isTranslucencyEnabled = !1), (this.isTranslucencyEnabled = !1), (this._isScatteringEnabled = !1), (this.refractionIntensity = 1), (this.translucencyIntensity = 1), (this.scatteringIntensity = 1), (this._thicknessTexture = null), (this.thicknessTexture = null), (this._refractionTexture = null), (this.refractionTexture = null), (this._indexOfRefraction = 1), (this.indexOfRefraction = 1), (this._invertRefractionY = !1), (this.invertRefractionY = !1), (this._linkRefractionWithTransparency = !1), (this.linkRefractionWithTransparency = !1), (this.minimumThickness = 0), (this.maximumThickness = 1), (this.tintColor = h.a.White()), (this.tintColorAtDistance = 1), (this.diffusionDistance = h.a.White()), (this._useMaskFromThicknessTexture = !1), (this.useMaskFromThicknessTexture = !1), (this._internalMarkAllSubMeshesAsTexturesDirty = e); } return ( (e.prototype._markAllSubMeshesAsTexturesDirty = function () { this._internalMarkAllSubMeshesAsTexturesDirty(); }), (e.prototype.isReadyForSubMesh = function (e, t) { if (e._areTexturesDirty && t.texturesEnabled) { if (this._thicknessTexture && d.a.ThicknessTextureEnabled && !this._thicknessTexture.isReadyOrNotBlocking()) return !1; var n = this._getRefractionTexture(t); if (n && d.a.RefractionTextureEnabled && !n.isReadyOrNotBlocking()) return !1; } return !0; }), (e.prototype.prepareDefines = function (e, t) { if ( e._areTexturesDirty && ((e.SUBSURFACE = !1), (e.SS_TRANSLUCENCY = this._isTranslucencyEnabled), (e.SS_SCATERRING = this._isScatteringEnabled), (e.SS_THICKNESSANDMASK_TEXTURE = !1), (e.SS_MASK_FROM_THICKNESS_TEXTURE = !1), (e.SS_REFRACTION = !1), (e.SS_REFRACTIONMAP_3D = !1), (e.SS_GAMMAREFRACTION = !1), (e.SS_RGBDREFRACTION = !1), (e.SS_LINEARSPECULARREFRACTION = !1), (e.SS_REFRACTIONMAP_OPPOSITEZ = !1), (e.SS_LODINREFRACTIONALPHA = !1), (e.SS_LINKREFRACTIONTOTRANSPARENCY = !1), (this._isRefractionEnabled || this._isTranslucencyEnabled || this._isScatteringEnabled) && ((e.SUBSURFACE = !0), e._areTexturesDirty && t.texturesEnabled && this._thicknessTexture && d.a.ThicknessTextureEnabled && p.a.PrepareDefinesForMergedUV(this._thicknessTexture, e, "SS_THICKNESSANDMASK_TEXTURE"), (e.SS_MASK_FROM_THICKNESS_TEXTURE = this._useMaskFromThicknessTexture)), this._isRefractionEnabled && t.texturesEnabled) ) { var n = this._getRefractionTexture(t); n && d.a.RefractionTextureEnabled && ((e.SS_REFRACTION = !0), (e.SS_REFRACTIONMAP_3D = n.isCube), (e.SS_GAMMAREFRACTION = n.gammaSpace), (e.SS_RGBDREFRACTION = n.isRGBD), (e.SS_LINEARSPECULARREFRACTION = n.linearSpecularLOD), (e.SS_REFRACTIONMAP_OPPOSITEZ = n.invertZ), (e.SS_LODINREFRACTIONALPHA = n.lodLevelInAlpha), (e.SS_LINKREFRACTIONTOTRANSPARENCY = this._linkRefractionWithTransparency)); } }), (e.prototype.bindForSubMesh = function (e, t, n, i, r) { var o = this._getRefractionTexture(t); if (!e.useUbo || !i || !e.isSync) { if ( (this._thicknessTexture && d.a.ThicknessTextureEnabled && (e.updateFloat2("vThicknessInfos", this._thicknessTexture.coordinatesIndex, this._thicknessTexture.level), p.a.BindTextureMatrix(this._thicknessTexture, e, "thickness")), e.updateFloat2("vThicknessParam", this.minimumThickness, this.maximumThickness - this.minimumThickness), o && d.a.RefractionTextureEnabled) ) { e.updateMatrix("refractionMatrix", o.getReflectionTextureMatrix()); var a = 1; o.isCube || (o.depth && (a = o.depth)), e.updateFloat4("vRefractionInfos", o.level, 1 / this._indexOfRefraction, a, this._invertRefractionY ? -1 : 1), e.updateFloat3("vRefractionMicrosurfaceInfos", o.getSize().width, o.lodGenerationScale, o.lodGenerationOffset); } e.updateColor3("vDiffusionDistance", this.diffusionDistance), e.updateFloat4("vTintColor", this.tintColor.r, this.tintColor.g, this.tintColor.b, this.tintColorAtDistance), e.updateFloat3("vSubSurfaceIntensity", this.refractionIntensity, this.translucencyIntensity, this.scatteringIntensity); } t.texturesEnabled && (this._thicknessTexture && d.a.ThicknessTextureEnabled && e.setTexture("thicknessSampler", this._thicknessTexture), o && d.a.RefractionTextureEnabled && (r ? e.setTexture("refractionSampler", o) : (e.setTexture("refractionSampler", o._lodTextureMid || o), e.setTexture("refractionSamplerLow", o._lodTextureLow || o), e.setTexture("refractionSamplerHigh", o._lodTextureHigh || o)))); }), (e.prototype.unbind = function (e) { return !(!this._refractionTexture || !this._refractionTexture.isRenderTarget) && (e.setTexture("refractionSampler", null), !0); }), (e.prototype._getRefractionTexture = function (e) { return this._refractionTexture ? this._refractionTexture : this._isRefractionEnabled ? e.environmentTexture : null; }), Object.defineProperty(e.prototype, "disableAlphaBlending", { get: function () { return this.isRefractionEnabled && this._linkRefractionWithTransparency; }, enumerable: !0, configurable: !0, }), (e.prototype.fillRenderTargetTextures = function (e) { d.a.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget && e.push(this._refractionTexture); }), (e.prototype.hasTexture = function (e) { return this._thicknessTexture === e || this._refractionTexture === e; }), (e.prototype.hasRenderTargetTextures = function () { return !!(d.a.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget); }), (e.prototype.getActiveTextures = function (e) { this._thicknessTexture && e.push(this._thicknessTexture), this._refractionTexture && e.push(this._refractionTexture); }), (e.prototype.getAnimatables = function (e) { this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0 && e.push(this._thicknessTexture), this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0 && e.push(this._refractionTexture); }), (e.prototype.dispose = function (e) { e && (this._thicknessTexture && this._thicknessTexture.dispose(), this._refractionTexture && this._refractionTexture.dispose()); }), (e.prototype.getClassName = function () { return "PBRSubSurfaceConfiguration"; }), (e.AddFallbacks = function (e, t, n) { return e.SS_SCATERRING && t.addFallback(n++, "SS_SCATERRING"), e.SS_TRANSLUCENCY && t.addFallback(n++, "SS_TRANSLUCENCY"), n; }), (e.AddUniforms = function (e) { e.push("vDiffusionDistance", "vTintColor", "vSubSurfaceIntensity", "vRefractionMicrosurfaceInfos", "vRefractionInfos", "vThicknessInfos", "vThicknessParam", "refractionMatrix", "thicknessMatrix"); }), (e.AddSamplers = function (e) { e.push("thicknessSampler", "refractionSampler", "refractionSamplerLow", "refractionSamplerHigh"); }), (e.PrepareUniformBuffer = function (e) { e.addUniform("vRefractionMicrosurfaceInfos", 3), e.addUniform("vRefractionInfos", 4), e.addUniform("refractionMatrix", 16), e.addUniform("vThicknessInfos", 2), e.addUniform("thicknessMatrix", 16), e.addUniform("vThicknessParam", 2), e.addUniform("vDiffusionDistance", 3), e.addUniform("vTintColor", 4), e.addUniform("vSubSurfaceIntensity", 3); }), (e.prototype.copyTo = function (e) { r.a.Clone(function () { return e; }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.prototype.parse = function (e, t, n) { var i = this; r.a.Parse( function () { return i; }, e, t, n ); }), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isRefractionEnabled", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "isTranslucencyEnabled", void 0), Object(i.c)([Object(r.c)()], e.prototype, "refractionIntensity", void 0), Object(i.c)([Object(r.c)()], e.prototype, "translucencyIntensity", void 0), Object(i.c)([Object(r.c)()], e.prototype, "scatteringIntensity", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "thicknessTexture", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "refractionTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "indexOfRefraction", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "invertRefractionY", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "linkRefractionWithTransparency", void 0), Object(i.c)([Object(r.c)()], e.prototype, "minimumThickness", void 0), Object(i.c)([Object(r.c)()], e.prototype, "maximumThickness", void 0), Object(i.c)([Object(r.e)()], e.prototype, "tintColor", void 0), Object(i.c)([Object(r.c)()], e.prototype, "tintColorAtDistance", void 0), Object(i.c)([Object(r.e)()], e.prototype, "diffusionDistance", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], e.prototype, "useMaskFromThicknessTexture", void 0), e ); })(), v = n(50), y = n(41), C = n(46), P = n(8), x = (n(213), n(7)), T = "uniform vec3 vReflectionColor;\nuniform vec4 vAlbedoColor;\n\nuniform vec4 vLightingIntensity;\nuniform vec4 vReflectivityColor;\nuniform vec3 vEmissiveColor;\nuniform float visibility;\n\n#ifdef ALBEDO\nuniform vec2 vAlbedoInfos;\n#endif\n#ifdef AMBIENT\nuniform vec4 vAmbientInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\nuniform vec2 vTangentSpaceParams;\n#endif\n#ifdef OPACITY\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef REFLECTIVITY\nuniform vec3 vReflectivityInfos;\n#endif\n#ifdef MICROSURFACEMAP\nuniform vec2 vMicroSurfaceSamplerInfos;\n#endif\n\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION)\nuniform mat4 view;\n#endif\n\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionMicrosurfaceInfos;\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\n#endif\n#endif\n\n#ifdef CLEARCOAT\nuniform vec2 vClearCoatParams;\nuniform vec4 vClearCoatRefractionParams;\n#ifdef CLEARCOAT_TEXTURE\nuniform vec2 vClearCoatInfos;\nuniform mat4 clearCoatMatrix;\n#endif\n#ifdef CLEARCOAT_BUMP\nuniform vec2 vClearCoatBumpInfos;\nuniform vec2 vClearCoatTangentSpaceParams;\nuniform mat4 clearCoatBumpMatrix;\n#endif\n#ifdef CLEARCOAT_TINT\nuniform vec4 vClearCoatTintParams;\nuniform float clearCoatColorAtDistance;\n#ifdef CLEARCOAT_TINT_TEXTURE\nuniform vec2 vClearCoatTintInfos;\nuniform mat4 clearCoatTintMatrix;\n#endif\n#endif\n#endif\n\n#ifdef ANISOTROPIC\nuniform vec3 vAnisotropy;\n#ifdef ANISOTROPIC_TEXTURE\nuniform vec2 vAnisotropyInfos;\nuniform mat4 anisotropyMatrix;\n#endif\n#endif\n\n#ifdef SHEEN\nuniform vec4 vSheenColor;\n#ifdef SHEEN_TEXTURE\nuniform vec2 vSheenInfos;\nuniform mat4 sheenMatrix;\n#endif\n#endif\n\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\nuniform vec3 vRefractionMicrosurfaceInfos;\nuniform vec4 vRefractionInfos;\nuniform mat4 refractionMatrix;\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nuniform vec2 vThicknessInfos;\nuniform mat4 thicknessMatrix;\n#endif\nuniform vec2 vThicknessParam;\nuniform vec3 vDiffusionDistance;\nuniform vec4 vTintColor;\nuniform vec3 vSubSurfaceIntensity;\n#endif"; x.a.IncludesShadersStore.pbrFragmentDeclaration = T; var S = "layout(std140,column_major) uniform;\nuniform Material\n{\nuniform vec2 vAlbedoInfos;\nuniform vec4 vAmbientInfos;\nuniform vec2 vOpacityInfos;\nuniform vec2 vEmissiveInfos;\nuniform vec2 vLightmapInfos;\nuniform vec3 vReflectivityInfos;\nuniform vec2 vMicroSurfaceSamplerInfos;\nuniform vec2 vReflectionInfos;\nuniform vec3 vReflectionPosition;\nuniform vec3 vReflectionSize;\nuniform vec3 vBumpInfos;\nuniform mat4 albedoMatrix;\nuniform mat4 ambientMatrix;\nuniform mat4 opacityMatrix;\nuniform mat4 emissiveMatrix;\nuniform mat4 lightmapMatrix;\nuniform mat4 reflectivityMatrix;\nuniform mat4 microSurfaceSamplerMatrix;\nuniform mat4 bumpMatrix;\nuniform vec2 vTangentSpaceParams;\nuniform mat4 reflectionMatrix;\nuniform vec3 vReflectionColor;\nuniform vec4 vAlbedoColor;\nuniform vec4 vLightingIntensity;\nuniform vec3 vReflectionMicrosurfaceInfos;\nuniform float pointSize;\nuniform vec4 vReflectivityColor;\nuniform vec3 vEmissiveColor;\nuniform float visibility;\nuniform vec2 vClearCoatParams;\nuniform vec4 vClearCoatRefractionParams;\nuniform vec2 vClearCoatInfos;\nuniform mat4 clearCoatMatrix;\nuniform vec2 vClearCoatBumpInfos;\nuniform vec2 vClearCoatTangentSpaceParams;\nuniform mat4 clearCoatBumpMatrix;\nuniform vec4 vClearCoatTintParams;\nuniform float clearCoatColorAtDistance;\nuniform vec2 vClearCoatTintInfos;\nuniform mat4 clearCoatTintMatrix;\nuniform vec3 vAnisotropy;\nuniform vec2 vAnisotropyInfos;\nuniform mat4 anisotropyMatrix;\nuniform vec4 vSheenColor;\nuniform vec2 vSheenInfos;\nuniform mat4 sheenMatrix;\nuniform vec3 vRefractionMicrosurfaceInfos;\nuniform vec4 vRefractionInfos;\nuniform mat4 refractionMatrix;\nuniform vec2 vThicknessInfos;\nuniform mat4 thicknessMatrix;\nuniform vec2 vThicknessParam;\nuniform vec3 vDiffusionDistance;\nuniform vec4 vTintColor;\nuniform vec3 vSubSurfaceIntensity;\n};\nuniform Scene {\nmat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif\nmat4 view;\n};"; x.a.IncludesShadersStore.pbrUboDeclaration = S; var O = "uniform vec4 vEyePosition;\nuniform vec3 vAmbientColor;\nuniform vec4 vCameraInfos;\n\nvarying vec3 vPositionW;\n#if DEBUGMODE>0\nuniform vec2 vDebugMode;\nvarying vec4 vClipSpacePosition;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vec3 vEnvironmentIrradiance;\n#endif\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif"; x.a.IncludesShadersStore.pbrFragmentExtraDeclaration = O; n(60), n(61); var E = "#ifdef ALBEDO\n#if ALBEDODIRECTUV == 1\n#define vAlbedoUV vMainUV1\n#elif ALBEDODIRECTUV == 2\n#define vAlbedoUV vMainUV2\n#else\nvarying vec2 vAlbedoUV;\n#endif\nuniform sampler2D albedoSampler;\n#endif\n#ifdef AMBIENT\n#if AMBIENTDIRECTUV == 1\n#define vAmbientUV vMainUV1\n#elif AMBIENTDIRECTUV == 2\n#define vAmbientUV vMainUV2\n#else\nvarying vec2 vAmbientUV;\n#endif\nuniform sampler2D ambientSampler;\n#endif\n#ifdef OPACITY\n#if OPACITYDIRECTUV == 1\n#define vOpacityUV vMainUV1\n#elif OPACITYDIRECTUV == 2\n#define vOpacityUV vMainUV2\n#else\nvarying vec2 vOpacityUV;\n#endif\nuniform sampler2D opacitySampler;\n#endif\n#ifdef EMISSIVE\n#if EMISSIVEDIRECTUV == 1\n#define vEmissiveUV vMainUV1\n#elif EMISSIVEDIRECTUV == 2\n#define vEmissiveUV vMainUV2\n#else\nvarying vec2 vEmissiveUV;\n#endif\nuniform sampler2D emissiveSampler;\n#endif\n#ifdef LIGHTMAP\n#if LIGHTMAPDIRECTUV == 1\n#define vLightmapUV vMainUV1\n#elif LIGHTMAPDIRECTUV == 2\n#define vLightmapUV vMainUV2\n#else\nvarying vec2 vLightmapUV;\n#endif\nuniform sampler2D lightmapSampler;\n#endif\n#ifdef REFLECTIVITY\n#if REFLECTIVITYDIRECTUV == 1\n#define vReflectivityUV vMainUV1\n#elif REFLECTIVITYDIRECTUV == 2\n#define vReflectivityUV vMainUV2\n#else\nvarying vec2 vReflectivityUV;\n#endif\nuniform sampler2D reflectivitySampler;\n#endif\n#ifdef MICROSURFACEMAP\n#if MICROSURFACEMAPDIRECTUV == 1\n#define vMicroSurfaceSamplerUV vMainUV1\n#elif MICROSURFACEMAPDIRECTUV == 2\n#define vMicroSurfaceSamplerUV vMainUV2\n#else\nvarying vec2 vMicroSurfaceSamplerUV;\n#endif\nuniform sampler2D microSurfaceSampler;\n#endif\n#ifdef CLEARCOAT\n#ifdef CLEARCOAT_TEXTURE\n#if CLEARCOAT_TEXTUREDIRECTUV == 1\n#define vClearCoatUV vMainUV1\n#elif CLEARCOAT_TEXTUREDIRECTUV == 2\n#define vClearCoatUV vMainUV2\n#else\nvarying vec2 vClearCoatUV;\n#endif\nuniform sampler2D clearCoatSampler;\n#endif\n#ifdef CLEARCOAT_BUMP\n#if CLEARCOAT_BUMPDIRECTUV == 1\n#define vClearCoatBumpUV vMainUV1\n#elif CLEARCOAT_BUMPDIRECTUV == 2\n#define vClearCoatBumpUV vMainUV2\n#else\nvarying vec2 vClearCoatBumpUV;\n#endif\nuniform sampler2D clearCoatBumpSampler;\n#endif\n#ifdef CLEARCOAT_TINT_TEXTURE\n#if CLEARCOAT_TINT_TEXTUREDIRECTUV == 1\n#define vClearCoatTintUV vMainUV1\n#elif CLEARCOAT_TINT_TEXTUREDIRECTUV == 2\n#define vClearCoatTintUV vMainUV2\n#else\nvarying vec2 vClearCoatTintUV;\n#endif\nuniform sampler2D clearCoatTintSampler;\n#endif\n#endif\n#ifdef SHEEN\n#ifdef SHEEN_TEXTURE\n#if SHEEN_TEXTUREDIRECTUV == 1\n#define vSheenUV vMainUV1\n#elif SHEEN_TEXTUREDIRECTUV == 2\n#define vSheenUV vMainUV2\n#else\nvarying vec2 vSheenUV;\n#endif\nuniform sampler2D sheenSampler;\n#endif\n#endif\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_TEXTURE\n#if ANISOTROPIC_TEXTUREDIRECTUV == 1\n#define vAnisotropyUV vMainUV1\n#elif ANISOTROPIC_TEXTUREDIRECTUV == 2\n#define vAnisotropyUV vMainUV2\n#else\nvarying vec2 vAnisotropyUV;\n#endif\nuniform sampler2D anisotropySampler;\n#endif\n#endif\n\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;\nuniform samplerCube reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform samplerCube irradianceSampler;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform sampler2D reflectionSamplerLow;\nuniform sampler2D reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform sampler2D irradianceSampler;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#endif\n#ifdef ENVIRONMENTBRDF\nuniform sampler2D environmentBrdfSampler;\n#endif\n\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\n#ifdef SS_REFRACTIONMAP_3D\n#define sampleRefraction(s,c) textureCube(s,c)\nuniform samplerCube refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;\nuniform samplerCube refractionSamplerHigh;\n#endif\n#else\n#define sampleRefraction(s,c) texture2D(s,c)\nuniform sampler2D refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;\nuniform samplerCube refractionSamplerHigh;\n#endif\n#endif\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\n#if SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 1\n#define vThicknessUV vMainUV1\n#elif SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 2\n#define vThicknessUV vMainUV2\n#else\nvarying vec2 vThicknessUV;\n#endif\nuniform sampler2D thicknessSampler;\n#endif\n#endif"; x.a.IncludesShadersStore.pbrFragmentSamplersDeclaration = E; n(140), n(86), n(142), n(87), n(59); var M = "\n#define RECIPROCAL_PI2 0.15915494\n#define RECIPROCAL_PI 0.31830988618\n\n#define MINIMUMVARIANCE 0.0005\nfloat convertRoughnessToAverageSlope(float roughness)\n{\n\nreturn square(roughness)+MINIMUMVARIANCE;\n}\nfloat fresnelGrazingReflectance(float reflectance0) {\n\n\nfloat reflectance90=saturate(reflectance0*25.0);\nreturn reflectance90;\n}\nvec2 getAARoughnessFactors(vec3 normalVector) {\n#ifdef SPECULARAA\nvec3 nDfdx=dFdx(normalVector.xyz);\nvec3 nDfdy=dFdy(normalVector.xyz);\nfloat slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));\n\nfloat geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);\n\nfloat geometricAlphaGFactor=sqrt(slopeSquare);\n\ngeometricAlphaGFactor*=0.75;\nreturn vec2(geometricRoughnessFactor,geometricAlphaGFactor);\n#else\nreturn vec2(0.);\n#endif\n}\n#ifdef ANISOTROPIC\n\n\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {\nfloat alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);\nfloat alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);\nreturn vec2(alphaT,alphaB);\n}\n\n\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy) {\nvec3 anisotropicFrameDirection=anisotropy>=0.0 ? B : T;\nvec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);\nvec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);\nvec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));\nreturn anisotropicNormal;\n\n}\n#endif\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\n\n\n\nvec3 cocaLambert(vec3 alpha,float distance) {\nreturn exp(-alpha*distance);\n}\n\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {\nreturn cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));\n}\n\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {\nreturn -log(color)/distance;\n}\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\nvec3 clearCoatAbsorption=mix(vec3(1.0),\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\nclearCoatIntensity);\nreturn clearCoatAbsorption;\n}\n#endif\n\n\n\n\n#ifdef MICROSURFACEAUTOMATIC\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\n{\nconst float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;\nfloat reflectivityLuminance=getLuminance(reflectivityColor);\nfloat reflectivityLuma=sqrt(reflectivityLuminance);\nmicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;\nreturn microSurface;\n}\n#endif"; x.a.IncludesShadersStore.pbrHelperFunctions = M; n(141), n(99); var A = "#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nuniform vec3 vSphericalL00;\nuniform vec3 vSphericalL1_1;\nuniform vec3 vSphericalL10;\nuniform vec3 vSphericalL11;\nuniform vec3 vSphericalL2_2;\nuniform vec3 vSphericalL2_1;\nuniform vec3 vSphericalL20;\nuniform vec3 vSphericalL21;\nuniform vec3 vSphericalL22;\n\n\n\n\n\n\n\nvec3 computeEnvironmentIrradiance(vec3 normal) {\nreturn vSphericalL00\n+vSphericalL1_1*(normal.y)\n+vSphericalL10*(normal.z)\n+vSphericalL11*(normal.x)\n+vSphericalL2_2*(normal.y*normal.x)\n+vSphericalL2_1*(normal.y*normal.z)\n+vSphericalL20*((3.0*normal.z*normal.z)-1.0)\n+vSphericalL21*(normal.z*normal.x)\n+vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));\n}\n#else\nuniform vec3 vSphericalX;\nuniform vec3 vSphericalY;\nuniform vec3 vSphericalZ;\nuniform vec3 vSphericalXX_ZZ;\nuniform vec3 vSphericalYY_ZZ;\nuniform vec3 vSphericalZZ;\nuniform vec3 vSphericalXY;\nuniform vec3 vSphericalYZ;\nuniform vec3 vSphericalZX;\n\nvec3 computeEnvironmentIrradiance(vec3 normal) {\n\n\n\n\n\n\n\n\n\nfloat Nx=normal.x;\nfloat Ny=normal.y;\nfloat Nz=normal.z;\nvec3 C1=vSphericalZZ.rgb;\nvec3 Cx=vSphericalX.rgb;\nvec3 Cy=vSphericalY.rgb;\nvec3 Cz=vSphericalZ.rgb;\nvec3 Cxx_zz=vSphericalXX_ZZ.rgb;\nvec3 Cyy_zz=vSphericalYY_ZZ.rgb;\nvec3 Cxy=vSphericalXY.rgb;\nvec3 Cyz=vSphericalYZ.rgb;\nvec3 Czx=vSphericalZX.rgb;\nvec3 a1=Cyy_zz*Ny+Cy;\nvec3 a2=Cyz*Nz+a1;\nvec3 b1=Czx*Nz+Cx;\nvec3 b2=Cxy*Ny+b1;\nvec3 b3=Cxx_zz*Nx+b2;\nvec3 t1=Cz*Nz+C1;\nvec3 t2=a2*Ny+t1;\nvec3 t3=b3*Nx+t2;\nreturn t3;\n}\n#endif\n#endif"; x.a.IncludesShadersStore.harmonicsFunctions = A; var I = "\nstruct preLightingInfo\n{\n\nvec3 lightOffset;\nfloat lightDistanceSquared;\nfloat lightDistance;\n\nfloat attenuation;\n\nvec3 L;\nvec3 H;\nfloat NdotV;\nfloat NdotLUnclamped;\nfloat NdotL;\nfloat VdotH;\nfloat roughness;\n};\npreLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\nresult.lightOffset=lightData.xyz-vPositionW;\nresult.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);\n\nresult.lightDistance=sqrt(result.lightDistanceSquared);\n\nresult.L=normalize(result.lightOffset);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\nresult.NdotLUnclamped=dot(N,result.L);\nresult.NdotL=saturateEps(result.NdotLUnclamped);\nreturn result;\n}\npreLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\nresult.lightDistance=length(-lightData.xyz);\n\nresult.L=normalize(-lightData.xyz);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\nresult.NdotLUnclamped=dot(N,result.L);\nresult.NdotL=saturateEps(result.NdotLUnclamped);\nreturn result;\n}\npreLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\npreLightingInfo result;\n\n\nresult.NdotL=dot(N,lightData.xyz)*0.5+0.5;\nresult.NdotL=saturateEps(result.NdotL);\nresult.NdotLUnclamped=result.NdotL;\n#ifdef SPECULARTERM\nresult.L=normalize(lightData.xyz);\nresult.H=normalize(V+result.L);\nresult.VdotH=saturate(dot(V,result.H));\n#endif\nreturn result;\n}"; x.a.IncludesShadersStore.pbrDirectLightingSetupFunctions = I; var D = "float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)\n{\nreturn max(0.,1.0-length(lightOffset)/range);\n}\nfloat computeDistanceLightFalloff_Physical(float lightDistanceSquared)\n{\nreturn 1.0/maxEps(lightDistanceSquared);\n}\nfloat computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange)\n{\nfloat lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);\nfloat factor=lightDistanceSquared*inverseSquaredRange;\nfloat attenuation=saturate(1.0-factor*factor);\nattenuation*=attenuation;\n\nlightDistanceFalloff*=attenuation;\nreturn lightDistanceFalloff;\n}\nfloat computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDistanceLightFalloff_Physical(lightDistanceSquared);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\n#else\nreturn computeDistanceLightFalloff_Standard(lightOffset,range);\n#endif\n}\nfloat computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent)\n{\nfloat falloff=0.0;\nfloat cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));\nif (cosAngle>=cosHalfAngle)\n{\nfalloff=max(0.,pow(cosAngle,exponent));\n}\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle)\n{\nconst float kMinusLog2ConeAngleIntensityRatio=6.64385618977;\n\n\n\n\n\nfloat concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);\n\n\nvec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);\nfloat falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset)\n{\n\n\n\nfloat cd=dot(-lightDirection,directionToLightCenterW);\nfloat falloff=saturate(cd*lightAngleScale+lightAngleOffset);\n\nfalloff*=falloff;\nreturn falloff;\n}\nfloat computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\n#else\nreturn computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\n#endif\n}"; x.a.IncludesShadersStore.pbrDirectLightingFalloffFunctions = D; var R = "\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\n\n\n\n\n#ifdef MS_BRDF_ENERGY_CONSERVATION\n\n\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\nreturn 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\n}\n#endif\n#ifdef ENVIRONMENTBRDF\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness) {\n\nvec2 UV=vec2(NdotV,perceptualRoughness);\n\nvec4 brdfLookup=texture2D(environmentBrdfSampler,UV);\n#ifdef ENVIRONMENTBRDF_RGBD\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\n#endif\nreturn brdfLookup.rgb;\n}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\n#endif\nreturn reflectance;\n}\n#endif\n#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{\n\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\n}\n#endif\n#if defined(SHEEN) && defined(REFLECTION)\n\nvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {\nvec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\nreturn sheenEnvironmentReflectance;\n}\n#endif\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\n{\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\n}\nfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\n{\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\n}\n#ifdef CLEARCOAT\n\n\n\n\n\nvec3 getR0RemappedForClearCoat(vec3 f0) {\n#ifdef CLEARCOAT_DEFAULTIOR\n#ifdef MOBILE\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\n#else\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\n#endif\n#else\nvec3 s=sqrt(f0);\nvec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\nreturn t*t;\n#endif\n}\n#endif\n\n\n\n\n\n\nfloat normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)\n{\n\n\n\nfloat a2=square(alphaG);\nfloat d=NdotH*NdotH*(a2-1.0)+1.0;\nreturn a2/(PI*d*d);\n}\n#ifdef SHEEN\n\nfloat normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)\n{\nfloat invR=1./alphaG;\nfloat cos2h=NdotH*NdotH;\nfloat sin2h=1.-cos2h;\nreturn (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\n}\n#endif\n#ifdef ANISOTROPIC\n\n\nfloat normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {\nfloat a2=alphaTB.x*alphaTB.y;\nvec3 v=vec3(alphaTB.y*TdotH,alphaTB.x*BdotH,a2*NdotH);\nfloat v2=dot(v,v);\nfloat w2=a2/v2;\nreturn a2*w2*w2*RECIPROCAL_PI;\n}\n#endif\n\n\n\n\n#ifdef BRDF_V_HEIGHT_CORRELATED\n\n\n\nfloat smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {\n#ifdef MOBILE\n\nfloat GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\nfloat GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\nreturn 0.5/(GGXV+GGXL);\n#else\nfloat a2=alphaG*alphaG;\nfloat GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\nfloat GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\nreturn 0.5/(GGXV+GGXL);\n#endif\n}\n#else\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfloat smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)\n{\n#ifdef MOBILE\n\nreturn 1.0/(dot+alphaG+(1.0-alphaG)*dot ));\n#else\nfloat alphaSquared=alphaG*alphaG;\nreturn 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\n#endif\n}\nfloat smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)\n{\nfloat visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\n\nreturn visibility;\n}\n#endif\n#ifdef ANISOTROPIC\n\n\nfloat smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {\nfloat lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\nfloat lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\nfloat v=0.5/(lambdaV+lambdaL);\nreturn v;\n}\n#endif\n#ifdef CLEARCOAT\nfloat visibility_Kelemen(float VdotH) {\n\n\n\nreturn 0.25/(VdotH*VdotH);\n}\n#endif\n#ifdef SHEEN\n\n\n\nfloat visibility_Ashikhmin(float NdotL,float NdotV)\n{\nreturn 1./(4.*(NdotL+NdotV-NdotL*NdotV));\n}\n#endif\n\n\n\n\n\n\n\nfloat diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {\n\n\nfloat diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\nfloat diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\nfloat diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\nfloat fresnel =\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\nreturn fresnel/PI;\n}\n#ifdef SS_TRANSLUCENCY\n\n\nvec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {\nvec3 S=1./maxEps(diffusionDistance);\nvec3 temp=exp((-0.333333333*thickness)*S);\nreturn tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\n}\n\n\nfloat computeWrappedDiffuseNdotL(float NdotL,float w) {\nfloat t=1.0+w;\nfloat invt2=1.0/square(t);\nreturn saturate((NdotL+w)*invt2);\n}\n#endif\n"; x.a.IncludesShadersStore.pbrBRDFFunctions = R; var w = "#define CLEARCOATREFLECTANCE90 1.0\n\nstruct lightingInfo\n{\nvec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef CLEARCOAT\n\n\nvec4 clearCoat;\n#endif\n#ifdef SHEEN\nvec3 sheen;\n#endif\n};\n\nfloat adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\n\nfloat lightRoughness=lightRadius/lightDistance;\n\nfloat totalRoughness=saturate(lightRoughness+roughness);\nreturn totalRoughness;\n#else\nreturn roughness;\n#endif\n}\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {\nreturn mix(groundColor,lightColor,info.NdotL);\n}\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {\nfloat diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);\nreturn diffuseTerm*info.attenuation*info.NdotL*lightColor;\n}\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\nstrq/=strq.w;\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\nreturn toLinearSpace(textureColor);\n}\n#ifdef SS_TRANSLUCENCY\nvec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {\nfloat NdotL=absEps(info.NdotLUnclamped);\n\nfloat wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);\n\nfloat trAdapt=step(0.,info.NdotLUnclamped);\nvec3 transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\nfloat diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\nreturn diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;\n}\n#endif\n#ifdef SPECULARTERM\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\n#else\nfloat smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\n#endif\nvec3 specTerm=fresnel*distribution*smithVisibility;\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n#ifdef ANISOTROPIC\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat TdotH=dot(T,info.H);\nfloat BdotH=dot(B,info.H);\nfloat TdotV=dot(T,V);\nfloat BdotV=dot(B,V);\nfloat TdotL=dot(T,info.L);\nfloat BdotL=dot(B,info.L);\nfloat alphaG=convertRoughnessToAverageSlope(info.roughness);\nvec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);\nalphaTB=max(alphaTB,square(geometricRoughnessFactor));\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);\nfloat smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);\nvec3 specTerm=fresnel*distribution*smithVisibility;\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n#ifdef CLEARCOAT\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {\nfloat NccdotL=saturateEps(dot(Ncc,info.L));\nfloat NccdotH=saturateEps(dot(Ncc,info.H));\nfloat clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\nfloat fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\nfresnel*=clearCoatIntensity;\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);\nfloat kelemenVisibility=visibility_Kelemen(info.VdotH);\nfloat clearCoatTerm=fresnel*distribution*kelemenVisibility;\nreturn vec4(\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\n1.0-fresnel\n);\n}\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\nvec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);\nfloat NdotLRefract=saturateEps(dot(Ncc,LRefract));\nvec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);\nreturn absorption;\n}\n#endif\n#ifdef SHEEN\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\nfloat NdotH=saturateEps(dot(N,info.H));\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\n\n\nfloat fresnel=1.;\nfloat distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);\nfloat ashikhminvisibility=visibility_Ashikhmin(info.NdotL,info.NdotV);\nfloat sheenTerm=fresnel*distribution*ashikhminvisibility;\nreturn sheenTerm*info.attenuation*info.NdotL*lightColor;\n}\n#endif\n"; x.a.IncludesShadersStore.pbrDirectLightingFunctions = w; var L = "#if defined(REFLECTION) || defined(SS_REFRACTION)\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {\nfloat microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;\nfloat lod=log2(microsurfaceAverageSlopeTexels);\nreturn lod;\n}\nfloat getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {\nfloat lod=log2(cubeMapDimensionPixels)*roughness;\nreturn lod;\n}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)\nfloat environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {\n\n\nfloat temp=NdotVUnclamped+ambientOcclusion;\nreturn saturate(square(temp)-1.0+ambientOcclusion);\n}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)\nfloat environmentHorizonOcclusion(vec3 view,vec3 normal) {\n\nvec3 reflection=reflect(view,normal);\nfloat temp=saturate(1.0+1.1*dot(reflection,normal));\nreturn square(temp);\n}\n#endif\n\n\n\n\n#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)\n\n\n#define UNPACK_LOD(x) (1.0-x)*255.0\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {\nfloat microsurfaceAverageSlope=alphaG;\n\n\n\n\n\n\nmicrosurfaceAverageSlope*=sqrt(abs(NdotV));\nreturn getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);\n}\n#endif"; x.a.IncludesShadersStore.pbrIBLFunctions = L; n(172), n(171), n(82), n(173), n(114), n(100), n(174), n(90); var F = "#if DEBUGMODE>0\nif (vClipSpacePosition.x/vClipSpacePosition.w= 1) && e.prototype.needAlphaBlendingForMesh.call(this, t); }), (t.prototype.needAlphaTesting = function () { return ( !!this._forceAlphaTest || (!this.subSurface.disableAlphaBlending && null != this._albedoTexture && this._albedoTexture.hasAlpha && (null == this._transparencyMode || this._transparencyMode === t.PBRMATERIAL_ALPHATEST)) ); }), (t.prototype._shouldUseAlphaFromAlbedoTexture = function () { return null != this._albedoTexture && this._albedoTexture.hasAlpha && this._useAlphaFromAlbedoTexture && this._transparencyMode !== t.PBRMATERIAL_OPAQUE; }), (t.prototype.getAlphaTestTexture = function () { return this._albedoTexture; }), (t.prototype.isReadyForSubMesh = function (e, t, n) { if (t.effect && this.isFrozen && t.effect._wasPreviouslyReady) return !0; t._materialDefines || (t._materialDefines = new B()); var i = t._materialDefines; if (!this.checkReadyOnEveryCall && t.effect && i._renderId === this.getScene().getRenderId()) return !0; var r = this.getScene(), a = r.getEngine(); if (i._areTexturesDirty && r.texturesEnabled) { if (this._albedoTexture && d.a.DiffuseTextureEnabled && !this._albedoTexture.isReadyOrNotBlocking()) return !1; if (this._ambientTexture && d.a.AmbientTextureEnabled && !this._ambientTexture.isReadyOrNotBlocking()) return !1; if (this._opacityTexture && d.a.OpacityTextureEnabled && !this._opacityTexture.isReadyOrNotBlocking()) return !1; var s = this._getReflectionTexture(); if (s && d.a.ReflectionTextureEnabled) { if (!s.isReadyOrNotBlocking()) return !1; if (s.irradianceTexture && !s.irradianceTexture.isReadyOrNotBlocking()) return !1; } if (this._lightmapTexture && d.a.LightmapTextureEnabled && !this._lightmapTexture.isReadyOrNotBlocking()) return !1; if (this._emissiveTexture && d.a.EmissiveTextureEnabled && !this._emissiveTexture.isReadyOrNotBlocking()) return !1; if (d.a.SpecularTextureEnabled) { if (this._metallicTexture) { if (!this._metallicTexture.isReadyOrNotBlocking()) return !1; } else if (this._reflectivityTexture && !this._reflectivityTexture.isReadyOrNotBlocking()) return !1; if (this._microSurfaceTexture && !this._microSurfaceTexture.isReadyOrNotBlocking()) return !1; } if (a.getCaps().standardDerivatives && this._bumpTexture && d.a.BumpTextureEnabled && !this._disableBumpMap && !this._bumpTexture.isReady()) return !1; if (this._environmentBRDFTexture && d.a.ReflectionTextureEnabled && !this._environmentBRDFTexture.isReady()) return !1; } if (!(this.subSurface.isReadyForSubMesh(i, r) && this.clearCoat.isReadyForSubMesh(i, r, a, this._disableBumpMap) && this.sheen.isReadyForSubMesh(i, r) && this.anisotropy.isReadyForSubMesh(i, r))) return !1; if (i._areImageProcessingDirty && this._imageProcessingConfiguration && !this._imageProcessingConfiguration.isReady()) return !1; a.getCaps().standardDerivatives || e.isVerticesDataPresent(u.b.NormalKind) || (e.createNormals(!0), o.a.Warn("PBRMaterial: Normals have been created for the mesh: " + e.name)); var c = t.effect, l = i._areLightsDisposed, h = this._prepareEffect(e, i, this.onCompiled, this.onError, n); if (h) if (this.allowShaderHotSwapping && c && !h.isReady()) { if (((h = c), (this._rebuildInParallel = !0), i.markAsUnprocessed(), l)) return (i._areLightsDisposed = !0), !1; } else (this._rebuildInParallel = !1), r.resetCachedMaterial(), t.setEffect(h, i), this.buildUniformLayout(); return !(!t.effect || !t.effect.isReady()) && ((i._renderId = r.getRenderId()), (t.effect._wasPreviouslyReady = !0), !0); }), (t.prototype.isMetallicWorkflow = function () { return !(null == this._metallic && null == this._roughness && !this._metallicTexture); }), (t.prototype._prepareEffect = function (e, t, n, i, r, o) { if ((void 0 === n && (n = null), void 0 === i && (i = null), void 0 === r && (r = null), void 0 === o && (o = null), this._prepareDefines(e, t, r, o), !t.isDirty)) return null; t.markAsProcessed(); var a = this.getScene().getEngine(), s = new j.a(), c = 0; t.USESPHERICALINVERTEX && s.addFallback(c++, "USESPHERICALINVERTEX"), t.FOG && s.addFallback(c, "FOG"), t.SPECULARAA && s.addFallback(c, "SPECULARAA"), t.POINTSIZE && s.addFallback(c, "POINTSIZE"), t.LOGARITHMICDEPTH && s.addFallback(c, "LOGARITHMICDEPTH"), t.PARALLAX && s.addFallback(c, "PARALLAX"), t.PARALLAXOCCLUSION && s.addFallback(c++, "PARALLAXOCCLUSION"), (c = m.AddFallbacks(t, s, c)), (c = m.AddFallbacks(t, s, c)), (c = _.AddFallbacks(t, s, c)), (c = b.AddFallbacks(t, s, c)), t.ENVIRONMENTBRDF && s.addFallback(c++, "ENVIRONMENTBRDF"), t.TANGENT && s.addFallback(c++, "TANGENT"), t.BUMP && s.addFallback(c++, "BUMP"), (c = p.a.HandleFallbacksForShadows(t, s, this._maxSimultaneousLights, c++)), t.SPECULARTERM && s.addFallback(c++, "SPECULARTERM"), t.USESPHERICALFROMREFLECTIONMAP && s.addFallback(c++, "USESPHERICALFROMREFLECTIONMAP"), t.USEIRRADIANCEMAP && s.addFallback(c++, "USEIRRADIANCEMAP"), t.LIGHTMAP && s.addFallback(c++, "LIGHTMAP"), t.NORMAL && s.addFallback(c++, "NORMAL"), t.AMBIENT && s.addFallback(c++, "AMBIENT"), t.EMISSIVE && s.addFallback(c++, "EMISSIVE"), t.VERTEXCOLOR && s.addFallback(c++, "VERTEXCOLOR"), t.MORPHTARGETS && s.addFallback(c++, "MORPHTARGETS"), t.MULTIVIEW && s.addFallback(0, "MULTIVIEW"); var l = [u.b.PositionKind]; t.NORMAL && l.push(u.b.NormalKind), t.TANGENT && l.push(u.b.TangentKind), t.UV1 && l.push(u.b.UVKind), t.UV2 && l.push(u.b.UV2Kind), t.VERTEXCOLOR && l.push(u.b.ColorKind), p.a.PrepareAttributesForBones(l, e, t, s), p.a.PrepareAttributesForInstances(l, t), p.a.PrepareAttributesForMorphTargets(l, e, t); var h = "pbr", d = [ "world", "view", "viewProjection", "vEyePosition", "vLightsType", "vAmbientColor", "vAlbedoColor", "vReflectivityColor", "vEmissiveColor", "visibility", "vReflectionColor", "vFogInfos", "vFogColor", "pointSize", "vAlbedoInfos", "vAmbientInfos", "vOpacityInfos", "vReflectionInfos", "vReflectionPosition", "vReflectionSize", "vEmissiveInfos", "vReflectivityInfos", "vMicroSurfaceSamplerInfos", "vBumpInfos", "vLightmapInfos", "mBones", "vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "albedoMatrix", "ambientMatrix", "opacityMatrix", "reflectionMatrix", "emissiveMatrix", "reflectivityMatrix", "normalMatrix", "microSurfaceSamplerMatrix", "bumpMatrix", "lightmapMatrix", "vLightingIntensity", "logarithmicDepthConstant", "vSphericalX", "vSphericalY", "vSphericalZ", "vSphericalXX_ZZ", "vSphericalYY_ZZ", "vSphericalZZ", "vSphericalXY", "vSphericalYZ", "vSphericalZX", "vSphericalL00", "vSphericalL1_1", "vSphericalL10", "vSphericalL11", "vSphericalL2_2", "vSphericalL2_1", "vSphericalL20", "vSphericalL21", "vSphericalL22", "vReflectionMicrosurfaceInfos", "vTangentSpaceParams", "boneTextureWidth", "vDebugMode", ], g = [ "albedoSampler", "reflectivitySampler", "ambientSampler", "emissiveSampler", "bumpSampler", "lightmapSampler", "opacitySampler", "reflectionSampler", "reflectionSamplerLow", "reflectionSamplerHigh", "irradianceSampler", "microSurfaceSampler", "environmentBrdfSampler", "boneSampler", ], y = ["Material", "Scene"]; _.AddUniforms(d), _.AddSamplers(g), f.AddUniforms(d), f.AddSamplers(g), m.AddUniforms(d), m.AddSamplers(g), b.AddUniforms(d), b.AddSamplers(g), v.a && (v.a.PrepareUniforms(d, t), v.a.PrepareSamplers(g, t)), p.a.PrepareUniformsAndSamplersList({ uniformsNames: d, uniformBuffersNames: y, samplers: g, defines: t, maxSimultaneousLights: this._maxSimultaneousLights }), this.customShaderNameResolve && (h = this.customShaderNameResolve(h, d, y, g, t)); var C = t.toString(); return a.createEffect( h, { attributes: l, uniformsNames: d, uniformBuffersNames: y, samplers: g, defines: C, fallbacks: s, onCompiled: n, onError: i, indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: t.NUM_MORPH_INFLUENCERS }, }, a ); }), (t.prototype._prepareDefines = function (e, n, i, r) { void 0 === i && (i = null), void 0 === r && (r = null); var o = this.getScene(), a = o.getEngine(); if ( (p.a.PrepareDefinesForLights(o, e, n, !0, this._maxSimultaneousLights, this._disableLighting), (n._needNormals = !0), p.a.PrepareDefinesForMultiview(o, n), (n.METALLICWORKFLOW = this.isMetallicWorkflow()), n._areTexturesDirty) ) { if (((n._needUVs = !1), o.texturesEnabled)) { o.getEngine().getCaps().textureLOD && (n.LODBASEDMICROSFURACE = !0), this._albedoTexture && d.a.DiffuseTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._albedoTexture, n, "ALBEDO"), (n.GAMMAALBEDO = this._albedoTexture.gammaSpace)) : (n.ALBEDO = !1), this._ambientTexture && d.a.AmbientTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._ambientTexture, n, "AMBIENT"), (n.AMBIENTINGRAYSCALE = this._useAmbientInGrayScale)) : (n.AMBIENT = !1), this._opacityTexture && d.a.OpacityTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._opacityTexture, n, "OPACITY"), (n.OPACITYRGB = this._opacityTexture.getAlphaFromRGB)) : (n.OPACITY = !1); var s = this._getReflectionTexture(); if (s && d.a.ReflectionTextureEnabled) { switch ( ((n.REFLECTION = !0), (n.GAMMAREFLECTION = s.gammaSpace), (n.RGBDREFLECTION = s.isRGBD), (n.REFLECTIONMAP_OPPOSITEZ = this.getScene().useRightHandedSystem ? !s.invertZ : s.invertZ), (n.LODINREFLECTIONALPHA = s.lodLevelInAlpha), (n.LINEARSPECULARREFLECTION = s.linearSpecularLOD), s.coordinatesMode === P.a.INVCUBIC_MODE && (n.INVERTCUBICMAP = !0), (n.REFLECTIONMAP_3D = s.isCube), (n.REFLECTIONMAP_CUBIC = !1), (n.REFLECTIONMAP_EXPLICIT = !1), (n.REFLECTIONMAP_PLANAR = !1), (n.REFLECTIONMAP_PROJECTION = !1), (n.REFLECTIONMAP_SKYBOX = !1), (n.REFLECTIONMAP_SPHERICAL = !1), (n.REFLECTIONMAP_EQUIRECTANGULAR = !1), (n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1), (n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1), s.coordinatesMode) ) { case P.a.EXPLICIT_MODE: n.REFLECTIONMAP_EXPLICIT = !0; break; case P.a.PLANAR_MODE: n.REFLECTIONMAP_PLANAR = !0; break; case P.a.PROJECTION_MODE: n.REFLECTIONMAP_PROJECTION = !0; break; case P.a.SKYBOX_MODE: n.REFLECTIONMAP_SKYBOX = !0; break; case P.a.SPHERICAL_MODE: n.REFLECTIONMAP_SPHERICAL = !0; break; case P.a.EQUIRECTANGULAR_MODE: n.REFLECTIONMAP_EQUIRECTANGULAR = !0; break; case P.a.FIXED_EQUIRECTANGULAR_MODE: n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !0; break; case P.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE: n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !0; break; case P.a.CUBIC_MODE: case P.a.INVCUBIC_MODE: default: (n.REFLECTIONMAP_CUBIC = !0), (n.USE_LOCAL_REFLECTIONMAP_CUBIC = !!s.boundingBoxSize); } s.coordinatesMode !== P.a.SKYBOX_MODE && (s.irradianceTexture ? ((n.USEIRRADIANCEMAP = !0), (n.USESPHERICALFROMREFLECTIONMAP = !1)) : s.isCube && ((n.USESPHERICALFROMREFLECTIONMAP = !0), (n.USEIRRADIANCEMAP = !1), this._forceIrradianceInFragment || o.getEngine().getCaps().maxVaryingVectors <= 8 ? (n.USESPHERICALINVERTEX = !1) : (n.USESPHERICALINVERTEX = !0))); } else (n.REFLECTION = !1), (n.REFLECTIONMAP_3D = !1), (n.REFLECTIONMAP_SPHERICAL = !1), (n.REFLECTIONMAP_PLANAR = !1), (n.REFLECTIONMAP_CUBIC = !1), (n.USE_LOCAL_REFLECTIONMAP_CUBIC = !1), (n.REFLECTIONMAP_PROJECTION = !1), (n.REFLECTIONMAP_SKYBOX = !1), (n.REFLECTIONMAP_EXPLICIT = !1), (n.REFLECTIONMAP_EQUIRECTANGULAR = !1), (n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1), (n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1), (n.INVERTCUBICMAP = !1), (n.USESPHERICALFROMREFLECTIONMAP = !1), (n.USEIRRADIANCEMAP = !1), (n.USESPHERICALINVERTEX = !1), (n.REFLECTIONMAP_OPPOSITEZ = !1), (n.LODINREFLECTIONALPHA = !1), (n.GAMMAREFLECTION = !1), (n.RGBDREFLECTION = !1), (n.LINEARSPECULARREFLECTION = !1); this._lightmapTexture && d.a.LightmapTextureEnabled ? (p.a.PrepareDefinesForMergedUV(this._lightmapTexture, n, "LIGHTMAP"), (n.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap), (n.GAMMALIGHTMAP = this._lightmapTexture.gammaSpace), (n.RGBDLIGHTMAP = this._lightmapTexture.isRGBD)) : (n.LIGHTMAP = !1), this._emissiveTexture && d.a.EmissiveTextureEnabled ? p.a.PrepareDefinesForMergedUV(this._emissiveTexture, n, "EMISSIVE") : (n.EMISSIVE = !1), d.a.SpecularTextureEnabled ? (this._metallicTexture ? (p.a.PrepareDefinesForMergedUV(this._metallicTexture, n, "REFLECTIVITY"), (n.ROUGHNESSSTOREINMETALMAPALPHA = this._useRoughnessFromMetallicTextureAlpha), (n.ROUGHNESSSTOREINMETALMAPGREEN = !this._useRoughnessFromMetallicTextureAlpha && this._useRoughnessFromMetallicTextureGreen), (n.METALLNESSSTOREINMETALMAPBLUE = this._useMetallnessFromMetallicTextureBlue), (n.AOSTOREINMETALMAPRED = this._useAmbientOcclusionFromMetallicTextureRed), (n.METALLICF0FACTORFROMMETALLICMAP = this._useMetallicF0FactorFromMetallicTexture)) : this._reflectivityTexture ? (p.a.PrepareDefinesForMergedUV(this._reflectivityTexture, n, "REFLECTIVITY"), (n.MICROSURFACEFROMREFLECTIVITYMAP = this._useMicroSurfaceFromReflectivityMapAlpha), (n.MICROSURFACEAUTOMATIC = this._useAutoMicroSurfaceFromReflectivityMap)) : (n.REFLECTIVITY = !1), this._microSurfaceTexture ? p.a.PrepareDefinesForMergedUV(this._microSurfaceTexture, n, "MICROSURFACEMAP") : (n.MICROSURFACEMAP = !1)) : ((n.REFLECTIVITY = !1), (n.MICROSURFACEMAP = !1)), o.getEngine().getCaps().standardDerivatives && this._bumpTexture && d.a.BumpTextureEnabled && !this._disableBumpMap ? (p.a.PrepareDefinesForMergedUV(this._bumpTexture, n, "BUMP"), this._useParallax && this._albedoTexture && d.a.DiffuseTextureEnabled ? ((n.PARALLAX = !0), (n.PARALLAXOCCLUSION = !!this._useParallaxOcclusion)) : (n.PARALLAX = !1), (n.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap)) : (n.BUMP = !1), this._environmentBRDFTexture && d.a.ReflectionTextureEnabled ? ((n.ENVIRONMENTBRDF = !0), (n.ENVIRONMENTBRDF_RGBD = this._environmentBRDFTexture.isRGBD)) : ((n.ENVIRONMENTBRDF = !1), (n.ENVIRONMENTBRDF_RGBD = !1)), this._shouldUseAlphaFromAlbedoTexture() ? (n.ALPHAFROMALBEDO = !0) : (n.ALPHAFROMALBEDO = !1); } (n.SPECULAROVERALPHA = this._useSpecularOverAlpha), this._lightFalloff === t.LIGHTFALLOFF_STANDARD ? ((n.USEPHYSICALLIGHTFALLOFF = !1), (n.USEGLTFLIGHTFALLOFF = !1)) : this._lightFalloff === t.LIGHTFALLOFF_GLTF ? ((n.USEPHYSICALLIGHTFALLOFF = !1), (n.USEGLTFLIGHTFALLOFF = !0)) : ((n.USEPHYSICALLIGHTFALLOFF = !0), (n.USEGLTFLIGHTFALLOFF = !1)), (n.RADIANCEOVERALPHA = this._useRadianceOverAlpha), !this.backFaceCulling && this._twoSidedLighting ? (n.TWOSIDEDLIGHTING = !0) : (n.TWOSIDEDLIGHTING = !1), (n.SPECULARAA = o.getEngine().getCaps().standardDerivatives && this._enableSpecularAntiAliasing); } (n._areTexturesDirty || n._areMiscDirty) && ((n.ALPHATESTVALUE = this._alphaCutOff + (this._alphaCutOff % 1 == 0 ? "." : "")), (n.PREMULTIPLYALPHA = 7 === this.alphaMode || 8 === this.alphaMode), (n.ALPHABLEND = this.needAlphaBlendingForMesh(e)), (n.ALPHAFRESNEL = this._useAlphaFresnel || this._useLinearAlphaFresnel), (n.LINEARALPHAFRESNEL = this._useLinearAlphaFresnel)), n._areImageProcessingDirty && this._imageProcessingConfiguration && this._imageProcessingConfiguration.prepareDefines(n), (n.FORCENORMALFORWARD = this._forceNormalForward), (n.RADIANCEOCCLUSION = this._useRadianceOcclusion), (n.HORIZONOCCLUSION = this._useHorizonOcclusion), n._areMiscDirty && (p.a.PrepareDefinesForMisc(e, o, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e) || this._forceAlphaTest, n), (n.UNLIT = this._unlit || ((this.pointsCloud || this.wireframe) && !e.isVerticesDataPresent(u.b.NormalKind))), (n.DEBUGMODE = this._debugMode)), this.subSurface.prepareDefines(n, o), this.clearCoat.prepareDefines(n, o), this.anisotropy.prepareDefines(n, e, o), this.brdf.prepareDefines(n), this.sheen.prepareDefines(n, o), p.a.PrepareDefinesForFrameBoundValues(o, a, n, !!i, r), p.a.PrepareDefinesForAttributes(e, n, !0, !0, !0, this._transparencyMode !== t.PBRMATERIAL_OPAQUE); }), (t.prototype.forceCompilation = function (e, t, n) { var r = this, o = Object(i.a)({ clipPlane: !1, useInstances: !1 }, n), a = new B(), s = this._prepareEffect(e, a, void 0, void 0, o.useInstances, o.clipPlane); s.isReady() ? t && t(this) : s.onCompileObservable.add(function () { t && t(r); }); }), (t.prototype.buildUniformLayout = function () { var e = this._uniformBuffer; e.addUniform("vAlbedoInfos", 2), e.addUniform("vAmbientInfos", 4), e.addUniform("vOpacityInfos", 2), e.addUniform("vEmissiveInfos", 2), e.addUniform("vLightmapInfos", 2), e.addUniform("vReflectivityInfos", 3), e.addUniform("vMicroSurfaceSamplerInfos", 2), e.addUniform("vReflectionInfos", 2), e.addUniform("vReflectionPosition", 3), e.addUniform("vReflectionSize", 3), e.addUniform("vBumpInfos", 3), e.addUniform("albedoMatrix", 16), e.addUniform("ambientMatrix", 16), e.addUniform("opacityMatrix", 16), e.addUniform("emissiveMatrix", 16), e.addUniform("lightmapMatrix", 16), e.addUniform("reflectivityMatrix", 16), e.addUniform("microSurfaceSamplerMatrix", 16), e.addUniform("bumpMatrix", 16), e.addUniform("vTangentSpaceParams", 2), e.addUniform("reflectionMatrix", 16), e.addUniform("vReflectionColor", 3), e.addUniform("vAlbedoColor", 4), e.addUniform("vLightingIntensity", 4), e.addUniform("vReflectionMicrosurfaceInfos", 3), e.addUniform("pointSize", 1), e.addUniform("vReflectivityColor", 4), e.addUniform("vEmissiveColor", 3), e.addUniform("visibility", 1), f.PrepareUniformBuffer(e), m.PrepareUniformBuffer(e), b.PrepareUniformBuffer(e), _.PrepareUniformBuffer(e), e.create(); }), (t.prototype.unbind = function () { if (this._activeEffect) { var t = !1; this._reflectionTexture && this._reflectionTexture.isRenderTarget && (this._activeEffect.setTexture("reflection2DSampler", null), (t = !0)), this.subSurface.unbind(this._activeEffect) && (t = !0), t && this._markAllSubMeshesAsTexturesDirty(); } e.prototype.unbind.call(this); }), (t.prototype.bindForSubMesh = function (e, t, n) { var i = this.getScene(), r = n._materialDefines; if (r) { var o = n.effect; if (o) { (this._activeEffect = o), r.INSTANCES || this.bindOnlyWorldMatrix(e), r.OBJECTSPACE_NORMALMAP && (e.toNormalMatrix(this._normalMatrix), this.bindOnlyNormalMatrix(this._normalMatrix)); var a = this._mustRebind(i, o, t.visibility); p.a.BindBonesParameters(t, this._activeEffect); var s = null, l = this._uniformBuffer; if (a) { var u = i.getEngine(); if ((l.bindToEffect(o, "Material"), this.bindViewProjection(o), (s = this._getReflectionTexture()), !l.useUbo || !this.isFrozen || !l.isSync)) { if (i.texturesEnabled) { if ( (this._albedoTexture && d.a.DiffuseTextureEnabled && (l.updateFloat2("vAlbedoInfos", this._albedoTexture.coordinatesIndex, this._albedoTexture.level), p.a.BindTextureMatrix(this._albedoTexture, l, "albedo")), this._ambientTexture && d.a.AmbientTextureEnabled && (l.updateFloat4("vAmbientInfos", this._ambientTexture.coordinatesIndex, this._ambientTexture.level, this._ambientTextureStrength, this._ambientTextureImpactOnAnalyticalLights), p.a.BindTextureMatrix(this._ambientTexture, l, "ambient")), this._opacityTexture && d.a.OpacityTextureEnabled && (l.updateFloat2("vOpacityInfos", this._opacityTexture.coordinatesIndex, this._opacityTexture.level), p.a.BindTextureMatrix(this._opacityTexture, l, "opacity")), s && d.a.ReflectionTextureEnabled) ) { if ((l.updateMatrix("reflectionMatrix", s.getReflectionTextureMatrix()), l.updateFloat2("vReflectionInfos", s.level, 0), s.boundingBoxSize)) { var f = s; l.updateVector3("vReflectionPosition", f.boundingBoxPosition), l.updateVector3("vReflectionSize", f.boundingBoxSize); } if (!r.USEIRRADIANCEMAP) { var m = s.sphericalPolynomial; if (r.USESPHERICALFROMREFLECTIONMAP && m) if (r.SPHERICAL_HARMONICS) { var g = m.preScaledHarmonics; this._activeEffect.setVector3("vSphericalL00", g.l00), this._activeEffect.setVector3("vSphericalL1_1", g.l1_1), this._activeEffect.setVector3("vSphericalL10", g.l10), this._activeEffect.setVector3("vSphericalL11", g.l11), this._activeEffect.setVector3("vSphericalL2_2", g.l2_2), this._activeEffect.setVector3("vSphericalL2_1", g.l2_1), this._activeEffect.setVector3("vSphericalL20", g.l20), this._activeEffect.setVector3("vSphericalL21", g.l21), this._activeEffect.setVector3("vSphericalL22", g.l22); } else this._activeEffect.setFloat3("vSphericalX", m.x.x, m.x.y, m.x.z), this._activeEffect.setFloat3("vSphericalY", m.y.x, m.y.y, m.y.z), this._activeEffect.setFloat3("vSphericalZ", m.z.x, m.z.y, m.z.z), this._activeEffect.setFloat3("vSphericalXX_ZZ", m.xx.x - m.zz.x, m.xx.y - m.zz.y, m.xx.z - m.zz.z), this._activeEffect.setFloat3("vSphericalYY_ZZ", m.yy.x - m.zz.x, m.yy.y - m.zz.y, m.yy.z - m.zz.z), this._activeEffect.setFloat3("vSphericalZZ", m.zz.x, m.zz.y, m.zz.z), this._activeEffect.setFloat3("vSphericalXY", m.xy.x, m.xy.y, m.xy.z), this._activeEffect.setFloat3("vSphericalYZ", m.yz.x, m.yz.y, m.yz.z), this._activeEffect.setFloat3("vSphericalZX", m.zx.x, m.zx.y, m.zx.z); } l.updateFloat3("vReflectionMicrosurfaceInfos", s.getSize().width, s.lodGenerationScale, s.lodGenerationOffset); } this._emissiveTexture && d.a.EmissiveTextureEnabled && (l.updateFloat2("vEmissiveInfos", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level), p.a.BindTextureMatrix(this._emissiveTexture, l, "emissive")), this._lightmapTexture && d.a.LightmapTextureEnabled && (l.updateFloat2("vLightmapInfos", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level), p.a.BindTextureMatrix(this._lightmapTexture, l, "lightmap")), d.a.SpecularTextureEnabled && (this._metallicTexture ? (l.updateFloat3("vReflectivityInfos", this._metallicTexture.coordinatesIndex, this._metallicTexture.level, this._ambientTextureStrength), p.a.BindTextureMatrix(this._metallicTexture, l, "reflectivity")) : this._reflectivityTexture && (l.updateFloat3("vReflectivityInfos", this._reflectivityTexture.coordinatesIndex, this._reflectivityTexture.level, 1), p.a.BindTextureMatrix(this._reflectivityTexture, l, "reflectivity")), this._microSurfaceTexture && (l.updateFloat2("vMicroSurfaceSamplerInfos", this._microSurfaceTexture.coordinatesIndex, this._microSurfaceTexture.level), p.a.BindTextureMatrix(this._microSurfaceTexture, l, "microSurfaceSampler"))), this._bumpTexture && u.getCaps().standardDerivatives && d.a.BumpTextureEnabled && !this._disableBumpMap && (l.updateFloat3("vBumpInfos", this._bumpTexture.coordinatesIndex, this._bumpTexture.level, this._parallaxScaleBias), p.a.BindTextureMatrix(this._bumpTexture, l, "bump"), i._mirroredCameraPosition ? l.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? 1 : -1, this._invertNormalMapY ? 1 : -1) : l.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? -1 : 1, this._invertNormalMapY ? -1 : 1)); } if ((this.pointsCloud && l.updateFloat("pointSize", this.pointSize), r.METALLICWORKFLOW)) { (h.c.Color3[0].r = void 0 === this._metallic || null === this._metallic ? 1 : this._metallic), (h.c.Color3[0].g = void 0 === this._roughness || null === this._roughness ? 1 : this._roughness); var b = 0.08 * this._metallicF0Factor; l.updateColor4("vReflectivityColor", h.c.Color3[0], b); } else l.updateColor4("vReflectivityColor", this._reflectivityColor, this._microSurface); l.updateColor3("vEmissiveColor", d.a.EmissiveTextureEnabled ? this._emissiveColor : h.a.BlackReadOnly), l.updateColor3("vReflectionColor", this._reflectionColor), !r.SS_REFRACTION && this.subSurface.linkRefractionWithTransparency ? l.updateColor4("vAlbedoColor", this._albedoColor, 1) : l.updateColor4("vAlbedoColor", this._albedoColor, this.alpha), l.updateFloat("visibility", t.visibility), (this._lightingInfos.x = this._directIntensity), (this._lightingInfos.y = this._emissiveIntensity), (this._lightingInfos.z = this._environmentIntensity * i.environmentIntensity), (this._lightingInfos.w = this._specularIntensity), l.updateVector4("vLightingIntensity", this._lightingInfos); } i.texturesEnabled && (this._albedoTexture && d.a.DiffuseTextureEnabled && l.setTexture("albedoSampler", this._albedoTexture), this._ambientTexture && d.a.AmbientTextureEnabled && l.setTexture("ambientSampler", this._ambientTexture), this._opacityTexture && d.a.OpacityTextureEnabled && l.setTexture("opacitySampler", this._opacityTexture), s && d.a.ReflectionTextureEnabled && (r.LODBASEDMICROSFURACE ? l.setTexture("reflectionSampler", s) : (l.setTexture("reflectionSampler", s._lodTextureMid || s), l.setTexture("reflectionSamplerLow", s._lodTextureLow || s), l.setTexture("reflectionSamplerHigh", s._lodTextureHigh || s)), r.USEIRRADIANCEMAP && l.setTexture("irradianceSampler", s.irradianceTexture)), r.ENVIRONMENTBRDF && l.setTexture("environmentBrdfSampler", this._environmentBRDFTexture), this._emissiveTexture && d.a.EmissiveTextureEnabled && l.setTexture("emissiveSampler", this._emissiveTexture), this._lightmapTexture && d.a.LightmapTextureEnabled && l.setTexture("lightmapSampler", this._lightmapTexture), d.a.SpecularTextureEnabled && (this._metallicTexture ? l.setTexture("reflectivitySampler", this._metallicTexture) : this._reflectivityTexture && l.setTexture("reflectivitySampler", this._reflectivityTexture), this._microSurfaceTexture && l.setTexture("microSurfaceSampler", this._microSurfaceTexture)), this._bumpTexture && u.getCaps().standardDerivatives && d.a.BumpTextureEnabled && !this._disableBumpMap && l.setTexture("bumpSampler", this._bumpTexture)), this.subSurface.bindForSubMesh(l, i, u, this.isFrozen, r.LODBASEDMICROSFURACE), this.clearCoat.bindForSubMesh(l, i, u, this._disableBumpMap, this.isFrozen, this._invertNormalMapX, this._invertNormalMapY), this.anisotropy.bindForSubMesh(l, i, this.isFrozen), this.sheen.bindForSubMesh(l, i, this.isFrozen), p.a.BindClipPlane(this._activeEffect, i), i.ambientColor.multiplyToRef(this._ambientColor, this._globalAmbientColor); var _ = i._forcedViewPosition ? i._forcedViewPosition : i._mirroredCameraPosition ? i._mirroredCameraPosition : i.activeCamera.globalPosition, v = i.useRightHandedSystem === (null != i._mirroredCameraPosition); o.setFloat4("vEyePosition", _.x, _.y, _.z, v ? -1 : 1), o.setColor3("vAmbientColor", this._globalAmbientColor), o.setFloat2("vDebugMode", this.debugLimit, this.debugFactor); } (!a && this.isFrozen) || (i.lightsEnabled && !this._disableLighting && p.a.BindLights(i, t, this._activeEffect, r, this._maxSimultaneousLights, this._rebuildInParallel), ((i.fogEnabled && t.applyFog && i.fogMode !== c.a.FOGMODE_NONE) || s) && this.bindView(o), p.a.BindFogParameters(i, t, this._activeEffect, !0), r.NUM_MORPH_INFLUENCERS && p.a.BindMorphTargetParameters(t, this._activeEffect), this._imageProcessingConfiguration.bind(this._activeEffect), p.a.BindLogDepth(r, this._activeEffect, i)), l.update(), this._afterBind(t, this._activeEffect); } } }), (t.prototype.getAnimatables = function () { var e = []; return ( this._albedoTexture && this._albedoTexture.animations && this._albedoTexture.animations.length > 0 && e.push(this._albedoTexture), this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0 && e.push(this._ambientTexture), this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0 && e.push(this._opacityTexture), this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0 && e.push(this._reflectionTexture), this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0 && e.push(this._emissiveTexture), this._metallicTexture && this._metallicTexture.animations && this._metallicTexture.animations.length > 0 ? e.push(this._metallicTexture) : this._reflectivityTexture && this._reflectivityTexture.animations && this._reflectivityTexture.animations.length > 0 && e.push(this._reflectivityTexture), this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture), this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0 && e.push(this._lightmapTexture), this.subSurface.getAnimatables(e), this.clearCoat.getAnimatables(e), this.sheen.getAnimatables(e), this.anisotropy.getAnimatables(e), e ); }), (t.prototype._getReflectionTexture = function () { return this._reflectionTexture ? this._reflectionTexture : this.getScene().environmentTexture; }), (t.prototype.getActiveTextures = function () { var t = e.prototype.getActiveTextures.call(this); return ( this._albedoTexture && t.push(this._albedoTexture), this._ambientTexture && t.push(this._ambientTexture), this._opacityTexture && t.push(this._opacityTexture), this._reflectionTexture && t.push(this._reflectionTexture), this._emissiveTexture && t.push(this._emissiveTexture), this._reflectivityTexture && t.push(this._reflectivityTexture), this._metallicTexture && t.push(this._metallicTexture), this._microSurfaceTexture && t.push(this._microSurfaceTexture), this._bumpTexture && t.push(this._bumpTexture), this._lightmapTexture && t.push(this._lightmapTexture), this.subSurface.getActiveTextures(t), this.clearCoat.getActiveTextures(t), this.sheen.getActiveTextures(t), this.anisotropy.getActiveTextures(t), t ); }), (t.prototype.hasTexture = function (t) { return ( !!e.prototype.hasTexture.call(this, t) || this._albedoTexture === t || this._ambientTexture === t || this._opacityTexture === t || this._reflectionTexture === t || this._reflectivityTexture === t || this._metallicTexture === t || this._microSurfaceTexture === t || this._bumpTexture === t || this._lightmapTexture === t || this.subSurface.hasTexture(t) || this.clearCoat.hasTexture(t) || this.sheen.hasTexture(t) || this.anisotropy.hasTexture(t) ); }), (t.prototype.dispose = function (t, n) { n && (this._albedoTexture && this._albedoTexture.dispose(), this._ambientTexture && this._ambientTexture.dispose(), this._opacityTexture && this._opacityTexture.dispose(), this._reflectionTexture && this._reflectionTexture.dispose(), this._environmentBRDFTexture && this.getScene().environmentBRDFTexture !== this._environmentBRDFTexture && this._environmentBRDFTexture.dispose(), this._emissiveTexture && this._emissiveTexture.dispose(), this._metallicTexture && this._metallicTexture.dispose(), this._reflectivityTexture && this._reflectivityTexture.dispose(), this._bumpTexture && this._bumpTexture.dispose(), this._lightmapTexture && this._lightmapTexture.dispose()), this.subSurface.dispose(n), this.clearCoat.dispose(n), this.sheen.dispose(n), this.anisotropy.dispose(n), this._renderTargets.dispose(), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e.prototype.dispose.call(this, t, n); }), (t.PBRMATERIAL_OPAQUE = 0), (t.PBRMATERIAL_ALPHATEST = 1), (t.PBRMATERIAL_ALPHABLEND = 2), (t.PBRMATERIAL_ALPHATESTANDBLEND = 3), (t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = 0), (t.LIGHTFALLOFF_PHYSICAL = 0), (t.LIGHTFALLOFF_GLTF = 1), (t.LIGHTFALLOFF_STANDARD = 2), Object(i.c)([Object(r.i)()], t.prototype, "_imageProcessingConfiguration", void 0), Object(i.c)([Object(r.b)("_markAllSubMeshesAsMiscDirty")], t.prototype, "debugMode", void 0), Object(i.c)([Object(r.c)()], t.prototype, "useLogarithmicDepth", null), Object(i.c)([Object(r.c)()], t.prototype, "transparencyMode", null), t ); })(C.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(3), o = n(1), a = n(5), s = n(35), c = n(57); s.a.AddNodeConstructor("Light_Type_3", function (e, t) { return function () { return new l(e, o.e.Zero(), t); }; }); var l = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r.groundColor = new a.a(0, 0, 0)), (r.direction = n || o.e.Up()), r; } return ( Object(i.d)(t, e), (t.prototype._buildUniformLayout = function () { this._uniformBuffer.addUniform("vLightData", 4), this._uniformBuffer.addUniform("vLightDiffuse", 4), this._uniformBuffer.addUniform("vLightSpecular", 4), this._uniformBuffer.addUniform("vLightGround", 3), this._uniformBuffer.addUniform("shadowsInfo", 3), this._uniformBuffer.addUniform("depthValues", 2), this._uniformBuffer.create(); }), (t.prototype.getClassName = function () { return "HemisphericLight"; }), (t.prototype.setDirectionToTarget = function (e) { return (this.direction = o.e.Normalize(e.subtract(o.e.Zero()))), this.direction; }), (t.prototype.getShadowGenerator = function () { return null; }), (t.prototype.transferToEffect = function (e, t) { var n = o.e.Normalize(this.direction); return this._uniformBuffer.updateFloat4("vLightData", n.x, n.y, n.z, 0, t), this._uniformBuffer.updateColor3("vLightGround", this.groundColor.scale(this.intensity), t), this; }), (t.prototype.transferToNodeMaterialEffect = function (e, t) { var n = o.e.Normalize(this.direction); return e.setFloat3(t, n.x, n.y, n.z), this; }), (t.prototype.computeWorldMatrix = function () { return this._worldMatrix || (this._worldMatrix = o.a.Identity()), this._worldMatrix; }), (t.prototype.getTypeID = function () { return c.a.LIGHTTYPEID_HEMISPHERICLIGHT; }), (t.prototype.prepareLightSpecificDefines = function (e, t) { e["HEMILIGHT" + t] = !0; }), Object(i.c)([Object(r.e)()], t.prototype, "groundColor", void 0), Object(i.c)([Object(r.o)()], t.prototype, "direction", void 0), t ); })(c.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { this._xhr = new XMLHttpRequest(); } return ( (e.prototype._injectCustomRequestHeaders = function () { for (var t in e.CustomRequestHeaders) { var n = e.CustomRequestHeaders[t]; n && this._xhr.setRequestHeader(t, n); } }), Object.defineProperty(e.prototype, "onprogress", { get: function () { return this._xhr.onprogress; }, set: function (e) { this._xhr.onprogress = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "readyState", { get: function () { return this._xhr.readyState; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "status", { get: function () { return this._xhr.status; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "statusText", { get: function () { return this._xhr.statusText; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "response", { get: function () { return this._xhr.response; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "responseURL", { get: function () { return this._xhr.responseURL; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "responseText", { get: function () { return this._xhr.responseText; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "responseType", { get: function () { return this._xhr.responseType; }, set: function (e) { this._xhr.responseType = e; }, enumerable: !0, configurable: !0, }), (e.prototype.addEventListener = function (e, t, n) { this._xhr.addEventListener(e, t, n); }), (e.prototype.removeEventListener = function (e, t, n) { this._xhr.removeEventListener(e, t, n); }), (e.prototype.abort = function () { this._xhr.abort(); }), (e.prototype.send = function (t) { e.CustomRequestHeaders && this._injectCustomRequestHeaders(), this._xhr.send(t); }), (e.prototype.open = function (t, n) { for (var i = 0, r = e.CustomRequestModifiers; i < r.length; i++) { (0, r[i])(this._xhr, n); } return (n = (n = n.replace("file:http:", "http:")).replace("file:https:", "https:")), this._xhr.open(t, n, !0); }), (e.prototype.setRequestHeader = function (e, t) { this._xhr.setRequestHeader(e, t); }), (e.prototype.getResponseHeader = function (e) { return this._xhr.getResponseHeader(e); }), (e.CustomRequestHeaders = {}), (e.CustomRequestModifiers = new Array()), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return d; }); var i = n(2), r = n(3), o = n(12), a = n(1), s = n(68), c = n(8), l = n(13), u = (n(230), n(53)), h = n(6), d = (function (e) { function t(t, n, i, r, s, l, u, d, p, f, m, g, b) { var _; void 0 === i && (i = null), void 0 === r && (r = !1), void 0 === s && (s = null), void 0 === l && (l = null), void 0 === u && (u = null), void 0 === d && (d = 5), void 0 === p && (p = !1), void 0 === f && (f = null), void 0 === m && (m = !1), void 0 === g && (g = 0.8), void 0 === b && (b = 0); var v = e.call(this, n) || this; if ( ((v.onLoadObservable = new h.c()), (v.boundingBoxPosition = a.e.Zero()), (v._rotationY = 0), (v._files = null), (v._forcedExtension = null), (v._extensions = null), (v._prefiltered = !1), (v.name = t), (v.url = t), (v._noMipmap = r), (v.hasAlpha = !1), (v._format = d), (v.isCube = !0), (v._textureMatrix = a.a.Identity()), (v._createPolynomials = m), (v.coordinatesMode = c.a.CUBIC_MODE), (v._extensions = i), (v._files = s), (v._forcedExtension = f), !t && !s) ) return v; var y = t.lastIndexOf("."), C = f || (y > -1 ? t.substring(y).toLowerCase() : ""), P = ".dds" === C, x = ".env" === C; if ( (x ? ((v.gammaSpace = !1), (v._prefiltered = !1), (v.anisotropicFilteringLevel = 1)) : ((v._prefiltered = p), p && ((v.gammaSpace = !1), (v.anisotropicFilteringLevel = 1))), (v._texture = v._getFromCache(t, r)), !s && (x || P || i || (i = ["_px.jpg", "_py.jpg", "_pz.jpg", "_nx.jpg", "_ny.jpg", "_nz.jpg"]), (s = []), i)) ) for (var T = 0; T < i.length; T++) s.push(t + i[T]); v._files = s; var S = function () { v.onLoadObservable.notifyObservers(v), l && l(); }; return ( v._texture ? v._texture.isReady ? o.b.SetImmediate(function () { return S(); }) : v._texture.onLoadedObservable.add(function () { return S(); }) : n.useDelayedTextureLoading ? (v.delayLoadState = 4) : ((v._texture = p ? n.getEngine().createPrefilteredCubeTexture(t, n, g, b, l, u, d, f, v._createPolynomials) : n.getEngine().createCubeTexture(t, n, s, r, l, u, v._format, f, !1, g, b)), null === (_ = v._texture) || void 0 === _ || _.onLoadedObservable.add(function () { return v.onLoadObservable.notifyObservers(v); })), v ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "boundingBoxSize", { get: function () { return this._boundingBoxSize; }, set: function (e) { if (!this._boundingBoxSize || !this._boundingBoxSize.equals(e)) { this._boundingBoxSize = e; var t = this.getScene(); t && t.markAllMaterialsAsDirty(1); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotationY", { get: function () { return this._rotationY; }, set: function (e) { (this._rotationY = e), this.setReflectionTextureMatrix(a.a.RotationY(this._rotationY)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "noMipmap", { get: function () { return this._noMipmap; }, enumerable: !0, configurable: !0, }), (t.CreateFromImages = function (e, n, i) { var r = ""; return ( e.forEach(function (e) { return (r += e); }), new t(r, n, null, i, e) ); }), (t.CreateFromPrefilteredData = function (e, n, i, r) { void 0 === i && (i = null), void 0 === r && (r = !0); var o = n.useDelayedTextureLoading; n.useDelayedTextureLoading = !1; var a = new t(e, n, null, !1, null, null, null, void 0, !0, i, r); return (n.useDelayedTextureLoading = o), a; }), Object.defineProperty(t.prototype, "isPrefiltered", { get: function () { return this._prefiltered; }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "CubeTexture"; }), (t.prototype.updateURL = function (e, t, n, i) { void 0 === i && (i = !1), this.url && (this.releaseInternalTexture(), this.getScene().markAllMaterialsAsDirty(1)), (this.name && !u.a.StartsWith(this.name, "data:")) || (this.name = e), (this.url = e), (this.delayLoadState = 4), (this._prefiltered = i), this._prefiltered && ((this.gammaSpace = !1), (this.anisotropicFilteringLevel = 1)), (this._forcedExtension = t || null), n && (this._delayedOnLoad = n), this.delayLoad(t); }), (t.prototype.delayLoad = function (e) { var t, n = this; if (4 === this.delayLoadState) { var i = this.getScene(); i && ((this.delayLoadState = 1), (this._texture = this._getFromCache(this.url, this._noMipmap)), this._texture || (this._prefiltered ? (this._texture = i.getEngine().createPrefilteredCubeTexture(this.url, i, 0.8, 0, this._delayedOnLoad, void 0, this._format, void 0, this._createPolynomials)) : (this._texture = i.getEngine().createCubeTexture(this.url, i, this._files, this._noMipmap, this._delayedOnLoad, null, this._format, e)), null === (t = this._texture) || void 0 === t || t.onLoadedObservable.add(function () { return n.onLoadObservable.notifyObservers(n); }))); } }), (t.prototype.getReflectionTextureMatrix = function () { return this._textureMatrix; }), (t.prototype.setReflectionTextureMatrix = function (e) { var t = this; e.updateFlag !== this._textureMatrix.updateFlag && (e.isIdentity() !== this._textureMatrix.isIdentity() && this.getScene().markAllMaterialsAsDirty(1, function (e) { return -1 !== e.getActiveTextures().indexOf(t); }), (this._textureMatrix = e)); }), (t.Parse = function (e, n, i) { var o = r.a.Parse( function () { var r = !1; return e.prefiltered && (r = e.prefiltered), new t(i + e.name, n, e.extensions, !1, e.files || null, null, null, void 0, r, e.forcedExtension); }, e, n ); if ((e.boundingBoxPosition && (o.boundingBoxPosition = a.e.FromArray(e.boundingBoxPosition)), e.boundingBoxSize && (o.boundingBoxSize = a.e.FromArray(e.boundingBoxSize)), e.animations)) for (var s = 0; s < e.animations.length; s++) { var c = e.animations[s], u = l.a.GetClass("BABYLON.Animation"); u && o.animations.push(u.Parse(c)); } return o; }), (t.prototype.clone = function () { var e = this, n = this.getScene(), i = 0, o = r.a.Clone(function () { if (!n) return e; var r = new t(e.url, n, e._extensions, e._noMipmap, e._files); return (i = r.uniqueId), r; }, this); return (o.uniqueId = i), o; }), Object(i.c)([Object(r.c)("rotationY")], t.prototype, "rotationY", null), Object(i.c)([Object(r.c)("files")], t.prototype, "_files", void 0), Object(i.c)([Object(r.c)("forcedExtension")], t.prototype, "_forcedExtension", void 0), Object(i.c)([Object(r.c)("extensions")], t.prototype, "_extensions", void 0), Object(i.c)([Object(r.j)("textureMatrix")], t.prototype, "_textureMatrix", void 0), t ); })(s.a); (c.a._CubeTextureParser = d.Parse), (l.a.RegisteredTypes["BABYLON.CubeTexture"] = d); }, function (e, t, n) { "use strict"; var i = "shadowsFragmentFunctions", r = "#ifdef SHADOWS\n#ifndef SHADOWFLOAT\n\nfloat unpack(vec4 color)\n{\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\nreturn dot(color,bit_shift);\n}\n#endif\nfloat computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff)\n{\nfloat mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));\nreturn mix(value,1.0,mask);\n}\nfloat computeShadowCube(vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues)\n{\nvec3 directionToLight=vPositionW-lightPosition;\nfloat depth=length(directionToLight);\ndepth=(depth+depthValues.x)/(depthValues.y);\ndepth=clamp(depth,0.,1.0);\ndirectionToLight=normalize(directionToLight);\ndirectionToLight.y=-directionToLight.y;\n#ifndef SHADOWFLOAT\nfloat shadow=unpack(textureCube(shadowSampler,directionToLight));\n#else\nfloat shadow=textureCube(shadowSampler,directionToLight).x;\n#endif\nif (depth>shadow)\n{\nreturn darkness;\n}\nreturn 1.0;\n}\nfloat computeShadowWithPoissonSamplingCube(vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues)\n{\nvec3 directionToLight=vPositionW-lightPosition;\nfloat depth=length(directionToLight);\ndepth=(depth+depthValues.x)/(depthValues.y);\ndepth=clamp(depth,0.,1.0);\ndirectionToLight=normalize(directionToLight);\ndirectionToLight.y=-directionToLight.y;\nfloat visibility=1.;\nvec3 poissonDisk[4];\npoissonDisk[0]=vec3(-1.0,1.0,-1.0);\npoissonDisk[1]=vec3(1.0,-1.0,-1.0);\npoissonDisk[2]=vec3(-1.0,-1.0,-1.0);\npoissonDisk[3]=vec3(1.0,-1.0,1.0);\n\n#ifndef SHADOWFLOAT\nif (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))shadow)\n{\nreturn computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff);\n}\nreturn 1.;\n}\n#endif\nfloat computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadow=unpack(texture2D(shadowSampler,uv));\n#else\nfloat shadow=texture2D(shadowSampler,uv).x;\n#endif\nif (shadowPixelDepth>shadow)\n{\nreturn computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff);\n}\nreturn 1.;\n}\nfloat computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\nfloat visibility=1.;\nvec2 poissonDisk[4];\npoissonDisk[0]=vec2(-0.94201624,-0.39906216);\npoissonDisk[1]=vec2(0.94558609,-0.76890725);\npoissonDisk[2]=vec2(-0.094184101,-0.92938870);\npoissonDisk[3]=vec2(0.34495938,0.29387760);\n\n#ifndef SHADOWFLOAT\nif (unpack(texture2D(shadowSampler,uv+poissonDisk[0]*mapSize))1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadowMapSample=unpack(texture2D(shadowSampler,uv));\n#else\nfloat shadowMapSample=texture2D(shadowSampler,uv).x;\n#endif\nfloat esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\nreturn computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\n}\nfloat computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{\nreturn 1.0;\n}\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadowMapSample=unpack(texture2D(shadowSampler,uv));\n#else\nfloat shadowMapSample=texture2D(shadowSampler,uv).x;\n#endif\nfloat esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\nreturn computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\n}\n#ifdef WEBGL2\n#define GREATEST_LESS_THAN_ONE 0.99999994\n\nfloat computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\nfloat shadow=texture(shadowSampler,uvDepthLayer);\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\n\n\nvec2 uvw0=3.-2.*st;\nvec2 uvw1=1.+2.*st;\nvec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\nvec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\nshadow=shadow/16.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\nvec2 uvw0=4.-3.*st;\nvec2 uvw1=vec2(7.);\nvec2 uvw2=1.+3.*st;\nvec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\nvec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\nshadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\nshadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));\nshadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));\nshadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));\nshadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));\nshadow=shadow/144.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\nfloat computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff)\n{\nif (depthMetric>1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nfloat shadow=texture2D(shadowSampler,uvDepth);\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nif (depthMetric>1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\n\n\nvec2 uvw0=3.-2.*st;\nvec2 uvw1=1.+2.*st;\nvec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\nvec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z));\nshadow=shadow/16.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\n\n\n\nfloat computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{\nif (depthMetric>1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\nuv+=0.5;\nvec2 st=fract(uv);\nvec2 base_uv=floor(uv)-0.5;\nbase_uv*=shadowMapSizeAndInverse.y;\n\n\nvec2 uvw0=4.-3.*st;\nvec2 uvw1=vec2(7.);\nvec2 uvw2=1.+3.*st;\nvec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\nvec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\nfloat shadow=0.;\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z));\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z));\nshadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z));\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z));\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z));\nshadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z));\nshadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z));\nshadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z));\nshadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z));\nshadow=shadow/144.;\nshadow=mix(darkness,1.,shadow);\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\n}\nconst vec3 PoissonSamplers32[64]=vec3[64](\nvec3(0.06407013,0.05409927,0.),\nvec3(0.7366577,0.5789394,0.),\nvec3(-0.6270542,-0.5320278,0.),\nvec3(-0.4096107,0.8411095,0.),\nvec3(0.6849564,-0.4990818,0.),\nvec3(-0.874181,-0.04579735,0.),\nvec3(0.9989998,0.0009880066,0.),\nvec3(-0.004920578,-0.9151649,0.),\nvec3(0.1805763,0.9747483,0.),\nvec3(-0.2138451,0.2635818,0.),\nvec3(0.109845,0.3884785,0.),\nvec3(0.06876755,-0.3581074,0.),\nvec3(0.374073,-0.7661266,0.),\nvec3(0.3079132,-0.1216763,0.),\nvec3(-0.3794335,-0.8271583,0.),\nvec3(-0.203878,-0.07715034,0.),\nvec3(0.5912697,0.1469799,0.),\nvec3(-0.88069,0.3031784,0.),\nvec3(0.5040108,0.8283722,0.),\nvec3(-0.5844124,0.5494877,0.),\nvec3(0.6017799,-0.1726654,0.),\nvec3(-0.5554981,0.1559997,0.),\nvec3(-0.3016369,-0.3900928,0.),\nvec3(-0.5550632,-0.1723762,0.),\nvec3(0.925029,0.2995041,0.),\nvec3(-0.2473137,0.5538505,0.),\nvec3(0.9183037,-0.2862392,0.),\nvec3(0.2469421,0.6718712,0.),\nvec3(0.3916397,-0.4328209,0.),\nvec3(-0.03576927,-0.6220032,0.),\nvec3(-0.04661255,0.7995201,0.),\nvec3(0.4402924,0.3640312,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.),\nvec3(0.,0.,0.)\n);\nconst vec3 PoissonSamplers64[64]=vec3[64](\nvec3(-0.613392,0.617481,0.),\nvec3(0.170019,-0.040254,0.),\nvec3(-0.299417,0.791925,0.),\nvec3(0.645680,0.493210,0.),\nvec3(-0.651784,0.717887,0.),\nvec3(0.421003,0.027070,0.),\nvec3(-0.817194,-0.271096,0.),\nvec3(-0.705374,-0.668203,0.),\nvec3(0.977050,-0.108615,0.),\nvec3(0.063326,0.142369,0.),\nvec3(0.203528,0.214331,0.),\nvec3(-0.667531,0.326090,0.),\nvec3(-0.098422,-0.295755,0.),\nvec3(-0.885922,0.215369,0.),\nvec3(0.566637,0.605213,0.),\nvec3(0.039766,-0.396100,0.),\nvec3(0.751946,0.453352,0.),\nvec3(0.078707,-0.715323,0.),\nvec3(-0.075838,-0.529344,0.),\nvec3(0.724479,-0.580798,0.),\nvec3(0.222999,-0.215125,0.),\nvec3(-0.467574,-0.405438,0.),\nvec3(-0.248268,-0.814753,0.),\nvec3(0.354411,-0.887570,0.),\nvec3(0.175817,0.382366,0.),\nvec3(0.487472,-0.063082,0.),\nvec3(-0.084078,0.898312,0.),\nvec3(0.488876,-0.783441,0.),\nvec3(0.470016,0.217933,0.),\nvec3(-0.696890,-0.549791,0.),\nvec3(-0.149693,0.605762,0.),\nvec3(0.034211,0.979980,0.),\nvec3(0.503098,-0.308878,0.),\nvec3(-0.016205,-0.872921,0.),\nvec3(0.385784,-0.393902,0.),\nvec3(-0.146886,-0.859249,0.),\nvec3(0.643361,0.164098,0.),\nvec3(0.634388,-0.049471,0.),\nvec3(-0.688894,0.007843,0.),\nvec3(0.464034,-0.188818,0.),\nvec3(-0.440840,0.137486,0.),\nvec3(0.364483,0.511704,0.),\nvec3(0.034028,0.325968,0.),\nvec3(0.099094,-0.308023,0.),\nvec3(0.693960,-0.366253,0.),\nvec3(0.678884,-0.204688,0.),\nvec3(0.001801,0.780328,0.),\nvec3(0.145177,-0.898984,0.),\nvec3(0.062655,-0.611866,0.),\nvec3(0.315226,-0.604297,0.),\nvec3(-0.780145,0.486251,0.),\nvec3(-0.371868,0.882138,0.),\nvec3(0.200476,0.494430,0.),\nvec3(-0.494552,-0.711051,0.),\nvec3(0.612476,0.705252,0.),\nvec3(-0.578845,-0.768792,0.),\nvec3(-0.772454,-0.090976,0.),\nvec3(0.504440,0.372295,0.),\nvec3(0.155736,0.065157,0.),\nvec3(0.391522,0.849605,0.),\nvec3(-0.620106,-0.328104,0.),\nvec3(0.789239,-0.419965,0.),\nvec3(-0.545396,0.538133,0.),\nvec3(-0.178564,-0.596057,0.)\n);\n\n\n\n\n\nfloat computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)\n{\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\nvec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\nfloat blockerDepth=0.0;\nfloat sumBlockerDepth=0.0;\nfloat numBlocker=0.0;\nfor (int i=0; i1.0 || depthMetric<0.0) {\nreturn 1.0;\n}\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\nfloat blockerDepth=0.0;\nfloat sumBlockerDepth=0.0;\nfloat numBlocker=0.0;\nfor (int i=0; i= 0 ? (this.rotation.y = -Math.atan(t.z / t.x) + Math.PI / 2) : (this.rotation.y = -Math.atan(t.z / t.x) - Math.PI / 2), (this.rotation.z = 0), isNaN(this.rotation.x) && (this.rotation.x = 0), isNaN(this.rotation.y) && (this.rotation.y = 0), isNaN(this.rotation.z) && (this.rotation.z = 0), this.rotationQuaternion && a.b.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion); }), (t.prototype.getTarget = function () { return this._currentTarget; }), (t.prototype._decideIfNeedsToMove = function () { return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0; }), (t.prototype._updatePosition = function () { if (this.parent) return this.parent.getWorldMatrix().invertToRef(a.c.Matrix[0]), a.e.TransformNormalToRef(this.cameraDirection, a.c.Matrix[0], a.c.Vector3[0]), void this.position.addInPlace(a.c.Vector3[0]); this.position.addInPlace(this.cameraDirection); }), (t.prototype._checkInputs = function () { var t = this._decideIfNeedsToMove(), n = Math.abs(this.cameraRotation.x) > 0 || Math.abs(this.cameraRotation.y) > 0; if ((t && this._updatePosition(), n)) { if (((this.rotation.x += this.cameraRotation.x), (this.rotation.y += this.cameraRotation.y), this.rotationQuaternion)) this.rotation.lengthSquared() && a.b.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion); if (!this.noRotationConstraint) { this.rotation.x > 1.570796 && (this.rotation.x = 1.570796), this.rotation.x < -1.570796 && (this.rotation.x = -1.570796); } } t && (Math.abs(this.cameraDirection.x) < this.speed * s.a && (this.cameraDirection.x = 0), Math.abs(this.cameraDirection.y) < this.speed * s.a && (this.cameraDirection.y = 0), Math.abs(this.cameraDirection.z) < this.speed * s.a && (this.cameraDirection.z = 0), this.cameraDirection.scaleInPlace(this.inertia)), n && (Math.abs(this.cameraRotation.x) < this.speed * s.a && (this.cameraRotation.x = 0), Math.abs(this.cameraRotation.y) < this.speed * s.a && (this.cameraRotation.y = 0), this.cameraRotation.scaleInPlace(this.inertia)), e.prototype._checkInputs.call(this); }), (t.prototype._updateCameraRotationMatrix = function () { this.rotationQuaternion ? this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix) : a.a.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix); }), (t.prototype._rotateUpVectorWithCameraRotationMatrix = function () { return a.e.TransformNormalToRef(this._defaultUp, this._cameraRotationMatrix, this.upVector), this; }), (t.prototype._getViewMatrix = function () { return ( this.lockedTarget && this.setTarget(this._getLockedTargetPosition()), this._updateCameraRotationMatrix(), this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z ? (this._rotateUpVectorWithCameraRotationMatrix(), (this._cachedQuaternionRotationZ = this.rotationQuaternion.z)) : this._cachedRotationZ != this.rotation.z && (this._rotateUpVectorWithCameraRotationMatrix(), (this._cachedRotationZ = this.rotation.z)), a.e.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint), this.position.addToRef(this._transformedReferencePoint, this._currentTarget), this.updateUpVectorFromRotation && (this.rotationQuaternion ? c.a.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector) : (a.b.FromEulerVectorToRef(this.rotation, this._tmpQuaternion), c.a.Y.rotateByQuaternionToRef(this._tmpQuaternion, this.upVector))), this._computeViewMatrix(this.position, this._currentTarget, this.upVector), this._viewMatrix ); }), (t.prototype._computeViewMatrix = function (e, t, n) { if (this.parent) { var i = this.parent.getWorldMatrix(); a.e.TransformCoordinatesToRef(e, i, this._globalPosition), a.e.TransformCoordinatesToRef(t, i, this._globalCurrentTarget), a.e.TransformNormalToRef(n, i, this._globalCurrentUpVector), this._markSyncedWithParent(); } else this._globalPosition.copyFrom(e), this._globalCurrentTarget.copyFrom(t), this._globalCurrentUpVector.copyFrom(n); this.getScene().useRightHandedSystem ? a.a.LookAtRHToRef(this._globalPosition, this._globalCurrentTarget, this._globalCurrentUpVector, this._viewMatrix) : a.a.LookAtLHToRef(this._globalPosition, this._globalCurrentTarget, this._globalCurrentUpVector, this._viewMatrix); }), (t.prototype.createRigCamera = function (e, n) { if (this.cameraRigMode !== o.a.RIG_MODE_NONE) { var i = new t(e, this.position.clone(), this.getScene()); return ( (i.isRigCamera = !0), (i.rigParent = this), (this.cameraRigMode !== o.a.RIG_MODE_VR && this.cameraRigMode !== o.a.RIG_MODE_WEBVR) || (this.rotationQuaternion || (this.rotationQuaternion = new a.b()), (i._cameraRigParams = {}), (i.rotationQuaternion = new a.b())), i ); } return null; }), (t.prototype._updateRigCameras = function () { var t = this._rigCameras[0], n = this._rigCameras[1]; switch ((this.computeWorldMatrix(), this.cameraRigMode)) { case o.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH: case o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL: case o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED: case o.a.RIG_MODE_STEREOSCOPIC_OVERUNDER: case o.a.RIG_MODE_STEREOSCOPIC_INTERLACED: var i = this.cameraRigMode === o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1, r = this.cameraRigMode === o.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1; this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * i, t), this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * r, n); break; case o.a.RIG_MODE_VR: t.rotationQuaternion ? (t.rotationQuaternion.copyFrom(this.rotationQuaternion), n.rotationQuaternion.copyFrom(this.rotationQuaternion)) : (t.rotation.copyFrom(this.rotation), n.rotation.copyFrom(this.rotation)), t.position.copyFrom(this.position), n.position.copyFrom(this.position); } e.prototype._updateRigCameras.call(this); }), (t.prototype._getRigCamPositionAndTarget = function (e, n) { this.getTarget().subtractToRef(this.position, t._TargetFocalPoint), t._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance); var i = t._TargetFocalPoint.addInPlace(this.position); a.a.TranslationToRef(-i.x, -i.y, -i.z, t._TargetTransformMatrix), t._TargetTransformMatrix.multiplyToRef(a.a.RotationY(e), t._RigCamTransformMatrix), a.a.TranslationToRef(i.x, i.y, i.z, t._TargetTransformMatrix), t._RigCamTransformMatrix.multiplyToRef(t._TargetTransformMatrix, t._RigCamTransformMatrix), a.e.TransformCoordinatesToRef(this.position, t._RigCamTransformMatrix, n.position), n.setTarget(i); }), (t.prototype.getClassName = function () { return "TargetCamera"; }), (t._RigCamTransformMatrix = new a.a()), (t._TargetTransformMatrix = new a.a()), (t._TargetFocalPoint = new a.e()), Object(i.c)([Object(r.o)()], t.prototype, "rotation", void 0), Object(i.c)([Object(r.c)()], t.prototype, "speed", void 0), Object(i.c)([Object(r.k)("lockedTargetId")], t.prototype, "lockedTarget", void 0), t ); })(o.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( Object.defineProperty(e, "ForceFullSceneLoadingForIncremental", { get: function () { return e._ForceFullSceneLoadingForIncremental; }, set: function (t) { e._ForceFullSceneLoadingForIncremental = t; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "ShowLoadingScreen", { get: function () { return e._ShowLoadingScreen; }, set: function (t) { e._ShowLoadingScreen = t; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "loggingLevel", { get: function () { return e._loggingLevel; }, set: function (t) { e._loggingLevel = t; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "CleanBoneMatrixWeights", { get: function () { return e._CleanBoneMatrixWeights; }, set: function (t) { e._CleanBoneMatrixWeights = t; }, enumerable: !0, configurable: !0, }), (e._ForceFullSceneLoadingForIncremental = !1), (e._ShowLoadingScreen = !0), (e._CleanBoneMatrixWeights = !1), (e._loggingLevel = 0), e ); })(); }, function (e, t, n) { "use strict"; e.exports = function (e, t) { return ( t || (t = {}), "string" != typeof (e = e && e.__esModule ? e.default : e) ? e : (/^['"].*['"]$/.test(e) && (e = e.slice(1, -1)), t.hash && (e += t.hash), /["'() \t\n]/.test(e) || t.needQuotes ? '"'.concat(e.replace(/"/g, '\\"').replace(/\n/g, "\\n"), '"') : e) ); }; }, function (e, t, n) { "use strict"; var i = "lightsFragmentFunctions", r = "\nstruct lightingInfo\n{\nvec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef NDOTL\nfloat ndl;\n#endif\n};\nlightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {\nlightingInfo result;\nvec3 lightVectorW;\nfloat attenuation=1.0;\nif (lightData.w == 0.)\n{\nvec3 direction=lightData.xyz-vPositionW;\nattenuation=max(0.,1.0-length(direction)/range);\nlightVectorW=normalize(direction);\n}\nelse\n{\nlightVectorW=normalize(-lightData.xyz);\n}\n\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\n\nvec3 angleW=normalize(viewDirectionW+lightVectorW);\nfloat specComp=max(0.,dot(vNormal,angleW));\nspecComp=pow(specComp,max(1.,glossiness));\nresult.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;\n}\nlightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {\nlightingInfo result;\nvec3 direction=lightData.xyz-vPositionW;\nvec3 lightVectorW=normalize(direction);\nfloat attenuation=max(0.,1.0-length(direction)/range);\n\nfloat cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));\nif (cosAngle>=lightDirection.w)\n{\ncosAngle=max(0.,pow(cosAngle,lightData.w));\nattenuation*=cosAngle;\n\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\n\nvec3 angleW=normalize(viewDirectionW+lightVectorW);\nfloat specComp=max(0.,dot(vNormal,angleW));\nspecComp=pow(specComp,max(1.,glossiness));\nresult.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;\n}\nresult.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;\n}\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {\nlightingInfo result;\n\nfloat ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\n\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);\nfloat specComp=max(0.,dot(vNormal,angleW));\nspecComp=pow(specComp,max(1.,glossiness));\nresult.specular=specComp*specularColor;\n#endif\nreturn result;\n}\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\nstrq/=strq.w;\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\nreturn textureColor;\n}"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return p; }); var i = n(2), r = n(3), o = n(1), a = n(4), s = n(8), c = n(11), l = n(28), u = n(13), h = n(5), d = n(43), p = (function (e) { function t(t, n, r, a) { void 0 === a && (a = {}); var s = e.call(this, t, n) || this; return ( (s._textures = {}), (s._textureArrays = {}), (s._floats = {}), (s._ints = {}), (s._floatsArrays = {}), (s._colors3 = {}), (s._colors3Arrays = {}), (s._colors4 = {}), (s._colors4Arrays = {}), (s._vectors2 = {}), (s._vectors3 = {}), (s._vectors4 = {}), (s._matrices = {}), (s._matrixArrays = {}), (s._matrices3x3 = {}), (s._matrices2x2 = {}), (s._vectors2Arrays = {}), (s._vectors3Arrays = {}), (s._vectors4Arrays = {}), (s._cachedWorldViewMatrix = new o.a()), (s._cachedWorldViewProjectionMatrix = new o.a()), (s._multiview = !1), (s._shaderPath = r), (s._options = Object(i.a)({ needAlphaBlending: !1, needAlphaTesting: !1, attributes: ["position", "normal", "uv"], uniforms: ["worldViewProjection"], uniformBuffers: [], samplers: [], defines: [] }, a)), s ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "shaderPath", { get: function () { return this._shaderPath; }, set: function (e) { this._shaderPath = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "options", { get: function () { return this._options; }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "ShaderMaterial"; }), (t.prototype.needAlphaBlending = function () { return this.alpha < 1 || this._options.needAlphaBlending; }), (t.prototype.needAlphaTesting = function () { return this._options.needAlphaTesting; }), (t.prototype._checkUniform = function (e) { -1 === this._options.uniforms.indexOf(e) && this._options.uniforms.push(e); }), (t.prototype.setTexture = function (e, t) { return -1 === this._options.samplers.indexOf(e) && this._options.samplers.push(e), (this._textures[e] = t), this; }), (t.prototype.setTextureArray = function (e, t) { return -1 === this._options.samplers.indexOf(e) && this._options.samplers.push(e), this._checkUniform(e), (this._textureArrays[e] = t), this; }), (t.prototype.setFloat = function (e, t) { return this._checkUniform(e), (this._floats[e] = t), this; }), (t.prototype.setInt = function (e, t) { return this._checkUniform(e), (this._ints[e] = t), this; }), (t.prototype.setFloats = function (e, t) { return this._checkUniform(e), (this._floatsArrays[e] = t), this; }), (t.prototype.setColor3 = function (e, t) { return this._checkUniform(e), (this._colors3[e] = t), this; }), (t.prototype.setColor3Array = function (e, t) { return ( this._checkUniform(e), (this._colors3Arrays[e] = t.reduce(function (e, t) { return t.toArray(e, e.length), e; }, [])), this ); }), (t.prototype.setColor4 = function (e, t) { return this._checkUniform(e), (this._colors4[e] = t), this; }), (t.prototype.setColor4Array = function (e, t) { return ( this._checkUniform(e), (this._colors4Arrays[e] = t.reduce(function (e, t) { return t.toArray(e, e.length), e; }, [])), this ); }), (t.prototype.setVector2 = function (e, t) { return this._checkUniform(e), (this._vectors2[e] = t), this; }), (t.prototype.setVector3 = function (e, t) { return this._checkUniform(e), (this._vectors3[e] = t), this; }), (t.prototype.setVector4 = function (e, t) { return this._checkUniform(e), (this._vectors4[e] = t), this; }), (t.prototype.setMatrix = function (e, t) { return this._checkUniform(e), (this._matrices[e] = t), this; }), (t.prototype.setMatrices = function (e, t) { this._checkUniform(e); for (var n = new Float32Array(16 * t.length), i = 0; i < t.length; i++) { t[i].copyToArray(n, 16 * i); } return (this._matrixArrays[e] = n), this; }), (t.prototype.setMatrix3x3 = function (e, t) { return this._checkUniform(e), (this._matrices3x3[e] = t), this; }), (t.prototype.setMatrix2x2 = function (e, t) { return this._checkUniform(e), (this._matrices2x2[e] = t), this; }), (t.prototype.setArray2 = function (e, t) { return this._checkUniform(e), (this._vectors2Arrays[e] = t), this; }), (t.prototype.setArray3 = function (e, t) { return this._checkUniform(e), (this._vectors3Arrays[e] = t), this; }), (t.prototype.setArray4 = function (e, t) { return this._checkUniform(e), (this._vectors4Arrays[e] = t), this; }), (t.prototype._checkCache = function (e, t) { return !e || !this._effect || (-1 !== this._effect.defines.indexOf("#define INSTANCES")) === t; }), (t.prototype.isReadyForSubMesh = function (e, t, n) { return this.isReady(e, n); }), (t.prototype.isReady = function (e, t) { if (this._effect && this.isFrozen && this._effect._wasPreviouslyReady) return !0; var n = this.getScene(), i = n.getEngine(); if (!this.checkReadyOnEveryCall && this._renderId === n.getRenderId() && this._checkCache(e, t)) return !0; var r = [], o = [], s = new d.a(); i.getCaps().multiview && n.activeCamera && n.activeCamera.outputRenderTarget && n.activeCamera.outputRenderTarget.getViewCount() > 1 && ((this._multiview = !0), r.push("#define MULTIVIEW"), -1 !== this._options.uniforms.indexOf("viewProjection") && -1 === this._options.uniforms.push("viewProjectionR") && this._options.uniforms.push("viewProjectionR")); for (var l = 0; l < this._options.defines.length; l++) r.push(this._options.defines[l]); for (l = 0; l < this._options.attributes.length; l++) o.push(this._options.attributes[l]); if ( (e && e.isVerticesDataPresent(a.b.ColorKind) && (o.push(a.b.ColorKind), r.push("#define VERTEXCOLOR")), t && (r.push("#define INSTANCES"), c.a.PushAttributesForInstances(o)), e && e.useBones && e.computeBonesUsingShaders && e.skeleton) ) { o.push(a.b.MatricesIndicesKind), o.push(a.b.MatricesWeightsKind), e.numBoneInfluencers > 4 && (o.push(a.b.MatricesIndicesExtraKind), o.push(a.b.MatricesWeightsExtraKind)); var u = e.skeleton; r.push("#define NUM_BONE_INFLUENCERS " + e.numBoneInfluencers), s.addCPUSkinningFallback(0, e), u.isUsingTextureForMatrices ? (r.push("#define BONETEXTURE"), -1 === this._options.uniforms.indexOf("boneTextureWidth") && this._options.uniforms.push("boneTextureWidth"), -1 === this._options.samplers.indexOf("boneSampler") && this._options.samplers.push("boneSampler")) : (r.push("#define BonesPerMesh " + (u.bones.length + 1)), -1 === this._options.uniforms.indexOf("mBones") && this._options.uniforms.push("mBones")); } else r.push("#define NUM_BONE_INFLUENCERS 0"); for (var h in this._textures) if (!this._textures[h].isReady()) return !1; e && this._shouldTurnAlphaTestOn(e) && r.push("#define ALPHATEST"); var p = this._effect, f = r.join("\n"); return ( (this._effect = i.createEffect( this._shaderPath, { attributes: o, uniformsNames: this._options.uniforms, uniformBuffersNames: this._options.uniformBuffers, samplers: this._options.samplers, defines: f, fallbacks: s, onCompiled: this.onCompiled, onError: this.onError, }, i )), !!this._effect.isReady() && (p !== this._effect && n.resetCachedMaterial(), (this._renderId = n.getRenderId()), (this._effect._wasPreviouslyReady = !0), !0) ); }), (t.prototype.bindOnlyWorldMatrix = function (e) { var t = this.getScene(); this._effect && (-1 !== this._options.uniforms.indexOf("world") && this._effect.setMatrix("world", e), -1 !== this._options.uniforms.indexOf("worldView") && (e.multiplyToRef(t.getViewMatrix(), this._cachedWorldViewMatrix), this._effect.setMatrix("worldView", this._cachedWorldViewMatrix)), -1 !== this._options.uniforms.indexOf("worldViewProjection") && (e.multiplyToRef(t.getTransformMatrix(), this._cachedWorldViewProjectionMatrix), this._effect.setMatrix("worldViewProjection", this._cachedWorldViewProjectionMatrix))); }), (t.prototype.bind = function (e, t) { if ((this.bindOnlyWorldMatrix(e), this._effect && this.getScene().getCachedMaterial() !== this)) { var n; for (n in (-1 !== this._options.uniforms.indexOf("view") && this._effect.setMatrix("view", this.getScene().getViewMatrix()), -1 !== this._options.uniforms.indexOf("projection") && this._effect.setMatrix("projection", this.getScene().getProjectionMatrix()), -1 !== this._options.uniforms.indexOf("viewProjection") && (this._effect.setMatrix("viewProjection", this.getScene().getTransformMatrix()), this._multiview && this._effect.setMatrix("viewProjectionR", this.getScene()._transformMatrixR)), this.getScene().activeCamera && -1 !== this._options.uniforms.indexOf("cameraPosition") && this._effect.setVector3("cameraPosition", this.getScene().activeCamera.globalPosition), c.a.BindBonesParameters(t, this._effect), this._textures)) this._effect.setTexture(n, this._textures[n]); for (n in this._textureArrays) this._effect.setTextureArray(n, this._textureArrays[n]); for (n in this._ints) this._effect.setInt(n, this._ints[n]); for (n in this._floats) this._effect.setFloat(n, this._floats[n]); for (n in this._floatsArrays) this._effect.setArray(n, this._floatsArrays[n]); for (n in this._colors3) this._effect.setColor3(n, this._colors3[n]); for (n in this._colors3Arrays) this._effect.setArray3(n, this._colors3Arrays[n]); for (n in this._colors4) { var i = this._colors4[n]; this._effect.setFloat4(n, i.r, i.g, i.b, i.a); } for (n in this._colors4Arrays) this._effect.setArray4(n, this._colors4Arrays[n]); for (n in this._vectors2) this._effect.setVector2(n, this._vectors2[n]); for (n in this._vectors3) this._effect.setVector3(n, this._vectors3[n]); for (n in this._vectors4) this._effect.setVector4(n, this._vectors4[n]); for (n in this._matrices) this._effect.setMatrix(n, this._matrices[n]); for (n in this._matrixArrays) this._effect.setMatrices(n, this._matrixArrays[n]); for (n in this._matrices3x3) this._effect.setMatrix3x3(n, this._matrices3x3[n]); for (n in this._matrices2x2) this._effect.setMatrix2x2(n, this._matrices2x2[n]); for (n in this._vectors2Arrays) this._effect.setArray2(n, this._vectors2Arrays[n]); for (n in this._vectors3Arrays) this._effect.setArray3(n, this._vectors3Arrays[n]); for (n in this._vectors4Arrays) this._effect.setArray4(n, this._vectors4Arrays[n]); } this._afterBind(t); }), (t.prototype.getActiveTextures = function () { var t = e.prototype.getActiveTextures.call(this); for (var n in this._textures) t.push(this._textures[n]); for (var n in this._textureArrays) for (var i = this._textureArrays[n], r = 0; r < i.length; r++) t.push(i[r]); return t; }), (t.prototype.hasTexture = function (t) { if (e.prototype.hasTexture.call(this, t)) return !0; for (var n in this._textures) if (this._textures[n] === t) return !0; for (var n in this._textureArrays) for (var i = this._textureArrays[n], r = 0; r < i.length; r++) if (i[r] === t) return !0; return !1; }), (t.prototype.clone = function (e) { var n = this, o = r.a.Clone(function () { return new t(e, n.getScene(), n._shaderPath, n._options); }, this); for (var a in ((o.name = e), (o.id = e), "object" == typeof o._shaderPath && (o._shaderPath = Object(i.a)({}, o._shaderPath)), (this._options = Object(i.a)({}, this._options)), Object.keys(this._options).forEach(function (e) { var t = n._options[e]; Array.isArray(t) && (n._options[e] = t.slice(0)); }), this._textures)) o.setTexture(a, this._textures[a]); for (var a in this._floats) o.setFloat(a, this._floats[a]); for (var a in this._floatsArrays) o.setFloats(a, this._floatsArrays[a]); for (var a in this._colors3) o.setColor3(a, this._colors3[a]); for (var a in this._colors4) o.setColor4(a, this._colors4[a]); for (var a in this._vectors2) o.setVector2(a, this._vectors2[a]); for (var a in this._vectors3) o.setVector3(a, this._vectors3[a]); for (var a in this._vectors4) o.setVector4(a, this._vectors4[a]); for (var a in this._matrices) o.setMatrix(a, this._matrices[a]); for (var a in this._matrices3x3) o.setMatrix3x3(a, this._matrices3x3[a]); for (var a in this._matrices2x2) o.setMatrix2x2(a, this._matrices2x2[a]); return o; }), (t.prototype.dispose = function (t, n, i) { if (n) { var r; for (r in this._textures) this._textures[r].dispose(); for (r in this._textureArrays) for (var o = this._textureArrays[r], a = 0; a < o.length; a++) o[a].dispose(); } (this._textures = {}), e.prototype.dispose.call(this, t, n, i); }), (t.prototype.serialize = function () { var e, t = r.a.Serialize(this); for (e in ((t.customType = "BABYLON.ShaderMaterial"), (t.options = this._options), (t.shaderPath = this._shaderPath), (t.textures = {}), this._textures)) t.textures[e] = this._textures[e].serialize(); for (e in ((t.textureArrays = {}), this._textureArrays)) { t.textureArrays[e] = []; for (var n = this._textureArrays[e], i = 0; i < n.length; i++) t.textureArrays[e].push(n[i].serialize()); } for (e in ((t.floats = {}), this._floats)) t.floats[e] = this._floats[e]; for (e in ((t.FloatArrays = {}), this._floatsArrays)) t.FloatArrays[e] = this._floatsArrays[e]; for (e in ((t.colors3 = {}), this._colors3)) t.colors3[e] = this._colors3[e].asArray(); for (e in ((t.colors3Arrays = {}), this._colors3Arrays)) t.colors3Arrays[e] = this._colors3Arrays[e]; for (e in ((t.colors4 = {}), this._colors4)) t.colors4[e] = this._colors4[e].asArray(); for (e in ((t.colors4Arrays = {}), this._colors4Arrays)) t.colors4Arrays[e] = this._colors4Arrays[e]; for (e in ((t.vectors2 = {}), this._vectors2)) t.vectors2[e] = this._vectors2[e].asArray(); for (e in ((t.vectors3 = {}), this._vectors3)) t.vectors3[e] = this._vectors3[e].asArray(); for (e in ((t.vectors4 = {}), this._vectors4)) t.vectors4[e] = this._vectors4[e].asArray(); for (e in ((t.matrices = {}), this._matrices)) t.matrices[e] = this._matrices[e].asArray(); for (e in ((t.matrixArray = {}), this._matrixArrays)) t.matrixArray[e] = this._matrixArrays[e]; for (e in ((t.matrices3x3 = {}), this._matrices3x3)) t.matrices3x3[e] = this._matrices3x3[e]; for (e in ((t.matrices2x2 = {}), this._matrices2x2)) t.matrices2x2[e] = this._matrices2x2[e]; for (e in ((t.vectors2Arrays = {}), this._vectors2Arrays)) t.vectors2Arrays[e] = this._vectors2Arrays[e]; for (e in ((t.vectors3Arrays = {}), this._vectors3Arrays)) t.vectors3Arrays[e] = this._vectors3Arrays[e]; for (e in ((t.vectors4Arrays = {}), this._vectors4Arrays)) t.vectors4Arrays[e] = this._vectors4Arrays[e]; return t; }), (t.Parse = function (e, n, i) { var a, c = r.a.Parse( function () { return new t(e.name, n, e.shaderPath, e.options); }, e, n, i ); for (a in e.textures) c.setTexture(a, s.a.Parse(e.textures[a], n, i)); for (a in e.textureArrays) { for (var l = e.textureArrays[a], u = new Array(), d = 0; d < l.length; d++) u.push(s.a.Parse(l[d], n, i)); c.setTextureArray(a, u); } for (a in e.floats) c.setFloat(a, e.floats[a]); for (a in e.floatsArrays) c.setFloats(a, e.floatsArrays[a]); for (a in e.colors3) c.setColor3(a, h.a.FromArray(e.colors3[a])); for (a in e.colors3Arrays) { var p = e.colors3Arrays[a] .reduce(function (e, t, n) { return n % 3 == 0 ? e.push([t]) : e[e.length - 1].push(t), e; }, []) .map(function (e) { return h.a.FromArray(e); }); c.setColor3Array(a, p); } for (a in e.colors4) c.setColor4(a, h.b.FromArray(e.colors4[a])); for (a in e.colors4Arrays) { p = e.colors4Arrays[a] .reduce(function (e, t, n) { return n % 4 == 0 ? e.push([t]) : e[e.length - 1].push(t), e; }, []) .map(function (e) { return h.b.FromArray(e); }); c.setColor4Array(a, p); } for (a in e.vectors2) c.setVector2(a, o.d.FromArray(e.vectors2[a])); for (a in e.vectors3) c.setVector3(a, o.e.FromArray(e.vectors3[a])); for (a in e.vectors4) c.setVector4(a, o.f.FromArray(e.vectors4[a])); for (a in e.matrices) c.setMatrix(a, o.a.FromArray(e.matrices[a])); for (a in e.matrixArray) c._matrixArrays[a] = new Float32Array(e.matrixArray[a]); for (a in e.matrices3x3) c.setMatrix3x3(a, e.matrices3x3[a]); for (a in e.matrices2x2) c.setMatrix2x2(a, e.matrices2x2[a]); for (a in e.vectors2Arrays) c.setArray2(a, e.vectors2Arrays[a]); for (a in e.vectors3Arrays) c.setArray3(a, e.vectors3Arrays[a]); for (a in e.vectors4Arrays) c.setArray4(a, e.vectors4Arrays[a]); return c; }), t ); })(l.a); u.a.RegisteredTypes["BABYLON.ShaderMaterial"] = p; }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return l; }), n.d(t, "a", function () { return u; }); var i = n(2), r = n(24), o = n(14), a = n(7), s = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nvoid main(void)\n{\ngl_FragColor=texture2D(textureSampler,vUV);\n}"; a.a.ShadersStore.passPixelShader = s; var c = "\nvarying vec2 vUV;\nuniform samplerCube textureSampler;\nvoid main(void)\n{\nvec2 uv=vUV*2.0-1.0;\n#ifdef POSITIVEX\ngl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\n#endif\n#ifdef NEGATIVEX\ngl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\n#endif\n#ifdef POSITIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\n#endif\n#ifdef NEGATIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\n#endif\n#ifdef POSITIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\n#endif\n#ifdef NEGATIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\n#endif\n}"; a.a.ShadersStore.passCubePixelShader = c; var l = (function (e) { function t(t, n, i, r, o, a, s, c) { return void 0 === i && (i = null), void 0 === s && (s = 0), void 0 === c && (c = !1), e.call(this, t, "pass", null, null, n, i, r, o, a, void 0, s, void 0, null, c) || this; } return Object(i.d)(t, e), t; })(r.a), u = (function (e) { function t(t, n, i, r, o, a, s, c) { void 0 === i && (i = null), void 0 === s && (s = 0), void 0 === c && (c = !1); var l = e.call(this, t, "passCube", null, null, n, i, r, o, a, "#define POSITIVEX", s, void 0, null, c) || this; return (l._face = 0), l; } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "face", { get: function () { return this._face; }, set: function (e) { if (!(e < 0 || e > 5)) switch (((this._face = e), this._face)) { case 0: this.updateEffect("#define POSITIVEX"); break; case 1: this.updateEffect("#define NEGATIVEX"); break; case 2: this.updateEffect("#define POSITIVEY"); break; case 3: this.updateEffect("#define NEGATIVEY"); break; case 4: this.updateEffect("#define POSITIVEZ"); break; case 5: this.updateEffect("#define NEGATIVEZ"); } }, enumerable: !0, configurable: !0, }), t ); })(r.a); o.a._RescalePostProcessFactory = function (e) { return new l("rescale", 1, null, 2, e, !1, 0); }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }), n.d(t, "b", function () { return l; }); var i = n(1), r = [ Math.sqrt(1 / (4 * Math.PI)), -Math.sqrt(3 / (4 * Math.PI)), Math.sqrt(3 / (4 * Math.PI)), -Math.sqrt(3 / (4 * Math.PI)), Math.sqrt(15 / (4 * Math.PI)), -Math.sqrt(15 / (4 * Math.PI)), Math.sqrt(5 / (16 * Math.PI)), -Math.sqrt(15 / (4 * Math.PI)), Math.sqrt(15 / (16 * Math.PI)), ], o = [ function (e) { return 1; }, function (e) { return e.y; }, function (e) { return e.z; }, function (e) { return e.x; }, function (e) { return e.x * e.y; }, function (e) { return e.y * e.z; }, function (e) { return 3 * e.z * e.z - 1; }, function (e) { return e.x * e.z; }, function (e) { return e.x * e.x - e.y * e.y; }, ], a = function (e, t) { return r[e] * o[e](t); }, s = [Math.PI, (2 * Math.PI) / 3, (2 * Math.PI) / 3, (2 * Math.PI) / 3, Math.PI / 4, Math.PI / 4, Math.PI / 4, Math.PI / 4, Math.PI / 4], c = (function () { function e() { (this.preScaled = !1), (this.l00 = i.e.Zero()), (this.l1_1 = i.e.Zero()), (this.l10 = i.e.Zero()), (this.l11 = i.e.Zero()), (this.l2_2 = i.e.Zero()), (this.l2_1 = i.e.Zero()), (this.l20 = i.e.Zero()), (this.l21 = i.e.Zero()), (this.l22 = i.e.Zero()); } return ( (e.prototype.addLight = function (e, t, n) { var r = new i.e(t.r, t.g, t.b).scale(n); (this.l00 = this.l00.add(r.scale(a(0, e)))), (this.l1_1 = this.l1_1.add(r.scale(a(1, e)))), (this.l10 = this.l10.add(r.scale(a(2, e)))), (this.l11 = this.l11.add(r.scale(a(3, e)))), (this.l2_2 = this.l2_2.add(r.scale(a(4, e)))), (this.l2_1 = this.l2_1.add(r.scale(a(5, e)))), (this.l20 = this.l20.add(r.scale(a(6, e)))), (this.l21 = this.l21.add(r.scale(a(7, e)))), (this.l22 = this.l22.add(r.scale(a(8, e)))); }), (e.prototype.scaleInPlace = function (e) { this.l00.scaleInPlace(e), this.l1_1.scaleInPlace(e), this.l10.scaleInPlace(e), this.l11.scaleInPlace(e), this.l2_2.scaleInPlace(e), this.l2_1.scaleInPlace(e), this.l20.scaleInPlace(e), this.l21.scaleInPlace(e), this.l22.scaleInPlace(e); }), (e.prototype.convertIncidentRadianceToIrradiance = function () { this.l00.scaleInPlace(s[0]), this.l1_1.scaleInPlace(s[1]), this.l10.scaleInPlace(s[2]), this.l11.scaleInPlace(s[3]), this.l2_2.scaleInPlace(s[4]), this.l2_1.scaleInPlace(s[5]), this.l20.scaleInPlace(s[6]), this.l21.scaleInPlace(s[7]), this.l22.scaleInPlace(s[8]); }), (e.prototype.convertIrradianceToLambertianRadiance = function () { this.scaleInPlace(1 / Math.PI); }), (e.prototype.preScaleForRendering = function () { (this.preScaled = !0), this.l00.scaleInPlace(r[0]), this.l1_1.scaleInPlace(r[1]), this.l10.scaleInPlace(r[2]), this.l11.scaleInPlace(r[3]), this.l2_2.scaleInPlace(r[4]), this.l2_1.scaleInPlace(r[5]), this.l20.scaleInPlace(r[6]), this.l21.scaleInPlace(r[7]), this.l22.scaleInPlace(r[8]); }), (e.FromArray = function (t) { var n = new e(); return ( i.e.FromArrayToRef(t[0], 0, n.l00), i.e.FromArrayToRef(t[1], 0, n.l1_1), i.e.FromArrayToRef(t[2], 0, n.l10), i.e.FromArrayToRef(t[3], 0, n.l11), i.e.FromArrayToRef(t[4], 0, n.l2_2), i.e.FromArrayToRef(t[5], 0, n.l2_1), i.e.FromArrayToRef(t[6], 0, n.l20), i.e.FromArrayToRef(t[7], 0, n.l21), i.e.FromArrayToRef(t[8], 0, n.l22), n ); }), (e.FromPolynomial = function (t) { var n = new e(); return ( (n.l00 = t.xx.scale(0.376127).add(t.yy.scale(0.376127)).add(t.zz.scale(0.376126))), (n.l1_1 = t.y.scale(0.977204)), (n.l10 = t.z.scale(0.977204)), (n.l11 = t.x.scale(0.977204)), (n.l2_2 = t.xy.scale(1.16538)), (n.l2_1 = t.yz.scale(1.16538)), (n.l20 = t.zz.scale(1.34567).subtract(t.xx.scale(0.672834)).subtract(t.yy.scale(0.672834))), (n.l21 = t.zx.scale(1.16538)), (n.l22 = t.xx.scale(1.16538).subtract(t.yy.scale(1.16538))), n.l1_1.scaleInPlace(-1), n.l11.scaleInPlace(-1), n.l2_1.scaleInPlace(-1), n.l21.scaleInPlace(-1), n.scaleInPlace(Math.PI), n ); }), e ); })(), l = (function () { function e() { (this.x = i.e.Zero()), (this.y = i.e.Zero()), (this.z = i.e.Zero()), (this.xx = i.e.Zero()), (this.yy = i.e.Zero()), (this.zz = i.e.Zero()), (this.xy = i.e.Zero()), (this.yz = i.e.Zero()), (this.zx = i.e.Zero()); } return ( Object.defineProperty(e.prototype, "preScaledHarmonics", { get: function () { return this._harmonics || (this._harmonics = c.FromPolynomial(this)), this._harmonics.preScaled || this._harmonics.preScaleForRendering(), this._harmonics; }, enumerable: !0, configurable: !0, }), (e.prototype.addAmbient = function (e) { var t = new i.e(e.r, e.g, e.b); (this.xx = this.xx.add(t)), (this.yy = this.yy.add(t)), (this.zz = this.zz.add(t)); }), (e.prototype.scaleInPlace = function (e) { this.x.scaleInPlace(e), this.y.scaleInPlace(e), this.z.scaleInPlace(e), this.xx.scaleInPlace(e), this.yy.scaleInPlace(e), this.zz.scaleInPlace(e), this.yz.scaleInPlace(e), this.zx.scaleInPlace(e), this.xy.scaleInPlace(e); }), (e.FromHarmonics = function (t) { var n = new e(); return ( (n._harmonics = t), (n.x = t.l11.scale(1.02333).scale(-1)), (n.y = t.l1_1.scale(1.02333).scale(-1)), (n.z = t.l10.scale(1.02333)), (n.xx = t.l00.scale(0.886277).subtract(t.l20.scale(0.247708)).add(t.l22.scale(0.429043))), (n.yy = t.l00.scale(0.886277).subtract(t.l20.scale(0.247708)).subtract(t.l22.scale(0.429043))), (n.zz = t.l00.scale(0.886277).add(t.l20.scale(0.495417))), (n.yz = t.l2_1.scale(0.858086).scale(-1)), (n.zx = t.l21.scale(0.858086).scale(-1)), (n.xy = t.l2_2.scale(0.858086)), n.scaleInPlace(1 / Math.PI), n ); }), (e.FromArray = function (t) { var n = new e(); return ( i.e.FromArrayToRef(t[0], 0, n.x), i.e.FromArrayToRef(t[1], 0, n.y), i.e.FromArrayToRef(t[2], 0, n.z), i.e.FromArrayToRef(t[3], 0, n.xx), i.e.FromArrayToRef(t[4], 0, n.yy), i.e.FromArrayToRef(t[5], 0, n.zz), i.e.FromArrayToRef(t[6], 0, n.yz), i.e.FromArrayToRef(t[7], 0, n.zx), i.e.FromArrayToRef(t[8], 0, n.xy), n ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e(e, t) { (this.width = e), (this.height = t); } return ( (e.prototype.toString = function () { return "{W: " + this.width + ", H: " + this.height + "}"; }), (e.prototype.getClassName = function () { return "Size"; }), (e.prototype.getHashCode = function () { var e = 0 | this.width; return (e = (397 * e) ^ (0 | this.height)); }), (e.prototype.copyFrom = function (e) { (this.width = e.width), (this.height = e.height); }), (e.prototype.copyFromFloats = function (e, t) { return (this.width = e), (this.height = t), this; }), (e.prototype.set = function (e, t) { return this.copyFromFloats(e, t); }), (e.prototype.multiplyByFloats = function (t, n) { return new e(this.width * t, this.height * n); }), (e.prototype.clone = function () { return new e(this.width, this.height); }), (e.prototype.equals = function (e) { return !!e && this.width === e.width && this.height === e.height; }), Object.defineProperty(e.prototype, "surface", { get: function () { return this.width * this.height; }, enumerable: !0, configurable: !0, }), (e.Zero = function () { return new e(0, 0); }), (e.prototype.add = function (t) { return new e(this.width + t.width, this.height + t.height); }), (e.prototype.subtract = function (t) { return new e(this.width - t.width, this.height - t.height); }), (e.Lerp = function (t, n, i) { return new e(t.width + (n.width - t.width) * i, t.height + (n.height - t.height) * i); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(1), o = n(58), a = n(35), s = n(23), c = (function (e) { function t(t, n, i, o, a, s, c) { void 0 === i && (i = null), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === s && (s = null), void 0 === c && (c = null); var l = e.call(this, t, n.getScene()) || this; return ( (l.name = t), (l.children = new Array()), (l.animations = new Array()), (l._index = null), (l._absoluteTransform = new r.a()), (l._invertedAbsoluteTransform = new r.a()), (l._scalingDeterminant = 1), (l._worldTransform = new r.a()), (l._needToDecompose = !0), (l._needToCompose = !1), (l._linkedTransformNode = null), (l._waitingTransformNodeId = null), (l._skeleton = n), (l._localMatrix = o ? o.clone() : r.a.Identity()), (l._restPose = a || l._localMatrix.clone()), (l._baseMatrix = s || l._localMatrix.clone()), (l._index = c), n.bones.push(l), l.setParent(i, !1), (s || o) && l._updateDifferenceMatrix(), l ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "_matrix", { get: function () { return this._compose(), this._localMatrix; }, set: function (e) { this._localMatrix.copyFrom(e), (this._needToDecompose = !0); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "Bone"; }), (t.prototype.getSkeleton = function () { return this._skeleton; }), (t.prototype.getParent = function () { return this._parent; }), (t.prototype.getChildren = function () { return this.children; }), (t.prototype.getIndex = function () { return null === this._index ? this.getSkeleton().bones.indexOf(this) : this._index; }), (t.prototype.setParent = function (e, t) { if ((void 0 === t && (t = !0), this._parent !== e)) { if (this._parent) { var n = this._parent.children.indexOf(this); -1 !== n && this._parent.children.splice(n, 1); } (this._parent = e), this._parent && this._parent.children.push(this), t && this._updateDifferenceMatrix(), this.markAsDirty(); } }), (t.prototype.getLocalMatrix = function () { return this._compose(), this._localMatrix; }), (t.prototype.getBaseMatrix = function () { return this._baseMatrix; }), (t.prototype.getRestPose = function () { return this._restPose; }), (t.prototype.getWorldMatrix = function () { return this._worldTransform; }), (t.prototype.returnToRest = function () { this.updateMatrix(this._restPose.clone()); }), (t.prototype.getInvertedAbsoluteTransform = function () { return this._invertedAbsoluteTransform; }), (t.prototype.getAbsoluteTransform = function () { return this._absoluteTransform; }), (t.prototype.linkTransformNode = function (e) { this._linkedTransformNode && this._skeleton._numBonesWithLinkedTransformNode--, (this._linkedTransformNode = e), this._linkedTransformNode && this._skeleton._numBonesWithLinkedTransformNode++; }), (t.prototype.getTransformNode = function () { return this._linkedTransformNode; }), Object.defineProperty(t.prototype, "position", { get: function () { return this._decompose(), this._localPosition; }, set: function (e) { this._decompose(), this._localPosition.copyFrom(e), this._markAsDirtyAndCompose(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotation", { get: function () { return this.getRotation(); }, set: function (e) { this.setRotation(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotationQuaternion", { get: function () { return this._decompose(), this._localRotation; }, set: function (e) { this.setRotationQuaternion(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scaling", { get: function () { return this.getScale(); }, set: function (e) { this.setScale(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "animationPropertiesOverride", { get: function () { return this._skeleton.animationPropertiesOverride; }, enumerable: !0, configurable: !0, }), (t.prototype._decompose = function () { this._needToDecompose && ((this._needToDecompose = !1), this._localScaling || ((this._localScaling = r.e.Zero()), (this._localRotation = r.b.Zero()), (this._localPosition = r.e.Zero())), this._localMatrix.decompose(this._localScaling, this._localRotation, this._localPosition)); }), (t.prototype._compose = function () { this._needToCompose && (this._localScaling ? ((this._needToCompose = !1), r.a.ComposeToRef(this._localScaling, this._localRotation, this._localPosition, this._localMatrix)) : (this._needToCompose = !1)); }), (t.prototype.updateMatrix = function (e, t, n) { void 0 === t && (t = !0), void 0 === n && (n = !0), this._baseMatrix.copyFrom(e), t && this._updateDifferenceMatrix(), n ? (this._localMatrix.copyFrom(e), this._markAsDirtyAndDecompose()) : this.markAsDirty(); }), (t.prototype._updateDifferenceMatrix = function (e, t) { if ( (void 0 === t && (t = !0), e || (e = this._baseMatrix), this._parent ? e.multiplyToRef(this._parent._absoluteTransform, this._absoluteTransform) : this._absoluteTransform.copyFrom(e), this._absoluteTransform.invertToRef(this._invertedAbsoluteTransform), t) ) for (var n = 0; n < this.children.length; n++) this.children[n]._updateDifferenceMatrix(); this._scalingDeterminant = this._absoluteTransform.determinant() < 0 ? -1 : 1; }), (t.prototype.markAsDirty = function () { this._currentRenderId++, this._childUpdateId++, this._skeleton._markAsDirty(); }), (t.prototype._markAsDirtyAndCompose = function () { this.markAsDirty(), (this._needToCompose = !0); }), (t.prototype._markAsDirtyAndDecompose = function () { this.markAsDirty(), (this._needToDecompose = !0); }), (t.prototype.translate = function (e, n, i) { void 0 === n && (n = s.b.LOCAL); var o = this.getLocalMatrix(); if (n == s.b.LOCAL) o.addAtIndex(12, e.x), o.addAtIndex(13, e.y), o.addAtIndex(14, e.z); else { var a = null; i && (a = i.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms(); var c = t._tmpMats[0], l = t._tmpVecs[0]; this._parent && (i && a ? (c.copyFrom(this._parent.getAbsoluteTransform()), c.multiplyToRef(a, c)) : c.copyFrom(this._parent.getAbsoluteTransform())), c.setTranslationFromFloats(0, 0, 0), c.invert(), r.e.TransformCoordinatesToRef(e, c, l), o.addAtIndex(12, l.x), o.addAtIndex(13, l.y), o.addAtIndex(14, l.z); } this._markAsDirtyAndDecompose(); }), (t.prototype.setPosition = function (e, n, i) { void 0 === n && (n = s.b.LOCAL); var o = this.getLocalMatrix(); if (n == s.b.LOCAL) o.setTranslationFromFloats(e.x, e.y, e.z); else { var a = null; i && (a = i.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms(); var c = t._tmpMats[0], l = t._tmpVecs[0]; this._parent && (i && a ? (c.copyFrom(this._parent.getAbsoluteTransform()), c.multiplyToRef(a, c)) : c.copyFrom(this._parent.getAbsoluteTransform())), c.invert(), r.e.TransformCoordinatesToRef(e, c, l), o.setTranslationFromFloats(l.x, l.y, l.z); } this._markAsDirtyAndDecompose(); }), (t.prototype.setAbsolutePosition = function (e, t) { this.setPosition(e, s.b.WORLD, t); }), (t.prototype.scale = function (e, n, i, o) { void 0 === o && (o = !1); var a = this.getLocalMatrix(), s = t._tmpMats[0]; r.a.ScalingToRef(e, n, i, s), s.multiplyToRef(a, a), s.invert(); for (var c = 0, l = this.children; c < l.length; c++) { var u = (p = l[c]).getLocalMatrix(); u.multiplyToRef(s, u), u.multiplyAtIndex(12, e), u.multiplyAtIndex(13, n), u.multiplyAtIndex(14, i), p._markAsDirtyAndDecompose(); } if ((this._markAsDirtyAndDecompose(), o)) for (var h = 0, d = this.children; h < d.length; h++) { var p; (p = d[h]).scale(e, n, i, o); } }), (t.prototype.setScale = function (e) { this._decompose(), this._localScaling.copyFrom(e), this._markAsDirtyAndCompose(); }), (t.prototype.getScale = function () { return this._decompose(), this._localScaling; }), (t.prototype.getScaleToRef = function (e) { this._decompose(), e.copyFrom(this._localScaling); }), (t.prototype.setYawPitchRoll = function (e, n, i, o, a) { if ((void 0 === o && (o = s.b.LOCAL), o === s.b.LOCAL)) { var c = t._tmpQuat; return r.b.RotationYawPitchRollToRef(e, n, i, c), void this.setRotationQuaternion(c, o, a); } var l = t._tmpMats[0]; if (this._getNegativeRotationToRef(l, a)) { var u = t._tmpMats[1]; r.a.RotationYawPitchRollToRef(e, n, i, u), l.multiplyToRef(u, u), this._rotateWithMatrix(u, o, a); } }), (t.prototype.rotate = function (e, n, i, o) { void 0 === i && (i = s.b.LOCAL); var a = t._tmpMats[0]; a.setTranslationFromFloats(0, 0, 0), r.a.RotationAxisToRef(e, n, a), this._rotateWithMatrix(a, i, o); }), (t.prototype.setAxisAngle = function (e, n, i, o) { if ((void 0 === i && (i = s.b.LOCAL), i === s.b.LOCAL)) { var a = t._tmpQuat; return r.b.RotationAxisToRef(e, n, a), void this.setRotationQuaternion(a, i, o); } var c = t._tmpMats[0]; if (this._getNegativeRotationToRef(c, o)) { var l = t._tmpMats[1]; r.a.RotationAxisToRef(e, n, l), c.multiplyToRef(l, l), this._rotateWithMatrix(l, i, o); } }), (t.prototype.setRotation = function (e, t, n) { void 0 === t && (t = s.b.LOCAL), this.setYawPitchRoll(e.y, e.x, e.z, t, n); }), (t.prototype.setRotationQuaternion = function (e, n, i) { if ((void 0 === n && (n = s.b.LOCAL), n === s.b.LOCAL)) return this._decompose(), this._localRotation.copyFrom(e), void this._markAsDirtyAndCompose(); var o = t._tmpMats[0]; if (this._getNegativeRotationToRef(o, i)) { var a = t._tmpMats[1]; r.a.FromQuaternionToRef(e, a), o.multiplyToRef(a, a), this._rotateWithMatrix(a, n, i); } }), (t.prototype.setRotationMatrix = function (e, n, i) { if ((void 0 === n && (n = s.b.LOCAL), n === s.b.LOCAL)) { var o = t._tmpQuat; return r.b.FromRotationMatrixToRef(e, o), void this.setRotationQuaternion(o, n, i); } var a = t._tmpMats[0]; if (this._getNegativeRotationToRef(a, i)) { var c = t._tmpMats[1]; c.copyFrom(e), a.multiplyToRef(e, c), this._rotateWithMatrix(c, n, i); } }), (t.prototype._rotateWithMatrix = function (e, n, i) { void 0 === n && (n = s.b.LOCAL); var r = this.getLocalMatrix(), o = r.m[12], a = r.m[13], c = r.m[14], l = this.getParent(), u = t._tmpMats[3], h = t._tmpMats[4]; l && n == s.b.WORLD ? (i ? (u.copyFrom(i.getWorldMatrix()), l.getAbsoluteTransform().multiplyToRef(u, u)) : u.copyFrom(l.getAbsoluteTransform()), h.copyFrom(u), h.invert(), r.multiplyToRef(u, r), r.multiplyToRef(e, r), r.multiplyToRef(h, r)) : n == s.b.WORLD && i ? (u.copyFrom(i.getWorldMatrix()), h.copyFrom(u), h.invert(), r.multiplyToRef(u, r), r.multiplyToRef(e, r), r.multiplyToRef(h, r)) : r.multiplyToRef(e, r), r.setTranslationFromFloats(o, a, c), this.computeAbsoluteTransforms(), this._markAsDirtyAndDecompose(); }), (t.prototype._getNegativeRotationToRef = function (e, n) { var i = t._tmpMats[2]; return ( e.copyFrom(this.getAbsoluteTransform()), n && (e.multiplyToRef(n.getWorldMatrix(), e), r.a.ScalingToRef(n.scaling.x, n.scaling.y, n.scaling.z, i)), e.invert(), !isNaN(e.m[0]) && (i.multiplyAtIndex(0, this._scalingDeterminant), e.multiplyToRef(i, e), !0) ); }), (t.prototype.getPosition = function (e, t) { void 0 === e && (e = s.b.LOCAL), void 0 === t && (t = null); var n = r.e.Zero(); return this.getPositionToRef(e, t, n), n; }), (t.prototype.getPositionToRef = function (e, n, i) { if ((void 0 === e && (e = s.b.LOCAL), e == s.b.LOCAL)) { var r = this.getLocalMatrix(); (i.x = r.m[12]), (i.y = r.m[13]), (i.z = r.m[14]); } else { var o = null; n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms(); var a = t._tmpMats[0]; n && o ? (a.copyFrom(this.getAbsoluteTransform()), a.multiplyToRef(o, a)) : (a = this.getAbsoluteTransform()), (i.x = a.m[12]), (i.y = a.m[13]), (i.z = a.m[14]); } }), (t.prototype.getAbsolutePosition = function (e) { void 0 === e && (e = null); var t = r.e.Zero(); return this.getPositionToRef(s.b.WORLD, e, t), t; }), (t.prototype.getAbsolutePositionToRef = function (e, t) { this.getPositionToRef(s.b.WORLD, e, t); }), (t.prototype.computeAbsoluteTransforms = function () { if ((this._compose(), this._parent)) this._localMatrix.multiplyToRef(this._parent._absoluteTransform, this._absoluteTransform); else { this._absoluteTransform.copyFrom(this._localMatrix); var e = this._skeleton.getPoseMatrix(); e && this._absoluteTransform.multiplyToRef(e, this._absoluteTransform); } for (var t = this.children, n = t.length, i = 0; i < n; i++) t[i].computeAbsoluteTransforms(); }), (t.prototype.getDirection = function (e, t) { void 0 === t && (t = null); var n = r.e.Zero(); return this.getDirectionToRef(e, t, n), n; }), (t.prototype.getDirectionToRef = function (e, n, i) { void 0 === n && (n = null); var o = null; n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms(); var a = t._tmpMats[0]; a.copyFrom(this.getAbsoluteTransform()), n && o && a.multiplyToRef(o, a), r.e.TransformNormalToRef(e, a, i), i.normalize(); }), (t.prototype.getRotation = function (e, t) { void 0 === e && (e = s.b.LOCAL), void 0 === t && (t = null); var n = r.e.Zero(); return this.getRotationToRef(e, t, n), n; }), (t.prototype.getRotationToRef = function (e, n, i) { void 0 === e && (e = s.b.LOCAL), void 0 === n && (n = null); var r = t._tmpQuat; this.getRotationQuaternionToRef(e, n, r), r.toEulerAnglesToRef(i); }), (t.prototype.getRotationQuaternion = function (e, t) { void 0 === e && (e = s.b.LOCAL), void 0 === t && (t = null); var n = r.b.Identity(); return this.getRotationQuaternionToRef(e, t, n), n; }), (t.prototype.getRotationQuaternionToRef = function (e, n, i) { if ((void 0 === e && (e = s.b.LOCAL), void 0 === n && (n = null), e == s.b.LOCAL)) this._decompose(), i.copyFrom(this._localRotation); else { var r = t._tmpMats[0], o = this.getAbsoluteTransform(); n ? o.multiplyToRef(n.getWorldMatrix(), r) : r.copyFrom(o), r.multiplyAtIndex(0, this._scalingDeterminant), r.multiplyAtIndex(1, this._scalingDeterminant), r.multiplyAtIndex(2, this._scalingDeterminant), r.decompose(void 0, i, void 0); } }), (t.prototype.getRotationMatrix = function (e, t) { void 0 === e && (e = s.b.LOCAL); var n = r.a.Identity(); return this.getRotationMatrixToRef(e, t, n), n; }), (t.prototype.getRotationMatrixToRef = function (e, n, i) { if ((void 0 === e && (e = s.b.LOCAL), e == s.b.LOCAL)) this.getLocalMatrix().getRotationMatrixToRef(i); else { var r = t._tmpMats[0], o = this.getAbsoluteTransform(); n ? o.multiplyToRef(n.getWorldMatrix(), r) : r.copyFrom(o), r.multiplyAtIndex(0, this._scalingDeterminant), r.multiplyAtIndex(1, this._scalingDeterminant), r.multiplyAtIndex(2, this._scalingDeterminant), r.getRotationMatrixToRef(i); } }), (t.prototype.getAbsolutePositionFromLocal = function (e, t) { void 0 === t && (t = null); var n = r.e.Zero(); return this.getAbsolutePositionFromLocalToRef(e, t, n), n; }), (t.prototype.getAbsolutePositionFromLocalToRef = function (e, n, i) { void 0 === n && (n = null); var o = null; n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms(); var a = t._tmpMats[0]; n && o ? (a.copyFrom(this.getAbsoluteTransform()), a.multiplyToRef(o, a)) : (a = this.getAbsoluteTransform()), r.e.TransformCoordinatesToRef(e, a, i); }), (t.prototype.getLocalPositionFromAbsolute = function (e, t) { void 0 === t && (t = null); var n = r.e.Zero(); return this.getLocalPositionFromAbsoluteToRef(e, t, n), n; }), (t.prototype.getLocalPositionFromAbsoluteToRef = function (e, n, i) { void 0 === n && (n = null); var o = null; n && (o = n.getWorldMatrix()), this._skeleton.computeAbsoluteTransforms(); var a = t._tmpMats[0]; a.copyFrom(this.getAbsoluteTransform()), n && o && a.multiplyToRef(o, a), a.invert(), r.e.TransformCoordinatesToRef(e, a, i); }), (t._tmpVecs = o.a.BuildArray(2, r.e.Zero)), (t._tmpQuat = r.b.Identity()), (t._tmpMats = o.a.BuildArray(5, r.a.Identity)), t ); })(a.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(9), r = n(16); (r.a.CreatePlane = function (e) { var t = [], n = [], i = [], o = [], a = e.width || e.size || 1, s = e.height || e.size || 1, c = 0 === e.sideOrientation ? 0 : e.sideOrientation || r.a.DEFAULTSIDE, l = a / 2, u = s / 2; n.push(-l, -u, 0), i.push(0, 0, -1), o.push(0, 0), n.push(l, -u, 0), i.push(0, 0, -1), o.push(1, 0), n.push(l, u, 0), i.push(0, 0, -1), o.push(1, 1), n.push(-l, u, 0), i.push(0, 0, -1), o.push(0, 1), t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), r.a._ComputeSides(c, n, t, i, o, e.frontUVs, e.backUVs); var h = new r.a(); return (h.indices = t), (h.positions = n), (h.normals = i), (h.uvs = o), h; }), (i.a.CreatePlane = function (e, t, n, i, r) { var a = { size: t, width: t, height: t, sideOrientation: r, updatable: i }; return o.CreatePlane(e, a, n); }); var o = (function () { function e() {} return ( (e.CreatePlane = function (e, t, n) { void 0 === n && (n = null); var o = new i.a(e, n); return ( (t.sideOrientation = i.a._GetDefaultSideOrientation(t.sideOrientation)), (o._originalBuilderSideOrientation = t.sideOrientation), r.a.CreatePlane(t).applyToMesh(o, t.updatable), t.sourcePlane && (o.translate(t.sourcePlane.normal, -t.sourcePlane.d), o.setDirection(t.sourcePlane.normal.scale(-1))), o ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.CreateCanvas = function (e, t) { if ("undefined" == typeof document) return new OffscreenCanvas(e, t); var n = document.createElement("canvas"); return (n.width = e), (n.height = t), n; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }), n.d(t, "b", function () { return r; }); var i = (function () { function e() {} return (e.COPY = 1), (e.CUT = 2), (e.PASTE = 3), e; })(), r = (function () { function e(e, t) { (this.type = e), (this.event = t); } return ( (e.GetTypeFromCharacter = function (e) { switch (e) { case 67: return i.COPY; case 86: return i.PASTE; case 88: return i.CUT; default: return -1; } }), e ); })(); }, function (e, t, n) { "use strict"; var i = "#ifdef DEPTHPREPASS\ngl_FragColor=vec4(0.,0.,0.,1.0);\nreturn;\n#endif"; n(7).a.IncludesShadersStore.depthPrePass = i; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(3), o = n(1), a = n(35), s = n(57), c = n(121); a.a.AddNodeConstructor("Light_Type_1", function (e, t) { return function () { return new l(e, o.e.Zero(), t); }; }); var l = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return ( (r._shadowFrustumSize = 0), (r._shadowOrthoScale = 0.1), (r.autoUpdateExtends = !0), (r.autoCalcShadowZBounds = !1), (r._orthoLeft = Number.MAX_VALUE), (r._orthoRight = Number.MIN_VALUE), (r._orthoTop = Number.MIN_VALUE), (r._orthoBottom = Number.MAX_VALUE), (r.position = n.scale(-1)), (r.direction = n), r ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "shadowFrustumSize", { get: function () { return this._shadowFrustumSize; }, set: function (e) { (this._shadowFrustumSize = e), this.forceProjectionMatrixCompute(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadowOrthoScale", { get: function () { return this._shadowOrthoScale; }, set: function (e) { (this._shadowOrthoScale = e), this.forceProjectionMatrixCompute(); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "DirectionalLight"; }), (t.prototype.getTypeID = function () { return s.a.LIGHTTYPEID_DIRECTIONALLIGHT; }), (t.prototype._setDefaultShadowProjectionMatrix = function (e, t, n) { this.shadowFrustumSize > 0 ? this._setDefaultFixedFrustumShadowProjectionMatrix(e) : this._setDefaultAutoExtendShadowProjectionMatrix(e, t, n); }), (t.prototype._setDefaultFixedFrustumShadowProjectionMatrix = function (e) { var t = this.getScene().activeCamera; t && o.a.OrthoLHToRef(this.shadowFrustumSize, this.shadowFrustumSize, void 0 !== this.shadowMinZ ? this.shadowMinZ : t.minZ, void 0 !== this.shadowMaxZ ? this.shadowMaxZ : t.maxZ, e); }), (t.prototype._setDefaultAutoExtendShadowProjectionMatrix = function (e, t, n) { var i = this.getScene().activeCamera; if (i) { if (this.autoUpdateExtends || this._orthoLeft === Number.MAX_VALUE) { var r = o.e.Zero(); (this._orthoLeft = Number.MAX_VALUE), (this._orthoRight = Number.MIN_VALUE), (this._orthoTop = Number.MIN_VALUE), (this._orthoBottom = Number.MAX_VALUE); for (var a = Number.MAX_VALUE, s = Number.MIN_VALUE, c = 0; c < n.length; c++) { var l = n[c]; if (l) for (var u = l.getBoundingInfo().boundingBox, h = 0; h < u.vectorsWorld.length; h++) o.e.TransformCoordinatesToRef(u.vectorsWorld[h], t, r), r.x < this._orthoLeft && (this._orthoLeft = r.x), r.y < this._orthoBottom && (this._orthoBottom = r.y), r.x > this._orthoRight && (this._orthoRight = r.x), r.y > this._orthoTop && (this._orthoTop = r.y), this.autoCalcShadowZBounds && (r.z < a && (a = r.z), r.z > s && (s = r.z)); } this.autoCalcShadowZBounds && ((this._shadowMinZ = a), (this._shadowMaxZ = s)); } var d = this._orthoRight - this._orthoLeft, p = this._orthoTop - this._orthoBottom; o.a.OrthoOffCenterLHToRef( this._orthoLeft - d * this.shadowOrthoScale, this._orthoRight + d * this.shadowOrthoScale, this._orthoBottom - p * this.shadowOrthoScale, this._orthoTop + p * this.shadowOrthoScale, void 0 !== this.shadowMinZ ? this.shadowMinZ : i.minZ, void 0 !== this.shadowMaxZ ? this.shadowMaxZ : i.maxZ, e ); } }), (t.prototype._buildUniformLayout = function () { this._uniformBuffer.addUniform("vLightData", 4), this._uniformBuffer.addUniform("vLightDiffuse", 4), this._uniformBuffer.addUniform("vLightSpecular", 4), this._uniformBuffer.addUniform("shadowsInfo", 3), this._uniformBuffer.addUniform("depthValues", 2), this._uniformBuffer.create(); }), (t.prototype.transferToEffect = function (e, t) { return this.computeTransformedInformation() ? (this._uniformBuffer.updateFloat4("vLightData", this.transformedDirection.x, this.transformedDirection.y, this.transformedDirection.z, 1, t), this) : (this._uniformBuffer.updateFloat4("vLightData", this.direction.x, this.direction.y, this.direction.z, 1, t), this); }), (t.prototype.transferToNodeMaterialEffect = function (e, t) { return this.computeTransformedInformation() ? (e.setFloat3(t, this.transformedDirection.x, this.transformedDirection.y, this.transformedDirection.z), this) : (e.setFloat3(t, this.direction.x, this.direction.y, this.direction.z), this); }), (t.prototype.getDepthMinZ = function (e) { return 1; }), (t.prototype.getDepthMaxZ = function (e) { return 1; }), (t.prototype.prepareLightSpecificDefines = function (e, t) { e["DIRLIGHT" + t] = !0; }), Object(i.c)([Object(r.c)()], t.prototype, "shadowFrustumSize", null), Object(i.c)([Object(r.c)()], t.prototype, "shadowOrthoScale", null), Object(i.c)([Object(r.c)()], t.prototype, "autoUpdateExtends", void 0), Object(i.c)([Object(r.c)()], t.prototype, "autoCalcShadowZBounds", void 0), t ); })(c.a); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return h; }), n.d(t, "a", function () { return d; }); var i = n(2), r = n(5), o = n(4), a = n(9), s = n(149), c = n(28), l = n(106), u = n(11), h = (n(226), n(227), (function (e) { function t(t, n, i, a, s, c, u) { void 0 === n && (n = null), void 0 === i && (i = null), void 0 === a && (a = null); var h = e.call(this, t, n, i, a, s) || this; (h.useVertexColor = c), (h.useVertexAlpha = u), (h.color = new r.a(1, 1, 1)), (h.alpha = 1), a && ((h.color = a.color.clone()), (h.alpha = a.alpha), (h.useVertexColor = a.useVertexColor), (h.useVertexAlpha = a.useVertexAlpha)), (h.intersectionThreshold = 0.1); var d = { attributes: [o.b.PositionKind, "world0", "world1", "world2", "world3"], uniforms: ["vClipPlane", "vClipPlane2", "vClipPlane3", "vClipPlane4", "vClipPlane5", "vClipPlane6", "world", "viewProjection"], needAlphaBlending: !0, defines: [], }; return ( !1 === u && (d.needAlphaBlending = !1), c ? (d.defines.push("#define VERTEXCOLOR"), d.attributes.push(o.b.ColorKind)) : (d.uniforms.push("color"), (h.color4 = new r.b())), (h._colorShader = new l.a("colorShader", h.getScene(), "color", d)), h ); } return ( Object(i.d)(t, e), (t.prototype._addClipPlaneDefine = function (e) { var t = "#define " + e; -1 === this._colorShader.options.defines.indexOf(t) && this._colorShader.options.defines.push(t); }), (t.prototype._removeClipPlaneDefine = function (e) { var t = "#define " + e, n = this._colorShader.options.defines.indexOf(t); -1 !== n && this._colorShader.options.defines.splice(n, 1); }), (t.prototype.isReady = function () { var t = this.getScene(); return ( t.clipPlane ? this._addClipPlaneDefine("CLIPPLANE") : this._removeClipPlaneDefine("CLIPPLANE"), t.clipPlane2 ? this._addClipPlaneDefine("CLIPPLANE2") : this._removeClipPlaneDefine("CLIPPLANE2"), t.clipPlane3 ? this._addClipPlaneDefine("CLIPPLANE3") : this._removeClipPlaneDefine("CLIPPLANE3"), t.clipPlane4 ? this._addClipPlaneDefine("CLIPPLANE4") : this._removeClipPlaneDefine("CLIPPLANE4"), t.clipPlane5 ? this._addClipPlaneDefine("CLIPPLANE5") : this._removeClipPlaneDefine("CLIPPLANE5"), t.clipPlane6 ? this._addClipPlaneDefine("CLIPPLANE6") : this._removeClipPlaneDefine("CLIPPLANE6"), !!this._colorShader.isReady() && e.prototype.isReady.call(this) ); }), (t.prototype.getClassName = function () { return "LinesMesh"; }), Object.defineProperty(t.prototype, "material", { get: function () { return this._colorShader; }, set: function (e) {}, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "checkCollisions", { get: function () { return !1; }, enumerable: !0, configurable: !0, }), (t.prototype._bind = function (e, t, n) { if (!this._geometry) return this; var i = this._colorShader.getEffect(), r = this.isUnIndexed ? null : this._geometry.getIndexBuffer(); if ((this._geometry._bind(i, r), !this.useVertexColor)) { var o = this.color, a = o.r, s = o.g, c = o.b; this.color4.set(a, s, c, this.alpha), this._colorShader.setColor4("color", this.color4); } return u.a.BindClipPlane(i, this.getScene()), this; }), (t.prototype._draw = function (e, t, n) { if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) return this; var i = this.getScene().getEngine(); return this._unIndexed ? i.drawArraysType(c.a.LineListDrawMode, e.verticesStart, e.verticesCount, n) : i.drawElementsType(c.a.LineListDrawMode, e.indexStart, e.indexCount, n), this; }), (t.prototype.dispose = function (t) { this._colorShader.dispose(!1, !1, !0), e.prototype.dispose.call(this, t); }), (t.prototype.clone = function (e, n, i) { return void 0 === n && (n = null), new t(e, this.getScene(), n, this, i); }), (t.prototype.createInstance = function (e) { return new d(e, this); }), t ); })(a.a)), d = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return (i.intersectionThreshold = n.intersectionThreshold), i; } return ( Object(i.d)(t, e), (t.prototype.getClassName = function () { return "InstancedLinesMesh"; }), t ); })(s.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return f; }); var i = n(12), r = n(1), o = n(15), a = n(108), s = n(32), c = n(68), l = n(18), u = n(24), h = n(10), d = (n(209), n(213), n(7)), p = (n(59), "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\nvoid main(void)\n{\ngl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);\n}"); d.a.ShadersStore.rgbdEncodePixelShader = p; n(229); var f = (function () { function e() {} return ( (e.GetEnvInfo = function (t) { for (var n = new DataView(t.buffer, t.byteOffset, t.byteLength), i = 0, r = 0; r < e._MagicBytes.length; r++) if (n.getUint8(i++) !== e._MagicBytes[r]) return h.a.Error("Not a babylon environment map"), null; for (var o = "", a = 0; (a = n.getUint8(i++)); ) o += String.fromCharCode(a); var s = JSON.parse(o); return s.specular && ((s.specular.specularDataPosition = i), (s.specular.lodGenerationScale = s.specular.lodGenerationScale || 0.8)), s; }), (e.CreateEnvTextureAsync = function (t) { var n = this, r = t.getInternalTexture(); if (!r) return Promise.reject("The cube texture is invalid."); if (!t._prefiltered) return Promise.reject("The cube texture is invalid (not prefiltered)."); var a = r.getEngine(); if (a && a.premultipliedAlpha) return Promise.reject("Env texture can only be created when the engine is created with the premultipliedAlpha option set to false."); if (0 === t.textureType) return Promise.reject("The cube texture should allow HDR (Full Float or Half Float)."); var s = a.getRenderingCanvas(); if (!s) return Promise.reject("Env texture can only be created when the engine is associated to a canvas."); var c = 1; if (!a.getCaps().textureFloatRender && ((c = 2), !a.getCaps().textureHalfFloatRender)) return Promise.reject("Env texture can only be created when the browser supports half float or full float rendering."); var h = r.width, d = new l.a(a), p = {}, f = [], m = o.a.Log2(r.width); m = Math.round(m); for ( var g = function (e) { for ( var n = Math.pow(2, m - e), r = function (r) { var o = t.readPixels(r, e), l = a.createRawTexture(o, n, n, 5, !1, !1, 1, null, c), h = new Promise(function (t, o) { var c = new u.a("rgbdEncode", "rgbdEncode", null, null, 1, null, 1, a, !1, void 0, 0, void 0, null, !1); c.getEffect().executeWhenCompiled(function () { c.onApply = function (e) { e._bindTexture("textureSampler", l); }; var o = a.getRenderWidth(), u = a.getRenderHeight(); a.setSize(n, n), d.postProcessManager.directRender([c], null), i.b.ToBlob(s, function (n) { var i = new FileReader(); (i.onload = function (n) { var i = n.target.result; (p[6 * e + r] = i), t(); }), i.readAsArrayBuffer(n); }), a.setSize(o, u); }); }); f.push(h); }, o = 0; o < 6; o++ ) r(o); }, b = 0; b <= m; b++ ) g(b); return Promise.all(f).then(function () { d.dispose(); for (var i = { version: 1, width: h, irradiance: n._CreateEnvTextureIrradiance(t), specular: { mipmaps: [], lodGenerationScale: t.lodGenerationScale } }, r = 0, o = 0; o <= m; o++) for (var a = 0; a < 6; a++) { var s = p[6 * o + a].byteLength; i.specular.mipmaps.push({ length: s, position: r }), (r += s); } for (var c = JSON.stringify(i), l = new ArrayBuffer(c.length + 1), u = new Uint8Array(l), f = ((o = 0), c.length); o < f; o++) u[o] = c.charCodeAt(o); u[c.length] = 0; var g = e._MagicBytes.length + r + l.byteLength, b = new ArrayBuffer(g), _ = new Uint8Array(b), v = new DataView(b), y = 0; for (o = 0; o < e._MagicBytes.length; o++) v.setUint8(y++, e._MagicBytes[o]); _.set(new Uint8Array(l), y), (y += l.byteLength); for (o = 0; o <= m; o++) for (a = 0; a < 6; a++) { var C = p[6 * o + a]; _.set(new Uint8Array(C), y), (y += C.byteLength); } return b; }); }), (e._CreateEnvTextureIrradiance = function (e) { var t = e.sphericalPolynomial; return null == t ? null : { x: [t.x.x, t.x.y, t.x.z], y: [t.y.x, t.y.y, t.y.z], z: [t.z.x, t.z.y, t.z.z], xx: [t.xx.x, t.xx.y, t.xx.z], yy: [t.yy.x, t.yy.y, t.yy.z], zz: [t.zz.x, t.zz.y, t.zz.z], yz: [t.yz.x, t.yz.y, t.yz.z], zx: [t.zx.x, t.zx.y, t.zx.z], xy: [t.xy.x, t.xy.y, t.xy.z], }; }), (e.CreateImageDataArrayBufferViews = function (e, t) { if (1 !== t.version) throw new Error('Unsupported babylon environment map version "' + t.version + '"'); var n = t.specular, i = o.a.Log2(t.width); if (((i = Math.round(i) + 1), n.mipmaps.length !== 6 * i)) throw new Error('Unsupported specular mipmaps number "' + n.mipmaps.length + '"'); for (var r = new Array(i), a = 0; a < i; a++) { r[a] = new Array(6); for (var s = 0; s < 6; s++) { var c = n.mipmaps[6 * a + s]; r[a][s] = new Uint8Array(e.buffer, e.byteOffset + n.specularDataPosition + c.position, c.length); } } return r; }), (e.UploadEnvLevelsAsync = function (t, n, i) { if (1 !== i.version) throw new Error('Unsupported babylon environment map version "' + i.version + '"'); var r = i.specular; if (!r) return Promise.resolve(); t._lodGenerationScale = r.lodGenerationScale; var o = e.CreateImageDataArrayBufferViews(n, i); return e.UploadLevelsAsync(t, o); }), (e._OnImageReadyAsync = function (e, t, n, i, r, o, a, s, c, l, u) { return new Promise(function (h, d) { if (n) { var p = t.createTexture( null, !0, !0, null, 1, null, function (e) { d(e); }, e ); i.getEffect().executeWhenCompiled(function () { (i.onApply = function (e) { e._bindTexture("textureSampler", p), e.setFloat2("scale", 1, 1); }), t.scenes[0].postProcessManager.directRender([i], l, !0, o, a), t.restoreDefaultFramebuffer(), p.dispose(), URL.revokeObjectURL(r), h(); }); } else { if ((t._uploadImageToTexture(u, e, o, a), s)) { var f = c[a]; f && t._uploadImageToTexture(f._texture, e, o, 0); } h(); } }); }), (e.UploadLevelsAsync = function (e, t) { var n = this; if (!i.b.IsExponentOfTwo(e.width)) throw new Error("Texture size must be a power of two"); var r = Math.round(o.a.Log2(e.width)) + 1, a = e.getEngine(), l = !1, h = !1, d = null, p = null, f = null, m = a.getCaps(); if ( ((e.format = 5), (e.type = 0), (e.generateMipMaps = !0), (e._cachedAnisotropicFilteringLevel = null), a.updateTextureSamplingMode(3, e), m.textureLOD ? a.webGLVersion < 2 ? (l = !1) : m.textureHalfFloatRender && m.textureHalfFloatLinearFiltering ? ((l = !0), (e.type = 2)) : m.textureFloatRender && m.textureFloatLinearFiltering && ((l = !0), (e.type = 1)) : ((l = !1), (h = !0), (f = {})), l) ) (d = new u.a("rgbdDecode", "rgbdDecode", null, null, 1, null, 3, a, !1, void 0, e.type, void 0, null, !1)), (e._isRGBD = !1), (e.invertY = !1), (p = a.createRenderTargetCubeTexture(e.width, { generateDepthBuffer: !1, generateMipMaps: !0, generateStencilBuffer: !1, samplingMode: 3, type: e.type, format: 5 })); else if (((e._isRGBD = !0), (e.invertY = !0), h)) for (var g = e._lodGenerationScale, b = e._lodGenerationOffset, _ = 0; _ < 3; _++) { var v = (r - 1) * g + b, y = b + (v - b) * (1 - _ / 2), C = Math.round(Math.min(Math.max(y, 0), v)), P = new s.a(a, s.b.Temp); (P.isCube = !0), (P.invertY = !0), (P.generateMipMaps = !1), a.updateTextureSamplingMode(2, P); var x = new c.a(null); switch (((x.isCube = !0), (x._texture = P), (f[C] = x), _)) { case 0: e._lodTextureLow = x; break; case 1: e._lodTextureMid = x; break; case 2: e._lodTextureHigh = x; } } var T = [], S = function (i) { for ( var r = function (r) { var o = t[i][r], s = new Blob([o], { type: "image/png" }), c = URL.createObjectURL(s), u = void 0; if ("undefined" == typeof Image) u = createImageBitmap(s).then(function (t) { return n._OnImageReadyAsync(t, a, l, d, c, r, i, h, f, p, e); }); else { var m = new Image(); (m.src = c), (u = new Promise(function (t, o) { (m.onload = function () { n._OnImageReadyAsync(m, a, l, d, c, r, i, h, f, p, e) .then(function () { return t(); }) .catch(function (e) { o(e); }); }), (m.onerror = function (e) { o(e); }); })); } T.push(u); }, o = 0; o < 6; o++ ) r(o); }; for (_ = 0; _ < t.length; _++) S(_); if (t.length < r) { var O = void 0, E = Math.pow(2, r - 1 - t.length), M = E * E * 4; switch (e.type) { case 0: O = new Uint8Array(M); break; case 2: O = new Uint16Array(M); break; case 1: O = new Float32Array(M); } for (_ = t.length; _ < r; _++) for (var A = 0; A < 6; A++) a._uploadArrayBufferViewToTexture(e, O, A, _); } return Promise.all(T).then(function () { p && (a._releaseFramebufferObjects(p), a._releaseTexture(e), p._swapAndDie(e)), d && d.dispose(), h && (e._lodTextureHigh && e._lodTextureHigh._texture && (e._lodTextureHigh._texture.isReady = !0), e._lodTextureMid && e._lodTextureMid._texture && (e._lodTextureMid._texture.isReady = !0), e._lodTextureLow && e._lodTextureLow._texture && (e._lodTextureLow._texture.isReady = !0)); }); }), (e.UploadEnvSpherical = function (e, t) { 1 !== t.version && h.a.Warn('Unsupported babylon environment map version "' + t.version + '"'); var n = t.irradiance; if (n) { var i = new a.b(); r.e.FromArrayToRef(n.x, 0, i.x), r.e.FromArrayToRef(n.y, 0, i.y), r.e.FromArrayToRef(n.z, 0, i.z), r.e.FromArrayToRef(n.xx, 0, i.xx), r.e.FromArrayToRef(n.yy, 0, i.yy), r.e.FromArrayToRef(n.zz, 0, i.zz), r.e.FromArrayToRef(n.yz, 0, i.yz), r.e.FromArrayToRef(n.zx, 0, i.zx), r.e.FromArrayToRef(n.xy, 0, i.xy), (e._sphericalPolynomial = i); } }), (e._UpdateRGBDAsync = function (t, n, i, r, o) { return ( (t._source = s.b.CubeRawRGBD), (t._bufferViewArrayArray = n), (t._lodGenerationScale = r), (t._lodGenerationOffset = o), (t._sphericalPolynomial = i), e.UploadLevelsAsync(t, n).then(function () { t.isReady = !0; }) ); }), (e._MagicBytes = [134, 22, 135, 150, 246, 214, 150, 54]), e ); })(); s.a._UpdateRGBDAsync = f._UpdateRGBDAsync; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return (e.FilesToLoad = {}), e; })(); }, function (e, t, n) { "use strict"; n.d(t, "c", function () { return c; }), n.d(t, "b", function () { return l; }), n.d(t, "a", function () { return u; }); var i = n(2), r = n(54), o = n(9), a = n(10), s = n(25), c = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return Object(i.d)(t, e), t; })(r.a), l = function () { (this.rootNodes = []), (this.skeletons = []), (this.animationGroups = []); }, u = (function (e) { function t(t) { var n = e.call(this) || this; return ( (n._wasAddedToScene = !1), (n.scene = t), (n.sounds = []), (n.effectLayers = []), (n.layers = []), (n.lensFlareSystems = []), (n.proceduralTextures = []), (n.reflectionProbes = []), t.onDisposeObservable.add(function () { n._wasAddedToScene || n.dispose(); }), n ); } return ( Object(i.d)(t, e), (t.prototype.instantiateModelsToScene = function (e, t) { var n = this; void 0 === t && (t = !1); var i = {}, r = {}, a = new l(), s = [], c = [], u = { doNotInstantiate: !0 }, h = function (t, n) { if (((i[t.uniqueId] = n.uniqueId), (r[n.uniqueId] = n), e && (n.name = e(t.name)), n instanceof o.a)) { var a = n; if (a.morphTargetManager) { var s = t.morphTargetManager; a.morphTargetManager = s.clone(); for (var c = 0; c < s.numTargets; c++) { var l = s.getTarget(c), u = a.morphTargetManager.getTarget(c); (i[l.uniqueId] = u.uniqueId), (r[u.uniqueId] = u); } } } }; return ( this.transformNodes.forEach(function (e) { if (!e.parent) { var t = e.instantiateHierarchy(null, u, function (e, t) { h(e, t); }); t && a.rootNodes.push(t); } }), this.meshes.forEach(function (o) { if (!o.parent) { var s = o.instantiateHierarchy(null, u, function (o, a) { if ((h(o, a), a.material)) { var s = a; if (s.material) if (t) { var l = o.material; if (-1 === c.indexOf(l)) { var u = l.clone(e ? e(l.name) : "Clone of " + l.name); if ((c.push(l), (i[l.uniqueId] = u.uniqueId), (r[u.uniqueId] = u), "MultiMaterial" === l.getClassName())) for (var d = 0, p = l.subMaterials; d < p.length; d++) { var f = p[d]; f && ((u = f.clone(e ? e(f.name) : "Clone of " + f.name)), c.push(f), (i[f.uniqueId] = u.uniqueId), (r[u.uniqueId] = u)); } } s.material = r[i[l.uniqueId]]; } else "MultiMaterial" === s.material.getClassName() ? -1 === n.scene.multiMaterials.indexOf(s.material) && n.scene.addMultiMaterial(s.material) : -1 === n.scene.materials.indexOf(s.material) && n.scene.addMaterial(s.material); } }); s && a.rootNodes.push(s); } }), this.skeletons.forEach(function (t) { var o = t.clone(e ? e(t.name) : "Clone of " + t.name); t.overrideMesh && (o.overrideMesh = r[i[t.overrideMesh.uniqueId]]); for (var c = 0, l = n.meshes; c < l.length; c++) { var u = l[c]; if (u.skeleton === t && !u.isAnInstance) { if (((r[i[u.uniqueId]].skeleton = o), -1 !== s.indexOf(o))) continue; s.push(o); for (var h = 0, d = o.bones; h < d.length; h++) { var p = d[h]; p._linkedTransformNode && (p._linkedTransformNode = r[i[p._linkedTransformNode.uniqueId]]); } } } a.skeletons.push(o); }), this.animationGroups.forEach(function (e) { var t = e.clone(e.name, function (e) { return r[i[e.uniqueId]] || e; }); a.animationGroups.push(t); }), a ); }), (t.prototype.addAllToScene = function () { var e = this; (this._wasAddedToScene = !0), this.cameras.forEach(function (t) { e.scene.addCamera(t); }), this.lights.forEach(function (t) { e.scene.addLight(t); }), this.meshes.forEach(function (t) { e.scene.addMesh(t); }), this.skeletons.forEach(function (t) { e.scene.addSkeleton(t); }), this.animations.forEach(function (t) { e.scene.addAnimation(t); }), this.animationGroups.forEach(function (t) { e.scene.addAnimationGroup(t); }), this.multiMaterials.forEach(function (t) { e.scene.addMultiMaterial(t); }), this.materials.forEach(function (t) { e.scene.addMaterial(t); }), this.morphTargetManagers.forEach(function (t) { e.scene.addMorphTargetManager(t); }), this.geometries.forEach(function (t) { e.scene.addGeometry(t); }), this.transformNodes.forEach(function (t) { e.scene.addTransformNode(t); }), this.actionManagers.forEach(function (t) { e.scene.addActionManager(t); }), this.textures.forEach(function (t) { e.scene.addTexture(t); }), this.reflectionProbes.forEach(function (t) { e.scene.addReflectionProbe(t); }), this.environmentTexture && (this.scene.environmentTexture = this.environmentTexture); for (var t = 0, n = this.scene._serializableComponents; t < n.length; t++) { n[t].addFromContainer(this); } }), (t.prototype.removeAllFromScene = function () { var e = this; (this._wasAddedToScene = !1), this.cameras.forEach(function (t) { e.scene.removeCamera(t); }), this.lights.forEach(function (t) { e.scene.removeLight(t); }), this.meshes.forEach(function (t) { e.scene.removeMesh(t); }), this.skeletons.forEach(function (t) { e.scene.removeSkeleton(t); }), this.animations.forEach(function (t) { e.scene.removeAnimation(t); }), this.animationGroups.forEach(function (t) { e.scene.removeAnimationGroup(t); }), this.multiMaterials.forEach(function (t) { e.scene.removeMultiMaterial(t); }), this.materials.forEach(function (t) { e.scene.removeMaterial(t); }), this.morphTargetManagers.forEach(function (t) { e.scene.removeMorphTargetManager(t); }), this.geometries.forEach(function (t) { e.scene.removeGeometry(t); }), this.transformNodes.forEach(function (t) { e.scene.removeTransformNode(t); }), this.actionManagers.forEach(function (t) { e.scene.removeActionManager(t); }), this.textures.forEach(function (t) { e.scene.removeTexture(t); }), this.reflectionProbes.forEach(function (t) { e.scene.removeReflectionProbe(t); }), this.environmentTexture === this.scene.environmentTexture && (this.scene.environmentTexture = null); for (var t = 0, n = this.scene._serializableComponents; t < n.length; t++) { n[t].removeFromContainer(this); } }), (t.prototype.dispose = function () { this.cameras.forEach(function (e) { e.dispose(); }), (this.cameras = []), this.lights.forEach(function (e) { e.dispose(); }), (this.lights = []), this.meshes.forEach(function (e) { e.dispose(); }), (this.meshes = []), this.skeletons.forEach(function (e) { e.dispose(); }), (this.skeletons = []), this.animationGroups.forEach(function (e) { e.dispose(); }), (this.animationGroups = []), this.multiMaterials.forEach(function (e) { e.dispose(); }), (this.multiMaterials = []), this.materials.forEach(function (e) { e.dispose(); }), (this.materials = []), this.geometries.forEach(function (e) { e.dispose(); }), (this.geometries = []), this.transformNodes.forEach(function (e) { e.dispose(); }), (this.transformNodes = []), this.actionManagers.forEach(function (e) { e.dispose(); }), (this.actionManagers = []), this.textures.forEach(function (e) { e.dispose(); }), (this.textures = []), this.reflectionProbes.forEach(function (e) { e.dispose(); }), (this.reflectionProbes = []), this.environmentTexture && (this.environmentTexture.dispose(), (this.environmentTexture = null)); for (var e = 0, t = this.scene._serializableComponents; e < t.length; e++) { t[e].removeFromContainer(this, !0); } }), (t.prototype._moveAssets = function (e, t, n) { if (e) for (var i = 0, r = e; i < r.length; i++) { var o = r[i], a = !0; if (n) for (var s = 0, c = n; s < c.length; s++) { if (o === c[s]) { a = !1; break; } } a && t.push(o); } }), (t.prototype.moveAllFromScene = function (e) { for (var t in ((this._wasAddedToScene = !1), void 0 === e && (e = new c()), this)) this.hasOwnProperty(t) && ((this[t] = this[t] || ("environmentTexture" === t ? null : [])), this._moveAssets(this.scene[t], this[t], e[t])); this.removeAllFromScene(); }), (t.prototype.createRootMesh = function () { var e = new o.a("assetContainerRootMesh", this.scene); return ( this.meshes.forEach(function (t) { t.parent || e.addChild(t); }), this.meshes.unshift(e), e ); }), (t.prototype.mergeAnimationsTo = function (e, t, n) { if ((void 0 === e && (e = s.a.LastCreatedScene), void 0 === n && (n = null), e)) { var i = n || function (t) { return e.getBoneByName(t.name) || e.getNodeByName(t.name); }; this.getNodes().forEach(function (e) { var t = i(e); if (null !== t) { for ( var n = function (e) { for ( var n = 0, i = t.animations.filter(function (t) { return t.targetProperty === e.targetProperty; }); n < i.length; n++ ) { var r = i[n], o = t.animations.indexOf(r, 0); o > -1 && t.animations.splice(o, 1); } }, r = 0, o = e.animations; r < o.length; r++ ) { n(o[r]); } t.animations = t.animations.concat(e.animations); } }), this.animationGroups.slice().forEach(function (e) { e.clone(e.name, i), e.animatables.forEach(function (e) { e.stop(); }); }), t.forEach(function (t) { var n = i(t.target); n && (e.beginAnimation(n, t.fromFrame, t.toFrame, t.loopAnimation, t.speedRatio, t.onAnimationEnd ? t.onAnimationEnd : void 0, void 0, !0, void 0, t.onAnimationLoop ? t.onAnimationLoop : void 0), e.stopAnimation(t.target)); }); } else a.a.Error("No scene available to merge animations to"); }), t ); })(r.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(42), o = n(194), a = n(195), s = n(196), c = (function (e) { function t(t) { var n = e.call(this, t) || this; return (n._mouseInput = null), n; } return ( Object(i.d)(t, e), (t.prototype.addKeyboard = function () { return this.add(new o.a()), this; }), (t.prototype.addMouse = function (e) { return void 0 === e && (e = !0), this._mouseInput || ((this._mouseInput = new a.a(e)), this.add(this._mouseInput)), this; }), (t.prototype.removeMouse = function () { return this._mouseInput && this.remove(this._mouseInput), this; }), (t.prototype.addTouch = function () { return this.add(new s.a()), this; }), (t.prototype.clear = function () { e.prototype.clear.call(this), (this._mouseInput = null); }), t ); })(r.b); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(3), o = n(1), a = n(57), s = n(23), c = (function (e) { function t() { var t = (null !== e && e.apply(this, arguments)) || this; return (t._needProjectionMatrixCompute = !0), t; } return ( Object(i.d)(t, e), (t.prototype._setPosition = function (e) { this._position = e; }), Object.defineProperty(t.prototype, "position", { get: function () { return this._position; }, set: function (e) { this._setPosition(e); }, enumerable: !0, configurable: !0, }), (t.prototype._setDirection = function (e) { this._direction = e; }), Object.defineProperty(t.prototype, "direction", { get: function () { return this._direction; }, set: function (e) { this._setDirection(e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadowMinZ", { get: function () { return this._shadowMinZ; }, set: function (e) { (this._shadowMinZ = e), this.forceProjectionMatrixCompute(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadowMaxZ", { get: function () { return this._shadowMaxZ; }, set: function (e) { (this._shadowMaxZ = e), this.forceProjectionMatrixCompute(); }, enumerable: !0, configurable: !0, }), (t.prototype.computeTransformedInformation = function () { return ( !(!this.parent || !this.parent.getWorldMatrix) && (this.transformedPosition || (this.transformedPosition = o.e.Zero()), o.e.TransformCoordinatesToRef(this.position, this.parent.getWorldMatrix(), this.transformedPosition), this.direction && (this.transformedDirection || (this.transformedDirection = o.e.Zero()), o.e.TransformNormalToRef(this.direction, this.parent.getWorldMatrix(), this.transformedDirection)), !0) ); }), (t.prototype.getDepthScale = function () { return 50; }), (t.prototype.getShadowDirection = function (e) { return this.transformedDirection ? this.transformedDirection : this.direction; }), (t.prototype.getAbsolutePosition = function () { return this.transformedPosition ? this.transformedPosition : this.position; }), (t.prototype.setDirectionToTarget = function (e) { return (this.direction = o.e.Normalize(e.subtract(this.position))), this.direction; }), (t.prototype.getRotation = function () { this.direction.normalize(); var e = o.e.Cross(this.direction, s.a.Y), t = o.e.Cross(e, this.direction); return o.e.RotationFromAxis(e, t, this.direction); }), (t.prototype.needCube = function () { return !1; }), (t.prototype.needProjectionMatrixCompute = function () { return this._needProjectionMatrixCompute; }), (t.prototype.forceProjectionMatrixCompute = function () { this._needProjectionMatrixCompute = !0; }), (t.prototype._initCache = function () { e.prototype._initCache.call(this), (this._cache.position = o.e.Zero()); }), (t.prototype._isSynchronized = function () { return !!this._cache.position.equals(this.position); }), (t.prototype.computeWorldMatrix = function (e) { return !e && this.isSynchronized() ? ((this._currentRenderId = this.getScene().getRenderId()), this._worldMatrix) : (this._updateCache(), this._cache.position.copyFrom(this.position), this._worldMatrix || (this._worldMatrix = o.a.Identity()), o.a.TranslationToRef(this.position.x, this.position.y, this.position.z, this._worldMatrix), this.parent && this.parent.getWorldMatrix && (this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(), this._worldMatrix), this._markSyncedWithParent()), (this._worldMatrixDeterminantIsDirty = !0), this._worldMatrix); }), (t.prototype.getDepthMinZ = function (e) { return void 0 !== this.shadowMinZ ? this.shadowMinZ : e.minZ; }), (t.prototype.getDepthMaxZ = function (e) { return void 0 !== this.shadowMaxZ ? this.shadowMaxZ : e.maxZ; }), (t.prototype.setShadowProjectionMatrix = function (e, t, n) { return this.customProjectionMatrixBuilder ? this.customProjectionMatrixBuilder(t, n, e) : this._setDefaultShadowProjectionMatrix(e, t, n), this; }), Object(i.c)([Object(r.o)()], t.prototype, "position", null), Object(i.c)([Object(r.o)()], t.prototype, "direction", null), Object(i.c)([Object(r.c)()], t.prototype, "shadowMinZ", null), Object(i.c)([Object(r.c)()], t.prototype, "shadowMaxZ", null), t ); })(a.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return u; }); var i = n(2), r = n(3), o = n(1), a = n(35), s = n(57), c = n(121), l = n(8); a.a.AddNodeConstructor("Light_Type_2", function (e, t) { return function () { return new u(e, o.e.Zero(), o.e.Zero(), 0, 0, t); }; }); var u = (function (e) { function t(t, n, i, r, a, s) { var c = e.call(this, t, s) || this; return ( (c._innerAngle = 0), (c._projectionTextureMatrix = o.a.Zero()), (c._projectionTextureLightNear = 1e-6), (c._projectionTextureLightFar = 1e3), (c._projectionTextureUpDirection = o.e.Up()), (c._projectionTextureViewLightDirty = !0), (c._projectionTextureProjectionLightDirty = !0), (c._projectionTextureDirty = !0), (c._projectionTextureViewTargetVector = o.e.Zero()), (c._projectionTextureViewLightMatrix = o.a.Zero()), (c._projectionTextureProjectionLightMatrix = o.a.Zero()), (c._projectionTextureScalingMatrix = o.a.FromValues(0.5, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 1)), (c.position = n), (c.direction = i), (c.angle = r), (c.exponent = a), c ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "angle", { get: function () { return this._angle; }, set: function (e) { (this._angle = e), (this._cosHalfAngle = Math.cos(0.5 * e)), (this._projectionTextureProjectionLightDirty = !0), this.forceProjectionMatrixCompute(), this._computeAngleValues(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "innerAngle", { get: function () { return this._innerAngle; }, set: function (e) { (this._innerAngle = e), this._computeAngleValues(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "shadowAngleScale", { get: function () { return this._shadowAngleScale; }, set: function (e) { (this._shadowAngleScale = e), this.forceProjectionMatrixCompute(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "projectionTextureMatrix", { get: function () { return this._projectionTextureMatrix; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "projectionTextureLightNear", { get: function () { return this._projectionTextureLightNear; }, set: function (e) { (this._projectionTextureLightNear = e), (this._projectionTextureProjectionLightDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "projectionTextureLightFar", { get: function () { return this._projectionTextureLightFar; }, set: function (e) { (this._projectionTextureLightFar = e), (this._projectionTextureProjectionLightDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "projectionTextureUpDirection", { get: function () { return this._projectionTextureUpDirection; }, set: function (e) { (this._projectionTextureUpDirection = e), (this._projectionTextureProjectionLightDirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "projectionTexture", { get: function () { return this._projectionTexture; }, set: function (e) { var t = this; if (this._projectionTexture !== e && ((this._projectionTexture = e), (this._projectionTextureDirty = !0), this._projectionTexture && !this._projectionTexture.isReady())) { var n = this._projectionTexture; n.onLoadObservable && n.onLoadObservable.addOnce(function () { t._markMeshesAsLightDirty(); }); } }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "SpotLight"; }), (t.prototype.getTypeID = function () { return s.a.LIGHTTYPEID_SPOTLIGHT; }), (t.prototype._setDirection = function (t) { e.prototype._setDirection.call(this, t), (this._projectionTextureViewLightDirty = !0); }), (t.prototype._setPosition = function (t) { e.prototype._setPosition.call(this, t), (this._projectionTextureViewLightDirty = !0); }), (t.prototype._setDefaultShadowProjectionMatrix = function (e, t, n) { var i = this.getScene().activeCamera; if (i) { this._shadowAngleScale = this._shadowAngleScale || 1; var r = this._shadowAngleScale * this._angle; o.a.PerspectiveFovLHToRef(r, 1, this.getDepthMinZ(i), this.getDepthMaxZ(i), e); } }), (t.prototype._computeProjectionTextureViewLightMatrix = function () { (this._projectionTextureViewLightDirty = !1), (this._projectionTextureDirty = !0), this.position.addToRef(this.direction, this._projectionTextureViewTargetVector), o.a.LookAtLHToRef(this.position, this._projectionTextureViewTargetVector, this._projectionTextureUpDirection, this._projectionTextureViewLightMatrix); }), (t.prototype._computeProjectionTextureProjectionLightMatrix = function () { (this._projectionTextureProjectionLightDirty = !1), (this._projectionTextureDirty = !0); var e = this.projectionTextureLightFar, t = this.projectionTextureLightNear, n = e / (e - t), i = -n * t, r = 1 / Math.tan(this._angle / 2); o.a.FromValuesToRef(r / 1, 0, 0, 0, 0, r, 0, 0, 0, 0, n, 1, 0, 0, i, 0, this._projectionTextureProjectionLightMatrix); }), (t.prototype._computeProjectionTextureMatrix = function () { if (((this._projectionTextureDirty = !1), this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix, this._projectionTextureMatrix), this._projectionTexture instanceof l.a)) { var e = this._projectionTexture.uScale / 2, t = this._projectionTexture.vScale / 2; o.a.FromValuesToRef(e, 0, 0, 0, 0, t, 0, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 1, this._projectionTextureScalingMatrix); } this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix, this._projectionTextureMatrix); }), (t.prototype._buildUniformLayout = function () { this._uniformBuffer.addUniform("vLightData", 4), this._uniformBuffer.addUniform("vLightDiffuse", 4), this._uniformBuffer.addUniform("vLightSpecular", 4), this._uniformBuffer.addUniform("vLightDirection", 3), this._uniformBuffer.addUniform("vLightFalloff", 4), this._uniformBuffer.addUniform("shadowsInfo", 3), this._uniformBuffer.addUniform("depthValues", 2), this._uniformBuffer.create(); }), (t.prototype._computeAngleValues = function () { (this._lightAngleScale = 1 / Math.max(0.001, Math.cos(0.5 * this._innerAngle) - this._cosHalfAngle)), (this._lightAngleOffset = -this._cosHalfAngle * this._lightAngleScale); }), (t.prototype.transferTexturesToEffect = function (e, t) { return ( this.projectionTexture && this.projectionTexture.isReady() && (this._projectionTextureViewLightDirty && this._computeProjectionTextureViewLightMatrix(), this._projectionTextureProjectionLightDirty && this._computeProjectionTextureProjectionLightMatrix(), this._projectionTextureDirty && this._computeProjectionTextureMatrix(), e.setMatrix("textureProjectionMatrix" + t, this._projectionTextureMatrix), e.setTexture("projectionLightSampler" + t, this.projectionTexture)), this ); }), (t.prototype.transferToEffect = function (e, t) { var n; return ( this.computeTransformedInformation() ? (this._uniformBuffer.updateFloat4("vLightData", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, this.exponent, t), (n = o.e.Normalize(this.transformedDirection))) : (this._uniformBuffer.updateFloat4("vLightData", this.position.x, this.position.y, this.position.z, this.exponent, t), (n = o.e.Normalize(this.direction))), this.getScene().useRightHandedSystem ? this._uniformBuffer.updateFloat4("vLightDirection", -n.x, -n.y, -n.z, this._cosHalfAngle, t) : this._uniformBuffer.updateFloat4("vLightDirection", n.x, n.y, n.z, this._cosHalfAngle, t), this._uniformBuffer.updateFloat4("vLightFalloff", this.range, this._inverseSquaredRange, this._lightAngleScale, this._lightAngleOffset, t), this ); }), (t.prototype.transferToNodeMaterialEffect = function (e, t) { var n; return ( (n = this.computeTransformedInformation() ? o.e.Normalize(this.transformedDirection) : o.e.Normalize(this.direction)), this.getScene().useRightHandedSystem ? e.setFloat3(t, -n.x, -n.y, -n.z) : e.setFloat3(t, n.x, n.y, n.z), this ); }), (t.prototype.dispose = function () { e.prototype.dispose.call(this), this._projectionTexture && this._projectionTexture.dispose(); }), (t.prototype.prepareLightSpecificDefines = function (e, t) { (e["SPOTLIGHT" + t] = !0), (e["PROJECTEDLIGHTTEXTURE" + t] = !(!this.projectionTexture || !this.projectionTexture.isReady())); }), Object(i.c)([Object(r.c)()], t.prototype, "angle", null), Object(i.c)([Object(r.c)()], t.prototype, "innerAngle", null), Object(i.c)([Object(r.c)()], t.prototype, "shadowAngleScale", null), Object(i.c)([Object(r.c)()], t.prototype, "exponent", void 0), Object(i.c)([Object(r.c)()], t.prototype, "projectionTextureLightNear", null), Object(i.c)([Object(r.c)()], t.prototype, "projectionTextureLightFar", null), Object(i.c)([Object(r.c)()], t.prototype, "projectionTextureUpDirection", null), Object(i.c)([Object(r.m)("projectedLightTexture")], t.prototype, "_projectionTexture", void 0), t ); })(c.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(3), o = n(1), a = n(35), s = n(57), c = n(121); a.a.AddNodeConstructor("Light_Type_0", function (e, t) { return function () { return new l(e, o.e.Zero(), t); }; }); var l = (function (e) { function t(t, n, i) { var r = e.call(this, t, i) || this; return (r._shadowAngle = Math.PI / 2), (r.position = n), r; } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "shadowAngle", { get: function () { return this._shadowAngle; }, set: function (e) { (this._shadowAngle = e), this.forceProjectionMatrixCompute(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "direction", { get: function () { return this._direction; }, set: function (e) { var t = this.needCube(); (this._direction = e), this.needCube() !== t && this._shadowGenerator && this._shadowGenerator.recreateShadowMap(); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "PointLight"; }), (t.prototype.getTypeID = function () { return s.a.LIGHTTYPEID_POINTLIGHT; }), (t.prototype.needCube = function () { return !this.direction; }), (t.prototype.getShadowDirection = function (t) { if (this.direction) return e.prototype.getShadowDirection.call(this, t); switch (t) { case 0: return new o.e(1, 0, 0); case 1: return new o.e(-1, 0, 0); case 2: return new o.e(0, -1, 0); case 3: return new o.e(0, 1, 0); case 4: return new o.e(0, 0, 1); case 5: return new o.e(0, 0, -1); } return o.e.Zero(); }), (t.prototype._setDefaultShadowProjectionMatrix = function (e, t, n) { var i = this.getScene().activeCamera; i && o.a.PerspectiveFovLHToRef(this.shadowAngle, 1, this.getDepthMinZ(i), this.getDepthMaxZ(i), e); }), (t.prototype._buildUniformLayout = function () { this._uniformBuffer.addUniform("vLightData", 4), this._uniformBuffer.addUniform("vLightDiffuse", 4), this._uniformBuffer.addUniform("vLightSpecular", 4), this._uniformBuffer.addUniform("vLightFalloff", 4), this._uniformBuffer.addUniform("shadowsInfo", 3), this._uniformBuffer.addUniform("depthValues", 2), this._uniformBuffer.create(); }), (t.prototype.transferToEffect = function (e, t) { return ( this.computeTransformedInformation() ? this._uniformBuffer.updateFloat4("vLightData", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, 0, t) : this._uniformBuffer.updateFloat4("vLightData", this.position.x, this.position.y, this.position.z, 0, t), this._uniformBuffer.updateFloat4("vLightFalloff", this.range, this._inverseSquaredRange, 0, 0, t), this ); }), (t.prototype.transferToNodeMaterialEffect = function (e, t) { return this.computeTransformedInformation() ? e.setFloat3(t, this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z) : e.setFloat3(t, this.position.x, this.position.y, this.position.z), this; }), (t.prototype.prepareLightSpecificDefines = function (e, t) { e["POINTLIGHT" + t] = !0; }), Object(i.c)([Object(r.c)()], t.prototype, "shadowAngle", null), t ); })(c.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return a; }); var i = n(10), r = n(38), o = n(126); (r.a.prototype.createUniformBuffer = function (e) { var t = this._gl.createBuffer(); if (!t) throw new Error("Unable to create uniform buffer"); var n = new o.a(t); return ( this.bindUniformBuffer(n), e instanceof Float32Array ? this._gl.bufferData(this._gl.UNIFORM_BUFFER, e, this._gl.STATIC_DRAW) : this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(e), this._gl.STATIC_DRAW), this.bindUniformBuffer(null), (n.references = 1), n ); }), (r.a.prototype.createDynamicUniformBuffer = function (e) { var t = this._gl.createBuffer(); if (!t) throw new Error("Unable to create dynamic uniform buffer"); var n = new o.a(t); return ( this.bindUniformBuffer(n), e instanceof Float32Array ? this._gl.bufferData(this._gl.UNIFORM_BUFFER, e, this._gl.DYNAMIC_DRAW) : this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(e), this._gl.DYNAMIC_DRAW), this.bindUniformBuffer(null), (n.references = 1), n ); }), (r.a.prototype.updateUniformBuffer = function (e, t, n, i) { this.bindUniformBuffer(e), void 0 === n && (n = 0), void 0 === i ? t instanceof Float32Array ? this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, n, t) : this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, n, new Float32Array(t)) : t instanceof Float32Array ? this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, t.subarray(n, n + i)) : this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, new Float32Array(t).subarray(n, n + i)), this.bindUniformBuffer(null); }), (r.a.prototype.bindUniformBuffer = function (e) { this._gl.bindBuffer(this._gl.UNIFORM_BUFFER, e ? e.underlyingResource : null); }), (r.a.prototype.bindUniformBufferBase = function (e, t) { this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER, t, e ? e.underlyingResource : null); }), (r.a.prototype.bindUniformBlock = function (e, t, n) { var i = e.program, r = this._gl.getUniformBlockIndex(i, t); this._gl.uniformBlockBinding(i, r, n); }); var a = (function () { function e(e, t, n) { (this._alreadyBound = !1), (this._valueCache = {}), (this._engine = e), (this._noUBO = !e.supportsUniformBuffers), (this._dynamic = n), (this._data = t || []), (this._uniformLocations = {}), (this._uniformSizes = {}), (this._uniformLocationPointer = 0), (this._needSync = !1), this._noUBO ? ((this.updateMatrix3x3 = this._updateMatrix3x3ForEffect), (this.updateMatrix2x2 = this._updateMatrix2x2ForEffect), (this.updateFloat = this._updateFloatForEffect), (this.updateFloat2 = this._updateFloat2ForEffect), (this.updateFloat3 = this._updateFloat3ForEffect), (this.updateFloat4 = this._updateFloat4ForEffect), (this.updateMatrix = this._updateMatrixForEffect), (this.updateVector3 = this._updateVector3ForEffect), (this.updateVector4 = this._updateVector4ForEffect), (this.updateColor3 = this._updateColor3ForEffect), (this.updateColor4 = this._updateColor4ForEffect)) : (this._engine._uniformBuffers.push(this), (this.updateMatrix3x3 = this._updateMatrix3x3ForUniform), (this.updateMatrix2x2 = this._updateMatrix2x2ForUniform), (this.updateFloat = this._updateFloatForUniform), (this.updateFloat2 = this._updateFloat2ForUniform), (this.updateFloat3 = this._updateFloat3ForUniform), (this.updateFloat4 = this._updateFloat4ForUniform), (this.updateMatrix = this._updateMatrixForUniform), (this.updateVector3 = this._updateVector3ForUniform), (this.updateVector4 = this._updateVector4ForUniform), (this.updateColor3 = this._updateColor3ForUniform), (this.updateColor4 = this._updateColor4ForUniform)); } return ( Object.defineProperty(e.prototype, "useUbo", { get: function () { return !this._noUBO; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isSync", { get: function () { return !this._needSync; }, enumerable: !0, configurable: !0, }), (e.prototype.isDynamic = function () { return void 0 !== this._dynamic; }), (e.prototype.getData = function () { return this._bufferData; }), (e.prototype.getBuffer = function () { return this._buffer; }), (e.prototype._fillAlignment = function (e) { var t; if (((t = e <= 2 ? e : 4), this._uniformLocationPointer % t != 0)) { var n = this._uniformLocationPointer; this._uniformLocationPointer += t - (this._uniformLocationPointer % t); for (var i = this._uniformLocationPointer - n, r = 0; r < i; r++) this._data.push(0); } }), (e.prototype.addUniform = function (e, t) { if (!this._noUBO && void 0 === this._uniformLocations[e]) { var n; if (t instanceof Array) t = (n = t).length; else { (t = t), (n = []); for (var i = 0; i < t; i++) n.push(0); } this._fillAlignment(t), (this._uniformSizes[e] = t), (this._uniformLocations[e] = this._uniformLocationPointer), (this._uniformLocationPointer += t); for (i = 0; i < t; i++) this._data.push(n[i]); this._needSync = !0; } }), (e.prototype.addMatrix = function (e, t) { this.addUniform(e, Array.prototype.slice.call(t.toArray())); }), (e.prototype.addFloat2 = function (e, t, n) { var i = [t, n]; this.addUniform(e, i); }), (e.prototype.addFloat3 = function (e, t, n, i) { var r = [t, n, i]; this.addUniform(e, r); }), (e.prototype.addColor3 = function (e, t) { var n = new Array(); t.toArray(n), this.addUniform(e, n); }), (e.prototype.addColor4 = function (e, t, n) { var i = new Array(); t.toArray(i), i.push(n), this.addUniform(e, i); }), (e.prototype.addVector3 = function (e, t) { var n = new Array(); t.toArray(n), this.addUniform(e, n); }), (e.prototype.addMatrix3x3 = function (e) { this.addUniform(e, 12); }), (e.prototype.addMatrix2x2 = function (e) { this.addUniform(e, 8); }), (e.prototype.create = function () { this._noUBO || this._buffer || (this._fillAlignment(4), (this._bufferData = new Float32Array(this._data)), this._rebuild(), (this._needSync = !0)); }), (e.prototype._rebuild = function () { !this._noUBO && this._bufferData && (this._dynamic ? (this._buffer = this._engine.createDynamicUniformBuffer(this._bufferData)) : (this._buffer = this._engine.createUniformBuffer(this._bufferData))); }), (e.prototype.update = function () { this._buffer ? (this._dynamic || this._needSync) && (this._engine.updateUniformBuffer(this._buffer, this._bufferData), (this._needSync = !1)) : this.create(); }), (e.prototype.updateUniform = function (e, t, n) { var r = this._uniformLocations[e]; if (void 0 === r) { if (this._buffer) return void i.a.Error("Cannot add an uniform after UBO has been created."); this.addUniform(e, n), (r = this._uniformLocations[e]); } if ((this._buffer || this.create(), this._dynamic)) for (a = 0; a < n; a++) this._bufferData[r + a] = t[a]; else { for (var o = !1, a = 0; a < n; a++) (16 !== n && this._bufferData[r + a] === t[a]) || ((o = !0), (this._bufferData[r + a] = t[a])); this._needSync = this._needSync || o; } }), (e.prototype._cacheMatrix = function (e, t) { var n = this._valueCache[e], i = t.updateFlag; return (void 0 === n || n !== i) && ((this._valueCache[e] = i), !0); }), (e.prototype._updateMatrix3x3ForUniform = function (t, n) { for (var i = 0; i < 3; i++) (e._tempBuffer[4 * i] = n[3 * i]), (e._tempBuffer[4 * i + 1] = n[3 * i + 1]), (e._tempBuffer[4 * i + 2] = n[3 * i + 2]), (e._tempBuffer[4 * i + 3] = 0); this.updateUniform(t, e._tempBuffer, 12); }), (e.prototype._updateMatrix3x3ForEffect = function (e, t) { this._currentEffect.setMatrix3x3(e, t); }), (e.prototype._updateMatrix2x2ForEffect = function (e, t) { this._currentEffect.setMatrix2x2(e, t); }), (e.prototype._updateMatrix2x2ForUniform = function (t, n) { for (var i = 0; i < 2; i++) (e._tempBuffer[4 * i] = n[2 * i]), (e._tempBuffer[4 * i + 1] = n[2 * i + 1]), (e._tempBuffer[4 * i + 2] = 0), (e._tempBuffer[4 * i + 3] = 0); this.updateUniform(t, e._tempBuffer, 8); }), (e.prototype._updateFloatForEffect = function (e, t) { this._currentEffect.setFloat(e, t); }), (e.prototype._updateFloatForUniform = function (t, n) { (e._tempBuffer[0] = n), this.updateUniform(t, e._tempBuffer, 1); }), (e.prototype._updateFloat2ForEffect = function (e, t, n, i) { void 0 === i && (i = ""), this._currentEffect.setFloat2(e + i, t, n); }), (e.prototype._updateFloat2ForUniform = function (t, n, i) { (e._tempBuffer[0] = n), (e._tempBuffer[1] = i), this.updateUniform(t, e._tempBuffer, 2); }), (e.prototype._updateFloat3ForEffect = function (e, t, n, i, r) { void 0 === r && (r = ""), this._currentEffect.setFloat3(e + r, t, n, i); }), (e.prototype._updateFloat3ForUniform = function (t, n, i, r) { (e._tempBuffer[0] = n), (e._tempBuffer[1] = i), (e._tempBuffer[2] = r), this.updateUniform(t, e._tempBuffer, 3); }), (e.prototype._updateFloat4ForEffect = function (e, t, n, i, r, o) { void 0 === o && (o = ""), this._currentEffect.setFloat4(e + o, t, n, i, r); }), (e.prototype._updateFloat4ForUniform = function (t, n, i, r, o) { (e._tempBuffer[0] = n), (e._tempBuffer[1] = i), (e._tempBuffer[2] = r), (e._tempBuffer[3] = o), this.updateUniform(t, e._tempBuffer, 4); }), (e.prototype._updateMatrixForEffect = function (e, t) { this._currentEffect.setMatrix(e, t); }), (e.prototype._updateMatrixForUniform = function (e, t) { this._cacheMatrix(e, t) && this.updateUniform(e, t.toArray(), 16); }), (e.prototype._updateVector3ForEffect = function (e, t) { this._currentEffect.setVector3(e, t); }), (e.prototype._updateVector3ForUniform = function (t, n) { n.toArray(e._tempBuffer), this.updateUniform(t, e._tempBuffer, 3); }), (e.prototype._updateVector4ForEffect = function (e, t) { this._currentEffect.setVector4(e, t); }), (e.prototype._updateVector4ForUniform = function (t, n) { n.toArray(e._tempBuffer), this.updateUniform(t, e._tempBuffer, 4); }), (e.prototype._updateColor3ForEffect = function (e, t, n) { void 0 === n && (n = ""), this._currentEffect.setColor3(e + n, t); }), (e.prototype._updateColor3ForUniform = function (t, n) { n.toArray(e._tempBuffer), this.updateUniform(t, e._tempBuffer, 3); }), (e.prototype._updateColor4ForEffect = function (e, t, n, i) { void 0 === i && (i = ""), this._currentEffect.setColor4(e + i, t, n); }), (e.prototype._updateColor4ForUniform = function (t, n, i) { n.toArray(e._tempBuffer), (e._tempBuffer[3] = i), this.updateUniform(t, e._tempBuffer, 4); }), (e.prototype.setTexture = function (e, t) { this._currentEffect.setTexture(e, t); }), (e.prototype.updateUniformDirectly = function (e, t) { this.updateUniform(e, t, t.length), this.update(); }), (e.prototype.bindToEffect = function (e, t) { (this._currentEffect = e), !this._noUBO && this._buffer && ((this._alreadyBound = !0), e.bindUniformBuffer(this._buffer, t)); }), (e.prototype.dispose = function () { if (!this._noUBO) { var e = this._engine._uniformBuffers, t = e.indexOf(this); -1 !== t && ((e[t] = e[e.length - 1]), e.pop()), this._buffer && this._engine._releaseBuffer(this._buffer) && (this._buffer = null); } }), (e._MAX_UNIFORM_SIZE = 256), (e._tempBuffer = new Float32Array(e._MAX_UNIFORM_SIZE)), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return p; }); var i = n(2), r = n(3), o = n(6), a = n(4), s = n(21), c = n(28), l = n(8), u = n(44), h = n(200), d = (n(166), n(209), "\nattribute vec2 position;\n\nvarying vec2 vPosition;\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvPosition=position;\nvUV=position*madd+madd;\ngl_Position=vec4(position,0.0,1.0);\n}"); n(7).a.ShadersStore.proceduralVertexShader = d; var p = (function (e) { function t(t, n, i, r, c, l, u) { void 0 === c && (c = null), void 0 === l && (l = !0), void 0 === u && (u = !1); var d = e.call(this, null, r, !l) || this; (d.isCube = u), (d.isEnabled = !0), (d.autoClear = !0), (d.onGeneratedObservable = new o.c()), (d._textures = {}), (d._currentRefreshId = -1), (d._frameId = -1), (d._refreshRate = 1), (d._vertexBuffers = {}), (d._uniforms = new Array()), (d._samplers = new Array()), (d._floats = {}), (d._ints = {}), (d._floatsArrays = {}), (d._colors3 = {}), (d._colors4 = {}), (d._vectors2 = {}), (d._vectors3 = {}), (d._matrices = {}), (d._fallbackTextureUsed = !1), (d._cachedDefines = ""), (d._contentUpdateId = -1); var p = (r = d.getScene())._getComponent(s.a.NAME_PROCEDURALTEXTURE); p || ((p = new h.a(r)), r._addComponent(p)), r.proceduralTextures.push(d), (d._engine = r.getEngine()), (d.name = t), (d.isRenderTarget = !0), (d._size = n), (d._generateMipMaps = l), d.setFragment(i), (d._fallbackTexture = c), u ? ((d._texture = d._engine.createRenderTargetCubeTexture(n, { generateMipMaps: l, generateDepthBuffer: !1, generateStencilBuffer: !1 })), d.setFloat("face", 0)) : (d._texture = d._engine.createRenderTargetTexture(n, { generateMipMaps: l, generateDepthBuffer: !1, generateStencilBuffer: !1 })); var f = []; return f.push(1, 1), f.push(-1, 1), f.push(-1, -1), f.push(1, -1), (d._vertexBuffers[a.b.PositionKind] = new a.b(d._engine, f, a.b.PositionKind, !1, !1, 2)), d._createIndexBuffer(), d; } return ( Object(i.d)(t, e), (t.prototype.getEffect = function () { return this._effect; }), (t.prototype.getContent = function () { return (this._contentData && this._frameId === this._contentUpdateId) || ((this._contentData = this.readPixels(0, 0, this._contentData)), (this._contentUpdateId = this._frameId)), this._contentData; }), (t.prototype._createIndexBuffer = function () { var e = this._engine, t = []; t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), (this._indexBuffer = e.createIndexBuffer(t)); }), (t.prototype._rebuild = function () { var e = this._vertexBuffers[a.b.PositionKind]; e && e._rebuild(), this._createIndexBuffer(), this.refreshRate === u.a.REFRESHRATE_RENDER_ONCE && (this.refreshRate = u.a.REFRESHRATE_RENDER_ONCE); }), (t.prototype.reset = function () { void 0 !== this._effect && this._effect.dispose(); }), (t.prototype._getDefines = function () { return ""; }), (t.prototype.isReady = function () { var e, t = this, n = this._engine; if (!this._fragment) return !1; if (this._fallbackTextureUsed) return !0; var i = this._getDefines(); return ( !(!this._effect || i !== this._cachedDefines || !this._effect.isReady()) || ((e = void 0 !== this._fragment.fragmentElement ? { vertex: "procedural", fragmentElement: this._fragment.fragmentElement } : { vertex: "procedural", fragment: this._fragment }), (this._cachedDefines = i), (this._effect = n.createEffect(e, [a.b.PositionKind], this._uniforms, this._samplers, i, void 0, void 0, function () { t.releaseInternalTexture(), t._fallbackTexture && ((t._texture = t._fallbackTexture._texture), t._texture && t._texture.incrementReferences()), (t._fallbackTextureUsed = !0); })), this._effect.isReady()) ); }), (t.prototype.resetRefreshCounter = function () { this._currentRefreshId = -1; }), (t.prototype.setFragment = function (e) { this._fragment = e; }), Object.defineProperty(t.prototype, "refreshRate", { get: function () { return this._refreshRate; }, set: function (e) { (this._refreshRate = e), this.resetRefreshCounter(); }, enumerable: !0, configurable: !0, }), (t.prototype._shouldRender = function () { return this.isEnabled && this.isReady() && this._texture ? !this._fallbackTextureUsed && (-1 === this._currentRefreshId || this.refreshRate === this._currentRefreshId ? ((this._currentRefreshId = 1), this._frameId++, !0) : (this._currentRefreshId++, !1)) : (this._texture && (this._texture.isReady = !1), !1); }), (t.prototype.getRenderSize = function () { return this._size; }), (t.prototype.resize = function (e, t) { this._fallbackTextureUsed || (this.releaseInternalTexture(), (this._texture = this._engine.createRenderTargetTexture(e, t)), (this._size = e), (this._generateMipMaps = t)); }), (t.prototype._checkUniform = function (e) { -1 === this._uniforms.indexOf(e) && this._uniforms.push(e); }), (t.prototype.setTexture = function (e, t) { return -1 === this._samplers.indexOf(e) && this._samplers.push(e), (this._textures[e] = t), this; }), (t.prototype.setFloat = function (e, t) { return this._checkUniform(e), (this._floats[e] = t), this; }), (t.prototype.setInt = function (e, t) { return this._checkUniform(e), (this._ints[e] = t), this; }), (t.prototype.setFloats = function (e, t) { return this._checkUniform(e), (this._floatsArrays[e] = t), this; }), (t.prototype.setColor3 = function (e, t) { return this._checkUniform(e), (this._colors3[e] = t), this; }), (t.prototype.setColor4 = function (e, t) { return this._checkUniform(e), (this._colors4[e] = t), this; }), (t.prototype.setVector2 = function (e, t) { return this._checkUniform(e), (this._vectors2[e] = t), this; }), (t.prototype.setVector3 = function (e, t) { return this._checkUniform(e), (this._vectors3[e] = t), this; }), (t.prototype.setMatrix = function (e, t) { return this._checkUniform(e), (this._matrices[e] = t), this; }), (t.prototype.render = function (e) { var t = this.getScene(); if (t) { var n = this._engine; for (var i in (n.enableEffect(this._effect), n.setState(!1), this._textures)) this._effect.setTexture(i, this._textures[i]); for (i in this._ints) this._effect.setInt(i, this._ints[i]); for (i in this._floats) this._effect.setFloat(i, this._floats[i]); for (i in this._floatsArrays) this._effect.setArray(i, this._floatsArrays[i]); for (i in this._colors3) this._effect.setColor3(i, this._colors3[i]); for (i in this._colors4) { var r = this._colors4[i]; this._effect.setFloat4(i, r.r, r.g, r.b, r.a); } for (i in this._vectors2) this._effect.setVector2(i, this._vectors2[i]); for (i in this._vectors3) this._effect.setVector3(i, this._vectors3[i]); for (i in this._matrices) this._effect.setMatrix(i, this._matrices[i]); if (this._texture) { if (this.isCube) for (var o = 0; o < 6; o++) n.bindFramebuffer(this._texture, o, void 0, void 0, !0), n.bindBuffers(this._vertexBuffers, this._indexBuffer, this._effect), this._effect.setFloat("face", o), this.autoClear && n.clear(t.clearColor, !0, !1, !1), n.drawElementsType(c.a.TriangleFillMode, 0, 6), 5 === o && n.generateMipMapsForCubemap(this._texture); else n.bindFramebuffer(this._texture, 0, void 0, void 0, !0), n.bindBuffers(this._vertexBuffers, this._indexBuffer, this._effect), this.autoClear && n.clear(t.clearColor, !0, !1, !1), n.drawElementsType(c.a.TriangleFillMode, 0, 6); n.unBindFramebuffer(this._texture, this.isCube), this.onGenerated && this.onGenerated(), this.onGeneratedObservable.notifyObservers(this); } } }), (t.prototype.clone = function () { var e = this.getSize(), n = new t(this.name, e.width, this._fragment, this.getScene(), this._fallbackTexture, this._generateMipMaps); return (n.hasAlpha = this.hasAlpha), (n.level = this.level), (n.coordinatesMode = this.coordinatesMode), n; }), (t.prototype.dispose = function () { var t = this.getScene(); if (t) { var n = t.proceduralTextures.indexOf(this); n >= 0 && t.proceduralTextures.splice(n, 1); var i = this._vertexBuffers[a.b.PositionKind]; i && (i.dispose(), (this._vertexBuffers[a.b.PositionKind] = null)), this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer) && (this._indexBuffer = null), e.prototype.dispose.call(this); } }), Object(i.c)([Object(r.c)()], t.prototype, "isEnabled", void 0), Object(i.c)([Object(r.c)()], t.prototype, "autoClear", void 0), Object(i.c)([Object(r.c)()], t.prototype, "_generateMipMaps", void 0), Object(i.c)([Object(r.c)()], t.prototype, "_size", void 0), Object(i.c)([Object(r.c)()], t.prototype, "refreshRate", null), t ); })(l.a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(2), r = (function (e) { function t(t) { var n = e.call(this) || this; return (n._buffer = t), n; } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "underlyingResource", { get: function () { return this._buffer; }, enumerable: !0, configurable: !0, }), t ); })(n(127).a); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this.references = 0), (this.capacity = 0), (this.is32Bits = !1); } return ( Object.defineProperty(e.prototype, "underlyingResource", { get: function () { return null; }, enumerable: !0, configurable: !0, }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(85), r = (function () { function e() {} return ( (e.GetPlanes = function (t) { for (var n = [], r = 0; r < 6; r++) n.push(new i.a(0, 0, 0, 0)); return e.GetPlanesToRef(t, n), n; }), (e.GetNearPlaneToRef = function (e, t) { var n = e.m; (t.normal.x = n[3] + n[2]), (t.normal.y = n[7] + n[6]), (t.normal.z = n[11] + n[10]), (t.d = n[15] + n[14]), t.normalize(); }), (e.GetFarPlaneToRef = function (e, t) { var n = e.m; (t.normal.x = n[3] - n[2]), (t.normal.y = n[7] - n[6]), (t.normal.z = n[11] - n[10]), (t.d = n[15] - n[14]), t.normalize(); }), (e.GetLeftPlaneToRef = function (e, t) { var n = e.m; (t.normal.x = n[3] + n[0]), (t.normal.y = n[7] + n[4]), (t.normal.z = n[11] + n[8]), (t.d = n[15] + n[12]), t.normalize(); }), (e.GetRightPlaneToRef = function (e, t) { var n = e.m; (t.normal.x = n[3] - n[0]), (t.normal.y = n[7] - n[4]), (t.normal.z = n[11] - n[8]), (t.d = n[15] - n[12]), t.normalize(); }), (e.GetTopPlaneToRef = function (e, t) { var n = e.m; (t.normal.x = n[3] - n[1]), (t.normal.y = n[7] - n[5]), (t.normal.z = n[11] - n[9]), (t.d = n[15] - n[13]), t.normalize(); }), (e.GetBottomPlaneToRef = function (e, t) { var n = e.m; (t.normal.x = n[3] + n[1]), (t.normal.y = n[7] + n[5]), (t.normal.z = n[11] + n[9]), (t.d = n[15] + n[13]), t.normalize(); }), (e.GetPlanesToRef = function (t, n) { e.GetNearPlaneToRef(t, n[0]), e.GetFarPlaneToRef(t, n[1]), e.GetLeftPlaneToRef(t, n[2]), e.GetRightPlaneToRef(t, n[3]), e.GetTopPlaneToRef(t, n[4]), e.GetBottomPlaneToRef(t, n[5]); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return d; }); var i = n(110), r = n(6), o = n(1), a = n(92), s = n(27), c = n(146), l = n(25), u = n(10), h = n(51), d = (function () { function e(e, t, n) { (this.name = e), (this.id = t), (this.bones = new Array()), (this.needInitialSkinMatrix = !1), (this.overrideMesh = null), (this._isDirty = !0), (this._meshesWithPoseMatrix = new Array()), (this._identity = o.a.Identity()), (this._ranges = {}), (this._lastAbsoluteTransformsUpdateId = -1), (this._canUseTextureForBones = !1), (this._uniqueId = 0), (this._numBonesWithLinkedTransformNode = 0), (this._hasWaitingData = null), (this.doNotSerialize = !1), (this._useTextureToStoreBoneMatrices = !0), (this._animationPropertiesOverride = null), (this.onBeforeComputeObservable = new r.c()), (this.bones = []), (this._scene = n || l.a.LastCreatedScene), (this._uniqueId = this._scene.getUniqueId()), this._scene.addSkeleton(this), (this._isDirty = !0); var i = this._scene.getEngine().getCaps(); this._canUseTextureForBones = i.textureFloat && i.maxVertexTextureImageUnits > 0; } return ( Object.defineProperty(e.prototype, "useTextureToStoreBoneMatrices", { get: function () { return this._useTextureToStoreBoneMatrices; }, set: function (e) { (this._useTextureToStoreBoneMatrices = e), this._markAsDirty(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "animationPropertiesOverride", { get: function () { return this._animationPropertiesOverride ? this._animationPropertiesOverride : this._scene.animationPropertiesOverride; }, set: function (e) { this._animationPropertiesOverride = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isUsingTextureForMatrices", { get: function () { return this.useTextureToStoreBoneMatrices && this._canUseTextureForBones; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "uniqueId", { get: function () { return this._uniqueId; }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "Skeleton"; }), (e.prototype.getChildren = function () { return this.bones.filter(function (e) { return !e.getParent(); }); }), (e.prototype.getTransformMatrices = function (e) { return this.needInitialSkinMatrix && e._bonesTransformMatrices ? e._bonesTransformMatrices : (this._transformMatrices || this.prepare(), this._transformMatrices); }), (e.prototype.getTransformMatrixTexture = function (e) { return this.needInitialSkinMatrix && e._transformMatrixTexture ? e._transformMatrixTexture : this._transformMatrixTexture; }), (e.prototype.getScene = function () { return this._scene; }), (e.prototype.toString = function (e) { var t = "Name: " + this.name + ", nBones: " + this.bones.length; if (((t += ", nAnimationRanges: " + (this._ranges ? Object.keys(this._ranges).length : "none")), e)) { t += ", Ranges: {"; var n = !0; for (var i in this._ranges) n && ((t += ", "), (n = !1)), (t += i); t += "}"; } return t; }), (e.prototype.getBoneIndexByName = function (e) { for (var t = 0, n = this.bones.length; t < n; t++) if (this.bones[t].name === e) return t; return -1; }), (e.prototype.createAnimationRange = function (e, t, n) { if (!this._ranges[e]) { this._ranges[e] = new c.a(e, t, n); for (var i = 0, r = this.bones.length; i < r; i++) this.bones[i].animations[0] && this.bones[i].animations[0].createRange(e, t, n); } }), (e.prototype.deleteAnimationRange = function (e, t) { void 0 === t && (t = !0); for (var n = 0, i = this.bones.length; n < i; n++) this.bones[n].animations[0] && this.bones[n].animations[0].deleteRange(e, t); this._ranges[e] = null; }), (e.prototype.getAnimationRange = function (e) { return this._ranges[e]; }), (e.prototype.getAnimationRanges = function () { var e, t = []; for (e in this._ranges) t.push(this._ranges[e]); return t; }), (e.prototype.copyAnimationRange = function (e, t, n) { if ((void 0 === n && (n = !1), this._ranges[t] || !e.getAnimationRange(t))) return !1; var i, r, o = !0, a = this._getHighestAnimationFrame() + 1, s = {}, l = e.bones; for (r = 0, i = l.length; r < i; r++) s[l[r].name] = l[r]; this.bones.length !== l.length && (u.a.Warn("copyAnimationRange: this rig has " + this.bones.length + " bones, while source as " + l.length), (o = !1)); var h = n && this.dimensionsAtRest && e.dimensionsAtRest ? this.dimensionsAtRest.divide(e.dimensionsAtRest) : null; for (r = 0, i = this.bones.length; r < i; r++) { var d = this.bones[r].name, p = s[d]; p ? (o = o && this.bones[r].copyAnimationRange(p, t, a, n, h)) : (u.a.Warn("copyAnimationRange: not same rig, missing source bone " + d), (o = !1)); } var f = e.getAnimationRange(t); return f && (this._ranges[t] = new c.a(t, f.from + a, f.to + a)), o; }), (e.prototype.returnToRest = function () { for (var e = 0; e < this.bones.length; e++) this.bones[e].returnToRest(); }), (e.prototype._getHighestAnimationFrame = function () { for (var e = 0, t = 0, n = this.bones.length; t < n; t++) if (this.bones[t].animations[0]) { var i = this.bones[t].animations[0].getHighestFrame(); e < i && (e = i); } return e; }), (e.prototype.beginAnimation = function (e, t, n, i) { var r = this.getAnimationRange(e); return r ? this._scene.beginAnimation(this, r.from, r.to, t, n, i) : null; }), (e.prototype._markAsDirty = function () { this._isDirty = !0; }), (e.prototype._registerMeshWithPoseMatrix = function (e) { this._meshesWithPoseMatrix.push(e); }), (e.prototype._unregisterMeshWithPoseMatrix = function (e) { var t = this._meshesWithPoseMatrix.indexOf(e); t > -1 && this._meshesWithPoseMatrix.splice(t, 1); }), (e.prototype._computeTransformMatrices = function (e, t) { this.onBeforeComputeObservable.notifyObservers(this); for (var n = 0; n < this.bones.length; n++) { var i = this.bones[n]; i._childUpdateId++; var r = i.getParent(); if ( (r ? i.getLocalMatrix().multiplyToRef(r.getWorldMatrix(), i.getWorldMatrix()) : t ? i.getLocalMatrix().multiplyToRef(t, i.getWorldMatrix()) : i.getWorldMatrix().copyFrom(i.getLocalMatrix()), -1 !== i._index) ) { var o = null === i._index ? n : i._index; i.getInvertedAbsoluteTransform().multiplyToArray(i.getWorldMatrix(), e, 16 * o); } } this._identity.copyToArray(e, 16 * this.bones.length); }), (e.prototype.prepare = function () { if (this._numBonesWithLinkedTransformNode > 0) for (var e = 0, t = this.bones; e < t.length; e++) { var n = t[e]; n._linkedTransformNode && (n._linkedTransformNode.computeWorldMatrix(), (n._matrix = n._linkedTransformNode._localMatrix), n.markAsDirty()); } if (this._isDirty) { if (this.needInitialSkinMatrix) for (var i = 0; i < this._meshesWithPoseMatrix.length; i++) { var r = this._meshesWithPoseMatrix[i], s = r.getPoseMatrix(); if ( ((r._bonesTransformMatrices && r._bonesTransformMatrices.length === 16 * (this.bones.length + 1)) || (r._bonesTransformMatrices = new Float32Array(16 * (this.bones.length + 1))), this._synchronizedWithMesh !== r) ) { this._synchronizedWithMesh = r; for (var c = 0; c < this.bones.length; c++) { var l = this.bones[c]; if (!l.getParent()) l.getBaseMatrix().multiplyToRef(s, o.c.Matrix[1]), l._updateDifferenceMatrix(o.c.Matrix[1]); } if (this.isUsingTextureForMatrices) { var u = 4 * (this.bones.length + 1); (r._transformMatrixTexture && r._transformMatrixTexture.getSize().width === u) || (r._transformMatrixTexture && r._transformMatrixTexture.dispose(), (r._transformMatrixTexture = a.a.CreateRGBATexture(r._bonesTransformMatrices, 4 * (this.bones.length + 1), 1, this._scene, !1, !1, 1, 1))); } } this._computeTransformMatrices(r._bonesTransformMatrices, s), this.isUsingTextureForMatrices && r._transformMatrixTexture && r._transformMatrixTexture.update(r._bonesTransformMatrices); } else (this._transformMatrices && this._transformMatrices.length === 16 * (this.bones.length + 1)) || ((this._transformMatrices = new Float32Array(16 * (this.bones.length + 1))), this.isUsingTextureForMatrices && (this._transformMatrixTexture && this._transformMatrixTexture.dispose(), (this._transformMatrixTexture = a.a.CreateRGBATexture(this._transformMatrices, 4 * (this.bones.length + 1), 1, this._scene, !1, !1, 1, 1)))), this._computeTransformMatrices(this._transformMatrices, null), this.isUsingTextureForMatrices && this._transformMatrixTexture && this._transformMatrixTexture.update(this._transformMatrices); (this._isDirty = !1), this._scene._activeBones.addCount(this.bones.length, !1); } }), (e.prototype.getAnimatables = function () { if (!this._animatables || this._animatables.length !== this.bones.length) { this._animatables = []; for (var e = 0; e < this.bones.length; e++) this._animatables.push(this.bones[e]); } return this._animatables; }), (e.prototype.clone = function (t, n) { var r = new e(t, n || t, this._scene); (r.needInitialSkinMatrix = this.needInitialSkinMatrix), (r.overrideMesh = this.overrideMesh); for (var o = 0; o < this.bones.length; o++) { var a = this.bones[o], s = null, c = a.getParent(); if (c) { var l = this.bones.indexOf(c); s = r.bones[l]; } var u = new i.a(a.name, r, s, a.getBaseMatrix().clone(), a.getRestPose().clone()); (u._index = a._index), a._linkedTransformNode && u.linkTransformNode(a._linkedTransformNode), h.a.DeepCopy(a.animations, u.animations); } if (this._ranges) for (var d in ((r._ranges = {}), this._ranges)) { var p = this._ranges[d]; p && (r._ranges[d] = p.clone()); } return (this._isDirty = !0), r; }), (e.prototype.enableBlending = function (e) { void 0 === e && (e = 0.01), this.bones.forEach(function (t) { t.animations.forEach(function (t) { (t.enableBlending = !0), (t.blendingSpeed = e); }); }); }), (e.prototype.dispose = function () { (this._meshesWithPoseMatrix = []), this.getScene().stopAnimation(this), this.getScene().removeSkeleton(this), this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), (this._transformMatrixTexture = null)); }), (e.prototype.serialize = function () { var e = {}; (e.name = this.name), (e.id = this.id), this.dimensionsAtRest && (e.dimensionsAtRest = this.dimensionsAtRest.asArray()), (e.bones = []), (e.needInitialSkinMatrix = this.needInitialSkinMatrix); for (var t = 0; t < this.bones.length; t++) { var n = this.bones[t], i = n.getParent(), r = { parentBoneIndex: i ? this.bones.indexOf(i) : -1, name: n.name, matrix: n.getBaseMatrix().toArray(), rest: n.getRestPose().toArray() }; for (var o in (e.bones.push(r), n.length && (r.length = n.length), n.metadata && (r.metadata = n.metadata), n.animations && n.animations.length > 0 && (r.animation = n.animations[0].serialize()), (e.ranges = []), this._ranges)) { var a = this._ranges[o]; if (a) { var s = {}; (s.name = o), (s.from = a.from), (s.to = a.to), e.ranges.push(s); } } } return e; }), (e.Parse = function (t, n) { var r, a = new e(t.name, t.id, n); for (t.dimensionsAtRest && (a.dimensionsAtRest = o.e.FromArray(t.dimensionsAtRest)), a.needInitialSkinMatrix = t.needInitialSkinMatrix, r = 0; r < t.bones.length; r++) { var c = t.bones[r], l = null; c.parentBoneIndex > -1 && (l = a.bones[c.parentBoneIndex]); var u = c.rest ? o.a.FromArray(c.rest) : null, h = new i.a(c.name, a, l, o.a.FromArray(c.matrix), u); void 0 !== c.id && null !== c.id && (h.id = c.id), c.length && (h.length = c.length), c.metadata && (h.metadata = c.metadata), c.animation && h.animations.push(s.a.Parse(c.animation)), void 0 !== c.linkedTransformNodeId && null !== c.linkedTransformNodeId && ((a._hasWaitingData = !0), (h._waitingTransformNodeId = c.linkedTransformNodeId)); } if (t.ranges) for (r = 0; r < t.ranges.length; r++) { var d = t.ranges[r]; a.createAnimationRange(d.name, d.from, d.to); } return a; }), (e.prototype.computeAbsoluteTransforms = function (e) { void 0 === e && (e = !1); var t = this._scene.getRenderId(); (this._lastAbsoluteTransformsUpdateId != t || e) && (this.bones[0].computeAbsoluteTransforms(), (this._lastAbsoluteTransformsUpdateId = t)); }), (e.prototype.getPoseMatrix = function () { var e = null; return this._meshesWithPoseMatrix.length > 0 && (e = this._meshesWithPoseMatrix[0].getPoseMatrix()), e; }), (e.prototype.sortBones = function () { for (var e = new Array(), t = new Array(this.bones.length), n = 0; n < this.bones.length; n++) this._sortBones(n, e, t); this.bones = e; }), (e.prototype._sortBones = function (e, t, n) { if (!n[e]) { n[e] = !0; var i = this.bones[e]; void 0 === i._index && (i._index = e); var r = i.getParent(); r && this._sortBones(this.bones.indexOf(r), t, n), t.push(i); } }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this.hoverCursor = ""), (this.actions = new Array()), (this.isRecursive = !1); } return ( Object.defineProperty(e, "HasTriggers", { get: function () { for (var t in e.Triggers) if (e.Triggers.hasOwnProperty(t)) return !0; return !1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e, "HasPickTriggers", { get: function () { for (var t in e.Triggers) if (e.Triggers.hasOwnProperty(t)) { var n = parseInt(t); if (n >= 1 && n <= 7) return !0; } return !1; }, enumerable: !0, configurable: !0, }), (e.HasSpecificTrigger = function (t) { for (var n in e.Triggers) { if (e.Triggers.hasOwnProperty(n)) if (parseInt(n) === t) return !0; } return !1; }), (e.Triggers = {}), e ); })(); }, function (e, t, n) { "use strict"; var i = "morphTargetsVertexGlobalDeclaration", r = "#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "morphTargetsVertexDeclaration", r = "#ifdef MORPHTARGETS\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#ifdef MORPHTARGETS_UV\nattribute vec2 uv_{X};\n#endif\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i, r, o, a, s, c, l, u = (this && this.__decorate) || function (e, t, n, i) { var r, o = arguments.length, a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i); else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a); return o > 3 && a && Object.defineProperty(t, n, a), a; }, h = (this && this.__metadata) || function (e, t) { if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackPiece = t.TrackPieceInfo = t.TrackCollisionInfo = t.CameraTransition = t.PathInfo = t.JsonVector3 = t.RegionZoneInfo = t.CoinPlacementSettings = t.RegionInfo = t.TutorialTrackPacing = t.TrackPacing = t.NewTrackPieceInfo = t.RunnerSpeedData = t.ZonePacingData = t.PieceData = t.TutorialMilestoneData = t.MilestoneData = t.TrackPieceDefinition = t.JunctionPostPiecesContainer = t.ExtraPieceDefinition = t.TrackVariationDefinition = t.TrackSection = t.QueuedTrackPiece = t.OnEnterPieceInfo = t.DeathTypes = t.CameraSettingsType = t.TrackTrigger = t.TutorialSoundEffectType = t.TutorialMessageDisplayType = t.BonusItemCategory = t.BonusItemType = t.CoinPlacement = t.TRGameRunnerGameplay = t.LedgeZoneTransition = t.TrackPieceCategory = t.TrackPieceSpecial = t.TrackPieceAttachType = t.TrackID = void 0), n(176); const d = n(177), p = n(62), f = n(232), m = n(150), g = n(214); let b = (i = class { isEquals(e) { return e.RegionID == this.RegionID && e.ZoneID == this.ZoneID && e.PieceID == this.PieceID; } static create(e, t, n) { const r = new i(); return (r.RegionID = e), (r.ZoneID = t), (r.PieceID = n), r; } }); var _, v, y, C, P, x, T, S, O, E, M, A; u([d.jsonMember, h("design:type", Number)], b.prototype, "RegionID", void 0), u([d.jsonMember, h("design:type", Number)], b.prototype, "ZoneID", void 0), u([d.jsonMember, h("design:type", Number)], b.prototype, "PieceID", void 0), (b = i = u([d.jsonObject], b)), (t.TrackID = b), (function (e) { (e[(e.Normal = 0)] = "Normal"), (e[(e.Basic = 1)] = "Basic"); })((_ = t.TrackPieceAttachType || (t.TrackPieceAttachType = {}))), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.Start = 1)] = "Start"), (e[(e.End = 2)] = "End"); })((v = t.TrackPieceSpecial || (t.TrackPieceSpecial = {}))), (function (e) { (e[(e.Normal = 0)] = "Normal"), (e[(e.CompoundPieceStart = 1)] = "CompoundPieceStart"), (e[(e.CompoundPieceMiddle = 2)] = "CompoundPieceMiddle"), (e[(e.CompoundPieceEnd = 3)] = "CompoundPieceEnd"), (e[(e.RegionTransitionStart = 4)] = "RegionTransitionStart"), (e[(e.RegionTransitionEnd = 5)] = "RegionTransitionEnd"), (e[(e.ZoneEntranceTransition = 6)] = "ZoneEntranceTransition"), (e[(e.ZoneExitTransition = 7)] = "ZoneExitTransition"), (e[(e.Total = 8)] = "Total"); })((y = t.TrackPieceCategory || (t.TrackPieceCategory = {}))), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.LeftToRight = 1)] = "LeftToRight"), (e[(e.RightToLeft = 2)] = "RightToLeft"); })((C = t.LedgeZoneTransition || (t.LedgeZoneTransition = {}))), (function (e) { (e[(e.Run = 0)] = "Run"), (e[(e.Ride = 1)] = "Ride"), (e[(e.WaterSlide = 2)] = "WaterSlide"), (e[(e.Luge = 3)] = "Luge"), (e[(e.DownHillSlide = 4)] = "DownHillSlide"); })((P = t.TRGameRunnerGameplay || (t.TRGameRunnerGameplay = {}))), (function (e) { (e[(e.Left = 0)] = "Left"), (e[(e.Center = 1)] = "Center"), (e[(e.Right = 2)] = "Right"), (e[(e.None = 3)] = "None"), (e[(e.LeftOrCenter = 4)] = "LeftOrCenter"), (e[(e.LeftOrRight = 5)] = "LeftOrRight"), (e[(e.CenterOrRight = 6)] = "CenterOrRight"), (e[(e.Any = 7)] = "Any"), (e[(e.Default = 8)] = "Default"), (e[(e.Total = 9)] = "Total"); })((x = t.CoinPlacement || (t.CoinPlacement = {}))), (function (e) { (e[(e.Default = -2)] = "Default"), (e[(e.None = -1)] = "None"), (e[(e.Coin = 0)] = "Coin"), (e[(e.CoinDouble = 1)] = "CoinDouble"), (e[(e.CoinTriple = 2)] = "CoinTriple"), (e[(e.Vacuum = 3)] = "Vacuum"), (e[(e.Boost = 4)] = "Boost"), (e[(e.Gem = 5)] = "Gem"), (e[(e.MegaCoin = 6)] = "MegaCoin"), (e[(e.Shield = 7)] = "Shield"), (e[(e.Bolt = 8)] = "Bolt"), (e[(e.Collectable = 9)] = "Collectable"), (e[(e.ScoreBonus = 10)] = "ScoreBonus"), (e[(e.TokenCharacter = 11)] = "TokenCharacter"), (e[(e.TokenRegion = 12)] = "TokenRegion"), (e[(e.TokenAttachment = 13)] = "TokenAttachment"); })((T = t.BonusItemType || (t.BonusItemType = {}))), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.Pickups = 1)] = "Pickups"), (e[(e.Coins = 2)] = "Coins"); })((S = t.BonusItemCategory || (t.BonusItemCategory = {}))), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.SwipeUpInstruction = 1)] = "SwipeUpInstruction"), (e[(e.SwipeDownInstruction = 2)] = "SwipeDownInstruction"), (e[(e.SwipeToTurn = 3)] = "SwipeToTurn"), (e[(e.TiltInstruction = 4)] = "TiltInstruction"), (e[(e.SwipeUp = 5)] = "SwipeUp"), (e[(e.SwipeDown = 6)] = "SwipeDown"), (e[(e.SwipeLeft = 7)] = "SwipeLeft"), (e[(e.SwipeRight = 8)] = "SwipeRight"), (e[(e.TiltLeft = 9)] = "TiltLeft"), (e[(e.TiltRight = 10)] = "TiltRight"), (e[(e.DoubleTapInstruction = 11)] = "DoubleTapInstruction"), (e[(e.NiceJobText = 12)] = "NiceJobText"), (e[(e.YouAreReadyText = 13)] = "YouAreReadyText"), (e[(e.SwipeUpAndTiltInstruction = 14)] = "SwipeUpAndTiltInstruction"), (e[(e.SwipeUpAndTiltRight = 15)] = "SwipeUpAndTiltRight"), (e[(e.SwipeUpAndTiltLeft = 16)] = "SwipeUpAndTiltLeft"), (e[(e.CustomMessageFadeGrow = 17)] = "CustomMessageFadeGrow"), (e[(e.CustomMessageBounce = 18)] = "CustomMessageBounce"), (e[(e.UnlockPowerMeter = 19)] = "UnlockPowerMeter"); })((O = t.TutorialMessageDisplayType || (t.TutorialMessageDisplayType = {}))), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.ScoreBlast = 1)] = "ScoreBlast"), (e[(e.Wooosh = 2)] = "Wooosh"); })((E = t.TutorialSoundEffectType || (t.TutorialSoundEffectType = {}))), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.CameraTransition = 1)] = "CameraTransition"), (e[(e.Water = 2)] = "Water"), (e[(e.MissedTurn = 3)] = "MissedTurn"), (e[(e.Obstacle = 4)] = "Obstacle"), (e[(e.Stumble = 5)] = "Stumble"), (e[(e.FallSaver = 6)] = "FallSaver"), (e[(e.Shadow = 7)] = "Shadow"), (e[(e.WaterSlideZoneStart = 8)] = "WaterSlideZoneStart"), (e[(e.WaterSlideZoneStop = 9)] = "WaterSlideZoneStop"), (e[(e.ZipLineLetGo = 10)] = "ZipLineLetGo"), (e[(e.AnimationStart = 11)] = "AnimationStart"), (e[(e.MineCartZoneStart = 12)] = "MineCartZoneStart"), (e[(e.MineCartZoneStop = 13)] = "MineCartZoneStop"), (e[(e.ForestZoneStart = 14)] = "ForestZoneStart"), (e[(e.ForestZoneStop = 15)] = "ForestZoneStop"), (e[(e.NarrowZoneStart = 16)] = "NarrowZoneStart"), (e[(e.NarrowZoneStop = 17)] = "NarrowZoneStop"); })((M = t.TrackTrigger || (t.TrackTrigger = {}))), (function (e) { (e[(e.Default = 0)] = "Default"), (e[(e.Inherit = 1)] = "Inherit"), (e[(e.Custom = 2)] = "Custom"); })(t.CameraSettingsType || (t.CameraSettingsType = {})), (function (e) { (e[(e.Fall = 0)] = "Fall"), (e[(e.Eaten = 1)] = "Eaten"), (e[(e.Fire = 2)] = "Fire"), (e[(e.MineDuck = 3)] = "MineDuck"), (e[(e.MineLedge = 4)] = "MineLedge"), (e[(e.Mine = 5)] = "Mine"), (e[(e.Wheel = 6)] = "Wheel"), (e[(e.WaterLeft = 7)] = "WaterLeft"), (e[(e.Ledge = 8)] = "Ledge"), (e[(e.SceneryTree = 9)] = "SceneryTree"), (e[(e.SceneryRock = 10)] = "SceneryRock"), (e[(e.DeathThrow = 11)] = "DeathThrow"), (e[(e.None = 12)] = "None"), (e[(e.WaterRight = 13)] = "WaterRight"); })((A = t.DeathTypes || (t.DeathTypes = {}))); let I = class { constructor() { (this.TutorialMessageType = O.None), (this.DisplayMessageText = ""), (this.SetPlayerPowerPointsToMax = 0), (this.ForceCoinsPlacementOnTrackPiece = 0), (this.CoinPlacementLocation = x.None), (this.PickupTypeToPlace = T.None), (this.TutorialSoundEffect = E.None); } }; u([d.jsonMember, h("design:type", Number)], I.prototype, "TutorialMessageType", void 0), u([d.jsonMember, h("design:type", String)], I.prototype, "DisplayMessageText", void 0), u([d.jsonMember, h("design:type", Number)], I.prototype, "SetPlayerPowerPointsToMax", void 0), u([d.jsonMember, h("design:type", Number)], I.prototype, "ForceCoinsPlacementOnTrackPiece", void 0), u([d.jsonMember, h("design:type", Number)], I.prototype, "CoinPlacementLocation", void 0), u([d.jsonMember, h("design:type", Number)], I.prototype, "ForcePickupPlacementOnTrackPiece", void 0), u([d.jsonMember, h("design:type", Number)], I.prototype, "PickupTypeToPlace", void 0), u([d.jsonMember, h("design:type", Number)], I.prototype, "TutorialSoundEffect", void 0), (I = u([d.jsonObject], I)), (t.OnEnterPieceInfo = I); let D = class { constructor(e, t) { (this.Attach = _.Normal), (this.EnterPiece = new I()), (this.ID = e), (this.Variation = t); } }; u([d.jsonMember, h("design:type", b)], D.prototype, "ID", void 0), u([d.jsonMember, h("design:type", String)], D.prototype, "Variation", void 0), u([d.jsonMember, h("design:type", Number)], D.prototype, "Attach", void 0), u([d.jsonMember, h("design:type", I)], D.prototype, "EnterPiece", void 0), (D = u([d.jsonObject, h("design:paramtypes", [b, String])], D)), (t.QueuedTrackPiece = D); let R = class { constructor() { (this.Pieces = []), (this.TrackLoop = 0); } }; u([d.jsonArrayMember(D), h("design:type", Array)], R.prototype, "Pieces", void 0), u([d.jsonMember, h("design:type", Number)], R.prototype, "TrackLoop", void 0), (R = u([d.jsonObject], R)), (t.TrackSection = R); let w = class { constructor() { (this.PoolPreloadAmount = 0), (this.Frequency = 0), (this.CoinPlacement = x.None), (this.CanSpawnPowerup = 0); } }; u([d.jsonMember, h("design:type", String)], w.prototype, "PieceName", void 0), u([d.jsonMember, h("design:type", String)], w.prototype, "PiecePath", void 0), u([d.jsonMember, h("design:type", Number)], w.prototype, "PoolPreloadAmount", void 0), u([d.jsonMember, h("design:type", Number)], w.prototype, "Frequency", void 0), u([d.jsonMember, h("design:type", Number)], w.prototype, "CoinPlacement", void 0), u([d.jsonMember, h("design:type", Number)], w.prototype, "CanSpawnPowerup", void 0), (w = u([d.jsonObject], w)), (t.TrackVariationDefinition = w); let L = (r = class { constructor() { (this.OverrideCoinPlacement = 0), (this.CoinPlacement = x.None), (this.OverrideCanSpawnPowerup = 0), (this.CanSpawnPowerup = 0); } }); (L.default = new r()), u([d.jsonMember, h("design:type", b)], L.prototype, "ID", void 0), u([d.jsonMember, h("design:type", String)], L.prototype, "VariationName", void 0), u([d.jsonMember, h("design:type", Number)], L.prototype, "OverrideCoinPlacement", void 0), u([d.jsonMember, h("design:type", Number)], L.prototype, "CoinPlacement", void 0), u([d.jsonMember, h("design:type", Number)], L.prototype, "OverrideCanSpawnPowerup", void 0), u([d.jsonMember, h("design:type", Number)], L.prototype, "CanSpawnPowerup", void 0), (L = r = u([d.jsonObject], L)), (t.ExtraPieceDefinition = L); let F = class { constructor() { this.PathPostPieces = []; } }; u([d.jsonArrayMember(L), h("design:type", Array)], F.prototype, "PathPostPieces", void 0), (F = u([d.jsonObject], F)), (t.JunctionPostPiecesContainer = F); let N = class { constructor() { (this.DisplayName = "INVALID"), (this.Name = "INVALID"), (this.ID = new b()), (this.IsTurnLeft = 0), (this.IsTurnRight = 0), (this.IsJunction = 0), (this.IsYJunction = 0), (this.IsOptionalJunction = 0), (this.IsSlideUnder = 0), (this.IsJumpOver = 0), (this.IsStumble = 0), (this.IsLedgeLeft = 0), (this.IsLedgeRight = 0), (this.IsLedgeCenter = 0), (this.IsStairs = 0), (this.IsCurveLeft = 0), (this.IsCurveRight = 0), (this.IsMine = 0), (this.IsZipLine = 0), (this.IsWaterSlide = 0), (this.IsNarrow = 0), (this.IsGenericObstacle = 0), (this.AllowDoubleObstacle = 1), (this.LedgeZoneTransitionType = C.None), (this.DifficultyLevel = 0), (this.SelectionOdds = 1), (this.Variations = []), (this.PrePieces = []), (this.PostPieces = []), (this.CompoundPieceMinMiddleCount = 1), (this.CompoundPieceMaxMiddleCount = 1), (this.TotalPossibleFrequencies = 100), (this.LedgeLeftOrRightIsObstacle = !0), (this.LastChosenVariation = -1), (this.TotalFrequencies = 0); } initialize() { let e = !1; for (let t = 0; t < this.Variations.length; t++) if (this.Variations[t].Frequency > 0) { e = !0; break; } if (0 == e) { const e = this.TotalPossibleFrequencies / this.Variations.length; for (let t = 0; t < this.Variations.length; t++) this.Variations[t].Frequency = e; } this.TotalFrequencies = 0; for (let e = 0; e < this.Variations.length; e++) this.TotalFrequencies += this.Variations[e].Frequency; this.IsNarrow = this.DisplayName.includes("Narrow") || this.DisplayName.includes("narrow") ? 1 : 0; } isAnyJunction() { return !!this.IsJunction || !!this.IsYJunction; } isCompoundStart() { return this.CategoryType == y.CompoundPieceStart; } isEnd() { return this.SpecialType == v.End; } getVariation() { if (1 == this.Variations.length) this.LastChosenVariation = 0; else { let e = this.TotalFrequencies; this.LastChosenVariation >= 0 && (e -= this.Variations[this.LastChosenVariation].Frequency); let t = m.Utils.random(0, e); for (let e = 0; e < this.Variations.length; e++) if (e != this.LastChosenVariation && ((t -= this.Variations[e].Frequency), t < 0)) { this.LastChosenVariation = e; break; } } return this.Variations[this.LastChosenVariation]; } isLeftOrRightTurn() { return !!this.IsTurnLeft || !!this.IsTurnRight; } isMandatoryTurn() { return (this.isAnyJunction() || this.isLeftOrRightTurn()) && 0 == !!this.IsOptionalJunction; } isObstacle() { const e = this.LedgeZoneTransitionType == C.LeftToRight || this.LedgeZoneTransitionType == C.RightToLeft || (this.LedgeLeftOrRightIsObstacle && (!!this.IsLedgeLeft || !!this.IsLedgeRight)); return !!this.IsSlideUnder || !!this.IsJumpOver || !!this.IsStumble || !!this.IsZipLine || !!this.IsGenericObstacle || e; } isZoneTransition() { return this.CategoryType == y.ZoneEntranceTransition || this.CategoryType == y.ZoneExitTransition; } isTurn() { return this.isAnyJunction() || this.isLeftOrRightTurn(); } }; (N.MainPathID = 0), u([d.jsonMember, h("design:type", String)], N.prototype, "DisplayName", void 0), u([d.jsonMember, h("design:type", String)], N.prototype, "Name", void 0), u([d.jsonMember, h("design:type", b)], N.prototype, "ID", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "SpecialType", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "CategoryType", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "DeathType", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "DeathShakeCamera", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsTurnLeft", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsTurnRight", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsJunction", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsYJunction", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsOptionalJunction", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsSlideUnder", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsJumpOver", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsStumble", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsLedgeLeft", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsLedgeRight", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsLedgeCenter", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsStairs", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsCurveLeft", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsCurveRight", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsMine", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsZipLine", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsWaterSlide", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsNarrow", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "IsGenericObstacle", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "AllowDoubleObstacle", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "LedgeZoneTransitionType", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "DifficultyLevel", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "SelectionOdds", void 0), u([d.jsonMember, h("design:type", b)], N.prototype, "CompoundPieceMiddleType", void 0), u([d.jsonMember, h("design:type", b)], N.prototype, "CompoundPieceEndType", void 0), u([d.jsonArrayMember(w), h("design:type", Array)], N.prototype, "Variations", void 0), u([d.jsonArrayMember(L), h("design:type", Array)], N.prototype, "PrePieces", void 0), u([d.jsonArrayMember(L), h("design:type", Array)], N.prototype, "PostPieces", void 0), u([d.jsonArrayMember(F), h("design:type", Array)], N.prototype, "JunctionPostPieces", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "CompoundPieceMinMiddleCount", void 0), u([d.jsonMember, h("design:type", Number)], N.prototype, "CompoundPieceMaxMiddleCount", void 0), (N = u([d.jsonObject()], N)), (t.TrackPieceDefinition = N); let k = class { constructor() { (this.Distance = 0), (this.MaxTrackPieceDifficulty = 1), (this.AllowCoins = 1), (this.MinDistanceBetweenCoinRuns = 80), (this.MaxCoinsPerRun = 25), (this.AllowTurns = 1), (this.MinDistanceBetweenTurns = 30), (this.MaxDistanceBetweenTurns = 60), (this.AllowTurnAfterObstacle = 0), (this.MinDistanceAfterTurnForObstacle = 30), (this.DistanceToFastTurnSection = 1e3), (this.MaxDistanceForFastTurnSection = 100), (this.AllowObstacles = 0), (this.MinDistanceBetweenObstacles = 20), (this.MaxDistanceBetweenObstacles = 40), (this.MaxBackToBackObstacles = 1), (this.DoubleObstaclePercent = 0), (this.AllowOptionalTurns = 1), (this.MinDistanceBetweenOptionalTurns = 30); } }; u([d.jsonMember, h("design:type", Number)], k.prototype, "Distance", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxTrackPieceDifficulty", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowCoins", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenCoinRuns", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxCoinsPerRun", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowTurns", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenTurns", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxDistanceBetweenTurns", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowTurnAfterObstacle", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceAfterTurnForObstacle", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "DistanceToFastTurnSection", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxDistanceForFastTurnSection", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowObstacles", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenObstacles", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxDistanceBetweenObstacles", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MaxBackToBackObstacles", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "DoubleObstaclePercent", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "AllowOptionalTurns", void 0), u([d.jsonMember, h("design:type", Number)], k.prototype, "MinDistanceBetweenOptionalTurns", void 0), (k = u([d.jsonObject], k)), (t.MilestoneData = k); let z = class { constructor() { (this.TutorialMilestoneName = "Tutorial Milestone Desc"), (this.TutorialStep = 0), (this.TutorialTrackQueue = new R()), (this.AllowCoins = 0), (this.MilestoneCompleteAnalyticsEventName = ""); } }; u([d.jsonMember, h("design:type", String)], z.prototype, "TutorialMilestoneName", void 0), u([d.jsonMember, h("design:type", Number)], z.prototype, "TutorialStep", void 0), u([d.jsonMember, h("design:type", R)], z.prototype, "TutorialTrackQueue", void 0), u([d.jsonMember, h("design:type", Number)], z.prototype, "AllowCoins", void 0), u([d.jsonMember, h("design:type", String)], z.prototype, "MilestoneCompleteAnalyticsEventName", void 0), (z = u([d.jsonObject], z)), (t.TutorialMilestoneData = z); let j = class { constructor() { (this.Difficulty = 0), (this.SelectionChance = 0); } }; u([d.jsonMember, h("design:type", b)], j.prototype, "ID", void 0), u([d.jsonMember, h("design:type", Number)], j.prototype, "Difficulty", void 0), u([d.jsonMember, h("design:type", Number)], j.prototype, "SelectionChance", void 0), (j = u([d.jsonObject], j)), (t.PieceData = j); let B = class { constructor() { (this.RegionID = -1), (this.ZoneID = -1), (this.MinLength = 100); } }; u([d.jsonMember, h("design:type", Number)], B.prototype, "RegionID", void 0), u([d.jsonMember, h("design:type", Number)], B.prototype, "ZoneID", void 0), u([d.jsonMember, h("design:type", Number)], B.prototype, "MinLength", void 0), u([d.jsonArrayMember(j), h("design:type", Array)], B.prototype, "Pieces", void 0), u([d.jsonArrayMember(k), h("design:type", Array)], B.prototype, "Milestones", void 0), (B = u([d.jsonObject], B)), (t.ZonePacingData = B); let V = class {}; u([d.jsonMember, h("design:type", Number)], V.prototype, "PercentageOfMaxSpeed", void 0), u([d.jsonMember, h("design:type", Number)], V.prototype, "ForceToAdd", void 0), (V = u([d.jsonObject], V)), (t.RunnerSpeedData = V); t.NewTrackPieceInfo = class { setAllMembersNull() { (this.Definition = void 0), (this.Piece = void 0), (this.Queue = void 0), (this.Pacing = void 0); } areAllMembersNull() { return null == this.Definition && null == this.Piece && null == this.Queue && null == this.Pacing; } }; let G = (o = class { constructor() { (this.RegionID = -1), (this.MinDistanceBetweenBaseZoneChange = 350), (this.Milestones = []), (this.ZonePacing = []), (this.ActiveMilestone = new k()), (this.ActiveZonePacing = new B()), (this.MaxPossibleDefinitions = 100), (this.AvailablePieceDefinitions = new Array(this.MaxPossibleDefinitions)), (this.IsFastTurnSection = !1), (this.NextMilestoneIndex = 0), (this.DistanceTraveled = 0); } initialize(e) { (this.ActiveMilestone = new k()), (this.ActiveZonePacing = new B()), (this.AvailablePieceDefinitions = new Array(this.MaxPossibleDefinitions)), (this.IsFastTurnSection = !1), (this.NextMilestoneIndex = 0), (this.DistanceTraveled = 0), this.selectNextMilestone(!1, !0); for (const t of this.ZonePacing) for (const [, n] of e) if (null != n && n.ID == t.ZoneID) { t.Pieces.length > 0 && (t.Pieces.length, n.Definitions.length); for (const e of t.Pieces) for (const t of n.Definitions) if (e.ID.isEquals(t.ID)) { (t.SelectionOdds = e.SelectionChance), (t.DifficultyLevel = e.Difficulty); break; } } } updatePacing() {} findZonePacing(e) { let t; for (let n = 0; n < this.ZonePacing.length; ++n) if (this.ZonePacing[n].ZoneID == e) { t = this.ZonePacing[n]; break; } return t; } selectNextMilestone(e = !1, t = !1) { if ((e && --this.NextMilestoneIndex, t && (this.NextMilestoneIndex = 0), this.NextMilestoneIndex < 0 && (this.NextMilestoneIndex = 0), this.NextMilestoneIndex >= this.Milestones.length)) return; const n = this.Milestones[this.NextMilestoneIndex]; (this.ActiveMilestone = Object.assign(new k(), n)), this.NextMilestoneIndex++; } static fromJson(e) { return g.TypedJSONProvider.instance().get(o).parse(e); } }); u([d.jsonMember, h("design:type", Number)], G.prototype, "RegionID", void 0), u([d.jsonMember, h("design:type", R)], G.prototype, "StartingSection", void 0), u([d.jsonMember, h("design:type", Number)], G.prototype, "MinDistanceBetweenBaseZoneChange", void 0), u([d.jsonArrayMember(k), h("design:type", Array)], G.prototype, "Milestones", void 0), u([d.jsonArrayMember(B), h("design:type", Array)], G.prototype, "ZonePacing", void 0), u([d.jsonArrayMember(V), h("design:type", Array)], G.prototype, "RunnerSpeed", void 0), u([d.jsonArrayMember(V), h("design:type", Array)], G.prototype, "RunnerSpeedAfterResurrect", void 0), (G = o = u([d.jsonObject], G)), (t.TrackPacing = G); let U = class extends G { constructor() { super(...arguments), (this.TutorialEnabled = !1); } }; u([d.jsonArrayMember(z), h("design:type", Array)], U.prototype, "TutorialMilestones", void 0), (U = u([d.jsonObject], U)), (t.TutorialTrackPacing = U); let H = (a = class { constructor() { (this.GrowDistance = 80), (this.CullDistance = 60); } static fromJson(e) { return g.TypedJSONProvider.instance().get(a).parse(e); } }); u([d.jsonMember, h("design:type", String)], H.prototype, "Name", void 0), u([d.jsonMember, h("design:type", Number)], H.prototype, "ID", void 0), u([d.jsonMember, h("design:type", String)], H.prototype, "DisplayName", void 0), u([d.jsonMember, h("design:type", Number)], H.prototype, "GrowDistance", void 0), u([d.jsonMember, h("design:type", Number)], H.prototype, "CullDistance", void 0), u([d.jsonMember, h("design:type", R)], H.prototype, "StartingSection", void 0), u([d.jsonMember, h("design:type", String)], H.prototype, "DefaultPacingPath", void 0), u([d.jsonMember, h("design:type", G)], H.prototype, "FreePreviewPacing", void 0), u([d.jsonMember, h("design:type", String)], H.prototype, "SkyboxPath", void 0), u([d.jsonMember, h("design:type", String)], H.prototype, "ChaserPath", void 0), (H = a = u([d.jsonObject], H)), (t.RegionInfo = H); let W = class { constructor() { (this.SmartPlacement = 0), (this.UseTrackDefinitonsForAllowingCoins = 0), (this.HeightAboveGround = 0), (this.MaxHorizontalOffset = 0), (this.UseTrackDefinitonsForAllowingBonus = 0), (this.BonusItemHeightAboveGround = 0); } }; u([d.jsonMember, h("design:type", Number)], W.prototype, "SmartPlacement", void 0), u([d.jsonMember, h("design:type", Number)], W.prototype, "UseTrackDefinitonsForAllowingCoins", void 0), u([d.jsonMember, h("design:type", Number)], W.prototype, "HeightAboveGround", void 0), u([d.jsonMember, h("design:type", Number)], W.prototype, "MaxHorizontalOffset", void 0), u([d.jsonMember, h("design:type", Number)], W.prototype, "UseTrackDefinitonsForAllowingBonus", void 0), u([d.jsonMember, h("design:type", Object)], W.prototype, "BonusItemHeightAboveGround", void 0), (W = u([d.jsonObject], W)), (t.CoinPlacementSettings = W); let X = (s = class { constructor() { (this.AllowObstacleDuringFastTurn = 0), (this.TransitionToZoneSupported = 1), (this.IsLedgeZone = 0), (this.Gameplay = P.Run); } getEndPiece() { if ((null == this.EndPieces && (this.EndPieces = new Array()), this.EndPieces.length < 1)) for (let e = 0; e < this.Definitions.length; ++e) { const t = this.Definitions[e]; null != t && 1 == t.isEnd() && this.EndPieces.push(t); } if (this.EndPieces.length > 0) { if (1 == this.EndPieces.length) return this.EndPieces[0]; { const e = m.Utils.random(0, this.EndPieces.length); if (e > -1 && e < this.EndPieces.length) return this.EndPieces[e]; } } } static fromJson(e) { return g.TypedJSONProvider.instance().get(s).parse(e); } }); u([d.jsonMember, h("design:type", String)], X.prototype, "Name", void 0), u([d.jsonMember, h("design:type", Number)], X.prototype, "ID", void 0), u([d.jsonArrayMember(N), h("design:type", Array)], X.prototype, "Definitions", void 0), u([d.jsonMember, h("design:type", U)], X.prototype, "TutorialPacing", void 0), u([d.jsonMember, h("design:type", Number)], X.prototype, "AllowObstacleDuringFastTurn", void 0), u([d.jsonMember, h("design:type", Number)], X.prototype, "TransitionToZoneSupported", void 0), u([d.jsonMember, h("design:type", Number)], X.prototype, "IsLedgeZone", void 0), u([d.jsonMember, h("design:type", W)], X.prototype, "CoinSettings", void 0), u([d.jsonMember, h("design:type", Number)], X.prototype, "Gameplay", void 0), (X = s = u([d.jsonObject], X)), (t.RegionZoneInfo = X); let Y = class { toVector3() { return new p.Vector3(this.x, this.y, this.z); } }; u([d.jsonMember, h("design:type", Number)], Y.prototype, "x", void 0), u([d.jsonMember, h("design:type", Number)], Y.prototype, "y", void 0), u([d.jsonMember, h("design:type", Number)], Y.prototype, "z", void 0), (Y = u([d.jsonObject], Y)), (t.JsonVector3 = Y); let K = class { constructor() { (this.SourcePath = []), (this.EstimatedPathLength = 0), (this.SourceLastYRot = 0), (this.GeneratedPath = []), (this.GeneratedEstimatedPathLength = 0), (this.GeneratedLastYRot = 0), (this.GeneratedSmoothing = 1); } onDeserialized() { for (const e of this.SourcePathList) this.SourcePath.push(e.toVector3()); for (const e of this.GeneratedPathList) this.GeneratedPath.push(e.toVector3()); } }; u([d.jsonArrayMember(Y, { name: "SourcePath" }), h("design:type", Array)], K.prototype, "SourcePathList", void 0), u([d.jsonMember, h("design:type", Number)], K.prototype, "EstimatedPathLength", void 0), u([d.jsonMember, h("design:type", Number)], K.prototype, "SourceLastYRot", void 0), u([d.jsonArrayMember(Y, { name: "GeneratedPath" }), h("design:type", Array)], K.prototype, "GeneratedPathList", void 0), u([d.jsonMember, h("design:type", Number)], K.prototype, "GeneratedEstimatedPathLength", void 0), u([d.jsonMember, h("design:type", Number)], K.prototype, "GeneratedLastYRot", void 0), u([d.jsonMember, h("design:type", Number)], K.prototype, "GeneratedSmoothing", void 0), (K = u([d.jsonObject({ onDeserialized: "onDeserialized" })], K)), (t.PathInfo = K); let Z = class { onDeserialized() { (this.CameraFixedRotation = this.CameraFixedRotationLocal.toVector3()), (this.CameraFocusRotation = this.CameraFocusRotationLocal.toVector3()), (this.CameraFollowOffset = this.CameraFollowOffsetLocal.toVector3()), (this.CameraFocusOffset = this.CameraFocusOffsetLocal.toVector3()); } }; u([d.jsonMember({ name: "CameraFixedRotation" }), h("design:type", Y)], Z.prototype, "CameraFixedRotationLocal", void 0), u([d.jsonMember({ name: "CameraFocusRotation" }), h("design:type", Y)], Z.prototype, "CameraFocusRotationLocal", void 0), u([d.jsonMember({ name: "CameraFollowOffset" }), h("design:type", Y)], Z.prototype, "CameraFollowOffsetLocal", void 0), u([d.jsonMember({ name: "CameraFocusOffset" }), h("design:type", Y)], Z.prototype, "CameraFocusOffsetLocal", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraFollowDistance", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraFocusDistance", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraPitchHeight", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "CameraChangeRate", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "FocusRotationSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "FixedRotationSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "FollowOffsetSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "FocusOffsetSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "FollowDistanceSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "FocusDistanceSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "PitchHeightSettings", void 0), u([d.jsonMember, h("design:type", Number)], Z.prototype, "ChangeRateSettings", void 0), (Z = u([d.jsonObject({ onDeserialized: "onDeserialized" })], Z)), (t.CameraTransition = Z); let q = class { constructor() { (this.Trigger = M.None), (this.DeathType = A.None), (this.ShakeCamera = 0); } }; u([d.jsonMember, h("design:type", Number)], q.prototype, "Trigger", void 0), u([d.jsonMember, h("design:type", Number)], q.prototype, "DeathType", void 0), u([d.jsonMember, h("design:type", Number)], q.prototype, "ShakeCamera", void 0), u([d.jsonMember, h("design:type", Z)], q.prototype, "Transition", void 0), (q = u([d.jsonObject], q)), (t.TrackCollisionInfo = q); let Q = (c = class { constructor() { (this.DeathType = A.None), (this.DeathShakeCamera = 0), (this.TriggerDistance = 35); } static fromJson(e) { return g.TypedJSONProvider.instance().get(c).parse(e); } }); u([d.jsonMember, h("design:type", Number)], Q.prototype, "DeathType", void 0), u([d.jsonMember, h("design:type", Number)], Q.prototype, "DeathShakeCamera", void 0), u([d.jsonMember, h("design:type", Number)], Q.prototype, "TriggerDistance", void 0), u([d.jsonMember, h("design:type", q)], Q.prototype, "CollisionInfo", void 0), u([d.jsonMember, h("design:type", I)], Q.prototype, "EnterPiece", void 0), u([d.jsonArrayMember(K), h("design:type", Array)], Q.prototype, "Paths", void 0), (Q = c = u([d.jsonObject], Q)), (t.TrackPieceInfo = Q); let J = (l = class { constructor() { (this.Queue = new R()), (this.NextTrackPieces = new Array(2)), (this.DistanceFromRoot = 0), (this.WorldRotationY = 0), (this.CurrCoinPlacement = x.None), (this.CurrCanSpawnPowerup = !1), (this.PlacedBonusItemCategory = S.None), (this.IsDeadEnd = !1), (this.selectedPathId = 0), (this.trackPaths = []), (this.TrackZoneChangeDistance = !0), (this.DistanceSinceLastMandatoryTurn = 0), (this.BackToBackObstacleCount = 0), (this.DistanceSinceLastObstacle = 0), (this.DistanceSinceLastOptionalTurn = 0), (this.DistanceSinceLastZoneChange = 0), (this.DistanceSinceLastObstacleSlideJumpStumble = 0), (this.DistanceSinceLastTurnLeftOrRight = 0), (this.DistanceSinceLastJunction = 0), (this.DistanceSinceLastZipline = 0), (this.DistanceSinceLastBonusItem = 0), (this.DistanceSinceLastCoinRun = 0), (this.CoinRunCoinCount = 0), (this.LastCoinPlacement = x.None), (this.LastCoinPlacementHeight = l.DefaultCoinPlacementHeight), (this.coinsList = []), (this.tutorialStepDone = !1), (this.tutorialMilestoneIndex = 0), (this.triggerAnimations = new Map()); } getEstimatedLength(e = 0) { return this.trackInfo.Paths[e].EstimatedPathLength; } getSourceLastRotY(e = 0) { return this.trackInfo.Paths[e].SourceLastYRot; } getNumPaths() { return this.trackInfo.Paths.length; } firstPointFromPath(e = 0) { return this.trackInfo.Paths[e].SourcePath[0]; } lastPointFromPath(e = 0) { const t = this.trackInfo.Paths[e].SourcePath.length; return this.trackInfo.Paths[e].SourcePath[t - 1]; } isDeadEnd() { return this.SelectedDefinition.isEnd() || this.IsDeadEnd; } setNextTrackPiece(e, t) { (this.NextTrackPieces[e] = t), (t.PreviousTrackPiece = this); } getStartDirection() { const e = this.trackPaths[this.selectedPathId]; return e[1].subtract(e[0]); } getNextTrackPiecesLength() { return null == this.NextTrackPieces[0] ? 0 : null == this.NextTrackPieces[1] ? 1 : 2; } changeMeshesStateForPowerup(e) { this.assetInfo.fillMeshes.forEach((t) => { t.checkCollisions = e > 0.01; }); } updateStats(e) { const t = this.getEstimatedLength(); 0 == !!this.SelectedDefinition.IsSlideUnder && 0 == !!this.SelectedDefinition.IsJumpOver && 0 == !!this.SelectedDefinition.IsStumble ? (this.DistanceSinceLastObstacleSlideJumpStumble = e.DistanceSinceLastObstacleSlideJumpStumble + t) : (this.DistanceSinceLastObstacleSlideJumpStumble = 0), 0 == !!this.SelectedDefinition.IsTurnLeft && 0 == !!this.SelectedDefinition.IsTurnRight ? (this.DistanceSinceLastTurnLeftOrRight = e.DistanceSinceLastTurnLeftOrRight + t) : (this.DistanceSinceLastTurnLeftOrRight = 0), 0 == this.SelectedDefinition.isAnyJunction() ? (this.DistanceSinceLastJunction = e.DistanceSinceLastJunction + t) : (this.DistanceSinceLastJunction = 0), 0 == this.SelectedDefinition.isMandatoryTurn() ? (this.DistanceSinceLastMandatoryTurn = e.DistanceSinceLastMandatoryTurn + t) : (this.DistanceSinceLastMandatoryTurn = 0), 0 == !!this.SelectedDefinition.IsOptionalJunction && 0 == this.SelectedDefinition.isZoneTransition() ? (this.DistanceSinceLastOptionalTurn = e.DistanceSinceLastOptionalTurn + t) : (this.DistanceSinceLastOptionalTurn = 0), this.SelectedDefinition.IsZipLine ? (this.DistanceSinceLastZipline = 0) : (this.DistanceSinceLastZipline = e.DistanceSinceLastZipline + t), 0 == this.SelectedDefinition.isObstacle() ? (this.DistanceSinceLastObstacle = e.DistanceSinceLastObstacle + t) : ((this.DistanceSinceLastObstacle = 0), (this.BackToBackObstacleCount = 0)), this.SelectedDefinition.isZoneTransition() ? (this.DistanceSinceLastZoneChange = 0) : this.TrackZoneChangeDistance && (this.DistanceSinceLastZoneChange = e.DistanceSinceLastZoneChange + t), this.SelectedDefinition.isObstacle() && e.SelectedDefinition.isObstacle() && (this.BackToBackObstacleCount = e.BackToBackObstacleCount + 1); } updateItemDistanceStats() { const e = this.getEstimatedLength(); null != this.PreviousTrackPiece ? ((this.DistanceSinceLastBonusItem = this.PreviousTrackPiece.DistanceSinceLastBonusItem + e), (this.DistanceSinceLastCoinRun = this.PreviousTrackPiece.DistanceSinceLastCoinRun + e)) : ((this.DistanceSinceLastBonusItem = 0), (this.DistanceSinceLastCoinRun = 0)); } updateCoinStats(e, t) { e && null != this.PreviousTrackPiece && this.PreviousTrackPiece.CoinRunCoinCount < t && ((this.CoinRunCoinCount = this.PreviousTrackPiece.CoinRunCoinCount), (this.LastCoinPlacement = this.PreviousTrackPiece.LastCoinPlacement), (this.LastCoinPlacementHeight = this.PreviousTrackPiece.LastCoinPlacementHeight)); } updateStatsAfterItemsAdded(e, t, n) { e && (this.DistanceSinceLastBonusItem = 0), !t && null != this.PreviousTrackPiece && this.PreviousTrackPiece.CoinRunCoinCount > 0 && ((this.PreviousTrackPiece.DistanceSinceLastCoinRun = 0), (this.DistanceSinceLastCoinRun = this.getEstimatedLength()), (this.CoinRunCoinCount = 0), (this.LastCoinPlacement = x.None), (this.LastCoinPlacementHeight = n)); } dispose() { (this.NextTrackPieces = void 0), (this.PreviousTrackPiece = void 0), (this.Queue = void 0), (this.Pacing = void 0), (this.triggerAnimations = void 0), (this.coinsList = []); } }); (J.DefaultCoinPlacementHeight = 0.5), (J.BonusLedgeLeftRightAdjust = 0.375), u([d.jsonMember, h("design:type", f.AssetInfo)], J.prototype, "assetInfo", void 0), u([d.jsonMember, h("design:type", Q)], J.prototype, "trackInfo", void 0), (J = l = u([d.jsonObject], J)), (t.TrackPiece = J); }, function (e, t, n) { "use strict"; var i; n.d(t, "a", function () { return i; }), (function (e) { e[(e.STEP = 1)] = "STEP"; })(i || (i = {})); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(28), r = n(4), o = (function () { function e(e) { (this._vertexBuffers = {}), (this._scene = e); } return ( (e.prototype._prepareBuffers = function () { if (!this._vertexBuffers[r.b.PositionKind]) { var e = []; e.push(1, 1), e.push(-1, 1), e.push(-1, -1), e.push(1, -1), (this._vertexBuffers[r.b.PositionKind] = new r.b(this._scene.getEngine(), e, r.b.PositionKind, !1, !1, 2)), this._buildIndexBuffer(); } }), (e.prototype._buildIndexBuffer = function () { var e = []; e.push(0), e.push(1), e.push(2), e.push(0), e.push(2), e.push(3), (this._indexBuffer = this._scene.getEngine().createIndexBuffer(e)); }), (e.prototype._rebuild = function () { var e = this._vertexBuffers[r.b.PositionKind]; e && (e._rebuild(), this._buildIndexBuffer()); }), (e.prototype._prepareFrame = function (e, t) { void 0 === e && (e = null), void 0 === t && (t = null); var n = this._scene.activeCamera; return ( !!n && !( !(t = t || n._postProcesses.filter(function (e) { return null != e; })) || 0 === t.length || !this._scene.postProcessesEnabled ) && (t[0].activate(n, e, null != t), !0) ); }), (e.prototype.directRender = function (e, t, n, r, o) { void 0 === t && (t = null), void 0 === n && (n = !1), void 0 === r && (r = 0), void 0 === o && (o = 0); for (var a = this._scene.getEngine(), s = 0; s < e.length; s++) { s < e.length - 1 ? e[s + 1].activate(this._scene.activeCamera, t) : t ? a.bindFramebuffer(t, r, void 0, void 0, n, o) : a.restoreDefaultFramebuffer(); var c = e[s], l = c.apply(); l && (c.onBeforeRenderObservable.notifyObservers(l), this._prepareBuffers(), a.bindBuffers(this._vertexBuffers, this._indexBuffer, l), a.drawElementsType(i.a.TriangleFillMode, 0, 6), c.onAfterRenderObservable.notifyObservers(l)); } a.setDepthBuffer(!0), a.setDepthWrite(!0); }), (e.prototype._finalizeFrame = function (e, t, n, r, o) { void 0 === o && (o = !1); var a = this._scene.activeCamera; if ( a && 0 !== (r = r || a._postProcesses.filter(function (e) { return null != e; })).length && this._scene.postProcessesEnabled ) { for (var s = this._scene.getEngine(), c = 0, l = r.length; c < l; c++) { var u = r[c]; if ((c < l - 1 ? (u._outputTexture = r[c + 1].activate(a, t)) : t ? (s.bindFramebuffer(t, n, void 0, void 0, o), (u._outputTexture = t)) : (s.restoreDefaultFramebuffer(), (u._outputTexture = null)), e)) break; var h = u.apply(); h && (u.onBeforeRenderObservable.notifyObservers(h), this._prepareBuffers(), s.bindBuffers(this._vertexBuffers, this._indexBuffer, h), s.drawElementsType(i.a.TriangleFillMode, 0, 6), u.onAfterRenderObservable.notifyObservers(h)); } s.setDepthBuffer(!0), s.setDepthWrite(!0), s.setAlphaMode(0); } }), (e.prototype.dispose = function () { var e = this._vertexBuffers[r.b.PositionKind]; e && (e.dispose(), (this._vertexBuffers[r.b.PositionKind] = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }), n.d(t, "b", function () { return o; }); var i = n(189), r = function () {}, o = (function () { function e(t) { (this._useSceneAutoClearSetup = !1), (this._renderingGroups = new Array()), (this._autoClearDepthStencil = {}), (this._customOpaqueSortCompareFn = {}), (this._customAlphaTestSortCompareFn = {}), (this._customTransparentSortCompareFn = {}), (this._renderingGroupInfo = new r()), (this._scene = t); for (var n = e.MIN_RENDERINGGROUPS; n < e.MAX_RENDERINGGROUPS; n++) this._autoClearDepthStencil[n] = { autoClear: !0, depth: !0, stencil: !0 }; } return ( (e.prototype._clearDepthStencilBuffer = function (e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0), this._depthStencilBufferAlreadyCleaned || (this._scene.getEngine().clear(null, !1, e, t), (this._depthStencilBufferAlreadyCleaned = !0)); }), (e.prototype.render = function (t, n, i, r) { var o = this._renderingGroupInfo; if (((o.scene = this._scene), (o.camera = this._scene.activeCamera), this._scene.spriteManagers && r)) for (var a = 0; a < this._scene.spriteManagers.length; a++) { var s = this._scene.spriteManagers[a]; this.dispatchSprites(s); } for (a = e.MIN_RENDERINGGROUPS; a < e.MAX_RENDERINGGROUPS; a++) { this._depthStencilBufferAlreadyCleaned = a === e.MIN_RENDERINGGROUPS; var c = this._renderingGroups[a]; if (c) { var l = Math.pow(2, a); if (((o.renderingGroupId = a), this._scene.onBeforeRenderingGroupObservable.notifyObservers(o, l), e.AUTOCLEAR)) { var u = this._useSceneAutoClearSetup ? this._scene.getAutoClearDepthStencilSetup(a) : this._autoClearDepthStencil[a]; u && u.autoClear && this._clearDepthStencilBuffer(u.depth, u.stencil); } for (var h = 0, d = this._scene._beforeRenderingGroupDrawStage; h < d.length; h++) { d[h].action(a); } c.render(t, r, i, n); for (var p = 0, f = this._scene._afterRenderingGroupDrawStage; p < f.length; p++) { f[p].action(a); } this._scene.onAfterRenderingGroupObservable.notifyObservers(o, l); } } }), (e.prototype.reset = function () { for (var t = e.MIN_RENDERINGGROUPS; t < e.MAX_RENDERINGGROUPS; t++) { var n = this._renderingGroups[t]; n && n.prepare(); } }), (e.prototype.dispose = function () { this.freeRenderingGroups(), (this._renderingGroups.length = 0), (this._renderingGroupInfo = null); }), (e.prototype.freeRenderingGroups = function () { for (var t = e.MIN_RENDERINGGROUPS; t < e.MAX_RENDERINGGROUPS; t++) { var n = this._renderingGroups[t]; n && n.dispose(); } }), (e.prototype._prepareRenderingGroup = function (e) { void 0 === this._renderingGroups[e] && (this._renderingGroups[e] = new i.a(e, this._scene, this._customOpaqueSortCompareFn[e], this._customAlphaTestSortCompareFn[e], this._customTransparentSortCompareFn[e])); }), (e.prototype.dispatchSprites = function (e) { var t = e.renderingGroupId || 0; this._prepareRenderingGroup(t), this._renderingGroups[t].dispatchSprites(e); }), (e.prototype.dispatchParticles = function (e) { var t = e.renderingGroupId || 0; this._prepareRenderingGroup(t), this._renderingGroups[t].dispatchParticles(e); }), (e.prototype.dispatch = function (e, t, n) { void 0 === t && (t = e.getMesh()); var i = t.renderingGroupId || 0; this._prepareRenderingGroup(i), this._renderingGroups[i].dispatch(e, t, n); }), (e.prototype.setRenderingOrder = function (e, t, n, i) { if ( (void 0 === t && (t = null), void 0 === n && (n = null), void 0 === i && (i = null), (this._customOpaqueSortCompareFn[e] = t), (this._customAlphaTestSortCompareFn[e] = n), (this._customTransparentSortCompareFn[e] = i), this._renderingGroups[e]) ) { var r = this._renderingGroups[e]; (r.opaqueSortCompareFn = this._customOpaqueSortCompareFn[e]), (r.alphaTestSortCompareFn = this._customAlphaTestSortCompareFn[e]), (r.transparentSortCompareFn = this._customTransparentSortCompareFn[e]); } }), (e.prototype.setRenderingAutoClearDepthStencil = function (e, t, n, i) { void 0 === n && (n = !0), void 0 === i && (i = !0), (this._autoClearDepthStencil[e] = { autoClear: t, depth: n, stencil: i }); }), (e.prototype.getAutoClearDepthStencilSetup = function (e) { return this._autoClearDepthStencil[e]; }), (e.MAX_RENDERINGGROUPS = 4), (e.MIN_RENDERINGGROUPS = 0), (e.AUTOCLEAR = !0), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(12), r = n(6), o = n(1), a = n(14), s = n(10), c = n(22), l = (function () { function e(t, n, c, l, u) { var h = this; if ( (void 0 === l && (l = null), (this.autoplay = !1), (this.loop = !1), (this.useCustomAttenuation = !1), (this.isPlaying = !1), (this.isPaused = !1), (this.spatialSound = !1), (this.refDistance = 1), (this.rolloffFactor = 1), (this.maxDistance = 100), (this.distanceModel = "linear"), (this.onEndedObservable = new r.c()), (this._panningModel = "equalpower"), (this._playbackRate = 1), (this._streaming = !1), (this._startTime = 0), (this._startOffset = 0), (this._position = o.e.Zero()), (this._positionInEmitterSpace = !1), (this._localDirection = new o.e(1, 0, 0)), (this._volume = 1), (this._isReadyToPlay = !1), (this._isDirectional = !1), (this._coneInnerAngle = 360), (this._coneOuterAngle = 360), (this._coneOuterGain = 0), (this._isOutputConnected = !1), (this._urlType = "Unknown"), (this.name = t), (this._scene = c), e._SceneComponentInitialization(c), (this._readyToPlayCallback = l), (this._customAttenuationFunction = function (e, t, n, i, r) { return t < n ? e * (1 - t / n) : 0; }), u && ((this.autoplay = u.autoplay || !1), (this.loop = u.loop || !1), void 0 !== u.volume && (this._volume = u.volume), (this.spatialSound = u.spatialSound || !1), (this.maxDistance = u.maxDistance || 100), (this.useCustomAttenuation = u.useCustomAttenuation || !1), (this.rolloffFactor = u.rolloffFactor || 1), (this.refDistance = u.refDistance || 1), (this.distanceModel = u.distanceModel || "linear"), (this._playbackRate = u.playbackRate || 1), (this._streaming = u.streaming || !1), (this._length = u.length), (this._offset = u.offset)), a.a.audioEngine.canUseWebAudio && a.a.audioEngine.audioContext) ) { (this._soundGain = a.a.audioEngine.audioContext.createGain()), (this._soundGain.gain.value = this._volume), (this._inputAudioNode = this._soundGain), (this._outputAudioNode = this._soundGain), this.spatialSound && this._createSpatialParameters(), this._scene.mainSoundTrack.AddSound(this); var d = !0; if (n) try { "string" == typeof n ? (this._urlType = "String") : n instanceof ArrayBuffer ? (this._urlType = "ArrayBuffer") : n instanceof MediaStream ? (this._urlType = "MediaStream") : Array.isArray(n) && (this._urlType = "Array"); var p = [], f = !1; switch (this._urlType) { case "MediaStream": (this._streaming = !0), (this._isReadyToPlay = !0), (this._streamingSource = a.a.audioEngine.audioContext.createMediaStreamSource(n)), this.autoplay && this.play(0, this._offset, this._length), this._readyToPlayCallback && this._readyToPlayCallback(); break; case "ArrayBuffer": n.byteLength > 0 && ((f = !0), this._soundLoaded(n)); break; case "String": p.push(n); case "Array": 0 === p.length && (p = n); for (var m = 0; m < p.length; m++) { var g = p[m]; if ( (f = (u && u.skipCodecCheck) || (-1 !== g.indexOf(".mp3", g.length - 4) && a.a.audioEngine.isMP3supported) || (-1 !== g.indexOf(".ogg", g.length - 4) && a.a.audioEngine.isOGGsupported) || -1 !== g.indexOf(".wav", g.length - 4) || -1 !== g.indexOf("blob:")) ) { this._streaming ? ((this._htmlAudioElement = new Audio(g)), (this._htmlAudioElement.controls = !1), (this._htmlAudioElement.loop = this.loop), i.b.SetCorsBehavior(g, this._htmlAudioElement), (this._htmlAudioElement.preload = "auto"), this._htmlAudioElement.addEventListener("canplaythrough", function () { (h._isReadyToPlay = !0), h.autoplay && h.play(0, h._offset, h._length), h._readyToPlayCallback && h._readyToPlayCallback(); }), document.body.appendChild(this._htmlAudioElement), this._htmlAudioElement.load()) : this._scene._loadFile( g, function (e) { h._soundLoaded(e); }, void 0, !0, !0, function (e) { e && s.a.Error("XHR " + e.status + " error on: " + g + "."), s.a.Error("Sound creation aborted."), h._scene.mainSoundTrack.RemoveSound(h); } ); break; } } break; default: d = !1; } d ? f || ((this._isReadyToPlay = !0), this._readyToPlayCallback && window.setTimeout(function () { h._readyToPlayCallback && h._readyToPlayCallback(); }, 1e3)) : s.a.Error("Parameter must be a URL to the sound, an Array of URLs (.mp3 & .ogg) or an ArrayBuffer of the sound."); } catch (e) { s.a.Error("Unexpected error. Sound creation aborted."), this._scene.mainSoundTrack.RemoveSound(this); } } else this._scene.mainSoundTrack.AddSound(this), a.a.audioEngine.WarnedWebAudioUnsupported || (s.a.Error("Web Audio is not supported by your browser."), (a.a.audioEngine.WarnedWebAudioUnsupported = !0)), this._readyToPlayCallback && window.setTimeout(function () { h._readyToPlayCallback && h._readyToPlayCallback(); }, 1e3); } return ( (e.prototype.dispose = function () { a.a.audioEngine.canUseWebAudio && (this.isPlaying && this.stop(), (this._isReadyToPlay = !1), -1 === this.soundTrackId ? this._scene.mainSoundTrack.RemoveSound(this) : this._scene.soundTracks && this._scene.soundTracks[this.soundTrackId].RemoveSound(this), this._soundGain && (this._soundGain.disconnect(), (this._soundGain = null)), this._soundPanner && (this._soundPanner.disconnect(), (this._soundPanner = null)), this._soundSource && (this._soundSource.disconnect(), (this._soundSource = null)), (this._audioBuffer = null), this._htmlAudioElement && (this._htmlAudioElement.pause(), (this._htmlAudioElement.src = ""), document.body.removeChild(this._htmlAudioElement)), this._streamingSource && this._streamingSource.disconnect(), this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), (this._connectedTransformNode = null))); }), (e.prototype.isReady = function () { return this._isReadyToPlay; }), (e.prototype._soundLoaded = function (e) { var t = this; a.a.audioEngine.audioContext && a.a.audioEngine.audioContext.decodeAudioData( e, function (e) { (t._audioBuffer = e), (t._isReadyToPlay = !0), t.autoplay && t.play(0, t._offset, t._length), t._readyToPlayCallback && t._readyToPlayCallback(); }, function (e) { s.a.Error("Error while decoding audio data for: " + t.name + " / Error: " + e); } ); }), (e.prototype.setAudioBuffer = function (e) { a.a.audioEngine.canUseWebAudio && ((this._audioBuffer = e), (this._isReadyToPlay = !0)); }), (e.prototype.updateOptions = function (e) { e && ((this.loop = e.loop || this.loop), (this.maxDistance = e.maxDistance || this.maxDistance), (this.useCustomAttenuation = e.useCustomAttenuation || this.useCustomAttenuation), (this.rolloffFactor = e.rolloffFactor || this.rolloffFactor), (this.refDistance = e.refDistance || this.refDistance), (this.distanceModel = e.distanceModel || this.distanceModel), (this._playbackRate = e.playbackRate || this._playbackRate), (this._length = e.length ? e.length / 1e3 : void 0), (this._offset = e.offset ? e.offset / 1e3 : void 0), this._updateSpatialParameters(), this.isPlaying && (this._streaming && this._htmlAudioElement ? (this._htmlAudioElement.playbackRate = this._playbackRate) : this._soundSource && (this._soundSource.playbackRate.value = this._playbackRate))); }), (e.prototype._createSpatialParameters = function () { a.a.audioEngine.canUseWebAudio && a.a.audioEngine.audioContext && (this._scene.headphone && (this._panningModel = "HRTF"), (this._soundPanner = a.a.audioEngine.audioContext.createPanner()), this._updateSpatialParameters(), this._soundPanner.connect(this._outputAudioNode), (this._inputAudioNode = this._soundPanner)); }), (e.prototype._updateSpatialParameters = function () { this.spatialSound && this._soundPanner && (this.useCustomAttenuation ? ((this._soundPanner.distanceModel = "linear"), (this._soundPanner.maxDistance = Number.MAX_VALUE), (this._soundPanner.refDistance = 1), (this._soundPanner.rolloffFactor = 1), (this._soundPanner.panningModel = this._panningModel)) : ((this._soundPanner.distanceModel = this.distanceModel), (this._soundPanner.maxDistance = this.maxDistance), (this._soundPanner.refDistance = this.refDistance), (this._soundPanner.rolloffFactor = this.rolloffFactor), (this._soundPanner.panningModel = this._panningModel))); }), (e.prototype.switchPanningModelToHRTF = function () { (this._panningModel = "HRTF"), this._switchPanningModel(); }), (e.prototype.switchPanningModelToEqualPower = function () { (this._panningModel = "equalpower"), this._switchPanningModel(); }), (e.prototype._switchPanningModel = function () { a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && (this._soundPanner.panningModel = this._panningModel); }), (e.prototype.connectToSoundTrackAudioNode = function (e) { a.a.audioEngine.canUseWebAudio && (this._isOutputConnected && this._outputAudioNode.disconnect(), this._outputAudioNode.connect(e), (this._isOutputConnected = !0)); }), (e.prototype.setDirectionalCone = function (e, t, n) { t < e ? s.a.Error("setDirectionalCone(): outer angle of the cone must be superior or equal to the inner angle.") : ((this._coneInnerAngle = e), (this._coneOuterAngle = t), (this._coneOuterGain = n), (this._isDirectional = !0), this.isPlaying && this.loop && (this.stop(), this.play(0, this._offset, this._length))); }), Object.defineProperty(e.prototype, "directionalConeInnerAngle", { get: function () { return this._coneInnerAngle; }, set: function (e) { if (e != this._coneInnerAngle) { if (this._coneOuterAngle < e) return void s.a.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle."); (this._coneInnerAngle = e), a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && (this._soundPanner.coneInnerAngle = this._coneInnerAngle); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "directionalConeOuterAngle", { get: function () { return this._coneOuterAngle; }, set: function (e) { if (e != this._coneOuterAngle) { if (e < this._coneInnerAngle) return void s.a.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle."); (this._coneOuterAngle = e), a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && (this._soundPanner.coneOuterAngle = this._coneOuterAngle); } }, enumerable: !0, configurable: !0, }), (e.prototype.setPosition = function (e) { (this._position = e), a.a.audioEngine.canUseWebAudio && this.spatialSound && this._soundPanner && !isNaN(this._position.x) && !isNaN(this._position.y) && !isNaN(this._position.z) && this._soundPanner.setPosition(this._position.x, this._position.y, this._position.z); }), (e.prototype.setLocalDirectionToMesh = function (e) { (this._localDirection = e), a.a.audioEngine.canUseWebAudio && this._connectedTransformNode && this.isPlaying && this._updateDirection(); }), (e.prototype._updateDirection = function () { if (this._connectedTransformNode && this._soundPanner) { var e = this._connectedTransformNode.getWorldMatrix(), t = o.e.TransformNormal(this._localDirection, e); t.normalize(), this._soundPanner.setOrientation(t.x, t.y, t.z); } }), (e.prototype.updateDistanceFromListener = function () { if (a.a.audioEngine.canUseWebAudio && this._connectedTransformNode && this.useCustomAttenuation && this._soundGain && this._scene.activeCamera) { var e = this._connectedTransformNode.getDistanceToCamera(this._scene.activeCamera); this._soundGain.gain.value = this._customAttenuationFunction(this._volume, e, this.maxDistance, this.refDistance, this.rolloffFactor); } }), (e.prototype.setAttenuationFunction = function (e) { this._customAttenuationFunction = e; }), (e.prototype.play = function (e, t, n) { var i = this; if (this._isReadyToPlay && this._scene.audioEnabled && a.a.audioEngine.audioContext) try { this._startOffset < 0 && ((e = -this._startOffset), (this._startOffset = 0)); var r = e ? a.a.audioEngine.audioContext.currentTime + e : a.a.audioEngine.audioContext.currentTime; if ( ((this._soundSource && this._streamingSource) || (this.spatialSound && this._soundPanner && (isNaN(this._position.x) || isNaN(this._position.y) || isNaN(this._position.z) || this._soundPanner.setPosition(this._position.x, this._position.y, this._position.z), this._isDirectional && ((this._soundPanner.coneInnerAngle = this._coneInnerAngle), (this._soundPanner.coneOuterAngle = this._coneOuterAngle), (this._soundPanner.coneOuterGain = this._coneOuterGain), this._connectedTransformNode ? this._updateDirection() : this._soundPanner.setOrientation(this._localDirection.x, this._localDirection.y, this._localDirection.z)))), this._streaming) ) { if ( (this._streamingSource || ((this._streamingSource = a.a.audioEngine.audioContext.createMediaElementSource(this._htmlAudioElement)), (this._htmlAudioElement.onended = function () { i._onended(); }), (this._htmlAudioElement.playbackRate = this._playbackRate)), this._streamingSource.disconnect(), this._streamingSource.connect(this._inputAudioNode), this._htmlAudioElement) ) (o = function () { if (a.a.audioEngine.unlocked) { var e = i._htmlAudioElement.play(); void 0 !== e && e.catch(function (e) { a.a.audioEngine.lock(), (i.loop || i.autoplay) && a.a.audioEngine.onAudioUnlockedObservable.addOnce(function () { o(); }); }); } else (i.loop || i.autoplay) && a.a.audioEngine.onAudioUnlockedObservable.addOnce(function () { o(); }); })(); } else { var o = function () { if (a.a.audioEngine.audioContext) { (n = n || i._length), (t = t || i._offset), (i._soundSource = a.a.audioEngine.audioContext.createBufferSource()), (i._soundSource.buffer = i._audioBuffer), i._soundSource.connect(i._inputAudioNode), (i._soundSource.loop = i.loop), void 0 !== t && (i._soundSource.loopStart = t), void 0 !== n && (i._soundSource.loopEnd = (0 | t) + n), (i._soundSource.playbackRate.value = i._playbackRate), (i._soundSource.onended = function () { i._onended(); }), (r = e ? a.a.audioEngine.audioContext.currentTime + e : a.a.audioEngine.audioContext.currentTime); var o = i.isPaused ? i._startOffset % i._soundSource.buffer.duration : t || 0; i._soundSource.start(r, o, i.loop ? void 0 : n); } }; "suspended" === a.a.audioEngine.audioContext.state ? setTimeout(function () { "suspended" === a.a.audioEngine.audioContext.state ? (a.a.audioEngine.lock(), (i.loop || i.autoplay) && a.a.audioEngine.onAudioUnlockedObservable.addOnce(function () { o(); })) : o(); }, 500) : o(); } (this._startTime = r), (this.isPlaying = !0), (this.isPaused = !1); } catch (e) { s.a.Error("Error while trying to play audio: " + this.name + ", " + e.message); } }), (e.prototype._onended = function () { (this.isPlaying = !1), this.onended && this.onended(), this.onEndedObservable.notifyObservers(this); }), (e.prototype.stop = function (e) { var t = this; if (this.isPlaying) if (this._streaming) this._htmlAudioElement ? (this._htmlAudioElement.pause(), this._htmlAudioElement.currentTime > 0 && (this._htmlAudioElement.currentTime = 0)) : this._streamingSource.disconnect(), (this.isPlaying = !1); else if (a.a.audioEngine.audioContext && this._soundSource) { var n = e ? a.a.audioEngine.audioContext.currentTime + e : a.a.audioEngine.audioContext.currentTime; this._soundSource.stop(n), (this._soundSource.onended = function () { t.isPlaying = !1; }), this.isPaused || (this._startOffset = 0); } }), (e.prototype.pause = function () { this.isPlaying && ((this.isPaused = !0), this._streaming ? this._htmlAudioElement ? this._htmlAudioElement.pause() : this._streamingSource.disconnect() : a.a.audioEngine.audioContext && (this.stop(0), (this._startOffset += a.a.audioEngine.audioContext.currentTime - this._startTime))); }), (e.prototype.setVolume = function (e, t) { a.a.audioEngine.canUseWebAudio && this._soundGain && (t && a.a.audioEngine.audioContext ? (this._soundGain.gain.cancelScheduledValues(a.a.audioEngine.audioContext.currentTime), this._soundGain.gain.setValueAtTime(this._soundGain.gain.value, a.a.audioEngine.audioContext.currentTime), this._soundGain.gain.linearRampToValueAtTime(e, a.a.audioEngine.audioContext.currentTime + t)) : (this._soundGain.gain.value = e)), (this._volume = e); }), (e.prototype.setPlaybackRate = function (e) { (this._playbackRate = e), this.isPlaying && (this._streaming && this._htmlAudioElement ? (this._htmlAudioElement.playbackRate = this._playbackRate) : this._soundSource && (this._soundSource.playbackRate.value = this._playbackRate)); }), (e.prototype.getVolume = function () { return this._volume; }), (e.prototype.attachToMesh = function (e) { var t = this; this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), (this._registerFunc = null)), (this._connectedTransformNode = e), this.spatialSound || ((this.spatialSound = !0), this._createSpatialParameters(), this.isPlaying && this.loop && (this.stop(), this.play(0, this._offset, this._length))), this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode), (this._registerFunc = function (e) { return t._onRegisterAfterWorldMatrixUpdate(e); }), this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc); }), (e.prototype.detachFromMesh = function () { this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), (this._registerFunc = null), (this._connectedTransformNode = null)); }), (e.prototype._onRegisterAfterWorldMatrixUpdate = function (e) { if (e.getBoundingInfo) { var t = e; if (this._positionInEmitterSpace) t.worldMatrixFromCache.invertToRef(o.c.Matrix[0]), this.setPosition(o.c.Matrix[0].getTranslation()); else { var n = t.getBoundingInfo(); this.setPosition(n.boundingSphere.centerWorld); } a.a.audioEngine.canUseWebAudio && this._isDirectional && this.isPlaying && this._updateDirection(); } }), (e.prototype.clone = function () { var t = this; if (this._streaming) return null; var n = function () { t._isReadyToPlay ? ((r._audioBuffer = t.getAudioBuffer()), (r._isReadyToPlay = !0), r.autoplay && r.play(0, t._offset, t._length)) : window.setTimeout(n, 300); }, i = { autoplay: this.autoplay, loop: this.loop, volume: this._volume, spatialSound: this.spatialSound, maxDistance: this.maxDistance, useCustomAttenuation: this.useCustomAttenuation, rolloffFactor: this.rolloffFactor, refDistance: this.refDistance, distanceModel: this.distanceModel, }, r = new e(this.name + "_cloned", new ArrayBuffer(0), this._scene, null, i); return this.useCustomAttenuation && r.setAttenuationFunction(this._customAttenuationFunction), r.setPosition(this._position), r.setPlaybackRate(this._playbackRate), n(), r; }), (e.prototype.getAudioBuffer = function () { return this._audioBuffer; }), (e.prototype.serialize = function () { var e = { name: this.name, url: this.name, autoplay: this.autoplay, loop: this.loop, volume: this._volume, spatialSound: this.spatialSound, maxDistance: this.maxDistance, rolloffFactor: this.rolloffFactor, refDistance: this.refDistance, distanceModel: this.distanceModel, playbackRate: this._playbackRate, panningModel: this._panningModel, soundTrackId: this.soundTrackId, }; return ( this.spatialSound && (this._connectedTransformNode && (e.connectedMeshId = this._connectedTransformNode.id), (e.position = this._position.asArray()), (e.refDistance = this.refDistance), (e.distanceModel = this.distanceModel), (e.isDirectional = this._isDirectional), (e.localDirectionToMesh = this._localDirection.asArray()), (e.coneInnerAngle = this._coneInnerAngle), (e.coneOuterAngle = this._coneOuterAngle), (e.coneOuterGain = this._coneOuterGain)), e ); }), (e.Parse = function (t, n, i, r) { var a, s = t.name; a = t.url ? i + t.url : i + s; var c, l = { autoplay: t.autoplay, loop: t.loop, volume: t.volume, spatialSound: t.spatialSound, maxDistance: t.maxDistance, rolloffFactor: t.rolloffFactor, refDistance: t.refDistance, distanceModel: t.distanceModel, playbackRate: t.playbackRate, }; if (r) { var u = function () { r._isReadyToPlay ? ((c._audioBuffer = r.getAudioBuffer()), (c._isReadyToPlay = !0), c.autoplay && c.play(0, c._offset, c._length)) : window.setTimeout(u, 300); }; (c = new e(s, new ArrayBuffer(0), n, null, l)), u(); } else (c = new e( s, a, n, function () { n._removePendingData(c); }, l )), n._addPendingData(c); if (t.position) { var h = o.e.FromArray(t.position); c.setPosition(h); } if (t.isDirectional && (c.setDirectionalCone(t.coneInnerAngle || 360, t.coneOuterAngle || 360, t.coneOuterGain || 0), t.localDirectionToMesh)) { var d = o.e.FromArray(t.localDirectionToMesh); c.setLocalDirectionToMesh(d); } if (t.connectedMeshId) { var p = n.getMeshByID(t.connectedMeshId); p && c.attachToMesh(p); } return c; }), (e._SceneComponentInitialization = function (e) { throw c.a.WarnImport("AudioSceneComponent"); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { var e = this; this.promise = new Promise(function (t, n) { (e._resolve = t), (e._reject = n); }); } return ( Object.defineProperty(e.prototype, "resolve", { get: function () { return this._resolve; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "reject", { get: function () { return this._reject; }, enumerable: !0, configurable: !0, }), e ); })(); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.SoundController = t.MusicID = t.TrackSoundID = t.SoundID = t.SoundModel = void 0); const i = n(40), r = n(62), o = n(29), a = n(19); class s { static fromJson(e) { return Object.assign(new s(), e); } getOffset() { return this.start; } getLength() { return this.end - this.start; } } var c, l, u; (t.SoundModel = s), (function (e) { (e[(e.BonusMeterFull = 0)] = "BonusMeterFull"), (e[(e.BonusPickup = 1)] = "BonusPickup"), (e[(e.BoostLoop = 2)] = "BoostLoop"), (e[(e.ButtonClick = 3)] = "ButtonClick"), (e[(e.CashRegister = 4)] = "CashRegister"), (e[(e.ChestOpen = 5)] = "ChestOpen"), (e[(e.ChestDropin = 6)] = "ChestDropin"), (e[(e.ChestLeave = 7)] = "ChestLeave"), (e[(e.ChestScreenOpen = 8)] = "ChestScreenOpen"), (e[(e.Coin = 9)] = "Coin"), (e[(e.MineCartTurn = 10)] = "MineCartTurn"), (e[(e.MineCartTilt = 11)] = "MineCartTilt"), (e[(e.MineCartLoop = 12)] = "MineCartLoop"), (e[(e.Magnet = 13)] = "Magnet"), (e[(e.MonkeyRoar = 14)] = "MonkeyRoar"), (e[(e.ShieldLoop = 15)] = "ShieldLoop"), (e[(e.ShieldPop = 16)] = "ShieldPop"), (e[(e.Slide = 17)] = "Slide"), (e[(e.Splash = 18)] = "Splash"), (e[(e.Swish = 19)] = "Swish"), (e[(e.Wooosh = 20)] = "Wooosh"), (e[(e.SplashEntry = 21)] = "SplashEntry"), (e[(e.GruntTrip = 22)] = "GruntTrip"), (e[(e.GruntJump = 23)] = "GruntJump"), (e[(e.GruntJumpLand = 24)] = "GruntJumpLand"), (e[(e.Splat = 25)] = "Splat"), (e[(e.Scream = 26)] = "Scream"), (e[(e.Woohoo = 27)] = "Woohoo"), (e[(e.PillarCrash = 28)] = "PillarCrash"), (e[(e.PillarFall = 29)] = "PillarFall"), (e[(e.Sizzle = 30)] = "Sizzle"); })((c = t.SoundID || (t.SoundID = {}))), (function (e) { (e[(e.WaterLoopC = 0)] = "WaterLoopC"), (e[(e.SkySummitPlank = 1)] = "SkySummitPlank"), (e[(e.SpinningSpikeTrap = 2)] = "SpinningSpikeTrap"), (e[(e.FlameTrap = 3)] = "FlameTrap"), (e[(e.SawBlade = 4)] = "SawBlade"); })((l = t.TrackSoundID || (t.TrackSoundID = {}))), (function (e) { (e[(e.None = -1)] = "None"), (e[(e.NightMusic = 0)] = "NightMusic"), (e[(e.Game = 1)] = "Game"); })((u = t.MusicID || (t.MusicID = {}))); t.SoundController = class { constructor(e) { (this._baseSoundURL = "assets/sounds/sfx/"), (this._baseMusicURL = "assets/sounds/music/"), (this._soundMuted = !1), (this._musicMuted = !1), (this._isInitialized = !1), (this._soundsToLoadCount = 0), (this._soundsLoadedCount = 0), (this._scene = e); } initialize() { (this._currentMusicState = u.None), (this._loopedSoundPlaying = new Map()), (this._audioSprite = new Map()), (this._trackAudioSprite = new Map()), (this._trackPieceSound = new Array()), (this._sfxVolume = i.GameController.instance.gameState.flagsData.soundVolume / 100), (this._musicVolume = i.GameController.instance.gameState.flagsData.musicVolume / 100), (r.Engine.audioEngine.useCustomUnlockedButton = !0), r.Engine.audioEngine.lock(), (r.Engine.audioEngine.audioContext.onstatechange = () => {}), this._preloadMusic(), this._loadSFXSpriteJSON(), this._loadTrackSFXSpriteJSON(), this._loadSoundSpriteToBuffer(this._baseSoundURL + "sfx." + a.WebUtils.audioExtension), this._loadTrackSpriteToBuffer(this._baseSoundURL + "track_sfx." + a.WebUtils.audioExtension), o.EventHandler.instance.addListener(o.EventID.PlaySFX, this._playSFX.bind(this)), o.EventHandler.instance.addListener(o.EventID.PlaySFXLoop, this._playSFXLoop.bind(this)), o.EventHandler.instance.addListener(o.EventID.PlaySFXDelay, this._playSFXWithDelay.bind(this)), o.EventHandler.instance.addListener(o.EventID.StopSFX, this._stopSFX.bind(this)), o.EventHandler.instance.addListener(o.EventID.PlayMusic, this._playMusic.bind(this)), o.EventHandler.instance.addListener(o.EventID.StopMusic, this._stopMusic.bind(this)), o.EventHandler.instance.addListener(o.EventID.OnPlayGame, this._onPlayGame.bind(this)), o.EventHandler.instance.addListener(o.EventID.OnPlayerDeath, this._onPlayerDeath.bind(this)), o.EventHandler.instance.addListener(o.EventID.MusicVolumeChange, this._setMusicVolume.bind(this)), o.EventHandler.instance.addListener(o.EventID.SoundVolumeChange, this._setSoundSFXVolume.bind(this)), o.EventHandler.instance.addListener(o.EventID.MuteAll, this._muteAll.bind(this)), o.EventHandler.instance.addListener(o.EventID.UnmuteAll, this._unmuteAll.bind(this)), o.EventHandler.instance.addListener(o.EventID.OnFirstUserInput, this._startInitialMusic.bind(this)); } preUpdate() {} postUpdate() {} pause() { this._muteAll(); } resume() { this._unmuteAll(); } reset() { 0 == i.GameController.instance.tutorial.shouldRestartTutorial && 0 == i.GameController.instance.isRestarting ? this._startAll() : this._unmuteAll(); } _checkAudioContext(e) { try { const t = r.Engine.audioEngine.audioContext; t ? t .resume() .then(() => { null != e && e(); }) .catch((t) => { null != e && e(); }) : null != e && e(); } catch (t) { null != e && e(); } } _onAudioLoaded() { this._soundsLoadedCount++, this._soundsLoadedCount < this._soundsToLoadCount || this._checkAudioContext(() => { this._startInitialMusic(); }); } _startInitialMusic() { this._soundsLoadedCount < 3 || (0 == this._isInitialized && (r.Engine.audioEngine.unlock(), "running" != r.Engine.audioEngine.audioContext.state && r.Engine.audioEngine.audioContext.resume(), (this._isInitialized = !0), this._startAll())); } _onPlayGame() { 0 == this._isInitialized && (r.Engine.audioEngine.unlock(), (this._isInitialized = !0)), this._startAll(); } _onPlayerDeath() { this._muteAll(); } _stopAll() { this._isInitialized && (this._unmuteAll(), this._gameMusic.isPlaying && this._gameMusic.stop(0), this._uiMusic.isPlaying && this._uiMusic.stop(0), this._loopedSoundPlaying.forEach((e) => { e.isPlaying && e.stop(0); }), this._trackPieceSound.forEach((e) => { e.isPlaying && e.stop(0); })); } _startAll() { this._unmuteAll(), this._stopAll(), setTimeout(() => { i.GameController.instance.isGameStarted ? this._playMusic(u.Game) : this._playMusic(u.NightMusic); }, 200); } _playSFX(e) { if (this._isInitialized) { const t = this._audioSprite.get(c[e]).getOffset(), n = this._audioSprite.get(c[e]).getLength(); this._masterSound.setVolume(this._sfxVolume), this._masterSound.updateOptions({ spatialSound: !1 }), this._masterSound.play(0, t, n); } } _playSFXLoop(e) { if (this._isInitialized && !this._loopedSoundPlaying.has(e)) { const t = this._audioSprite.get(c[e]).getOffset(), n = this._audioSprite.get(c[e]).getLength(), i = this._masterSound.clone(); i.setVolume(this._sfxVolume), (i.loop = !0), this._loopedSoundPlaying.set(e, i), this._masterSound.updateOptions({ spatialSound: !1 }), i.play(0, t, n); } } _playSFXWithDelay(e) { const t = e.delay, n = e.id; setTimeout(() => { this._playSFX(n); }, t); } _getTrackPieceSound() { const e = this._masterTrackSound.clone(); return e.setVolume(this._sfxVolume), this._trackPieceSound.push(e), e; } _preloadMusic() { this._loadAudioBuffer(this._baseMusicURL + "NightMusic." + a.WebUtils.audioExtension, (e) => { (this._uiMusic = new r.Sound("UI", e, this._scene, null, { loop: !0 })), setTimeout(() => this._onAudioLoaded(), 200); }), this._loadAudioBuffer(this._baseMusicURL + "Game." + a.WebUtils.audioExtension, (e) => { (this._gameMusic = new r.Sound("Game", e, this._scene, null, { loop: !0 })), setTimeout(() => this._onAudioLoaded(), 200); }); } _loadSFXSpriteJSON() { const e = n(290); for (const t in e) this._audioSprite.set(t, s.fromJson(e[t])); } _loadTrackSFXSpriteJSON() { const e = n(291); for (const t in e) this._trackAudioSprite.set(t, s.fromJson(e[t])); } _loadSoundSpriteToBuffer(e) { this._loadAudioBuffer(e, (e) => { (this._masterSound = new r.Sound("master", e, this._scene)), setTimeout(() => this._onAudioLoaded(), 200); }); } _loadTrackSpriteToBuffer(e) { this._loadAudioBuffer(e, (e) => { (this._masterTrackSound = new r.Sound("Trackmaster", e, this._scene, null, { spatialSound: !0 })), setTimeout(() => this._onAudioLoaded(), 200); }); } _loadAudioBuffer(e, t) { this._soundsToLoadCount++; const n = new XMLHttpRequest(); n.open("GET", e, !0), (n.responseType = "arraybuffer"), (n.onreadystatechange = () => { 4 == n.readyState && 200 == n.status && t(n.response); }), n.send(null); } _playMusic(e) { this._isInitialized && ((this._currentMusicState = e), this._gameMusic.isPlaying && this._gameMusic.stop(0), this._uiMusic.isPlaying && this._uiMusic.stop(0), e == u.NightMusic ? (this._uiMusic.play(0), this._uiMusic.setVolume(this._musicVolume)) : e == u.Game && (this._gameMusic.play(0), this._gameMusic.setVolume(this._musicVolume))); } _stopSFX(e) { if (this._isInitialized && this._loopedSoundPlaying.has(e)) { const t = this._loopedSoundPlaying.get(e); t.isPlaying && t.stop(0), this._loopedSoundPlaying.delete(e); } } _stopMusic(e) { this._isInitialized && (e == u.Game ? this._gameMusic.isPlaying && this._gameMusic.stop(0) : e == u.NightMusic && this._uiMusic.isPlaying && this._uiMusic.stop(0)); } _setSoundSFXVolume(e) { this._isInitialized && ((this._sfxVolume = e / 100), this._loopedSoundPlaying.forEach((e) => { e.setVolume(this._sfxVolume); })); } _setMusicVolume(e) { this._isInitialized && ((this._musicVolume = e / 100), this._currentMusicState == u.Game ? this._gameMusic.setVolume(this._musicVolume) : this._currentMusicState == u.NightMusic && this._uiMusic.setVolume(this._musicVolume)); } _muteAll() { !this._isInitialized || this._musicMuted || this._soundMuted || (this._muteSoundSFX(), this._muteMusic()); } _unmuteAll() { this._isInitialized && (this._musicMuted || this._soundMuted) && (this._unmuteSoundSFX(), this._unmuteMusic()); } _muteSoundSFX() { this._isInitialized && 0 == this._soundMuted && ((this._soundMuted = !0), (this._sfxVolumeBeforeMute = this._sfxVolume), (this._sfxVolume = 0), this._loopedSoundPlaying.forEach((e) => { e.setVolume(this._sfxVolume); }), this._trackPieceSound.forEach((e) => { e.setVolume(this._sfxVolume); })); } _muteMusic() { this._isInitialized && 0 == this._musicMuted && ((this._musicMuted = !0), (this._musicVolumeBeforeMute = this._musicVolume), (this._musicVolume = 0), this._gameMusic.setVolume(this._musicVolume), this._uiMusic.setVolume(this._musicVolume)); } _unmuteSoundSFX() { this._isInitialized && this._soundMuted && ((this._soundMuted = !1), (this._sfxVolume = this._sfxVolumeBeforeMute), this._loopedSoundPlaying.forEach((e) => { e.setVolume(this._sfxVolume); }), this._trackPieceSound.forEach((e) => { e.setVolume(this._sfxVolume); })); } _unmuteMusic() { this._isInitialized && this._musicMuted && ((this._musicMuted = !1), (this._musicVolume = this._musicVolumeBeforeMute), this._gameMusic.setVolume(this._musicVolume), this._uiMusic.setVolume(this._musicVolume)); } addSoundsToTrackPiece(e) { if (null == e.sound) { let t = 0; if ( (e.name.includes("curve_water") ? (t = l.WaterLoopC) : "forest_jump_over_a" == e.name || "run_between_a" == e.name ? (t = l.SpinningSpikeTrap) : e.name.includes("mine_duck_b") || "jump_over_b" == e.name ? (t = l.SawBlade) : (e.name.includes("jump_or_slide_a") || e.name.includes("forest_jump_over_b") || e.name.includes("narrow_jump_or_slide_a")) && (t = l.FlameTrap), 0 != t) ) { e.sound = this._getTrackPieceSound(); const n = this._trackAudioSprite.get(l[t]).getOffset(), i = this._trackAudioSprite.get(l[t]).getLength(); (e.soundLength = i), (e.soundOffset = n); } } } playCoinCollectedSFX(e) { if (this._isInitialized) { const t = c.Coin, n = this._audioSprite.get(c[t]).getOffset(), i = this._audioSprite.get(c[t]).getLength(), r = this._masterSound.clone(); r.setVolume(this._sfxVolume), r.setPlaybackRate(e), r.play(0, n, i); } } }; }, function (e, t, n) { "use strict"; var i = "imageProcessingDeclaration", r = "#ifdef EXPOSURE\nuniform float exposureLinear;\n#endif\n#ifdef CONTRAST\nuniform float contrast;\n#endif\n#ifdef VIGNETTE\nuniform vec2 vInverseScreenSize;\nuniform vec4 vignetteSettings1;\nuniform vec4 vignetteSettings2;\n#endif\n#ifdef COLORCURVES\nuniform vec4 vCameraColorCurveNegative;\nuniform vec4 vCameraColorCurveNeutral;\nuniform vec4 vCameraColorCurvePositive;\n#endif\n#ifdef COLORGRADING\n#ifdef COLORGRADING3D\nuniform highp sampler3D txColorTransform;\n#else\nuniform sampler2D txColorTransform;\n#endif\nuniform vec4 colorTransformSettings;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "imageProcessingFunctions", r = "#if defined(COLORGRADING) && !defined(COLORGRADING3D)\n\nvec3 sampleTexture3D(sampler2D colorTransform,vec3 color,vec2 sampler3dSetting)\n{\nfloat sliceSize=2.0*sampler3dSetting.x;\n#ifdef SAMPLER3DGREENDEPTH\nfloat sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;\n#else\nfloat sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;\n#endif\nfloat sliceInteger=floor(sliceContinuous);\n\n\nfloat sliceFraction=sliceContinuous-sliceInteger;\n#ifdef SAMPLER3DGREENDEPTH\nvec2 sliceUV=color.rb;\n#else\nvec2 sliceUV=color.rg;\n#endif\nsliceUV.x*=sliceSize;\nsliceUV.x+=sliceInteger*sliceSize;\nsliceUV=saturate(sliceUV);\nvec4 slice0Color=texture2D(colorTransform,sliceUV);\nsliceUV.x+=sliceSize;\nsliceUV=saturate(sliceUV);\nvec4 slice1Color=texture2D(colorTransform,sliceUV);\nvec3 result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);\n#ifdef SAMPLER3DBGRMAP\ncolor.rgb=result.rgb;\n#else\ncolor.rgb=result.bgr;\n#endif\nreturn color;\n}\n#endif\n#ifdef TONEMAPPING_ACES\n\n\n\n\n\nconst mat3 ACESInputMat=mat3(\nvec3(0.59719,0.07600,0.02840),\nvec3(0.35458,0.90834,0.13383),\nvec3(0.04823,0.01566,0.83777)\n);\n\nconst mat3 ACESOutputMat=mat3(\nvec3( 1.60475,-0.10208,-0.00327),\nvec3(-0.53108,1.10813,-0.07276),\nvec3(-0.07367,-0.00605,1.07602)\n);\nvec3 RRTAndODTFit(vec3 v)\n{\nvec3 a=v*(v+0.0245786)-0.000090537;\nvec3 b=v*(0.983729*v+0.4329510)+0.238081;\nreturn a/b;\n}\nvec3 ACESFitted(vec3 color)\n{\ncolor=ACESInputMat*color;\n\ncolor=RRTAndODTFit(color);\ncolor=ACESOutputMat*color;\n\ncolor=saturate(color);\nreturn color;\n}\n#endif\nvec4 applyImageProcessing(vec4 result) {\n#ifdef EXPOSURE\nresult.rgb*=exposureLinear;\n#endif\n#ifdef VIGNETTE\n\nvec2 viewportXY=gl_FragCoord.xy*vInverseScreenSize;\nviewportXY=viewportXY*2.0-1.0;\nvec3 vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);\nfloat vignetteTerm=dot(vignetteXY1,vignetteXY1);\nfloat vignette=pow(vignetteTerm,vignetteSettings2.w);\n\nvec3 vignetteColor=vignetteSettings2.rgb;\n#ifdef VIGNETTEBLENDMODEMULTIPLY\nvec3 vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);\nresult.rgb*=vignetteColorMultiplier;\n#endif\n#ifdef VIGNETTEBLENDMODEOPAQUE\nresult.rgb=mix(vignetteColor,result.rgb,vignette);\n#endif\n#endif\n#ifdef TONEMAPPING\n#ifdef TONEMAPPING_ACES\nresult.rgb=ACESFitted(result.rgb);\n#else\nconst float tonemappingCalibration=1.590579;\nresult.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);\n#endif\n#endif\n\nresult.rgb=toGammaSpace(result.rgb);\nresult.rgb=saturate(result.rgb);\n#ifdef CONTRAST\n\nvec3 resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);\nif (contrast<1.0) {\n\nresult.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);\n} else {\n\nresult.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);\n}\n#endif\n\n#ifdef COLORGRADING\nvec3 colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\n#ifdef COLORGRADING3D\nvec3 colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;\n#else\nvec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\n#endif\nresult.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);\n#endif\n#ifdef COLORCURVES\n\nfloat luma=getLuminance(result.rgb);\nvec2 curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));\nvec4 colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;\nresult.rgb*=colorCurve.rgb;\nresult.rgb=mix(vec3(luma),result.rgb,colorCurve.a);\n#endif\nreturn result;\n}"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "logDepthDeclaration", r = "#ifdef LOGARITHMICDEPTH\nuniform float logarithmicDepthConstant;\nvarying float vFragmentDepth;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "morphTargetsVertex", r = "#ifdef MORPHTARGETS\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\n#endif\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return a; }), n.d(t, "a", function () { return s; }); var i = n(27), r = n(6), o = n(25), a = (n(165), (function () { function e() {} return ( (e.prototype.serialize = function () { var e = {}; return (e.animation = this.animation.serialize()), (e.targetId = this.target.id), e; }), e ); })()), s = (function () { function e(e, t) { void 0 === t && (t = null), (this.name = e), (this._targetedAnimations = new Array()), (this._animatables = new Array()), (this._from = Number.MAX_VALUE), (this._to = -Number.MAX_VALUE), (this._speedRatio = 1), (this._loopAnimation = !1), (this.onAnimationEndObservable = new r.c()), (this.onAnimationLoopObservable = new r.c()), (this.onAnimationGroupLoopObservable = new r.c()), (this.onAnimationGroupEndObservable = new r.c()), (this.onAnimationGroupPauseObservable = new r.c()), (this.onAnimationGroupPlayObservable = new r.c()), (this._scene = t || o.a.LastCreatedScene), (this.uniqueId = this._scene.getUniqueId()), this._scene.animationGroups.push(this); } return ( Object.defineProperty(e.prototype, "from", { get: function () { return this._from; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "to", { get: function () { return this._to; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isStarted", { get: function () { return this._isStarted; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isPlaying", { get: function () { return this._isStarted && !this._isPaused; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "speedRatio", { get: function () { return this._speedRatio; }, set: function (e) { if (this._speedRatio !== e) { this._speedRatio = e; for (var t = 0; t < this._animatables.length; t++) { this._animatables[t].speedRatio = this._speedRatio; } } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "loopAnimation", { get: function () { return this._loopAnimation; }, set: function (e) { if (this._loopAnimation !== e) { this._loopAnimation = e; for (var t = 0; t < this._animatables.length; t++) { this._animatables[t].loopAnimation = this._loopAnimation; } } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "targetedAnimations", { get: function () { return this._targetedAnimations; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "animatables", { get: function () { return this._animatables; }, enumerable: !0, configurable: !0, }), (e.prototype.addTargetedAnimation = function (e, t) { var n = new a(); (n.animation = e), (n.target = t); var i = e.getKeys(); return this._from > i[0].frame && (this._from = i[0].frame), this._to < i[i.length - 1].frame && (this._to = i[i.length - 1].frame), this._targetedAnimations.push(n), n; }), (e.prototype.normalize = function (e, t) { void 0 === e && (e = null), void 0 === t && (t = null), null == e && (e = this._from), null == t && (t = this._to); for (var n = 0; n < this._targetedAnimations.length; n++) { var i = this._targetedAnimations[n].animation.getKeys(), r = i[0], o = i[i.length - 1]; if (r.frame > e) { var a = { frame: e, value: r.value, inTangent: r.inTangent, outTangent: r.outTangent, interpolation: r.interpolation }; i.splice(0, 0, a); } if (o.frame < t) { a = { frame: t, value: o.value, inTangent: o.outTangent, outTangent: o.outTangent, interpolation: o.interpolation }; i.push(a); } } return (this._from = e), (this._to = t), this; }), (e.prototype._processLoop = function (e, t, n) { var i = this; e.onAnimationLoop = function () { i.onAnimationLoopObservable.notifyObservers(t), i._animationLoopFlags[n] || ((i._animationLoopFlags[n] = !0), i._animationLoopCount++, i._animationLoopCount === i._targetedAnimations.length && (i.onAnimationGroupLoopObservable.notifyObservers(i), (i._animationLoopCount = 0), (i._animationLoopFlags = []))); }; }), (e.prototype.start = function (e, t, n, i) { var r = this; if ((void 0 === e && (e = !1), void 0 === t && (t = 1), this._isStarted || 0 === this._targetedAnimations.length)) return this; (this._loopAnimation = e), (this._animationLoopCount = 0), (this._animationLoopFlags = []); for ( var o = function () { var o = a._targetedAnimations[s], c = a._scene.beginDirectAnimation(o.target, [o.animation], void 0 !== n ? n : a._from, void 0 !== i ? i : a._to, e, t); (c.onAnimationEnd = function () { r.onAnimationEndObservable.notifyObservers(o), r._checkAnimationGroupEnded(c); }), a._processLoop(c, o, s), a._animatables.push(c); }, a = this, s = 0; s < this._targetedAnimations.length; s++ ) o(); if (((this._speedRatio = t), void 0 !== n && void 0 !== i)) if (n < i && this._speedRatio < 0) { var c = i; (i = n), (n = c); } else n > i && this._speedRatio > 0 && (this._speedRatio = -t); return (this._isStarted = !0), (this._isPaused = !1), this.onAnimationGroupPlayObservable.notifyObservers(this), this; }), (e.prototype.pause = function () { if (!this._isStarted) return this; this._isPaused = !0; for (var e = 0; e < this._animatables.length; e++) { this._animatables[e].pause(); } return this.onAnimationGroupPauseObservable.notifyObservers(this), this; }), (e.prototype.play = function (e) { return ( this.isStarted && this._animatables.length === this._targetedAnimations.length ? (void 0 !== e && (this.loopAnimation = e), this.restart()) : (this.stop(), this.start(e, this._speedRatio)), (this._isPaused = !1), this ); }), (e.prototype.reset = function () { if (!this._isStarted) return this; for (var e = 0; e < this._animatables.length; e++) { this._animatables[e].reset(); } return this; }), (e.prototype.restart = function () { if (!this._isStarted) return this; for (var e = 0; e < this._animatables.length; e++) { this._animatables[e].restart(); } return this.onAnimationGroupPlayObservable.notifyObservers(this), this; }), (e.prototype.stop = function () { if (!this._isStarted) return this; for (var e = this._animatables.slice(), t = 0; t < e.length; t++) e[t].stop(); return (this._isStarted = !1), this; }), (e.prototype.setWeightForAllAnimatables = function (e) { for (var t = 0; t < this._animatables.length; t++) { this._animatables[t].weight = e; } return this; }), (e.prototype.syncAllAnimationsWith = function (e) { for (var t = 0; t < this._animatables.length; t++) { this._animatables[t].syncWith(e); } return this; }), (e.prototype.goToFrame = function (e) { if (!this._isStarted) return this; for (var t = 0; t < this._animatables.length; t++) { this._animatables[t].goToFrame(e); } return this; }), (e.prototype.dispose = function () { (this._targetedAnimations = []), (this._animatables = []); var e = this._scene.animationGroups.indexOf(this); e > -1 && this._scene.animationGroups.splice(e, 1), this.onAnimationEndObservable.clear(), this.onAnimationGroupEndObservable.clear(), this.onAnimationGroupPauseObservable.clear(), this.onAnimationGroupPlayObservable.clear(), this.onAnimationLoopObservable.clear(), this.onAnimationGroupLoopObservable.clear(); }), (e.prototype._checkAnimationGroupEnded = function (e) { var t = this._animatables.indexOf(e); t > -1 && this._animatables.splice(t, 1), 0 === this._animatables.length && ((this._isStarted = !1), this.onAnimationGroupEndObservable.notifyObservers(this)); }), (e.prototype.clone = function (t, n) { for (var i = new e(t || this.name, this._scene), r = 0, o = this._targetedAnimations; r < o.length; r++) { var a = o[r]; i.addTargetedAnimation(a.animation.clone(), n ? n(a.target) : a.target); } return i; }), (e.prototype.serialize = function () { var e = {}; (e.name = this.name), (e.from = this.from), (e.to = this.to), (e.targetedAnimations = []); for (var t = 0; t < this.targetedAnimations.length; t++) { var n = this.targetedAnimations[t]; e.targetedAnimations[t] = n.serialize(); } return e; }), (e.Parse = function (t, n) { for (var r = new e(t.name, n), o = 0; o < t.targetedAnimations.length; o++) { var a = t.targetedAnimations[o], s = i.a.Parse(a.animation), c = a.targetId; if ("influence" === a.animation.property) { var l = n.getMorphTargetById(c); l && r.addTargetedAnimation(s, l); } else { var u = n.getNodeByID(c); null != u && r.addTargetedAnimation(s, u); } } return null !== t.from && null !== t.to && r.normalize(t.from, t.to), r; }), (e.prototype.getClassName = function () { return "AnimationGroup"; }), (e.prototype.toString = function (e) { var t = "Name: " + this.name; return ( (t += ", type: " + this.getClassName()), e && ((t += ", from: " + this._from), (t += ", to: " + this._to), (t += ", isStarted: " + this._isStarted), (t += ", speedRatio: " + this._speedRatio), (t += ", targetedAnimations length: " + this._targetedAnimations.length), (t += ", animatables length: " + this._animatables)), t ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(1), r = n(15), o = n(108), a = n(34), s = n(5), c = function (e, t, n, i) { (this.name = e), (this.worldAxisForNormal = t), (this.worldAxisForFileX = n), (this.worldAxisForFileY = i); }, l = (function () { function e() {} return ( (e.ConvertCubeMapTextureToSphericalPolynomial = function (e) { if (!e.isCube) return null; var t, n, i = e.getSize().width, r = e.readPixels(0), o = e.readPixels(1); e.isRenderTarget ? ((t = e.readPixels(3)), (n = e.readPixels(2))) : ((t = e.readPixels(2)), (n = e.readPixels(3))); var a = e.readPixels(4), s = e.readPixels(5), c = e.gammaSpace, l = 0; (1 != e.textureType && 2 != e.textureType) || (l = 1); var u = { size: i, right: r, left: o, up: t, down: n, front: a, back: s, format: 5, type: l, gammaSpace: c }; return this.ConvertCubeMapToSphericalPolynomial(u); }), (e.ConvertCubeMapToSphericalPolynomial = function (e) { for (var t = new o.a(), n = 0, i = 2 / e.size, c = i, l = 0.5 * i - 1, u = 0; u < 6; u++) for (var h = this.FileFaces[u], d = e[h.name], p = l, f = 5 === e.format ? 4 : 3, m = 0; m < e.size; m++) { for (var g = l, b = 0; b < e.size; b++) { var _ = h.worldAxisForFileX.scale(g).add(h.worldAxisForFileY.scale(p)).add(h.worldAxisForNormal); _.normalize(); var v = Math.pow(1 + g * g + p * p, -1.5), y = d[m * e.size * f + b * f + 0], C = d[m * e.size * f + b * f + 1], P = d[m * e.size * f + b * f + 2]; isNaN(y) && (y = 0), isNaN(C) && (C = 0), isNaN(P) && (P = 0), 0 === e.type && ((y /= 255), (C /= 255), (P /= 255)), e.gammaSpace && ((y = Math.pow(r.a.Clamp(y), a.c)), (C = Math.pow(r.a.Clamp(C), a.c)), (P = Math.pow(r.a.Clamp(P), a.c))); (y = r.a.Clamp(y, 0, 4096)), (C = r.a.Clamp(C, 0, 4096)), (P = r.a.Clamp(P, 0, 4096)); var x = new s.a(y, C, P); t.addLight(_, x, v), (n += v), (g += i); } p += c; } var T = (6 * (4 * Math.PI)) / 6 / n; return t.scaleInPlace(T), t.convertIncidentRadianceToIrradiance(), t.convertIrradianceToLambertianRadiance(), o.b.FromHarmonics(t); }), (e.FileFaces = [ new c("right", new i.e(1, 0, 0), new i.e(0, 0, -1), new i.e(0, -1, 0)), new c("left", new i.e(-1, 0, 0), new i.e(0, 0, 1), new i.e(0, -1, 0)), new c("up", new i.e(0, 1, 0), new i.e(1, 0, 0), new i.e(0, 0, 1)), new c("down", new i.e(0, -1, 0), new i.e(1, 0, 0), new i.e(0, 0, -1)), new c("front", new i.e(0, 0, 1), new i.e(1, 0, 0), new i.e(0, -1, 0)), new c("back", new i.e(0, 0, -1), new i.e(-1, 0, 0), new i.e(0, -1, 0)), ]), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e(e, t, n) { (this.name = e), (this.from = t), (this.to = n); } return ( (e.prototype.clone = function () { return new e(this.name, this.from, this.to); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = function () {}; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return a; }); var i = n(58), r = n(1), o = n(34), a = (function () { function e(e, t, n) { (this.vectors = i.a.BuildArray(8, r.e.Zero)), (this.center = r.e.Zero()), (this.centerWorld = r.e.Zero()), (this.extendSize = r.e.Zero()), (this.extendSizeWorld = r.e.Zero()), (this.directions = i.a.BuildArray(3, r.e.Zero)), (this.vectorsWorld = i.a.BuildArray(8, r.e.Zero)), (this.minimumWorld = r.e.Zero()), (this.maximumWorld = r.e.Zero()), (this.minimum = r.e.Zero()), (this.maximum = r.e.Zero()), this.reConstruct(e, t, n); } return ( (e.prototype.reConstruct = function (e, t, n) { var i = e.x, o = e.y, a = e.z, s = t.x, c = t.y, l = t.z, u = this.vectors; this.minimum.copyFromFloats(i, o, a), this.maximum.copyFromFloats(s, c, l), u[0].copyFromFloats(i, o, a), u[1].copyFromFloats(s, c, l), u[2].copyFromFloats(s, o, a), u[3].copyFromFloats(i, c, a), u[4].copyFromFloats(i, o, l), u[5].copyFromFloats(s, c, a), u[6].copyFromFloats(i, c, l), u[7].copyFromFloats(s, o, l), t.addToRef(e, this.center).scaleInPlace(0.5), t.subtractToRef(e, this.extendSize).scaleInPlace(0.5), (this._worldMatrix = n || r.a.IdentityReadOnly), this._update(this._worldMatrix); }), (e.prototype.scale = function (t) { var n = e.TmpVector3, i = this.maximum.subtractToRef(this.minimum, n[0]), r = i.length(); i.normalizeFromLength(r); var o = r * t, a = i.scaleInPlace(0.5 * o), s = this.center.subtractToRef(a, n[1]), c = this.center.addToRef(a, n[2]); return this.reConstruct(s, c, this._worldMatrix), this; }), (e.prototype.getWorldMatrix = function () { return this._worldMatrix; }), (e.prototype._update = function (e) { var t = this.minimumWorld, n = this.maximumWorld, i = this.directions, o = this.vectorsWorld, a = this.vectors; if (e.isIdentity()) { t.copyFrom(this.minimum), n.copyFrom(this.maximum); for (s = 0; s < 8; ++s) o[s].copyFrom(a[s]); this.extendSizeWorld.copyFrom(this.extendSize), this.centerWorld.copyFrom(this.center); } else { t.setAll(Number.MAX_VALUE), n.setAll(-Number.MAX_VALUE); for (var s = 0; s < 8; ++s) { var c = o[s]; r.e.TransformCoordinatesToRef(a[s], e, c), t.minimizeInPlace(c), n.maximizeInPlace(c); } n.subtractToRef(t, this.extendSizeWorld).scaleInPlace(0.5), n.addToRef(t, this.centerWorld).scaleInPlace(0.5); } r.e.FromArrayToRef(e.m, 0, i[0]), r.e.FromArrayToRef(e.m, 4, i[1]), r.e.FromArrayToRef(e.m, 8, i[2]), (this._worldMatrix = e); }), (e.prototype.isInFrustum = function (t) { return e.IsInFrustum(this.vectorsWorld, t); }), (e.prototype.isCompletelyInFrustum = function (t) { return e.IsCompletelyInFrustum(this.vectorsWorld, t); }), (e.prototype.intersectsPoint = function (e) { var t = this.minimumWorld, n = this.maximumWorld, i = t.x, r = t.y, a = t.z, s = n.x, c = n.y, l = n.z, u = e.x, h = e.y, d = e.z, p = -o.a; return !(s - u < p || p > u - i) && !(c - h < p || p > h - r) && !(l - d < p || p > d - a); }), (e.prototype.intersectsSphere = function (t) { return e.IntersectsSphere(this.minimumWorld, this.maximumWorld, t.centerWorld, t.radiusWorld); }), (e.prototype.intersectsMinMax = function (e, t) { var n = this.minimumWorld, i = this.maximumWorld, r = n.x, o = n.y, a = n.z, s = i.x, c = i.y, l = i.z, u = e.x, h = e.y, d = e.z, p = t.x, f = t.y, m = t.z; return !(s < u || r > p) && !(c < h || o > f) && !(l < d || a > m); }), (e.Intersects = function (e, t) { return e.intersectsMinMax(t.minimumWorld, t.maximumWorld); }), (e.IntersectsSphere = function (t, n, i, o) { var a = e.TmpVector3[0]; return r.e.ClampToRef(i, t, n, a), r.e.DistanceSquared(i, a) <= o * o; }), (e.IsCompletelyInFrustum = function (e, t) { for (var n = 0; n < 6; ++n) for (var i = t[n], r = 0; r < 8; ++r) if (i.dotCoordinate(e[r]) < 0) return !1; return !0; }), (e.IsInFrustum = function (e, t) { for (var n = 0; n < 6; ++n) { for (var i = !0, r = t[n], o = 0; o < 8; ++o) if (r.dotCoordinate(e[o]) >= 0) { i = !1; break; } if (i) return !1; } return !0; }), (e.TmpVector3 = i.a.BuildArray(3, r.e.Zero)), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return h; }); var i = n(2), r = n(1), o = n(10), a = n(31), s = n(9), c = n(51), l = n(39), u = n(4); s.a._instancedMeshFactory = function (e, t) { var n = new h(e, t); if (t.instancedBuffers) for (var i in ((n.instancedBuffers = {}), t.instancedBuffers)) n.instancedBuffers[i] = t.instancedBuffers[i]; return n; }; var h = (function (e) { function t(t, n) { var i = e.call(this, t, n.getScene()) || this; (i._indexInSourceMeshInstanceArray = -1), n.addInstance(i), (i._sourceMesh = n), (i._unIndexed = n._unIndexed), i.position.copyFrom(n.position), i.rotation.copyFrom(n.rotation), i.scaling.copyFrom(n.scaling), n.rotationQuaternion && (i.rotationQuaternion = n.rotationQuaternion.clone()), (i.animations = n.animations); for (var r = 0, o = n.getAnimationRanges(); r < o.length; r++) { var a = o[r]; null != a && i.createAnimationRange(a.name, a.from, a.to); } return (i.infiniteDistance = n.infiniteDistance), i.setPivotMatrix(n.getPivotMatrix()), i.refreshBoundingInfo(), i._syncSubMeshes(), i; } return ( Object(i.d)(t, e), (t.prototype.getClassName = function () { return "InstancedMesh"; }), Object.defineProperty(t.prototype, "lightSources", { get: function () { return this._sourceMesh._lightSources; }, enumerable: !0, configurable: !0, }), (t.prototype._resyncLightSources = function () {}), (t.prototype._resyncLightSource = function (e) {}), (t.prototype._removeLightSource = function (e, t) {}), Object.defineProperty(t.prototype, "receiveShadows", { get: function () { return this._sourceMesh.receiveShadows; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "material", { get: function () { return this._sourceMesh.material; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "visibility", { get: function () { return this._sourceMesh.visibility; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "skeleton", { get: function () { return this._sourceMesh.skeleton; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "renderingGroupId", { get: function () { return this._sourceMesh.renderingGroupId; }, set: function (e) { this._sourceMesh && e !== this._sourceMesh.renderingGroupId && o.a.Warn("Note - setting renderingGroupId of an instanced mesh has no effect on the scene"); }, enumerable: !0, configurable: !0, }), (t.prototype.getTotalVertices = function () { return this._sourceMesh ? this._sourceMesh.getTotalVertices() : 0; }), (t.prototype.getTotalIndices = function () { return this._sourceMesh.getTotalIndices(); }), Object.defineProperty(t.prototype, "sourceMesh", { get: function () { return this._sourceMesh; }, enumerable: !0, configurable: !0, }), (t.prototype.isReady = function (e) { return void 0 === e && (e = !1), this._sourceMesh.isReady(e, !0); }), (t.prototype.getVerticesData = function (e, t) { return this._sourceMesh.getVerticesData(e, t); }), (t.prototype.setVerticesData = function (e, t, n, i) { return this.sourceMesh && this.sourceMesh.setVerticesData(e, t, n, i), this.sourceMesh; }), (t.prototype.updateVerticesData = function (e, t, n, i) { return this.sourceMesh && this.sourceMesh.updateVerticesData(e, t, n, i), this.sourceMesh; }), (t.prototype.setIndices = function (e, t) { return void 0 === t && (t = null), this.sourceMesh && this.sourceMesh.setIndices(e, t), this.sourceMesh; }), (t.prototype.isVerticesDataPresent = function (e) { return this._sourceMesh.isVerticesDataPresent(e); }), (t.prototype.getIndices = function () { return this._sourceMesh.getIndices(); }), Object.defineProperty(t.prototype, "_positions", { get: function () { return this._sourceMesh._positions; }, enumerable: !0, configurable: !0, }), (t.prototype.refreshBoundingInfo = function (e) { if ((void 0 === e && (e = !1), this._boundingInfo && this._boundingInfo.isLocked)) return this; var t = this._sourceMesh.geometry ? this._sourceMesh.geometry.boundingBias : null; return this._refreshBoundingInfo(this._sourceMesh._getPositionData(e), t), this; }), (t.prototype._preActivate = function () { return this._currentLOD && this._currentLOD._preActivate(), this; }), (t.prototype._activate = function (e, t) { if ((this._sourceMesh.subMeshes || o.a.Warn("Instances should only be created for meshes with geometry."), this._currentLOD)) { if (this._currentLOD._getWorldMatrixDeterminant() > 0 != this._getWorldMatrixDeterminant() > 0) return (this._internalAbstractMeshDataInfo._actAsRegularMesh = !0), !0; if (((this._internalAbstractMeshDataInfo._actAsRegularMesh = !1), this._currentLOD._registerInstanceForRenderId(this, e), t)) { if (!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate) return (this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = !0), !0; } else if (!this._currentLOD._internalAbstractMeshDataInfo._isActive) return (this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances = !0), !0; } return !1; }), (t.prototype._postActivate = function () { this._edgesRenderer && this._edgesRenderer.isEnabled && this._sourceMesh._renderingGroup && this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer); }), (t.prototype.getWorldMatrix = function () { if (this._currentLOD && this._currentLOD.billboardMode !== l.a.BILLBOARDMODE_NONE && this._currentLOD._masterMesh !== this) { var t = this._currentLOD._masterMesh; return ( (this._currentLOD._masterMesh = this), r.c.Vector3[7].copyFrom(this._currentLOD.position), this._currentLOD.position.set(0, 0, 0), r.c.Matrix[0].copyFrom(this._currentLOD.computeWorldMatrix(!0)), this._currentLOD.position.copyFrom(r.c.Vector3[7]), (this._currentLOD._masterMesh = t), r.c.Matrix[0] ); } return e.prototype.getWorldMatrix.call(this); }), Object.defineProperty(t.prototype, "isAnInstance", { get: function () { return !0; }, enumerable: !0, configurable: !0, }), (t.prototype.getLOD = function (e) { if (!e) return this; var t = this.getBoundingInfo(); return (this._currentLOD = this.sourceMesh.getLOD(e, t.boundingSphere)), this._currentLOD === this.sourceMesh ? this.sourceMesh : this._currentLOD; }), (t.prototype._preActivateForIntermediateRendering = function (e) { return this.sourceMesh._preActivateForIntermediateRendering(e); }), (t.prototype._syncSubMeshes = function () { if ((this.releaseSubMeshes(), this._sourceMesh.subMeshes)) for (var e = 0; e < this._sourceMesh.subMeshes.length; e++) this._sourceMesh.subMeshes[e].clone(this, this._sourceMesh); return this; }), (t.prototype._generatePointsArray = function () { return this._sourceMesh._generatePointsArray(); }), (t.prototype.clone = function (e, t, n) { void 0 === t && (t = null); var i = this._sourceMesh.createInstance(e); if ((c.a.DeepCopy(this, i, ["name", "subMeshes", "uniqueId", "parent"], []), this.refreshBoundingInfo(), t && (i.parent = t), !n)) for (var r = 0; r < this.getScene().meshes.length; r++) { var o = this.getScene().meshes[r]; o.parent === this && o.clone(o.name, i); } return i.computeWorldMatrix(!0), i; }), (t.prototype.dispose = function (t, n) { void 0 === n && (n = !1), this._sourceMesh.removeInstance(this), e.prototype.dispose.call(this, t, n); }), t ); })(a.a); (s.a.prototype.registerInstancedBuffer = function (e, t) { if ((this.removeVerticesData(e), !this.instancedBuffers)) { this.instancedBuffers = {}; for (var n = 0, i = this.instances; n < i.length; n++) { i[n].instancedBuffers = {}; } this._userInstancedBuffersStorage = { data: {}, vertexBuffers: {}, strides: {}, sizes: {} }; } (this.instancedBuffers[e] = null), (this._userInstancedBuffersStorage.strides[e] = t), (this._userInstancedBuffersStorage.sizes[e] = 32 * t), (this._userInstancedBuffersStorage.data[e] = new Float32Array(this._userInstancedBuffersStorage.sizes[e])), (this._userInstancedBuffersStorage.vertexBuffers[e] = new u.b(this.getEngine(), this._userInstancedBuffersStorage.data[e], e, !0, !1, t, !0)), this.setVerticesBuffer(this._userInstancedBuffersStorage.vertexBuffers[e]); for (var r = 0, o = this.instances; r < o.length; r++) { o[r].instancedBuffers[e] = null; } }), (s.a.prototype._processInstancedBuffers = function (e, t) { var n = e.length; for (var i in this.instancedBuffers) { for (var r = this._userInstancedBuffersStorage.sizes[i], o = this._userInstancedBuffersStorage.strides[i], a = (n + 1) * o; r < a; ) r *= 2; this._userInstancedBuffersStorage.data[i].length != r && ((this._userInstancedBuffersStorage.data[i] = new Float32Array(r)), (this._userInstancedBuffersStorage.sizes[i] = r), this._userInstancedBuffersStorage.vertexBuffers[i] && (this._userInstancedBuffersStorage.vertexBuffers[i].dispose(), (this._userInstancedBuffersStorage.vertexBuffers[i] = null))); var s = this._userInstancedBuffersStorage.data[i], c = 0; if (t) (c += o), (h = this.instancedBuffers[i]).toArray ? h.toArray(s, c) : h.copyToArray(s, c); for (var l = 0; l < n; l++) { var h; (h = e[l].instancedBuffers[i]).toArray ? h.toArray(s, c) : h.copyToArray(s, c), (c += o); } this._userInstancedBuffersStorage.vertexBuffers[i] ? this._userInstancedBuffersStorage.vertexBuffers[i].updateDirectly(s, 0) : ((this._userInstancedBuffersStorage.vertexBuffers[i] = new u.b(this.getEngine(), this._userInstancedBuffersStorage.data[i], i, !0, !1, o, !0)), this.setVerticesBuffer(this._userInstancedBuffersStorage.vertexBuffers[i])); } }), (s.a.prototype._disposeInstanceSpecificData = function () { for (this._instanceDataStorage.instancesBuffer && (this._instanceDataStorage.instancesBuffer.dispose(), (this._instanceDataStorage.instancesBuffer = null)); this.instances.length; ) this.instances[0].dispose(); for (var e in this.instancedBuffers) this._userInstancedBuffersStorage.vertexBuffers[e] && this._userInstancedBuffersStorage.vertexBuffers[e].dispose(); this.instancedBuffers = {}; }); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.Utils = void 0); const i = n(62); t.Utils = class { static random(e, t) { return Math.floor(Math.random() * (t - e) + e); } static lerp(e, t, n) { return e + n * (t - e); } static signedAngle(e, t, n) { return 57.29578 * Math.atan2(i.Vector3.Dot(n, i.Vector3.Cross(e, t)), i.Vector3.Dot(e, t)); } static repeat(e, t) { let n = e % t; return n < 0 && (n += t), n; } }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this._count = 0), (this._data = {}); } return ( (e.prototype.copyFrom = function (e) { var t = this; this.clear(), e.forEach(function (e, n) { return t.add(e, n); }); }), (e.prototype.get = function (e) { var t = this._data[e]; if (void 0 !== t) return t; }), (e.prototype.getOrAddWithFactory = function (e, t) { var n = this.get(e); return void 0 !== n || ((n = t(e)) && this.add(e, n)), n; }), (e.prototype.getOrAdd = function (e, t) { var n = this.get(e); return void 0 !== n ? n : (this.add(e, t), t); }), (e.prototype.contains = function (e) { return void 0 !== this._data[e]; }), (e.prototype.add = function (e, t) { return void 0 === this._data[e] && ((this._data[e] = t), ++this._count, !0); }), (e.prototype.set = function (e, t) { return void 0 !== this._data[e] && ((this._data[e] = t), !0); }), (e.prototype.getAndRemove = function (e) { var t = this.get(e); return void 0 !== t ? (delete this._data[e], --this._count, t) : null; }), (e.prototype.remove = function (e) { return !!this.contains(e) && (delete this._data[e], --this._count, !0); }), (e.prototype.clear = function () { (this._data = {}), (this._count = 0); }), Object.defineProperty(e.prototype, "count", { get: function () { return this._count; }, enumerable: !0, configurable: !0, }), (e.prototype.forEach = function (e) { for (var t in this._data) { e(t, this._data[t]); } }), (e.prototype.first = function (e) { for (var t in this._data) { var n = e(t, this._data[t]); if (n) return n; } return null; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(58), r = n(1), o = (function () { function e(e, t, n) { (this.center = r.e.Zero()), (this.centerWorld = r.e.Zero()), (this.minimum = r.e.Zero()), (this.maximum = r.e.Zero()), this.reConstruct(e, t, n); } return ( (e.prototype.reConstruct = function (e, t, n) { this.minimum.copyFrom(e), this.maximum.copyFrom(t); var i = r.e.Distance(e, t); t.addToRef(e, this.center).scaleInPlace(0.5), (this.radius = 0.5 * i), this._update(n || r.a.IdentityReadOnly); }), (e.prototype.scale = function (t) { var n = this.radius * t, i = e.TmpVector3, r = i[0].setAll(n), o = this.center.subtractToRef(r, i[1]), a = this.center.addToRef(r, i[2]); return this.reConstruct(o, a, this._worldMatrix), this; }), (e.prototype.getWorldMatrix = function () { return this._worldMatrix; }), (e.prototype._update = function (t) { if (t.isIdentity()) this.centerWorld.copyFrom(this.center), (this.radiusWorld = this.radius); else { r.e.TransformCoordinatesToRef(this.center, t, this.centerWorld); var n = e.TmpVector3[0]; r.e.TransformNormalFromFloatsToRef(1, 1, 1, t, n), (this.radiusWorld = Math.max(Math.abs(n.x), Math.abs(n.y), Math.abs(n.z)) * this.radius); } }), (e.prototype.isInFrustum = function (e) { for (var t = this.centerWorld, n = this.radiusWorld, i = 0; i < 6; i++) if (e[i].dotCoordinate(t) <= -n) return !1; return !0; }), (e.prototype.isCenterInFrustum = function (e) { for (var t = this.centerWorld, n = 0; n < 6; n++) if (e[n].dotCoordinate(t) < 0) return !1; return !0; }), (e.prototype.intersectsPoint = function (e) { var t = r.e.DistanceSquared(this.centerWorld, e); return !(this.radiusWorld * this.radiusWorld < t); }), (e.Intersects = function (e, t) { var n = r.e.DistanceSquared(e.centerWorld, t.centerWorld), i = e.radiusWorld + t.radiusWorld; return !(i * i < n); }), (e.TmpVector3 = i.a.BuildArray(3, r.e.Zero)), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = function (e, t, n) { (this.bu = e), (this.bv = t), (this.distance = n), (this.faceId = 0), (this.subMeshId = 0); }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(47), r = n(10), o = n(25), a = n(159), s = (function () { function e(e) { void 0 === e && (e = null), (this._targets = new Array()), (this._targetInfluenceChangedObservers = new Array()), (this._targetDataLayoutChangedObservers = new Array()), (this._activeTargets = new i.a(16)), (this._supportsNormals = !1), (this._supportsTangents = !1), (this._supportsUVs = !1), (this._vertexCount = 0), (this._uniqueId = 0), (this._tempInfluences = new Array()), (this.enableNormalMorphing = !0), (this.enableTangentMorphing = !0), (this.enableUVMorphing = !0), e || (e = o.a.LastCreatedScene), (this._scene = e), this._scene && (this._scene.morphTargetManagers.push(this), (this._uniqueId = this._scene.getUniqueId())); } return ( Object.defineProperty(e.prototype, "uniqueId", { get: function () { return this._uniqueId; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "vertexCount", { get: function () { return this._vertexCount; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "supportsNormals", { get: function () { return this._supportsNormals && this.enableNormalMorphing; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "supportsTangents", { get: function () { return this._supportsTangents && this.enableTangentMorphing; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "supportsUVs", { get: function () { return this._supportsUVs && this.enableUVMorphing; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "numTargets", { get: function () { return this._targets.length; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "numInfluencers", { get: function () { return this._activeTargets.length; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "influences", { get: function () { return this._influences; }, enumerable: !0, configurable: !0, }), (e.prototype.getActiveTarget = function (e) { return this._activeTargets.data[e]; }), (e.prototype.getTarget = function (e) { return this._targets[e]; }), (e.prototype.addTarget = function (e) { var t = this; this._targets.push(e), this._targetInfluenceChangedObservers.push( e.onInfluenceChanged.add(function (e) { t._syncActiveTargets(e); }) ), this._targetDataLayoutChangedObservers.push( e._onDataLayoutChanged.add(function () { t._syncActiveTargets(!0); }) ), this._syncActiveTargets(!0); }), (e.prototype.removeTarget = function (e) { var t = this._targets.indexOf(e); t >= 0 && (this._targets.splice(t, 1), e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t, 1)[0]), e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t, 1)[0]), this._syncActiveTargets(!0)); }), (e.prototype.clone = function () { for (var t = new e(this._scene), n = 0, i = this._targets; n < i.length; n++) { var r = i[n]; t.addTarget(r.clone()); } return (t.enableNormalMorphing = this.enableNormalMorphing), (t.enableTangentMorphing = this.enableTangentMorphing), (t.enableUVMorphing = this.enableUVMorphing), t; }), (e.prototype.serialize = function () { var e = {}; (e.id = this.uniqueId), (e.targets = []); for (var t = 0, n = this._targets; t < n.length; t++) { var i = n[t]; e.targets.push(i.serialize()); } return e; }), (e.prototype._syncActiveTargets = function (e) { var t = 0; this._activeTargets.reset(), (this._supportsNormals = !0), (this._supportsTangents = !0), (this._supportsUVs = !0), (this._vertexCount = 0); for (var n = 0, i = this._targets; n < i.length; n++) { var o = i[n]; if (0 !== o.influence) { this._activeTargets.push(o), (this._tempInfluences[t++] = o.influence), (this._supportsNormals = this._supportsNormals && o.hasNormals), (this._supportsTangents = this._supportsTangents && o.hasTangents), (this._supportsUVs = this._supportsUVs && o.hasUVs); var a = o.getPositions(); if (a) { var s = a.length / 3; if (0 === this._vertexCount) this._vertexCount = s; else if (this._vertexCount !== s) return void r.a.Error("Incompatible target. Targets must all have the same vertices count."); } } } (this._influences && this._influences.length === t) || (this._influences = new Float32Array(t)); for (var c = 0; c < t; c++) this._influences[c] = this._tempInfluences[c]; e && this.synchronize(); }), (e.prototype.synchronize = function () { if (this._scene) for (var e = 0, t = this._scene.meshes; e < t.length; e++) { var n = t[e]; n.morphTargetManager === this && n._syncGeometryWithMorphTargetManager(); } }), (e.Parse = function (t, n) { var i = new e(n); i._uniqueId = t.id; for (var r = 0, o = t.targets; r < o.length; r++) { var s = o[r]; i.addTarget(a.a.Parse(s)); } return i; }), e ); })(); }, function (e, t, n) { "use strict"; var i = n(32), r = n(10), o = n(12), a = n(14); function s(e) { return function (t, n, r, o, a, s, c, l, u, h) { void 0 === u && (u = null), void 0 === h && (h = 0); var d = e ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY, p = e ? i.b.Raw3D : i.b.Raw2DArray, f = new i.a(this, p); (f.baseWidth = n), (f.baseHeight = r), (f.baseDepth = o), (f.width = n), (f.height = r), (f.depth = o), (f.format = a), (f.type = h), (f.generateMipMaps = s), (f.samplingMode = l), e ? (f.is3D = !0) : (f.is2DArray = !0), this._doNotHandleContextLost || (f._bufferView = t), e ? this.updateRawTexture3D(f, t, a, c, u, h) : this.updateRawTexture2DArray(f, t, a, c, u, h), this._bindTextureDirectly(d, f, !0); var m = this._getSamplingParameters(l, s); return ( this._gl.texParameteri(d, this._gl.TEXTURE_MAG_FILTER, m.mag), this._gl.texParameteri(d, this._gl.TEXTURE_MIN_FILTER, m.min), s && this._gl.generateMipmap(d), this._bindTextureDirectly(d, null), this._internalTexturesCache.push(f), f ); }; } function c(e) { return function (t, n, i, r, o, a) { void 0 === o && (o = null), void 0 === a && (a = 0); var s = e ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY, c = this._getWebGLTextureType(a), l = this._getInternalFormat(i), u = this._getRGBABufferInternalSizedFormat(a, i); this._bindTextureDirectly(s, t, !0), this._unpackFlipY(void 0 === r || !!r), this._doNotHandleContextLost || ((t._bufferView = n), (t.format = i), (t.invertY = r), (t._compression = o)), t.width % 4 != 0 && this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1), o && n ? this._gl.compressedTexImage3D(s, 0, this.getCaps().s3tc[o], t.width, t.height, t.depth, 0, n) : this._gl.texImage3D(s, 0, u, t.width, t.height, t.depth, 0, l, c, n), t.generateMipMaps && this._gl.generateMipmap(s), this._bindTextureDirectly(s, null), (t.isReady = !0); }; } (a.a.prototype.updateRawTexture = function (e, t, n, i, r, o) { if ((void 0 === r && (r = null), void 0 === o && (o = 0), e)) { var a = this._getRGBABufferInternalSizedFormat(o, n), s = this._getInternalFormat(n), c = this._getWebGLTextureType(o); this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0), this._unpackFlipY(void 0 === i || !!i), this._doNotHandleContextLost || ((e._bufferView = t), (e.format = n), (e.type = o), (e.invertY = i), (e._compression = r)), e.width % 4 != 0 && this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1), r && t ? this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[r], e.width, e.height, 0, t) : this._gl.texImage2D(this._gl.TEXTURE_2D, 0, a, e.width, e.height, 0, s, c, t), e.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), (e.isReady = !0); } }), (a.a.prototype.createRawTexture = function (e, t, n, r, o, a, s, c, l) { void 0 === c && (c = null), void 0 === l && (l = 0); var u = new i.a(this, i.b.Raw); (u.baseWidth = t), (u.baseHeight = n), (u.width = t), (u.height = n), (u.format = r), (u.generateMipMaps = o), (u.samplingMode = s), (u.invertY = a), (u._compression = c), (u.type = l), this._doNotHandleContextLost || (u._bufferView = e), this.updateRawTexture(u, e, r, a, c, l), this._bindTextureDirectly(this._gl.TEXTURE_2D, u, !0); var h = this._getSamplingParameters(s, o); return ( this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, h.mag), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, h.min), o && this._gl.generateMipmap(this._gl.TEXTURE_2D), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), this._internalTexturesCache.push(u), u ); }), (a.a.prototype.createRawCubeTexture = function (e, t, n, a, s, c, l, u) { void 0 === u && (u = null); var h = this._gl, d = new i.a(this, i.b.CubeRaw); (d.isCube = !0), (d.format = n), (d.type = a), this._doNotHandleContextLost || (d._bufferViewArray = e); var p = this._getWebGLTextureType(a), f = this._getInternalFormat(n); f === h.RGB && (f = h.RGBA), p !== h.FLOAT || this._caps.textureFloatLinearFiltering ? p !== this._gl.HALF_FLOAT_OES || this._caps.textureHalfFloatLinearFiltering ? p !== h.FLOAT || this._caps.textureFloatRender ? p !== h.HALF_FLOAT || this._caps.colorBufferFloat || ((s = !1), r.a.Warn("Render to half float textures is not supported. Mipmap generation forced to false.")) : ((s = !1), r.a.Warn("Render to float textures is not supported. Mipmap generation forced to false.")) : ((s = !1), (l = 1), r.a.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")) : ((s = !1), (l = 1), r.a.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")); var m = t, g = m; (d.width = m), (d.height = g), !this.needPOTTextures || (o.b.IsExponentOfTwo(d.width) && o.b.IsExponentOfTwo(d.height)) || (s = !1), e && this.updateRawCubeTexture(d, e, n, a, c, u), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, d, !0), e && s && this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP); var b = this._getSamplingParameters(l, s); return ( h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_MAG_FILTER, b.mag), h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_MIN_FILTER, b.min), h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_WRAP_S, h.CLAMP_TO_EDGE), h.texParameteri(h.TEXTURE_CUBE_MAP, h.TEXTURE_WRAP_T, h.CLAMP_TO_EDGE), this._bindTextureDirectly(h.TEXTURE_CUBE_MAP, null), (d.generateMipMaps = s), d ); }), (a.a.prototype.updateRawCubeTexture = function (e, t, n, i, r, a, s) { void 0 === a && (a = null), void 0 === s && (s = 0), (e._bufferViewArray = t), (e.format = n), (e.type = i), (e.invertY = r), (e._compression = a); var c = this._gl, l = this._getWebGLTextureType(i), u = this._getInternalFormat(n), h = this._getRGBABufferInternalSizedFormat(i), d = !1; u === c.RGB && ((u = c.RGBA), (d = !0)), this._bindTextureDirectly(c.TEXTURE_CUBE_MAP, e, !0), this._unpackFlipY(void 0 === r || !!r), e.width % 4 != 0 && c.pixelStorei(c.UNPACK_ALIGNMENT, 1); for (var p = 0; p < 6; p++) { var f = t[p]; a ? c.compressedTexImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X + p, s, this.getCaps().s3tc[a], e.width, e.height, 0, f) : (d && (f = this._convertRGBtoRGBATextureData(f, e.width, e.height, i)), c.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X + p, s, h, e.width, e.height, 0, u, l, f)); } (!this.needPOTTextures || (o.b.IsExponentOfTwo(e.width) && o.b.IsExponentOfTwo(e.height))) && e.generateMipMaps && 0 === s && this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null), (e.isReady = !0); }), (a.a.prototype.createRawCubeTextureFromUrl = function (e, t, n, i, r, o, a, s, c, l, u, h) { var d = this; void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = 3), void 0 === h && (h = !1); var p = this._gl, f = this.createRawCubeTexture(null, n, i, r, !o, h, u, null); t._addPendingData(f), (f.url = e), this._internalTexturesCache.push(f); return ( this._loadFile( e, function (e) { !(function (e) { var n = f.width, o = a(e); if (o) { if (s) { var l = d._getWebGLTextureType(r), u = d._getInternalFormat(i), m = d._getRGBABufferInternalSizedFormat(r), g = !1; u === p.RGB && ((u = p.RGBA), (g = !0)), d._bindTextureDirectly(p.TEXTURE_CUBE_MAP, f, !0), d._unpackFlipY(!1); for (var b = s(o), _ = 0; _ < b.length; _++) for (var v = n >> _, y = 0; y < 6; y++) { var C = b[_][y]; g && (C = d._convertRGBtoRGBATextureData(C, v, v, r)), p.texImage2D(y, _, m, v, v, 0, u, l, C); } d._bindTextureDirectly(p.TEXTURE_CUBE_MAP, null); } else d.updateRawCubeTexture(f, o, i, r, h); (f.isReady = !0), t._removePendingData(f), c && c(); } })(e); }, void 0, t.offlineProvider, !0, function (e, n) { t._removePendingData(f), l && e && l(e.status + " " + e.statusText, n); } ), f ); }), (a.a.prototype.createRawTexture2DArray = s(!1)), (a.a.prototype.createRawTexture3D = s(!0)), (a.a.prototype.updateRawTexture2DArray = c(!1)), (a.a.prototype.updateRawTexture3D = c(!0)); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.getMessageKeyForDeath = t.MonkeyState = t.DeathType = t.MovementAnimations = t.AnimationState = t.MovementState = t.Turn = t.TurnState = t.TiltState = t.CharacterParams = void 0); const i = n(62), r = n(150); var o, a, s; (t.CharacterParams = class { constructor() { (this.currentSegment = 0), (this.currentVelocity = 0), (this.boostVelocity = 0), (this.currentPosition = new i.Vector3(0, 0, 13)), (this.currentDirection = new i.Vector3(0, 0, -1)), (this.distanceFromPieceStart = 0), (this.distanceFromStartOfSegment = 0), (this.pathId = 0), (this.deltaDistance = 0); } }), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.Left = 1)] = "Left"), (e[(e.Right = 2)] = "Right"); })(t.TiltState || (t.TiltState = {})), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.Done = 1)] = "Done"), (e[(e.Pending = 2)] = "Pending"), (e[(e.Failed = 3)] = "Failed"), (e[(e.CanTilt = 4)] = "CanTilt"); })(t.TurnState || (t.TurnState = {})), (function (e) { (e[(e.None = 0)] = "None"), (e[(e.Left = 1)] = "Left"), (e[(e.Right = 2)] = "Right"); })(t.Turn || (t.Turn = {})), (function (e) { (e[(e.Idle = 0)] = "Idle"), (e[(e.Running = 1)] = "Running"), (e[(e.WaterSliding = 2)] = "WaterSliding"), (e[(e.CartRiding = 3)] = "CartRiding"), (e[(e.Ziplining = 4)] = "Ziplining"), (e[(e.Death = 5)] = "Death"); })((o = t.MovementState || (t.MovementState = {}))), (function (e) { (e[(e.None = -1)] = "None"), (e[(e.Idle = 0)] = "Idle"), (e[(e.Run = 1)] = "Run"), (e[(e.RunStumble = 2)] = "RunStumble"), (e[(e.SlideEnter = 3)] = "SlideEnter"), (e[(e.Slide = 4)] = "Slide"), (e[(e.Jump = 5)] = "Jump"), (e[(e.DeathByHit = 6)] = "DeathByHit"), (e[(e.DeathByFall = 7)] = "DeathByFall"), (e[(e.DeathByMineHit = 8)] = "DeathByMineHit"), (e[(e.DeathByWaterFall = 9)] = "DeathByWaterFall"), (e[(e.Zipline = 10)] = "Zipline"), (e[(e.WaterSlideEnter = 11)] = "WaterSlideEnter"), (e[(e.WaterSlide = 12)] = "WaterSlide"), (e[(e.MineCart = 13)] = "MineCart"), (e[(e.MineCartDuck = 14)] = "MineCartDuck"), (e[(e.MineCartEnter = 15)] = "MineCartEnter"), (e[(e.MineCartExit = 16)] = "MineCartExit"); })((a = t.AnimationState || (t.AnimationState = {}))), (t.MovementAnimations = new Map([ [o.Idle, a.Idle], [o.Running, a.Run], [o.WaterSliding, a.WaterSlideEnter], [o.CartRiding, a.MineCartEnter], [o.Ziplining, a.Zipline], ])), (function (e) { (e[(e.Fall = 0)] = "Fall"), (e[(e.Eaten = 1)] = "Eaten"), (e[(e.Fire = 2)] = "Fire"), (e[(e.MineDuck = 3)] = "MineDuck"), (e[(e.MineLedge = 4)] = "MineLedge"), (e[(e.Mine = 5)] = "Mine"), (e[(e.Wheel = 6)] = "Wheel"), (e[(e.WaterLeft = 7)] = "WaterLeft"), (e[(e.Ledge = 8)] = "Ledge"), (e[(e.SceneryTree = 9)] = "SceneryTree"), (e[(e.SceneryRock = 10)] = "SceneryRock"), (e[(e.DeathThrow = 11)] = "DeathThrow"), (e[(e.None = 12)] = "None"), (e[(e.WaterRight = 13)] = "WaterRight"), (e[(e.DeathByHit = 14)] = "DeathByHit"), (e[(e.DeathByFall = 15)] = "DeathByFall"), (e[(e.DeathByCart = 16)] = "DeathByCart"), (e[(e.DeathByWater = 17)] = "DeathByWater"); })((s = t.DeathType || (t.DeathType = {}))), (function (e) { (e[(e.None = -1)] = "None"), (e[(e.Disappearing = 0)] = "Disappearing"), (e[(e.Idle = 1)] = "Idle"), (e[(e.Chase = 2)] = "Chase"), (e[(e.Jump = 3)] = "Jump"), (e[(e.Taunt = 4)] = "Taunt"); })(t.MonkeyState || (t.MonkeyState = {})); const c = n(249); t.getMessageKeyForDeath = (e) => { let t = "", n = "0% 0%"; switch (e) { case s.Fall: case s.DeathByFall: (t = "Fall"), (n = "100% 200%"); break; case s.Eaten: (t = "Eaten"), (n = "0% 200%"); break; case s.Fire: (t = "Fire"), (n = "0% 300%"); break; case s.MineDuck: (t = "MineDuck"), (n = "0% 300%"); break; case s.MineLedge: (t = "MineLedge"), (n = "0% 0%"); break; case s.Mine: case s.DeathByCart: (t = "Mine"), (n = "0% 0%"); break; case s.Wheel: (t = "Wheel"), (n = "0% 0%"); break; case s.WaterLeft: (t = "WaterLeft"), (n = "100% 100%"); break; case s.WaterRight: (t = "WaterRight"), (n = "100% 100%"); break; case s.Ledge: (t = "Ledge"), (n = "100% 200%"); break; case s.SceneryTree: (t = "SceneryTree"), (n = "0% 0%"); break; case s.SceneryRock: (t = "SceneryRock"), (n = "0% 0%"); break; case s.DeathThrow: case s.DeathByHit: (t = "DeathThrow"), (n = "0% 100%"); break; default: (t = "None"), (n = "0% 0%"); } const i = c[t]; return { message: i[r.Utils.random(0, i.length)], position: n, messageKey: t }; }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.prototype.attributeProcessor = function (e) { return e.replace("attribute", "in"); }), (e.prototype.varyingProcessor = function (e, t) { return e.replace("varying", t ? "in" : "out"); }), (e.prototype.postProcessor = function (e, t, n) { var i = -1 !== e.search(/#extension.+GL_EXT_draw_buffers.+require/); if (((e = (e = e.replace(/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g, "")).replace(/texture2D\s*\(/g, "texture(")), n)) e = (e = (e = (e = (e = (e = (e = e.replace(/texture2DLodEXT\s*\(/g, "textureLod(")).replace(/textureCubeLodEXT\s*\(/g, "textureLod(")).replace(/textureCube\s*\(/g, "texture(")).replace( /gl_FragDepthEXT/g, "gl_FragDepth" )).replace(/gl_FragColor/g, "glFragColor")).replace(/gl_FragData/g, "glFragData")).replace(/void\s+?main\s*\(/g, (i ? "" : "out vec4 glFragColor;\n") + "void main("); else if (-1 !== t.indexOf("#define MULTIVIEW")) return "#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n" + e; return e; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(8), r = n(197), o = (function () { function e() {} return ( (e.GetEnvironmentBRDFTexture = function (e) { if (!e.environmentBRDFTexture) { var t = e.useDelayedTextureLoading; e.useDelayedTextureLoading = !1; var n = e._blockEntityCollection; e._blockEntityCollection = !1; var o = i.a.CreateFromBase64String(this._environmentBRDFBase64Texture, "EnvironmentBRDFTexture", e, !0, !1, i.a.BILINEAR_SAMPLINGMODE); e._blockEntityCollection = n; var a = e.getEngine().getLoadedTexturesCache(), s = a.indexOf(o.getInternalTexture()); -1 !== s && a.splice(s, 1), (o.isRGBD = !0), (o.wrapU = i.a.CLAMP_ADDRESSMODE), (o.wrapV = i.a.CLAMP_ADDRESSMODE), (e.environmentBRDFTexture = o), (e.useDelayedTextureLoading = t), r.a.ExpandRGBDTexture(o); } return e.environmentBRDFTexture; }), (e._environmentBRDFBase64Texture = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAgAElEQVR42u29yY5tWXIlZnbuiSaTbZFUkZRKrCKhElASQA0EoQABgn6hJvoXzfUP+gP9hWb6Bg00IgRoQJaKqUxmZmTEe8/v0uB2u7Fm2T7HIyIrnz88uPvt3f2a2WrMbOvf/u3PvvzP/sUf/N6//i8vf/lv/3v5H//d//Sb//Uq/5u8yf8hV/m/5Cp/L1f5hVzlG7nKJ7mKyJuIXN/hPwqXI/g++zq6rPI5u8z+WqfLre+zy7PrVv9L8brsMiGvk8XLmM/sdfHXal4e3ad6GXPdyu2ij8u/+uv/5cuf/OSLfdtEfvUr+dnf/d0X//t3H/7bf/hP//N/928h/0Yg/4VA/kogfyGQP5Wr/IFAvhbIlwK5CGQTPP+9z5uPeePJSW+yo2+s/GtN30Rnv1E+f5zxof9R/lSXv/nr//mrr3+i+5dfyX7ZZQP07Tffys//8R/l/9TtX7790T/7r/8G8pdy+/8XAvnnAvkzgfwzgfyxQP5AIL8vkJ8K5KsmMVzu1U7p5PA5AXxOAJ8TwPf7sX/51ZeXfcemqnp9w/W77/S7X/6T/vzf/7383RWCX3/z05/9i3/13/0PX//eX/2FyP8tIv+PiPy9iPy/IvIzEfm5iPxCRH4lIt/c/393//9BRD6KyKf7f488fP74/PH544dJAF9cLl98IZfLBZtuqterXr/7Dt9982v95S9+Lv+gF/3i7Spv/8lf/vnf/vGf/dF/JfKnIvLnIvLvReQ/NEngn0TklyLy6/v/34jIt00iGJOBlxAsdvv54/PH5493SQCXy9t2ueh2ueimKorrFbjq9eNH+fDtb+TXv/ol/vHyhX4Fxfbx7euPf/Lnf/PfiPyeiPyhiPxxkwB+fk8AvxzQgJcIrGTwFsiAEXH4/PH54/PHUgLY7whgu2C7bLqpQgHB2xvePn6SDx8+6G9+84384vKF/IPu8iVU9Y/+7C/+jWxffiHytYj8VER+X0T+oEEBvxqQwCMJeIngo5EI3goIwVMIPn98/vj8ESaAbbtu2ybbvl8u2ybbdtluSECA65u8ffqIDx8+6G++/VZ/efkV/sO261dQXP7wT/7kX8vl8qXIFyLylbySwe/dE0CLAr65B/9vGn0gQwRMMqgmhM/J4fPH548eAezbZd/lsm3YtssNAYiqiogAAkCvb5/k46cP8u2HD/rrb7+R/2/b9Wu9yJe//8d/9Ney6S5yEZFdRL68/38khG/uKOCnAwoYkcCoEXwkEgGDDq7CeQfyOTl8/vhd1QCum26ybZtu2yabbrKpQvXue1yvuF6v+vbpTT5+/CDffviAX1++1V9sO77WXb/66R/+4V/dgkbllQi+aBLBV/dE8LWRALwkYCWCNyMZXElkwLTMeMkga/P4/PH547ccAVwuctkvdxSw6bbdtYDbTfSZBN7e8PHTR/3u4wf55vKd/nL7DX6mu3791U9//5+/gkNFZGuSgZUQvnKowKgLWLTAQgRtEniTuEfwaELw0MJvf3LQzynud+53uG+X6y3gN9kul+2y6XVT1U27JCDAFVc8ksAn/e7jR/nN5YP+avtWfq6Xy9f7Vz/9w1dgRYngiyYhfNkkgzYBWHTg44AEMmqQUYQKOmDaiCIa8TmsfmzB+DnZDQjgcpGLbti2y3bZHjRAdRMVvb/dcYU8kcDbPQlsH/CrbddfbF98+RPZfvLFnAQeieCRDC5DMvju/vmD4JkEvjRQgKULeGggowdHkAHTYxihg89vu88I5UeGAPSOAFTlrgPopiqbKPSmCKreUoAAkCcSePukHz590m8vH+WbD9/JP335k6/+tA86KxFchv8jMvhiogE4JQm8XhfKqOAqx5qRPyeGzx8/cgSwbXcUoLJtim27C4Oi93+4v6VxQwKAvl2v+Hj9pB8+fZJvt4/yzfbF9lPdv/wJnsE2BogmyeCRED40tGFvksIXiSbgiYSRRpDNDZ6BDI6ghM+J4fPHeyKAO+zX7cb9t4tedMMNAQju5V+f1uAtBSiu1zsduMrHy5t8ePsk3376KN98sX/xE5FPAnm7/782o0DiUINXMkCXCB7/P94/e87AWUmARQWVvgMuKej9t1RLBp+Tw+ePgwngsutFFdu26WXbbl+rSvdfbnqAiuA23QcBgCugV1zl7e1NPm5v+LC96XfbJ/1W9y++fgXjA3bDYXV+MuhRwSPwL3JLMFYC+HS/LU8HYrGwIhwyNOF12SvgM4SgztdifP85MXz+KGsA2C6X7aJ6bXSAOwrY5OYIqGy3d5uq4P5GhABXuV6veLvRAf10fZMPb2/y3b7vX7+g+9v98/WOBq7GG7RNAlYy+Dgkhhb+Xxp0sE8IAC4SGAP/TbgVJK/PoJPBnAiwPKxsXfbbnRg+i3s/JAK4Q/4b9NfLtomBAqCickMBjy7BuywAUVyv8na94tMjCVzf9KNcLl/0SeA6oAEYb1i9g+FtSALb/bKL8/+t+wxXFMyswqiHoK4ToIgKqslgpg1qUC0QoYbvJZg/B/q5v4szHmPX7YEAsD0CX25OwEUVm9xag1+agKg+nxQArnKjAtDr9U0+Xd/k4/UqH7bL5YsewrcBBiMJZPRAp6TwQgWfjM9vgRbgUYGL8AvLWH2gqhesCokeUmCSwPsnhs8fP2YNYMO2XeSmAWxy2VQaXeDmDIhApf33rD4PTUCuV+DtCn27XuXT5ir8VmCJ2G5BpBM8/r/dEcJb8/0lEQMtJHA5TAlqNuLRhJChhEpSqFabH3di+G1AGj+W1/dyAR4IYJNNnuLf6+tWC9CHHiAtFhAIFLjK2/Uqn65X+SS67aK+3QeTDoy/IG2ogQ7fb/dAtz5vBgrYGqrwNtCHsVfgIvwK07OTQBURVNCBFpKCOjqCHn5L/67TgTN+fpySAC56nwSUi256kXsSuFGAVyLoUIDo8/Pz7fdoErr/v17lk162HbgHvFpIYDfoAJJfW4sGPjkU4VNAF8ZEcLmLhdc7kljdY1y1Dq9yLiI4IiRqcLujb138KIPn80ejATwRwIbtBvn1cqv+2J78/5EI5N4cJA8qIPcmwRsKAHDF9WYP6mV7VmrgLuTpxYTcMEW0LAmoQxFsuvAI8tv/a/C5fV2ZMMiKg++FCM7RDPRu8ebWY7VG6VJi+Bzk35MI2LsAckMAgwvQ0gC5DQjd3ABg2HQLAPpEAlZ1Bu7VV7MGHDFRAbo3VKsTbAY9sPWC/uvx86gBbDK3D1eEQS8pbAeSgSwmhepnJb6uBv/o/PzHLzxWA/X7TH77De5j6AGQi6o0CUGfCOD2X7cXAlCFQABtEsGLDtxuOyQB2UTQBKZe5GUPXgkUYCUAbZJRhBDeuq8xBf+bgwbehDm+BFQi2IJksOocvA8ysIMfxluVcRsY/eB3JzH8GFDAXQO48X/dcIf9jyDHptIigDsFkEe066tBSETQUYF7ElDdYEBytN4+rk9UcBPfrKaZqFHWcw3i4J8/X4ev2//bSXqAhwTay6OEIPLD2Ipt8OtAGzxkwLw9WVFRjTc/qC6H3+YK/b1oAA0KuOizHfieCLaHHiAb5NYTIC9EMEbZrVEQt1xwhVy1UfBh8PUOquMizwaap3tQXfY5B//tea/NZdfhsvbz+PURQTDSGWB87VX/7WSd4KxjUqrIgE0IUkoKGnhIvwvawpGf6eECXJ7tv4qbA7DJgwpsKthEmmYgfaAAffYF3HLxo0vwNjJ0SwRWMG4db4eh1gPNm18vQ+us/0eGmxDemu/fnM/X4evq/8342ksGHgLY5LyT/zg0wM8lcMjgGFXwqIOVFJBQw99eCvF9oZL9Mfl3QwAvIXDsBRC9R+fz8x0FPBLB0xJEpwUobrfAkARgIAF41h3wQgP6QAmX5E/7eI43IxGwwf/moIkRyWRJQIPgt9CA9b39nzt4bYUWjAlCjWDPgv8IEjgLJfzuaAsrv9VdVG4OwOXW/fdoA35qAdL0BDwvf6AAUVHd8LIEu94A3K+Q+2YxaB84MOH62P//qoo38fCRDERE2zf0JfmDa+MieElAjcDPKz+mRKCOtdgGtXaBjgNJ4H2owSpNeAW/rRH4CaHSpMwnBYYycjgSJwfie9CR6mPu20Uv8kABF206AvXlBMiIBPSlB9wjBW1fwEuSb94296VCqgMaGCt/G1BbExi3IG+r3a3J6P48Gv/J0YmEYoiGY7V/SxwFCwGoE/xa0AJ0CEiV9QPCJb1OJ5F1VTjEY2/MO9AEJvj1BJTQpqLfTlGwjABuzT962e4IoKnyrdh3+/6mzDVJ4PHOxj0JqGKoy20+wBMN6D1gLWi9NQHfVP5MEEPzjGYy8BMAOnTAJgEr8HUIejRo5xrA5xkR5AngmiSHs+zDDAmMgWzTg55GSJEmHE8IvWPAoYTfhWak/Wn/bQ0CGLSAjv83SUEfKp5q24LXuQICpzrjrgWoza8xVE00CQCORdhMJuTUT/rjuls0gO4Iby8BIEgK6gS7BsGuTtDrScH/fR68biUHNVGBnxjeNyHEvQe/ve3LZQqgG3rof6cEclsNflG9J4KtaQ8WHcVBHS1BtHE4QP9OBMS98mpbKTeDW7dJwRsnHpMBTFJpV4I+b0kY/NqInVFSyBLANbnMSgBM8F+Fqfxq/h657/Up+GaBnwV9hRqc9bZ/vA6vu+T9E8KPJWns94UfTeCj2QXwCHS9dNL8Xf3Ho/rfewSeFODGDV69AU0y6NFAE1DP3qK++rdB7/1HRxf86gT376zOr99T/h/ioBiXWQkgQgVeIrCC/WomhDmQK+hASI2ARQZKooHMLdCJwGEBBXC3+uERwg+VOHZ9ioAt9H80AI06wGgJ3nQA3BoCut6AhxYwgcPOFnxuFnrphk+NIKIGrWPQtgz3b0i7Y6D5rs1GKqTop0nQX52vmQC4BkjA+r4a7Kx9WLENGeegkhSETBCrNXIMdi/444Rw1n6E96ry7OPuj8UfLxtQ78NA2iSBbg7gIiIbdDLsb5agPhLC3RkYKv8NDbS2YGsatNRAG2oQwf9ZIOydgy1MAzBkAw8UwEEIDzSAqdPQ6za0PkeJAMH3Z0wXniUSZoHvBXU2mcjQgv56TedIKglCpIoQfgwCIjOytd8WgN0bfxoR8Fn9Gx0Aj5Zgq0lIZbsH/ibSJoFnS+C98g9ooHEELI3gliy25yONIiE6pb0NfBlyNEYyENoodkKwgl6I6s8kARgJ4ZoEfuYWHLEJa0LhSBXm7kImGeSfVdoJ1DO2G7WXsehAptupSOoyrCSF904k+6vt98X/ZcM98Hsd4JYIXhQAIg3/f9AAUYhsLQKAtkHVBnzjCKhOoYl2ym+iBtvzDzQ2DLXJ4PUmbJHAVnBQX4jkxfvHhNDqAdHXGQJgv0aSDGItgOseHIU+K9hXnIJzkoGlEKzNHagTdJ6VWEUH4iCKH4fd2AwDPaYBm4Wgng4gQ9V/CoGiuNmD04AQtNGMGzSAAQ2I2pzfogY9LRh7BrbOh4+D30sAencljFu2CUFrwY8UAWRfWwGvVOVfbx2uIILM0pwDv082dUTw8hYs8L+uIWiHGpWgClnAa1lMPJogovvvbePPs/q3Xr++kgCsfgB5oQF9WYKPJqEn6G+OE3i5AqouF59FQOmahQC8rlPLj38kg1c2f30vw+XaoIX24/pMGIgSBoZqoH3wo0sIIGlA9PWcCPrAtpPB8eBf6x1o6cHra+2+tpIFP4PgBfxZtZUJfo4qxELT948D9ucK8Mt9+ccjIQw6QJcEbrD/1g340ATuDgDkFfx6twSf1f9xvuBECYxq/7ythQQGm+5JDx6Brw4CkMGT3wgscCUoQ4sU2t6DR2ciBjTgtcpenQoZVX9NuL4Owc+dVaDursYVkVALX+shjSBKBuvCYDUZjE5BdNkxdHAUBexyHwB6NP7Iyw7sxUDViwge1t+mz8B/LAvVx/c3PeBBCToB8IUGOgqA3iV4yUg6UAOxaUFHDx6CYS8SorMOue0CCJGAf5YfRhoAI+A1CvwxqNkAY5yAIx2EQmkFfeWOXi+nEdSQQA0ZHMEItiagJArQxDXIrj8nCfQi4HZPAttrIahso9oPQ/2/JwV5JQU8zw+7I4D7/sBn4EO6rjw0FR+i3Z9fHtahzsFvJgM0X+tmVH5vaYiNDGAigewAz+gyNLThnjCURQFR1b9d3lZvnVqmj9mEPDKIUIC4KCCjBXywS4N+otp/Hk3QVthOkwEKlV9PQwXjT7s/zwF4Qf9toAAzFdjuaEB6S7D1//U5FIQu2MevO0rQQH8ZmoXE6B/IkgE60XCjVoq8gt2iCG0S8L5GdxkM1cGsfsCMArSCAnrr7dzAZxCEEpepvB8tqHJ/q+bmJGGts/AcAXFOMMeTwC7Pw0B6CtCtA2vWgonqBQJFSwH0JQK29OB2kvgj2HHXAoyeAIsCQO0kMNECAhFMqCBf8mElAkyBbX1tJQP2RJ/ha0gpAfS9l+/5n00CkrQpq0MZbOdAuxmMvHswog62jZj7BnYQe19b14kxNq2D/ehX/p68HEcF+x3yP7z/V/A/q/5DA3i5A/dzA5pdgbKp3v3/wQF4Bb70WkCTHGRAA6+KL0bFl6FJaFw0ImZwm6igSwbbwPn9RMBWf3sN2JgA/BVh/Rg0kQBgePf6HglAHLFQwqQQOwDjbdVxNZjR4iM6Qa3WxwvNxh0JFb3g/WzFQQS8b/ttKcDWoABtUMAd8j9hf0MB2uDXhzX4CHj03L9DBU3Qjz0C0l4mLSLQPicOOwZoVCB6P6dA7nDbGkVuxcNr8PU2JQO4wX5trEqmccZaHU4q8oCDFOpzAnOwqyMIMktNNNAHouDGxO37DgArQZzlmp/14W1QlqHTMaIIx7SCx0+5yza7AKJ3IXBrNAHVDcMZAU/BT/vgv/ULPOA+XiLggAREDF2g0ci6xNDRglegd7P7TWWH5oJfayliEg7bScQRBVgI4Ookg/F6rvpLWP29swREqA3CaG8/FpKqS8DTAV4TiBqIqtxfzaQRLys5I0XEFIFrPbZRQb+16Fgi2LvJv8EFUPW1gGfQv1T/F/d/HBnccP7rAwnIIyHI4ArgWeGbU4eHy6Tx/EeTZIb5bo/BsMBjmjBE08f/RB0PHYBd9eVRAGY7cHRwiBf8WeCPHY1bgBTa9xKTELzEkQX9CPtl0gJiqsAmCT7I8xbjivh3JGFI+D2nBcSJQJ8agDX+O9iBL7UfG4bzAkcaICrbtYHz1ycSmGmAjJfL3CMgT3tQpmrfB7gxSzC1DnvdhQMieG47u75+kTouKNkM8c/+vq/Q7ZYjO/hhVvRq8F/9gGfhP8aqE9EIdR6LTwJ1h0BItyDqB8iFwuNqASscRnYioxOg9ApvnYA35f8e9Ohbfe8J4rknoFkO0lmA2gmAG0YK0DkB4ieEjiLoMD8wBzom27ANZkzIoU8EMHk/uo1mzeVoEoRWKn8L/62EYAX/lsB7D/LXg74uAMr9oGivJ0CNJCGD6i9DhZdQF+gtOp4S+NODRzsDVbhdgv4BqTMNyIL9SCKwL9/FGPp5oQKxIf8A/UX6r231H7YIqLML0Ae2GtrADOvRQH5b/MPE9dt9BGLNG8jVTAQvIaK5TtvvvWQgDvyXIClUA78S9Nfg7VtIBlO7cbsEYkQDMot+ygQ7QwmOawTHnAM2XUSnJvPIYRYMmYPS+sv3J+cfP3d04JYIXsF/EwMbBKB9Q9AY+BiSwFj9mzrSXmcJhFPVHySTbgHJCPvRQ/z7G/SVUETsg0ZF+i3CRoCjhf7y1A9mOiDD7TwdwEoEXjLwAv+avLE2B7Jnb+OqDpBoAchoQJskxKnss0vu7Q2YhcDv4ySeLOg9GsCKiUIihP7yfW7zbTsBh0TQfN0iAWn9f72Z56/Ax9P7j5OAH/Qvv3/QxKfk0DgDuP+R3USg3bzBC7bO/QT9Eeh9QvDPG7glBQzJwK740lAFFgFk8P88CqDGAa223YckWYhr+c0BPdwetl2ocnsfzePAWcVnnAIp6gDVhDLyfV4nqFEDPxHsbWD3k4BDkN+pARqKMLYBPzYEvxp9xmCHQQdgWH/9EtH2TIFpu3AH/cdGydv1j0TQbRrq+D/mLcX3ZACZ15bF378CG0My6Kq/zoGOQwhASDFwFbxyNGBuSxbCEhQ/uEPe/6gAERWQObCVVfjPpQX+rexxYhYFxIkgpgX7Y/vPs+Pvxf9vwt8kAs7i32t3QCP+3SPaTwIytQXP38u0PESm+YER+o9B3vr8mETAUfDrEkPI80ck0FZ0dXh9U+HRbhey0cAc2H7A4y4egoD6y8JfkBiigLdFP8v2W00E8deT2IeAKujZ/QAVKpAtKI20gLWksHedfgPcb+0+NEHefd9vB9rayi8h7J91gBbaw20MsnWAF5xHkyDUCOoXp+yrOwwxcKj0aL6fFppaaKDv6OpHR5sgx5BAlK/+fYhuP1D196o8e7lFBaKqv5YIMnFQpd0FGVR35RJCnCDaABaXBtgbiSwtICMtalKC+1JQ6bx/PLcDPQL91QFodQNKpwOgF/9eqcBxBBqRcKAAVk+ArQOMx1RYGgB6naDhlK+uQQwJYx4meQbxtNnYQwMjt/d4f3M9ZE4UOld1LAh99fbfzOxiEkKFCkTJIUIMUeVnJ/9sDt8/e1NEJOi9oVHDGYhgnSLss9DX2IAqw1zALUncKcDr0FB5NP+0cBQNrEezDiyiADPkt9qGpwoPdL0AGPx/NOKeyf3b9WJNdfcFv6bKd2cLMJVfJ6Y3B6wB9WFUfWWEwKMfGiQL+3bz9XGQz2EHKhF41GCtZyDi/gUCsNhYoAr3UNJ58YidHKqnMb/6AB5J4N73/4L+t7mAkeeP3P+1LNSB/l0SkMEd8DcEuUlguEw6t2AU/PCE/q++Akw6QFf1u6SBrj1ZnnhG50AfkoGIdf7gJv1KcSfgzWWkQ9U33Z3tHXYASKJ9e/YhU90rvD+q9Ej69/wxYJVs506Eg/r3DkMDzEdDBRGgcZay49XihLA30P+l8N+hf1f57/0AoxbQbwYaan/rBMirE9Dk+sBzTkC8JNDEUlv5McB8PP19Y01Gayep+hC/2zvQ/2HGLAurowsNGlA1cnqGGzeH5weiYLZm7h3QQC4O2tXdhvMMk1ZS5ebpgI8eMrPvPGkwaxayk8Yc6PMOBPEdC1XZ+2UfbfOPtxLMQQAG9BcZFoF0gp/RKjxe7+oAw9T7ZPWhgedodgz0gf5KBtrtIZhQAZpAV1Bi36w6t98qVfH7hqGI318lLCjLCUFlxRHwqYEH9a2qb4XjWvDT7kBwfbZA5P0+PNuRuW1yf4yNQH3zzwv6b70QOJ0G9OT/dhoYRUGT15uQH/71MjQLtQlxfDuiCXrtM+SkA+icQdH6sU/xz7Ze7FlubV4TpoTQ2osdpaEjtqADmEU7OkBEFoLeC3IWFFeswJXKXzkboNL+wzcFHU8hTGKIboO7CLi1/P+5F+gydQhuvRbwEgxvtACmANikhLTbj0gCYk8KdlYgmj+4Ymaod7TwahwadICuX0Cm2fE5iNHPK0x/CDV66Kyg1MnqjNFBnhBoLQCgUULfaVe5nq/6EQWY67bXCszUb+7232fVPz51iGB12owK9peyP1T4raMFF/OEYJP792mgXYfZ04GHMAhBkCSmSj+dKqRPgVFGHbpLEGMiGFeQWfSgrY52VxaeDUPSNJI0P7NoisG729HHl78z6hxfs9rV3m4JjgM/lsui2qmThjCfDFSb+I9vwUqG5wwL55U7C+6ot8B+7N2o6r3q37T9trfpjgmTvv7PSQATLLeRAOZhIJHBQfDQQJPBdUwEbVW3+L08EcEE/9G4ANrCeWcnPKRHDupbNynMx5AA9IRYLmrc/YLSiD5EaEBS/s/TgnU9ILcH19n+CpHwegLejx7Mn/d25fdN+e9U/1vgb7bqf08MOtf8EXxaoh+GY8L6gDfhvs4i6HQ7seYI2sv1GchdMsBIG3xlvxcCRzdgCPTn+6q/TW00VE8Q9FaFv+R2VlOM1vm/hhjhDCdgNflVKME5B47I9xT8z0YgPAJ8myb/LqHy36j/Mwqw9AALxuO1JVjiuQAYLcFzIhiEPe05fk8tRjGw7yWQbsfuLAT2VqOId1osnr0F49VM8INACPHDoBz4B5mqqSnUgyh3ArjXxfQH5BbgUS8gP7aU+w0zHD9GGD0CGHf+P1p/DeivlhU4BbxR9a2kYFR58YaDZCUR2P0DMmgED2eg77puegy6PgDphEB0CwlG/i9d+/Hs34pBEQrBn0W51mqGnJAk3ACCHeiqkQ1XFQA5AlKH7Lk8yJKWY3/nym14h2C3JvxeMwD9ZVMz0BPMi1n1RbKl1cYhIVblF3G0ATsRiCMUvoK9//OgcwYMoe+ZKOLlC6/Xk50br9NFz9fanqA8UIYSpCwlBO4kHc4WLLBfBHVaKwKgLQjmP4Un61Vq+3s7Bsyi0WztmLjJwJwFeE0I2vD/1Q6MVwefxfUf32skCPbCnxQqf+QMPEUDHZ7vGeyj020JgkPXXwsldA7SYR1RE3h94NvNtugswcgxXEkIcBPCGZ1rmrgDC0A4K88nm2fn/eTnpQtWyZfybRoK8Dro4zYDIMGsf7saTBzvX0SMbkAD6o9CYbsfMK38cJKD9l2FJt9/VGs0h5Gib33pxMKWNsigFUh3G2un+/N1WUglI/EEx8fq27vUNnwsiOoKecL7kQS8VnWAGCFUgn6dBtQhv40CmIYggwK0uwDHRGAuBXVdfwzHUjZzATLMAoyJ4FmBhzaWBlrHld9CCWpPHRqofBqMReMGTJ78q9rDes1Tv7/0m0v0AFHXNR6P6g30SHivin7V1BOhh3iWPwvps/yE836L2XiwnUT8x2iHgfqhnwn667QHEE8oLQjEvtEW7GYBZDrDVkwNIO4G5GiBDf9fGoFM6n+vbEtzXwP6u9AduaWnGYSLAlVdl/AU+ikrSeEIKgwdaZ4AACAASURBVKj4/wtgHcHtdO2nWKcBkPfxcvnNQvsj2Me9f02r76T8q0IBn9OLKfz1HX8yVXQYGoAB/2UeBQ5/5kCL6+H/OGGoRnLSwdd3oH8r7KkGTbgIxEwVWvnF8KOpHnyzfF9Jod5Px+IF1h8owyitDw/XEgRb5bPqbt1uvn7qBIQ16vtS/u+DP3cR7CH0WWJgd5mTJKYgNzoGjQrfvu99NDBC+bnyW1x/qhTatv2OaMKgJWPvv5kwnMgxHYGFRtJW8VMl3uP+MgoqSZyWFKr7+KIDw1d6+IiOgZI4+d5iYL3imzbgyO+tph9t2oSBxOM3ugHtPoFZ1LM0hF4kXNEBssvVgPdjdXZWK7uKvyS3q1Xb1WQwtVDqSUggq+Vw3t56JA2cz7PXOwGNW1ecwxPhfe3QEUsDsFaAz8jg0nf+iZMAHNg/XSazDuC18Iq1HBRrOsAQ8NLB+16g614jmuSgs3bROxE55D+WDDQNA4ivdMJ9M1b309UqknaDU8ObV9/PwmMPATvTMAxpABLBzugUtV9bLdhNDQA+7B9tQJ06/7QNDHGSwtgZOCIA47InIoDdROQGtt0U1HI3GaoUnCnC/rzBMQJteN17+VaAzYNA7e+PFqHQUyXPUYB7iQYa5ZFjq1Zqpx8Uqu/XT7+6BWC1Xaj0GlBIwMoHu7UzcI/6/Acb8KIq+hzmGWmAYnADrIpvKP7TZeLaf0LAeQkGgebbq9FToI44p654F47tekKkI0L5PQNZPsDwPBpy/ni+wKMN76Vav4+2cFZFf8+JwAraMt0DFB7beA/u4Zz/a+RXx0M/ct4/jwaNAS8G17eSwmta0Fhx0VRxJkHMivso+onMXr+YwdWKbgioy1jp4x4AzIKg5lEA7wvHEYCRmdx11TAuT6lDLVl4KvXkAET9P4RT8H2u+lg9EPQIpw+/NpJ7RwE8HaDv/Mu4f3OdNkq/EfAiEiOANjEALvcWL9gfFV4NZbgbQc6qPky4Pm35QZxtH1f4j+P/jXuaYPcWwIEH/fmEPBoAO4m4LGxV3txOQqDU+dXgey+UwSzuqP++uImO/u/6ogCb7wTc1n61sL+vZi87rxnrNas+giTg6QLzaUCjIp6JfhwtGI7AjBBB9JjDY4ePYVR6ZPgN4owVv6Q2N5hhVHwNeYrM+w6dN6K1sMHZm/Ce7bHe3dzKr1xw1w4JrSQMZtgnoQHlr18fzunAszD4qurNUg/TDqzx/lfCaO6t4tACMUQ6P6htWjDPC1hCoZ8kpODzJ70MUR9AODcgwyqyPhmE+wfHYB/hvSqt6qeXUShhXH+d9SR8DzrDaZZdpSp/HxqLMQuATgDU/qDPRgOIeT8cvz/h/XC6BtE7ACLOWPE0KIS4UUjmZaJ2grBphiWgT41BUVWZfP3AnEIT6OrfoF122l2rMycBoU5i/OXoUZ4/aglsXwLzHNU++FVF3qikOj5HXm2PBitT1WuvJRAB+6O//W0/PY8vQH5IrAsMs/WuVmAdHBrQgrbOxJShXwRSsu08h8JMBpo0+aDTALwV4tbswgzHrftG/dJKIAQb5h9KCssWIMeto+GYqG12/HWGjx8kzqNJaa0noMWOr2KwW01AMwJoNvhMQda2/RKQP/3ecABM3g9uD6BY68Ntz9+nDOMb5iV+hIE+dP/Zs/wwJhJ9mgBnohBuStABUXjugF3hkXF9ZZJAjefKdHZCc389LoStKvIl7QIEb1d9RyciQgFDI9Cjyccc/23Aam7/PZJBhgDgin5CtQvbCzX8ip9YgIFtOAt+w0owp/hOiCWgEGbVHuYjRigPGR/YOnEoqPDoV5z5YqB3mRq2ox5ICmSSgAP1Ne+XV2NE+/vuFbCTRADxtS70VRBCjgBk2OyDUQiUgfl77b7DwaHm2rAZ7osRSOOUoHgKfNBSLI767+oDYrfwZvqChSpGfj3pFwZFsCJg2jeIQQBUiyI4WgD68ww4qO8khuWkkIuDrxWv2nv+UTBpJYiPd0KemTA8qqFiuUF1jWS3BoG6pADJq751JqBI0wvAVPyMQvjcX1zbELltKK+zBiXRFiRxG+b7q3M9xuLdzR8g0gCGNzSM5gNYfqGO9CBT8OHct6oB3KsSDBisUnwsFuISQaRHxDSv0vptt2oeLHMERfRn/FG/Cx01EpgIQG8LP+/i37PKw53xn6sYCM4/JwSRrCnIeB1ZkLsawDhaPKv/njU3wnZ/dBdGE8+YTHSG8+ofGgIjsC19YnwdM/KAnTSsqj6ig7uGgIPw3nYFzhhIIvriAxFP9CQd4HSlnzgxONIdrE7A8ZDPx9fjib8ifgegNIliRgdx95+E1T7+3nQVNNhEzDgGA3T2rEDLduwtPpuuouPcs8swwXFjdTaMKt+jA5gUAQPcf95KJQxYU0cYxEDvsBSmYuukp7AwnqniC9Afa5z8vboI68ImT0t26CvwBzSggkj447r9IojvCn7U92J/Hw0QSdwZKNNjxPCfSxRqnATkdwpOwh88oc4J8KTSm/wdbZjrc+4iFP8YO0/5JJDCfaijK5xVXevqfg6zGRrQf83chvX4aRfAE//6vv5+6490U4ADdO7QgM/5bcHP/n4OtCQhBEFeDWSvos8DPq8/IwzLzjpa8/U6MMSkBklDm8e0mn3QIY7XG1Om8wzN48y7HwhOK3P0/ZwUQHHv4psbdoVeb9VlAjChBCdtDDpOKTh9ZfcagOYq31RFjN4/gwBYzp8lAwYNwBELhZoxECeZxMlAzWGdCRV0fQWGHo8+8Kx+AAxnCIzowAxy9KvNepWfsfp4RR9kUrD88CPVTuXRybhqqTHcnxEGndsgub1Gdug8yz9fHt3Hpl57x/mfCOC29FOSQ7/noAZR5W3Ob24UMpuPYAYiQrQgk1gnFoUIKr4vKFpV15pHUJO3Y5rfH3UFHU4bGkU+NKJ9f2hJyOMxDBDpjAgwiYqvk5TqNl9EH2Arb6fA3yaA4cBtPWewhkEcIQJBlGzYp6zRmr1v+e3Fv27xpzvyI44NGDkCIi7CGNV9Dw0M8NtHC2vUwHINumCGNG8erxOwtQINsW88Tlwdoc+F85nI559ngEDpt2F/Uu3hiXYrkN/pBFS26hYDAkFgErMK67y9mGBA3L5ore5izf8b3n805MOq/t7XU4WHv1DUF/5gugCSOAIW/59uMwl6CHWAib8bvfxWl9/rBGEMTTwDfG+ezEYG4yk6FvRPuPwE+wvc39IRjENWM+/cm5b0W4Pf4WuKUnw/vD6eDbB1ETs5vl77Dhnm/51g6wPWwQAqxnivgQaeS3gy/u/1H4hpTPrIgHAN0mSgXUX13YP5PMIuQAfBr/f70cdeE+QoCX3i8nFMLcAjInBoAIYqt1LhC1WdtvmSab28AYffaeivCB+ohdYQgfUa/WS4ToMsNLHLc9nnvPZLwn1/EefPVf+U/xvnCVSEQEkEQEnEQJO7S7RvYDxNeNYKrG7DKMhtsQ8cMmhgPKKKj+F7CiHYFR5KIIPxOmg5IVAtu3ACQSPh7CzUQOgAej5CWEkIe3vgxz0ROGO//qYfz/dnLT+ZxDr4QW0eNCJBorCFOVC312Ec2TiY5Bk0cAaQmiA1VH1MOwDHQ0kHdEDDf+2UTWhS4Z8diQMicLx8MLBfverLcP/jQzF0P8EJj5+NGK9RCz755S6F/f1+X/gxeP+Wsedv+vF8/54aSPJYFjIQd624MDz/UDLQnr8HU3ztKHRf8Qeno1vyAQJBaLcMtTV3cvgP56COCqd/QP9xLgBkH4BxO13n4hNUDtACC6G1S3zqooZ6Ba4lp/zcAFb7iERKQwQcF39IFJjdXECGADw0IE4gg674pYAnk4HoHPx54tD5daO5vxrugSkMjgiiqc7TVKAT6AT8R4ckbHEQCYR/IZBxJgA+XZjsR7vaoRpIxWqeqfXuGC2CxwudicwePEB1kNkaZCuwyF0DuKv/4sz9mzP/Qxdg3BDkBTMC8Q+loD6UGBzx0Kz6eAX/KArOQTlPHFoI4vVtf4rNuLrca9edRn4xBP7k8w+9AgZCgBfEUZWfEs8iFNZ3UO7TqmkjCO/rWdgco/yIqHcQWaC2EGTzgz5y/iXQAvyx3riyxxV/JeBriaGB9OrTA5g9/eokM+37GszqfA/UZk9iW5UnCtBqBl3XoNN6Ag/+zy6A5evPAp+TIFDn15gQw9rjrOzFX0s2JBVAxa/nP1a6AsNWYGjPNGPLTQgBsNUFvOA3Ht9o/rGDN0tWOCcxJGp+f7++kkP7PxcGv1+GjkaLt/fawpwwerQxBJNW4b+PJsYEgiAYYdEAGIlDNaAbRkIgK3ut0jKByp+8yz23X6GttmBmjwDvChgiYLP5V/zhH6/110sGcKo5CkggCngxnIPoPja0j2B+1BRkiYJiviaLJqghDI63G2nAgAxMCuDdnoD0wIQm+urMB3VuAwbBrFGgGgnhAFqg9+ujKsLxB3qGCQNEEtPinIQlAj4WgIw7/iXc9V/x/yUWFs2KH504bAh4aYWf4TrTLGTy9YbftyLeVOWNfYNyt/ji29mQnqMAltU3ioTtbX343yv/1u0YPUBz6zB702tQucnX0gWaFh6DgPdmhXaapGotw0SFz1qDiTMdd8h45HfcqCPRUhA3+NmKz1l9teCPaMd4urGaewRitNBDdahR5c3AfQmDCFT9vmtQEwqAYXX4XI2n23Z9B/Yb1FL+LWox6wHGbZSo6FR1LzyG+3hriSZvWT6jfXhl2cmQZJDrAbuYAqAHo1GA/EOgD8eGcU7A8eDvH4fQBuAhBL/Zp/vamPTrRENDGLTV/7E1WEPLDlP/PwzU4YhusIMUgfIPAr6Dhv5R4y2r8ldFwiFoYHnmr8TAHbhRQSZOctH598ZYhqt6wP7q/ouqe77RJxvzFYaji/z4vna4v5cUMDXqDAJ5ytktqtBDckyjvJg04hl16LB0xFfyMfD77PZjErGQRRjYIfSvoAXntks0ok8MsUC4KARWnYPlJBeIgLeFrUgDOHYCag0/XNAbWgRwQuLAsaQwIhC1g7+jCNKuT38JfnYSyTi+QQEwwHeT4/dWHYxJPxfOj5oAnRQqgU3YgGZSOaDyK3n/qkDYBKptzR3oD6B4fyRKjp2AzSl80YR/3P+/1vBjX18Jbu+YsrMRgbqPP8zrDLTAaupphfeZtyPs9BPztpLSBZjowF3woYRwBwOWaqbev15b7X4RWsiqYiY6ZkFEIoUwUA2OrkeEQE8HYNyD/rl3m88jCGgO/nPW3xy8x4Q/HBcM1dYg5q8N+B/SBSYhtD0EY1PRGLDoKIBHF3yLz4H/gSYQJRETgqeB2d4vC8L2NVnQn4PoVJJAcP0inahAfdXVI8CFszjRagCTtRdV7Sr895NBpRKXIT64RMFw/iw5eChhEvmmyUIH+k+Qu3cLzOAN6ILlFvgWnx3YWFDz0f38ze9GlfP6UQ3ojEY0gtqRIEbA5/WgQFhsEuIeL75uTzvqHktAWfj/OD6sQXssROcGiRgFn0QVkld7OznMDT7CJKzhMIqxW9B+LCOQdH4uyxIcE49VTSeLj0wKjzcp2oDXQA8YoDEGBLMW0BJw+eAxXejPV/IXd59/tp5rVyYXDw5BlRetSpQAcvgfOwVM8ObzBq/AQ2wX4lwkQV3vNhYFfn2LFgaoDU1ogqsfqGkJYmrj9Tr22KQwBLzbLuzDeA9yzyJjVRfwegWq0H+FThDPA6ZhZwX2M2Kh4waovCzAWJTzD/qY00c+6PM8coz08VNqglzx54LfHuTJK7z2rwX35ABLg1DzsZ7Qv7l/f2yXDlbf4C/irg0MJ0aCuD0wP74MrxfdFlX7tq+vtRdCpvt599EG9Yz3V+P+Oj/n4zLruZHcJ7oMt/MNp9eD6HEeFb6/TMfbWo85Pb79HJo8t3371/PuIAZqMvjPC34nVV6ZB4hEuA7AzA5cfU0y2n6ux89D/35/n2/vWY5Bf0qwf3tPLISO1Tap9qzFB6eap/beqI94NCCbGwgqOItY3CGl446CaQ8i2Q9g0AvmgJOnBoAA0gu17tsKtKS7D4udgCYERy2QIceCX/P7mBW+g/7D9S6Mn50CS0eAoQPDcBjopIA5+EcxEjLweRjXq0UbLIjcBxsGx2IZvlf0ATjz/6qypAmY7bhrk4ahsIis6ccXKHdueAfUgk+RWPCLh42c6zEeKyJpRTdRAOqBbl/Wq/uT+q+Fx3FoTIuCzc6+hN8j4veGjuAnhSE5gKnco3A3XwYlq2sq+lmP4yEOpqEoG0M+mGDYuYT0pKCFHgLHKt3T7T9p8GcWH+n1UwGa8X6kQt2x4CeqPexegT6o/Z4Cr313PHdgrsS2ZReLfpKIf+IMFnmVmwxQ9AhithYT73+p2s+JIVfrjwiHnpAZrSsr9CMstQXP1+1+510N/q8E/YoekMN9OMFvi5LvkRDsy9rgFCOoPdpgaQIWBZjf5KCSQszZJ1ivTvLokpen6tsJAVND0NFqb6GUGg2Im4Dyx9Pn7/0dm4pADAslJzTv+dKNrAPQ0wyySm7bj1RQgbAXsRa4R+mBJzpaQmHLmy0BLoL+Nh2ZRca8uUc6P37k97n451fvTieAE8BdZ2ItqFEK6oOJIYPsiU4woo140Oh+H/UC++gatHYcOFT+2y3AYvD1rM/fpxdUcsAi70c0OxAEP45X/hymE9XeoC0zfYhbcqfbhs09HpwnKMDR6g0mmYyKth/UcLl9ITGQ8N1S6s+gA1HvQCc2pluPvN2Br8SyZyfyxPP/VhCi1L1HWX2CQCuAE8TIq/sBYdANZmTIwqq0sb0HIzhhugBeUpBZLFyA8y+EErsBUYDZHYN9QAAooQwOws+uQlhdESSSqk5Qsh8LSYI6LDS1AbmOvLlRBqQIeITvM36+TP63VfE5hFClCTr9zEyVFwS3STQBy66DMHB+PJWIrfgGnYBx2dTboPa2X49GaBVlePA7CFx4iaGi4ns0aLVjMGvtPTDtmO4XEE8E5Kb/8qYai+NHl60LgAICcUCoJPVeiYG6Pxw/X9VFNVbFn9FNPzXoIRDTyzcpREYB5Fm1EQQn3KRi9wKApR8Tz48SwxnV3qM0q7ZhpdKvr0zfY+gO4oQf+EGPFYW/Xf5hwWsUgxiBbShGoGIx+D2eH1h2EeR3UQMH4zMaUKr4033nzkSkfQADelFbLOQCalxdxvN8mInhPas9bxtGJw29Fx3Y8429MAS0fL33Oeo7qFZeiToCC3B/VSNYuU0fgDnkhxGgMFdxiYEY7MYel+OHPH30IMeVFK1C79l+QdXVpFqHlMAXEf3EYDyfkkGdNvJ8f3RAXU0jpgM7jMNA5yCrtfzOicKG/M9bgEkEjqqPPDEcDfqVwGZv6zcO9avDfOhf4OmLFd9OLBHHdxp51HvOBlnAoQksYjASA1xnIhPsapTCPjbsGB2YevpPpgM73EYeSYIftgPgte6CWesVBB9QEgfnWYMgoeC8ql69bWoRIqYHvSIv/u26bj/jdqZ9KSGk74JRo6QS9PuTiSHm6Z62kLUGH0UO4rwWrhtRETkR4iKRdI8giJ2D2nUCMjsA0TXiVDb98NAf/rCMlajA9wesWHZrAe1dlwRyVI2jx4KkyUHSx7YDe6YD4tOC6XW01puEdAJwaEJzf1uATHi6ZlSCpBQscsh6C1xRcWEG4bCFeKcAVhVlDu54JQIkTT21hptIT/Afk0kMcS9BKfjBJozcDXCrtgbWXxbMAw3INQIxtQJPAGwXmYaBbYh4SCsuKwLOAQ5awKskCMmRg8P3xwlBfbosQaDqyZqBkyQe1CLQACoTgN4qbyHsPwkTiF2pYaj6MAXBmUosQHnUEYCsBL3MW39SNKMJ5PfoBsT33DVJCEbFnBCMOkHfvj6Xq8uw+dgRIhGgAiUqf5QgKDFyhe8nnYrlqn9sG1GoAfirubygX4H+8IM1CmQrMFAJ5ExzKIp54nPoVU2Auh6eBShDlTV4u5c4HE/fVvjFrsII0Ik6QX+Iq68jB19ziLoKC27FYe0gC+j1RSS+BgB7AvAM3m8HLdy5fV60C8RMVuhD1ieQB32MCCq0QPJuvuw5IHF/geMKwOPdpmsxBwVEfGEOgeincJqNmuSFIPhPq/xM81CWIIi+gCFBqDX3QPYd2OcCRo6GZBoA3AM+00aesAOQ7/2Pe/vBCXoguD4OBD1WfPwClzcui12AuH+gC0gEwW72KfjBCQRBr05D0IQc7N8PzOCMehPWK384MPVDJQim7yDdoiRTItzzFV/ZOX9sYFetP0fsQzb6O7wOoFjxk89YoQXv+BmSN+yYHYO+BsDRAXHhuJXsEFbdIEGZQWUkNVNzGA9NZUVBIQL7jASR0AclE4Pb7JN3BO72mG92+o8UG3nybj+mASh0FsLKn9GPxDrEcS2Au35BzHO1BksriIJdpqWjKR1wlpR4fN977rZqI+XbYjYDgVDpcYQalOYKMiuQbB3G6Pu/HlMbi9a0EMkksXtjvvXTfgMKAEZRN/i/O7yD8Da2S2Bdh3ICWfp8yuMkYl5a4df4vVWt4UF0yyqEnaT6swYyWB8/j111Y1ERS9oB0SLMtBGDEBD1PEHwtdjUEAHnqmoHU4wCDAoAS+lHwtu9eQLUAgmxVvAuMB9cELMV3m8EUtcBYYI9nkNIEEJYrQeUHfnzzRyC39j8CgSkir/E0P2odnAmAqDnDIhqrtV9BDNS2POjv/0pwKr6z1h/PMz3uf9ykFYq9TtoAXSwpz0HljdvBCVAPY6t7osv6gFhMpkX13rcfXQMIpuTsfTibkfOPRAC2meLRipI4mDPwMD5x+v3+Ey+qEfACwoUEkKQSMZxYJDz9R68PyP43yvo2aYf881rNQbZgRU/jp80QnW/hdXqJxMvCFxXQSNHpE8QiF4XI+wFfQcw7VL2Md7RRajsKgh2D+6SLAKPF356+/7yXYBTUgFy/38StUjFHweD+iiHh8/LV/i/TSvGk4L5x7F6AsIKbgb4C0YjgdGRIToGUx7cgS3JKP8pRcgak95BJGQbjaJdBYQ1qHYnYHL8F45QgHx2gLMQ2cDxBD/4SeR0LSDi5XzPQNjM4ySE/HGG6g+ugltLNSARn281BPtNO72eJLjdX4ITSEgpQvJYFEUg24f1qAYQNQdxx6Q/RcB85j9f+03zf2QV33IDPHegNgPABTfqFR8cZK9TA7/ll0EQbUUHW8Gr1d+MSadia+LRHwhunv87yWoJ3h/pRDwJAbDNQQFd2P2mH4kP/wDT/ZeN3CK3+ZjvgVpw4r20AMafb58j4N1UMknuj6iCx883PU9g2VHVH5JX2eEcPghSgRBCKPzK0Q3fknwPN0Hk0CyC0zBkz//7duEetgFjVtypASDI4CsknYJgYDhqsBxxy29+eyxrAZX75EEf8f+CkOcijMDDHx4ASYGGu8WHgPwpHJc0qOG8FgFTuVk0cRZVePFwHEIUEu8xSHoL5qWg4I7/HgOKXe2dcnu2SSdCGIDTA+AcxY1zYL6Q6AAFu+/1GvjKPSeEoJV3NiM4Dz9C6oWkEav+NWjPWXNOIkKgNTi2I8LeBgaZHJxqrC4oNXoB9pzzMws/OW3ghSyQJgjbygOVEDhoj4nHLld8HPD6UUMFVLIgKrTL7cFoBRLQgEdXIseZ2/HhFPKbk4d5tYWwwR0nIFQSD2P5gQhs6meVfB+Bkyz2fOIvX/zxqsSODuAGIOLtPNnmIPCrv6Kqvgz3q4tCwNl9lWYfnsdHj2HTgQw5IBHwULmfSu1jEV3gDFSxTBmqSEVqiYK2IkWcRiAkwV/cyW9YhqHXDw9dkNQAcO6HFNJT7oChfrPUYc3KY17zAd+evAwF2w5SCKLV4EuCEKsKfjBVWHu9Q9Arh4CoBqEMWYBsNX7YgKP/69uC3M7/mOOz232QT+ox4iCyJGEFP4oBHd+GVvXBwX35nqp7qeIbV6L6tdZub3ueJ+gBIKgC6S5gOQFxDoGr+Bv2nzqbknd7ph/EmXzO0o+kZdc/wqvQkAOUffVMzKtYgx5Vob1/+HAfCdzHSiXHenX35/2JTr3KZ9Ruj2lYiMhLIFoNyMq9hFroeYMTE0bSLbhb4l3YlFPa6hMd2jk8dmrDgdQCnC4/+ANFlYTB6ATlx2GDGXP1rvL+SnWHw+cJes5/rRWt4H2pw9GklD4uSMpwasIQiaYR92gIyFX5S8dtRZt/nCAH48VXW3hRE/HKOsGquj8EM85Q9cfeAV4XwNGAlmIFIwPYrfLKuxV476RRetzcdeAsRSZhiHizCKEIOHn3EMOWy5X4uIJnXX6sFiBFLaBm/THOQAkVJK9j6TKwiSDTBWpwHkSPQJX7U959uAkoaTUuug6oQCBz1Zlxm0OJSIoIw04M+7zCGuYiznCfHww9AN6Ir+HXA7lfn2oBSJ2FOOh8SzINfmcAyITq8JX/sOMPx6A9LeYtVfwgCBZhdu25OB9/XmWWNPUEPD5dUuJ68wd1AqD2+w1PI9KxE9BW5t3z/igdYGWiL7L+wPv9jgVY8f0ZcbCKCuLAHN+c5wa69Zpr0J9t2KnpAGzyiAIPiFalJ8/xXrrA6Y+/8NoDnWCPNwFJzf5DpVkHte8hx76P+HU1+HEytEeSEIzAsu5r6wPJGu6oLz8VrKofXLce+ywIHhNa/Dmw8LrptWXZ4NKZm4pr/QQ7Qk8ehMrPtAF7PQCD309QgRgRZMKgAbFREAfBBXNalbHA9cEHMo4IgIUuPjjBWEUFEQpYTkhVO43eRiynJw9Jjj8TOUIlJExK+0wA4gWgQvcFBHAc7P4/u78/Ff4CC5ATB3P3oUwFClYgcALcxzp/B9Ez4DUV8RjBbsCBrMH4dLNwIDaCGhA6o3pXksdBvYBsktrXDgNJKAFy1Z+ZGIy5NXgXoBT8a3ZgVSPIUAMV6DjLxhsV8wX4n4ibbONObHNyCr8Z4FinNFjg8ziiF5zSV8A99u7Zdf5OisvVaAAAG3VJREFU/kIPAJLWX3hUIFD6o7MD4WkHIMXBk4IftSrPNBJVk0OoC7ice8HGS8XBKDoz/YFBLaQi392lGpCMJfhD9xVkx5Xbj73P9V4m1j0v73x9FjDDPlYvATkgFAVWcdNvJBamliOjAwRV0EpeRymAe717kMYRyy/j5FwFBX0fP7Dyx8gq8wn2ZXi8GfGYR+lFcGJSxa3Y84WgzBHetlU4cvKY44Ps4iP9fsgsPGEhQTAcHqwwGCj61SoPexKwasXFqtxq8qhD9SixoBBYcJEDNzmIoi3J7QkoJActVHocTVpPBCDhElAvMDK1PT/Sq3DwB/ygmyB9GNhYDH4so4Foy48kkPtZfZEv1PQTxYpyX0EI3Bu+/5krcN8fgwVdwWu2JNVNWAk+PcOOPMNdGFyAZ5Aj6gicgzNfwuHZg0HrLxBWfjSRl88fVCo/apX/IBrIvf65ZxtEoK9Bec4KZIPLe76osQns46NwW0pUPCPAyMc4A/KXOwZzFLGbAqD5xhhbgBcWfoJBAlarcCSQgdQJ+Movnih4gjZQTw51rz588y/ZgxVUEAQ8soCfX8OR26JwujCLGFAMsOjnwGrlPuQw9D/PPv8BYVR7pG/eeFtQpsLzR2KFI8SwKj9KlX++HeLOPuSBKrKeHBi7L4b+Kx184+ptAp4Trcscv69oARVYzWgaK01H1X0K3zNSmARKtxXYHvwJuT+8gLGGWgpHcWOmBeljFB2Ckg6wiAYOqfxEK3GMCAj6kIiTWdCBCXhkjUKMgJcLk271N9uLSbtvvK0S69OXAvoA5z94VsFubbmZvx4QAnXgBnJxENyQjy38wef81uPhxMpPJIQzr5ckuUTKe0wZyN57iFTWga8GvCwlh5UqvYgmaNV9XSxEVWs40kkosFwA70RgNOu8mLZfR6wDiwRa35y7j08NksqPQhcfkRBK/J8R75Iz+9C8gJpqzwiIeZII3QnYOkJWbVEI5jNuA+o2BwK82ifwnpSgHwaC+GNAdmW2VXfC+vPu6wR6lBj84C9WfvivZyUhZMJlJhjSukDlFJ3g4AvGJfC1iEpQJ/CaEd7G9wds7p71+odruKrHip/C7RdsxeVjzIxhoNkFGOW/+sk/YVAGtltfzZAIfzix8gcHhZCXpcGN2u69qWqD9OlRFAy7x2fQBhHUiETB+DocqvArYt98f+AEAXApsEmEcNLC0t2uPHCqPQIXwHYDfI4/9+8LMpchqr5HK39MJSrBXwnutNqjovjHFdq+fcHLp7YLR4mGgduW5hFpAXUoL4cTTuW5HJSkB5PC0S7A+8c+837DyoM1J9iv/po/o3BunlDqPjOSO/YbLFd+FGy9sxKFeT8b+nLNPrkAyD53FtT27yUS32yqUaEGTMBiASGcZ0FmK8nWxbvjC1q6WQC4VdWdAcBY8eFoAzIrC0b7Wt8wlPcIdE1FhUWeKU1Igv8Q/0dl4k/NnYSxdlDon8diUDeuQB4c8XVzcahRgyyZmNC+LAgeCfSVALde8/t1DCYawNoePGT83wlOpFUdOZKwxn89OsMEf0X8CxJCBN/dwKbFwkSMgx0ACJJDJD4iC1JEYh6XcEqVHpx4+J4I4UiAl26r5x64sttvSlAn3LBuQCz6edU8C+J5epBrC4YP52EFDgHrCw1B0eU9bOaTgh3wmYvQV3Oqqcf53XnVNXUBELX1xtSgFrirlII5d3HFulxBCNEfZx0h7K2f34XwdHpuYQcguN189Ow/nPXclaUcqMH5leCXjKOjbv3F0a7i2ZaRHmBe5zwnhA9S736ZC8AH8LHkg/T5znYgmES1dtuzGo92qwHIquiWX+4KgVLd8utv9Ml1BQNhEJW/FOgweiTguCUoQHkEwYhjfQIgm8eAzPKzHqAG5xGiiPyxeGRRaYetUpDVpHVC1T9bHGyaknb/TQTnuG7rDYwYCUT7/cMjtILzA+Go/FPw581F/mWeTkDuBsBCAK8ki+A29nMzPn4Rzjv6QV7xWW4fzQFUxb9jQQ1qc28kMi4mDl1NBr4usIsz5ltZqNm7AeJXfuTHd7nioLEyPBISU+8/tP1AC4Il/n+YGmjg2NiBRdl6yCw//zG5ph7bqaBuz8B4VMU/TqSsNPbwCeZA1cdxyG9SgKzRZPL+GXFOiH1/SFZ9wX8M3zUgvH8a4rMBjZj/h1W9MrwTiN6MlsCKiI4gycBzgV/xUaQGjGDHwHiYi0VIzeEAasCpNuL76AC7BIEl7i4AIxnAfoMxk35eJbZ68wWEUChs8IPz/EEE9BkUoNA4RCWSLJkY1h0Y/dG9bVCtUVPe7QRhtStXG4nOECDfUxc4Uw/Ik8JkA9o9+a83IrfHH11EdFUWc4phNgVFWkPsIHBnCvCCYBSgqEN9qtoXuwHhByYoJJA7BxIkkRwpDGgAHo+vQ3ZGOwCFJCJKUAx4MBpFZWvReeLgtBBkDDQu2OJxXa7SE/P4ZiUPHABjY1DsFIhPAaygWewiXK72hHjow/k8gCL6gKES8qcDZ7A+EhYlWCPGCX1wXIwzkQEKt8cP6iqkC0FEhFj/ZYtvXCtwuBLcDT5wXN+9H6ZEIkTwV/x/s78fXFX3siWHEKrC3tw7EFZ31Ll7ttknQyEMGgAqCaVe1bGk8r8nFWCQQR0h7CY0dsU/mIeIuA1AGCo02Q0YVXxub36sG1Qgfo0CBBUXxap+ECFEycQVyViBEBFPt14TK9rZHB9EwMG7DPXOv0OVHkdtx7OSCXfb3av4CFZGTwQBwT7/hKPHE4PzpJ4L4+FM9r1n8B+B+9R9I4Fu9brYUZgCunZWNxdQgIs8mASBQ4F8hJpEiaf4GPihk8FdAxin/kybjZjTj+mAQy6ihZ9whDvHAWB6BKrBXQr+5SBfqPaINwiz12UIwoTmbPACZY/fshBBBKNlW8ZCHwH/cVKSOZMm4Mxk4OwE9JeB+EFkn1IzcPQoiSB4vGgNeJSoik1A7m0TCmE/HrggB+/1M12C1Z18ACGoIeH1pH2IhAqFWgBq+kDFEWAvA3X8tpW0cnSD5WAOriOHhnYraF1eLTkS8P/QsHUBdtMPnOrMaANJE9AZiaKWII5Ue/8PTHn/UcCSTgIF2xN4zdmAQYIAKeBFl6FiO0aKfq5jcImHfPwTxcEdRmD3LcFoAva1Hdjm9UgGggI9YOoPkOBYLsT8HlG3nucMDGkOOJ8CkNOELdSO7D5qqAeJYBb2GpABgRi2gxLITgrOQ9C937HgB+0i7MeRx3gfPWCXLtgbLJAu/gCFBPzRX8eADJqCvA3FViC/BlOQC4LZyrBq8BdQAOUKoKjqR7v7EFfVFMojPgEoSlJesNIePyLHwW9NRgq7E6HvUN8A0yj0wyWDHRZ3J2A1jHdMyu3hCGwSDwdRir7h9VP7AKLgPoMCgKziOFLtrUm8aIFHlgxYfz8WBYUU55iAXauo+evJaIK/NTgRJM9sUcZRzcCnMdNKMJc7usnAyrpxHYkTRHK+n1HxS01LheAHqRWwKIDqLvQC0+PupHZgBawfVGsiniTVHwZHRqbUI/D4Cd+ftgyLAR1ehkIiqaKFw7MJEwUIuK5zsu4svoFYCFKgBJZACBuppOId2RDkPZas8H9kULcA9a0KTCQDGtpnzT+RMJiOGseHl4BQ1C29AWUXIIf/OIwwqoNEK3SCuA7FRiBrE9B4/PcrGJ1OQNj83F4Xbol/TgVHfMiIZLAdcaVkgh8sLrd+liNQH/FqsNTfj15m1J0X+ffZuq/gTY7QnvIfJz6UzBJLs83ItQpt3RfZz5iuGfNPajpngUm0R8DoA5jDlzsOTAwZjzsC3Jjxg7H914PjlcskGdghgx9HG4OOQH34uwQyzz61/0qiYNQjXxECuWYbGM/DrjtPH/Mw/K+gBLLSA+cEfPr4MroArzcDuybbr8Zc72i2UnzeHnTgzD4Ug78SzIvCoARVOQxaFFR3TzWnkkHUVFShEuqKxZnKz4p4YYcf8ZhYhuu8wFgSHcuuwCJagI4bgchJQK/qe9c/RT6nGcg6KGREJpb+MI0EY/b0jcsni3AJBeCQNsBOFVYoApcM2Aom4VFgIRdHpeIG8D3YaxBD+qCiQ+rBOSVnci8hzkAG1t/pgHA4uwDzmu8xFKkkkIqCfkIRs204r/hiDgutoAAcowBMZ9+KS0CcXVBOHCvJw2jMQSJyeoeExF2DuTuRcuWAo9sefyUQ6/oBaIjPtiRH1KvQKvygAHb171d+vc4GRMDPoxN/kL5pwlVh1mBQ1quQJAJ5j0TgOAis+h8d3mnC8xTKE34+8sDNjyVXE6nFMN+H39TQDmocHScENvN74LoGScGU4f7g6IG3n3C3qnG6JBS+Z5tHOOzRYQx+u7MZmAl0OSsRLAS/VIKfRAWU92+12aaVPksGDBWQuCMvgNy2M2Mt8EwqbjosZAec5xLEAmXmcFTHiOWARWglpNpjdEtBQRxJJU5VL5/7F1X86XntXgUK4q+KggsUoIIK8oA+kgy4+zLaACqQGTVOX6MBWdehL6BxHn+tlyBMDGAqufd7WOX5WTJwKYDfXJJP2GXDPk7Tj5Ed7BOG7DMFaBRAJgI/+H2Ngeb2SKb0zkoGlQBHkefDr7xMA5HZeJPtKIzyApI9gmnPgf1c3mulfhe0gFekDCdNFnrOwi4Gs6eTACNjB+Uegcgojog4V25P8bctRYY6RL8AJklE9ACFAGZdBEahd4d4CmghFhbzcwaXYH5qTlS6DY+KfNH5Avzjo2JJ0poDkSCMxLn73H/eB+ifvgvyIFCWAji7BWC8hd0qj0FziMdrS70BlVbgamIgcmotGZDNPwm0L9l5iHv7WRoAFx57ScFS2r2iwot8oKu8l+TOCOg2mZ2nFdjTgOFQENzKkJ8OjEnsE8f6AzyXwT6MNF3RDRnuj0Lwo6wTlBMDIyqaz6G+RiLJMg/KUrQV/rh9uH0tWduwoxmky0kSMQ+rnXxZsGadgnxfgk1pCnsIsGYltvfdzTOBIclIsN8MLAGcz5gBwj94AE8DuC9Molip/JGwB57nRyJiyD3pyk6q5ij+3TzRLohcqyqCEQBTepF15+WVmW8SEr5jMUUkx3oMIsrH3ndwAQganKzyMpOJNxMQooGBYwcByw7axIhgPRGEr6GSGJhkAELoQ1YRg+dPeD5IIRDIqq5PA2Jh0Rq0YcS8XBi0ghGRFpCtWTdum5+yLOsQf2EuYY8AfnbQZDgCjHxBSKwTGpt8QCIDVH3/4H5OwEvldhliINwAFLsEyyIfGKV+vm3eEehVqKTdNxtDiPoLHCRiuwTJxCECxMDqDjTvZ63KaPKvRgV2i/F3ohm88V8LN8hgJcXD5pVGIPPNn9EBqSQC0I4AMxBUcQNCkarkFgSn/oCs9GCVep4eUG5BRAOcQOCWlGSc3If0IFqRfURQGRrKewPKEJ9sLnIowKCcw+f48N6UHjqYtgInaCCkBbPSj8VEkCr2g8U43wY1xX/BNkwreQrzg+oaJghOCGTU8RBxuIp6VFOGoEXgEsBLIgV6gBgxoLSI5CgiYNT+GBHsU01GthrceiMUtv9KgAYktgVNeGrBbtiOQVi9x8WjiAW7UNUnm4Vet7WtsFgDCDYEwQ/EVL1PnQf/xCDLTowTh4c4HPRDoQaiwhKIAae4B7xgCBydI/CDPOrevK0FR4p6w3VfoXgQiB3T1N8Y1PCD0X19JqcHGfzB5WkQE4p/kdeXBcEVUXEIFqSij82lMyrWq/7c+LFHA7z5/dwOHHg8s/Y8C2CmhbmALtare+4UWLfb25BmXABKABTniC8gRAP2yvDAiUAsElnrxFzITQa/sAFecAOY7zPV/8jMQHSbWAiUPGkQNABhw85xrSCv+mMSzFR8+7mjw01A8f4F8S/td4jnDHYxpT8/OEyV3gz2+GTfdAeAszswfJNGlQhEIjB0Bls0BKn4Iw7WKu9f1gmSagmvqleEwJwnZwjO7npz1HdCJ1hS/mlBcRXyF3i/M7NxqJFoeH27z7nnJaBmpUZKHsTbGUc1ALEoIGsGYl9ixS50gjAT/VhB8IzvGTrBVfWEz1MzAkRFTtecW731VdjNQPukVdhdn0Y8d/a7WYH6i/TBPBzUFwAlHwtGHOQISrgb1AMUgDETTA3+THAdeRJhg59V/Ektofa9I8wxVICkC7QQSAd2O3cftzPzdMK6aA4iZI4ILfYRbb9RgqICt2AxVnYZ4kkBvHOBxT/zN9ybHx/f5Ql2fkGCX6ANm6F8WCfqAS+Eq5AGcHJd2IFHagTMHAAj+mWBnDXuc81CjhsAi5dL2K8QCYI1aJ/PJtSSxEFXASv7C2I3ZB9/a0j/7nDn/j1pHsz9Jr8fNpxPBUAUUYD4wz5GBlmyAiORjtAIGDFwzSUwqiNZ1d1tPiB7/Q9VeI9KeJU16/knkEeQJEALjY4rkp74fCZiMDSA/PgvT/aT2gYgp5E/P29AKBQAo6TRth5T4VesQFb0i4K7RA2MZpgyFXCEQHCOixuYMPgy2L7+45ezSSKt2oUkURlpXkEMOLSiXPuDQZjk63N5bmzOSxQdLHX7AhwUEA0BAeQPJIQzkAuFlOK/GtyLdiGDKEBdllQ7YouxV2Xdwza9So4Kp5Z0yAgUhTlJgFzSFrznIHYIwKcCu2/L3LsCg6UI1b1/CA+ApIV5/32HqOIjdQusE4azip5Wc1b0q/QGIAlaWEJbXP3r/L+AEipw/+BtkQVY9fIM2i/ZhgVEgJO6DZ1ksVtlYdoQAPhVO0oKmYBmnAYco4DRCRB3TwCziptaE0auER9/VzRqKNOEYINOQg2m1l9GpGNQAhh1v6UmxNQh2M4+LmlUzll0OTjYQOaGlZAEMCrdhmBphaMBwBADrSQQc3//He8KgFETT7p6BHnjj2X9EXsDjrgBS6ihoAmcSQVYmE4JgYWFpp1waAQRoqDzxDhU+HxSnZHz/9JEY6Y5MJA+cwoWrt99+U3Mc/9g/NQTFaigAEtwB1yBzwzucZSX7RZEILhR1d5GDCsBLVUdIQvsldZfEJt5i/MHx2hGJZFkVVyK242iFeh58oBUFqIQbkfp2DV2X0CkAYgv1sU+P+I/HmBu8nErugdRnUWhfp+A/ddlbEH3uQlBsNobUEMHasK1HOYn8BEEvCUaiuigXRIKj+sGOPA4KAWz9/s7WxcgB4+a6/fI2osEwv4yOENAiPf+wQhbc/5f0gGisWuQaRFmGoIqguARWsBQgTTocDLMT5OJUQnhqdCEig+/EShKSEgTVV0MBMnz04BcshPnLk/+OaV0/dwKzB4QUt1NB6uTDfGOP+cNm9mEsBAFiM7AQh9AKVEU75vy68jeOxrUC4mDEuYO0oLqoSdHaEF2eXYYSm0V+oEOwpLmYFOF3Z4CmAeBTIGueiIw2xoKPzDBJVBXQ5g5O8/twwA+QguIjJt3+g0NQEcDfUXgO5gsqlTBLkQLdl86K3CWneitQ8sg/5oWAUJP2C3V3RoEyji5n4b9lB4t9pz2CA+cAFn1Z9I/uzYsU/ELtEBOCHYQQqGcFejV+yeuRJX31zsKV5IGjway9z6PLDxKwNEPsBuOEiqw57jGgOtZ1Y++T50AuMFl7hPIbhskiOwsATtRoc7rS7dXrpcgrMCGJca6ELJo+Y0be0BW5ZKGcFz4y8W9BduwcDnK9iO5fagsKpp9ANnvDPxeP8THNyIVFo1AMas8Qk5v2Ytm0LCCYAXqn+wQsPTBh/5Bcnne14Os3uCQt28vsK1WUESJFviBgAW//3u9PLxusXchcCR2WsNzv/ImvgZzzkUByDUAIrjTvmSHAowpJBQE4SUlxMxnARlQbIqkArVAJ6pBBvELCCKlkyCDAP45BYfEPfcUpfMch3Vn4bheYK4E66BxAxHSVd5INgEPgU/NBCDfNQ8Ho1CoINAPQAW/QT8OCIZlNFCB84XhoDChFByHGjx35v9BLgyhmojqHYb5QYXnuAecvua0hZe6BV9f7v4ibvgvamrmAc1TmaEir0LQ9h97eYAYVoM/nWA60i8Q3Ifezha9BqaaL3zvqd6IAuwwLSCCuCLuJWch4h30giPtyiAphKEBcCu9BV5wwzkMxID8rhMwdwMhcSFgrBT3RUTQboAUg3+p+Qe1IGarOioVnazmefV3lHpwA0AcLWCahUiXwePHWJsP+GH1gnp/we5KfOhJAbsj0H/BIEb04TbrTPsAyb2LLu93KwfCvn5PLAwrOXAa72eEQRo1CNdw5IprsAZ3hApy9zlcITG2vpCihsRSYxNS+J4vdBZ6B52eqRcQ/QXmSjAWSfa/5GA5qEg4iJFtm624AqXLrSA2gx8p1Mdqcghv41S0lSp/xAYs9gakQc4Ie2RTUYwYgt748mV+FU1Xgp14eW3XYZ6cdqGTNHwHICTwEeTPl0jEZwIgP9gDEaogeg5IHWCF+1eoAhvEKPB/EAeTRsM/pSAP5wjWEUMM1/NJRhwJbpJSgK7S7zF3EOsI5jBQBK9DV80Z8Y0COzvmWzJXgDl40KEC6cqvqgi4OB5cpgLFYK/1CvDiItXqC6/S87wfAUfPtxqfGNzlYaOjlf1IsHPPvffHgDAoEeEST4ZLZUd/RSo91/BjXY5ggWgQ4In3fyj4mUqPrInHOCLKO3wUwRsfyXpt1nEIRLrqcWeTuk7bigsbid1zD4iDRQtnIdQsyIXnFCn1I9D7ADgxEhOvR5AJosoUbu1FkJyYCi9OhQERoIx+4AX/YqUXQhtYEwKN4Cy1HntLMmtaAQpqfrT/UCoLSxeswjA5UWPPi0mjajUWxMTdVusNvt/ChMdmILK5IRMFu90BMEzFYHdg2GAgeYVHMMJIBTA7EFTx/5fpgTFXz9w/en0ZjD8kCDoKPNGwlB01BmoWQbh+AxR689mBponGJOr9OwmMu3dtJ/ylW1Tik4ElUPmR9RqII+pVhD9ychABMQ51gOIZg+/G+5mGIzLB1JJC5WhzYjhJ7IWmLDpA8jzsAafUPkB2WnFBF4iSxkq1ty7f25rv/+EQLOxs2oUdTSA9HIR9swdBlCcFe9owPC3XWDDC0ISVzsEVbSCF/sWdA5Fu4HJqankp2SeQCYYrImNalfmhpVxYrGkUS4LeSUjg8dD7+D7w/ybIfy7vlB9/HJ978zr7/45Qgajzj+4EjIK/ULHPRAOlKr/aG0AFcqCyu0GcW45Igh6JMJmhA49/U+cEssHNJhtXDC1MOya3j/sAiAGcrEtqtgjBD6wEzSDc7D8o6C8rIqAZyPk+NQoNLAZ1hR64Yl1FBY648smUYKnSg1Xwk/0DyRyArByMUobyByhCcPnOaPyoegREFS4jNfYAw+IHCjdC1J2WDZBke/OyN85J24WiXwDYPoJyYuCD238ulvuzwt6KgHf0shWKsqCFFGjB/w8HU8eeTED9wAAAAABJRU5ErkJggg=="), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return l; }); var i = n(2), r = n(6), o = n(25), a = n(4), s = n(3), c = n(13), l = (function () { function e(e, t, n) { void 0 === t && (t = 0), void 0 === n && (n = null), (this.name = e), (this.animations = new Array()), (this._positions = null), (this._normals = null), (this._tangents = null), (this._uvs = null), (this._uniqueId = 0), (this.onInfluenceChanged = new r.c()), (this._onDataLayoutChanged = new r.c()), (this._animationPropertiesOverride = null), (this._scene = n || o.a.LastCreatedScene), (this.influence = t), this._scene && (this._uniqueId = this._scene.getUniqueId()); } return ( Object.defineProperty(e.prototype, "influence", { get: function () { return this._influence; }, set: function (e) { if (this._influence !== e) { var t = this._influence; (this._influence = e), this.onInfluenceChanged.hasObservers && this.onInfluenceChanged.notifyObservers(0 === t || 0 === e); } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "animationPropertiesOverride", { get: function () { return !this._animationPropertiesOverride && this._scene ? this._scene.animationPropertiesOverride : this._animationPropertiesOverride; }, set: function (e) { this._animationPropertiesOverride = e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "uniqueId", { get: function () { return this._uniqueId; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasPositions", { get: function () { return !!this._positions; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasNormals", { get: function () { return !!this._normals; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasTangents", { get: function () { return !!this._tangents; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "hasUVs", { get: function () { return !!this._uvs; }, enumerable: !0, configurable: !0, }), (e.prototype.setPositions = function (e) { var t = this.hasPositions; (this._positions = e), t !== this.hasPositions && this._onDataLayoutChanged.notifyObservers(void 0); }), (e.prototype.getPositions = function () { return this._positions; }), (e.prototype.setNormals = function (e) { var t = this.hasNormals; (this._normals = e), t !== this.hasNormals && this._onDataLayoutChanged.notifyObservers(void 0); }), (e.prototype.getNormals = function () { return this._normals; }), (e.prototype.setTangents = function (e) { var t = this.hasTangents; (this._tangents = e), t !== this.hasTangents && this._onDataLayoutChanged.notifyObservers(void 0); }), (e.prototype.getTangents = function () { return this._tangents; }), (e.prototype.setUVs = function (e) { var t = this.hasUVs; (this._uvs = e), t !== this.hasUVs && this._onDataLayoutChanged.notifyObservers(void 0); }), (e.prototype.getUVs = function () { return this._uvs; }), (e.prototype.clone = function () { var t = this, n = s.a.Clone(function () { return new e(t.name, t.influence, t._scene); }, this); return (n._positions = this._positions), (n._normals = this._normals), (n._tangents = this._tangents), (n._uvs = this._uvs), n; }), (e.prototype.serialize = function () { var e = {}; return ( (e.name = this.name), (e.influence = this.influence), (e.positions = Array.prototype.slice.call(this.getPositions())), null != this.id && (e.id = this.id), this.hasNormals && (e.normals = Array.prototype.slice.call(this.getNormals())), this.hasTangents && (e.tangents = Array.prototype.slice.call(this.getTangents())), this.hasUVs && (e.uvs = Array.prototype.slice.call(this.getUVs())), s.a.AppendSerializedAnimations(this, e), e ); }), (e.prototype.getClassName = function () { return "MorphTarget"; }), (e.Parse = function (t) { var n = new e(t.name, t.influence); if ((n.setPositions(t.positions), null != t.id && (n.id = t.id), t.normals && n.setNormals(t.normals), t.tangents && n.setTangents(t.tangents), t.uvs && n.setUVs(t.uvs), t.animations)) for (var i = 0; i < t.animations.length; i++) { var r = t.animations[i], o = c.a.GetClass("BABYLON.Animation"); o && n.animations.push(o.Parse(r)); } return n; }), (e.FromMesh = function (t, n, i) { n || (n = t.name); var r = new e(n, i, t.getScene()); return ( r.setPositions(t.getVerticesData(a.b.PositionKind)), t.isVerticesDataPresent(a.b.NormalKind) && r.setNormals(t.getVerticesData(a.b.NormalKind)), t.isVerticesDataPresent(a.b.TangentKind) && r.setTangents(t.getVerticesData(a.b.TangentKind)), t.isVerticesDataPresent(a.b.UVKind) && r.setUVs(t.getVerticesData(a.b.UVKind)), r ); }), Object(i.c)([Object(s.c)()], e.prototype, "id", void 0), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return a; }); var i = n(2), r = n(3), o = n(5), a = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return ( (i.maxSimultaneousLights = 4), (i.disableLighting = !1), (i.invertNormalMapX = !1), (i.invertNormalMapY = !1), (i.emissiveColor = new o.a(0, 0, 0)), (i.occlusionStrength = 1), (i.useLightmapAsShadowmap = !1), (i._useAlphaFromAlbedoTexture = !0), (i._useAmbientInGrayScale = !0), i ); } return ( Object(i.d)(t, e), Object.defineProperty(t.prototype, "doubleSided", { get: function () { return this._twoSidedLighting; }, set: function (e) { this._twoSidedLighting !== e && ((this._twoSidedLighting = e), (this.backFaceCulling = !e), this._markAllSubMeshesAsTexturesDirty()); }, enumerable: !0, configurable: !0, }), (t.prototype.getClassName = function () { return "PBRBaseSimpleMaterial"; }), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "maxSimultaneousLights", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsLightsDirty")], t.prototype, "disableLighting", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_reflectionTexture")], t.prototype, "environmentTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapX", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "invertNormalMapY", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_bumpTexture")], t.prototype, "normalTexture", void 0), Object(i.c)([Object(r.e)("emissive"), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveColor", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "emissiveTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_ambientTextureStrength")], t.prototype, "occlusionStrength", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_ambientTexture")], t.prototype, "occlusionTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_alphaCutOff")], t.prototype, "alphaCutOff", void 0), Object(i.c)([Object(r.c)()], t.prototype, "doubleSided", null), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", null)], t.prototype, "lightmapTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "useLightmapAsShadowmap", void 0), t ); })(n(95).a); }, function (e, t, n) { "use strict"; n.d(t, "b", function () { return r; }), n.d(t, "a", function () { return o; }); var i = n(1); function r(e, t, n, r, o) { void 0 === o && (o = null); for (var a = new i.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), s = new i.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), c = n; c < n + r; c++) { var l = 3 * t[c], u = e[l], h = e[l + 1], d = e[l + 2]; a.minimizeInPlaceFromFloats(u, h, d), s.maximizeInPlaceFromFloats(u, h, d); } return o && ((a.x -= a.x * o.x + o.y), (a.y -= a.y * o.x + o.y), (a.z -= a.z * o.x + o.y), (s.x += s.x * o.x + o.y), (s.y += s.y * o.x + o.y), (s.z += s.z * o.x + o.y)), { minimum: a, maximum: s }; } function o(e, t, n, r, o) { void 0 === r && (r = null); var a = new i.e(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), s = new i.e(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE); o || (o = 3); for (var c = t, l = t * o; c < t + n; c++, l += o) { var u = e[l], h = e[l + 1], d = e[l + 2]; a.minimizeInPlaceFromFloats(u, h, d), s.maximizeInPlaceFromFloats(u, h, d); } return r && ((a.x -= a.x * r.x + r.y), (a.y -= a.y * r.x + r.y), (a.z -= a.z * r.x + r.y), (s.x += s.x * r.x + r.y), (s.y += s.y * r.x + r.y), (s.z += s.z * r.x + r.y)), { minimum: a, maximum: s }; } }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return a; }); var i = n(2), r = n(3), o = n(5), a = (function () { function e() { (this._dirty = !0), (this._tempColor = new o.b(0, 0, 0, 0)), (this._globalCurve = new o.b(0, 0, 0, 0)), (this._highlightsCurve = new o.b(0, 0, 0, 0)), (this._midtonesCurve = new o.b(0, 0, 0, 0)), (this._shadowsCurve = new o.b(0, 0, 0, 0)), (this._positiveCurve = new o.b(0, 0, 0, 0)), (this._negativeCurve = new o.b(0, 0, 0, 0)), (this._globalHue = 30), (this._globalDensity = 0), (this._globalSaturation = 0), (this._globalExposure = 0), (this._highlightsHue = 30), (this._highlightsDensity = 0), (this._highlightsSaturation = 0), (this._highlightsExposure = 0), (this._midtonesHue = 30), (this._midtonesDensity = 0), (this._midtonesSaturation = 0), (this._midtonesExposure = 0), (this._shadowsHue = 30), (this._shadowsDensity = 0), (this._shadowsSaturation = 0), (this._shadowsExposure = 0); } return ( Object.defineProperty(e.prototype, "globalHue", { get: function () { return this._globalHue; }, set: function (e) { (this._globalHue = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "globalDensity", { get: function () { return this._globalDensity; }, set: function (e) { (this._globalDensity = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "globalSaturation", { get: function () { return this._globalSaturation; }, set: function (e) { (this._globalSaturation = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "globalExposure", { get: function () { return this._globalExposure; }, set: function (e) { (this._globalExposure = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "highlightsHue", { get: function () { return this._highlightsHue; }, set: function (e) { (this._highlightsHue = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "highlightsDensity", { get: function () { return this._highlightsDensity; }, set: function (e) { (this._highlightsDensity = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "highlightsSaturation", { get: function () { return this._highlightsSaturation; }, set: function (e) { (this._highlightsSaturation = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "highlightsExposure", { get: function () { return this._highlightsExposure; }, set: function (e) { (this._highlightsExposure = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "midtonesHue", { get: function () { return this._midtonesHue; }, set: function (e) { (this._midtonesHue = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "midtonesDensity", { get: function () { return this._midtonesDensity; }, set: function (e) { (this._midtonesDensity = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "midtonesSaturation", { get: function () { return this._midtonesSaturation; }, set: function (e) { (this._midtonesSaturation = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "midtonesExposure", { get: function () { return this._midtonesExposure; }, set: function (e) { (this._midtonesExposure = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "shadowsHue", { get: function () { return this._shadowsHue; }, set: function (e) { (this._shadowsHue = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "shadowsDensity", { get: function () { return this._shadowsDensity; }, set: function (e) { (this._shadowsDensity = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "shadowsSaturation", { get: function () { return this._shadowsSaturation; }, set: function (e) { (this._shadowsSaturation = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "shadowsExposure", { get: function () { return this._shadowsExposure; }, set: function (e) { (this._shadowsExposure = e), (this._dirty = !0); }, enumerable: !0, configurable: !0, }), (e.prototype.getClassName = function () { return "ColorCurves"; }), (e.Bind = function (e, t, n, i, r) { void 0 === n && (n = "vCameraColorCurvePositive"), void 0 === i && (i = "vCameraColorCurveNeutral"), void 0 === r && (r = "vCameraColorCurveNegative"), e._dirty && ((e._dirty = !1), e.getColorGradingDataToRef(e._globalHue, e._globalDensity, e._globalSaturation, e._globalExposure, e._globalCurve), e.getColorGradingDataToRef(e._highlightsHue, e._highlightsDensity, e._highlightsSaturation, e._highlightsExposure, e._tempColor), e._tempColor.multiplyToRef(e._globalCurve, e._highlightsCurve), e.getColorGradingDataToRef(e._midtonesHue, e._midtonesDensity, e._midtonesSaturation, e._midtonesExposure, e._tempColor), e._tempColor.multiplyToRef(e._globalCurve, e._midtonesCurve), e.getColorGradingDataToRef(e._shadowsHue, e._shadowsDensity, e._shadowsSaturation, e._shadowsExposure, e._tempColor), e._tempColor.multiplyToRef(e._globalCurve, e._shadowsCurve), e._highlightsCurve.subtractToRef(e._midtonesCurve, e._positiveCurve), e._midtonesCurve.subtractToRef(e._shadowsCurve, e._negativeCurve)), t && (t.setFloat4(n, e._positiveCurve.r, e._positiveCurve.g, e._positiveCurve.b, e._positiveCurve.a), t.setFloat4(i, e._midtonesCurve.r, e._midtonesCurve.g, e._midtonesCurve.b, e._midtonesCurve.a), t.setFloat4(r, e._negativeCurve.r, e._negativeCurve.g, e._negativeCurve.b, e._negativeCurve.a)); }), (e.PrepareUniforms = function (e) { e.push("vCameraColorCurveNeutral", "vCameraColorCurvePositive", "vCameraColorCurveNegative"); }), (e.prototype.getColorGradingDataToRef = function (t, n, i, r, o) { null != t && ((t = e.clamp(t, 0, 360)), (n = e.clamp(n, -100, 100)), (i = e.clamp(i, -100, 100)), (r = e.clamp(r, -100, 100)), (n = e.applyColorGradingSliderNonlinear(n)), (n *= 0.5), (r = e.applyColorGradingSliderNonlinear(r)), n < 0 && ((n *= -1), (t = (t + 180) % 360)), e.fromHSBToRef(t, n, 50 + 0.25 * r, o), o.scaleToRef(2, o), (o.a = 1 + 0.01 * i)); }), (e.applyColorGradingSliderNonlinear = function (e) { e /= 100; var t = Math.abs(e); return (t = Math.pow(t, 2)), e < 0 && (t *= -1), (t *= 100); }), (e.fromHSBToRef = function (t, n, i, r) { var o = e.clamp(t, 0, 360), a = e.clamp(n / 100, 0, 1), s = e.clamp(i / 100, 0, 1); if (0 === a) (r.r = s), (r.g = s), (r.b = s); else { o /= 60; var c = Math.floor(o), l = o - c, u = s * (1 - a), h = s * (1 - a * l), d = s * (1 - a * (1 - l)); switch (c) { case 0: (r.r = s), (r.g = d), (r.b = u); break; case 1: (r.r = h), (r.g = s), (r.b = u); break; case 2: (r.r = u), (r.g = s), (r.b = d); break; case 3: (r.r = u), (r.g = h), (r.b = s); break; case 4: (r.r = d), (r.g = u), (r.b = s); break; default: (r.r = s), (r.g = u), (r.b = h); } } r.a = 1; }), (e.clamp = function (e, t, n) { return Math.min(Math.max(e, t), n); }), (e.prototype.clone = function () { return r.a.Clone(function () { return new e(); }, this); }), (e.prototype.serialize = function () { return r.a.Serialize(this); }), (e.Parse = function (t) { return r.a.Parse( function () { return new e(); }, t, null, null ); }), Object(i.c)([Object(r.c)()], e.prototype, "_globalHue", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_globalDensity", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_globalSaturation", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_globalExposure", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_highlightsHue", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_highlightsDensity", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_highlightsSaturation", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_highlightsExposure", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_midtonesHue", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_midtonesDensity", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_midtonesSaturation", void 0), Object(i.c)([Object(r.c)()], e.prototype, "_midtonesExposure", void 0), e ); })(); r.a._ColorCurvesParser = a.Parse; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(53), r = (function () { function e(e) { (this.byteOffset = 0), (this.buffer = e); } return ( (e.prototype.loadAsync = function (e) { var t = this; return ( delete this._dataView, delete this._dataByteOffset, this.buffer.readAsync(this.byteOffset, e).then(function (e) { (t._dataView = new DataView(e.buffer, e.byteOffset, e.byteLength)), (t._dataByteOffset = 0); }) ); }), (e.prototype.readUint32 = function () { var e = this._dataView.getUint32(this._dataByteOffset, !0); return (this._dataByteOffset += 4), (this.byteOffset += 4), e; }), (e.prototype.readUint8Array = function (e) { var t = new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + this._dataByteOffset, e); return (this._dataByteOffset += e), (this.byteOffset += e), t; }), (e.prototype.readString = function (e) { return i.a.Decode(this.readUint8Array(e)); }), (e.prototype.skipBytes = function (e) { (this._dataByteOffset += e), (this.byteOffset += e); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(10), r = n(13), o = (function () { function e() {} return ( (e.Instantiate = function (e) { if (this.RegisteredExternalClasses && this.RegisteredExternalClasses[e]) return this.RegisteredExternalClasses[e]; var t = r.a.GetClass(e); if (t) return t; i.a.Warn(e + " not found, you may have missed an import."); for (var n = e.split("."), o = window || this, a = 0, s = n.length; a < s; a++) o = o[n[a]]; return "function" != typeof o ? null : o; }), (e.RegisteredExternalClasses = {}), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return u; }); var i = n(27), r = n(180), o = n(6), a = n(18), s = n(1), c = n(76), l = n(110), u = (function () { function e(e, t, n, i, r, a, s, c, l) { void 0 === n && (n = 0), void 0 === i && (i = 100), void 0 === r && (r = !1), void 0 === a && (a = 1), (this.target = t), (this.fromFrame = n), (this.toFrame = i), (this.loopAnimation = r), (this.onAnimationEnd = s), (this.onAnimationLoop = l), (this._localDelayOffset = null), (this._pausedDelay = null), (this._runtimeAnimations = new Array()), (this._paused = !1), (this._speedRatio = 1), (this._weight = -1), (this._syncRoot = null), (this.disposeOnEnd = !0), (this.animationStarted = !1), (this.onAnimationEndObservable = new o.c()), (this.onAnimationLoopObservable = new o.c()), (this._scene = e), c && this.appendAnimations(t, c), (this._speedRatio = a), e._activeAnimatables.push(this); } return ( Object.defineProperty(e.prototype, "syncRoot", { get: function () { return this._syncRoot; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "masterFrame", { get: function () { return 0 === this._runtimeAnimations.length ? 0 : this._runtimeAnimations[0].currentFrame; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "weight", { get: function () { return this._weight; }, set: function (e) { this._weight = -1 !== e ? Math.min(Math.max(e, 0), 1) : -1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "speedRatio", { get: function () { return this._speedRatio; }, set: function (e) { for (var t = 0; t < this._runtimeAnimations.length; t++) { this._runtimeAnimations[t]._prepareForSpeedRatioChange(e); } this._speedRatio = e; }, enumerable: !0, configurable: !0, }), (e.prototype.syncWith = function (e) { if (((this._syncRoot = e), e)) { var t = this._scene._activeAnimatables.indexOf(this); t > -1 && (this._scene._activeAnimatables.splice(t, 1), this._scene._activeAnimatables.push(this)); } return this; }), (e.prototype.getAnimations = function () { return this._runtimeAnimations; }), (e.prototype.appendAnimations = function (e, t) { for (var n = this, i = 0; i < t.length; i++) { var o = t[i], a = new r.a(e, o, this._scene, this); (a._onLoop = function () { n.onAnimationLoopObservable.notifyObservers(n), n.onAnimationLoop && n.onAnimationLoop(); }), this._runtimeAnimations.push(a); } }), (e.prototype.getAnimationByTargetProperty = function (e) { for (var t = this._runtimeAnimations, n = 0; n < t.length; n++) if (t[n].animation.targetProperty === e) return t[n].animation; return null; }), (e.prototype.getRuntimeAnimationByTargetProperty = function (e) { for (var t = this._runtimeAnimations, n = 0; n < t.length; n++) if (t[n].animation.targetProperty === e) return t[n]; return null; }), (e.prototype.reset = function () { for (var e = this._runtimeAnimations, t = 0; t < e.length; t++) e[t].reset(!0); (this._localDelayOffset = null), (this._pausedDelay = null); }), (e.prototype.enableBlending = function (e) { for (var t = this._runtimeAnimations, n = 0; n < t.length; n++) (t[n].animation.enableBlending = !0), (t[n].animation.blendingSpeed = e); }), (e.prototype.disableBlending = function () { for (var e = this._runtimeAnimations, t = 0; t < e.length; t++) e[t].animation.enableBlending = !1; }), (e.prototype.goToFrame = function (e) { var t = this._runtimeAnimations; if (t[0]) { var n = t[0].animation.framePerSecond, i = e - t[0].currentFrame, r = 0 !== this.speedRatio ? (1e3 * i) / (n * this.speedRatio) : 0; null === this._localDelayOffset && (this._localDelayOffset = 0), (this._localDelayOffset -= r); } for (var o = 0; o < t.length; o++) t[o].goToFrame(e); }), (e.prototype.pause = function () { this._paused || (this._paused = !0); }), (e.prototype.restart = function () { this._paused = !1; }), (e.prototype._raiseOnAnimationEnd = function () { this.onAnimationEnd && this.onAnimationEnd(), this.onAnimationEndObservable.notifyObservers(this); }), (e.prototype.stop = function (e, t) { if (e || t) { var n = this._scene._activeAnimatables.indexOf(this); if (n > -1) { for (var i = (o = this._runtimeAnimations).length - 1; i >= 0; i--) { var r = o[i]; (e && r.animation.name != e) || (t && !t(r.target)) || (r.dispose(), o.splice(i, 1)); } 0 == o.length && (this._scene._activeAnimatables.splice(n, 1), this._raiseOnAnimationEnd()); } } else { if ((i = this._scene._activeAnimatables.indexOf(this)) > -1) { this._scene._activeAnimatables.splice(i, 1); var o = this._runtimeAnimations; for (i = 0; i < o.length; i++) o[i].dispose(); this._raiseOnAnimationEnd(); } } }), (e.prototype.waitAsync = function () { var e = this; return new Promise(function (t, n) { e.onAnimationEndObservable.add( function () { t(e); }, void 0, void 0, e, !0 ); }); }), (e.prototype._animate = function (e) { if (this._paused) return (this.animationStarted = !1), null === this._pausedDelay && (this._pausedDelay = e), !0; if ( (null === this._localDelayOffset ? ((this._localDelayOffset = e), (this._pausedDelay = null)) : null !== this._pausedDelay && ((this._localDelayOffset += e - this._pausedDelay), (this._pausedDelay = null)), 0 === this._weight) ) return !0; var t, n = !1, i = this._runtimeAnimations; for (t = 0; t < i.length; t++) { var r = i[t].animate(e - this._localDelayOffset, this.fromFrame, this.toFrame, this.loopAnimation, this._speedRatio, this._weight); n = n || r; } if (((this.animationStarted = n), !n)) { if (this.disposeOnEnd) for (t = this._scene._activeAnimatables.indexOf(this), this._scene._activeAnimatables.splice(t, 1), t = 0; t < i.length; t++) i[t].dispose(); this._raiseOnAnimationEnd(), this.disposeOnEnd && ((this.onAnimationEnd = null), (this.onAnimationLoop = null), this.onAnimationLoopObservable.clear(), this.onAnimationEndObservable.clear()); } return n; }), e ); })(); (a.a.prototype._animate = function () { if (this.animationsEnabled) { var e = c.a.Now; if (!this._animationTimeLast) { if (this._pendingData.length > 0) return; this._animationTimeLast = e; } (this.deltaTime = this.useConstantAnimationDeltaTime ? 16 : (e - this._animationTimeLast) * this.animationTimeScale), (this._animationTimeLast = e); var t = this._activeAnimatables; if (0 !== t.length) { this._animationTime += this.deltaTime; for (var n = this._animationTime, i = 0; i < t.length; i++) { var r = t[i]; !r._animate(n) && r.disposeOnEnd && i--; } this._processLateAnimationBindings(); } } }), (a.a.prototype.beginWeightedAnimation = function (e, t, n, i, r, o, a, s, c, l) { void 0 === i && (i = 1), void 0 === o && (o = 1); var u = this.beginAnimation(e, t, n, r, o, a, s, !1, c, l); return (u.weight = i), u; }), (a.a.prototype.beginAnimation = function (e, t, n, i, r, o, a, s, c, l) { void 0 === r && (r = 1), void 0 === s && (s = !0), t > n && r > 0 && (r *= -1), s && this.stopAnimation(e, void 0, c), a || (a = new u(this, e, t, n, i, r, o, void 0, l)); var h = !c || c(e); if ((e.animations && h && a.appendAnimations(e, e.animations), e.getAnimatables)) for (var d = e.getAnimatables(), p = 0; p < d.length; p++) this.beginAnimation(d[p], t, n, i, r, o, a, s, c, l); return a.reset(), a; }), (a.a.prototype.beginHierarchyAnimation = function (e, t, n, i, r, o, a, s, c, l, u) { void 0 === o && (o = 1), void 0 === c && (c = !0); var h = e.getDescendants(t), d = []; d.push(this.beginAnimation(e, n, i, r, o, a, s, c, l)); for (var p = 0, f = h; p < f.length; p++) { var m = f[p]; d.push(this.beginAnimation(m, n, i, r, o, a, s, c, l)); } return d; }), (a.a.prototype.beginDirectAnimation = function (e, t, n, i, r, o, a, s) { return void 0 === o && (o = 1), n > i && o > 0 && (o *= -1), new u(this, e, n, i, r, o, a, t, s); }), (a.a.prototype.beginDirectHierarchyAnimation = function (e, t, n, i, r, o, a, s, c) { var l = e.getDescendants(t), u = []; u.push(this.beginDirectAnimation(e, n, i, r, o, a, s, c)); for (var h = 0, d = l; h < d.length; h++) { var p = d[h]; u.push(this.beginDirectAnimation(p, n, i, r, o, a, s, c)); } return u; }), (a.a.prototype.getAnimatableByTarget = function (e) { for (var t = 0; t < this._activeAnimatables.length; t++) if (this._activeAnimatables[t].target === e) return this._activeAnimatables[t]; return null; }), (a.a.prototype.getAllAnimatablesByTarget = function (e) { for (var t = [], n = 0; n < this._activeAnimatables.length; n++) this._activeAnimatables[n].target === e && t.push(this._activeAnimatables[n]); return t; }), (a.a.prototype.stopAnimation = function (e, t, n) { for (var i = 0, r = this.getAllAnimatablesByTarget(e); i < r.length; i++) { r[i].stop(t, n); } }), (a.a.prototype.stopAllAnimations = function () { if (this._activeAnimatables) { for (var e = 0; e < this._activeAnimatables.length; e++) this._activeAnimatables[e].stop(); this._activeAnimatables = []; } for (var t = 0, n = this.animationGroups; t < n.length; t++) { n[t].stop(); } }), (a.a.prototype._registerTargetForLateAnimationBinding = function (e, t) { var n = e.target; this._registeredForLateAnimationBindings.pushNoDuplicate(n), n._lateAnimationHolders || (n._lateAnimationHolders = {}), n._lateAnimationHolders[e.targetPath] || (n._lateAnimationHolders[e.targetPath] = { totalWeight: 0, animations: [], originalValue: t }), n._lateAnimationHolders[e.targetPath].animations.push(e), (n._lateAnimationHolders[e.targetPath].totalWeight += e.weight); }), (a.a.prototype._processLateAnimationBindingsForMatrices = function (e) { var t = 1, n = s.c.Vector3[0], i = s.c.Vector3[1], r = s.c.Quaternion[0], o = 0, a = e.animations[0], c = e.originalValue, l = 1; if (e.totalWeight < 1) c.decompose(i, r, n), (l = 1 - e.totalWeight); else if (((o = 1), (t = e.totalWeight), a.currentValue.decompose(i, r, n), 1 == (l = a.weight / t))) return a.currentValue; i.scaleInPlace(l), n.scaleInPlace(l), r.scaleInPlace(l); for (var u = o; u < e.animations.length; u++) { var h = e.animations[u], d = ((l = h.weight / t), s.c.Vector3[2]), p = s.c.Vector3[3], f = s.c.Quaternion[1]; h.currentValue.decompose(p, f, d), p.scaleAndAddToRef(l, i), f.scaleAndAddToRef(l, r), d.scaleAndAddToRef(l, n); } var m = a._animationState.workValue; return s.a.ComposeToRef(i, r, n, m), m; }), (a.a.prototype._processLateAnimationBindingsForQuaternions = function (e, t) { var n = e.animations[0], i = e.originalValue; if (1 === e.animations.length) return s.b.SlerpToRef(i, n.currentValue, Math.min(1, e.totalWeight), t), t; var r, o, a = 1; if (e.totalWeight < 1) { var c = 1 - e.totalWeight; (o = []), (r = []).push(i), o.push(c); } else { if (2 === e.animations.length) return s.b.SlerpToRef(e.animations[0].currentValue, e.animations[1].currentValue, e.animations[1].weight / e.totalWeight, t), t; (r = []), (o = []), (a = e.totalWeight); } for (var l = 0; l < e.animations.length; l++) { var u = e.animations[l]; r.push(u.currentValue), o.push(u.weight / a); } for (var h = 0, d = null, p = 0; p < r.length; ) d ? ((h += o[p]), s.b.SlerpToRef(d, r[p], o[p] / h, d), p++) : (s.b.SlerpToRef(r[p], r[p + 1], o[p + 1] / (o[p] + o[p + 1]), t), (d = t), (h = o[p] + o[p + 1]), (p += 2)); return d; }), (a.a.prototype._processLateAnimationBindings = function () { if (this._registeredForLateAnimationBindings.length) { for (var e = 0; e < this._registeredForLateAnimationBindings.length; e++) { var t = this._registeredForLateAnimationBindings.data[e]; for (var n in t._lateAnimationHolders) { var r = t._lateAnimationHolders[n], o = r.animations[0], a = r.originalValue, c = i.a.AllowMatrixDecomposeForInterpolation && a.m, l = t[n]; if (c) l = this._processLateAnimationBindingsForMatrices(r); else if (void 0 !== a.w) l = this._processLateAnimationBindingsForQuaternions(r, l || s.b.Identity()); else { var u = 0, h = 1; if (r.totalWeight < 1) l = a.scale ? a.scale(1 - r.totalWeight) : a * (1 - r.totalWeight); else { h = r.totalWeight; var d = o.weight / h; (l = 1 !== d ? (o.currentValue.scale ? o.currentValue.scale(d) : o.currentValue * d) : o.currentValue), (u = 1); } for (var p = u; p < r.animations.length; p++) { var f = r.animations[p], m = f.weight / h; f.currentValue.scaleAndAddToRef ? f.currentValue.scaleAndAddToRef(m, l) : (l += f.currentValue * m); } } t[n] = l; } t._lateAnimationHolders = {}; } this._registeredForLateAnimationBindings.reset(); } }), (l.a.prototype.copyAnimationRange = function (e, t, n, r, o) { void 0 === r && (r = !1), void 0 === o && (o = null), 0 === this.animations.length && (this.animations.push(new i.a(this.name, "_matrix", e.animations[0].framePerSecond, i.a.ANIMATIONTYPE_MATRIX, 0)), this.animations[0].setKeys([])); var a = e.animations[0].getRange(t); if (!a) return !1; for ( var s, c, l, u = a.from, h = a.to, d = e.animations[0].getKeys(), p = e.length, f = e.getParent(), m = this.getParent(), g = r && f && p && this.length && p !== this.length, b = g && m && f ? m.length / f.length : 1, _ = r && !m && o && (1 !== o.x || 1 !== o.y || 1 !== o.z), v = this.animations[0].getKeys(), y = 0, C = d.length; y < C; y++ ) (s = d[y]).frame >= u && s.frame <= h && (r ? ((l = s.value.clone()), g ? ((c = l.getTranslation()), l.setTranslation(c.scaleInPlace(b))) : _ && o ? ((c = l.getTranslation()), l.setTranslation(c.multiplyInPlace(o))) : (l = s.value)) : (l = s.value), v.push({ frame: s.frame + n, value: l })); return this.animations[0].createRange(t, u + n, h + n), !0; }); }, function (e, t, n) { "use strict"; var i = n(2), r = n(32), o = n(10), a = n(147), s = n(38); (s.a.prototype.createRenderTargetTexture = function (e, t) { var n = new a.a(); void 0 !== t && "object" == typeof t ? ((n.generateMipMaps = t.generateMipMaps), (n.generateDepthBuffer = !!t.generateDepthBuffer), (n.generateStencilBuffer = !!t.generateStencilBuffer), (n.type = void 0 === t.type ? 0 : t.type), (n.samplingMode = void 0 === t.samplingMode ? 3 : t.samplingMode), (n.format = void 0 === t.format ? 5 : t.format)) : ((n.generateMipMaps = t), (n.generateDepthBuffer = !0), (n.generateStencilBuffer = !1), (n.type = 0), (n.samplingMode = 3), (n.format = 5)), ((1 !== n.type || this._caps.textureFloatLinearFiltering) && (2 !== n.type || this._caps.textureHalfFloatLinearFiltering)) || (n.samplingMode = 1), 1 !== n.type || this._caps.textureFloat || ((n.type = 0), o.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type")); var i = this._gl, s = new r.a(this, r.b.RenderTarget), c = e.width || e, l = e.height || e, u = e.layers || 0, h = this._getSamplingParameters(n.samplingMode, !!n.generateMipMaps), d = 0 !== u ? i.TEXTURE_2D_ARRAY : i.TEXTURE_2D, p = this._getRGBABufferInternalSizedFormat(n.type, n.format), f = this._getInternalFormat(n.format), m = this._getWebGLTextureType(n.type); this._bindTextureDirectly(d, s), 0 !== u ? ((s.is2DArray = !0), i.texImage3D(d, 0, p, c, l, u, 0, f, m, null)) : i.texImage2D(d, 0, p, c, l, 0, f, m, null), i.texParameteri(d, i.TEXTURE_MAG_FILTER, h.mag), i.texParameteri(d, i.TEXTURE_MIN_FILTER, h.min), i.texParameteri(d, i.TEXTURE_WRAP_S, i.CLAMP_TO_EDGE), i.texParameteri(d, i.TEXTURE_WRAP_T, i.CLAMP_TO_EDGE), n.generateMipMaps && this._gl.generateMipmap(d), this._bindTextureDirectly(d, null); var g = i.createFramebuffer(); return ( this._bindUnboundFramebuffer(g), (s._depthStencilBuffer = this._setupFramebufferDepthAttachments(!!n.generateStencilBuffer, n.generateDepthBuffer, c, l)), s.is2DArray || i.framebufferTexture2D(i.FRAMEBUFFER, i.COLOR_ATTACHMENT0, i.TEXTURE_2D, s._webGLTexture, 0), this._bindUnboundFramebuffer(null), (s._framebuffer = g), (s.baseWidth = c), (s.baseHeight = l), (s.width = c), (s.height = l), (s.depth = u), (s.isReady = !0), (s.samples = 1), (s.generateMipMaps = !!n.generateMipMaps), (s.samplingMode = n.samplingMode), (s.type = n.type), (s.format = n.format), (s._generateDepthBuffer = n.generateDepthBuffer), (s._generateStencilBuffer = !!n.generateStencilBuffer), this._internalTexturesCache.push(s), s ); }), (s.a.prototype.createDepthStencilTexture = function (e, t) { if (t.isCube) { var n = e.width || e; return this._createDepthStencilCubeTexture(n, t); } return this._createDepthStencilTexture(e, t); }), (s.a.prototype._createDepthStencilTexture = function (e, t) { var n = this._gl, a = e.layers || 0, s = 0 !== a ? n.TEXTURE_2D_ARRAY : n.TEXTURE_2D, c = new r.a(this, r.b.Depth); if (!this._caps.depthTextureExtension) return o.a.Error("Depth texture is not supported by your browser or hardware."), c; var l = Object(i.a)({ bilinearFiltering: !1, comparisonFunction: 0, generateStencil: !1 }, t); this._bindTextureDirectly(s, c, !0), this._setupDepthStencilTexture(c, e, l.generateStencil, l.bilinearFiltering, l.comparisonFunction); var u = l.generateStencil ? n.UNSIGNED_INT_24_8 : n.UNSIGNED_INT, h = l.generateStencil ? n.DEPTH_STENCIL : n.DEPTH_COMPONENT, d = h; return ( this.webGLVersion > 1 && (d = l.generateStencil ? n.DEPTH24_STENCIL8 : n.DEPTH_COMPONENT24), c.is2DArray ? n.texImage3D(s, 0, d, c.width, c.height, a, 0, h, u, null) : n.texImage2D(s, 0, d, c.width, c.height, 0, h, u, null), this._bindTextureDirectly(s, null), c ); }); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return u; }); var i = n(12), r = n(202), o = n(16); function a(e) { return new Promise(function (t) { DracoDecoderModule({ wasmBinary: e }).then(function (e) { t({ module: e }); }); }); } function s(e, t, n, i, r) { var o = new e.DecoderBuffer(); o.Init(t, t.byteLength); var a, s, c = new e.Decoder(); try { var l = c.GetEncodedGeometryType(o); switch (l) { case e.TRIANGULAR_MESH: (a = new e.Mesh()), (s = c.DecodeBufferToMesh(o, a)); break; case e.POINT_CLOUD: (a = new e.PointCloud()), (s = c.DecodeBufferToPointCloud(o, a)); break; default: throw new Error("Invalid geometry type " + l); } if (!s.ok() || !a.ptr) throw new Error(s.error_msg()); var u = a.num_points(); if (l === e.TRIANGULAR_MESH) { var h = a.num_faces(), d = new e.DracoInt32Array(); try { for (var p = new Uint32Array(3 * h), f = 0; f < h; f++) { c.GetFaceFromMesh(a, f, d); var m = 3 * f; (p[m + 0] = d.GetValue(0)), (p[m + 1] = d.GetValue(1)), (p[m + 2] = d.GetValue(2)); } i(p); } finally { e.destroy(d); } } var g = function (t, n) { var i = new e.DracoFloat32Array(); try { c.GetAttributeFloatForAllPoints(a, n, i); var o = n.num_components(); if ("color" === t && 3 === o) { for (var s = new Float32Array(4 * u), l = 0, h = 0; l < s.length; l += 4, h += o) (s[l + 0] = i.GetValue(h + 0)), (s[l + 1] = i.GetValue(h + 1)), (s[l + 2] = i.GetValue(h + 2)), (s[l + 3] = 1); r(t, s); } else { for (s = new Float32Array(u * o), l = 0; l < s.length; l++) s[l] = i.GetValue(l); r(t, s); } } finally { e.destroy(i); } }; if (n) for (var b in n) { var _ = n[b]; g(b, c.GetAttributeByUniqueId(a, _)); } else { var v = { position: "POSITION", normal: "NORMAL", color: "COLOR", uv: "TEX_COORD" }; for (var b in v) { if (-1 !== (_ = c.GetAttributeId(a, e[v[b]]))) g(b, c.GetAttribute(a, _)); } } } finally { a && e.destroy(a), e.destroy(c), e.destroy(o); } } function c() { var e; onmessage = function (t) { var n = t.data; switch (n.id) { case "init": var i = n.decoder; i.url && (importScripts(i.url), (e = a(i.wasmBinary))), postMessage("done"); break; case "decodeMesh": if (!e) throw new Error("Draco decoder module is not available"); e.then(function (e) { s( e.module, n.dataView, n.attributes, function (e) { postMessage({ id: "indices", value: e }, [e.buffer]); }, function (e, t) { postMessage({ id: e, value: t }, [t.buffer]); } ), postMessage("done"); }); } }; } function l(e) { return "object" != typeof document || "string" != typeof e ? e : i.b.GetAbsoluteUrl(e); } var u = (function () { function e(t) { void 0 === t && (t = e.DefaultNumWorkers); var n = e.Configuration.decoder, o = n.wasmUrl && n.wasmBinaryUrl && "object" == typeof WebAssembly ? { url: n.wasmUrl, wasmBinaryPromise: i.b.LoadFileAsync(l(n.wasmBinaryUrl)) } : { url: n.fallbackUrl, wasmBinaryPromise: Promise.resolve(void 0) }; t && "function" == typeof Worker ? (this._workerPoolPromise = o.wasmBinaryPromise.then(function (e) { for (var n = "" + a + s + "(" + c + ")()", i = URL.createObjectURL(new Blob([n], { type: "application/javascript" })), u = new Array(t), h = 0; h < u.length; h++) u[h] = new Promise(function (t, n) { var r = new Worker(i), a = function (e) { r.removeEventListener("error", a), r.removeEventListener("message", s), n(e); }, s = function (e) { "done" === e.data && (r.removeEventListener("error", a), r.removeEventListener("message", s), t(r)); }; r.addEventListener("error", a), r.addEventListener("message", s), r.postMessage({ id: "init", decoder: { url: l(o.url), wasmBinary: e } }); }); return Promise.all(u).then(function (e) { return new r.a(e); }); })) : (this._decoderModulePromise = o.wasmBinaryPromise.then(function (e) { if (!o.url) throw new Error("Draco decoder module is not available"); return i.b.LoadScriptAsync(o.url).then(function () { return a(e); }); })); } return ( Object.defineProperty(e, "DecoderAvailable", { get: function () { var t = e.Configuration.decoder; return !!((t.wasmUrl && t.wasmBinaryUrl && "object" == typeof WebAssembly) || t.fallbackUrl); }, enumerable: !0, configurable: !0, }), (e.GetDefaultNumWorkers = function () { return "object" == typeof navigator && navigator.hardwareConcurrency ? Math.min(Math.floor(0.5 * navigator.hardwareConcurrency), 4) : 1; }), Object.defineProperty(e, "Default", { get: function () { return e._Default || (e._Default = new e()), e._Default; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this._workerPoolPromise && this._workerPoolPromise.then(function (e) { e.dispose(); }), delete this._workerPoolPromise, delete this._decoderModulePromise; }), (e.prototype.whenReadyAsync = function () { return this._workerPoolPromise ? this._workerPoolPromise.then(function () {}) : this._decoderModulePromise ? this._decoderModulePromise.then(function () {}) : Promise.resolve(); }), (e.prototype.decodeMeshAsync = function (e, t) { var n = e instanceof ArrayBuffer ? new Uint8Array(e) : e; if (this._workerPoolPromise) return this._workerPoolPromise.then(function (e) { return new Promise(function (i, r) { e.push(function (e, a) { var s = new o.a(), c = function (t) { e.removeEventListener("error", c), e.removeEventListener("message", l), r(t), a(); }, l = function (t) { "done" === t.data ? (e.removeEventListener("error", c), e.removeEventListener("message", l), i(s), a()) : "indices" === t.data.id ? (s.indices = t.data.value) : s.set(t.data.value, t.data.id); }; e.addEventListener("error", c), e.addEventListener("message", l); var u = new Uint8Array(n.byteLength); u.set(new Uint8Array(n.buffer, n.byteOffset, n.byteLength)), e.postMessage({ id: "decodeMesh", dataView: u, attributes: t }, [u.buffer]); }); }); }); if (this._decoderModulePromise) return this._decoderModulePromise.then(function (e) { var i = new o.a(); return ( s( e.module, n, t, function (e) { i.indices = e; }, function (e, t) { i.set(t, e); } ), i ); }); throw new Error("Draco decoder module is not available"); }), (e.Configuration = { decoder: { wasmUrl: "assets/babylonjs/draco_wasm_wrapper_gltf.js", wasmBinaryUrl: "assets/babylonjs/draco_decoder_gltf.wasm", fallbackUrl: "assets/babylonjs/draco_decoder_gltf.js", }, }), (e.DefaultNumWorkers = e.GetDefaultNumWorkers()), (e._Default = null), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return a; }); var i = n(8), r = n(44), o = n(107), a = (function () { function e() {} return ( (e.CreateResizedCopy = function (e, t, n, a) { void 0 === a && (a = !0); var s = e.getScene(), c = s.getEngine(), l = new r.a("resized" + e.name, { width: t, height: n }, s, !e.noMipmap, !0, e._texture.type, !1, e.samplingMode, !1); (l.wrapU = e.wrapU), (l.wrapV = e.wrapV), (l.uOffset = e.uOffset), (l.vOffset = e.vOffset), (l.uScale = e.uScale), (l.vScale = e.vScale), (l.uAng = e.uAng), (l.vAng = e.vAng), (l.wAng = e.wAng), (l.coordinatesIndex = e.coordinatesIndex), (l.level = e.level), (l.anisotropicFilteringLevel = e.anisotropicFilteringLevel), (l._texture.isReady = !1), (e.wrapU = i.a.CLAMP_ADDRESSMODE), (e.wrapV = i.a.CLAMP_ADDRESSMODE); var u = new o.b("pass", 1, null, a ? i.a.BILINEAR_SAMPLINGMODE : i.a.NEAREST_SAMPLINGMODE, c, !1, 0); return ( u.getEffect().executeWhenCompiled(function () { u.onApply = function (t) { t.setTexture("textureSampler", e); }; var t = l.getInternalTexture(); t && (s.postProcessManager.directRender([u], t), c.unBindFramebuffer(t), l.disposeFramebufferObjects(), u.dispose(), (t.isReady = !0)); }), l ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(56), r = (function () { function e() {} return ( (e.SetImmediate = function (e) { i.a.IsWindowObjectExist() && window.setImmediate ? window.setImmediate(e) : setTimeout(e, 1); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return m; }); var i = n(53), r = (function () { function e() { this.children = []; } return ( (e.prototype.isValid = function (e) { return !0; }), (e.prototype.process = function (e, t) { var n = ""; if (this.line) { var r = this.line, o = t.processor; if (o) { if ((o.lineProcessor && (r = o.lineProcessor(r, t.isFragment)), o.attributeProcessor && i.a.StartsWith(this.line, "attribute"))) r = o.attributeProcessor(this.line); else if (o.varyingProcessor && i.a.StartsWith(this.line, "varying")) r = o.varyingProcessor(this.line, t.isFragment); else if ((o.uniformProcessor || o.uniformBufferProcessor) && i.a.StartsWith(this.line, "uniform")) { /uniform (.+) (.+)/.test(this.line) ? o.uniformProcessor && (r = o.uniformProcessor(this.line, t.isFragment)) : o.uniformBufferProcessor && ((r = o.uniformBufferProcessor(this.line, t.isFragment)), (t.lookForClosingBracketForUniformBuffer = !0)); } o.endOfUniformBufferProcessor && t.lookForClosingBracketForUniformBuffer && -1 !== this.line.indexOf("}") && ((t.lookForClosingBracketForUniformBuffer = !1), (r = o.endOfUniformBufferProcessor(this.line, t.isFragment))); } n += r + "\r\n"; } return ( this.children.forEach(function (i) { n += i.process(e, t); }), this.additionalDefineKey && (e[this.additionalDefineKey] = this.additionalDefineValue || "true"), n ); }), e ); })(), o = (function () { function e() {} return ( Object.defineProperty(e.prototype, "currentLine", { get: function () { return this._lines[this.lineIndex]; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "canRead", { get: function () { return this.lineIndex < this._lines.length - 1; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "lines", { set: function (e) { this._lines = []; for (var t = 0, n = e; t < n.length; t++) { var i = n[t]; if ("#" !== i[0]) for (var r = i.split(";"), o = 0; o < r.length; o++) { var a = r[o]; (a = a.trim()) && this._lines.push(a + (o !== r.length - 1 ? ";" : "")); } else this._lines.push(i); } }, enumerable: !0, configurable: !0, }), e ); })(), a = n(2), s = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(a.d)(t, e), (t.prototype.process = function (e, t) { for (var n = 0; n < this.children.length; n++) { var i = this.children[n]; if (i.isValid(e)) return i.process(e, t); } return ""; }), t ); })(r), c = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(a.d)(t, e), (t.prototype.isValid = function (e) { return this.testExpression.isTrue(e); }), t ); })(r), l = (function () { function e() {} return ( (e.prototype.isTrue = function (e) { return !0; }), e ); })(), u = (function (e) { function t(t, n) { void 0 === n && (n = !1); var i = e.call(this) || this; return (i.define = t), (i.not = n), i; } return ( Object(a.d)(t, e), (t.prototype.isTrue = function (e) { var t = void 0 !== e[this.define]; return this.not && (t = !t), t; }), t ); })(l), h = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(a.d)(t, e), (t.prototype.isTrue = function (e) { return this.leftOperand.isTrue(e) || this.rightOperand.isTrue(e); }), t ); })(l), d = (function (e) { function t() { return (null !== e && e.apply(this, arguments)) || this; } return ( Object(a.d)(t, e), (t.prototype.isTrue = function (e) { return this.leftOperand.isTrue(e) && this.rightOperand.isTrue(e); }), t ); })(l), p = (function (e) { function t(t, n, i) { var r = e.call(this) || this; return (r.define = t), (r.operand = n), (r.testValue = i), r; } return ( Object(a.d)(t, e), (t.prototype.isTrue = function (e) { var t = e[this.define]; void 0 === t && (t = this.define); var n = !1, i = parseInt(t), r = parseInt(this.testValue); switch (this.operand) { case ">": n = i > r; break; case "<": n = i < r; break; case "<=": n = i <= r; break; case ">=": n = i >= r; break; case "==": n = i === r; } return n; }), t ); })(l), f = n(22), m = (function () { function e() {} return ( (e.Process = function (e, t, n) { var i = this; this._ProcessIncludes(e, t, function (e) { var r = i._ProcessShaderConversion(e, t); n(r); }); }), (e._ProcessPrecision = function (e, t) { var n = t.shouldUseHighPrecisionShader; return -1 === e.indexOf("precision highp float") ? (e = n ? "precision highp float;\n" + e : "precision mediump float;\n" + e) : n || (e = e.replace("precision highp float", "precision mediump float")), e; }), (e._ExtractOperation = function (e) { var t = /defined\((.+)\)/.exec(e); if (t && t.length) return new u(t[1].trim(), "!" === e[0]); for (var n = "", i = 0, r = 0, o = ["==", ">=", "<=", "<", ">"]; r < o.length && ((n = o[r]), !((i = e.indexOf(n)) > -1)); r++); if (-1 === i) return new u(e); var a = e.substring(0, i).trim(), s = e.substring(i + n.length).trim(); return new p(a, n, s); }), (e._BuildSubExpression = function (e) { var t = e.indexOf("||"); if (-1 === t) { var n = e.indexOf("&&"); if (n > -1) { var i = new d(), r = e.substring(0, n).trim(), o = e.substring(n + 2).trim(); return (i.leftOperand = this._BuildSubExpression(r)), (i.rightOperand = this._BuildSubExpression(o)), i; } return this._ExtractOperation(e); } var a = new h(); (r = e.substring(0, t).trim()), (o = e.substring(t + 2).trim()); return (a.leftOperand = this._BuildSubExpression(r)), (a.rightOperand = this._BuildSubExpression(o)), a; }), (e._BuildExpression = function (e, t) { var n = new c(), i = e.substring(0, t), r = e.substring(t).trim(); return (n.testExpression = "#ifdef" === i ? new u(r) : "#ifndef" === i ? new u(r, !0) : this._BuildSubExpression(r)), n; }), (e._MoveCursorWithinIf = function (e, t, n) { for (var i = e.currentLine; this._MoveCursor(e, n); ) { var o = (i = e.currentLine).substring(0, 5).toLowerCase(); if ("#else" === o) { var a = new r(); return t.children.push(a), void this._MoveCursor(e, a); } if ("#elif" === o) { var s = this._BuildExpression(i, 5); t.children.push(s), (n = s); } } }), (e._MoveCursor = function (e, t) { for (; e.canRead; ) { e.lineIndex++; var n = e.currentLine, i = /(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/.exec(n); if (i && i.length) { switch (i[0]) { case "#ifdef": var o = new s(); t.children.push(o); var a = this._BuildExpression(n, 6); o.children.push(a), this._MoveCursorWithinIf(e, o, a); break; case "#else": case "#elif": return !0; case "#endif": return !1; case "#ifndef": o = new s(); t.children.push(o); a = this._BuildExpression(n, 7); o.children.push(a), this._MoveCursorWithinIf(e, o, a); break; case "#if": (o = new s()), (a = this._BuildExpression(n, 3)); t.children.push(o), o.children.push(a), this._MoveCursorWithinIf(e, o, a); } } else { var c = new r(); if (((c.line = n), t.children.push(c), "#" === n[0] && "d" === n[1])) { var l = n.replace(";", "").split(" "); (c.additionalDefineKey = l[1]), 3 === l.length && (c.additionalDefineValue = l[2]); } } } return !1; }), (e._EvaluatePreProcessors = function (e, t, n) { var i = new r(), a = new o(); return (a.lineIndex = -1), (a.lines = e.split("\n")), this._MoveCursor(a, i), i.process(t, n); }), (e._PreparePreProcessors = function (e) { for (var t = {}, n = 0, i = e.defines; n < i.length; n++) { var r = i[n].replace("#define", "").replace(";", "").trim().split(" "); t[r[0]] = r.length > 1 ? r[1] : ""; } return (t.GL_ES = "true"), (t.__VERSION__ = e.version), (t[e.platformName] = "true"), t; }), (e._ProcessShaderConversion = function (e, t) { var n = this._ProcessPrecision(e, t); if (!t.processor) return n; if (-1 !== n.indexOf("#version 3")) return n.replace("#version 300 es", ""); var i = t.defines, r = this._PreparePreProcessors(t); return t.processor.preProcessor && (n = t.processor.preProcessor(n, i, t.isFragment)), (n = this._EvaluatePreProcessors(n, r, t)), t.processor.postProcessor && (n = t.processor.postProcessor(n, i, t.isFragment)), n; }), (e._ProcessIncludes = function (t, n, i) { for (var r = this, o = /#include<(.+)>(\((.*)\))*(\[(.*)\])*/g, a = o.exec(t), s = new String(t); null != a; ) { var c = a[1]; if ( (-1 !== c.indexOf("__decl__") && ((c = c.replace(/__decl__/, "")), n.supportsUniformBuffers && (c = (c = c.replace(/Vertex/, "Ubo")).replace(/Fragment/, "Ubo")), (c += "Declaration")), !n.includesShadersStore[c]) ) { var l = n.shadersRepository + "ShadersInclude/" + c + ".fx"; return void e._FileToolsLoadFile(l, function (e) { (n.includesShadersStore[c] = e), r._ProcessIncludes(s, n, i); }); } var u = n.includesShadersStore[c]; if (a[2]) for (var h = a[3].split(","), d = 0; d < h.length; d += 2) { var p = new RegExp(h[d], "g"), f = h[d + 1]; u = u.replace(p, f); } if (a[4]) { var m = a[5]; if (-1 !== m.indexOf("..")) { var g = m.split(".."), b = parseInt(g[0]), _ = parseInt(g[1]), v = u.slice(0); (u = ""), isNaN(_) && (_ = n.indexParameters[g[1]]); for (var y = b; y < _; y++) n.supportsUniformBuffers || (v = v.replace(/light\{X\}.(\w*)/g, function (e, t) { return t + "{X}"; })), (u += v.replace(/\{X\}/g, y.toString()) + "\n"); } else n.supportsUniformBuffers || (u = u.replace(/light\{X\}.(\w*)/g, function (e, t) { return t + "{X}"; })), (u = u.replace(/\{X\}/g, m)); } (s = s.replace(a[0], u)), (a = o.exec(t)); } i(s); }), (e._FileToolsLoadFile = function (e, t, n, i, r, o) { throw f.a.WarnImport("FileTools"); }), e ); })(); }, function (e, t, n) { "use strict"; var i = "reflectionFunction", r = "vec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {\n\nvec3 invOrigVec=vec3(1.0,1.0,1.0)/origVec;\nvec3 halfSize=cubeSize*0.5;\nvec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;\nvec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;\n\nvec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);\n\nfloat distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);\n\nvec3 intersectPositionWS=vertexPos+origVec*distance;\n\nreturn intersectPositionWS-cubePos;\n}\nvec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)\n{\nfloat lon=atan(direction.z,direction.x);\nfloat lat=acos(direction.y);\nvec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\nfloat s=sphereCoords.x*0.5+0.5;\nfloat t=sphereCoords.y;\nreturn vec3(s,t,0);\n}\nvec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction)\n{\nfloat lon=atan(direction.z,direction.x);\nfloat lat=acos(direction.y);\nvec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\nfloat s=sphereCoords.x*0.5+0.5;\nfloat t=sphereCoords.y;\nreturn vec3(1.0-s,t,0);\n}\nvec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)\n{\nvec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);\nvec3 r=normalize(reflect(cameraToVertex,worldNormal));\nr=vec3(reflectionMatrix*vec4(r,0));\nfloat lon=atan(r.z,r.x);\nfloat lat=acos(r.y);\nvec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\nfloat s=sphereCoords.x*0.5+0.5;\nfloat t=sphereCoords.y;\nreturn vec3(s,t,0);\n}\nvec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix)\n{\nvec3 viewDir=normalize(vec3(view*worldPos));\nvec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));\nvec3 r=reflect(viewDir,viewNormal);\nr=vec3(reflectionMatrix*vec4(r,0));\nr.z=r.z-1.0;\nfloat m=2.0*length(r);\nreturn vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);\n}\nvec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)\n{\nvec3 viewDir=worldPos.xyz-eyePosition;\nvec3 coords=normalize(reflect(viewDir,worldNormal));\nreturn vec3(reflectionMatrix*vec4(coords,1));\n}\nvec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix)\n{\nvec3 viewDir=normalize(worldPos.xyz-eyePosition);\n\nvec3 coords=reflect(viewDir,worldNormal);\ncoords=vec3(reflectionMatrix*vec4(coords,0));\n#ifdef INVERTCUBICMAP\ncoords.y*=-1.0;\n#endif\nreturn coords;\n}\nvec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition)\n{\nvec3 viewDir=normalize(worldPos.xyz-eyePosition);\n\nvec3 coords=reflect(viewDir,worldNormal);\ncoords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);\ncoords=vec3(reflectionMatrix*vec4(coords,0));\n#ifdef INVERTCUBICMAP\ncoords.y*=-1.0;\n#endif\nreturn coords;\n}\nvec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix)\n{\nreturn vec3(reflectionMatrix*(view*worldPos));\n}\nvec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix)\n{\nreturn vec3(reflectionMatrix*vec4(positionW,0));\n}\n#ifdef REFLECTION\nvec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal)\n{\n#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\nvec3 direction=normalize(vDirectionW);\nreturn computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);\n#endif\n#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED\nvec3 direction=normalize(vDirectionW);\nreturn computeFixedEquirectangularCoords(worldPos,worldNormal,direction);\n#endif\n#ifdef REFLECTIONMAP_EQUIRECTANGULAR\nreturn computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_SPHERICAL\nreturn computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_PLANAR\nreturn computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_CUBIC\n#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC\nreturn computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);\n#else\nreturn computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#endif\n#ifdef REFLECTIONMAP_PROJECTION\nreturn computeProjectionCoords(worldPos,view,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nreturn computeSkyBoxCoords(vPositionUVW,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_EXPLICIT\nreturn vec3(0,0,0);\n#endif\n}\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "bumpFragmentFunctions", r = "#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvarying mat3 vTBN;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform mat4 normalMatrix;\n#endif\nvec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)\n{\ntextureSample=textureSample*2.0-1.0;\n#ifdef NORMALXYSCALE\ntextureSample=normalize(textureSample*vec3(scale,scale,1.0));\n#endif\nreturn normalize(cotangentFrame*textureSample);\n}\n\nmat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)\n{\n\nuv=gl_FrontFacing ? uv : -uv;\n\nvec3 dp1=dFdx(p);\nvec3 dp2=dFdy(p);\nvec2 duv1=dFdx(uv);\nvec2 duv2=dFdy(uv);\n\nvec3 dp2perp=cross(dp2,normal);\nvec3 dp1perp=cross(normal,dp1);\nvec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;\nvec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;\n\ntangent*=tangentSpaceParams.x;\nbitangent*=tangentSpaceParams.y;\n\nfloat invmax=inversesqrt(max(dot(tangent,tangent),dot(bitangent,bitangent)));\nreturn mat3(tangent*invmax,bitangent*invmax,normal);\n}\n#endif\n#if defined(BUMP)\n#if BUMPDIRECTUV == 1\n#define vBumpUV vMainUV1\n#elif BUMPDIRECTUV == 2\n#define vBumpUV vMainUV2\n#else\nvarying vec2 vBumpUV;\n#endif\nuniform sampler2D bumpSampler;\nvec3 perturbNormal(mat3 cotangentFrame,vec2 uv)\n{\nreturn perturbNormal(cotangentFrame,texture2D(bumpSampler,uv).xyz,vBumpInfos.y);\n}\n#endif\n#if defined(BUMP) || defined(CLEARCOAT_BUMP)\nvec3 perturbNormal(mat3 cotangentFrame,vec3 color)\n{\nreturn perturbNormal(cotangentFrame,color,vBumpInfos.y);\n}\n\nmat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv)\n{\nreturn cotangent_frame(normal,p,uv,vTangentSpaceParams);\n}\n#endif\n#if defined(BUMP) && defined(PARALLAX)\nconst float minSamples=4.;\nconst float maxSamples=15.;\nconst int iMaxSamples=15;\n\nvec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {\nfloat parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;\nparallaxLimit*=parallaxScale;\nvec2 vOffsetDir=normalize(vViewDirCoT.xy);\nvec2 vMaxOffset=vOffsetDir*parallaxLimit;\nfloat numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));\nfloat stepSize=1.0/numSamples;\n\nfloat currRayHeight=1.0;\nvec2 vCurrOffset=vec2(0,0);\nvec2 vLastOffset=vec2(0,0);\nfloat lastSampledHeight=1.0;\nfloat currSampledHeight=1.0;\nfor (int i=0; icurrRayHeight)\n{\nfloat delta1=currSampledHeight-currRayHeight;\nfloat delta2=(currRayHeight+stepSize)-lastSampledHeight;\nfloat ratio=delta1/(delta1+delta2);\nvCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;\n\nbreak;\n}\nelse\n{\ncurrRayHeight-=stepSize;\nvLastOffset=vCurrOffset;\nvCurrOffset+=stepSize*vMaxOffset;\nlastSampledHeight=currSampledHeight;\n}\n}\nreturn vCurrOffset;\n}\nvec2 parallaxOffset(vec3 viewDir,float heightScale)\n{\n\nfloat height=texture2D(bumpSampler,vBumpUV).w;\nvec2 texCoordOffset=heightScale*viewDir.xy*height;\nreturn -texCoordOffset;\n}\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "vec2 uvOffset=vec2(0.0,0.0);\n#if defined(BUMP) || defined(PARALLAX)\n#ifdef NORMALXYSCALE\nfloat normalScale=1.0;\n#else\nfloat normalScale=vBumpInfos.y;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#else\nmat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,vBumpUV);\n#endif\n#elif defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#else\nmat3 TBN=cotangent_frame(normalW,vPositionW,vMainUV1,vec2(1.,1.));\n#endif\n#endif\n#ifdef PARALLAX\nmat3 invTBN=transposeMat3(TBN);\n#ifdef PARALLAXOCCLUSION\nuvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\n#else\nuvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\n#endif\n#endif\n#ifdef BUMP\n#ifdef OBJECTSPACE_NORMALMAP\nnormalW=normalize(texture2D(bumpSampler,vBumpUV).xyz*2.0-1.0);\nnormalW=normalize(mat3(normalMatrix)*normalW);\n#else\nnormalW=perturbNormal(TBN,vBumpUV+uvOffset);\n#endif\n#endif"; n(7).a.IncludesShadersStore.bumpFragment = i; }, function (e, t, n) { "use strict"; var i = "logDepthFragment", r = "#ifdef LOGARITHMICDEPTH\ngl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "logDepthVertex", r = "#ifdef LOGARITHMICDEPTH\nvFragmentDepth=1.0+gl_Position.w;\ngl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { (function (e, t) { var n; !(function (n) { !(function (i) { var r = "object" == typeof t ? t : "object" == typeof self ? self : "object" == typeof this ? this : Function("return this;")(), o = a(n); function a(e, t) { return function (n, i) { "function" != typeof e[n] && Object.defineProperty(e, n, { configurable: !0, writable: !0, value: i }), t && t(n, i); }; } void 0 === r.Reflect ? (r.Reflect = n) : (o = a(r.Reflect, o)), (function (t) { var n = Object.prototype.hasOwnProperty, i = "function" == typeof Symbol, r = i && void 0 !== Symbol.toPrimitive ? Symbol.toPrimitive : "@@toPrimitive", o = i && void 0 !== Symbol.iterator ? Symbol.iterator : "@@iterator", a = "function" == typeof Object.create, s = { __proto__: [] } instanceof Array, c = !a && !s, l = { create: a ? function () { return w(Object.create(null)); } : s ? function () { return w({ __proto__: null }); } : function () { return w({}); }, has: c ? function (e, t) { return n.call(e, t); } : function (e, t) { return t in e; }, get: c ? function (e, t) { return n.call(e, t) ? e[t] : void 0; } : function (e, t) { return e[t]; }, }, u = Object.getPrototypeOf(Function), h = "object" == typeof e && e.env && "true" === e.env.REFLECT_METADATA_USE_MAP_POLYFILL, d = h || "function" != typeof Map || "function" != typeof Map.prototype.entries ? (function () { var e = {}, t = [], n = (function () { function e(e, t, n) { (this._index = 0), (this._keys = e), (this._values = t), (this._selector = n); } return ( (e.prototype["@@iterator"] = function () { return this; }), (e.prototype[o] = function () { return this; }), (e.prototype.next = function () { var e = this._index; if (e >= 0 && e < this._keys.length) { var n = this._selector(this._keys[e], this._values[e]); return e + 1 >= this._keys.length ? ((this._index = -1), (this._keys = t), (this._values = t)) : this._index++, { value: n, done: !1 }; } return { value: void 0, done: !0 }; }), (e.prototype.throw = function (e) { throw (this._index >= 0 && ((this._index = -1), (this._keys = t), (this._values = t)), e); }), (e.prototype.return = function (e) { return this._index >= 0 && ((this._index = -1), (this._keys = t), (this._values = t)), { value: e, done: !0 }; }), e ); })(); return (function () { function t() { (this._keys = []), (this._values = []), (this._cacheKey = e), (this._cacheIndex = -2); } return ( Object.defineProperty(t.prototype, "size", { get: function () { return this._keys.length; }, enumerable: !0, configurable: !0, }), (t.prototype.has = function (e) { return this._find(e, !1) >= 0; }), (t.prototype.get = function (e) { var t = this._find(e, !1); return t >= 0 ? this._values[t] : void 0; }), (t.prototype.set = function (e, t) { var n = this._find(e, !0); return (this._values[n] = t), this; }), (t.prototype.delete = function (t) { var n = this._find(t, !1); if (n >= 0) { for (var i = this._keys.length, r = n + 1; r < i; r++) (this._keys[r - 1] = this._keys[r]), (this._values[r - 1] = this._values[r]); return this._keys.length--, this._values.length--, t === this._cacheKey && ((this._cacheKey = e), (this._cacheIndex = -2)), !0; } return !1; }), (t.prototype.clear = function () { (this._keys.length = 0), (this._values.length = 0), (this._cacheKey = e), (this._cacheIndex = -2); }), (t.prototype.keys = function () { return new n(this._keys, this._values, i); }), (t.prototype.values = function () { return new n(this._keys, this._values, r); }), (t.prototype.entries = function () { return new n(this._keys, this._values, a); }), (t.prototype["@@iterator"] = function () { return this.entries(); }), (t.prototype[o] = function () { return this.entries(); }), (t.prototype._find = function (e, t) { return ( this._cacheKey !== e && (this._cacheIndex = this._keys.indexOf((this._cacheKey = e))), this._cacheIndex < 0 && t && ((this._cacheIndex = this._keys.length), this._keys.push(e), this._values.push(void 0)), this._cacheIndex ); }), t ); })(); function i(e, t) { return e; } function r(e, t) { return t; } function a(e, t) { return [e, t]; } })() : Map, p = h || "function" != typeof Set || "function" != typeof Set.prototype.entries ? (function () { function e() { this._map = new d(); } return ( Object.defineProperty(e.prototype, "size", { get: function () { return this._map.size; }, enumerable: !0, configurable: !0, }), (e.prototype.has = function (e) { return this._map.has(e); }), (e.prototype.add = function (e) { return this._map.set(e, e), this; }), (e.prototype.delete = function (e) { return this._map.delete(e); }), (e.prototype.clear = function () { this._map.clear(); }), (e.prototype.keys = function () { return this._map.keys(); }), (e.prototype.values = function () { return this._map.values(); }), (e.prototype.entries = function () { return this._map.entries(); }), (e.prototype["@@iterator"] = function () { return this.keys(); }), (e.prototype[o] = function () { return this.keys(); }), e ); })() : Set, f = new (h || "function" != typeof WeakMap ? (function () { var e = l.create(), t = i(); return (function () { function e() { this._key = i(); } return ( (e.prototype.has = function (e) { var t = r(e, !1); return void 0 !== t && l.has(t, this._key); }), (e.prototype.get = function (e) { var t = r(e, !1); return void 0 !== t ? l.get(t, this._key) : void 0; }), (e.prototype.set = function (e, t) { return (r(e, !0)[this._key] = t), this; }), (e.prototype.delete = function (e) { var t = r(e, !1); return void 0 !== t && delete t[this._key]; }), (e.prototype.clear = function () { this._key = i(); }), e ); })(); function i() { var t; do { t = "@@WeakMap@@" + a(); } while (l.has(e, t)); return (e[t] = !0), t; } function r(e, i) { if (!n.call(e, t)) { if (!i) return; Object.defineProperty(e, t, { value: l.create() }); } return e[t]; } function o(e, t) { for (var n = 0; n < t; ++n) e[n] = (255 * Math.random()) | 0; return e; } function a() { var e, t = ((e = 16), "function" == typeof Uint8Array ? "undefined" != typeof crypto ? crypto.getRandomValues(new Uint8Array(e)) : "undefined" != typeof msCrypto ? msCrypto.getRandomValues(new Uint8Array(e)) : o(new Uint8Array(e), e) : o(new Array(e), e)); (t[6] = (79 & t[6]) | 64), (t[8] = (191 & t[8]) | 128); for (var n = "", i = 0; i < 16; ++i) { var r = t[i]; (4 !== i && 6 !== i && 8 !== i) || (n += "-"), r < 16 && (n += "0"), (n += r.toString(16).toLowerCase()); } return n; } })() : WeakMap)(); function m(e, t, n) { var i = f.get(e); if (C(i)) { if (!n) return; (i = new d()), f.set(e, i); } var r = i.get(t); if (C(r)) { if (!n) return; (r = new d()), i.set(t, r); } return r; } function g(e, t, n) { var i = m(t, n, !1); return !C(i) && !!i.has(e); } function b(e, t, n) { var i = m(t, n, !1); if (!C(i)) return i.get(e); } function _(e, t, n, i) { m(n, i, !0).set(e, t); } function v(e, t) { var n = [], i = m(e, t, !1); if (C(i)) return n; for ( var r = (function (e) { var t = A(e, o); if (!E(t)) throw new TypeError(); var n = t.call(e); if (!x(n)) throw new TypeError(); return n; })(i.keys()), a = 0; ; ) { var s = I(r); if (!s) return (n.length = a), n; var c = s.value; try { n[a] = c; } catch (e) { try { D(r); } finally { throw e; } } a++; } } function y(e) { if (null === e) return 1; switch (typeof e) { case "undefined": return 0; case "boolean": return 2; case "string": return 3; case "symbol": return 4; case "number": return 5; case "object": return null === e ? 1 : 6; default: return 6; } } function C(e) { return void 0 === e; } function P(e) { return null === e; } function x(e) { return "object" == typeof e ? null !== e : "function" == typeof e; } function T(e, t) { switch (y(e)) { case 0: case 1: case 2: case 3: case 4: case 5: return e; } var n = 3 === t ? "string" : 5 === t ? "number" : "default", i = A(e, r); if (void 0 !== i) { var o = i.call(e, n); if (x(o)) throw new TypeError(); return o; } return (function (e, t) { if ("string" === t) { var n = e.toString; if (E(n)) if (!x((r = n.call(e)))) return r; if (E((i = e.valueOf))) if (!x((r = i.call(e)))) return r; } else { var i; if (E((i = e.valueOf))) if (!x((r = i.call(e)))) return r; var r, o = e.toString; if (E(o)) if (!x((r = o.call(e)))) return r; } throw new TypeError(); })(e, "default" === n ? "number" : n); } function S(e) { var t = T(e, 3); return "symbol" == typeof t ? t : (function (e) { return "" + e; })(t); } function O(e) { return Array.isArray ? Array.isArray(e) : e instanceof Object ? e instanceof Array : "[object Array]" === Object.prototype.toString.call(e); } function E(e) { return "function" == typeof e; } function M(e) { return "function" == typeof e; } function A(e, t) { var n = e[t]; if (null != n) { if (!E(n)) throw new TypeError(); return n; } } function I(e) { var t = e.next(); return !t.done && t; } function D(e) { var t = e.return; t && t.call(e); } function R(e) { var t = Object.getPrototypeOf(e); if ("function" != typeof e || e === u) return t; if (t !== u) return t; var n = e.prototype, i = n && Object.getPrototypeOf(n); if (null == i || i === Object.prototype) return t; var r = i.constructor; return "function" != typeof r || r === e ? t : r; } function w(e) { return (e.__ = void 0), delete e.__, e; } t("decorate", function (e, t, n, i) { if (C(n)) { if (!O(e)) throw new TypeError(); if (!M(t)) throw new TypeError(); return (function (e, t) { for (var n = e.length - 1; n >= 0; --n) { var i = (0, e[n])(t); if (!C(i) && !P(i)) { if (!M(i)) throw new TypeError(); t = i; } } return t; })(e, t); } if (!O(e)) throw new TypeError(); if (!x(t)) throw new TypeError(); if (!x(i) && !C(i) && !P(i)) throw new TypeError(); return ( P(i) && (i = void 0), (function (e, t, n, i) { for (var r = e.length - 1; r >= 0; --r) { var o = (0, e[r])(t, n, i); if (!C(o) && !P(o)) { if (!x(o)) throw new TypeError(); i = o; } } return i; })(e, t, (n = S(n)), i) ); }), t("metadata", function (e, t) { return function (n, i) { if (!x(n)) throw new TypeError(); if ( !C(i) && !(function (e) { switch (y(e)) { case 3: case 4: return !0; default: return !1; } })(i) ) throw new TypeError(); _(e, t, n, i); }; }), t("defineMetadata", function (e, t, n, i) { if (!x(n)) throw new TypeError(); return C(i) || (i = S(i)), _(e, t, n, i); }), t("hasMetadata", function (e, t, n) { if (!x(t)) throw new TypeError(); return ( C(n) || (n = S(n)), (function e(t, n, i) { if (g(t, n, i)) return !0; var r = R(n); return !P(r) && e(t, r, i); })(e, t, n) ); }), t("hasOwnMetadata", function (e, t, n) { if (!x(t)) throw new TypeError(); return C(n) || (n = S(n)), g(e, t, n); }), t("getMetadata", function (e, t, n) { if (!x(t)) throw new TypeError(); return ( C(n) || (n = S(n)), (function e(t, n, i) { if (g(t, n, i)) return b(t, n, i); var r = R(n); return P(r) ? void 0 : e(t, r, i); })(e, t, n) ); }), t("getOwnMetadata", function (e, t, n) { if (!x(t)) throw new TypeError(); return C(n) || (n = S(n)), b(e, t, n); }), t("getMetadataKeys", function (e, t) { if (!x(e)) throw new TypeError(); return ( C(t) || (t = S(t)), (function e(t, n) { var i = v(t, n), r = R(t); if (null === r) return i; var o = e(r, n); if (o.length <= 0) return i; if (i.length <= 0) return o; for (var a = new p(), s = [], c = 0, l = i; c < l.length; c++) { var u = l[c]; a.has(u) || (a.add(u), s.push(u)); } for (var h = 0, d = o; h < d.length; h++) { u = d[h]; a.has(u) || (a.add(u), s.push(u)); } return s; })(e, t) ); }), t("getOwnMetadataKeys", function (e, t) { if (!x(e)) throw new TypeError(); return C(t) || (t = S(t)), v(e, t); }), t("deleteMetadata", function (e, t, n) { if (!x(t)) throw new TypeError(); C(n) || (n = S(n)); var i = m(t, n, !1); if (C(i)) return !1; if (!i.delete(e)) return !1; if (i.size > 0) return !0; var r = f.get(t); return r.delete(n), r.size > 0 || f.delete(t), !0; }); })(o); })(); })(n || (n = {})); }.call(this, n(252), n(212))); }, function (e, t, n) { var i; "undefined" != typeof self && self, (i = function () { return (function (e) { var t = {}; function n(i) { if (t[i]) return t[i].exports; var r = (t[i] = { i: i, l: !1, exports: {} }); return e[i].call(r.exports, r, r.exports, n), (r.l = !0), r.exports; } return ( (n.m = e), (n.c = t), (n.d = function (e, t, i) { n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: i }); }), (n.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }), (n.t = function (e, t) { if ((1 & t && (e = n(e)), 8 & t)) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var i = Object.create(null); if ((n.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e)) for (var r in e) n.d( i, r, function (t) { return e[t]; }.bind(null, r) ); return i; }), (n.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return n.d(t, "a", t), t; }), (n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }), (n.p = ""), n((n.s = 0)) ); })([ function (e, t, n) { "use strict"; n.r(t); var i = "__typedJsonJsonObjectMetadataInformation__", r = 'Are you sure, that you have both "experimentalDecorators" and "emitDecoratorMetadata" in your tsconfig.json?'; function o(e) { return !!~[Date, Number, String, Boolean].indexOf(e); } function a(e) { return !!~[Float32Array, Float64Array, Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array].indexOf(e); } function s(e, t) { return "string" != typeof e || (function (e, t) { var n = t === String || t === ArrayBuffer || t === DataView, i = e.length >= 2 && '"' === e[0] && '"' === e[e.length - 1], r = /^\d+$/.test(e.trim()); return (n && !i) || (!i && !r && t === Date); })(e, t) ? e : JSON.parse(e); } function c(e, t) { return e === t || e.prototype instanceof t; } function l(e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; ("object" == typeof console && "function" == typeof console.error) || ("object" == typeof console && console.log); } function u(e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; ("object" == typeof console && "function" == typeof console.warn) || ("object" == typeof console && console.log); } function h(e) { return !(null == e); } function d(e, t) { return "number" == typeof e ? t === Number : "string" == typeof e ? t === String : "boolean" == typeof e ? t === Boolean : !!(function (e) { return "object" == typeof e; })(e) && e instanceof t; } var p = "object" == typeof Reflect && "function" == typeof Reflect.getMetadata; function f(e) { return "string" == typeof e.name ? e.name : "undefined"; } var m = (function () { function e(e) { (this.dataMembers = new Map()), (this.knownTypes = new Set()), (this.isExplicitlyMarked = !1), (this.isHandledWithoutAnnotation = !1), (this.classType = e); } return ( (e.getJsonObjectName = function (t) { var n = e.getFromConstructor(t); return f(n ? n.classType : t); }), (e.getFromConstructor = function (t) { var n = t.prototype; if (n) { var r; if ((n.hasOwnProperty(i) && (r = n[i]), r && r.isExplicitlyMarked)) return r; if (e.doesHandleWithoutAnnotation(t)) { var o = new e(t); return (o.isExplicitlyMarked = !0), o; } } }), (e.getKnownTypeNameFromType = function (t) { var n = e.getFromConstructor(t); return f(n ? n.classType : t); }), (e.doesHandleWithoutAnnotation = function (e) { return o(e) || a(e) || e === DataView || e === ArrayBuffer; }), e ); })(); function g(e, t, n) { var r, o = "@jsonMember on " + f(e.constructor) + "." + String(t); if ("function" != typeof e) if ("function" != typeof e[t]) if (n && (n.ctor || n.deserializer)) { if (e.hasOwnProperty(i)) r = e[i]; else { r = new m(e.constructor); var a = e[i]; a && a.dataMembers.forEach(function (e, t) { return r.dataMembers.set(t, e); }), Object.defineProperty(e, i, { enumerable: !1, configurable: !1, writable: !1, value: r }); } n.deserializer || r.knownTypes.add(n.ctor), n.keyType && r.knownTypes.add(n.keyType), n.elementType && n.elementType.forEach(function (e) { return r.knownTypes.add(e); }), Object.keys(n).forEach(function (e) { return void 0 === n[e] && delete n[e]; }), r.dataMembers.set(n.name, n); } else l(o + ": JsonMemberMetadata has unknown ctor."); else l(o + ": cannot use a method property."); else l(o + ": cannot use a static property."); } var b = ["preserveNull"]; function _(e) { var t = Object.keys(e) .filter(function (e) { return b.indexOf(e) > -1; }) .reduce(function (t, n) { return (t[n] = e[n]), t; }, {}); return Object.keys(t).length > 0 ? t : void 0; } function v(e, t) { return t && null != t[e] ? t[e] : (function (e) { switch (e) { case "preserveNull": return !1; } return null; })(e); } function y(e, t) { return t ? Object.assign({}, e, t) : e; } var C = function () { return (C = Object.assign || function (e) { for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e; }).apply(this, arguments); }; function P(e, t, n, i) { t.constructor !== n && (e.__type = i && i.name ? i.name : f(t.constructor)); } var x = (function () { function e() { (this._typeHintEmitter = P), (this._errorHandler = l); } return ( (e.prototype.setTypeHintEmitter = function (e) { if ("function" != typeof e) throw new TypeError("'typeEmitterCallback' is not a function."); this._typeHintEmitter = e; }), (e.prototype.setErrorHandler = function (e) { if ("function" != typeof e) throw new TypeError("'errorHandlerCallback' is not a function."); this._errorHandler = e; }), (e.prototype.convertSingleValue = function (e, t, n, i) { if ((void 0 === n && (n = "object"), this.retrievePreserveNull(i) && null === e)) return null; if (h(e)) { if (d(e, t.selfType)) return o(t.selfType) ? e : t.selfType === ArrayBuffer ? this.convertAsArrayBuffer(e) : t.selfType === DataView ? this.convertAsDataView(e) : (function (e) { return e.selfType === Array; })(t) ? this.convertAsArray(e, t.elementTypes, n, i) : (function (e) { return e.selfType === Set; })(t) ? this.convertAsSet(e, t.elementTypes[0], n, i) : (function (e) { return e.selfType === Map; })(t) ? this.convertAsMap(e, t.keyType, t.elementTypes[0], n, i) : a(t.selfType) ? this.convertAsTypedArray(e) : "object" == typeof e ? this.convertAsObject(e, t, n, i) : void 0; var r = f(t.selfType), s = f(e.constructor); this._errorHandler(new TypeError("Could not serialize '" + n + "': expected '" + r + "', got '" + s + "'.")); } }), (e.prototype.convertAsObject = function (e, t, n, i) { var r, o, a = this; if ((r = e.constructor !== t.selfType && e instanceof t.selfType ? m.getFromConstructor(e.constructor) : m.getFromConstructor(t.selfType))) { r.beforeSerializationMethodName && ("function" == typeof e[r.beforeSerializationMethodName] ? e[r.beforeSerializationMethodName]() : "function" == typeof e.constructor[r.beforeSerializationMethodName] ? e.constructor[r.beforeSerializationMethodName]() : this._errorHandler(new TypeError("beforeSerialization callback '" + f(r.classType) + "." + r.beforeSerializationMethodName + "' is not a method."))); var s = r; o = {}; var c = y(this.options, s.options); s.dataMembers.forEach(function (t) { var n, i = y(c, t.options); if (t.serializer) n = t.serializer(e[t.key]); else { if (!t.ctor) throw new TypeError("Could not serialize " + t.name + ", there is no constructor nor serialization function to use."); n = a.convertSingleValue(e[t.key], { selfType: t.ctor, elementTypes: t.elementType, keyType: t.keyType }, f(s.classType) + "." + t.key, i); } (h(n) || (a.retrievePreserveNull(i) && null === n)) && (o[t.name] = n); }); } else o = C({}, e); return this._typeHintEmitter(o, e, t.selfType, r), o; }), (e.prototype.convertAsArray = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = "object"), 0 === t.length || !t[0])) throw new TypeError("Could not serialize " + n + " as Array: missing element type definition."); e.forEach(function (e, o) { if (!((r.retrievePreserveNull(i) && null === e) || d(e, t[0]))) { var a = f(t[0]), s = e && f(e.constructor); throw new TypeError("Could not serialize " + n + "[" + o + "]: expected '" + a + "', got '" + s + "'."); } }); var o = { selfType: t[0], elementTypes: t.length > 1 ? t.slice(1) : [] }; return ( n && (n += "[]"), e.map(function (e) { return r.convertSingleValue(e, o, n, i); }) ); }), (e.prototype.convertAsSet = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = "object"), !t)) throw new TypeError("Could not serialize " + n + " as Set: missing element type definition."); var o = { selfType: t }; n && (n += "[]"); var a = []; return ( e.forEach(function (e) { var t = r.convertSingleValue(e, o, n, i); (h(e) && !h(t)) || a.push(t); }), a ); }), (e.prototype.convertAsMap = function (e, t, n, i, r) { var o = this; if ((void 0 === i && (i = "object"), !n)) throw new TypeError("Could not serialize " + i + " as Map: missing value type definition."); if (!t) throw new TypeError("Could not serialize " + i + " as Map: missing key type definition."); var a = { selfType: n, elementTypes: [n] }, s = { selfType: t }; i && (i += "[]"); var c = [], l = this.retrievePreserveNull(r); return ( e.forEach(function (e, t) { var n = { key: o.convertSingleValue(t, s, i, r), value: o.convertSingleValue(e, a, i, r) }, u = h(n.key), d = h(n.value) || (null === n.value && l); u && d && c.push(n); }), c ); }), (e.prototype.convertAsTypedArray = function (e) { return Array.from(e); }), (e.prototype.convertAsArrayBuffer = function (e) { return Array.from(new Uint16Array(e)) .map(function (e) { return String.fromCharCode(e); }) .join(""); }), (e.prototype.convertAsDataView = function (e) { return this.convertAsArrayBuffer(e.buffer); }), (e.prototype.retrievePreserveNull = function (e) { return v("preserveNull", y(this.options, e)); }), e ); })(); function T(e, t) { if (e.__type) return t.get(e.__type); } var S = (function () { function e() { (this._typeResolver = T), (this._errorHandler = l); } return ( (e.prototype.setNameResolver = function (e) { this._nameResolver = e; }), (e.prototype.setTypeResolver = function (e) { if ("function" != typeof e) throw new TypeError("'typeResolverCallback' is not a function."); this._typeResolver = e; }), (e.prototype.setErrorHandler = function (e) { if ("function" != typeof e) throw new TypeError("'errorHandlerCallback' is not a function."); this._errorHandler = e; }), (e.prototype.convertAsObject = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = "object"), "object" == typeof e && null !== e)) { var o = t.selfConstructor, a = m.getFromConstructor(o), s = t.knownTypes; a && (s = this._mergeKnownTypes(s, this._createKnownTypesMap(a.knownTypes))); var l = this._typeResolver(e, s); if ((l && c(l, o) && ((o = l), (a = m.getFromConstructor(l)) && (s = this._mergeKnownTypes(s, this._createKnownTypesMap(a.knownTypes)))), a && a.isExplicitlyMarked)) { var u = a, d = {}, p = y(this.options, u.options); u.dataMembers.forEach(function (t, n) { var i, o = e[n], a = f(u.classType) + "." + n, c = y(p, t.options); if (t.deserializer) i = t.deserializer(o); else { if (!t.ctor) throw new TypeError("Cannot deserialize " + a + " there is no constructor nor deserialization function to use."); i = r.convertSingleValue(o, { selfConstructor: t.ctor, elementConstructor: t.elementType, keyConstructor: t.keyType, knownTypes: s }, a, c); } h(i) || (r.retrievePreserveNull(c) && null === i) ? (d[t.key] = i) : t.isRequired && r._errorHandler(new TypeError("Missing required member '" + a + "'.")); }); var g = void 0; if ("function" == typeof a.initializerCallback) try { if (!(g = a.initializerCallback(d, e))) throw new TypeError("Cannot deserialize " + n + ": 'initializer' function returned undefined/null, but '" + f(a.classType) + "' was expected."); if (!(g instanceof a.classType)) throw new TypeError( "Cannot deserialize " + n + ":'initializer' returned '" + f(g.constructor) + "', but '" + f(a.classType) + "' was expected, and '" + f(g.constructor) + "' is not a subtype of '" + f(a.classType) + "'" ); } catch (e) { return void this._errorHandler(e); } else g = this._instantiateType(o); return ( Object.assign(g, d), a.onDeserializedMethodName && ("function" == typeof g[a.onDeserializedMethodName] ? g[a.onDeserializedMethodName]() : "function" == typeof g.constructor[a.onDeserializedMethodName] ? g.constructor[a.onDeserializedMethodName]() : this._errorHandler(new TypeError("onDeserialized callback '" + f(a.classType) + "." + a.onDeserializedMethodName + "' is not a method."))), g ); } var b = {}; return ( Object.keys(e).forEach(function (n) { b[n] = r.convertSingleValue(e[n], { selfConstructor: e[n].constructor, knownTypes: t.knownTypes, elementConstructor: t.elementConstructor, keyConstructor: t.keyConstructor }, n); }), b ); } this._errorHandler(new TypeError("Cannot deserialize " + n + ": 'sourceObject' must be a defined object.")); }), (e.prototype.convertSingleValue = function (e, t, n, i) { void 0 === n && (n = "object"); var r = t.selfConstructor, o = e ? f(e.constructor) : "undefined"; if (this.retrievePreserveNull(i) && null === e) return null; if (h(e)) { if (~[Number, String, Boolean].indexOf(r)) { if (e.constructor === r) return e; throw new TypeError(this._makeTypeErrorMessage(f(r), e.constructor, n)); } if (r === Date) { if ("string" == typeof e || ("number" == typeof e && e > 0)) return new Date(e); this._throwTypeMismatchError("Date", "an ISO-8601 string", o, n); } else { if (r === Float32Array || r === Float64Array) return this._convertAsFloatArray(e, r, o, n); if (r === Uint8Array || r === Uint8ClampedArray || r === Uint16Array || r === Uint32Array) return this._convertAsUintArray(e, r, o, n); if (r === ArrayBuffer) { if ("string" == typeof e) return this._stringToArrayBuffer(e); this._throwTypeMismatchError("ArrayBuffer", "a string source", o, n); } else if (r === DataView) { if ("string" == typeof e) return this._stringToDataView(e); this._throwTypeMismatchError("DataView", "a string source", o, n); } else { if (r === Array) { if (Array.isArray(e)) return this.convertAsArray(e, t, n, i); throw new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n)); } if (r === Set) { if (Array.isArray(e)) return this.convertAsSet(e, t, n, i); this._throwTypeMismatchError("Set", "Array", o, n); } else if (r === Map) { if (Array.isArray(e)) return this.convertAsMap(e, t, n, i); this._throwTypeMismatchError("Map", "a source array of key-value-pair objects", o, n); } else if (e && "object" == typeof e) return this.convertAsObject(e, t, n, i); } } } }), (e.prototype.convertAsArray = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = "object"), !Array.isArray(e))) return this._errorHandler(new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n))), []; if (!t.elementConstructor || !t.elementConstructor.length) return this._errorHandler(new TypeError("Could not deserialize " + n + " as Array: missing constructor reference of Array elements.")), []; var o = { selfConstructor: t.elementConstructor[0], elementConstructor: t.elementConstructor.length > 1 ? t.elementConstructor.slice(1) : [], knownTypes: t.knownTypes }; return e.map(function (e) { try { return r.convertSingleValue(e, o, n + "[]", i); } catch (e) { return void r._errorHandler(e); } }); }), (e.prototype.convertAsSet = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = "object"), !Array.isArray(e))) return this._errorHandler(new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n))), new Set(); if (!t.elementConstructor || !t.elementConstructor.length) return this._errorHandler(new TypeError("Could not deserialize " + n + " as Set: missing constructor reference of Set elements.")), new Set(); var o = { selfConstructor: t.elementConstructor[0], elementConstructor: t.elementConstructor.length > 1 ? t.elementConstructor.slice(1) : [], knownTypes: t.knownTypes }, a = new Set(); return ( e.forEach(function (e, t) { try { a.add(r.convertSingleValue(e, o, n + "[" + t + "]", i)); } catch (e) { r._errorHandler(e); } }), a ); }), (e.prototype.convertAsMap = function (e, t, n, i) { var r = this; if ((void 0 === n && (n = "object"), Array.isArray(e) || this._errorHandler(new TypeError(this._makeTypeErrorMessage(Array, e.constructor, n))), !t.keyConstructor)) return this._errorHandler(new TypeError("Could not deserialize " + n + " as Map: missing key constructor.")), new Map(); if (!t.elementConstructor || !t.elementConstructor.length) return this._errorHandler(new TypeError("Could not deserialize " + n + " as Map: missing value constructor.")), new Map(); var o = { selfConstructor: t.keyConstructor, knownTypes: t.knownTypes }, a = { selfConstructor: t.elementConstructor[0], elementConstructor: t.elementConstructor.length > 1 ? t.elementConstructor.slice(1) : [], knownTypes: t.knownTypes }, s = new Map(); return ( e.forEach(function (e) { try { var t = r.convertSingleValue(e.key, o, n, i); h(t) && s.set(t, r.convertSingleValue(e.value, a, n + "[" + t + "]", i)); } catch (e) { r._errorHandler(e); } }), s ); }), (e.prototype._convertAsFloatArray = function (e, t, n, i) { return Array.isArray(e) && e.every(function (e) { return !isNaN(e); }) ? new t(e) : this._throwTypeMismatchError(t.name, "a numeric source array", n, i); }), (e.prototype._convertAsUintArray = function (e, t, n, i) { return Array.isArray(e) && e.every(function (e) { return !isNaN(e); }) ? new t( e.map(function (e) { return ~~e; }) ) : this._throwTypeMismatchError(t.name, "a numeric source array", n, i); }), (e.prototype._throwTypeMismatchError = function (e, t, n, i) { throw new TypeError("Could not deserialize " + i + " as " + e + ": expected " + t + ", got " + n + "."); }), (e.prototype._makeTypeErrorMessage = function (e, t, n) { return "Could not deserialize " + n + ": expected '" + ("function" == typeof e ? f(e) : e) + "', got '" + ("function" == typeof t ? f(t) : t) + "'."; }), (e.prototype._instantiateType = function (e) { return new e(); }), (e.prototype._mergeKnownTypes = function () { for (var e = this, t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n]; var i = new Map(); return ( t.forEach(function (t) { t.forEach(function (t, n) { e._nameResolver ? i.set(e._nameResolver(t), t) : i.set(n, t); }); }), i ); }), (e.prototype._createKnownTypesMap = function (e) { var t = this, n = new Map(); return ( e.forEach(function (e) { if (t._nameResolver) n.set(t._nameResolver(e), e); else { var i = m.getFromConstructor(e), r = i && i.isExplicitlyMarked && i.name ? i.name : e.name; n.set(r, e); } }), n ); }), (e.prototype._stringToArrayBuffer = function (e) { for (var t = new ArrayBuffer(2 * e.length), n = new Uint16Array(t), i = 0, r = e.length; i < r; i++) n[i] = e.charCodeAt(i); return t; }), (e.prototype._stringToDataView = function (e) { return new DataView(this._stringToArrayBuffer(e)); }), (e.prototype.retrievePreserveNull = function (e) { return v("preserveNull", y(this.options, e)); }), e ); })(), O = function () { return (O = Object.assign || function (e) { for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e; }).apply(this, arguments); }, E = (function () { function e(t, n) { (this.serializer = new x()), (this.deserializer = new S()), (this.globalKnownTypes = []), (this.indent = 0); var i = m.getFromConstructor(t); if (!i || (!i.isExplicitlyMarked && !i.isHandledWithoutAnnotation)) throw new TypeError("The TypedJSON root data type must have the @jsonObject decorator used."); (this.nameResolver = function (e) { return f(e); }), (this.rootConstructor = t), (this.errorHandler = function (e) { return l(e); }), n ? this.config(n) : e._globalConfig && this.config({}); } return ( (e.parse = function (t, n, i) { return new e(n, i).parse(t); }), (e.parseAsArray = function (t, n, i, r) { return new e(n, i).parseAsArray(t, r); }), (e.parseAsSet = function (t, n, i) { return new e(n, i).parseAsSet(t); }), (e.parseAsMap = function (t, n, i, r) { return new e(i, r).parseAsMap(t, n); }), (e.toPlainJson = function (t, n, i) { return new e(n, i).toPlainJson(t); }), (e.toPlainArray = function (t, n, i, r) { return new e(n, r).toPlainArray(t, i); }), (e.toPlainSet = function (t, n, i) { return new e(n, i).toPlainSet(t); }), (e.toPlainMap = function (t, n, i, r) { return new e(i, r).toPlainMap(t, n); }), (e.stringify = function (t, n, i) { return new e(n, i).stringify(t); }), (e.stringifyAsArray = function (t, n, i, r) { return new e(n, r).stringifyAsArray(t, i); }), (e.stringifyAsSet = function (t, n, i) { return new e(n, i).stringifyAsSet(t); }), (e.stringifyAsMap = function (t, n, i, r) { return new e(i, r).stringifyAsMap(t, n); }), (e.setGlobalConfig = function (e) { this._globalConfig ? Object.assign(this._globalConfig, e) : (this._globalConfig = e); }), (e.prototype.config = function (t) { e._globalConfig && (t = O({}, e._globalConfig, t)).knownTypes && e._globalConfig.knownTypes && (t.knownTypes = Array.from(new Set(t.knownTypes.concat(e._globalConfig.knownTypes)))); var n = _(t); (this.serializer.options = n), (this.deserializer.options = n), t.errorHandler && ((this.errorHandler = t.errorHandler), this.deserializer.setErrorHandler(t.errorHandler), this.serializer.setErrorHandler(t.errorHandler)), t.replacer && (this.replacer = t.replacer), t.typeResolver && this.deserializer.setTypeResolver(t.typeResolver), t.typeHintEmitter && this.serializer.setTypeHintEmitter(t.typeHintEmitter), t.indent && (this.indent = t.indent), t.nameResolver && ((this.nameResolver = t.nameResolver), this.deserializer.setNameResolver(t.nameResolver)), t.knownTypes && (t.knownTypes.forEach(function (e, t) { null == e && u("TypedJSON.config: 'knownTypes' contains an undefined/null value (element " + t + ")."); }), (this.globalKnownTypes = t.knownTypes)); }), (e.prototype.parse = function (e) { var t, n = this, i = s(e, this.rootConstructor), r = m.getFromConstructor(this.rootConstructor), o = new Map(); this.globalKnownTypes .filter(function (e) { return e; }) .forEach(function (e) { o.set(n.nameResolver(e), e); }), r && r.knownTypes.forEach(function (e) { o.set(n.nameResolver(e), e); }); try { t = this.deserializer.convertSingleValue(i, { selfConstructor: this.rootConstructor, knownTypes: o }); } catch (e) { this.errorHandler(e); } return t; }), (e.prototype.parseAsArray = function (e, t) { void 0 === t && (t = 1); var n = s(e, Array); return n instanceof Array ? this.deserializer.convertAsArray(n, { selfConstructor: Array, elementConstructor: new Array(t - 1).fill(Array).concat(this.rootConstructor), knownTypes: this._mapKnownTypes(this.globalKnownTypes), }) : (this.errorHandler(new TypeError("Expected 'json' to define an Array, but got " + typeof n + ".")), []); }), (e.prototype.parseAsSet = function (e) { var t = s(e, Set); return t instanceof Array ? this.deserializer.convertAsSet(t, { selfConstructor: Array, elementConstructor: [this.rootConstructor], knownTypes: this._mapKnownTypes(this.globalKnownTypes) }) : (this.errorHandler(new TypeError("Expected 'json' to define a Set (using an Array), but got " + typeof t + ".")), new Set()); }), (e.prototype.parseAsMap = function (e, t) { var n = s(e, Map); return n instanceof Array ? this.deserializer.convertAsMap(n, { selfConstructor: Array, elementConstructor: [this.rootConstructor], knownTypes: this._mapKnownTypes(this.globalKnownTypes), keyConstructor: t }) : (this.errorHandler(new TypeError("Expected 'json' to define a Set (using an Array), but got " + typeof n + ".")), new Map()); }), (e.prototype.toPlainJson = function (e) { try { return this.serializer.convertSingleValue(e, { selfType: this.rootConstructor }); } catch (e) { this.errorHandler(e); } }), (e.prototype.toPlainArray = function (e, t) { void 0 === t && (t = 1); try { var n = new Array(t - 1).fill(Array).concat(this.rootConstructor); return this.serializer.convertAsArray(e, n); } catch (e) { this.errorHandler(e); } }), (e.prototype.toPlainSet = function (e) { try { return this.serializer.convertAsSet(e, this.rootConstructor); } catch (e) { this.errorHandler(e); } }), (e.prototype.toPlainMap = function (e, t) { try { return this.serializer.convertAsMap(e, t, this.rootConstructor); } catch (e) { this.errorHandler(e); } }), (e.prototype.stringify = function (e) { var t = this.toPlainJson(e); return void 0 === t ? "" : JSON.stringify(t, this.replacer, this.indent); }), (e.prototype.stringifyAsArray = function (e, t) { return JSON.stringify(this.toPlainArray(e, t), this.replacer, this.indent); }), (e.prototype.stringifyAsSet = function (e) { return JSON.stringify(this.toPlainSet(e), this.replacer, this.indent); }), (e.prototype.stringifyAsMap = function (e, t) { return JSON.stringify(this.toPlainMap(e, t), this.replacer, this.indent); }), (e.prototype._mapKnownTypes = function (e) { var t = this, n = new Map(); return ( e .filter(function (e) { return e; }) .forEach(function (e) { return n.set(t.nameResolver(e), e); }), n ); }), e ); })(); function M(e) { var t; function n(e) { var n; if (e.prototype.hasOwnProperty(i)) (n = e.prototype[i]).classType = e; else { n = new m(e); var r = e.prototype[i]; r && (r.dataMembers.forEach(function (e, t) { return n.dataMembers.set(t, e); }), r.knownTypes.forEach(function (e) { return n.knownTypes.add(e); })), Object.defineProperty(e.prototype, i, { enumerable: !1, configurable: !1, writable: !1, value: n }); } (n.isExplicitlyMarked = !0), (n.onDeserializedMethodName = t.onDeserialized), (n.beforeSerializationMethodName = t.beforeSerialization), (n.initializerCallback = t.initializer), t.name && (n.name = t.name); var o = _(t); o && (n.options = o), "string" == typeof t.knownTypes ? (n.knownTypeMethodName = t.knownTypes) : t.knownTypes instanceof Array && t.knownTypes .filter(function (e) { return !!e; }) .forEach(function (e) { return n.knownTypes.add(e); }); } if (((t = "function" == typeof e ? {} : e || {}), "function" != typeof e)) return n; n(e); } function A(e, t) { if (!(e instanceof Object) || ("string" != typeof t && "symbol" != typeof t)) return function (t, n) { var i, r = e || {}, o = "@jsonMember on " + f(t.constructor) + "." + String(n); if (r.hasOwnProperty("constructor")) { if (!h(r.constructor)) return void l(o + ": cannot resolve specified property constructor at runtime."); p && !c(r.constructor, Reflect.getMetadata("design:type", t, n)) && u(o + ": detected property type does not match 'constructor' option."), (i = r.constructor); } else if (p) { if (!(i = Reflect.getMetadata("design:type", t, n))) return void l(o + ": cannot resolve detected property constructor at runtime."); } else if (!r.deserializer) return void l(o + ": ReflectDecorators is required if no 'constructor' option is specified."); I(o, i) || g(t, n, { ctor: i, emitDefaultValue: r.emitDefaultValue, isRequired: r.isRequired, options: _(r), key: n.toString(), name: r.name || n.toString(), deserializer: r.deserializer, serializer: r.serializer, }); }; var n = e, i = "@jsonMember on " + f(n.constructor) + "." + String(t); if (p) { var o = Reflect.getMetadata("design:type", n, t); o ? I(i, o) || g(n, t, { ctor: o, key: t.toString(), name: t.toString() }) : l(i + ": could not resolve detected property constructor at runtime. " + r); } else l(i + ": ReflectDecorators is required if no 'constructor' option is specified."); } function I(e, t) { return t === Array ? (l(e + ": property is an Array. Use the jsonArrayMember decorator to serialize this property."), !0) : t === Set ? (l(e + ": property is a Set. Use the jsonSetMember decorator to serialize this property."), !0) : t === Map && (l(e + ": property is a Map. Use the jsonMapMember decorator to serialize this property."), !0); } function D(e, t) { return ( void 0 === t && (t = {}), function (n, i) { var o = "@jsonArrayMember on " + f(n.constructor) + "." + String(i); if ("function" == typeof e) { var a = void 0 === t.dimensions ? 1 : t.dimensions; !isNaN(a) && a < 1 ? l(o + ": 'dimensions' option must be at least 1.") : p && Reflect.getMetadata("design:type", n, i) !== Array ? l(o + ": property is not an Array. " + r) : g(n, i, { ctor: Array, elementType: R(e, a), emitDefaultValue: t.emitDefaultValue, isRequired: t.isRequired, options: _(t), key: i.toString(), name: t.name || i.toString(), deserializer: t.deserializer, serializer: t.serializer, }); } else l(o + ": could not resolve constructor of array elements at runtime."); } ); } function R(e, t) { var n = new Array(t).fill(Array, 0, -1); return (n[t - 1] = e), n; } function w(e, t) { return ( void 0 === t && (t = {}), function (n, i) { var o = "@jsonSetMember on " + f(n.constructor) + "." + String(i); "function" == typeof e ? p && Reflect.getMetadata("design:type", n, i) !== Set ? l(o + ": property is not a Set. " + r) : g(n, i, { ctor: Set, elementType: [e], emitDefaultValue: t.emitDefaultValue, isRequired: t.isRequired, options: _(t), key: i.toString(), name: t.name || i.toString(), deserializer: t.deserializer, serializer: t.serializer, }) : l(o + ": could not resolve constructor of set elements at runtime."); } ); } function L(e, t, n) { return ( void 0 === n && (n = {}), function (i, o) { var a = "@jsonMapMember on " + f(i.constructor) + "." + String(o); "function" == typeof e ? "function" == typeof t ? p && Reflect.getMetadata("design:type", i, o) !== Map ? l(a + ": property is not a Map. " + r) : g(i, o, { ctor: Map, elementType: [t], keyType: e, emitDefaultValue: n.emitDefaultValue, isRequired: n.isRequired, options: _(n), key: o.toString(), name: n.name || o.toString(), deserializer: n.deserializer, serializer: n.serializer, }) : l(a + ": could not resolve constructor of map values at runtime.") : l(a + ": could not resolve constructor of map keys at runtime."); } ); } function F(e) { if ("function" != typeof e) return function (t) { N(t, e); }; N(e, {}); } function N(e, t) { if (!t.overwrite && e.prototype.toJSON) throw new Error(e.name + " already has toJSON defined!"); e.prototype.toJSON = function () { return E.toPlainJson(this, Object.getPrototypeOf(this).constructor); }; } n.d(t, "TypedJSON", function () { return E; }), n.d(t, "jsonObject", function () { return M; }), n.d(t, "jsonMember", function () { return A; }), n.d(t, "jsonArrayMember", function () { return D; }), n.d(t, "jsonSetMember", function () { return w; }), n.d(t, "jsonMapMember", function () { return L; }), n.d(t, "toJson", function () { return F; }); }, ]); }), (e.exports = i()); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.BonusItemTypeProbability = t.BonusItemProtoData = void 0); class i {} (t.BonusItemProtoData = i), (i.DefaultCoinsPerRun = 15), (i.DefaultCoinPlacementHeight = 0.5), (i.DefaultCoinMaxHorizOffset = 0.85), (i.MinCoinsToRepeatPlacement = 10), (i.MaxCoinHistorySize = 15), (i.MaxCoinsPerRun = 15), (i.AllowCoins = !0), (i.MinDistanceBetweenCoinRuns = 80), (i.MinDistanceBetweenBonusItems = 500), (i.ArcMaxHeight = 2.5), (i.MinDistanceAfterTurn = 20), (i.MinDistanceAfterZipline = 20), (i.AllowBonusItems = !0), (i.ProbabilityBonusItem = 1), (i.BonusItemPlacementHeight = 3); t.BonusItemTypeProbability = class { constructor(e, t, n) { (this.ItemType = e), (this.ItemProbability = t), (this.MaxAllowed = n); } }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.Eval = function (t, n) { return ( "true" === (t = t.match(/\([^\(\)]*\)/g) ? t.replace(/\([^\(\)]*\)/g, function (t) { return (t = t.slice(1, t.length - 1)), e._HandleParenthesisContent(t, n); }) : e._HandleParenthesisContent(t, n)) || ("false" !== t && e.Eval(t, n)) ); }), (e._HandleParenthesisContent = function (t, n) { var i; n = n || function (e) { return "true" === e; }; var r = t.split("||"); for (var o in r) if (r.hasOwnProperty(o)) { var a = e._SimplifyNegation(r[o].trim()), s = a.split("&&"); if (s.length > 1) for (var c = 0; c < s.length; ++c) { var l = e._SimplifyNegation(s[c].trim()); if (!(i = "true" !== l && "false" !== l ? ("!" === l[0] ? !n(l.substring(1)) : n(l)) : "true" === l)) { a = "false"; break; } } if (i || "true" === a) { i = !0; break; } i = "true" !== a && "false" !== a ? ("!" === a[0] ? !n(a.substring(1)) : n(a)) : "true" === a; } return i ? "true" : "false"; }), (e._SimplifyNegation = function (e) { return ( "!true" === (e = (e = e.replace(/^[\s!]+/, function (e) { return (e = e.replace(/[\s]/g, function () { return ""; })).length % 2 ? "!" : ""; })).trim()) ? (e = "false") : "!false" === e && (e = "true"), e ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return d; }); var i = n(1), r = n(5), o = n(27), a = n(109), s = Object.freeze(new i.b(0, 0, 0, 0)), c = Object.freeze(i.e.Zero()), l = Object.freeze(i.d.Zero()), u = Object.freeze(a.a.Zero()), h = Object.freeze(r.a.Black()), d = (function () { function e(e, t, n, r) { var a = this; if ( ((this._events = new Array()), (this._currentFrame = 0), (this._originalValue = new Array()), (this._originalBlendValue = null), (this._offsetsCache = {}), (this._highLimitsCache = {}), (this._stopped = !1), (this._blendingFactor = 0), (this._currentValue = null), (this._currentActiveTarget = null), (this._directTarget = null), (this._targetPath = ""), (this._weight = 1), (this._ratioOffset = 0), (this._previousDelay = 0), (this._previousRatio = 0), (this._targetIsArray = !1), (this._animation = t), (this._target = e), (this._scene = n), (this._host = r), (this._activeTargets = []), t._runtimeAnimations.push(this), (this._animationState = { key: 0, repeatCount: 0, loopMode: this._getCorrectLoopMode() }), this._animation.dataType === o.a.ANIMATIONTYPE_MATRIX && (this._animationState.workValue = i.a.Zero()), (this._keys = this._animation.getKeys()), (this._minFrame = this._keys[0].frame), (this._maxFrame = this._keys[this._keys.length - 1].frame), (this._minValue = this._keys[0].value), (this._maxValue = this._keys[this._keys.length - 1].value), 0 !== this._minFrame) ) { var s = { frame: 0, value: this._minValue }; this._keys.splice(0, 0, s); } if (this._target instanceof Array) { for (var c = 0, l = 0, u = this._target; l < u.length; l++) { var h = u[l]; this._preparePath(h, c), this._getOriginalValues(c), c++; } this._targetIsArray = !0; } else this._preparePath(this._target), this._getOriginalValues(), (this._targetIsArray = !1), (this._directTarget = this._activeTargets[0]); var d = t.getEvents(); d && d.length > 0 && d.forEach(function (e) { a._events.push(e._clone()); }), (this._enableBlending = e && e.animationPropertiesOverride ? e.animationPropertiesOverride.enableBlending : this._animation.enableBlending); } return ( Object.defineProperty(e.prototype, "currentFrame", { get: function () { return this._currentFrame; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "weight", { get: function () { return this._weight; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "currentValue", { get: function () { return this._currentValue; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "targetPath", { get: function () { return this._targetPath; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "target", { get: function () { return this._currentActiveTarget; }, enumerable: !0, configurable: !0, }), (e.prototype._preparePath = function (e, t) { void 0 === t && (t = 0); var n = this._animation.targetPropertyPath; if (n.length > 1) { for (var i = e[n[0]], r = 1; r < n.length - 1; r++) i = i[n[r]]; (this._targetPath = n[n.length - 1]), (this._activeTargets[t] = i); } else (this._targetPath = n[0]), (this._activeTargets[t] = e); }), Object.defineProperty(e.prototype, "animation", { get: function () { return this._animation; }, enumerable: !0, configurable: !0, }), (e.prototype.reset = function (e) { if ((void 0 === e && (e = !1), e)) if (this._target instanceof Array) for (var t = 0, n = 0, i = this._target; n < i.length; n++) { var r = i[n]; void 0 !== this._originalValue[t] && this._setValue(r, this._activeTargets[t], this._originalValue[t], -1, t), t++; } else void 0 !== this._originalValue[0] && this._setValue(this._target, this._directTarget, this._originalValue[0], -1, 0); (this._offsetsCache = {}), (this._highLimitsCache = {}), (this._currentFrame = 0), (this._blendingFactor = 0); for (t = 0; t < this._events.length; t++) this._events[t].isDone = !1; }), (e.prototype.isStopped = function () { return this._stopped; }), (e.prototype.dispose = function () { var e = this._animation.runtimeAnimations.indexOf(this); e > -1 && this._animation.runtimeAnimations.splice(e, 1); }), (e.prototype.setValue = function (e, t) { if (this._targetIsArray) for (var n = 0; n < this._target.length; n++) { var i = this._target[n]; this._setValue(i, this._activeTargets[n], e, t, n); } else this._setValue(this._target, this._directTarget, e, t, 0); }), (e.prototype._getOriginalValues = function (e) { var t; void 0 === e && (e = 0); var n = this._activeTargets[e]; (t = n.getRestPose && "_matrix" === this._targetPath ? n.getRestPose() : n[this._targetPath]) && t.clone ? (this._originalValue[e] = t.clone()) : (this._originalValue[e] = t); }), (e.prototype._setValue = function (e, t, n, r, a) { if (((this._currentActiveTarget = t), (this._weight = r), this._enableBlending && this._blendingFactor <= 1)) { if (!this._originalBlendValue) { var s = t[this._targetPath]; s.clone ? (this._originalBlendValue = s.clone()) : (this._originalBlendValue = s); } this._originalBlendValue.m ? o.a.AllowMatrixDecomposeForInterpolation ? this._currentValue ? i.a.DecomposeLerpToRef(this._originalBlendValue, n, this._blendingFactor, this._currentValue) : (this._currentValue = i.a.DecomposeLerp(this._originalBlendValue, n, this._blendingFactor)) : this._currentValue ? i.a.LerpToRef(this._originalBlendValue, n, this._blendingFactor, this._currentValue) : (this._currentValue = i.a.Lerp(this._originalBlendValue, n, this._blendingFactor)) : (this._currentValue = o.a._UniversalLerp(this._originalBlendValue, n, this._blendingFactor)); var c = e && e.animationPropertiesOverride ? e.animationPropertiesOverride.blendingSpeed : this._animation.blendingSpeed; this._blendingFactor += c; } else this._currentValue = n; -1 !== r ? this._scene._registerTargetForLateAnimationBinding(this, this._originalValue[a]) : (t[this._targetPath] = this._currentValue), e.markAsDirty && e.markAsDirty(this._animation.targetProperty); }), (e.prototype._getCorrectLoopMode = function () { return this._target && this._target.animationPropertiesOverride ? this._target.animationPropertiesOverride.loopMode : this._animation.loopMode; }), (e.prototype.goToFrame = function (e) { var t = this._animation.getKeys(); e < t[0].frame ? (e = t[0].frame) : e > t[t.length - 1].frame && (e = t[t.length - 1].frame); var n = this._events; if (n.length) for (var i = 0; i < n.length; i++) n[i].onlyOnce || (n[i].isDone = n[i].frame < e); this._currentFrame = e; var r = this._animation._interpolate(e, this._animationState); this.setValue(r, -1); }), (e.prototype._prepareForSpeedRatioChange = function (e) { var t = (this._previousDelay * (this._animation.framePerSecond * e)) / 1e3; this._ratioOffset = this._previousRatio - t; }), (e.prototype.animate = function (e, t, n, i, r, a) { void 0 === a && (a = -1); var d = this._animation, p = d.targetPropertyPath; if (!p || p.length < 1) return (this._stopped = !0), !1; var f = !0; (t < this._minFrame || t > this._maxFrame) && (t = this._minFrame), (n < this._minFrame || n > this._maxFrame) && (n = this._maxFrame); var m, g, b = n - t, _ = (e * (d.framePerSecond * r)) / 1e3 + this._ratioOffset, v = 0; if (((this._previousDelay = e), (this._previousRatio = _), !i && n >= t && _ >= b)) (f = !1), (v = d._getKeyValue(this._maxValue)); else if (!i && t >= n && _ <= b) (f = !1), (v = d._getKeyValue(this._minValue)); else if (this._animationState.loopMode !== o.a.ANIMATIONLOOPMODE_CYCLE) { var y = n.toString() + t.toString(); if (!this._offsetsCache[y]) { (this._animationState.repeatCount = 0), (this._animationState.loopMode = o.a.ANIMATIONLOOPMODE_CYCLE); var C = d._interpolate(t, this._animationState), P = d._interpolate(n, this._animationState); switch (((this._animationState.loopMode = this._getCorrectLoopMode()), d.dataType)) { case o.a.ANIMATIONTYPE_FLOAT: this._offsetsCache[y] = P - C; break; case o.a.ANIMATIONTYPE_QUATERNION: this._offsetsCache[y] = P.subtract(C); break; case o.a.ANIMATIONTYPE_VECTOR3: this._offsetsCache[y] = P.subtract(C); case o.a.ANIMATIONTYPE_VECTOR2: this._offsetsCache[y] = P.subtract(C); case o.a.ANIMATIONTYPE_SIZE: this._offsetsCache[y] = P.subtract(C); case o.a.ANIMATIONTYPE_COLOR3: this._offsetsCache[y] = P.subtract(C); } this._highLimitsCache[y] = P; } (v = this._highLimitsCache[y]), (m = this._offsetsCache[y]); } if (void 0 === m) switch (d.dataType) { case o.a.ANIMATIONTYPE_FLOAT: m = 0; break; case o.a.ANIMATIONTYPE_QUATERNION: m = s; break; case o.a.ANIMATIONTYPE_VECTOR3: m = c; break; case o.a.ANIMATIONTYPE_VECTOR2: m = l; break; case o.a.ANIMATIONTYPE_SIZE: m = u; break; case o.a.ANIMATIONTYPE_COLOR3: m = h; } if (this._host && this._host.syncRoot) { var x = this._host.syncRoot; g = t + (n - t) * ((x.masterFrame - x.fromFrame) / (x.toFrame - x.fromFrame)); } else g = f && 0 !== b ? t + (_ % b) : n; var T = this._events; if (((b > 0 && this.currentFrame > g) || (b < 0 && this.currentFrame < g)) && (this._onLoop(), T.length)) for (var S = 0; S < T.length; S++) T[S].onlyOnce || (T[S].isDone = !1); (this._currentFrame = g), (this._animationState.repeatCount = 0 === b ? 0 : (_ / b) >> 0), (this._animationState.highLimitValue = v), (this._animationState.offsetValue = m); var O = d._interpolate(g, this._animationState); if ((this.setValue(O, a), T.length)) for (S = 0; S < T.length; S++) if ((b > 0 && g >= T[S].frame && T[S].frame >= t) || (b < 0 && g <= T[S].frame && T[S].frame <= t)) { var E = T[S]; E.isDone || (E.onlyOnce && (T.splice(S, 1), S--), (E.isDone = !0), E.action(g)); } return f || (this._stopped = !0), f; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.ExponentialBackoff = function (e, t) { return ( void 0 === e && (e = 3), void 0 === t && (t = 500), function (n, i, r) { return 0 !== i.status || r >= e || -1 !== n.indexOf("file:") ? -1 : Math.pow(2, r) * t; } ); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this._isDepthTestDirty = !1), (this._isDepthMaskDirty = !1), (this._isDepthFuncDirty = !1), (this._isCullFaceDirty = !1), (this._isCullDirty = !1), (this._isZOffsetDirty = !1), (this._isFrontFaceDirty = !1), this.reset(); } return ( Object.defineProperty(e.prototype, "isDirty", { get: function () { return this._isDepthFuncDirty || this._isDepthTestDirty || this._isDepthMaskDirty || this._isCullFaceDirty || this._isCullDirty || this._isZOffsetDirty || this._isFrontFaceDirty; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "zOffset", { get: function () { return this._zOffset; }, set: function (e) { this._zOffset !== e && ((this._zOffset = e), (this._isZOffsetDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "cullFace", { get: function () { return this._cullFace; }, set: function (e) { this._cullFace !== e && ((this._cullFace = e), (this._isCullFaceDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "cull", { get: function () { return this._cull; }, set: function (e) { this._cull !== e && ((this._cull = e), (this._isCullDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "depthFunc", { get: function () { return this._depthFunc; }, set: function (e) { this._depthFunc !== e && ((this._depthFunc = e), (this._isDepthFuncDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "depthMask", { get: function () { return this._depthMask; }, set: function (e) { this._depthMask !== e && ((this._depthMask = e), (this._isDepthMaskDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "depthTest", { get: function () { return this._depthTest; }, set: function (e) { this._depthTest !== e && ((this._depthTest = e), (this._isDepthTestDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "frontFace", { get: function () { return this._frontFace; }, set: function (e) { this._frontFace !== e && ((this._frontFace = e), (this._isFrontFaceDirty = !0)); }, enumerable: !0, configurable: !0, }), (e.prototype.reset = function () { (this._depthMask = !0), (this._depthTest = !0), (this._depthFunc = null), (this._cullFace = null), (this._cull = null), (this._zOffset = 0), (this._frontFace = null), (this._isDepthTestDirty = !0), (this._isDepthMaskDirty = !0), (this._isDepthFuncDirty = !1), (this._isCullFaceDirty = !1), (this._isCullDirty = !1), (this._isZOffsetDirty = !1), (this._isFrontFaceDirty = !1); }), (e.prototype.apply = function (e) { this.isDirty && (this._isCullDirty && (this.cull ? e.enable(e.CULL_FACE) : e.disable(e.CULL_FACE), (this._isCullDirty = !1)), this._isCullFaceDirty && (e.cullFace(this.cullFace), (this._isCullFaceDirty = !1)), this._isDepthMaskDirty && (e.depthMask(this.depthMask), (this._isDepthMaskDirty = !1)), this._isDepthTestDirty && (this.depthTest ? e.enable(e.DEPTH_TEST) : e.disable(e.DEPTH_TEST), (this._isDepthTestDirty = !1)), this._isDepthFuncDirty && (e.depthFunc(this.depthFunc), (this._isDepthFuncDirty = !1)), this._isZOffsetDirty && (this.zOffset ? (e.enable(e.POLYGON_OFFSET_FILL), e.polygonOffset(this.zOffset, 0)) : e.disable(e.POLYGON_OFFSET_FILL), (this._isZOffsetDirty = !1)), this._isFrontFaceDirty && (e.frontFace(this.frontFace), (this._isFrontFaceDirty = !1))); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this._isStencilTestDirty = !1), (this._isStencilMaskDirty = !1), (this._isStencilFuncDirty = !1), (this._isStencilOpDirty = !1), this.reset(); } return ( Object.defineProperty(e.prototype, "isDirty", { get: function () { return this._isStencilTestDirty || this._isStencilMaskDirty || this._isStencilFuncDirty || this._isStencilOpDirty; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilFunc", { get: function () { return this._stencilFunc; }, set: function (e) { this._stencilFunc !== e && ((this._stencilFunc = e), (this._isStencilFuncDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilFuncRef", { get: function () { return this._stencilFuncRef; }, set: function (e) { this._stencilFuncRef !== e && ((this._stencilFuncRef = e), (this._isStencilFuncDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilFuncMask", { get: function () { return this._stencilFuncMask; }, set: function (e) { this._stencilFuncMask !== e && ((this._stencilFuncMask = e), (this._isStencilFuncDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilOpStencilFail", { get: function () { return this._stencilOpStencilFail; }, set: function (e) { this._stencilOpStencilFail !== e && ((this._stencilOpStencilFail = e), (this._isStencilOpDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilOpDepthFail", { get: function () { return this._stencilOpDepthFail; }, set: function (e) { this._stencilOpDepthFail !== e && ((this._stencilOpDepthFail = e), (this._isStencilOpDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilOpStencilDepthPass", { get: function () { return this._stencilOpStencilDepthPass; }, set: function (e) { this._stencilOpStencilDepthPass !== e && ((this._stencilOpStencilDepthPass = e), (this._isStencilOpDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilMask", { get: function () { return this._stencilMask; }, set: function (e) { this._stencilMask !== e && ((this._stencilMask = e), (this._isStencilMaskDirty = !0)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stencilTest", { get: function () { return this._stencilTest; }, set: function (e) { this._stencilTest !== e && ((this._stencilTest = e), (this._isStencilTestDirty = !0)); }, enumerable: !0, configurable: !0, }), (e.prototype.reset = function () { (this._stencilTest = !1), (this._stencilMask = 255), (this._stencilFunc = e.ALWAYS), (this._stencilFuncRef = 1), (this._stencilFuncMask = 255), (this._stencilOpStencilFail = e.KEEP), (this._stencilOpDepthFail = e.KEEP), (this._stencilOpStencilDepthPass = e.REPLACE), (this._isStencilTestDirty = !0), (this._isStencilMaskDirty = !0), (this._isStencilFuncDirty = !0), (this._isStencilOpDirty = !0); }), (e.prototype.apply = function (e) { this.isDirty && (this._isStencilTestDirty && (this.stencilTest ? e.enable(e.STENCIL_TEST) : e.disable(e.STENCIL_TEST), (this._isStencilTestDirty = !1)), this._isStencilMaskDirty && (e.stencilMask(this.stencilMask), (this._isStencilMaskDirty = !1)), this._isStencilFuncDirty && (e.stencilFunc(this.stencilFunc, this.stencilFuncRef, this.stencilFuncMask), (this._isStencilFuncDirty = !1)), this._isStencilOpDirty && (e.stencilOp(this.stencilOpStencilFail, this.stencilOpDepthFail, this.stencilOpStencilDepthPass), (this._isStencilOpDirty = !1))); }), (e.ALWAYS = 519), (e.KEEP = 7680), (e.REPLACE = 7681), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this._isAlphaBlendDirty = !1), (this._isBlendFunctionParametersDirty = !1), (this._isBlendEquationParametersDirty = !1), (this._isBlendConstantsDirty = !1), (this._alphaBlend = !1), (this._blendFunctionParameters = new Array(4)), (this._blendEquationParameters = new Array(2)), (this._blendConstants = new Array(4)), this.reset(); } return ( Object.defineProperty(e.prototype, "isDirty", { get: function () { return this._isAlphaBlendDirty || this._isBlendFunctionParametersDirty; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "alphaBlend", { get: function () { return this._alphaBlend; }, set: function (e) { this._alphaBlend !== e && ((this._alphaBlend = e), (this._isAlphaBlendDirty = !0)); }, enumerable: !0, configurable: !0, }), (e.prototype.setAlphaBlendConstants = function (e, t, n, i) { (this._blendConstants[0] === e && this._blendConstants[1] === t && this._blendConstants[2] === n && this._blendConstants[3] === i) || ((this._blendConstants[0] = e), (this._blendConstants[1] = t), (this._blendConstants[2] = n), (this._blendConstants[3] = i), (this._isBlendConstantsDirty = !0)); }), (e.prototype.setAlphaBlendFunctionParameters = function (e, t, n, i) { (this._blendFunctionParameters[0] === e && this._blendFunctionParameters[1] === t && this._blendFunctionParameters[2] === n && this._blendFunctionParameters[3] === i) || ((this._blendFunctionParameters[0] = e), (this._blendFunctionParameters[1] = t), (this._blendFunctionParameters[2] = n), (this._blendFunctionParameters[3] = i), (this._isBlendFunctionParametersDirty = !0)); }), (e.prototype.setAlphaEquationParameters = function (e, t) { (this._blendEquationParameters[0] === e && this._blendEquationParameters[1] === t) || ((this._blendEquationParameters[0] = e), (this._blendEquationParameters[1] = t), (this._isBlendEquationParametersDirty = !0)); }), (e.prototype.reset = function () { (this._alphaBlend = !1), (this._blendFunctionParameters[0] = null), (this._blendFunctionParameters[1] = null), (this._blendFunctionParameters[2] = null), (this._blendFunctionParameters[3] = null), (this._blendEquationParameters[0] = null), (this._blendEquationParameters[1] = null), (this._blendConstants[0] = null), (this._blendConstants[1] = null), (this._blendConstants[2] = null), (this._blendConstants[3] = null), (this._isAlphaBlendDirty = !0), (this._isBlendFunctionParametersDirty = !1), (this._isBlendEquationParametersDirty = !1), (this._isBlendConstantsDirty = !1); }), (e.prototype.apply = function (e) { this.isDirty && (this._isAlphaBlendDirty && (this._alphaBlend ? e.enable(e.BLEND) : e.disable(e.BLEND), (this._isAlphaBlendDirty = !1)), this._isBlendFunctionParametersDirty && (e.blendFuncSeparate(this._blendFunctionParameters[0], this._blendFunctionParameters[1], this._blendFunctionParameters[2], this._blendFunctionParameters[3]), (this._isBlendFunctionParametersDirty = !1)), this._isBlendEquationParametersDirty && (e.blendEquationSeparate(this._blendEquationParameters[0], this._blendEquationParameters[1]), (this._isBlendEquationParametersDirty = !1)), this._isBlendConstantsDirty && (e.blendColor(this._blendConstants[0], this._blendConstants[1], this._blendConstants[2], this._blendConstants[3]), (this._isBlendConstantsDirty = !1))); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { (this.vertexCompilationError = null), (this.fragmentCompilationError = null), (this.programLinkError = null), (this.programValidationError = null); } return ( Object.defineProperty(e.prototype, "isAsync", { get: function () { return this.isParallelCompiled; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isReady", { get: function () { return !!this.program && (!this.isParallelCompiled || this.engine._isRenderingStateCompiled(this)); }, enumerable: !0, configurable: !0, }), (e.prototype._handlesSpectorRebuildCallback = function (e) { e && this.program && e(this.program); }), e ); })(); }, function (e, t, n) { "use strict"; var i; n.d(t, "a", function () { return a; }), (function (e) { (e[(e.Pending = 0)] = "Pending"), (e[(e.Fulfilled = 1)] = "Fulfilled"), (e[(e.Rejected = 2)] = "Rejected"); })(i || (i = {})); var r = function () { (this.count = 0), (this.target = 0), (this.results = []); }, o = (function () { function e(e) { var t = this; if (((this._state = i.Pending), (this._children = new Array()), (this._rejectWasConsumed = !1), e)) try { e( function (e) { t._resolve(e); }, function (e) { t._reject(e); } ); } catch (e) { this._reject(e); } } return ( Object.defineProperty(e.prototype, "_result", { get: function () { return this._resultValue; }, set: function (e) { (this._resultValue = e), this._parent && void 0 === this._parent._result && (this._parent._result = e); }, enumerable: !0, configurable: !0, }), (e.prototype.catch = function (e) { return this.then(void 0, e); }), (e.prototype.then = function (t, n) { var r = this, o = new e(); return ( (o._onFulfilled = t), (o._onRejected = n), this._children.push(o), (o._parent = this), this._state !== i.Pending && setTimeout(function () { if (r._state === i.Fulfilled || r._rejectWasConsumed) { var e = o._resolve(r._result); if (null != e) if (void 0 !== e._state) { var t = e; o._children.push(t), (t._parent = o), (o = t); } else o._result = e; } else o._reject(r._reason); }), o ); }), (e.prototype._moveChildren = function (e) { var t, n = this; if ( ((t = this._children).push.apply(t, e.splice(0, e.length)), this._children.forEach(function (e) { e._parent = n; }), this._state === i.Fulfilled) ) for (var r = 0, o = this._children; r < o.length; r++) { o[r]._resolve(this._result); } else if (this._state === i.Rejected) for (var a = 0, s = this._children; a < s.length; a++) { s[a]._reject(this._reason); } }), (e.prototype._resolve = function (e) { try { this._state = i.Fulfilled; var t = null; if ((this._onFulfilled && (t = this._onFulfilled(e)), null != t)) if (void 0 !== t._state) { var n = t; (n._parent = this), n._moveChildren(this._children), (e = n._result); } else e = t; this._result = e; for (var r = 0, o = this._children; r < o.length; r++) { o[r]._resolve(e); } (this._children.length = 0), delete this._onFulfilled, delete this._onRejected; } catch (e) { this._reject(e, !0); } }), (e.prototype._reject = function (e, t) { if ((void 0 === t && (t = !1), (this._state = i.Rejected), (this._reason = e), this._onRejected && !t)) try { this._onRejected(e), (this._rejectWasConsumed = !0); } catch (t) { e = t; } for (var n = 0, r = this._children; n < r.length; n++) { var o = r[n]; this._rejectWasConsumed ? o._resolve(null) : o._reject(e); } (this._children.length = 0), delete this._onFulfilled, delete this._onRejected; }), (e.resolve = function (t) { var n = new e(); return n._resolve(t), n; }), (e._RegisterForFulfillment = function (e, t, n) { e.then( function (e) { return (t.results[n] = e), t.count++, t.count === t.target && t.rootPromise._resolve(t.results), null; }, function (e) { t.rootPromise._state !== i.Rejected && t.rootPromise._reject(e); } ); }), (e.all = function (t) { var n = new e(), i = new r(); if (((i.target = t.length), (i.rootPromise = n), t.length)) for (var o = 0; o < t.length; o++) e._RegisterForFulfillment(t[o], i, o); else n._resolve([]); return n; }), (e.race = function (t) { var n = new e(); if (t.length) for (var i = 0, r = t; i < r.length; i++) { r[i].then( function (e) { return n && (n._resolve(e), (n = null)), null; }, function (e) { n && (n._reject(e), (n = null)); } ); } return n; }), e ); })(), a = (function () { function e() {} return ( (e.Apply = function (e) { (void 0 === e && (e = !1), e || "undefined" == typeof Promise) && (window.Promise = o); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }), n.d(t, "b", function () { return o; }); var i = n(76), r = (function () { function e(e) { void 0 === e && (e = 30), (this._enabled = !0), (this._rollingFrameTime = new o(e)); } return ( (e.prototype.sampleFrame = function (e) { if ((void 0 === e && (e = i.a.Now), this._enabled)) { if (null != this._lastFrameTimeMs) { var t = e - this._lastFrameTimeMs; this._rollingFrameTime.add(t); } this._lastFrameTimeMs = e; } }), Object.defineProperty(e.prototype, "averageFrameTime", { get: function () { return this._rollingFrameTime.average; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "averageFrameTimeVariance", { get: function () { return this._rollingFrameTime.variance; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "instantaneousFrameTime", { get: function () { return this._rollingFrameTime.history(0); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "averageFPS", { get: function () { return 1e3 / this._rollingFrameTime.average; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "instantaneousFPS", { get: function () { var e = this._rollingFrameTime.history(0); return 0 === e ? 0 : 1e3 / e; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isSaturated", { get: function () { return this._rollingFrameTime.isSaturated(); }, enumerable: !0, configurable: !0, }), (e.prototype.enable = function () { this._enabled = !0; }), (e.prototype.disable = function () { (this._enabled = !1), (this._lastFrameTimeMs = null); }), Object.defineProperty(e.prototype, "isEnabled", { get: function () { return this._enabled; }, enumerable: !0, configurable: !0, }), (e.prototype.reset = function () { (this._lastFrameTimeMs = null), this._rollingFrameTime.reset(); }), e ); })(), o = (function () { function e(e) { (this._samples = new Array(e)), this.reset(); } return ( (e.prototype.add = function (e) { var t; if (this.isSaturated()) { var n = this._samples[this._pos]; (t = n - this.average), (this.average -= t / (this._sampleCount - 1)), (this._m2 -= t * (n - this.average)); } else this._sampleCount++; (t = e - this.average), (this.average += t / this._sampleCount), (this._m2 += t * (e - this.average)), (this.variance = this._m2 / (this._sampleCount - 1)), (this._samples[this._pos] = e), this._pos++, (this._pos %= this._samples.length); }), (e.prototype.history = function (e) { if (e >= this._sampleCount || e >= this._samples.length) return 0; var t = this._wrapPosition(this._pos - 1); return this._samples[this._wrapPosition(t - e)]; }), (e.prototype.isSaturated = function () { return this._sampleCount >= this._samples.length; }), (e.prototype.reset = function () { (this.average = 0), (this.variance = 0), (this._sampleCount = 0), (this._pos = 0), (this._m2 = 0); }), (e.prototype._wrapPosition = function (e) { var t = this._samples.length; return ((e % t) + t) % t; }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(1), r = function () { (this._checkCollisions = !1), (this._collisionMask = -1), (this._collisionGroup = -1), (this._collider = null), (this._oldPositionForCollisions = new i.e(0, 0, 0)), (this._diffPositionForCollisions = new i.e(0, 0, 0)); }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(47), r = n(1), o = (function () { function e(e, t, n, r, o) { void 0 === n && (n = null), void 0 === r && (r = null), void 0 === o && (o = null), (this.index = e), (this._opaqueSubMeshes = new i.a(256)), (this._transparentSubMeshes = new i.a(256)), (this._alphaTestSubMeshes = new i.a(256)), (this._depthOnlySubMeshes = new i.a(256)), (this._particleSystems = new i.a(256)), (this._spriteManagers = new i.a(256)), (this._edgesRenderers = new i.a(16)), (this._scene = t), (this.opaqueSortCompareFn = n), (this.alphaTestSortCompareFn = r), (this.transparentSortCompareFn = o); } return ( Object.defineProperty(e.prototype, "opaqueSortCompareFn", { set: function (t) { (this._opaqueSortCompareFn = t), (this._renderOpaque = t ? this.renderOpaqueSorted : e.renderUnsorted); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "alphaTestSortCompareFn", { set: function (t) { (this._alphaTestSortCompareFn = t), (this._renderAlphaTest = t ? this.renderAlphaTestSorted : e.renderUnsorted); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "transparentSortCompareFn", { set: function (t) { (this._transparentSortCompareFn = t || e.defaultTransparentSortCompare), (this._renderTransparent = this.renderTransparentSorted); }, enumerable: !0, configurable: !0, }), (e.prototype.render = function (e, t, n, i) { if (e) e(this._opaqueSubMeshes, this._alphaTestSubMeshes, this._transparentSubMeshes, this._depthOnlySubMeshes); else { var r = this._scene.getEngine(); 0 !== this._depthOnlySubMeshes.length && (r.setColorWrite(!1), this._renderAlphaTest(this._depthOnlySubMeshes), r.setColorWrite(!0)), 0 !== this._opaqueSubMeshes.length && this._renderOpaque(this._opaqueSubMeshes), 0 !== this._alphaTestSubMeshes.length && this._renderAlphaTest(this._alphaTestSubMeshes); var o = r.getStencilBuffer(); if ( (r.setStencilBuffer(!1), t && this._renderSprites(), n && this._renderParticles(i), this.onBeforeTransparentRendering && this.onBeforeTransparentRendering(), 0 !== this._transparentSubMeshes.length && (this._renderTransparent(this._transparentSubMeshes), r.setAlphaMode(0)), r.setStencilBuffer(!1), this._edgesRenderers.length) ) { for (var a = 0; a < this._edgesRenderers.length; a++) this._edgesRenderers.data[a].render(); r.setAlphaMode(0); } r.setStencilBuffer(o); } }), (e.prototype.renderOpaqueSorted = function (t) { return e.renderSorted(t, this._opaqueSortCompareFn, this._scene.activeCamera, !1); }), (e.prototype.renderAlphaTestSorted = function (t) { return e.renderSorted(t, this._alphaTestSortCompareFn, this._scene.activeCamera, !1); }), (e.prototype.renderTransparentSorted = function (t) { return e.renderSorted(t, this._transparentSortCompareFn, this._scene.activeCamera, !0); }), (e.renderSorted = function (t, n, i, o) { for (var a, s = 0, c = i ? i.globalPosition : e._zeroVector; s < t.length; s++) ((a = t.data[s])._alphaIndex = a.getMesh().alphaIndex), (a._distanceToCamera = r.e.Distance(a.getBoundingInfo().boundingSphere.centerWorld, c)); var l = t.data.slice(0, t.length); for (n && l.sort(n), s = 0; s < l.length; s++) { if (((a = l[s]), o)) { var u = a.getMaterial(); if (u && u.needDepthPrePass) { var h = u.getScene().getEngine(); h.setColorWrite(!1), h.setAlphaMode(0), a.render(!1), h.setColorWrite(!0); } } a.render(o); } }), (e.renderUnsorted = function (e) { for (var t = 0; t < e.length; t++) { e.data[t].render(!1); } }), (e.defaultTransparentSortCompare = function (t, n) { return t._alphaIndex > n._alphaIndex ? 1 : t._alphaIndex < n._alphaIndex ? -1 : e.backToFrontSortCompare(t, n); }), (e.backToFrontSortCompare = function (e, t) { return e._distanceToCamera < t._distanceToCamera ? 1 : e._distanceToCamera > t._distanceToCamera ? -1 : 0; }), (e.frontToBackSortCompare = function (e, t) { return e._distanceToCamera < t._distanceToCamera ? -1 : e._distanceToCamera > t._distanceToCamera ? 1 : 0; }), (e.prototype.prepare = function () { this._opaqueSubMeshes.reset(), this._transparentSubMeshes.reset(), this._alphaTestSubMeshes.reset(), this._depthOnlySubMeshes.reset(), this._particleSystems.reset(), this._spriteManagers.reset(), this._edgesRenderers.reset(); }), (e.prototype.dispose = function () { this._opaqueSubMeshes.dispose(), this._transparentSubMeshes.dispose(), this._alphaTestSubMeshes.dispose(), this._depthOnlySubMeshes.dispose(), this._particleSystems.dispose(), this._spriteManagers.dispose(), this._edgesRenderers.dispose(); }), (e.prototype.dispatch = function (e, t, n) { void 0 === t && (t = e.getMesh()), void 0 === n && (n = e.getMaterial()), null != n && (n.needAlphaBlendingForMesh(t) ? this._transparentSubMeshes.push(e) : n.needAlphaTesting() ? (n.needDepthPrePass && this._depthOnlySubMeshes.push(e), this._alphaTestSubMeshes.push(e)) : (n.needDepthPrePass && this._depthOnlySubMeshes.push(e), this._opaqueSubMeshes.push(e)), (t._renderingGroup = this), t._edgesRenderer && t._edgesRenderer.isEnabled && this._edgesRenderers.push(t._edgesRenderer)); }), (e.prototype.dispatchSprites = function (e) { this._spriteManagers.push(e); }), (e.prototype.dispatchParticles = function (e) { this._particleSystems.push(e); }), (e.prototype._renderParticles = function (e) { if (0 !== this._particleSystems.length) { var t = this._scene.activeCamera; this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene); for (var n = 0; n < this._particleSystems.length; n++) { var i = this._particleSystems.data[n]; if (0 !== (t && t.layerMask & i.layerMask)) { var r = i.emitter; (r.position && e && -1 === e.indexOf(r)) || this._scene._activeParticles.addCount(i.render(), !1); } } this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene); } }), (e.prototype._renderSprites = function () { if (this._scene.spritesEnabled && 0 !== this._spriteManagers.length) { var e = this._scene.activeCamera; this._scene.onBeforeSpritesRenderingObservable.notifyObservers(this._scene); for (var t = 0; t < this._spriteManagers.length; t++) { var n = this._spriteManagers.data[t]; 0 !== (e && e.layerMask & n.layerMask) && n.render(); } this._scene.onAfterSpritesRenderingObservable.notifyObservers(this._scene); } }), (e._zeroVector = r.e.Zero()), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e(e, t, n) { (this.frame = e), (this.action = t), (this.onlyOnce = n), (this.isDone = !1); } return ( (e.prototype._clone = function () { return new e(this.frame, this.action, this.onlyOnce); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = function (e, t) { (this.distance = e), (this.mesh = t); }; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(10), r = (function () { function e(e, t, n) { var i = this; if (((this.loop = !1), (this._coneInnerAngle = 360), (this._coneOuterAngle = 360), (this._volume = 1), (this.isPlaying = !1), (this.isPaused = !1), (this._sounds = []), (this._weights = []), t.length !== n.length)) throw new Error("Sounds length does not equal weights length"); (this.loop = e), (this._weights = n); for (var r = 0, o = 0, a = n; o < a.length; o++) { r += a[o]; } for (var s = r > 0 ? 1 / r : 0, c = 0; c < this._weights.length; c++) this._weights[c] *= s; this._sounds = t; for (var l = 0, u = this._sounds; l < u.length; l++) { u[l].onEndedObservable.add(function () { i._onended(); }); } } return ( Object.defineProperty(e.prototype, "directionalConeInnerAngle", { get: function () { return this._coneInnerAngle; }, set: function (e) { if (e !== this._coneInnerAngle) { if (this._coneOuterAngle < e) return void i.a.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle."); this._coneInnerAngle = e; for (var t = 0, n = this._sounds; t < n.length; t++) { n[t].directionalConeInnerAngle = e; } } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "directionalConeOuterAngle", { get: function () { return this._coneOuterAngle; }, set: function (e) { if (e !== this._coneOuterAngle) { if (e < this._coneInnerAngle) return void i.a.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle."); this._coneOuterAngle = e; for (var t = 0, n = this._sounds; t < n.length; t++) { n[t].directionalConeOuterAngle = e; } } }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "volume", { get: function () { return this._volume; }, set: function (e) { if (e !== this._volume) for (var t = 0, n = this._sounds; t < n.length; t++) { n[t].setVolume(e); } }, enumerable: !0, configurable: !0, }), (e.prototype._onended = function () { void 0 !== this._currentIndex && (this._sounds[this._currentIndex].autoplay = !1), this.loop && this.isPlaying ? this.play() : (this.isPlaying = !1); }), (e.prototype.pause = function () { (this.isPaused = !0), void 0 !== this._currentIndex && this._sounds[this._currentIndex].pause(); }), (e.prototype.stop = function () { (this.isPlaying = !1), void 0 !== this._currentIndex && this._sounds[this._currentIndex].stop(); }), (e.prototype.play = function (e) { if (!this.isPaused) { this.stop(); for (var t = Math.random(), n = 0, i = 0; i < this._weights.length; i++) if (t <= (n += this._weights[i])) { this._currentIndex = i; break; } } var r = this._sounds[this._currentIndex]; r.isReady() ? r.play(0, this.isPaused ? void 0 : e) : (r.autoplay = !0), (this.isPlaying = !0), (this.isPaused = !1); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() { var e = this; (this.delay = 0), (this.fadeInTime = 300), (this._millisecondsPerFrame = 1e3 / 60), (this._hovered = !1), (this._hoverValue = 0), (this._ownerNode = null), (this._update = function () { if (e._ownerNode) { if (((e._hoverValue += e._hovered ? e._millisecondsPerFrame : -e._millisecondsPerFrame), e._setAllVisibility(e._ownerNode, (e._hoverValue - e.delay) / e.fadeInTime), e._ownerNode.visibility > 1)) return e._setAllVisibility(e._ownerNode, 1), void (e._hoverValue = e.fadeInTime + e.delay); if (e._ownerNode.visibility < 0 && (e._setAllVisibility(e._ownerNode, 0), e._hoverValue < 0)) return void (e._hoverValue = 0); setTimeout(e._update, e._millisecondsPerFrame); } }); } return ( Object.defineProperty(e.prototype, "name", { get: function () { return "FadeInOut"; }, enumerable: !0, configurable: !0, }), (e.prototype.init = function () {}), (e.prototype.attach = function (e) { (this._ownerNode = e), this._setAllVisibility(this._ownerNode, 0); }), (e.prototype.detach = function () { this._ownerNode = null; }), (e.prototype.fadeIn = function (e) { (this._hovered = e), this._update(); }), (e.prototype._setAllVisibility = function (e, t) { var n = this; (e.visibility = t), e.getChildMeshes().forEach(function (e) { n._setAllVisibility(e, t); }); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(3), o = n(42), a = n(89), s = n(1), c = (function () { function e() { (this.keysUp = [38]), (this.keysDown = [40]), (this.keysLeft = [37]), (this.keysRight = [39]), (this._keys = new Array()); } return ( (e.prototype.attachControl = function (e, t) { var n = this; this._onCanvasBlurObserver || ((this._scene = this.camera.getScene()), (this._engine = this._scene.getEngine()), (this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(function () { n._keys = []; })), (this._onKeyboardObserver = this._scene.onKeyboardObservable.add(function (e) { var i, r = e.event; r.metaKey || (e.type === a.a.KEYDOWN ? (-1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode)) || (-1 === (i = n._keys.indexOf(r.keyCode)) && n._keys.push(r.keyCode), t || r.preventDefault()) : (-1 === n.keysUp.indexOf(r.keyCode) && -1 === n.keysDown.indexOf(r.keyCode) && -1 === n.keysLeft.indexOf(r.keyCode) && -1 === n.keysRight.indexOf(r.keyCode)) || ((i = n._keys.indexOf(r.keyCode)) >= 0 && n._keys.splice(i, 1), t || r.preventDefault())); }))); }), (e.prototype.detachControl = function (e) { this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), (this._onKeyboardObserver = null), (this._onCanvasBlurObserver = null)), (this._keys = []); }), (e.prototype.checkInputs = function () { if (this._onKeyboardObserver) for (var e = this.camera, t = 0; t < this._keys.length; t++) { var n = this._keys[t], i = e._computeLocalCameraSpeed(); -1 !== this.keysLeft.indexOf(n) ? e._localDirection.copyFromFloats(-i, 0, 0) : -1 !== this.keysUp.indexOf(n) ? e._localDirection.copyFromFloats(0, 0, i) : -1 !== this.keysRight.indexOf(n) ? e._localDirection.copyFromFloats(i, 0, 0) : -1 !== this.keysDown.indexOf(n) && e._localDirection.copyFromFloats(0, 0, -i), e.getScene().useRightHandedSystem && (e._localDirection.z *= -1), e.getViewMatrix().invertToRef(e._cameraTransformMatrix), s.e.TransformNormalToRef(e._localDirection, e._cameraTransformMatrix, e._transformedDirection), e.cameraDirection.addInPlace(e._transformedDirection); } }), (e.prototype.getClassName = function () { return "FreeCameraKeyboardMoveInput"; }), (e.prototype._onLostFocus = function () { this._keys = []; }), (e.prototype.getSimpleName = function () { return "keyboard"; }), Object(i.c)([Object(r.c)()], e.prototype, "keysUp", void 0), Object(i.c)([Object(r.c)()], e.prototype, "keysDown", void 0), Object(i.c)([Object(r.c)()], e.prototype, "keysLeft", void 0), Object(i.c)([Object(r.c)()], e.prototype, "keysRight", void 0), e ); })(); o.a.FreeCameraKeyboardMoveInput = c; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(6), o = n(3), a = n(42), s = n(20), c = (function () { function e(e) { void 0 === e && (e = !0), (this.touchEnabled = e), (this.buttons = [0, 1, 2]), (this.angularSensibility = 2e3), (this.previousPosition = null), (this.onPointerMovedObservable = new r.c()), (this._allowCameraRotation = !0); } return ( (e.prototype.attachControl = function (e, t) { var n = this, i = this.camera.getEngine(); this._pointerInput || (this._pointerInput = function (r) { var o = r.event; if (!i.isInVRExclusivePointerMode && (n.touchEnabled || "touch" !== o.pointerType) && (r.type === s.a.POINTERMOVE || -1 !== n.buttons.indexOf(o.button))) { var a = o.srcElement || o.target; if (r.type === s.a.POINTERDOWN && a) { try { a.setPointerCapture(o.pointerId); } catch (e) {} (n.previousPosition = { x: o.clientX, y: o.clientY }), t || (o.preventDefault(), e.focus()); } else if (r.type === s.a.POINTERUP && a) { try { a.releasePointerCapture(o.pointerId); } catch (e) {} (n.previousPosition = null), t || o.preventDefault(); } else if (r.type === s.a.POINTERMOVE) { if (!n.previousPosition || i.isPointerLock) return; var c = o.clientX - n.previousPosition.x, l = o.clientY - n.previousPosition.y; n.camera.getScene().useRightHandedSystem && (c *= -1), n.camera.parent && n.camera.parent._getWorldMatrixDeterminant() < 0 && (c *= -1), n._allowCameraRotation && ((n.camera.cameraRotation.y += c / n.angularSensibility), (n.camera.cameraRotation.x += l / n.angularSensibility)), n.onPointerMovedObservable.notifyObservers({ offsetX: c, offsetY: l }), (n.previousPosition = { x: o.clientX, y: o.clientY }), t || o.preventDefault(); } } }), (this._onMouseMove = function (e) { if (i.isPointerLock && !i.isInVRExclusivePointerMode) { var r = e.movementX || e.mozMovementX || e.webkitMovementX || e.msMovementX || 0; n.camera.getScene().useRightHandedSystem && (r *= -1), n.camera.parent && n.camera.parent._getWorldMatrixDeterminant() < 0 && (r *= -1), (n.camera.cameraRotation.y += r / n.angularSensibility); var o = e.movementY || e.mozMovementY || e.webkitMovementY || e.msMovementY || 0; (n.camera.cameraRotation.x += o / n.angularSensibility), (n.previousPosition = null), t || e.preventDefault(); } }), (this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, s.a.POINTERDOWN | s.a.POINTERUP | s.a.POINTERMOVE)), e.addEventListener("mousemove", this._onMouseMove, !1), e.addEventListener("contextmenu", this.onContextMenu.bind(this), !1); }), (e.prototype.onContextMenu = function (e) { e.preventDefault(); }), (e.prototype.detachControl = function (e) { this._observer && e && (this.camera.getScene().onPointerObservable.remove(this._observer), this._onMouseMove && e.removeEventListener("mousemove", this._onMouseMove), this.onContextMenu && e.removeEventListener("contextmenu", this.onContextMenu), this.onPointerMovedObservable && this.onPointerMovedObservable.clear(), (this._observer = null), (this._onMouseMove = null), (this.previousPosition = null)); }), (e.prototype.getClassName = function () { return "FreeCameraMouseInput"; }), (e.prototype.getSimpleName = function () { return "mouse"; }), Object(i.c)([Object(o.c)()], e.prototype, "buttons", void 0), Object(i.c)([Object(o.c)()], e.prototype, "angularSensibility", void 0), e ); })(); a.a.FreeCameraMouseInput = c; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(3), o = n(42), a = n(20), s = n(1), c = (function () { function e() { (this.touchAngularSensibility = 2e5), (this.touchMoveSensibility = 250), (this._offsetX = null), (this._offsetY = null), (this._pointerPressed = new Array()); } return ( (e.prototype.attachControl = function (e, t) { var n = this, i = null; void 0 === this._pointerInput && ((this._onLostFocus = function () { (n._offsetX = null), (n._offsetY = null); }), (this._pointerInput = function (e) { var r = e.event; if ("mouse" !== r.pointerType) if (e.type === a.a.POINTERDOWN) { if ((t || r.preventDefault(), n._pointerPressed.push(r.pointerId), 1 !== n._pointerPressed.length)) return; i = { x: r.clientX, y: r.clientY }; } else if (e.type === a.a.POINTERUP) { if ((t || r.preventDefault(), -1 === (o = n._pointerPressed.indexOf(r.pointerId)))) return; if ((n._pointerPressed.splice(o, 1), 0 != o)) return; (i = null), (n._offsetX = null), (n._offsetY = null); } else if (e.type === a.a.POINTERMOVE) { if ((t || r.preventDefault(), !i)) return; var o; if (0 != (o = n._pointerPressed.indexOf(r.pointerId))) return; (n._offsetX = r.clientX - i.x), (n._offsetY = -(r.clientY - i.y)); } })), (this._observer = this.camera.getScene().onPointerObservable.add(this._pointerInput, a.a.POINTERDOWN | a.a.POINTERUP | a.a.POINTERMOVE)), this._onLostFocus && e.addEventListener("blur", this._onLostFocus); }), (e.prototype.detachControl = function (e) { this._pointerInput && e && (this._observer && (this.camera.getScene().onPointerObservable.remove(this._observer), (this._observer = null)), this._onLostFocus && (e.removeEventListener("blur", this._onLostFocus), (this._onLostFocus = null)), (this._pointerPressed = []), (this._offsetX = null), (this._offsetY = null)); }), (e.prototype.checkInputs = function () { if (this._offsetX && this._offsetY) { var e = this.camera; if (((e.cameraRotation.y += this._offsetX / this.touchAngularSensibility), this._pointerPressed.length > 1)) e.cameraRotation.x += -this._offsetY / this.touchAngularSensibility; else { var t = e._computeLocalCameraSpeed(), n = new s.e(0, 0, (t * this._offsetY) / this.touchMoveSensibility); s.a.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, 0, e._cameraRotationMatrix), e.cameraDirection.addInPlace(s.e.TransformCoordinates(n, e._cameraRotationMatrix)); } } }), (e.prototype.getClassName = function () { return "FreeCameraTouchInput"; }), (e.prototype.getSimpleName = function () { return "touch"; }), Object(i.c)([Object(r.c)()], e.prototype, "touchAngularSensibility", void 0), Object(i.c)([Object(r.c)()], e.prototype, "touchMoveSensibility", void 0), e ); })(); o.a.FreeCameraTouchInput = c; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(24), r = (n(229), n(166), (function () { function e() {} return ( (e.ExpandRGBDTexture = function (e) { var t = e._texture; if (t && e.isRGBD) { var n = t.getEngine(), r = n.getCaps(), o = !1; r.textureHalfFloatRender && r.textureHalfFloatLinearFiltering ? ((o = !0), (t.type = 2)) : r.textureFloatRender && r.textureFloatLinearFiltering && ((o = !0), (t.type = 1)), o && ((t.isReady = !1), (t._isRGBD = !1), (t.invertY = !1)), e.onLoadObservable.addOnce(function () { if (o) { var r = new i.a("rgbdDecode", "rgbdDecode", null, null, 1, null, 3, n, !1, void 0, t.type, void 0, null, !1), a = n.createRenderTargetTexture(t.width, { generateDepthBuffer: !1, generateMipMaps: !1, generateStencilBuffer: !1, samplingMode: t.samplingMode, type: t.type, format: 5 }); r.getEffect().executeWhenCompiled(function () { (r.onApply = function (e) { e._bindTexture("textureSampler", t), e.setFloat2("scale", 1, 1); }), e.getScene().postProcessManager.directRender([r], a, !0), n.restoreDefaultFramebuffer(), n._releaseTexture(t), n._releaseFramebufferObjects(a), r && r.dispose(), a._swapAndDie(t), (t.isReady = !0); }); } }); } }), e ); })()); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return r; }); var i = n(21), r = (function () { function e(e) { (this.name = i.a.NAME_LAYER), (this.scene = e), (this._engine = e.getEngine()), (e.layers = new Array()); } return ( (e.prototype.register = function () { this.scene._beforeCameraDrawStage.registerStep(i.a.STEP_BEFORECAMERADRAW_LAYER, this, this._drawCameraBackground), this.scene._afterCameraDrawStage.registerStep(i.a.STEP_AFTERCAMERADRAW_LAYER, this, this._drawCameraForeground), this.scene._beforeRenderTargetDrawStage.registerStep(i.a.STEP_BEFORERENDERTARGETDRAW_LAYER, this, this._drawRenderTargetBackground), this.scene._afterRenderTargetDrawStage.registerStep(i.a.STEP_AFTERRENDERTARGETDRAW_LAYER, this, this._drawRenderTargetForeground); }), (e.prototype.rebuild = function () { for (var e = 0, t = this.scene.layers; e < t.length; e++) { t[e]._rebuild(); } }), (e.prototype.dispose = function () { for (var e = this.scene.layers; e.length; ) e[0].dispose(); }), (e.prototype._draw = function (e) { var t = this.scene.layers; if (t.length) { this._engine.setDepthBuffer(!1); for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; e(r) && r.render(); } this._engine.setDepthBuffer(!0); } }), (e.prototype._drawCameraPredicate = function (e, t, n) { return !e.renderOnlyInRenderTargetTextures && e.isBackground === t && 0 != (e.layerMask & n); }), (e.prototype._drawCameraBackground = function (e) { var t = this; this._draw(function (n) { return t._drawCameraPredicate(n, !0, e.layerMask); }); }), (e.prototype._drawCameraForeground = function (e) { var t = this; this._draw(function (n) { return t._drawCameraPredicate(n, !1, e.layerMask); }); }), (e.prototype._drawRenderTargetPredicate = function (e, t, n, i) { return e.renderTargetTextures.length > 0 && e.isBackground === t && e.renderTargetTextures.indexOf(i) > -1 && 0 != (e.layerMask & n); }), (e.prototype._drawRenderTargetBackground = function (e) { var t = this; this._draw(function (n) { return t._drawRenderTargetPredicate(n, !0, t.scene.activeCamera.layerMask, e); }); }), (e.prototype._drawRenderTargetForeground = function (e) { var t = this; this._draw(function (n) { return t._drawRenderTargetPredicate(n, !1, t.scene.activeCamera.layerMask, e); }); }), (e.prototype.addFromContainer = function (e) { var t = this; e.layers && e.layers.forEach(function (e) { t.scene.layers.push(e); }); }), (e.prototype.removeFromContainer = function (e, t) { var n = this; void 0 === t && (t = !1), e.layers && e.layers.forEach(function (e) { var i = n.scene.layers.indexOf(e); -1 !== i && n.scene.layers.splice(i, 1), t && e.dispose(); }); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return s; }); var i = n(2), r = n(3), o = n(160), a = n(13), s = (function (e) { function t(t, n) { var i = e.call(this, t, n) || this; return (i._useRoughnessFromMetallicTextureAlpha = !1), (i._useRoughnessFromMetallicTextureGreen = !0), (i._useMetallnessFromMetallicTextureBlue = !0), (i.metallic = 1), (i.roughness = 1), i; } return ( Object(i.d)(t, e), (t.prototype.getClassName = function () { return "PBRMetallicRoughnessMaterial"; }), (t.prototype.clone = function (e) { var n = this, i = r.a.Clone(function () { return new t(e, n.getScene()); }, this); return (i.id = e), (i.name = e), this.clearCoat.copyTo(i.clearCoat), this.anisotropy.copyTo(i.anisotropy), this.brdf.copyTo(i.brdf), this.sheen.copyTo(i.sheen), this.subSurface.copyTo(i.subSurface), i; }), (t.prototype.serialize = function () { var e = r.a.Serialize(this); return ( (e.customType = "BABYLON.PBRMetallicRoughnessMaterial"), (e.clearCoat = this.clearCoat.serialize()), (e.anisotropy = this.anisotropy.serialize()), (e.brdf = this.brdf.serialize()), (e.sheen = this.sheen.serialize()), (e.subSurface = this.subSurface.serialize()), e ); }), (t.Parse = function (e, n, i) { var o = r.a.Parse( function () { return new t(e.name, n); }, e, n, i ); return ( e.clearCoat && o.clearCoat.parse(e.clearCoat, n, i), e.anisotropy && o.anisotropy.parse(e.anisotropy, n, i), e.brdf && o.brdf.parse(e.brdf, n, i), e.sheen && o.sheen.parse(e.sheen, n, i), e.subSurface && o.subSurface.parse(e.subSurface, n, i), o ); }), Object(i.c)([Object(r.e)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_albedoColor")], t.prototype, "baseColor", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_albedoTexture")], t.prototype, "baseTexture", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "metallic", void 0), Object(i.c)([Object(r.c)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty")], t.prototype, "roughness", void 0), Object(i.c)([Object(r.m)(), Object(r.b)("_markAllSubMeshesAsTexturesDirty", "_metallicTexture")], t.prototype, "metallicRoughnessTexture", void 0), t ); })(o.a); a.a.RegisteredTypes["BABYLON.PBRMetallicRoughnessMaterial"] = s; }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return o; }); var i = n(12), r = n(21), o = (function () { function e(e) { (this.name = r.a.NAME_PROCEDURALTEXTURE), (this.scene = e), (this.scene.proceduralTextures = new Array()); } return ( (e.prototype.register = function () { this.scene._beforeClearStage.registerStep(r.a.STEP_BEFORECLEAR_PROCEDURALTEXTURE, this, this._beforeClear); }), (e.prototype.rebuild = function () {}), (e.prototype.dispose = function () {}), (e.prototype._beforeClear = function () { if (this.scene.proceduralTexturesEnabled) { i.b.StartPerformanceCounter("Procedural textures", this.scene.proceduralTextures.length > 0); for (var e = 0; e < this.scene.proceduralTextures.length; e++) { var t = this.scene.proceduralTextures[e]; t._shouldRender() && t.render(); } i.b.EndPerformanceCounter("Procedural textures", this.scene.proceduralTextures.length > 0); } }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return c; }); var i = n(2), r = n(3), o = n(117), a = n(32), s = n(98), c = (n(155), (function (e) { function t(t, n, i, r, o, a, s, c, l) { void 0 === r && (r = 5), void 0 === o && (o = 0), void 0 === a && (a = !1), void 0 === s && (s = !1), void 0 === c && (c = 3), void 0 === l && (l = null); var u = e.call(this, "", t) || this; return (u._texture = t.getEngine().createRawCubeTexture(n, i, r, o, a, s, c, l)), u; } return ( Object(i.d)(t, e), (t.prototype.update = function (e, t, n, i, r) { void 0 === r && (r = null), this._texture.getEngine().updateRawCubeTexture(this._texture, e, t, n, i, r); }), (t.prototype.updateRGBDAsync = function (e, n, i, r) { return void 0 === n && (n = null), void 0 === i && (i = 0.8), void 0 === r && (r = 0), t._UpdateRGBDAsync(this._texture, e, n, i, r); }), (t.prototype.clone = function () { var e = this; return r.a.Clone(function () { var n = e.getScene(), i = e._texture, r = new t(n, i._bufferViewArray, i.width, i.format, i.type, i.generateMipMaps, i.invertY, i.samplingMode, i._compression); return i.source === a.b.CubeRawRGBD && r.updateRGBDAsync(i._bufferViewArrayArray, i._sphericalPolynomial, i._lodGenerationScale, i._lodGenerationOffset), r; }, this); }), (t._UpdateRGBDAsync = function (e, t, n, i, r) { return ( (e._source = a.b.CubeRawRGBD), (e._bufferViewArrayArray = t), (e._lodGenerationScale = i), (e._lodGenerationOffset = r), (e._sphericalPolynomial = n), o.a.UploadLevelsAsync(e, t).then(function () { e.isReady = !0; }) ); }), t ); })(s.a)); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e(e) { (this._pendingActions = new Array()), (this._workerInfos = e.map(function (e) { return { worker: e, active: !1 }; })); } return ( (e.prototype.dispose = function () { for (var e = 0, t = this._workerInfos; e < t.length; e++) { t[e].worker.terminate(); } delete this._workerInfos, delete this._pendingActions; }), (e.prototype.push = function (e) { for (var t = 0, n = this._workerInfos; t < n.length; t++) { var i = n[t]; if (!i.active) return void this._execute(i, e); } this._pendingActions.push(e); }), (e.prototype._execute = function (e, t) { var n = this; (e.active = !0), t(e.worker, function () { e.active = !1; var t = n._pendingActions.shift(); t && n._execute(e, t); }); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return m; }); var i = n(6), r = n(1), o = n(5), a = n(25), s = n(4), c = n(28), l = n(8), u = n(21), h = n(198), d = n(7), p = (n(59), "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n\nuniform vec4 color;\n\n#include\nvoid main(void) {\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef LINEAR\nbaseColor.rgb=toGammaSpace(baseColor.rgb);\n#endif\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=baseColor*color;\n}"); d.a.ShadersStore.layerPixelShader = p; var f = "\nattribute vec2 position;\n\nuniform vec2 scale;\nuniform vec2 offset;\nuniform mat4 textureMatrix;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvec2 shiftedPosition=position*scale+offset;\nvUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));\ngl_Position=vec4(shiftedPosition,0.0,1.0);\n}"; d.a.ShadersStore.layerVertexShader = f; var m = (function () { function e(e, t, n, c, d) { (this.name = e), (this.scale = new r.d(1, 1)), (this.offset = new r.d(0, 0)), (this.alphaBlendingMode = 2), (this.layerMask = 268435455), (this.renderTargetTextures = []), (this.renderOnlyInRenderTargetTextures = !1), (this._vertexBuffers = {}), (this.onDisposeObservable = new i.c()), (this.onBeforeRenderObservable = new i.c()), (this.onAfterRenderObservable = new i.c()), (this.texture = t ? new l.a(t, n, !0) : null), (this.isBackground = void 0 === c || c), (this.color = void 0 === d ? new o.b(1, 1, 1, 1) : d), (this._scene = n || a.a.LastCreatedScene); var p = this._scene._getComponent(u.a.NAME_LAYER); p || ((p = new h.a(this._scene)), this._scene._addComponent(p)), this._scene.layers.push(this); var f = this._scene.getEngine(), m = []; m.push(1, 1), m.push(-1, 1), m.push(-1, -1), m.push(1, -1); var g = new s.b(f, m, s.b.PositionKind, !1, !1, 2); (this._vertexBuffers[s.b.PositionKind] = g), this._createIndexBuffer(); } return ( Object.defineProperty(e.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onBeforeRender", { set: function (e) { this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onAfterRender", { set: function (e) { this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e)); }, enumerable: !0, configurable: !0, }), (e.prototype._createIndexBuffer = function () { var e = this._scene.getEngine(), t = []; t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), (this._indexBuffer = e.createIndexBuffer(t)); }), (e.prototype._rebuild = function () { var e = this._vertexBuffers[s.b.PositionKind]; e && e._rebuild(), this._createIndexBuffer(); }), (e.prototype.render = function () { var e = this._scene.getEngine(), t = ""; this.alphaTest && (t = "#define ALPHATEST"), this.texture && !this.texture.gammaSpace && (t += "\r\n#define LINEAR"), this._previousDefines !== t && ((this._previousDefines = t), (this._effect = e.createEffect("layer", [s.b.PositionKind], ["textureMatrix", "color", "scale", "offset"], ["textureSampler"], t))); var n = this._effect; if (n && n.isReady() && this.texture && this.texture.isReady()) { e = this._scene.getEngine(); this.onBeforeRenderObservable.notifyObservers(this), e.enableEffect(n), e.setState(!1), n.setTexture("textureSampler", this.texture), n.setMatrix("textureMatrix", this.texture.getTextureMatrix()), n.setFloat4("color", this.color.r, this.color.g, this.color.b, this.color.a), n.setVector2("offset", this.offset), n.setVector2("scale", this.scale), e.bindBuffers(this._vertexBuffers, this._indexBuffer, n), this.alphaTest ? e.drawElementsType(c.a.TriangleFillMode, 0, 6) : (e.setAlphaMode(this.alphaBlendingMode), e.drawElementsType(c.a.TriangleFillMode, 0, 6), e.setAlphaMode(0)), this.onAfterRenderObservable.notifyObservers(this); } }), (e.prototype.dispose = function () { var e = this._vertexBuffers[s.b.PositionKind]; e && (e.dispose(), (this._vertexBuffers[s.b.PositionKind] = null)), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), (this._indexBuffer = null)), this.texture && (this.texture.dispose(), (this.texture = null)), (this.renderTargetTextures = []); var t = this._scene.layers.indexOf(this); this._scene.layers.splice(t, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onAfterRenderObservable.clear(), this.onBeforeRenderObservable.clear(); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( (e.RandomId = function () { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (e) { var t = (16 * Math.random()) | 0; return ("x" === e ? t : (3 & t) | 8).toString(16); }); }), e ); })(); }, function (e, t, n) { "use strict"; n.d(t, "a", function () { return i; }); var i = (function () { function e() {} return ( Object.defineProperty(e, "UniqueId", { get: function () { var e = this._UniqueIdCounter; return this._UniqueIdCounter++, e; }, enumerable: !0, configurable: !0, }), (e._UniqueIdCounter = 0), e ); })(); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "b4164048526649efa19dd822ae6c6313.png"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "859534eabad5724a69cd5381dc82428f.webp"); }, function (e, t, n) { "use strict"; var i = "postprocessVertexShader", r = "\nattribute vec2 position;\nuniform vec2 scale;\n\nvarying vec2 vUV;\nconst vec2 madd=vec2(0.5,0.5);\nvoid main(void) {\nvUV=(position*madd+madd)*scale;\ngl_Position=vec4(position,0.0,1.0);\n}"; n(7).a.ShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = n(2), r = n(32), o = n(10); n(38).a.prototype.createRenderTargetCubeTexture = function (e, t) { var n = Object(i.a)({ generateMipMaps: !0, generateDepthBuffer: !0, generateStencilBuffer: !1, type: 0, samplingMode: 3, format: 5 }, t); (n.generateStencilBuffer = n.generateDepthBuffer && n.generateStencilBuffer), ((1 !== n.type || this._caps.textureFloatLinearFiltering) && (2 !== n.type || this._caps.textureHalfFloatLinearFiltering)) || (n.samplingMode = 1); var a = this._gl, s = new r.a(this, r.b.RenderTarget); this._bindTextureDirectly(a.TEXTURE_CUBE_MAP, s, !0); var c = this._getSamplingParameters(n.samplingMode, n.generateMipMaps); 1 !== n.type || this._caps.textureFloat || ((n.type = 0), o.a.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MAG_FILTER, c.mag), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_MIN_FILTER, c.min), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_S, a.CLAMP_TO_EDGE), a.texParameteri(a.TEXTURE_CUBE_MAP, a.TEXTURE_WRAP_T, a.CLAMP_TO_EDGE); for (var l = 0; l < 6; l++) a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X + l, 0, this._getRGBABufferInternalSizedFormat(n.type, n.format), e, e, 0, this._getInternalFormat(n.format), this._getWebGLTextureType(n.type), null); var u = a.createFramebuffer(); return ( this._bindUnboundFramebuffer(u), (s._depthStencilBuffer = this._setupFramebufferDepthAttachments(n.generateStencilBuffer, n.generateDepthBuffer, e, e)), n.generateMipMaps && a.generateMipmap(a.TEXTURE_CUBE_MAP), this._bindTextureDirectly(a.TEXTURE_CUBE_MAP, null), this._bindUnboundFramebuffer(null), (s._framebuffer = u), (s.width = e), (s.height = e), (s.isReady = !0), (s.isCube = !0), (s.samples = 1), (s.generateMipMaps = n.generateMipMaps), (s.samplingMode = n.samplingMode), (s.type = n.type), (s.format = n.format), (s._generateDepthBuffer = n.generateDepthBuffer), (s._generateStencilBuffer = n.generateStencilBuffer), this._internalTexturesCache.push(s), s ); }; }, function (e, t, n) { "use strict"; var i = "#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP)\n#if defined(TANGENT) && defined(NORMAL)\nvec3 tbnNormal=normalize(normalUpdated);\nvec3 tbnTangent=normalize(tangentUpdated.xyz);\nvec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;\nvTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\n#endif\n#endif"; n(7).a.IncludesShadersStore.bumpVertex = i; }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "DebugLayerTab", function () { return i; }), n.d(t, "DebugLayer", function () { return l; }); var i, r = n(2), o = n(12), a = n(6), s = n(18), c = n(14); Object.defineProperty(s.a.prototype, "debugLayer", { get: function () { return this._debugLayer || (this._debugLayer = new l(this)), this._debugLayer; }, enumerable: !0, configurable: !0, }), (function (e) { (e[(e.Properties = 0)] = "Properties"), (e[(e.Debug = 1)] = "Debug"), (e[(e.Statistics = 2)] = "Statistics"), (e[(e.Tools = 3)] = "Tools"), (e[(e.Settings = 4)] = "Settings"); })(i || (i = {})); var l = (function () { function e(e) { var t = this; (this.BJSINSPECTOR = this._getGlobalInspector()), (this._scene = e), this._scene.onDisposeObservable.add(function () { t._scene._debugLayer && t._scene._debugLayer.hide(); }); } return ( Object.defineProperty(e.prototype, "onPropertyChangedObservable", { get: function () { return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector ? this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable : (this._onPropertyChangedObservable || (this._onPropertyChangedObservable = new a.c()), this._onPropertyChangedObservable); }, enumerable: !0, configurable: !0, }), (e.prototype._createInspector = function (e) { if (!this.isVisible()) { if (this._onPropertyChangedObservable) { for (var t = 0, n = this._onPropertyChangedObservable.observers; t < n.length; t++) { var i = n[t]; this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(i); } this._onPropertyChangedObservable.clear(), (this._onPropertyChangedObservable = void 0); } var o = Object(r.a)({ overlay: !1, showExplorer: !0, showInspector: !0, embedMode: !1, handleResize: !0, enablePopup: !0 }, e); (this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector()), this.BJSINSPECTOR.Inspector.Show(this._scene, o); } }), (e.prototype.select = function (e, t) { this.BJSINSPECTOR && (this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(t), this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(e)); }), (e.prototype._getGlobalInspector = function () { return "undefined" != typeof INSPECTOR ? INSPECTOR : "undefined" != typeof BABYLON && void 0 !== BABYLON.Inspector ? BABYLON : void 0; }), (e.prototype.isVisible = function () { return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.IsVisible; }), (e.prototype.hide = function () { this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.Hide(); }), (e.prototype.show = function (t) { var n = this; return new Promise(function (i, r) { if (void 0 === n.BJSINSPECTOR) { var a = t && t.inspectorURL ? t.inspectorURL : e.InspectorURL; o.b.LoadScript(a, function () { n._createInspector(t), i(n); }); } else n._createInspector(t), i(n); }); }), (e.InspectorURL = "https://unpkg.com/babylonjs-inspector@" + c.a.Version + "/babylon.inspector.bundle.js"), e ); })(); }, function (e, t) { var n; n = (function () { return this; })(); try { n = n || new Function("return this")(); } catch (e) { "object" == typeof window && (n = window); } e.exports = n; }, function (e, t, n) { "use strict"; var i = n(145), r = n(68); Object.defineProperty(r.a.prototype, "sphericalPolynomial", { get: function () { if (this._texture) { if (this._texture._sphericalPolynomial) return this._texture._sphericalPolynomial; this._texture.isReady && (this._texture._sphericalPolynomial = i.a.ConvertCubeMapTextureToSphericalPolynomial(this)); } return null; }, set: function (e) { this._texture && (this._texture._sphericalPolynomial = e); }, enumerable: !0, configurable: !0, }); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TypedJSONProvider = void 0), n(176); const i = n(177); class r { constructor() { this._serializers = new Map(); } static instance() { return null == this._instance && (this._instance = new r()), this._instance; } get(e) { return 0 == this._serializers.has(e) && this._serializers.set(e, new i.TypedJSON(e)), this._serializers.get(e); } } t.TypedJSONProvider = r; }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "GLTFLoaderCoordinateSystemMode", function () { return p; }), n.d(t, "GLTFLoaderAnimationStartMode", function () { return f; }), n.d(t, "GLTFLoaderState", function () { return m; }), n.d(t, "GLTFFileLoader", function () { return b; }), n.d(t, "GLTFValidation", function () { return g; }), n.d(t, "GLTF1", function () { return i; }), n.d(t, "GLTF2", function () { return r; }); var i = {}; n.r(i), n.d(i, "GLTFBinaryExtension", function () { return Te; }), n.d(i, "GLTFLoaderBase", function () { return Ce; }), n.d(i, "GLTFLoader", function () { return Pe; }), n.d(i, "GLTFLoaderExtension", function () { return xe; }), n.d(i, "EComponentType", function () { return _; }), n.d(i, "EShaderType", function () { return v; }), n.d(i, "EParameterType", function () { return y; }), n.d(i, "ETextureWrapMode", function () { return C; }), n.d(i, "ETextureFilterType", function () { return P; }), n.d(i, "ETextureFormat", function () { return x; }), n.d(i, "ECullingType", function () { return T; }), n.d(i, "EBlendingFunction", function () { return S; }), n.d(i, "GLTFUtils", function () { return Q; }), n.d(i, "GLTFMaterialsCommonExtension", function () { return Se; }); var r = {}; n.r(r), n.d(r, "ArrayItem", function () { return Le; }), n.d(r, "GLTFLoader", function () { return Fe; }), n.d(r, "EXT_lights_image_based", function () { return Be; }), n.d(r, "KHR_draco_mesh_compression", function () { return Ge; }), n.d(r, "KHR_lights", function () { return We; }), n.d(r, "KHR_materials_pbrSpecularGlossiness", function () { return Xe; }), n.d(r, "KHR_materials_unlit", function () { return Ye; }), n.d(r, "KHR_materials_clearcoat", function () { return Ke; }), n.d(r, "KHR_materials_sheen", function () { return Ze; }), n.d(r, "KHR_materials_specular", function () { return qe; }), n.d(r, "KHR_mesh_quantization", function () { return Qe; }), n.d(r, "KHR_texture_basisu", function () { return Je; }), n.d(r, "KHR_texture_transform", function () { return $e; }), n.d(r, "MSFT_audio_emitter", function () { return it; }), n.d(r, "MSFT_lod", function () { return rt; }), n.d(r, "MSFT_minecraftMesh", function () { return ot; }), n.d(r, "MSFT_sRGBFactors", function () { return at; }), n.d(r, "ExtrasAsMetadata", function () { return st; }); var o = n(6), a = n(12), s = n(37), c = n(119), l = n(10), u = n(163); function h(e, t, n, i) { var r = { externalResourceFunction: function (e) { return i(e).then(function (e) { return new Uint8Array(e); }); }, }; return n && (r.uri = "file:" === t ? n : t + n), e instanceof ArrayBuffer ? GLTFValidator.validateBytes(new Uint8Array(e), r) : GLTFValidator.validateString(e, r); } function d() { var e = []; onmessage = function (t) { var n = t.data; switch (n.id) { case "init": importScripts(n.url); break; case "validate": h(n.data, n.rootUrl, n.fileName, function (t) { return new Promise(function (n, i) { var r = e.length; e.push({ resolve: n, reject: i }), postMessage({ id: "getExternalResource", index: r, uri: t }); }); }).then( function (e) { postMessage({ id: "validate.resolve", value: e }); }, function (e) { postMessage({ id: "validate.reject", reason: e }); } ); break; case "getExternalResource.resolve": e[n.index].resolve(n.value); break; case "getExternalResource.reject": e[n.index].reject(n.reason); } }; } var p, f, m, g = (function () { function e() {} return ( (e.ValidateAsync = function (e, t, n, i) { var r = this; return "function" == typeof Worker ? new Promise(function (o, s) { var c = h + "(" + d + ")()", l = URL.createObjectURL(new Blob([c], { type: "application/javascript" })), u = new Worker(l), p = function (e) { u.removeEventListener("error", p), u.removeEventListener("message", f), s(e); }, f = function (e) { var t = e.data; switch (t.id) { case "getExternalResource": i(t.uri).then( function (e) { u.postMessage({ id: "getExternalResource.resolve", index: t.index, value: e }, [e]); }, function (e) { u.postMessage({ id: "getExternalResource.reject", index: t.index, reason: e }); } ); break; case "validate.resolve": u.removeEventListener("error", p), u.removeEventListener("message", f), o(t.value); break; case "validate.reject": u.removeEventListener("error", p), u.removeEventListener("message", f), s(t.reason); } }; u.addEventListener("error", p), u.addEventListener("message", f), u.postMessage({ id: "init", url: a.b.GetAbsoluteUrl(r.Configuration.url) }), u.postMessage({ id: "validate", data: e, rootUrl: t, fileName: n }); }) : (this._LoadScriptPromise || (this._LoadScriptPromise = a.b.LoadScriptAsync(this.Configuration.url)), this._LoadScriptPromise.then(function () { return h(e, t, n, i); })); }), (e.Configuration = { url: "assets/babylonjs/gltf_validator.js" }), e ); })(); !(function (e) { (e[(e.AUTO = 0)] = "AUTO"), (e[(e.FORCE_RIGHT_HANDED = 1)] = "FORCE_RIGHT_HANDED"); })(p || (p = {})), (function (e) { (e[(e.NONE = 0)] = "NONE"), (e[(e.FIRST = 1)] = "FIRST"), (e[(e.ALL = 2)] = "ALL"); })(f || (f = {})), (function (e) { (e[(e.LOADING = 0)] = "LOADING"), (e[(e.READY = 1)] = "READY"), (e[(e.COMPLETE = 2)] = "COMPLETE"); })(m || (m = {})); var b = (function () { function e() { (this.onParsedObservable = new o.c()), (this.coordinateSystemMode = p.AUTO), (this.animationStartMode = f.FIRST), (this.compileMaterials = !1), (this.useClipPlane = !1), (this.compileShadowGenerators = !1), (this.transparencyAsCoverage = !1), (this.useRangeRequests = !1), (this.createInstances = !0), (this.preprocessUrlAsync = function (e) { return Promise.resolve(e); }), (this.onMeshLoadedObservable = new o.c()), (this.onTextureLoadedObservable = new o.c()), (this.onMaterialLoadedObservable = new o.c()), (this.onCameraLoadedObservable = new o.c()), (this.onCompleteObservable = new o.c()), (this.onErrorObservable = new o.c()), (this.onDisposeObservable = new o.c()), (this.onExtensionLoadedObservable = new o.c()), (this.validate = !1), (this.onValidatedObservable = new o.c()), (this._loader = null), (this.name = "gltf"), (this.extensions = { ".gltf": { isBinary: !1 }, ".glb": { isBinary: !0 } }), (this._logIndentLevel = 0), (this._loggingEnabled = !1), (this._log = this._logDisabled), (this._capturePerformanceCounters = !1), (this._startPerformanceCounter = this._startPerformanceCounterDisabled), (this._endPerformanceCounter = this._endPerformanceCounterDisabled); } return ( Object.defineProperty(e.prototype, "onParsed", { set: function (e) { this._onParsedObserver && this.onParsedObservable.remove(this._onParsedObserver), (this._onParsedObserver = this.onParsedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onMeshLoaded", { set: function (e) { this._onMeshLoadedObserver && this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver), (this._onMeshLoadedObserver = this.onMeshLoadedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onTextureLoaded", { set: function (e) { this._onTextureLoadedObserver && this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver), (this._onTextureLoadedObserver = this.onTextureLoadedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onMaterialLoaded", { set: function (e) { this._onMaterialLoadedObserver && this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver), (this._onMaterialLoadedObserver = this.onMaterialLoadedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onCameraLoaded", { set: function (e) { this._onCameraLoadedObserver && this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver), (this._onCameraLoadedObserver = this.onCameraLoadedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onComplete", { set: function (e) { this._onCompleteObserver && this.onCompleteObservable.remove(this._onCompleteObserver), (this._onCompleteObserver = this.onCompleteObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onError", { set: function (e) { this._onErrorObserver && this.onErrorObservable.remove(this._onErrorObserver), (this._onErrorObserver = this.onErrorObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onDispose", { set: function (e) { this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), (this._onDisposeObserver = this.onDisposeObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onExtensionLoaded", { set: function (e) { this._onExtensionLoadedObserver && this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver), (this._onExtensionLoadedObserver = this.onExtensionLoadedObservable.add(e)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "loggingEnabled", { get: function () { return this._loggingEnabled; }, set: function (e) { this._loggingEnabled !== e && ((this._loggingEnabled = e), this._loggingEnabled ? (this._log = this._logEnabled) : (this._log = this._logDisabled)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "capturePerformanceCounters", { get: function () { return this._capturePerformanceCounters; }, set: function (e) { this._capturePerformanceCounters !== e && ((this._capturePerformanceCounters = e), this._capturePerformanceCounters ? ((this._startPerformanceCounter = this._startPerformanceCounterEnabled), (this._endPerformanceCounter = this._endPerformanceCounterEnabled)) : ((this._startPerformanceCounter = this._startPerformanceCounterDisabled), (this._endPerformanceCounter = this._endPerformanceCounterDisabled))); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "onValidated", { set: function (e) { this._onValidatedObserver && this.onValidatedObservable.remove(this._onValidatedObserver), (this._onValidatedObserver = this.onValidatedObservable.add(e)); }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { this._loader && (this._loader.dispose(), (this._loader = null)), this._clear(), this.onDisposeObservable.notifyObservers(void 0), this.onDisposeObservable.clear(); }), (e.prototype._clear = function () { (this.preprocessUrlAsync = function (e) { return Promise.resolve(e); }), this.onMeshLoadedObservable.clear(), this.onTextureLoadedObservable.clear(), this.onMaterialLoadedObservable.clear(), this.onCameraLoadedObservable.clear(), this.onCompleteObservable.clear(), this.onExtensionLoadedObservable.clear(); }), (e.prototype.requestFile = function (e, t, n, i, r, s) { var c = this; if (r) { if (this.useRangeRequests) { this.validate && l.a.Warn("glTF validation is not supported when range requests are enabled"); var h = new Array(), d = { abort: function () { return h.forEach(function (e) { return e.abort(); }); }, onCompleteObservable: new o.c(), }, p = { readAsync: function (n, r) { return new Promise(function (o, a) { h.push( e._requestFile( t, function (e, t) { var n = t.getResponseHeader("Content-Range"); n && (p.byteLength = Number(n.split("/")[1])), o(new Uint8Array(e)); }, i, !0, !0, function (e) { a(e); }, function (e) { e.setRequestHeader("Range", "bytes=" + n + "-" + (n + r - 1)); } ) ); }); }, byteLength: 0, }; return ( this._unpackBinaryAsync(new u.a(p)).then(function (e) { d.onCompleteObservable.notifyObservers(d), n(e); }, s), d ); } return e._requestFile( t, function (e, t) { var i = e; c._unpackBinaryAsync( new u.a({ readAsync: function (e, t) { return Promise.resolve(new Uint8Array(i, e, t)); }, byteLength: i.byteLength, }) ).then(function (e) { n(e, t); }, s); }, i, !0, !0, s ); } return e._requestFile( t, function (i, r) { c._validate(e, i, a.b.GetFolderPath(t), a.b.GetFilename(t)), n({ json: c._parseJson(i) }, r); }, i, !0, !1, s ); }), (e.prototype.readFile = function (e, t, n, i, r, o) { var a = this; return e._readFile( t, function (i) { if ((a._validate(e, i, "file:", t.name), r)) { var s = i; a._unpackBinaryAsync( new u.a({ readAsync: function (e, t) { return Promise.resolve(new Uint8Array(s, e, t)); }, byteLength: s.byteLength, }) ).then(n, o); } else n({ json: a._parseJson(i) }); }, i, r, o ); }), (e.prototype.importMeshAsync = function (e, t, n, i, r, o) { var a = this; return Promise.resolve().then(function () { return a.onParsedObservable.notifyObservers(n), a.onParsedObservable.clear(), a._log("Loading " + (o || "")), (a._loader = a._getLoader(n)), a._loader.importMeshAsync(e, t, !1, n, i, r, o); }); }), (e.prototype.loadAsync = function (e, t, n, i, r) { var o = this; return Promise.resolve().then(function () { return o.onParsedObservable.notifyObservers(t), o.onParsedObservable.clear(), o._log("Loading " + (r || "")), (o._loader = o._getLoader(t)), o._loader.loadAsync(e, t, n, i, r); }); }), (e.prototype.loadAssetContainerAsync = function (e, t, n, i, r) { var o = this; return Promise.resolve().then(function () { o.onParsedObservable.notifyObservers(t), o.onParsedObservable.clear(), o._log("Loading " + (r || "")), (o._loader = o._getLoader(t)); var a = []; o.onMaterialLoadedObservable.add(function (e) { a.push(e); }); var s = []; return ( o.onTextureLoadedObservable.add(function (e) { s.push(e); }), o._loader.importMeshAsync(null, e, !0, t, n, i, r).then(function (t) { var n = new c.a(e); return ( Array.prototype.push.apply(n.meshes, t.meshes), Array.prototype.push.apply(n.particleSystems, t.particleSystems), Array.prototype.push.apply(n.skeletons, t.skeletons), Array.prototype.push.apply(n.animationGroups, t.animationGroups), Array.prototype.push.apply(n.materials, a), Array.prototype.push.apply(n.textures, s), Array.prototype.push.apply(n.lights, t.lights), Array.prototype.push.apply(n.transformNodes, t.transformNodes), n ); }) ); }); }), (e.prototype.canDirectLoad = function (e) { return -1 !== e.indexOf("asset") && -1 !== e.indexOf("version"); }), (e.prototype.directLoad = function (e, t) { return this._validate(e, t), { json: this._parseJson(t) }; }), (e.prototype.createPlugin = function () { return new e(); }), Object.defineProperty(e.prototype, "loaderState", { get: function () { return this._loader ? this._loader.state : null; }, enumerable: !0, configurable: !0, }), (e.prototype.whenCompleteAsync = function () { var e = this; return new Promise(function (t, n) { e.onCompleteObservable.addOnce(function () { t(); }), e.onErrorObservable.addOnce(function (e) { n(e); }); }); }), (e.prototype._validate = function (e, t, n, i) { var r = this; void 0 === n && (n = ""), void 0 === i && (i = ""), this.validate && (this._startPerformanceCounter("Validate JSON"), g .ValidateAsync(t, n, i, function (t) { return r.preprocessUrlAsync(n + t).then(function (t) { return e._loadFileAsync(t, void 0, !0, !0); }); }) .then( function (e) { r._endPerformanceCounter("Validate JSON"), r.onValidatedObservable.notifyObservers(e), r.onValidatedObservable.clear(); }, function (e) { r._endPerformanceCounter("Validate JSON"), a.b.Warn("Failed to validate: " + e.message), r.onValidatedObservable.clear(); } )); }), (e.prototype._getLoader = function (t) { var n = t.json.asset || {}; this._log("Asset version: " + n.version), n.minVersion && this._log("Asset minimum version: " + n.minVersion), n.generator && this._log("Asset generator: " + n.generator); var i = e._parseVersion(n.version); if (!i) throw new Error("Invalid version: " + n.version); if (void 0 !== n.minVersion) { var r = e._parseVersion(n.minVersion); if (!r) throw new Error("Invalid minimum version: " + n.minVersion); if (e._compareVersion(r, { major: 2, minor: 0 }) > 0) throw new Error("Incompatible minimum version: " + n.minVersion); } var o = { 1: e._CreateGLTF1Loader, 2: e._CreateGLTF2Loader }[i.major]; if (!o) throw new Error("Unsupported version: " + n.version); return o(this); }), (e.prototype._parseJson = function (e) { this._startPerformanceCounter("Parse JSON"), this._log("JSON length: " + e.length); var t = JSON.parse(e); return this._endPerformanceCounter("Parse JSON"), t; }), (e.prototype._unpackBinaryAsync = function (e) { var t = this; return ( this._startPerformanceCounter("Unpack Binary"), e.loadAsync(20).then(function () { var n = e.readUint32(); if (1179937895 !== n) throw new Error("Unexpected magic: " + n); var i = e.readUint32(); t.loggingEnabled && t._log("Binary version: " + i); var r, o = e.readUint32(); if (0 != e.buffer.byteLength && o !== e.buffer.byteLength) throw new Error("Length in header does not match actual data length: " + o + " != " + e.buffer.byteLength); switch (i) { case 1: r = t._unpackBinaryV1Async(e, o); break; case 2: r = t._unpackBinaryV2Async(e, o); break; default: throw new Error("Unsupported version: " + i); } return t._endPerformanceCounter("Unpack Binary"), r; }) ); }), (e.prototype._unpackBinaryV1Async = function (e, t) { var n = e.readUint32(), i = e.readUint32(); if (0 !== i) throw new Error("Unexpected content format: " + i); var r = t - e.byteOffset, o = { json: this._parseJson(e.readString(n)), bin: null }; if (0 !== r) { var a = e.byteOffset; o.bin = { readAsync: function (t, n) { return e.buffer.readAsync(a + t, n); }, byteLength: r, }; } return Promise.resolve(o); }), (e.prototype._unpackBinaryV2Async = function (e, t) { var n = this, i = 1313821514, r = 5130562, o = e.readUint32(); if (e.readUint32() !== i) throw new Error("First chunk format is not JSON"); return e.byteOffset + o === t ? e.loadAsync(o).then(function () { return { json: n._parseJson(e.readString(o)), bin: null }; }) : e.loadAsync(o + 8).then(function () { var a = { json: n._parseJson(e.readString(o)), bin: null }, s = function () { var n = e.readUint32(); switch (e.readUint32()) { case i: throw new Error("Unexpected JSON chunk"); case r: var o = e.byteOffset; (a.bin = { readAsync: function (t, n) { return e.buffer.readAsync(o + t, n); }, byteLength: n, }), e.skipBytes(n); break; default: e.skipBytes(n); } return e.byteOffset !== t ? e.loadAsync(8).then(s) : Promise.resolve(a); }; return s(); }); }), (e._parseVersion = function (e) { if ("1.0" === e || "1.0.1" === e) return { major: 1, minor: 0 }; var t = (e + "").match(/^(\d+)\.(\d+)/); return t ? { major: parseInt(t[1]), minor: parseInt(t[2]) } : null; }), (e._compareVersion = function (e, t) { return e.major > t.major ? 1 : e.major < t.major ? -1 : e.minor > t.minor ? 1 : e.minor < t.minor ? -1 : 0; }), (e.prototype._logOpen = function (e) { this._log(e), this._logIndentLevel++; }), (e.prototype._logClose = function () { --this._logIndentLevel; }), (e.prototype._logEnabled = function (t) { var n = e._logSpaces.substr(0, 2 * this._logIndentLevel); l.a.Log("" + n + t); }), (e.prototype._logDisabled = function (e) {}), (e.prototype._startPerformanceCounterEnabled = function (e) { a.b.StartPerformanceCounter(e); }), (e.prototype._startPerformanceCounterDisabled = function (e) {}), (e.prototype._endPerformanceCounterEnabled = function (e) { a.b.EndPerformanceCounter(e); }), (e.prototype._endPerformanceCounterDisabled = function (e) {}), (e.IncrementalLoading = !0), (e.HomogeneousCoordinates = !1), (e._logSpaces = " "), e ); })(); s.a && s.a.RegisterPlugin(new b()); var _, v, y, C, P, x, T, S, O = n(2); !(function (e) { (e[(e.BYTE = 5120)] = "BYTE"), (e[(e.UNSIGNED_BYTE = 5121)] = "UNSIGNED_BYTE"), (e[(e.SHORT = 5122)] = "SHORT"), (e[(e.UNSIGNED_SHORT = 5123)] = "UNSIGNED_SHORT"), (e[(e.FLOAT = 5126)] = "FLOAT"); })(_ || (_ = {})), (function (e) { (e[(e.FRAGMENT = 35632)] = "FRAGMENT"), (e[(e.VERTEX = 35633)] = "VERTEX"); })(v || (v = {})), (function (e) { (e[(e.BYTE = 5120)] = "BYTE"), (e[(e.UNSIGNED_BYTE = 5121)] = "UNSIGNED_BYTE"), (e[(e.SHORT = 5122)] = "SHORT"), (e[(e.UNSIGNED_SHORT = 5123)] = "UNSIGNED_SHORT"), (e[(e.INT = 5124)] = "INT"), (e[(e.UNSIGNED_INT = 5125)] = "UNSIGNED_INT"), (e[(e.FLOAT = 5126)] = "FLOAT"), (e[(e.FLOAT_VEC2 = 35664)] = "FLOAT_VEC2"), (e[(e.FLOAT_VEC3 = 35665)] = "FLOAT_VEC3"), (e[(e.FLOAT_VEC4 = 35666)] = "FLOAT_VEC4"), (e[(e.INT_VEC2 = 35667)] = "INT_VEC2"), (e[(e.INT_VEC3 = 35668)] = "INT_VEC3"), (e[(e.INT_VEC4 = 35669)] = "INT_VEC4"), (e[(e.BOOL = 35670)] = "BOOL"), (e[(e.BOOL_VEC2 = 35671)] = "BOOL_VEC2"), (e[(e.BOOL_VEC3 = 35672)] = "BOOL_VEC3"), (e[(e.BOOL_VEC4 = 35673)] = "BOOL_VEC4"), (e[(e.FLOAT_MAT2 = 35674)] = "FLOAT_MAT2"), (e[(e.FLOAT_MAT3 = 35675)] = "FLOAT_MAT3"), (e[(e.FLOAT_MAT4 = 35676)] = "FLOAT_MAT4"), (e[(e.SAMPLER_2D = 35678)] = "SAMPLER_2D"); })(y || (y = {})), (function (e) { (e[(e.CLAMP_TO_EDGE = 33071)] = "CLAMP_TO_EDGE"), (e[(e.MIRRORED_REPEAT = 33648)] = "MIRRORED_REPEAT"), (e[(e.REPEAT = 10497)] = "REPEAT"); })(C || (C = {})), (function (e) { (e[(e.NEAREST = 9728)] = "NEAREST"), (e[(e.LINEAR = 9728)] = "LINEAR"), (e[(e.NEAREST_MIPMAP_NEAREST = 9984)] = "NEAREST_MIPMAP_NEAREST"), (e[(e.LINEAR_MIPMAP_NEAREST = 9985)] = "LINEAR_MIPMAP_NEAREST"), (e[(e.NEAREST_MIPMAP_LINEAR = 9986)] = "NEAREST_MIPMAP_LINEAR"), (e[(e.LINEAR_MIPMAP_LINEAR = 9987)] = "LINEAR_MIPMAP_LINEAR"); })(P || (P = {})), (function (e) { (e[(e.ALPHA = 6406)] = "ALPHA"), (e[(e.RGB = 6407)] = "RGB"), (e[(e.RGBA = 6408)] = "RGBA"), (e[(e.LUMINANCE = 6409)] = "LUMINANCE"), (e[(e.LUMINANCE_ALPHA = 6410)] = "LUMINANCE_ALPHA"); })(x || (x = {})), (function (e) { (e[(e.FRONT = 1028)] = "FRONT"), (e[(e.BACK = 1029)] = "BACK"), (e[(e.FRONT_AND_BACK = 1032)] = "FRONT_AND_BACK"); })(T || (T = {})), (function (e) { (e[(e.ZERO = 0)] = "ZERO"), (e[(e.ONE = 1)] = "ONE"), (e[(e.SRC_COLOR = 768)] = "SRC_COLOR"), (e[(e.ONE_MINUS_SRC_COLOR = 769)] = "ONE_MINUS_SRC_COLOR"), (e[(e.DST_COLOR = 774)] = "DST_COLOR"), (e[(e.ONE_MINUS_DST_COLOR = 775)] = "ONE_MINUS_DST_COLOR"), (e[(e.SRC_ALPHA = 770)] = "SRC_ALPHA"), (e[(e.ONE_MINUS_SRC_ALPHA = 771)] = "ONE_MINUS_SRC_ALPHA"), (e[(e.DST_ALPHA = 772)] = "DST_ALPHA"), (e[(e.ONE_MINUS_DST_ALPHA = 773)] = "ONE_MINUS_DST_ALPHA"), (e[(e.CONSTANT_COLOR = 32769)] = "CONSTANT_COLOR"), (e[(e.ONE_MINUS_CONSTANT_COLOR = 32770)] = "ONE_MINUS_CONSTANT_COLOR"), (e[(e.CONSTANT_ALPHA = 32771)] = "CONSTANT_ALPHA"), (e[(e.ONE_MINUS_CONSTANT_ALPHA = 32772)] = "ONE_MINUS_CONSTANT_ALPHA"), (e[(e.SRC_ALPHA_SATURATE = 776)] = "SRC_ALPHA_SATURATE"); })(S || (S = {})); var E, M = n(1), A = n(5), I = n(26), D = n(67), R = n(27), w = n(110), L = n(129), F = n(7), N = n(28), k = n(94), z = n(33), j = n(106), B = n(8), V = n(16), G = n(4), U = n(79), H = n(78), W = n(31), X = n(9), Y = n(96), K = n(115), Z = n(123), q = n(122), Q = (function () { function e() {} return ( (e.SetMatrix = function (e, t, n, i, r) { var o = null; if ( ("MODEL" === n.semantic ? (o = t.getWorldMatrix()) : "PROJECTION" === n.semantic ? (o = e.getProjectionMatrix()) : "VIEW" === n.semantic ? (o = e.getViewMatrix()) : "MODELVIEWINVERSETRANSPOSE" === n.semantic ? (o = M.a.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert())) : "MODELVIEW" === n.semantic ? (o = t.getWorldMatrix().multiply(e.getViewMatrix())) : "MODELVIEWPROJECTION" === n.semantic ? (o = t.getWorldMatrix().multiply(e.getTransformMatrix())) : "MODELINVERSE" === n.semantic ? (o = t.getWorldMatrix().invert()) : "VIEWINVERSE" === n.semantic ? (o = e.getViewMatrix().invert()) : "PROJECTIONINVERSE" === n.semantic ? (o = e.getProjectionMatrix().invert()) : "MODELVIEWINVERSE" === n.semantic ? (o = t.getWorldMatrix().multiply(e.getViewMatrix()).invert()) : "MODELVIEWPROJECTIONINVERSE" === n.semantic ? (o = t.getWorldMatrix().multiply(e.getTransformMatrix()).invert()) : "MODELINVERSETRANSPOSE" === n.semantic && (o = M.a.Transpose(t.getWorldMatrix().invert())), o) ) switch (n.type) { case y.FLOAT_MAT2: r.setMatrix2x2(i, M.a.GetAsMatrix2x2(o)); break; case y.FLOAT_MAT3: r.setMatrix3x3(i, M.a.GetAsMatrix3x3(o)); break; case y.FLOAT_MAT4: r.setMatrix(i, o); } }), (e.SetUniform = function (e, t, n, i) { switch (i) { case y.FLOAT: return e.setFloat(t, n), !0; case y.FLOAT_VEC2: return e.setVector2(t, M.d.FromArray(n)), !0; case y.FLOAT_VEC3: return e.setVector3(t, M.e.FromArray(n)), !0; case y.FLOAT_VEC4: return e.setVector4(t, M.f.FromArray(n)), !0; default: return !1; } }), (e.GetWrapMode = function (e) { switch (e) { case C.CLAMP_TO_EDGE: return B.a.CLAMP_ADDRESSMODE; case C.MIRRORED_REPEAT: return B.a.MIRROR_ADDRESSMODE; case C.REPEAT: default: return B.a.WRAP_ADDRESSMODE; } }), (e.GetByteStrideFromType = function (e) { switch (e.type) { case "VEC2": return 2; case "VEC3": return 3; case "VEC4": case "MAT2": return 4; case "MAT3": return 9; case "MAT4": return 16; default: return 1; } }), (e.GetTextureFilterMode = function (e) { switch (e) { case P.LINEAR: case P.LINEAR_MIPMAP_NEAREST: case P.LINEAR_MIPMAP_LINEAR: return B.a.TRILINEAR_SAMPLINGMODE; case P.NEAREST: case P.NEAREST_MIPMAP_NEAREST: return B.a.NEAREST_SAMPLINGMODE; default: return B.a.BILINEAR_SAMPLINGMODE; } }), (e.GetBufferFromBufferView = function (e, t, n, i, r) { n = t.byteOffset + n; var o = e.loadedBufferViews[t.buffer]; if (n + i > o.byteLength) throw new Error("Buffer access is out of range"); var a = o.buffer; switch (((n += o.byteOffset), r)) { case _.BYTE: return new Int8Array(a, n, i); case _.UNSIGNED_BYTE: return new Uint8Array(a, n, i); case _.SHORT: return new Int16Array(a, n, i); case _.UNSIGNED_SHORT: return new Uint16Array(a, n, i); default: return new Float32Array(a, n, i); } }), (e.GetBufferFromAccessor = function (t, n) { var i = t.bufferViews[n.bufferView], r = n.count * e.GetByteStrideFromType(n); return e.GetBufferFromBufferView(t, i, n.byteOffset, r, n.componentType); }), (e.DecodeBufferToText = function (e) { for (var t = "", n = e.byteLength, i = 0; i < n; ++i) t += String.fromCharCode(e[i]); return t; }), (e.GetDefaultMaterial = function (t) { if (!e._DefaultMaterial) { (F.a.ShadersStore.GLTFDefaultMaterialVertexShader = [ "precision highp float;", "", "uniform mat4 worldView;", "uniform mat4 projection;", "", "attribute vec3 position;", "", "void main(void)", "{", " gl_Position = projection * worldView * vec4(position, 1.0);", "}", ].join("\n")), (F.a.ShadersStore.GLTFDefaultMaterialPixelShader = ["precision highp float;", "", "uniform vec4 u_emission;", "", "void main(void)", "{", " gl_FragColor = u_emission;", "}"].join("\n")); var n = { attributes: ["position"], uniforms: ["worldView", "projection", "u_emission"], samplers: new Array(), needAlphaBlending: !1 }; (e._DefaultMaterial = new j.a("GLTFDefaultMaterial", t, { vertex: "GLTFDefaultMaterial", fragment: "GLTFDefaultMaterial" }, n)), e._DefaultMaterial.setColor4("u_emission", new A.b(0.5, 0.5, 0.5, 1)); } return e._DefaultMaterial; }), (e._DefaultMaterial = null), e ); })(), J = n(80); !(function (e) { (e[(e.IDENTIFIER = 1)] = "IDENTIFIER"), (e[(e.UNKNOWN = 2)] = "UNKNOWN"), (e[(e.END_OF_INPUT = 3)] = "END_OF_INPUT"); })(E || (E = {})); var $ = (function () { function e(e) { (this._pos = 0), (this.currentToken = E.UNKNOWN), (this.currentIdentifier = ""), (this.currentString = ""), (this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/), (this._toParse = e), (this._maxPos = e.length); } return ( (e.prototype.getNextToken = function () { if (this.isEnd()) return E.END_OF_INPUT; if (((this.currentString = this.read()), (this.currentToken = E.UNKNOWN), "_" === this.currentString || this.isLetterOrDigitPattern.test(this.currentString))) for (this.currentToken = E.IDENTIFIER, this.currentIdentifier = this.currentString; !this.isEnd() && (this.isLetterOrDigitPattern.test((this.currentString = this.peek())) || "_" === this.currentString); ) (this.currentIdentifier += this.currentString), this.forward(); return this.currentToken; }), (e.prototype.peek = function () { return this._toParse[this._pos]; }), (e.prototype.read = function () { return this._toParse[this._pos++]; }), (e.prototype.forward = function () { this._pos++; }), (e.prototype.isEnd = function () { return this._pos >= this._maxPos; }), e ); })(), ee = ["MODEL", "VIEW", "PROJECTION", "MODELVIEW", "MODELVIEWPROJECTION", "JOINTMATRIX"], te = ["world", "view", "projection", "worldView", "worldViewProjection", "mBones"], ne = ["translation", "rotation", "scale"], ie = ["position", "rotationQuaternion", "scaling"], re = function (e, t, n) { for (var i in e) { var r = e[i]; n[t][i] = r; } }, oe = function (e) { if (e) for (var t = 0; t < e.length / 2; t++) e[2 * t + 1] = 1 - e[2 * t + 1]; }, ae = function (e) { if ("NORMAL" === e.semantic) return "normal"; if ("POSITION" === e.semantic) return "position"; if ("JOINT" === e.semantic) return "matricesIndices"; if ("WEIGHT" === e.semantic) return "matricesWeights"; if ("COLOR" === e.semantic) return "color"; if (e.semantic && -1 !== e.semantic.indexOf("TEXCOORD_")) { var t = Number(e.semantic.split("_")[1]); return "uv" + (0 === t ? "" : t + 1); } return null; }, se = function (e) { var t = null; if (e.translation || e.rotation || e.scale) { var n = M.e.FromArray(e.scale || [1, 1, 1]), i = M.b.FromArray(e.rotation || [0, 0, 0, 1]), r = M.e.FromArray(e.translation || [0, 0, 0]); t = M.a.Compose(n, i, r); } else t = M.a.FromArray(e.matrix); return t; }, ce = function (e, t, n, i) { for (var r = 0; r < i.bones.length; r++) if (i.bones[r].name === n) return i.bones[r]; var o = e.nodes; for (var a in o) { var s = o[a]; if (s.jointName) { var c = s.children; for (r = 0; r < c.length; r++) { var l = e.nodes[c[r]]; if (l.jointName && l.jointName === n) { var u = se(s), h = new w.a(s.name || "", i, ce(e, t, s.jointName, i), u); return (h.id = a), h; } } } } return null; }, le = function (e, t) { for (var n = 0; n < e.length; n++) for (var i = e[n], r = 0; r < i.node.children.length; r++) { if (i.node.children[r] === t) return i.bone; } return null; }, ue = function (e, t) { var n = e.nodes, i = n[t]; if (i) return { node: i, id: t }; for (var r in n) if ((i = n[r]).jointName === t) return { node: i, id: r }; return null; }, he = function (e, t) { for (var n = 0; n < e.jointNames.length; n++) if (e.jointNames[n] === t) return !0; return !1; }, de = function (e, t, n, i, r) { if ((i || (i = new L.a(t.name || "", "", e.scene)), !t.babylonSkeleton)) return i; var o = [], s = []; !(function (e, t, n, i) { for (var r in e.nodes) { var o = e.nodes[r], a = r; if (o.jointName && !he(n, o.jointName)) { var s = se(o), c = new w.a(o.name || "", t, null, s); (c.id = a), i.push({ bone: c, node: o, id: a }); } } for (var l = 0; l < i.length; l++) for (var u = i[l], h = u.node.children, d = 0; d < h.length; d++) { for (var p = null, f = 0; f < i.length; f++) if (i[f].id === h[d]) { p = i[f]; break; } p && ((p.bone._parent = u.bone), u.bone.children.push(p.bone)); } })(e, i, t, o), (i.bones = []); for (var c = 0; c < t.jointNames.length; c++) { if ((y = ue(e, t.jointNames[c]))) { var l = y.node; if (l) { r = y.id; var u = e.scene.getBoneByID(r); if (u) i.bones.push(u); else { for (var h = !1, d = null, p = 0; p < c; p++) { var f = ue(e, t.jointNames[p]); if (f) { var m = f.node; if (m) { var g = m.children; if (g) { h = !1; for (var b = 0; b < g.length; b++) if (g[b] === r) { (d = ce(e, t, t.jointNames[p], i)), (h = !0); break; } if (h) break; } } else a.b.Warn("Joint named " + t.jointNames[p] + " does not exist when looking for parent"); } } var _ = se(l); !d && o.length > 0 && (d = le(o, r)) && -1 === s.indexOf(d) && s.push(d), (new w.a(l.jointName || "", i, d, _).id = r); } } else a.b.Warn("Joint named " + t.jointNames[c] + " does not exist"); } } var v = i.bones; i.bones = []; for (c = 0; c < t.jointNames.length; c++) { var y; if ((y = ue(e, t.jointNames[c]))) for (p = 0; p < v.length; p++) if (v[p].id === y.id) { i.bones.push(v[p]); break; } } i.prepare(); for (c = 0; c < s.length; c++) i.bones.push(s[c]); return i; }, pe = function (e, t, n, i, r) { if ((r || ((e.scene._blockEntityCollection = e.forAssetContainer), (r = new X.a(t.name || "", e.scene)), (e.scene._blockEntityCollection = !1), (r.id = i)), !t.babylonNode)) return r; for (var o, a = [], s = null, c = new Array(), l = new Array(), u = new Array(), h = new Array(), d = 0; d < n.length; d++) { var p = n[d]; if ((A = e.meshes[p])) for (var f = 0; f < A.primitives.length; f++) { var m = new V.a(), g = A.primitives[f]; g.mode; var _ = g.attributes, v = null, y = null; for (var C in _) if (((v = e.accessors[_[C]]), (y = Q.GetBufferFromAccessor(e, v)), "NORMAL" === C)) (m.normals = new Float32Array(y.length)), m.normals.set(y); else if ("POSITION" === C) { if (b.HomogeneousCoordinates) { m.positions = new Float32Array(y.length - y.length / 4); for (var P = 0; P < y.length; P += 4) (m.positions[P] = y[P]), (m.positions[P + 1] = y[P + 1]), (m.positions[P + 2] = y[P + 2]); } else (m.positions = new Float32Array(y.length)), m.positions.set(y); l.push(m.positions.length); } else if (-1 !== C.indexOf("TEXCOORD_")) { var x = Number(C.split("_")[1]), T = G.b.UVKind + (0 === x ? "" : x + 1), S = new Float32Array(y.length); S.set(y), oe(S), m.set(S, T); } else "JOINT" === C ? ((m.matricesIndices = new Float32Array(y.length)), m.matricesIndices.set(y)) : "WEIGHT" === C ? ((m.matricesWeights = new Float32Array(y.length)), m.matricesWeights.set(y)) : "COLOR" === C && ((m.colors = new Float32Array(y.length)), m.colors.set(y)); if ((v = e.accessors[g.indices])) (y = Q.GetBufferFromAccessor(e, v)), (m.indices = new Int32Array(y.length)), m.indices.set(y), h.push(m.indices.length); else { var O = []; for (P = 0; P < m.positions.length / 3; P++) O.push(P); (m.indices = new Int32Array(O)), h.push(m.indices.length); } s ? s.merge(m) : (s = m); var E = e.scene.getMaterialByID(g.material); a.push(null === E ? Q.GetDefaultMaterial(e.scene) : E), c.push(0 === c.length ? 0 : c[c.length - 1] + l[l.length - 2]), u.push(0 === u.length ? 0 : u[u.length - 1] + h[h.length - 2]); } } (e.scene._blockEntityCollection = e.forAssetContainer), a.length > 1 ? ((o = new k.a("multimat" + i, e.scene)).subMaterials = a) : (o = new z.a("multimat" + i, e.scene)), 1 === a.length && (o = a[0]), r.material || (r.material = o), new U.a(i, e.scene, s, !1, r), r.computeWorldMatrix(!0), (e.scene._blockEntityCollection = !1), (r.subMeshes = []); var M = 0; for (d = 0; d < n.length; d++) { var A; p = n[d]; if ((A = e.meshes[p])) for (f = 0; f < A.primitives.length; f++) A.primitives[f].mode, H.b.AddToMesh(M, c[M], l[M], u[M], h[M], r, r, !0), M++; } return r; }, fe = function (e, t, n, i) { e.position && (e.position = t), (e.rotationQuaternion || e.rotation) && (e.rotationQuaternion = n), e.scaling && (e.scaling = i); }, me = function (e, t, n, i) { var r = null; if (e.importOnlyMeshes && (t.skin || t.meshes) && e.importMeshesNames && e.importMeshesNames.length > 0 && -1 === e.importMeshesNames.indexOf(t.name || "")) return null; if (t.skin) { if (t.meshes) { var o = e.skins[t.skin]; ((a = pe(e, t, t.meshes, n, t.babylonNode)).skeleton = e.scene.getLastSkeletonByID(t.skin)), null === a.skeleton && ((a.skeleton = de(e, o, 0, o.babylonSkeleton, t.skin)), o.babylonSkeleton || (o.babylonSkeleton = a.skeleton)), (r = a); } } else if (t.meshes) { var a; r = a = pe(e, t, t.mesh ? [t.mesh] : t.meshes, n, t.babylonNode); } else if (!t.light || t.babylonNode || e.importOnlyMeshes) { if (t.camera && !t.babylonNode && !e.importOnlyMeshes) { var s = e.cameras[t.camera]; if (s) { if (((e.scene._blockEntityCollection = e.forAssetContainer), "orthographic" === s.type)) { var c = new D.a(t.camera, M.e.Zero(), e.scene, !1); (c.name = t.name || ""), (c.mode = I.a.ORTHOGRAPHIC_CAMERA), c.attachControl(e.scene.getEngine().getInputElement()), (r = c); } else if ("perspective" === s.type) { var l = s[s.type], u = new D.a(t.camera, M.e.Zero(), e.scene, !1); (u.name = t.name || ""), u.attachControl(e.scene.getEngine().getInputElement()), l.aspectRatio || (l.aspectRatio = e.scene.getEngine().getRenderWidth() / e.scene.getEngine().getRenderHeight()), l.znear && l.zfar && ((u.maxZ = l.zfar), (u.minZ = l.znear)), (r = u); } e.scene._blockEntityCollection = !1; } } } else { var h = e.lights[t.light]; if (h) if ("ambient" === h.type) { var d = h[h.type], p = new Y.a(t.light, M.e.Zero(), e.scene); (p.name = t.name || ""), d.color && (p.diffuse = A.a.FromArray(d.color)), (r = p); } else if ("directional" === h.type) { var f = h[h.type], m = new K.a(t.light, M.e.Zero(), e.scene); (m.name = t.name || ""), f.color && (m.diffuse = A.a.FromArray(f.color)), (r = m); } else if ("point" === h.type) { var g = h[h.type], b = new Z.a(t.light, M.e.Zero(), e.scene); (b.name = t.name || ""), g.color && (b.diffuse = A.a.FromArray(g.color)), (r = b); } else if ("spot" === h.type) { var _ = h[h.type], v = new q.a(t.light, M.e.Zero(), M.e.Zero(), 0, 0, e.scene); (v.name = t.name || ""), _.color && (v.diffuse = A.a.FromArray(_.color)), _.fallOfAngle && (v.angle = _.fallOfAngle), _.fallOffExponent && (v.exponent = _.fallOffExponent), (r = v); } } if (!t.jointName) { if (t.babylonNode) return t.babylonNode; if (null === r) { e.scene._blockEntityCollection = e.forAssetContainer; var y = new X.a(t.name || "", e.scene); (e.scene._blockEntityCollection = !1), (t.babylonNode = y), (r = y); } } if (null !== r) { if (t.matrix && r instanceof X.a) !(function (e, t, n) { if (t.matrix) { var i = new M.e(0, 0, 0), r = new M.b(), o = new M.e(0, 0, 0); M.a.FromArray(t.matrix).decompose(o, r, i), fe(e, i, r, o); } else t.translation && t.rotation && t.scale && fe(e, M.e.FromArray(t.translation), M.b.FromArray(t.rotation), M.e.FromArray(t.scale)); e.computeWorldMatrix(!0); })(r, t); else { var C = t.translation || [0, 0, 0], P = t.rotation || [0, 0, 0, 1], x = t.scale || [1, 1, 1]; fe(r, M.e.FromArray(C), M.b.FromArray(P), M.e.FromArray(x)); } r.updateCache(!0), (t.babylonNode = r); } return r; }, ge = function (e, t, n, i) { void 0 === i && (i = !1); var r = e.nodes[t], o = null; if ( ((i = !(e.importOnlyMeshes && !i && e.importMeshesNames) || -1 !== e.importMeshesNames.indexOf(r.name || "") || 0 === e.importMeshesNames.length), !r.jointName && i && null !== (o = me(e, r, t)) && ((o.id = t), (o.parent = n)), r.children) ) for (var a = 0; a < r.children.length; a++) ge(e, r.children[a], o, i); }, be = function (e) { var t = e.currentScene; if (t) for (var n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null); else for (var i in e.scenes) { t = e.scenes[i]; for (n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null); } !(function (e) { for (var t in e.animations) { var n = e.animations[t]; if (n.channels && n.samplers) for (var i = null, r = 0; r < n.channels.length; r++) { var o = n.channels[r], s = n.samplers[o.sampler]; if (s) { var c = null, l = null; n.parameters ? ((c = n.parameters[s.input]), (l = n.parameters[s.output])) : ((c = s.input), (l = s.output)); var u = Q.GetBufferFromAccessor(e, e.accessors[c]), h = Q.GetBufferFromAccessor(e, e.accessors[l]), d = o.target.id, p = e.scene.getNodeByID(d); if ((null === p && (p = e.scene.getNodeByName(d)), null !== p)) { var f = p instanceof w.a, m = o.target.path, g = ne.indexOf(m); -1 !== g && (m = ie[g]); var b = R.a.ANIMATIONTYPE_MATRIX; f || ("rotationQuaternion" === m ? ((b = R.a.ANIMATIONTYPE_QUATERNION), (p.rotationQuaternion = new M.b())) : (b = R.a.ANIMATIONTYPE_VECTOR3)); var _ = null, v = [], y = 0, C = !1; f && i && i.getKeys().length === u.length && ((_ = i), (C = !0)), C || ((e.scene._blockEntityCollection = e.forAssetContainer), (_ = new R.a(t, f ? "_matrix" : m, 1, b, R.a.ANIMATIONLOOPMODE_CYCLE)), (e.scene._blockEntityCollection = !1)); for (var P = 0; P < u.length; P++) { var x = null; if (("rotationQuaternion" === m ? ((x = M.b.FromArray([h[y], h[y + 1], h[y + 2], h[y + 3]])), (y += 4)) : ((x = M.e.FromArray([h[y], h[y + 1], h[y + 2]])), (y += 3)), f)) { var T = p, S = M.e.Zero(), O = new M.b(), E = M.e.Zero(), A = T.getBaseMatrix(); C && i && (A = i.getKeys()[P].value), A.decompose(E, O, S), "position" === m ? (S = x) : "rotationQuaternion" === m ? (O = x) : (E = x), (x = M.a.Compose(E, O, S)); } C ? i && (i.getKeys()[P].value = x) : v.push({ frame: u[P], value: x }); } !C && _ && (_.setKeys(v), p.animations.push(_)), (i = _), e.scene.stopAnimation(p), e.scene.beginAnimation(p, 0, u[u.length - 1], !0, 1); } else a.b.Warn("Creating animation named " + t + ". But cannot find node named " + d + " to attach to"); } } } })(e); for (n = 0; n < e.scene.skeletons.length; n++) { var r = e.scene.skeletons[n]; e.scene.beginAnimation(r, 0, Number.MAX_VALUE, !0, 1); } }, _e = function (e, t, n, i, r, o) { return function (a) { !(function (e, t, n, i, r) { var o = i.values || n.parameters, a = n.uniforms; for (var s in r) { var c = r[s], l = c.type, u = o[a[s]]; if ((void 0 === u && (u = c.value), u)) { var h = function (e) { return function (n) { c.value && e && (t.setTexture(e, n), delete r[e]); }; }; l === y.SAMPLER_2D ? xe.LoadTextureAsync(e, i.values ? u : c.value, h(s), function () { return h(null); }) : c.value && Q.SetUniform(t, s, i.values ? u : c.value, l) && delete r[s]; } } })(e, t, n, i, r), (t.onBind = function (a) { !(function (e, t, n, i, r, o, a) { var s = o.values || r.parameters; for (var c in n) { var l = n[c], u = l.type; if (u === y.FLOAT_MAT2 || u === y.FLOAT_MAT3 || u === y.FLOAT_MAT4) if (!l.semantic || l.source || l.node) { if (l.semantic && (l.source || l.node)) { var h = t.scene.getNodeByName(l.source || l.node || ""); if ((null === h && (h = t.scene.getNodeByID(l.source || l.node || "")), null === h)) continue; Q.SetMatrix(t.scene, h, l, c, i.getEffect()); } } else Q.SetMatrix(t.scene, e, l, c, i.getEffect()); else { var d = s[r.uniforms[c]]; if (!d) continue; if (u === y.SAMPLER_2D) { var p = t.textures[o.values ? d : l.value].babylonTexture; if (null == p) continue; i.getEffect().setTexture(c, p); } else Q.SetUniform(i.getEffect(), c, d, u); } } a(i); })(a, e, r, t, n, i, o); }); }; }, ve = function (e, t, n) { for (var i in t.uniforms) { var r = t.uniforms[i], o = t.parameters[r]; if (e.currentIdentifier === i && o.semantic && !o.source && !o.node) { var a = ee.indexOf(o.semantic); if (-1 !== a) return delete n[i], te[a]; } } return e.currentIdentifier; }, ye = function (e) { for (var t in e.materials) xe.LoadMaterialAsync( e, t, function (e) {}, function () {} ); }, Ce = (function () { function e() {} return ( (e.CreateRuntime = function (e, t, n) { var i = { extensions: {}, accessors: {}, buffers: {}, bufferViews: {}, meshes: {}, lights: {}, cameras: {}, nodes: {}, images: {}, textures: {}, shaders: {}, programs: {}, samplers: {}, techniques: {}, materials: {}, animations: {}, skins: {}, extensionsUsed: [], scenes: {}, buffersCount: 0, shaderscount: 0, scene: t, rootUrl: n, loadedBufferCount: 0, loadedBufferViews: {}, loadedShaderCount: 0, importOnlyMeshes: !1, dummyNodes: [], forAssetContainer: !1, }; return ( e.extensions && re(e.extensions, "extensions", i), e.extensionsUsed && re(e.extensionsUsed, "extensionsUsed", i), e.buffers && (function (e, t) { for (var n in e) { var i = e[n]; (t.buffers[n] = i), t.buffersCount++; } })(e.buffers, i), e.bufferViews && re(e.bufferViews, "bufferViews", i), e.accessors && re(e.accessors, "accessors", i), e.meshes && re(e.meshes, "meshes", i), e.lights && re(e.lights, "lights", i), e.cameras && re(e.cameras, "cameras", i), e.nodes && re(e.nodes, "nodes", i), e.images && re(e.images, "images", i), e.textures && re(e.textures, "textures", i), e.shaders && (function (e, t) { for (var n in e) { var i = e[n]; (t.shaders[n] = i), t.shaderscount++; } })(e.shaders, i), e.programs && re(e.programs, "programs", i), e.samplers && re(e.samplers, "samplers", i), e.techniques && re(e.techniques, "techniques", i), e.materials && re(e.materials, "materials", i), e.animations && re(e.animations, "animations", i), e.skins && re(e.skins, "skins", i), e.scenes && (i.scenes = e.scenes), e.scene && e.scenes && (i.currentScene = e.scenes[e.scene]), i ); }), (e.LoadBufferAsync = function (e, t, n, i, r) { var o = e.buffers[t]; a.b.IsBase64(o.uri) ? setTimeout(function () { return n(new Uint8Array(a.b.DecodeBase64(o.uri))); }) : a.b.LoadFile( e.rootUrl + o.uri, function (e) { return n(new Uint8Array(e)); }, r, void 0, !0, function (e) { e && i(e.status + " " + e.statusText); } ); }), (e.LoadTextureBufferAsync = function (e, t, n, i) { var r = e.textures[t]; if (r && r.source) if (r.babylonTexture) n(null); else { var o = e.images[r.source]; a.b.IsBase64(o.uri) ? setTimeout(function () { return n(new Uint8Array(a.b.DecodeBase64(o.uri))); }) : a.b.LoadFile( e.rootUrl + o.uri, function (e) { return n(new Uint8Array(e)); }, void 0, void 0, !0, function (e) { e && i(e.status + " " + e.statusText); } ); } else i(""); }), (e.CreateTextureAsync = function (e, t, n, i, r) { var o = e.textures[t]; if (o.babylonTexture) i(o.babylonTexture); else { var a = e.samplers[o.sampler], s = a.minFilter === P.NEAREST_MIPMAP_NEAREST || a.minFilter === P.NEAREST_MIPMAP_LINEAR || a.minFilter === P.LINEAR_MIPMAP_NEAREST || a.minFilter === P.LINEAR_MIPMAP_LINEAR, c = B.a.BILINEAR_SAMPLINGMODE, l = null == n ? new Blob() : new Blob([n]), u = URL.createObjectURL(l), h = function () { return URL.revokeObjectURL(u); }, d = new B.a(u, e.scene, !s, !0, c, h, h); void 0 !== a.wrapS && (d.wrapU = Q.GetWrapMode(a.wrapS)), void 0 !== a.wrapT && (d.wrapV = Q.GetWrapMode(a.wrapT)), (d.name = t), (o.babylonTexture = d), i(d); } }), (e.LoadShaderStringAsync = function (e, t, n, i) { var r = e.shaders[t]; if (a.b.IsBase64(r.uri)) { var o = atob(r.uri.split(",")[1]); n && n(o); } else a.b.LoadFile(e.rootUrl + r.uri, n, void 0, void 0, !1, function (e) { e && i && i(e.status + " " + e.statusText); }); }), (e.LoadMaterialAsync = function (e, t, n, i) { var r = e.materials[t]; if (r.technique) { var o = e.techniques[r.technique]; if (!o) { e.scene._blockEntityCollection = e.forAssetContainer; var a = new z.a(t, e.scene); return (e.scene._blockEntityCollection = !1), (a.diffuseColor = new A.a(0.5, 0.5, 0.5)), (a.sideOrientation = N.a.CounterClockWiseSideOrientation), void n(a); } var s = e.programs[o.program], c = o.states, l = F.a.ShadersStore[s.vertexShader + "VertexShader"], u = F.a.ShadersStore[s.fragmentShader + "PixelShader"], h = "", d = "", p = new $(l), f = new $(u), m = {}, g = [], b = [], _ = []; for (var v in o.uniforms) { var C = o.uniforms[v], P = o.parameters[C]; if (((m[v] = P), !P.semantic || P.node || P.source)) P.type === y.SAMPLER_2D ? _.push(v) : g.push(v); else { var x = ee.indexOf(P.semantic); -1 !== x ? (g.push(te[x]), delete m[v]) : g.push(v); } } for (var O in o.attributes) { var M = o.attributes[O]; if ((R = o.parameters[M]).semantic) { var I = ae(R); I && b.push(I); } } for (; !p.isEnd() && p.getNextToken(); ) { if (p.currentToken === E.IDENTIFIER) { var D = !1; for (var O in o.attributes) { M = o.attributes[O]; var R = o.parameters[M]; if (p.currentIdentifier === O && R.semantic) { (h += ae(R)), (D = !0); break; } } D || (h += ve(p, o, m)); } else h += p.currentString; } for (; !f.isEnd() && f.getNextToken(); ) { f.currentToken === E.IDENTIFIER ? (d += ve(f, o, m)) : (d += f.currentString); } var w = { vertex: s.vertexShader + t, fragment: s.fragmentShader + t }, L = { attributes: b, uniforms: g, samplers: _, needAlphaBlending: c && c.enable && -1 !== c.enable.indexOf(3042) }; (F.a.ShadersStore[s.vertexShader + t + "VertexShader"] = h), (F.a.ShadersStore[s.fragmentShader + t + "PixelShader"] = d); var k = new j.a(t, e.scene, w, L); if ( ((k.onError = (function (e, t, n) { return function (i, r) { t.dispose(!0), n("Cannot compile program named " + e.name + ". Error: " + r + ". Default material will be applied"); }; })(s, k, i)), (k.onCompiled = _e(e, k, o, r, m, n)), (k.sideOrientation = N.a.CounterClockWiseSideOrientation), c && c.functions) ) { var B = c.functions; B.cullFace && B.cullFace[0] !== T.BACK && (k.backFaceCulling = !1); var V = B.blendFuncSeparate; V && (V[0] === S.SRC_ALPHA && V[1] === S.ONE_MINUS_SRC_ALPHA && V[2] === S.ONE && V[3] === S.ONE ? (k.alphaMode = J.a.ALPHA_COMBINE) : V[0] === S.ONE && V[1] === S.ONE && V[2] === S.ZERO && V[3] === S.ONE ? (k.alphaMode = J.a.ALPHA_ONEONE) : V[0] === S.SRC_ALPHA && V[1] === S.ONE && V[2] === S.ZERO && V[3] === S.ONE ? (k.alphaMode = J.a.ALPHA_ADD) : V[0] === S.ZERO && V[1] === S.ONE_MINUS_SRC_COLOR && V[2] === S.ONE && V[3] === S.ONE ? (k.alphaMode = J.a.ALPHA_SUBTRACT) : V[0] === S.DST_COLOR && V[1] === S.ZERO && V[2] === S.ONE && V[3] === S.ONE ? (k.alphaMode = J.a.ALPHA_MULTIPLY) : V[0] === S.SRC_ALPHA && V[1] === S.ONE_MINUS_SRC_COLOR && V[2] === S.ONE && V[3] === S.ONE && (k.alphaMode = J.a.ALPHA_MAXIMIZED)); } } else i && i("No technique found."); }), e ); })(), Pe = (function () { function e() { this.state = null; } return ( (e.RegisterExtension = function (t) { e.Extensions[t.name] ? a.b.Error('Tool with the same name "' + t.name + '" already exists') : (e.Extensions[t.name] = t); }), (e.prototype.dispose = function () {}), (e.prototype._importMeshAsync = function (e, t, n, i, r, o, s, c) { var l = this; return ( (t.useRightHandedSystem = !0), xe.LoadRuntimeAsync( t, n, i, function (t) { (t.forAssetContainer = r), (t.importOnlyMeshes = !0), "" === e ? (t.importMeshesNames = []) : "string" == typeof e ? (t.importMeshesNames = [e]) : !e || e instanceof Array ? ((t.importMeshesNames = []), a.b.Warn("Argument meshesNames must be of type string or string[]")) : (t.importMeshesNames = [e]), l._createNodes(t); var n = new Array(), i = new Array(); for (var c in t.nodes) { var u = t.nodes[c]; u.babylonNode instanceof W.a && n.push(u.babylonNode); } for (var h in t.skins) { var d = t.skins[h]; d.babylonSkeleton instanceof L.a && i.push(d.babylonSkeleton); } l._loadBuffersAsync( t, function () { l._loadShadersAsync(t, function () { ye(t), be(t), !b.IncrementalLoading && o && o(n, i); }); }, s ), b.IncrementalLoading && o && o(n, i); }, c ), !0 ); }), (e.prototype.importMeshAsync = function (e, t, n, i, r, o) { var a = this; return new Promise(function (s, c) { a._importMeshAsync( e, t, i, r, n, function (e, t) { s({ meshes: e, particleSystems: [], skeletons: t, animationGroups: [], lights: [], transformNodes: [] }); }, o, function (e) { c(new Error(e)); } ); }); }), (e.prototype._loadAsync = function (e, t, n, i, r, o, a) { var s = this; (e.useRightHandedSystem = !0), xe.LoadRuntimeAsync( e, t, n, function (e) { xe.LoadRuntimeExtensionsAsync( e, function () { s._createNodes(e), s._loadBuffersAsync(e, function () { s._loadShadersAsync(e, function () { ye(e), be(e), b.IncrementalLoading || r(); }); }), b.IncrementalLoading && r(); }, a ); }, a ); }), (e.prototype.loadAsync = function (e, t, n, i) { var r = this; return new Promise(function (o, a) { r._loadAsync( e, t, n, !1, function () { o(); }, i, function (e) { a(new Error(e)); } ); }); }), (e.prototype._loadShadersAsync = function (e, t) { var n = !1, i = function (n, i) { xe.LoadShaderStringAsync( e, n, function (r) { r instanceof ArrayBuffer || (e.loadedShaderCount++, r && (F.a.ShadersStore[n + (i.type === v.VERTEX ? "VertexShader" : "PixelShader")] = r), e.loadedShaderCount === e.shaderscount && t()); }, function () { a.b.Error("Error when loading shader program named " + n + " located at " + i.uri); } ); }; for (var r in e.shaders) { n = !0; var o = e.shaders[r]; o ? i.bind(this, r, o)() : a.b.Error("No shader named: " + r); } n || t(); }), (e.prototype._loadBuffersAsync = function (e, t, n) { var i = !1, r = function (n, i) { xe.LoadBufferAsync( e, n, function (r) { e.loadedBufferCount++, r && (r.byteLength != e.buffers[n].byteLength && a.b.Error("Buffer named " + n + " is length " + r.byteLength + ". Expected: " + i.byteLength), (e.loadedBufferViews[n] = r)), e.loadedBufferCount === e.buffersCount && t(); }, function () { a.b.Error("Error when loading buffer named " + n + " located at " + i.uri); } ); }; for (var o in e.buffers) { i = !0; var s = e.buffers[o]; s ? r.bind(this, o, s)() : a.b.Error("No buffer named: " + o); } i || t(); }), (e.prototype._createNodes = function (e) { var t = e.currentScene; if (t) for (var n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null); else for (var i in e.scenes) { t = e.scenes[i]; for (n = 0; n < t.nodes.length; n++) ge(e, t.nodes[n], null); } }), (e.Extensions = {}), e ); })(), xe = (function () { function e(e) { this._name = e; } return ( Object.defineProperty(e.prototype, "name", { get: function () { return this._name; }, enumerable: !0, configurable: !0, }), (e.prototype.loadRuntimeAsync = function (e, t, n, i, r) { return !1; }), (e.prototype.loadRuntimeExtensionsAsync = function (e, t, n) { return !1; }), (e.prototype.loadBufferAsync = function (e, t, n, i, r) { return !1; }), (e.prototype.loadTextureBufferAsync = function (e, t, n, i) { return !1; }), (e.prototype.createTextureAsync = function (e, t, n, i, r) { return !1; }), (e.prototype.loadShaderStringAsync = function (e, t, n, i) { return !1; }), (e.prototype.loadMaterialAsync = function (e, t, n, i) { return !1; }), (e.LoadRuntimeAsync = function (t, n, i, r, o) { e.ApplyExtensions( function (e) { return e.loadRuntimeAsync(t, n, i, r, o); }, function () { setTimeout(function () { r && r(Ce.CreateRuntime(n.json, t, i)); }); } ); }), (e.LoadRuntimeExtensionsAsync = function (t, n, i) { e.ApplyExtensions( function (e) { return e.loadRuntimeExtensionsAsync(t, n, i); }, function () { setTimeout(function () { n(); }); } ); }), (e.LoadBufferAsync = function (t, n, i, r, o) { e.ApplyExtensions( function (e) { return e.loadBufferAsync(t, n, i, r, o); }, function () { Ce.LoadBufferAsync(t, n, i, r, o); } ); }), (e.LoadTextureAsync = function (t, n, i, r) { e.LoadTextureBufferAsync( t, n, function (o) { o && e.CreateTextureAsync(t, n, o, i, r); }, r ); }), (e.LoadShaderStringAsync = function (t, n, i, r) { e.ApplyExtensions( function (e) { return e.loadShaderStringAsync(t, n, i, r); }, function () { Ce.LoadShaderStringAsync(t, n, i, r); } ); }), (e.LoadMaterialAsync = function (t, n, i, r) { e.ApplyExtensions( function (e) { return e.loadMaterialAsync(t, n, i, r); }, function () { Ce.LoadMaterialAsync(t, n, i, r); } ); }), (e.LoadTextureBufferAsync = function (t, n, i, r) { e.ApplyExtensions( function (e) { return e.loadTextureBufferAsync(t, n, i, r); }, function () { Ce.LoadTextureBufferAsync(t, n, i, r); } ); }), (e.CreateTextureAsync = function (t, n, i, r, o) { e.ApplyExtensions( function (e) { return e.createTextureAsync(t, n, i, r, o); }, function () { Ce.CreateTextureAsync(t, n, i, r, o); } ); }), (e.ApplyExtensions = function (e, t) { for (var n in Pe.Extensions) { if (e(Pe.Extensions[n])) return; } t(); }), e ); })(); b._CreateGLTF1Loader = function () { return new Pe(); }; var Te = (function (e) { function t() { return e.call(this, "KHR_binary_glTF") || this; } return ( Object(O.d)(t, e), (t.prototype.loadRuntimeAsync = function (e, t, n, i, r) { var o = t.json.extensionsUsed; return !(!o || -1 === o.indexOf(this.name) || !t.bin) && ((this._bin = t.bin), i(Ce.CreateRuntime(t.json, e, n)), !0); }), (t.prototype.loadBufferAsync = function (e, t, n, i) { return ( -1 !== e.extensionsUsed.indexOf(this.name) && "binary_glTF" === t && (this._bin.readAsync(0, this._bin.byteLength).then(n, function (e) { return i(e.message); }), !0) ); }), (t.prototype.loadTextureBufferAsync = function (e, t, n, i) { var r = e.textures[t], o = e.images[r.source]; if (!o.extensions || !(this.name in o.extensions)) return !1; var a = o.extensions[this.name], s = e.bufferViews[a.bufferView]; return n(Q.GetBufferFromBufferView(e, s, 0, s.byteLength, _.UNSIGNED_BYTE)), !0; }), (t.prototype.loadShaderStringAsync = function (e, t, n, i) { var r = e.shaders[t]; if (!r.extensions || !(this.name in r.extensions)) return !1; var o = r.extensions[this.name], a = e.bufferViews[o.bufferView], s = Q.GetBufferFromBufferView(e, a, 0, a.byteLength, _.UNSIGNED_BYTE); return ( setTimeout(function () { var e = Q.DecodeBufferToText(s); n(e); }), !0 ); }), t ); })(xe); Pe.RegisterExtension(new Te()); var Se = (function (e) { function t() { return e.call(this, "KHR_materials_common") || this; } return ( Object(O.d)(t, e), (t.prototype.loadRuntimeExtensionsAsync = function (e, t, n) { if (!e.extensions) return !1; var i = e.extensions[this.name]; if (!i) return !1; var r = i.lights; if (r) for (var o in r) { var s = r[o]; switch (s.type) { case "ambient": var c = new Y.a(s.name, new M.e(0, 1, 0), e.scene), l = s.ambient; l && (c.diffuse = A.a.FromArray(l.color || [1, 1, 1])); break; case "point": var u = new Z.a(s.name, new M.e(10, 10, 10), e.scene), h = s.point; h && (u.diffuse = A.a.FromArray(h.color || [1, 1, 1])); break; case "directional": var d = new K.a(s.name, new M.e(0, -1, 0), e.scene), p = s.directional; p && (d.diffuse = A.a.FromArray(p.color || [1, 1, 1])); break; case "spot": var f = s.spot; if (f) new q.a(s.name, new M.e(0, 10, 0), new M.e(0, -1, 0), f.fallOffAngle || Math.PI, f.fallOffExponent || 0, e.scene).diffuse = A.a.FromArray(f.color || [1, 1, 1]); break; default: a.b.Warn('GLTF Material Common extension: light type "' + s.type + "” not supported"); } } return !1; }), (t.prototype.loadMaterialAsync = function (e, t, n, i) { var r = e.materials[t]; if (!r || !r.extensions) return !1; var o = r.extensions[this.name]; if (!o) return !1; var a = new z.a(t, e.scene); return ( (a.sideOrientation = N.a.CounterClockWiseSideOrientation), "CONSTANT" === o.technique && (a.disableLighting = !0), (a.backFaceCulling = void 0 !== o.doubleSided && !o.doubleSided), (a.alpha = void 0 === o.values.transparency ? 1 : o.values.transparency), (a.specularPower = void 0 === o.values.shininess ? 0 : o.values.shininess), "string" == typeof o.values.ambient ? this._loadTexture(e, o.values.ambient, a, "ambientTexture", i) : (a.ambientColor = A.a.FromArray(o.values.ambient || [0, 0, 0])), "string" == typeof o.values.diffuse ? this._loadTexture(e, o.values.diffuse, a, "diffuseTexture", i) : (a.diffuseColor = A.a.FromArray(o.values.diffuse || [0, 0, 0])), "string" == typeof o.values.emission ? this._loadTexture(e, o.values.emission, a, "emissiveTexture", i) : (a.emissiveColor = A.a.FromArray(o.values.emission || [0, 0, 0])), "string" == typeof o.values.specular ? this._loadTexture(e, o.values.specular, a, "specularTexture", i) : (a.specularColor = A.a.FromArray(o.values.specular || [0, 0, 0])), !0 ); }), (t.prototype._loadTexture = function (e, t, n, i, r) { Ce.LoadTextureBufferAsync( e, t, function (o) { Ce.CreateTextureAsync( e, t, o, function (e) { return (n[i] = e); }, r ); }, r ); }), t ); })(xe); Pe.RegisterExtension(new Se()); var Oe = n(138), Ee = n(144), Me = n(49), Ae = n(39), Ie = n(159), De = n(154), Re = n(134), we = n(74), Le = (function () { function e() {} return ( (e.Get = function (e, t, n) { if (!t || null == n || !t[n]) throw new Error(e + ": Failed to find index (" + n + ")"); return t[n]; }), (e.Assign = function (e) { if (e) for (var t = 0; t < e.length; t++) e[t].index = t; }), e ); })(), Fe = (function () { function e(e) { (this._completePromises = new Array()), (this._forAssetContainer = !1), (this._babylonLights = []), (this._disposed = !1), (this._state = null), (this._extensions = new Array()), (this._defaultBabylonMaterialData = {}), (this._requests = new Array()), (this._parent = e); } return ( (e.RegisterExtension = function (t, n) { e.UnregisterExtension(t) && l.a.Warn("Extension with the name '" + t + "' already exists"), (e._RegisteredExtensions[t] = { factory: n }); }), (e.UnregisterExtension = function (t) { return !!e._RegisteredExtensions[t] && (delete e._RegisteredExtensions[t], !0); }), Object.defineProperty(e.prototype, "state", { get: function () { return this._state; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "gltf", { get: function () { return this._gltf; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "bin", { get: function () { return this._bin; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "parent", { get: function () { return this._parent; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "babylonScene", { get: function () { return this._babylonScene; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "rootBabylonMesh", { get: function () { return this._rootBabylonMesh; }, enumerable: !0, configurable: !0, }), (e.prototype.dispose = function () { if (!this._disposed) { this._disposed = !0; for (var e = 0, t = this._requests; e < t.length; e++) { t[e].abort(); } for (var n in ((this._requests.length = 0), (this._completePromises.length = 0), this._extensions)) { var i = this._extensions[n]; i.dispose && i.dispose(), delete this._extensions[n]; } delete this._gltf, delete this._babylonScene, delete this._rootBabylonMesh, delete this._progressCallback, this._parent._clear(); } }), (e.prototype.importMeshAsync = function (e, t, n, i, r, o, a) { var s = this; return Promise.resolve().then(function () { (s._babylonScene = t), (s._rootUrl = r), (s._fileName = a || "scene"), (s._progressCallback = o), (s._forAssetContainer = n), s._loadData(i); var c = null; if (e) { var l = {}; if (s._gltf.nodes) for (var u = 0, h = s._gltf.nodes; u < h.length; u++) { var d = h[u]; d.name && (l[d.name] = d.index); } c = (e instanceof Array ? e : [e]).map(function (e) { var t = l[e]; if (void 0 === t) throw new Error("Failed to find node '" + e + "'"); return t; }); } return s._loadAsync(c, function () { return { meshes: s._getMeshes(), particleSystems: [], skeletons: s._getSkeletons(), animationGroups: s._getAnimationGroups(), lights: s._babylonLights, transformNodes: s._getTransformNodes() }; }); }); }), (e.prototype.loadAsync = function (e, t, n, i, r) { var o = this; return Promise.resolve().then(function () { return (o._babylonScene = e), (o._rootUrl = n), (o._fileName = r || "scene"), (o._progressCallback = i), o._loadData(t), o._loadAsync(null, function () {}); }); }), (e.prototype._loadAsync = function (e, t) { var n = this; return Promise.resolve().then( function () { (n._uniqueRootUrl = -1 === n._rootUrl.indexOf("file:") && n._fileName ? n._rootUrl : "" + n._rootUrl + Date.now() + "/"), n._loadExtensions(), n._checkExtensions(); var i = m[m.LOADING] + " => " + m[m.READY], r = m[m.LOADING] + " => " + m[m.COMPLETE]; n._parent._startPerformanceCounter(i), n._parent._startPerformanceCounter(r), n._setState(m.LOADING), n._extensionsOnLoading(); var o = new Array(), s = n._babylonScene.blockMaterialDirtyMechanism; if (((n._babylonScene.blockMaterialDirtyMechanism = !0), e)) o.push(n.loadSceneAsync("/nodes", { nodes: e, index: -1 })); else if (null != n._gltf.scene || (n._gltf.scenes && n._gltf.scenes[0])) { var c = Le.Get("/scene", n._gltf.scenes, n._gltf.scene || 0); o.push(n.loadSceneAsync("/scenes/" + c.index, c)); } (n._babylonScene.blockMaterialDirtyMechanism = s), n._parent.compileMaterials && o.push(n._compileMaterialsAsync()), n._parent.compileShadowGenerators && o.push(n._compileShadowGeneratorsAsync()); var l = Promise.all(o).then(function () { return n._rootBabylonMesh && n._rootBabylonMesh.setEnabled(!0), n._setState(m.READY), n._extensionsOnReady(), n._startAnimations(), t(); }); return ( l.then(function () { n._parent._endPerformanceCounter(i), a.b.SetImmediate(function () { n._disposed || Promise.all(n._completePromises).then( function () { n._parent._endPerformanceCounter(r), n._setState(m.COMPLETE), n._parent.onCompleteObservable.notifyObservers(void 0), n._parent.onCompleteObservable.clear(), n.dispose(); }, function (e) { n._parent.onErrorObservable.notifyObservers(e), n._parent.onErrorObservable.clear(), n.dispose(); } ); }); }), l ); }, function (e) { throw (n._disposed || (n._parent.onErrorObservable.notifyObservers(e), n._parent.onErrorObservable.clear(), n.dispose()), e); } ); }), (e.prototype._loadData = function (e) { if (((this._gltf = e.json), this._setupData(), e.bin)) { var t = this._gltf.buffers; if (t && t[0] && !t[0].uri) { var n = t[0]; (n.byteLength < e.bin.byteLength - 3 || n.byteLength > e.bin.byteLength) && l.a.Warn("Binary buffer length (" + n.byteLength + ") from JSON does not match chunk length (" + e.bin.byteLength + ")"), (this._bin = e.bin); } else l.a.Warn("Unexpected BIN chunk"); } }), (e.prototype._setupData = function () { if ( (Le.Assign(this._gltf.accessors), Le.Assign(this._gltf.animations), Le.Assign(this._gltf.buffers), Le.Assign(this._gltf.bufferViews), Le.Assign(this._gltf.cameras), Le.Assign(this._gltf.images), Le.Assign(this._gltf.materials), Le.Assign(this._gltf.meshes), Le.Assign(this._gltf.nodes), Le.Assign(this._gltf.samplers), Le.Assign(this._gltf.scenes), Le.Assign(this._gltf.skins), Le.Assign(this._gltf.textures), this._gltf.nodes) ) { for (var e = {}, t = 0, n = this._gltf.nodes; t < n.length; t++) { if ((c = n[t]).children) for (var i = 0, r = c.children; i < r.length; i++) { e[r[i]] = c.index; } } for (var o = this._createRootNode(), a = 0, s = this._gltf.nodes; a < s.length; a++) { var c, l = e[(c = s[a]).index]; c.parent = void 0 === l ? o : this._gltf.nodes[l]; } } }), (e.prototype._loadExtensions = function () { for (var t in e._RegisteredExtensions) { var n = e._RegisteredExtensions[t].factory(this); n.name !== t && l.a.Warn("The name of the glTF loader extension instance does not match the registered name: " + n.name + " !== " + t), this._extensions.push(n), this._parent.onExtensionLoadedObservable.notifyObservers(n); } this._extensions.sort(function (e, t) { return (e.order || Number.MAX_VALUE) - (t.order || Number.MAX_VALUE); }), this._parent.onExtensionLoadedObservable.clear(); }), (e.prototype._checkExtensions = function () { if (this._gltf.extensionsRequired) for ( var e = function (e) { if ( !t._extensions.some(function (t) { return t.name === e && t.enabled; }) ) throw new Error("Require extension " + e + " is not available"); }, t = this, n = 0, i = this._gltf.extensionsRequired; n < i.length; n++ ) { e(i[n]); } }), (e.prototype._setState = function (e) { (this._state = e), this.log(m[this._state]); }), (e.prototype._createRootNode = function () { (this._babylonScene._blockEntityCollection = this._forAssetContainer), (this._rootBabylonMesh = new X.a("__root__", this._babylonScene)), (this._babylonScene._blockEntityCollection = !1), this._rootBabylonMesh.setEnabled(!1); var t = { _babylonTransformNode: this._rootBabylonMesh, index: -1 }; switch (this._parent.coordinateSystemMode) { case p.AUTO: this._babylonScene.useRightHandedSystem || ((t.rotation = [0, 1, 0, 0]), (t.scale = [1, 1, -1]), e._LoadTransform(t, this._rootBabylonMesh)); break; case p.FORCE_RIGHT_HANDED: this._babylonScene.useRightHandedSystem = !0; break; default: throw new Error("Invalid coordinate system mode (" + this._parent.coordinateSystemMode + ")"); } return this._parent.onMeshLoadedObservable.notifyObservers(this._rootBabylonMesh), t; }), (e.prototype.loadSceneAsync = function (e, t) { var n = this, i = this._extensionsLoadSceneAsync(e, t); if (i) return i; var r = new Array(); if ((this.logOpen(e + " " + (t.name || "")), t.nodes)) for (var o = 0, a = t.nodes; o < a.length; o++) { var s = a[o], c = Le.Get(e + "/nodes/" + s, this._gltf.nodes, s); r.push( this.loadNodeAsync("/nodes/" + c.index, c, function (e) { e.parent = n._rootBabylonMesh; }) ); } if (this._gltf.nodes) for (var l = 0, u = this._gltf.nodes; l < u.length; l++) { if ((c = u[l])._babylonTransformNode && c._babylonBones) for (var h = 0, d = c._babylonBones; h < d.length; h++) { d[h].linkTransformNode(c._babylonTransformNode); } } return r.push(this._loadAnimationsAsync()), this.logClose(), Promise.all(r).then(function () {}); }), (e.prototype._forEachPrimitive = function (e, t) { if (e._primitiveBabylonMeshes) for (var n = 0, i = e._primitiveBabylonMeshes; n < i.length; n++) { t(i[n]); } }), (e.prototype._getMeshes = function () { var e = new Array(); e.push(this._rootBabylonMesh); var t = this._gltf.nodes; if (t) for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; this._forEachPrimitive(r, function (t) { e.push(t); }); } return e; }), (e.prototype._getTransformNodes = function () { var e = new Array(), t = this._gltf.nodes; if (t) for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; r._babylonTransformNode && "TransformNode" === r._babylonTransformNode.getClassName() && e.push(r._babylonTransformNode); } return e; }), (e.prototype._getSkeletons = function () { var e = new Array(), t = this._gltf.skins; if (t) for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; r._data && e.push(r._data.babylonSkeleton); } return e; }), (e.prototype._getAnimationGroups = function () { var e = new Array(), t = this._gltf.animations; if (t) for (var n = 0, i = t; n < i.length; n++) { var r = i[n]; r._babylonAnimationGroup && e.push(r._babylonAnimationGroup); } return e; }), (e.prototype._startAnimations = function () { switch (this._parent.animationStartMode) { case f.NONE: break; case f.FIRST: 0 !== (e = this._getAnimationGroups()).length && e[0].start(!0); break; case f.ALL: for (var e, t = 0, n = (e = this._getAnimationGroups()); t < n.length; t++) { n[t].start(!0); } break; default: return void l.a.Error("Invalid animation start mode (" + this._parent.animationStartMode + ")"); } }), (e.prototype.loadNodeAsync = function (t, n, i) { var r = this; void 0 === i && (i = function () {}); var o = this._extensionsLoadNodeAsync(t, n, i); if (o) return o; if (n._babylonTransformNode) throw new Error(t + ": Invalid recursive node hierarchy"); var a = new Array(); this.logOpen(t + " " + (n.name || "")); var s = function (o) { if ((e.AddPointerMetadata(o, t), e._LoadTransform(n, o), null != n.camera)) { var s = Le.Get(t + "/camera", r._gltf.cameras, n.camera); a.push( r.loadCameraAsync("/cameras/" + s.index, s, function (e) { e.parent = o; }) ); } if (n.children) for (var c = 0, l = n.children; c < l.length; c++) { var u = l[c], h = Le.Get(t + "/children/" + u, r._gltf.nodes, u); a.push( r.loadNodeAsync("/nodes/" + h.index, h, function (e) { e.parent = o; }) ); } i(o); }; if (null == n.mesh) { var c = n.name || "node" + n.index; (this._babylonScene._blockEntityCollection = this._forAssetContainer), (n._babylonTransformNode = new Ae.a(c, this._babylonScene)), (this._babylonScene._blockEntityCollection = !1), s(n._babylonTransformNode); } else { var l = Le.Get(t + "/mesh", this._gltf.meshes, n.mesh); a.push(this._loadMeshAsync("/meshes/" + l.index, n, l, s)); } return ( this.logClose(), Promise.all(a).then(function () { return ( r._forEachPrimitive(n, function (e) { e.refreshBoundingInfo(!0); }), n._babylonTransformNode ); }) ); }), (e.prototype._loadMeshAsync = function (e, t, n, i) { var r = n.primitives; if (!r || !r.length) throw new Error(e + ": Primitives are missing"); null == r[0].index && Le.Assign(r); var o = new Array(); this.logOpen(e + " " + (n.name || "")); var a = t.name || "node" + t.index; if (1 === r.length) { var s = n.primitives[0]; o.push( this._loadMeshPrimitiveAsync(e + "/primitives/" + s.index, a, t, n, s, function (e) { (t._babylonTransformNode = e), (t._primitiveBabylonMeshes = [e]); }) ); } else { (t._babylonTransformNode = new Ae.a(a, this._babylonScene)), (t._primitiveBabylonMeshes = []); for (var c = 0, l = r; c < l.length; c++) { s = l[c]; o.push( this._loadMeshPrimitiveAsync(e + "/primitives/" + s.index, a + "_primitive" + s.index, t, n, s, function (e) { (e.parent = t._babylonTransformNode), t._primitiveBabylonMeshes.push(e); }) ); } } if (null != t.skin) { var u = Le.Get(e + "/skin", this._gltf.skins, t.skin); o.push(this._loadSkinAsync("/skins/" + u.index, t, u)); } return ( i(t._babylonTransformNode), this.logClose(), Promise.all(o).then(function () { return t._babylonTransformNode; }) ); }), (e.prototype._loadMeshPrimitiveAsync = function (t, n, i, r, o, a) { var s = this, c = this._extensionsLoadMeshPrimitiveAsync(t, n, i, r, o, a); if (c) return c; this.logOpen("" + t); var l, u, h = this._parent.createInstances && null == i.skin && !r.primitives[0].targets; if (h && o._instanceData) (l = o._instanceData.babylonSourceMesh.createInstance(n)), (u = o._instanceData.promise); else { var d = new Array(); this._babylonScene._blockEntityCollection = this._forAssetContainer; var p = new X.a(n, this._babylonScene); (this._babylonScene._blockEntityCollection = !1), (p.overrideMaterialSideOrientation = this._babylonScene.useRightHandedSystem ? N.a.CounterClockWiseSideOrientation : N.a.ClockWiseSideOrientation), this._createMorphTargets(t, i, r, o, p), d.push( this._loadVertexDataAsync(t, o, p).then(function (e) { return s._loadMorphTargetsAsync(t, o, p, e).then(function () { e.applyToMesh(p); }); }) ); var f = e._GetDrawMode(t, o.mode); if (null == o.material) { var m = this._defaultBabylonMaterialData[f]; m || ((m = this._createDefaultMaterial("__GLTFLoader._default", f)), this._parent.onMaterialLoadedObservable.notifyObservers(m), (this._defaultBabylonMaterialData[f] = m)), (p.material = m); } else { var g = Le.Get(t + "/material", this._gltf.materials, o.material); d.push( this._loadMaterialAsync("/materials/" + g.index, g, p, f, function (e) { p.material = e; }) ); } (u = Promise.all(d)), h && (o._instanceData = { babylonSourceMesh: p, promise: u }), (l = p); } return ( e.AddPointerMetadata(l, t), this._parent.onMeshLoadedObservable.notifyObservers(l), a(l), this.logClose(), u.then(function () { return l; }) ); }), (e.prototype._loadVertexDataAsync = function (e, t, n) { var i = this, r = this._extensionsLoadVertexDataAsync(e, t, n); if (r) return r; var o = t.attributes; if (!o) throw new Error(e + ": Attributes are missing"); var a = new Array(), s = new U.a(n.name, this._babylonScene); if (null == t.indices) n.isUnIndexed = !0; else { var c = Le.Get(e + "/indices", this._gltf.accessors, t.indices); a.push( this._loadIndicesAccessorAsync("/accessors/" + c.index, c).then(function (e) { s.setIndices(e); }) ); } var l = function (t, r, c) { if (null != o[t]) { (n._delayInfo = n._delayInfo || []), -1 === n._delayInfo.indexOf(r) && n._delayInfo.push(r); var l = Le.Get(e + "/attributes/" + t, i._gltf.accessors, o[t]); a.push( i._loadVertexAccessorAsync("/accessors/" + l.index, l, r).then(function (e) { s.setVerticesBuffer(e, l.count); }) ), r == G.b.MatricesIndicesExtraKind && (n.numBoneInfluencers = 8), c && c(l); } }; return ( l("POSITION", G.b.PositionKind), l("NORMAL", G.b.NormalKind), l("TANGENT", G.b.TangentKind), l("TEXCOORD_0", G.b.UVKind), l("TEXCOORD_1", G.b.UV2Kind), l("JOINTS_0", G.b.MatricesIndicesKind), l("WEIGHTS_0", G.b.MatricesWeightsKind), l("JOINTS_1", G.b.MatricesIndicesExtraKind), l("WEIGHTS_1", G.b.MatricesWeightsExtraKind), l("COLOR_0", G.b.ColorKind, function (e) { "VEC4" === e.type && (n.hasVertexAlpha = !0); }), Promise.all(a).then(function () { return s; }) ); }), (e.prototype._createMorphTargets = function (e, t, n, i, r) { if (i.targets) { if (null == t._numMorphTargets) t._numMorphTargets = i.targets.length; else if (i.targets.length !== t._numMorphTargets) throw new Error(e + ": Primitives do not have the same number of targets"); var o = n.extras ? n.extras.targetNames : null; r.morphTargetManager = new De.a(r.getScene()); for (var a = 0; a < i.targets.length; a++) { var s = t.weights ? t.weights[a] : n.weights ? n.weights[a] : 0, c = o ? o[a] : "morphTarget" + a; r.morphTargetManager.addTarget(new Ie.a(c, s, r.getScene())); } } }), (e.prototype._loadMorphTargetsAsync = function (e, t, n, i) { if (!t.targets) return Promise.resolve(); for (var r = new Array(), o = n.morphTargetManager, a = 0; a < o.numTargets; a++) { var s = o.getTarget(a); r.push(this._loadMorphTargetVertexDataAsync(e + "/targets/" + a, i, t.targets[a], s)); } return Promise.all(r).then(function () {}); }), (e.prototype._loadMorphTargetVertexDataAsync = function (e, t, n, i) { var r = this, o = new Array(), a = function (i, a, s) { if (null != n[i]) { var c = t.getVertexBuffer(a); if (c) { var l = Le.Get(e + "/" + i, r._gltf.accessors, n[i]); o.push( r._loadFloatAccessorAsync("/accessors/" + l.index, l).then(function (e) { s(c, e); }) ); } } }; return ( a("POSITION", G.b.PositionKind, function (e, t) { var n = new Float32Array(t.length); e.forEach(t.length, function (e, i) { n[i] = t[i] + e; }), i.setPositions(n); }), a("NORMAL", G.b.NormalKind, function (e, t) { var n = new Float32Array(t.length); e.forEach(n.length, function (e, i) { n[i] = t[i] + e; }), i.setNormals(n); }), a("TANGENT", G.b.TangentKind, function (e, t) { var n = new Float32Array((t.length / 3) * 4), r = 0; e.forEach((t.length / 3) * 4, function (e, i) { (i + 1) % 4 != 0 && ((n[r] = t[r] + e), r++); }), i.setTangents(n); }), Promise.all(o).then(function () {}) ); }), (e._LoadTransform = function (e, t) { if (null == e.skin) { var n = M.e.Zero(), i = M.b.Identity(), r = M.e.One(); if (e.matrix) M.a.FromArray(e.matrix).decompose(r, i, n); else e.translation && (n = M.e.FromArray(e.translation)), e.rotation && (i = M.b.FromArray(e.rotation)), e.scale && (r = M.e.FromArray(e.scale)); (t.position = n), (t.rotationQuaternion = i), (t.scaling = r); } }), (e.prototype._loadSkinAsync = function (e, t, n) { var i = this, r = this._extensionsLoadSkinAsync(e, t, n); if (r) return r; var o = function (e) { i._forEachPrimitive(t, function (t) { t.skeleton = e; }); }; if (n._data) return o(n._data.babylonSkeleton), n._data.promise; var a = "skeleton" + n.index; this._babylonScene._blockEntityCollection = this._forAssetContainer; var s = new L.a(n.name || a, a, this._babylonScene); (this._babylonScene._blockEntityCollection = !1), (s.overrideMesh = this._rootBabylonMesh), this._loadBones(e, n, s), o(s); var c = this._loadSkinInverseBindMatricesDataAsync(e, n).then(function (e) { i._updateBoneMatrices(s, e); }); return (n._data = { babylonSkeleton: s, promise: c }), c; }), (e.prototype._loadBones = function (e, t, n) { for (var i = {}, r = 0, o = t.joints; r < o.length; r++) { var a = o[r], s = Le.Get(e + "/joints/" + a, this._gltf.nodes, a); this._loadBone(s, t, n, i); } }), (e.prototype._loadBone = function (e, t, n, i) { var r = i[e.index]; if (r) return r; var o = null; e.parent && e.parent._babylonTransformNode !== this._rootBabylonMesh && (o = this._loadBone(e.parent, t, n, i)); var a = t.joints.indexOf(e.index); return (r = new w.a(e.name || "joint" + e.index, n, o, this._getNodeMatrix(e), null, null, a)), (i[e.index] = r), (e._babylonBones = e._babylonBones || []), e._babylonBones.push(r), r; }), (e.prototype._loadSkinInverseBindMatricesDataAsync = function (e, t) { if (null == t.inverseBindMatrices) return Promise.resolve(null); var n = Le.Get(e + "/inverseBindMatrices", this._gltf.accessors, t.inverseBindMatrices); return this._loadFloatAccessorAsync("/accessors/" + n.index, n); }), (e.prototype._updateBoneMatrices = function (e, t) { for (var n = 0, i = e.bones; n < i.length; n++) { var r = i[n], o = M.a.Identity(), a = r._index; t && -1 !== a && (M.a.FromArrayToRef(t, 16 * a, o), o.invertToRef(o)); var s = r.getParent(); s && o.multiplyToRef(s.getInvertedAbsoluteTransform(), o), r.updateMatrix(o, !1, !1), r._updateDifferenceMatrix(void 0, !1); } }), (e.prototype._getNodeMatrix = function (e) { return e.matrix ? M.a.FromArray(e.matrix) : M.a.Compose(e.scale ? M.e.FromArray(e.scale) : M.e.One(), e.rotation ? M.b.FromArray(e.rotation) : M.b.Identity(), e.translation ? M.e.FromArray(e.translation) : M.e.Zero()); }), (e.prototype.loadCameraAsync = function (t, n, i) { void 0 === i && (i = function () {}); var r = this._extensionsLoadCameraAsync(t, n, i); if (r) return r; var o = new Array(); this.logOpen(t + " " + (n.name || "")), (this._babylonScene._blockEntityCollection = this._forAssetContainer); var a = new D.a(n.name || "camera" + n.index, M.e.Zero(), this._babylonScene, !1); switch (((this._babylonScene._blockEntityCollection = !1), (a.rotation = new M.e(0, Math.PI, 0)), n.type)) { case "perspective": var s = n.perspective; if (!s) throw new Error(t + ": Camera perspective properties are missing"); (a.fov = s.yfov), (a.minZ = s.znear), (a.maxZ = s.zfar || Number.MAX_VALUE); break; case "orthographic": if (!n.orthographic) throw new Error(t + ": Camera orthographic properties are missing"); (a.mode = I.a.ORTHOGRAPHIC_CAMERA), (a.orthoLeft = -n.orthographic.xmag), (a.orthoRight = n.orthographic.xmag), (a.orthoBottom = -n.orthographic.ymag), (a.orthoTop = n.orthographic.ymag), (a.minZ = n.orthographic.znear), (a.maxZ = n.orthographic.zfar); break; default: throw new Error(t + ": Invalid camera type (" + n.type + ")"); } return ( e.AddPointerMetadata(a, t), this._parent.onCameraLoadedObservable.notifyObservers(a), i(a), Promise.all(o).then(function () { return a; }) ); }), (e.prototype._loadAnimationsAsync = function () { var e = this._gltf.animations; if (!e) return Promise.resolve(); for (var t = new Array(), n = 0; n < e.length; n++) { var i = e[n]; t.push(this.loadAnimationAsync("/animations/" + i.index, i)); } return Promise.all(t).then(function () {}); }), (e.prototype.loadAnimationAsync = function (e, t) { var n = this._extensionsLoadAnimationAsync(e, t); if (n) return n; this._babylonScene._blockEntityCollection = this._forAssetContainer; var i = new Ee.a(t.name || "animation" + t.index, this._babylonScene); (this._babylonScene._blockEntityCollection = !1), (t._babylonAnimationGroup = i); var r = new Array(); Le.Assign(t.channels), Le.Assign(t.samplers); for (var o = 0, a = t.channels; o < a.length; o++) { var s = a[o]; r.push(this._loadAnimationChannelAsync(e + "/channels/" + s.index, e, t, s, i)); } return Promise.all(r).then(function () { return i.normalize(0), i; }); }), (e.prototype._loadAnimationChannelAsync = function (e, t, n, i, r, o) { var a = this; if ((void 0 === o && (o = null), null == i.target.node)) return Promise.resolve(); var s = Le.Get(e + "/target/node", this._gltf.nodes, i.target.node); if (("weights" === i.target.path && !s._numMorphTargets) || ("weights" !== i.target.path && !s._babylonTransformNode)) return Promise.resolve(); var c = Le.Get(e + "/sampler", n.samplers, i.sampler); return this._loadAnimationSamplerAsync(t + "/samplers/" + i.sampler, c).then(function (t) { var n, c; switch (i.target.path) { case "translation": (n = "position"), (c = R.a.ANIMATIONTYPE_VECTOR3); break; case "rotation": (n = "rotationQuaternion"), (c = R.a.ANIMATIONTYPE_QUATERNION); break; case "scale": (n = "scaling"), (c = R.a.ANIMATIONTYPE_VECTOR3); break; case "weights": (n = "influence"), (c = R.a.ANIMATIONTYPE_FLOAT); break; default: throw new Error(e + "/target/path: Invalid value (" + i.target.path + ")"); } var l, u, h = 0; switch (n) { case "position": l = function () { var e = M.e.FromArray(t.output, h); return (h += 3), e; }; break; case "rotationQuaternion": l = function () { var e = M.b.FromArray(t.output, h); return (h += 4), e; }; break; case "scaling": l = function () { var e = M.e.FromArray(t.output, h); return (h += 3), e; }; break; case "influence": l = function () { for (var e = new Array(s._numMorphTargets), n = 0; n < s._numMorphTargets; n++) e[n] = t.output[h++]; return e; }; } switch (t.interpolation) { case "STEP": u = function (e) { return { frame: t.input[e], value: l(), interpolation: Re.a.STEP }; }; break; case "LINEAR": u = function (e) { return { frame: t.input[e], value: l() }; }; break; case "CUBICSPLINE": u = function (e) { return { frame: t.input[e], inTangent: l(), value: l(), outTangent: l() }; }; } for (var d = new Array(t.input.length), p = 0; p < t.input.length; p++) d[p] = u(p); if ("influence" === n) for ( var f = function (e) { var t = r.name + "_channel" + r.targetedAnimations.length, i = new R.a(t, n, 1, c); i.setKeys( d.map(function (t) { return { frame: t.frame, inTangent: t.inTangent ? t.inTangent[e] : void 0, value: t.value[e], outTangent: t.outTangent ? t.outTangent[e] : void 0 }; }) ), a._forEachPrimitive(s, function (t) { var n = t.morphTargetManager.getTarget(e), o = i.clone(); n.animations.push(o), r.addTargetedAnimation(o, n); }); }, m = 0; m < s._numMorphTargets; m++ ) f(m); else { var g = r.name + "_channel" + r.targetedAnimations.length, b = new R.a(g, n, 1, c); b.setKeys(d), null != o && null != o.animations ? (o.animations.push(b), r.addTargetedAnimation(b, o)) : (s._babylonTransformNode.animations.push(b), r.addTargetedAnimation(b, s._babylonTransformNode)); } }); }), (e.prototype._loadAnimationSamplerAsync = function (e, t) { if (t._data) return t._data; var n = t.interpolation || "LINEAR"; switch (n) { case "STEP": case "LINEAR": case "CUBICSPLINE": break; default: throw new Error(e + "/interpolation: Invalid value (" + t.interpolation + ")"); } var i = Le.Get(e + "/input", this._gltf.accessors, t.input), r = Le.Get(e + "/output", this._gltf.accessors, t.output); return ( (t._data = Promise.all([this._loadFloatAccessorAsync("/accessors/" + i.index, i), this._loadFloatAccessorAsync("/accessors/" + r.index, r)]).then(function (e) { var t = e[0], i = e[1]; return { input: t, interpolation: n, output: i }; })), t._data ); }), (e.prototype._loadBufferAsync = function (e, t, n, i) { var r = this._extensionsLoadBufferAsync(e, t, n, i); if (r) return r; if (!t._data) if (t.uri) t._data = this.loadUriAsync(e + "/uri", t, t.uri); else { if (!this._bin) throw new Error(e + ": Uri is missing or the binary glTF is missing its binary chunk"); t._data = this._bin.readAsync(0, t.byteLength); } return t._data.then(function (t) { try { return new Uint8Array(t.buffer, t.byteOffset + n, i); } catch (t) { throw new Error(e + ": " + t.message); } }); }), (e.prototype.loadBufferViewAsync = function (e, t) { var n = this._extensionsLoadBufferViewAsync(e, t); if (n) return n; if (t._data) return t._data; var i = Le.Get(e + "/buffer", this._gltf.buffers, t.buffer); return (t._data = this._loadBufferAsync("/buffers/" + i.index, i, t.byteOffset || 0, t.byteLength)), t._data; }), (e.prototype._loadAccessorAsync = function (t, n, i) { var r = this; if (n._data) return n._data; var o = e._GetNumComponents(t, n.type), a = o * G.b.GetTypeByteLength(n.componentType), s = o * n.count; if (null == n.bufferView) n._data = Promise.resolve(new i(s)); else { var c = Le.Get(t + "/bufferView", this._gltf.bufferViews, n.bufferView); n._data = this.loadBufferViewAsync("/bufferViews/" + c.index, c).then(function (r) { if (5126 !== n.componentType || n.normalized) { var l = new i(s); return ( G.b.ForEach(r, n.byteOffset || 0, c.byteStride || a, o, n.componentType, l.length, n.normalized || !1, function (e, t) { l[t] = e; }), l ); } return e._GetTypedArray(t, n.componentType, r, n.byteOffset, s); }); } if (n.sparse) { var l = n.sparse; n._data = n._data.then(function (s) { var c = s, u = Le.Get(t + "/sparse/indices/bufferView", r._gltf.bufferViews, l.indices.bufferView), h = Le.Get(t + "/sparse/values/bufferView", r._gltf.bufferViews, l.values.bufferView); return Promise.all([r.loadBufferViewAsync("/bufferViews/" + u.index, u), r.loadBufferViewAsync("/bufferViews/" + h.index, h)]).then(function (r) { var s, u = r[0], h = r[1], d = e._GetTypedArray(t + "/sparse/indices", l.indices.componentType, u, l.indices.byteOffset, l.count), p = o * l.count; if (5126 !== n.componentType || n.normalized) { var f = e._GetTypedArray(t + "/sparse/values", n.componentType, h, l.values.byteOffset, p); (s = new i(p)), G.b.ForEach(f, 0, a, o, n.componentType, s.length, n.normalized || !1, function (e, t) { s[t] = e; }); } else s = e._GetTypedArray(t + "/sparse/values", n.componentType, h, l.values.byteOffset, p); for (var m = 0, g = 0; g < d.length; g++) for (var b = d[g] * o, _ = 0; _ < o; _++) c[b++] = s[m++]; return c; }); }); } return n._data; }), (e.prototype._loadFloatAccessorAsync = function (e, t) { return this._loadAccessorAsync(e, t, Float32Array); }), (e.prototype._loadIndicesAccessorAsync = function (t, n) { if ("SCALAR" !== n.type) throw new Error(t + "/type: Invalid value " + n.type); if (5121 !== n.componentType && 5123 !== n.componentType && 5125 !== n.componentType) throw new Error(t + "/componentType: Invalid value " + n.componentType); if (n._data) return n._data; if (n.sparse) { var i = e._GetTypedArrayConstructor(t + "/componentType", n.componentType); n._data = this._loadAccessorAsync(t, n, i); } else { var r = Le.Get(t + "/bufferView", this._gltf.bufferViews, n.bufferView); n._data = this.loadBufferViewAsync("/bufferViews/" + r.index, r).then(function (i) { return e._GetTypedArray(t, n.componentType, i, n.byteOffset, n.count); }); } return n._data; }), (e.prototype._loadVertexBufferViewAsync = function (e, t) { var n = this; return ( e._babylonBuffer || (e._babylonBuffer = this.loadBufferViewAsync("/bufferViews/" + e.index, e).then(function (e) { return new G.a(n._babylonScene.getEngine(), e, !1); })), e._babylonBuffer ); }), (e.prototype._loadVertexAccessorAsync = function (t, n, i) { var r = this; if (n._babylonVertexBuffer) return n._babylonVertexBuffer; if (n.sparse) n._babylonVertexBuffer = this._loadFloatAccessorAsync("/accessors/" + n.index, n).then(function (e) { return new G.b(r._babylonScene.getEngine(), e, i, !1); }); else if (n.byteOffset && n.byteOffset % G.b.GetTypeByteLength(n.componentType) != 0) l.a.Warn("Accessor byte offset is not a multiple of component type byte length"), (n._babylonVertexBuffer = this._loadFloatAccessorAsync("/accessors/" + n.index, n).then(function (e) { return new G.b(r._babylonScene.getEngine(), e, i, !1); })); else if (i === G.b.MatricesIndicesKind || i === G.b.MatricesIndicesExtraKind) n._babylonVertexBuffer = this._loadFloatAccessorAsync("/accessors/" + n.index, n).then(function (e) { return new G.b(r._babylonScene.getEngine(), e, i, !1); }); else { var o = Le.Get(t + "/bufferView", this._gltf.bufferViews, n.bufferView); n._babylonVertexBuffer = this._loadVertexBufferViewAsync(o, i).then(function (a) { var s = e._GetNumComponents(t, n.type); return new G.b(r._babylonScene.getEngine(), a, i, !1, !1, o.byteStride, !1, n.byteOffset, s, n.componentType, n.normalized, !0); }); } return n._babylonVertexBuffer; }), (e.prototype._loadMaterialMetallicRoughnessPropertiesAsync = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); var i = new Array(); return ( t && (t.baseColorFactor ? ((n.albedoColor = A.a.FromArray(t.baseColorFactor)), (n.alpha = t.baseColorFactor[3])) : (n.albedoColor = A.a.White()), (n.metallic = null == t.metallicFactor ? 1 : t.metallicFactor), (n.roughness = null == t.roughnessFactor ? 1 : t.roughnessFactor), t.baseColorTexture && i.push( this.loadTextureInfoAsync(e + "/baseColorTexture", t.baseColorTexture, function (e) { (e.name = n.name + " (Base Color)"), (n.albedoTexture = e); }) ), t.metallicRoughnessTexture && (i.push( this.loadTextureInfoAsync(e + "/metallicRoughnessTexture", t.metallicRoughnessTexture, function (e) { (e.name = n.name + " (Metallic Roughness)"), (n.metallicTexture = e); }) ), (n.useMetallnessFromMetallicTextureBlue = !0), (n.useRoughnessFromMetallicTextureGreen = !0), (n.useRoughnessFromMetallicTextureAlpha = !1))), Promise.all(i).then(function () {}) ); }), (e.prototype._loadMaterialAsync = function (t, n, i, r, o) { void 0 === o && (o = function () {}); var a = this._extensionsLoadMaterialAsync(t, n, i, r, o); if (a) return a; n._data = n._data || {}; var s = n._data[r]; if (!s) { this.logOpen(t + " " + (n.name || "")); var c = this.createMaterial(t, n, r); (s = { babylonMaterial: c, babylonMeshes: [], promise: this.loadMaterialPropertiesAsync(t, n, c) }), (n._data[r] = s), e.AddPointerMetadata(c, t), this._parent.onMaterialLoadedObservable.notifyObservers(c), this.logClose(); } return ( s.babylonMeshes.push(i), i.onDisposeObservable.addOnce(function () { var e = s.babylonMeshes.indexOf(i); -1 !== e && s.babylonMeshes.splice(e, 1); }), o(s.babylonMaterial), s.promise.then(function () { return s.babylonMaterial; }) ); }), (e.prototype._createDefaultMaterial = function (e, t) { this._babylonScene._blockEntityCollection = this._forAssetContainer; var n = new Me.a(e, this._babylonScene); return ( (this._babylonScene._blockEntityCollection = !1), (n.fillMode = t), (n.enableSpecularAntiAliasing = !0), (n.useRadianceOverAlpha = !this._parent.transparencyAsCoverage), (n.useSpecularOverAlpha = !this._parent.transparencyAsCoverage), (n.transparencyMode = Me.a.PBRMATERIAL_OPAQUE), (n.metallic = 1), (n.roughness = 1), n ); }), (e.prototype.createMaterial = function (e, t, n) { var i = this._extensionsCreateMaterial(e, t, n); if (i) return i; var r = t.name || "material" + t.index; return this._createDefaultMaterial(r, n); }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this._extensionsLoadMaterialPropertiesAsync(e, t, n); if (i) return i; var r = new Array(); return ( r.push(this.loadMaterialBasePropertiesAsync(e, t, n)), t.pbrMetallicRoughness && r.push(this._loadMaterialMetallicRoughnessPropertiesAsync(e + "/pbrMetallicRoughness", t.pbrMetallicRoughness, n)), this.loadMaterialAlphaProperties(e, t, n), Promise.all(r).then(function () {}) ); }), (e.prototype.loadMaterialBasePropertiesAsync = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); var i = new Array(); return ( (n.emissiveColor = t.emissiveFactor ? A.a.FromArray(t.emissiveFactor) : new A.a(0, 0, 0)), t.doubleSided && ((n.backFaceCulling = !1), (n.twoSidedLighting = !0)), t.normalTexture && (i.push( this.loadTextureInfoAsync(e + "/normalTexture", t.normalTexture, function (e) { (e.name = n.name + " (Normal)"), (n.bumpTexture = e); }) ), (n.invertNormalMapX = !this._babylonScene.useRightHandedSystem), (n.invertNormalMapY = this._babylonScene.useRightHandedSystem), null != t.normalTexture.scale && (n.bumpTexture.level = t.normalTexture.scale), (n.forceIrradianceInFragment = !0)), t.occlusionTexture && (i.push( this.loadTextureInfoAsync(e + "/occlusionTexture", t.occlusionTexture, function (e) { (e.name = n.name + " (Occlusion)"), (n.ambientTexture = e); }) ), (n.useAmbientInGrayScale = !0), null != t.occlusionTexture.strength && (n.ambientTextureStrength = t.occlusionTexture.strength)), t.emissiveTexture && i.push( this.loadTextureInfoAsync(e + "/emissiveTexture", t.emissiveTexture, function (e) { (e.name = n.name + " (Emissive)"), (n.emissiveTexture = e); }) ), Promise.all(i).then(function () {}) ); }), (e.prototype.loadMaterialAlphaProperties = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); switch (t.alphaMode || "OPAQUE") { case "OPAQUE": n.transparencyMode = Me.a.PBRMATERIAL_OPAQUE; break; case "MASK": (n.transparencyMode = Me.a.PBRMATERIAL_ALPHATEST), (n.alphaCutOff = null == t.alphaCutoff ? 0.5 : t.alphaCutoff), n.albedoTexture && (n.albedoTexture.hasAlpha = !0); break; case "BLEND": (n.transparencyMode = Me.a.PBRMATERIAL_ALPHABLEND), n.albedoTexture && ((n.albedoTexture.hasAlpha = !0), (n.useAlphaFromAlbedoTexture = !0)); break; default: throw new Error(e + "/alphaMode: Invalid value (" + t.alphaMode + ")"); } }), (e.prototype.loadTextureInfoAsync = function (t, n, i) { var r = this; void 0 === i && (i = function () {}); var o = this._extensionsLoadTextureInfoAsync(t, n, i); if (o) return o; if ((this.logOpen("" + t), n.texCoord >= 2)) throw new Error(t + "/texCoord: Invalid value (" + n.texCoord + ")"); var a = Le.Get(t + "/index", this._gltf.textures, n.index), s = this._loadTextureAsync("/textures/" + n.index, a, function (o) { (o.coordinatesIndex = n.texCoord || 0), e.AddPointerMetadata(o, t), r._parent.onTextureLoadedObservable.notifyObservers(o), i(o); }); return this.logClose(), s; }), (e.prototype._loadTextureAsync = function (t, n, i) { void 0 === i && (i = function () {}); var r = this._extensionsLoadTextureAsync(t, n, i); if (r) return r; this.logOpen(t + " " + (n.name || "")); var o = null == n.sampler ? e.DefaultSampler : Le.Get(t + "/sampler", this._gltf.samplers, n.sampler), a = Le.Get(t + "/source", this._gltf.images, n.source), s = this._createTextureAsync(t, o, a, i); return this.logClose(), s; }), (e.prototype._createTextureAsync = function (e, t, n, i) { var r = this; void 0 === i && (i = function () {}); var o = this._loadSampler("/samplers/" + t.index, t), a = new Array(), s = new Oe.a(); this._babylonScene._blockEntityCollection = this._forAssetContainer; var c = new B.a( null, this._babylonScene, o.noMipMaps, !1, o.samplingMode, function () { r._disposed || s.resolve(); }, function (t, n) { r._disposed || s.reject(new Error(e + ": " + (n && n.message ? n.message : t || "Failed to load texture"))); }, void 0, void 0, void 0, n.mimeType ); return ( (this._babylonScene._blockEntityCollection = !1), a.push(s.promise), a.push( this.loadImageAsync("/images/" + n.index, n).then(function (e) { var t = n.uri || r._fileName + "#image" + n.index, i = "data:" + r._uniqueRootUrl + t; c.updateURL(i, e); }) ), (c.wrapU = o.wrapU), (c.wrapV = o.wrapV), i(c), Promise.all(a).then(function () { return c; }) ); }), (e.prototype._loadSampler = function (t, n) { return ( n._data || (n._data = { noMipMaps: 9728 === n.minFilter || 9729 === n.minFilter, samplingMode: e._GetTextureSamplingMode(t, n), wrapU: e._GetTextureWrapMode(t + "/wrapS", n.wrapS), wrapV: e._GetTextureWrapMode(t + "/wrapT", n.wrapT), }), n._data ); }), (e.prototype.loadImageAsync = function (e, t) { if (!t._data) { if ((this.logOpen(e + " " + (t.name || "")), t.uri)) t._data = this.loadUriAsync(e + "/uri", t, t.uri); else { var n = Le.Get(e + "/bufferView", this._gltf.bufferViews, t.bufferView); t._data = this.loadBufferViewAsync("/bufferViews/" + n.index, n); } this.logClose(); } return t._data; }), (e.prototype.loadUriAsync = function (t, n, i) { var r = this, o = this._extensionsLoadUriAsync(t, n, i); if (o) return o; if (!e._ValidateUri(i)) throw new Error(t + ": '" + i + "' is invalid"); if (a.b.IsBase64(i)) { var s = new Uint8Array(a.b.DecodeBase64(i)); return this.log("Decoded " + i.substr(0, 64) + "... (" + s.length + " bytes)"), Promise.resolve(s); } return ( this.log("Loading " + i), this._parent.preprocessUrlAsync(this._rootUrl + i).then(function (e) { return new Promise(function (n, o) { if (!r._disposed) { var s = a.b.LoadFile( e, function (e) { if (!r._disposed) { var t = new Uint8Array(e); r.log("Loaded " + i + " (" + t.length + " bytes)"), n(t); } }, function (e) { if (!r._disposed && (s && ((s._lengthComputable = e.lengthComputable), (s._loaded = e.loaded), (s._total = e.total)), r._state === m.LOADING)) try { r._onProgress(); } catch (e) { o(e); } }, r._babylonScene.offlineProvider, !0, function (e, n) { r._disposed || o(new we.b(t + ": Failed to load '" + i + "'" + (e ? ": " + e.status + " " + e.statusText : ""), e)); } ); r._requests.push(s); } }); }) ); }), (e.prototype._onProgress = function () { if (this._progressCallback) { for (var e = !0, t = 0, n = 0, i = 0, r = this._requests; i < r.length; i++) { var o = r[i]; if (void 0 === o._lengthComputable || void 0 === o._loaded || void 0 === o._total) return; (e = e && o._lengthComputable), (t += o._loaded), (n += o._total); } this._progressCallback(new s.c(e, t, e ? n : 0)); } }), (e.AddPointerMetadata = function (e, t) { var n = (e.metadata = e.metadata || {}), i = (n.gltf = n.gltf || {}); (i.pointers = i.pointers || []).push(t); }), (e._GetTextureWrapMode = function (e, t) { switch ((t = null == t ? 10497 : t)) { case 33071: return B.a.CLAMP_ADDRESSMODE; case 33648: return B.a.MIRROR_ADDRESSMODE; case 10497: return B.a.WRAP_ADDRESSMODE; default: return l.a.Warn(e + ": Invalid value (" + t + ")"), B.a.WRAP_ADDRESSMODE; } }), (e._GetTextureSamplingMode = function (e, t) { var n = null == t.magFilter ? 9729 : t.magFilter, i = null == t.minFilter ? 9987 : t.minFilter; if (9729 === n) switch (i) { case 9728: return B.a.LINEAR_NEAREST; case 9729: return B.a.LINEAR_LINEAR; case 9984: return B.a.LINEAR_NEAREST_MIPNEAREST; case 9985: return B.a.LINEAR_LINEAR_MIPNEAREST; case 9986: return B.a.LINEAR_NEAREST_MIPLINEAR; case 9987: return B.a.LINEAR_LINEAR_MIPLINEAR; default: return l.a.Warn(e + "/minFilter: Invalid value (" + i + ")"), B.a.LINEAR_LINEAR_MIPLINEAR; } else switch ((9728 !== n && l.a.Warn(e + "/magFilter: Invalid value (" + n + ")"), i)) { case 9728: return B.a.NEAREST_NEAREST; case 9729: return B.a.NEAREST_LINEAR; case 9984: return B.a.NEAREST_NEAREST_MIPNEAREST; case 9985: return B.a.NEAREST_LINEAR_MIPNEAREST; case 9986: return B.a.NEAREST_NEAREST_MIPLINEAR; case 9987: return B.a.NEAREST_LINEAR_MIPLINEAR; default: return l.a.Warn(e + "/minFilter: Invalid value (" + i + ")"), B.a.NEAREST_NEAREST_MIPNEAREST; } }), (e._GetTypedArrayConstructor = function (e, t) { switch (t) { case 5120: return Int8Array; case 5121: return Uint8Array; case 5122: return Int16Array; case 5123: return Uint16Array; case 5125: return Uint32Array; case 5126: return Float32Array; default: throw new Error(e + ": Invalid component type " + t); } }), (e._GetTypedArray = function (t, n, i, r, o) { var a = i.buffer; r = i.byteOffset + (r || 0); var s = e._GetTypedArrayConstructor(t + "/componentType", n); try { return new s(a, r, o); } catch (e) { throw new Error(t + ": " + e); } }), (e._GetNumComponents = function (e, t) { switch (t) { case "SCALAR": return 1; case "VEC2": return 2; case "VEC3": return 3; case "VEC4": case "MAT2": return 4; case "MAT3": return 9; case "MAT4": return 16; } throw new Error(e + ": Invalid type (" + t + ")"); }), (e._ValidateUri = function (e) { return a.b.IsBase64(e) || -1 === e.indexOf(".."); }), (e._GetDrawMode = function (e, t) { switch ((null == t && (t = 4), t)) { case 0: return N.a.PointListDrawMode; case 1: return N.a.LineListDrawMode; case 2: return N.a.LineLoopDrawMode; case 3: return N.a.LineStripDrawMode; case 4: return N.a.TriangleFillMode; case 5: return N.a.TriangleStripDrawMode; case 6: return N.a.TriangleFanDrawMode; } throw new Error(e + ": Invalid mesh primitive mode (" + t + ")"); }), (e.prototype._compileMaterialsAsync = function () { var e = this; this._parent._startPerformanceCounter("Compile materials"); var t = new Array(); if (this._gltf.materials) for (var n = 0, i = this._gltf.materials; n < i.length; n++) { var r = i[n]; if (r._data) for (var o in r._data) for (var a = r._data[o], s = 0, c = a.babylonMeshes; s < c.length; s++) { var l = c[s]; l.computeWorldMatrix(!0); var u = a.babylonMaterial; t.push(u.forceCompilationAsync(l)), t.push(u.forceCompilationAsync(l, { useInstances: !0 })), this._parent.useClipPlane && (t.push(u.forceCompilationAsync(l, { clipPlane: !0 })), t.push(u.forceCompilationAsync(l, { clipPlane: !0, useInstances: !0 }))); } } return Promise.all(t).then(function () { e._parent._endPerformanceCounter("Compile materials"); }); }), (e.prototype._compileShadowGeneratorsAsync = function () { var e = this; this._parent._startPerformanceCounter("Compile shadow generators"); for (var t = new Array(), n = 0, i = this._babylonScene.lights; n < i.length; n++) { var r = i[n].getShadowGenerator(); r && t.push(r.forceCompilationAsync()); } return Promise.all(t).then(function () { e._parent._endPerformanceCounter("Compile shadow generators"); }); }), (e.prototype._forEachExtensions = function (e) { for (var t = 0, n = this._extensions; t < n.length; t++) { var i = n[t]; i.enabled && e(i); } }), (e.prototype._applyExtensions = function (e, t, n) { for (var i = 0, r = this._extensions; i < r.length; i++) { var o = r[i]; if (o.enabled) { var a = o.name + "." + t, s = e; s._activeLoaderExtensionFunctions = s._activeLoaderExtensionFunctions || {}; var c = s._activeLoaderExtensionFunctions; if (!c[a]) { c[a] = !0; try { var l = n(o); if (l) return l; } finally { delete c[a]; } } } } return null; }), (e.prototype._extensionsOnLoading = function () { this._forEachExtensions(function (e) { return e.onLoading && e.onLoading(); }); }), (e.prototype._extensionsOnReady = function () { this._forEachExtensions(function (e) { return e.onReady && e.onReady(); }); }), (e.prototype._extensionsLoadSceneAsync = function (e, t) { return this._applyExtensions(t, "loadScene", function (n) { return n.loadSceneAsync && n.loadSceneAsync(e, t); }); }), (e.prototype._extensionsLoadNodeAsync = function (e, t, n) { return this._applyExtensions(t, "loadNode", function (i) { return i.loadNodeAsync && i.loadNodeAsync(e, t, n); }); }), (e.prototype._extensionsLoadCameraAsync = function (e, t, n) { return this._applyExtensions(t, "loadCamera", function (i) { return i.loadCameraAsync && i.loadCameraAsync(e, t, n); }); }), (e.prototype._extensionsLoadVertexDataAsync = function (e, t, n) { return this._applyExtensions(t, "loadVertexData", function (i) { return i._loadVertexDataAsync && i._loadVertexDataAsync(e, t, n); }); }), (e.prototype._extensionsLoadMeshPrimitiveAsync = function (e, t, n, i, r, o) { return this._applyExtensions(r, "loadMeshPrimitive", function (a) { return a._loadMeshPrimitiveAsync && a._loadMeshPrimitiveAsync(e, t, n, i, r, o); }); }), (e.prototype._extensionsLoadMaterialAsync = function (e, t, n, i, r) { return this._applyExtensions(t, "loadMaterial", function (o) { return o._loadMaterialAsync && o._loadMaterialAsync(e, t, n, i, r); }); }), (e.prototype._extensionsCreateMaterial = function (e, t, n) { return this._applyExtensions(t, "createMaterial", function (i) { return i.createMaterial && i.createMaterial(e, t, n); }); }), (e.prototype._extensionsLoadMaterialPropertiesAsync = function (e, t, n) { return this._applyExtensions(t, "loadMaterialProperties", function (i) { return i.loadMaterialPropertiesAsync && i.loadMaterialPropertiesAsync(e, t, n); }); }), (e.prototype._extensionsLoadTextureInfoAsync = function (e, t, n) { return this._applyExtensions(t, "loadTextureInfo", function (i) { return i.loadTextureInfoAsync && i.loadTextureInfoAsync(e, t, n); }); }), (e.prototype._extensionsLoadTextureAsync = function (e, t, n) { return this._applyExtensions(t, "loadTexture", function (i) { return i._loadTextureAsync && i._loadTextureAsync(e, t, n); }); }), (e.prototype._extensionsLoadAnimationAsync = function (e, t) { return this._applyExtensions(t, "loadAnimation", function (n) { return n.loadAnimationAsync && n.loadAnimationAsync(e, t); }); }), (e.prototype._extensionsLoadSkinAsync = function (e, t, n) { return this._applyExtensions(n, "loadSkin", function (i) { return i._loadSkinAsync && i._loadSkinAsync(e, t, n); }); }), (e.prototype._extensionsLoadUriAsync = function (e, t, n) { return this._applyExtensions(t, "loadUri", function (i) { return i._loadUriAsync && i._loadUriAsync(e, t, n); }); }), (e.prototype._extensionsLoadBufferViewAsync = function (e, t) { return this._applyExtensions(t, "loadBufferView", function (n) { return n.loadBufferViewAsync && n.loadBufferViewAsync(e, t); }); }), (e.prototype._extensionsLoadBufferAsync = function (e, t, n, i) { return this._applyExtensions(t, "loadBuffer", function (r) { return r.loadBufferAsync && r.loadBufferAsync(e, t, n, i); }); }), (e.LoadExtensionAsync = function (e, t, n, i) { if (!t.extensions) return null; var r = t.extensions[n]; return r ? i(e + "/extensions/" + n, r) : null; }), (e.LoadExtraAsync = function (e, t, n, i) { if (!t.extras) return null; var r = t.extras[n]; return r ? i(e + "/extras/" + n, r) : null; }), (e.prototype.isExtensionUsed = function (e) { return !!this._gltf.extensionsUsed && -1 !== this._gltf.extensionsUsed.indexOf(e); }), (e.prototype.logOpen = function (e) { this._parent._logOpen(e); }), (e.prototype.logClose = function () { this._parent._logClose(); }), (e.prototype.log = function (e) { this._parent._log(e); }), (e.prototype.startPerformanceCounter = function (e) { this._parent._startPerformanceCounter(e); }), (e.prototype.endPerformanceCounter = function (e) { this._parent._endPerformanceCounter(e); }), (e._RegisteredExtensions = {}), (e.DefaultSampler = { index: -1 }), e ); })(); b._CreateGLTF2Loader = function (e) { return new Fe(e); }; var Ne = n(15), ke = n(108), ze = n(201), je = "EXT_lights_image_based", Be = (function () { function e(e) { (this.name = je), (this._loader = e), (this.enabled = this._loader.isExtensionUsed(je)); } return ( (e.prototype.dispose = function () { delete this._loader, delete this._lights; }), (e.prototype.onLoading = function () { var e = this._loader.gltf.extensions; if (e && e[this.name]) { var t = e[this.name]; this._lights = t.lights; } }), (e.prototype.loadSceneAsync = function (e, t) { var n = this; return Fe.LoadExtensionAsync(e, t, this.name, function (i, r) { var o = new Array(); o.push(n._loader.loadSceneAsync(e, t)), n._loader.logOpen("" + i); var a = Le.Get(i + "/light", n._lights, r.light); return ( o.push( n._loadLightAsync("#/extensions/" + n.name + "/lights/" + r.light, a).then(function (e) { n._loader.babylonScene.environmentTexture = e; }) ), n._loader.logClose(), Promise.all(o).then(function () {}) ); }); }), (e.prototype._loadLightAsync = function (e, t) { var n = this; if (!t._loaded) { var i = new Array(); this._loader.logOpen("" + e); for ( var r = new Array(t.specularImages.length), o = function (n) { var o = t.specularImages[n]; r[n] = new Array(o.length); for ( var s = function (t) { var s = e + "/specularImages/" + n + "/" + t; a._loader.logOpen("" + s); var c = o[t], l = Le.Get(s, a._loader.gltf.images, c); i.push( a._loader.loadImageAsync("#/images/" + c, l).then(function (e) { r[n][t] = e; }) ), a._loader.logClose(); }, c = 0; c < o.length; c++ ) s(c); }, a = this, s = 0; s < t.specularImages.length; s++ ) o(s); this._loader.logClose(), (t._loaded = Promise.all(i).then(function () { var e = new ze.a(n._loader.babylonScene, null, t.specularImageSize); if (((t._babylonTexture = e), null != t.intensity && (e.level = t.intensity), t.rotation)) { var i = M.b.FromArray(t.rotation); n._loader.babylonScene.useRightHandedSystem || (i = M.b.Inverse(i)), M.a.FromQuaternionToRef(i, e.getReflectionTextureMatrix()); } var o = ke.a.FromArray(t.irradianceCoefficients); o.scaleInPlace(t.intensity), o.convertIrradianceToLambertianRadiance(); var a = ke.b.FromHarmonics(o), s = (r.length - 1) / Ne.a.Log2(t.specularImageSize); return e.updateRGBDAsync(r, a, s); })); } return t._loaded.then(function () { return t._babylonTexture; }); }), e ); })(); Fe.RegisterExtension(je, function (e) { return new Be(e); }); var Ve = n(167), Ge = (function () { function e(e) { (this.name = "KHR_draco_mesh_compression"), (this._loader = e), (this.enabled = Ve.a.DecoderAvailable && this._loader.isExtensionUsed("KHR_draco_mesh_compression")); } return ( (e.prototype.dispose = function () { delete this.dracoCompression, delete this._loader; }), (e.prototype._loadVertexDataAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { if (null != t.mode) { if (5 !== t.mode && 4 !== t.mode) throw new Error(e + ": Unsupported mode " + t.mode); if (5 === t.mode) throw new Error(e + ": Mode " + t.mode + " is not currently supported"); } var a = {}, s = function (e, t) { var i = o.attributes[e]; null != i && ((n._delayInfo = n._delayInfo || []), -1 === n._delayInfo.indexOf(t) && n._delayInfo.push(t), (a[t] = i)); }; s("POSITION", G.b.PositionKind), s("NORMAL", G.b.NormalKind), s("TANGENT", G.b.TangentKind), s("TEXCOORD_0", G.b.UVKind), s("TEXCOORD_1", G.b.UV2Kind), s("JOINTS_0", G.b.MatricesIndicesKind), s("WEIGHTS_0", G.b.MatricesWeightsKind), s("COLOR_0", G.b.ColorKind); var c = Le.Get(r, i._loader.gltf.bufferViews, o.bufferView); return ( c._dracoBabylonGeometry || (c._dracoBabylonGeometry = i._loader.loadBufferViewAsync("#/bufferViews/" + c.index, c).then(function (t) { return (i.dracoCompression || Ve.a.Default) .decodeMeshAsync(t, a) .then(function (e) { var t = new U.a(n.name, i._loader.babylonScene); return e.applyToGeometry(t), t; }) .catch(function (t) { throw new Error(e + ": " + t.message); }); })), c._dracoBabylonGeometry ); }); }), e ); })(); Fe.RegisterExtension("KHR_draco_mesh_compression", function (e) { return new Ge(e); }); var Ue, He = n(57); !(function (e) { (e.DIRECTIONAL = "directional"), (e.POINT = "point"), (e.SPOT = "spot"); })(Ue || (Ue = {})); var We = (function () { function e(e) { (this.name = "KHR_lights_punctual"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_lights_punctual")); } return ( (e.prototype.dispose = function () { delete this._loader, delete this._lights; }), (e.prototype.onLoading = function () { var e = this._loader.gltf.extensions; if (e && e[this.name]) { var t = e[this.name]; this._lights = t.lights; } }), (e.prototype.loadNodeAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { return i._loader.loadNodeAsync(e, t, function (e) { var t, a = Le.Get(r, i._lights, o.light), s = a.name || e.name; switch (((i._loader.babylonScene._blockEntityCollection = i._loader._forAssetContainer), a.type)) { case Ue.DIRECTIONAL: t = new K.a(s, M.e.Backward(), i._loader.babylonScene); break; case Ue.POINT: t = new Z.a(s, M.e.Zero(), i._loader.babylonScene); break; case Ue.SPOT: var c = new q.a(s, M.e.Zero(), M.e.Backward(), 0, 1, i._loader.babylonScene); (c.angle = 2 * ((a.spot && a.spot.outerConeAngle) || Math.PI / 4)), (c.innerAngle = 2 * ((a.spot && a.spot.innerConeAngle) || 0)), (t = c); break; default: throw ((i._loader.babylonScene._blockEntityCollection = !1), new Error(r + ": Invalid light type (" + a.type + ")")); } (i._loader.babylonScene._blockEntityCollection = !1), (t.falloffType = He.a.FALLOFF_GLTF), (t.diffuse = a.color ? A.a.FromArray(a.color) : A.a.White()), (t.intensity = null == a.intensity ? 1 : a.intensity), (t.range = null == a.range ? Number.MAX_VALUE : a.range), (t.parent = e), i._loader._babylonLights.push(t), Fe.AddPointerMetadata(t, r), n(e); }); }); }), e ); })(); Fe.RegisterExtension("KHR_lights_punctual", function (e) { return new We(e); }); var Xe = (function () { function e(e) { (this.name = "KHR_materials_pbrSpecularGlossiness"), (this.order = 200), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_pbrSpecularGlossiness")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { var a = new Array(); return a.push(i._loader.loadMaterialBasePropertiesAsync(e, t, n)), a.push(i._loadSpecularGlossinessPropertiesAsync(r, t, o, n)), i._loader.loadMaterialAlphaProperties(e, t, n), Promise.all(a).then(function () {}); }); }), (e.prototype._loadSpecularGlossinessPropertiesAsync = function (e, t, n, i) { if (!(i instanceof Me.a)) throw new Error(e + ": Material type not supported"); var r = new Array(); return ( (i.metallic = null), (i.roughness = null), n.diffuseFactor ? ((i.albedoColor = A.a.FromArray(n.diffuseFactor)), (i.alpha = n.diffuseFactor[3])) : (i.albedoColor = A.a.White()), (i.reflectivityColor = n.specularFactor ? A.a.FromArray(n.specularFactor) : A.a.White()), (i.microSurface = null == n.glossinessFactor ? 1 : n.glossinessFactor), n.diffuseTexture && r.push( this._loader.loadTextureInfoAsync(e + "/diffuseTexture", n.diffuseTexture, function (e) { (e.name = i.name + " (Diffuse)"), (i.albedoTexture = e); }) ), n.specularGlossinessTexture && (r.push( this._loader.loadTextureInfoAsync(e + "/specularGlossinessTexture", n.specularGlossinessTexture, function (e) { (e.name = i.name + " (Specular Glossiness)"), (i.reflectivityTexture = e); }) ), (i.reflectivityTexture.hasAlpha = !0), (i.useMicroSurfaceFromReflectivityMapAlpha = !0)), Promise.all(r).then(function () {}) ); }), e ); })(); Fe.RegisterExtension("KHR_materials_pbrSpecularGlossiness", function (e) { return new Xe(e); }); var Ye = (function () { function e(e) { (this.name = "KHR_materials_unlit"), (this.order = 210), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_unlit")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function () { return i._loadUnlitPropertiesAsync(e, t, n); }); }), (e.prototype._loadUnlitPropertiesAsync = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); var i = new Array(); n.unlit = !0; var r = t.pbrMetallicRoughness; return ( r && (r.baseColorFactor ? ((n.albedoColor = A.a.FromArray(r.baseColorFactor)), (n.alpha = r.baseColorFactor[3])) : (n.albedoColor = A.a.White()), r.baseColorTexture && i.push( this._loader.loadTextureInfoAsync(e + "/baseColorTexture", r.baseColorTexture, function (e) { (e.name = n.name + " (Base Color)"), (n.albedoTexture = e); }) )), t.doubleSided && ((n.backFaceCulling = !1), (n.twoSidedLighting = !0)), this._loader.loadMaterialAlphaProperties(e, t, n), Promise.all(i).then(function () {}) ); }), e ); })(); Fe.RegisterExtension("KHR_materials_unlit", function (e) { return new Ye(e); }); var Ke = (function () { function e(e) { (this.name = "KHR_materials_clearcoat"), (this.order = 190), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_clearcoat")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { var a = new Array(); return a.push(i._loader.loadMaterialPropertiesAsync(e, t, n)), a.push(i._loadClearCoatPropertiesAsync(r, o, n)), Promise.all(a).then(function () {}); }); }), (e.prototype._loadClearCoatPropertiesAsync = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); var i = new Array(); return ( (n.clearCoat.isEnabled = !0), null != t.clearcoatFactor ? (n.clearCoat.intensity = t.clearcoatFactor) : (n.clearCoat.intensity = 0), t.clearcoatTexture && i.push( this._loader.loadTextureInfoAsync(e + "/clearcoatTexture", t.clearcoatTexture, function (e) { (e.name = n.name + " (ClearCoat Intensity)"), (n.clearCoat.texture = e); }) ), null != t.clearcoatRoughnessFactor ? (n.clearCoat.roughness = t.clearcoatRoughnessFactor) : (n.clearCoat.roughness = 0), t.clearcoatRoughnessTexture && i.push( this._loader.loadTextureInfoAsync(e + "/clearcoatRoughnessTexture", t.clearcoatRoughnessTexture, function (e) { (e.name = n.name + " (ClearCoat Roughness)"), (n.clearCoat.texture = e); }) ), t.clearcoatNormalTexture && (i.push( this._loader.loadTextureInfoAsync(e + "/clearcoatNormalTexture", t.clearcoatNormalTexture, function (e) { (e.name = n.name + " (ClearCoat Normal)"), (n.clearCoat.bumpTexture = e); }) ), (n.invertNormalMapX = !n.getScene().useRightHandedSystem), (n.invertNormalMapY = n.getScene().useRightHandedSystem), null != t.clearcoatNormalTexture.scale && (n.clearCoat.bumpTexture.level = t.clearcoatNormalTexture.scale)), Promise.all(i).then(function () {}) ); }), e ); })(); Fe.RegisterExtension("KHR_materials_clearcoat", function (e) { return new Ke(e); }); var Ze = (function () { function e(e) { (this.name = "KHR_materials_sheen"), (this.order = 190), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_sheen")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { var a = new Array(); return a.push(i._loader.loadMaterialPropertiesAsync(e, t, n)), a.push(i._loadSheenPropertiesAsync(r, o, n)), Promise.all(a).then(function () {}); }); }), (e.prototype._loadSheenPropertiesAsync = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); var i = new Array(); return ( (n.sheen.isEnabled = !0), null != t.intensityFactor ? (n.sheen.intensity = t.intensityFactor) : (n.sheen.intensity = 0), null != t.colorFactor && (n.sheen.color = A.a.FromArray(t.colorFactor)), t.colorIntensityTexture && i.push( this._loader.loadTextureInfoAsync(e + "/sheenTexture", t.colorIntensityTexture, function (e) { (e.name = n.name + " (Sheen Intensity)"), (n.sheen.texture = e); }) ), Promise.all(i).then(function () {}) ); }), e ); })(); Fe.RegisterExtension("KHR_materials_sheen", function (e) { return new Ze(e); }); var qe = (function () { function e(e) { (this.name = "KHR_materials_specular"), (this.order = 190), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_materials_specular")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { var a = new Array(); return a.push(i._loader.loadMaterialPropertiesAsync(e, t, n)), a.push(i._loadSpecularPropertiesAsync(r, o, n)), Promise.all(a).then(function () {}); }); }), (e.prototype._loadSpecularPropertiesAsync = function (e, t, n) { if (!(n instanceof Me.a)) throw new Error(e + ": Material type not supported"); return void 0 !== t.specularFactor && (n.metallicF0Factor = t.specularFactor), t.specularTexture && (n.useMetallicF0FactorFromMetallicTexture = !0), Promise.resolve(); }), e ); })(); Fe.RegisterExtension("KHR_materials_specular", function (e) { return new qe(e); }); var Qe = (function () { function e(e) { (this.name = "KHR_mesh_quantization"), (this.enabled = e.isExtensionUsed("KHR_mesh_quantization")); } return (e.prototype.dispose = function () {}), e; })(); Fe.RegisterExtension("KHR_mesh_quantization", function (e) { return new Qe(e); }); var Je = (function () { function e(e) { (this.name = "KHR_texture_basisu"), (this._loader = e), (this.enabled = e.isExtensionUsed("KHR_texture_basisu")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype._loadTextureAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { var a = null == t.sampler ? Fe.DefaultSampler : Le.Get(e + "/sampler", i._loader.gltf.samplers, t.sampler), s = Le.Get(r + "/source", i._loader.gltf.images, o.source); return i._loader._createTextureAsync(e, a, s, function (e) { (e.gammaSpace = !1), n(e); }); }); }), e ); })(); Fe.RegisterExtension("KHR_texture_basisu", function (e) { return new Je(e); }); var $e = (function () { function e(e) { (this.name = "KHR_texture_transform"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("KHR_texture_transform")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadTextureInfoAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (r, o) { return i._loader.loadTextureInfoAsync(e, t, function (e) { if (!(e instanceof B.a)) throw new Error(r + ": Texture type not supported"); o.offset && ((e.uOffset = o.offset[0]), (e.vOffset = o.offset[1])), (e.uRotationCenter = 0), (e.vRotationCenter = 0), o.rotation && (e.wAng = -o.rotation), o.scale && ((e.uScale = o.scale[0]), (e.vScale = o.scale[1])), null != o.texCoord && (e.coordinatesIndex = o.texCoord), n(e); }); }); }), e ); })(); Fe.RegisterExtension("KHR_texture_transform", function (e) { return new $e(e); }); var et = n(190), tt = n(137), nt = n(192), it = (function () { function e(e) { (this.name = "MSFT_audio_emitter"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_audio_emitter")); } return ( (e.prototype.dispose = function () { delete this._loader, delete this._clips, delete this._emitters; }), (e.prototype.onLoading = function () { var e = this._loader.gltf.extensions; if (e && e[this.name]) { var t = e[this.name]; (this._clips = t.clips), (this._emitters = t.emitters), Le.Assign(this._clips), Le.Assign(this._emitters); } }), (e.prototype.loadSceneAsync = function (e, t) { var n = this; return Fe.LoadExtensionAsync(e, t, this.name, function (i, r) { var o = new Array(); o.push(n._loader.loadSceneAsync(e, t)); for (var a = 0, s = r.emitters; a < s.length; a++) { var c = s[a], l = Le.Get(i + "/emitters", n._emitters, c); if (null != l.refDistance || null != l.maxDistance || null != l.rolloffFactor || null != l.distanceModel || null != l.innerAngle || null != l.outerAngle) throw new Error(i + ": Direction or Distance properties are not allowed on emitters attached to a scene"); o.push(n._loadEmitterAsync(i + "/emitters/" + l.index, l)); } return Promise.all(o).then(function () {}); }); }), (e.prototype.loadNodeAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (e, r) { var o = new Array(); return i._loader .loadNodeAsync(e, t, function (t) { for ( var s = function (n) { var r = Le.Get(e + "/emitters", i._emitters, n); o.push( i._loadEmitterAsync(e + "/emitters/" + r.index, r).then(function () { for (var e = 0, n = r._babylonSounds; e < n.length; e++) { var i = n[e]; i.attachToMesh(t), (null == r.innerAngle && null == r.outerAngle) || (i.setLocalDirectionToMesh(M.e.Forward()), i.setDirectionalCone(2 * a.b.ToDegrees(null == r.innerAngle ? Math.PI : r.innerAngle), 2 * a.b.ToDegrees(null == r.outerAngle ? Math.PI : r.outerAngle), 0)); } }) ); }, c = 0, l = r.emitters; c < l.length; c++ ) { s(l[c]); } n(t); }) .then(function (e) { return Promise.all(o).then(function () { return e; }); }); }); }), (e.prototype.loadAnimationAsync = function (e, t) { var n = this; return Fe.LoadExtensionAsync(e, t, this.name, function (i, r) { return n._loader.loadAnimationAsync(e, t).then(function (o) { var a = new Array(); Le.Assign(r.events); for (var s = 0, c = r.events; s < c.length; s++) { var l = c[s]; a.push(n._loadAnimationEventAsync(i + "/events/" + l.index, e, t, l, o)); } return Promise.all(a).then(function () { return o; }); }); }); }), (e.prototype._loadClipAsync = function (e, t) { if (t._objectURL) return t._objectURL; var n; if (t.uri) n = this._loader.loadUriAsync(e, t, t.uri); else { var i = Le.Get(e + "/bufferView", this._loader.gltf.bufferViews, t.bufferView); n = this._loader.loadBufferViewAsync("#/bufferViews/" + i.index, i); } return ( (t._objectURL = n.then(function (e) { return URL.createObjectURL(new Blob([e], { type: t.mimeType })); })), t._objectURL ); }), (e.prototype._loadEmitterAsync = function (e, t) { var n = this; if (((t._babylonSounds = t._babylonSounds || []), !t._babylonData)) { for ( var i = new Array(), r = t.name || "emitter" + t.index, o = { loop: !1, autoplay: !1, volume: null == t.volume ? 1 : t.volume }, s = function (e) { var a = "#/extensions/" + c.name + "/clips", s = Le.Get(a, c._clips, t.clips[e].clip); i.push( c._loadClipAsync(a + "/" + t.clips[e].clip, s).then(function (i) { var a = (t._babylonSounds[e] = new tt.a(r, i, n._loader.babylonScene, null, o)); (a.refDistance = t.refDistance || 1), (a.maxDistance = t.maxDistance || 256), (a.rolloffFactor = t.rolloffFactor || 1), (a.distanceModel = t.distanceModel || "exponential"), (a._positionInEmitterSpace = !0); }) ); }, c = this, l = 0; l < t.clips.length; l++ ) s(l); var u = Promise.all(i).then(function () { var e = t.clips.map(function (e) { return e.weight || 1; }), n = new nt.a(t.loop || !1, t._babylonSounds, e); t.innerAngle && (n.directionalConeInnerAngle = 2 * a.b.ToDegrees(t.innerAngle)), t.outerAngle && (n.directionalConeOuterAngle = 2 * a.b.ToDegrees(t.outerAngle)), t.volume && (n.volume = t.volume), (t._babylonData.sound = n); }); t._babylonData = { loaded: u }; } return t._babylonData.loaded; }), (e.prototype._getEventAction = function (e, t, n, i, r) { switch (n) { case "play": return function (e) { var n = (r || 0) + (e - i); t.play(n); }; case "stop": return function (e) { t.stop(); }; case "pause": return function (e) { t.pause(); }; default: throw new Error(e + ": Unsupported action " + n); } }), (e.prototype._loadAnimationEventAsync = function (e, t, n, i, r) { var o = this; if (0 == r.targetedAnimations.length) return Promise.resolve(); var a = r.targetedAnimations[0], s = i.emitter, c = Le.Get("#/extensions/" + this.name + "/emitters", this._emitters, s); return this._loadEmitterAsync(e, c).then(function () { var t = c._babylonData.sound; if (t) { var n = new et.a(i.time, o._getEventAction(e, t, i.action, i.time, i.startOffset)); a.animation.addEvent(n), r.onAnimationGroupEndObservable.add(function () { t.stop(); }), r.onAnimationGroupPauseObservable.add(function () { t.pause(); }); } }); }), e ); })(); Fe.RegisterExtension("MSFT_audio_emitter", function (e) { return new it(e); }); var rt = (function () { function e(e) { (this.name = "MSFT_lod"), (this.order = 100), (this.maxLODsToLoad = 10), (this.onNodeLODsLoadedObservable = new o.c()), (this.onMaterialLODsLoadedObservable = new o.c()), (this._nodeIndexLOD = null), (this._nodeSignalLODs = new Array()), (this._nodePromiseLODs = new Array()), (this._materialIndexLOD = null), (this._materialSignalLODs = new Array()), (this._materialPromiseLODs = new Array()), (this._indexLOD = null), (this._bufferLODs = new Array()), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_lod")); } return ( (e.prototype.dispose = function () { delete this._loader, (this._nodeIndexLOD = null), (this._nodeSignalLODs.length = 0), (this._nodePromiseLODs.length = 0), (this._materialIndexLOD = null), (this._materialSignalLODs.length = 0), (this._materialPromiseLODs.length = 0), (this._indexLOD = null), (this._bufferLODs.length = 0), this.onMaterialLODsLoadedObservable.clear(), this.onNodeLODsLoadedObservable.clear(); }), (e.prototype.onReady = function () { for ( var e = this, t = function (t) { var i = Promise.all(n._nodePromiseLODs[t]).then(function () { 0 !== t && e._loader.endPerformanceCounter("Node LOD " + t), e._loader.log("Loaded node LOD " + t), e.onNodeLODsLoadedObservable.notifyObservers(t), t !== e._nodePromiseLODs.length - 1 && (e._loader.startPerformanceCounter("Node LOD " + (t + 1)), e._nodeSignalLODs[t] && e._nodeSignalLODs[t].resolve()); }); n._loader._completePromises.push(i); }, n = this, i = 0; i < this._nodePromiseLODs.length; i++ ) t(i); var r = function (t) { var n = Promise.all(o._materialPromiseLODs[t]).then(function () { 0 !== t && e._loader.endPerformanceCounter("Material LOD " + t), e._loader.log("Loaded material LOD " + t), e.onMaterialLODsLoadedObservable.notifyObservers(t), t !== e._materialPromiseLODs.length - 1 && (e._loader.startPerformanceCounter("Material LOD " + (t + 1)), e._materialSignalLODs[t] && e._materialSignalLODs[t].resolve()); }); o._loader._completePromises.push(n); }, o = this; for (i = 0; i < this._materialPromiseLODs.length; i++) r(i); for (i = 1; i < this._bufferLODs.length; i++) this._loadBufferLOD(i); }), (e.prototype.loadSceneAsync = function (e, t) { var n = this._loader.loadSceneAsync(e, t); return 0 !== this._bufferLODs.length && this._loadBufferLOD(0), n; }), (e.prototype.loadNodeAsync = function (e, t, n) { var i = this; return Fe.LoadExtensionAsync(e, t, this.name, function (e, n) { var r, o = i._getLODs(e, t, i._loader.gltf.nodes, n.ids); i._loader.logOpen("" + e); for ( var a = function (e) { var t = o[e]; (i._indexLOD = e), 0 !== e && ((i._nodeIndexLOD = e), (i._nodeSignalLODs[e] = i._nodeSignalLODs[e] || new Oe.a())); var n = i._loader .loadNodeAsync("#/nodes/" + t.index, t, function (e) { e.setEnabled(!1); }) .then(function (t) { if (0 !== e) { var n = o[e - 1]; n._babylonTransformNode && (i._disposeTransformNode(n._babylonTransformNode), delete n._babylonTransformNode); } return t.setEnabled(!0), t; }); 0 === e ? (r = n) : (i._nodeIndexLOD = null), (i._indexLOD = null), (i._nodePromiseLODs[e] = i._nodePromiseLODs[e] || []), i._nodePromiseLODs[e].push(n); }, s = 0; s < o.length; s++ ) a(s); return i._loader.logClose(), r; }); }), (e.prototype._loadMaterialAsync = function (e, t, n, i, r) { var o = this; return this._indexLOD ? null : Fe.LoadExtensionAsync(e, t, this.name, function (e, a) { var s, c = o._getLODs(e, t, o._loader.gltf.materials, a.ids); o._loader.logOpen("" + e); for ( var l = function (e) { var t = c[e]; (o._indexLOD = e), 0 !== e && (o._materialIndexLOD = e); var a = o._loader ._loadMaterialAsync("#/materials/" + t.index, t, n, i, function (t) { 0 === e && r(t); }) .then(function (t) { if (0 !== e) { r(t); var n = c[e - 1]._data; n[i] && (o._disposeMaterials([n[i].babylonMaterial]), delete n[i]); } return t; }); 0 === e ? (s = a) : (o._materialIndexLOD = null), (o._indexLOD = null), (o._materialPromiseLODs[e] = o._materialPromiseLODs[e] || []), o._materialPromiseLODs[e].push(a); }, u = 0; u < c.length; u++ ) l(u); return o._loader.logClose(), s; }); }), (e.prototype._loadUriAsync = function (e, t, n) { var i = this; if (null !== this._materialIndexLOD) { this._loader.log("deferred"); var r = this._materialIndexLOD - 1; return ( (this._materialSignalLODs[r] = this._materialSignalLODs[r] || new Oe.a()), this._materialSignalLODs[r].promise.then(function () { return i._loader.loadUriAsync(e, t, n); }) ); } if (null !== this._nodeIndexLOD) { this._loader.log("deferred"); r = this._nodeIndexLOD - 1; return ( (this._nodeSignalLODs[r] = this._nodeSignalLODs[r] || new Oe.a()), this._nodeSignalLODs[this._nodeIndexLOD - 1].promise.then(function () { return i._loader.loadUriAsync(e, t, n); }) ); } return null; }), (e.prototype.loadBufferAsync = function (e, t, n, i) { if (this._loader.parent.useRangeRequests && !t.uri) { if (!this._loader.bin) throw new Error(e + ": Uri is missing or the binary glTF is missing its binary chunk"); var r = this._indexLOD || 0, o = n, a = o + i - 1, s = this._bufferLODs[r]; return ( s ? ((s.start = Math.min(s.start, o)), (s.end = Math.max(s.end, a))) : ((s = { start: o, end: a, loaded: new Oe.a() }), (this._bufferLODs[r] = s)), s.loaded.promise.then(function (e) { return new Uint8Array(e.buffer, e.byteOffset + n - s.start, i); }) ); } return null; }), (e.prototype._loadBufferLOD = function (e) { var t = this._bufferLODs[e]; this._loader.bin.readAsync(t.start, t.end - t.start + 1).then( function (e) { t.loaded.resolve(e); }, function (e) { t.loaded.reject(e); } ); }), (e.prototype._getLODs = function (e, t, n, i) { if (this.maxLODsToLoad <= 0) throw new Error("maxLODsToLoad must be greater than zero"); for (var r = new Array(), o = i.length - 1; o >= 0; o--) if ((r.push(Le.Get(e + "/ids/" + i[o], n, i[o])), r.length === this.maxLODsToLoad)) return r; return r.push(t), r; }), (e.prototype._disposeTransformNode = function (e) { var t = this, n = new Array(), i = e.material; i && n.push(i); for (var r = 0, o = e.getChildMeshes(); r < o.length; r++) { var a = o[r]; a.material && n.push(a.material); } e.dispose(); var s = n.filter(function (e) { return t._loader.babylonScene.meshes.every(function (t) { return t.material != e; }); }); this._disposeMaterials(s); }), (e.prototype._disposeMaterials = function (e) { for (var t = {}, n = 0, i = e; n < i.length; n++) { for (var r = 0, o = (u = i[n]).getActiveTextures(); r < o.length; r++) { var a = o[r]; t[a.uniqueId] = a; } u.dispose(); } for (var s in t) for (var c = 0, l = this._loader.babylonScene.materials; c < l.length; c++) { var u; (u = l[c]).hasTexture(t[s]) && delete t[s]; } for (var s in t) t[s].dispose(); }), e ); })(); Fe.RegisterExtension("MSFT_lod", function (e) { return new rt(e); }); var ot = (function () { function e(e) { (this.name = "MSFT_minecraftMesh"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_minecraftMesh")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtraAsync(e, t, this.name, function (r, o) { if (o) { if (!(n instanceof Me.a)) throw new Error(r + ": Material type not supported"); var a = i._loader.loadMaterialPropertiesAsync(e, t, n); return n.needAlphaBlending() && ((n.forceDepthWrite = !0), (n.separateCullingPass = !0)), (n.backFaceCulling = n.forceDepthWrite), (n.twoSidedLighting = !0), a; } return null; }); }), e ); })(); Fe.RegisterExtension("MSFT_minecraftMesh", function (e) { return new ot(e); }); var at = (function () { function e(e) { (this.name = "MSFT_sRGBFactors"), (this._loader = e), (this.enabled = this._loader.isExtensionUsed("MSFT_sRGBFactors")); } return ( (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadMaterialPropertiesAsync = function (e, t, n) { var i = this; return Fe.LoadExtraAsync(e, t, this.name, function (r, o) { if (o) { if (!(n instanceof Me.a)) throw new Error(r + ": Material type not supported"); var a = i._loader.loadMaterialPropertiesAsync(e, t, n); return n.albedoTexture || n.albedoColor.toLinearSpaceToRef(n.albedoColor), n.reflectivityTexture || n.reflectivityColor.toLinearSpaceToRef(n.reflectivityColor), a; } return null; }); }), e ); })(); Fe.RegisterExtension("MSFT_sRGBFactors", function (e) { return new at(e); }); var st = (function () { function e(e) { (this.name = "ExtrasAsMetadata"), (this.enabled = !0), (this._loader = e); } return ( (e.prototype._assignExtras = function (e, t) { if (t.extras && Object.keys(t.extras).length > 0) { var n = (e.metadata = e.metadata || {}); (n.gltf = n.gltf || {}).extras = t.extras; } }), (e.prototype.dispose = function () { delete this._loader; }), (e.prototype.loadNodeAsync = function (e, t, n) { var i = this; return this._loader.loadNodeAsync(e, t, function (e) { i._assignExtras(e, t), n(e); }); }), (e.prototype.loadCameraAsync = function (e, t, n) { var i = this; return this._loader.loadCameraAsync(e, t, function (e) { i._assignExtras(e, t), n(e); }); }), (e.prototype.createMaterial = function (e, t, n) { var i = this._loader.createMaterial(e, t, n); return this._assignExtras(i, t), i; }), e ); })(); Fe.RegisterExtension("ExtrasAsMetadata", function (e) { return new st(e); }); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "cd718180b9204d15f661250c7741c545.webp"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "42b21c6b50ae9ddd74894c0829ae870d.png"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "d4a3141421fd427168cf625156fee2ab.webp"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "79f0227ca8e0ed5e63f699e10abab7b0.png"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "c3a474ec7869a10db304b9734dc161a8.webp"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "62c86f25133c0384d6077e75c0913118.png"); }, function (e, t, n) { "use strict"; n.r(t), n.d(t, "derived", function () { return s; }), n.d(t, "readable", function () { return o; }), n.d(t, "writable", function () { return a; }); var i = n(0); n.d(t, "get", function () { return i.p; }); const r = []; function o(e, t) { return { subscribe: a(e, t).subscribe }; } function a(e, t = i.x) { let n; const o = []; function a(t) { if (Object(i.C)(e, t) && ((e = t), n)) { const t = !r.length; for (let t = 0; t < o.length; t += 1) { const n = o[t]; n[1](), r.push(n, e); } if (t) { for (let e = 0; e < r.length; e += 2) r[e][0](r[e + 1]); r.length = 0; } } } return { set: a, update: function (t) { a(t(e)); }, subscribe: function (r, s = i.x) { const c = [r, s]; return ( o.push(c), 1 === o.length && (n = t(a) || i.x), r(e), () => { const e = o.indexOf(c); -1 !== e && o.splice(e, 1), 0 === o.length && (n(), (n = null)); } ); }, }; } function s(e, t, n) { const r = !Array.isArray(e), a = r ? [e] : e, s = t.length < 2; return o(n, (e) => { let n = !1; const o = []; let c = 0, l = i.x; const u = () => { if (c) return; l(); const n = t(r ? o[0] : o, e); s ? e(n) : (l = Object(i.u)(n) ? n : i.x); }, h = a.map((e, t) => Object(i.I)( e, (e) => { (o[t] = e), (c &= ~(1 << t)), n && u(); }, () => { c |= 1 << t; } ) ); return ( (n = !0), u(), function () { Object(i.B)(h), l(); } ); }); } }, function (e, t, n) { "use strict"; var i = "fresnelFunction", r = "#ifdef FRESNEL\nfloat computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power)\n{\nfloat fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);\nreturn clamp(fresnelTerm,0.,1.);\n}\n#endif"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = "bumpVertexDeclaration", r = "#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP)\n#if defined(TANGENT) && defined(NORMAL)\nvarying mat3 vTBN;\n#endif\n#endif\n"; n(7).a.IncludesShadersStore[i] = r; }, function (e, t, n) { "use strict"; var i = n(38), r = n(32); (i.a.prototype.createDynamicTexture = function (e, t, n, o) { var a = new r.a(this, r.b.Dynamic); return ( (a.baseWidth = e), (a.baseHeight = t), n && ((e = this.needPOTTextures ? i.a.GetExponentOfTwo(e, this._caps.maxTextureSize) : e), (t = this.needPOTTextures ? i.a.GetExponentOfTwo(t, this._caps.maxTextureSize) : t)), (a.width = e), (a.height = t), (a.isReady = !1), (a.generateMipMaps = n), (a.samplingMode = o), this.updateTextureSamplingMode(o, a), this._internalTexturesCache.push(a), a ); }), (i.a.prototype.updateDynamicTexture = function (e, t, n, i, r, o) { if ((void 0 === i && (i = !1), void 0 === o && (o = !1), e)) { this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0, o), this._unpackFlipY(n), i && this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); var a = r ? this._getInternalFormat(r) : this._gl.RGBA; this._gl.texImage2D(this._gl.TEXTURE_2D, 0, a, a, this._gl.UNSIGNED_BYTE, t), e.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), i && this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0), (e.isReady = !0); } }); }, function (e, t, n) { "use strict"; var i = n(7), r = (n(86), n(82), "colorPixelShader"), o = "#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#else\nuniform vec4 color;\n#endif\n#include\nvoid main(void) {\n#include\n#ifdef VERTEXCOLOR\ngl_FragColor=vColor;\n#else\ngl_FragColor=color;\n#endif\n}"; i.a.ShadersStore[r] = o; }, function (e, t, n) { "use strict"; var i = n(7), r = (n(70), n(88), n(71), n(72), n(73), n(83), "colorVertexShader"), o = "\nattribute vec3 position;\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n\n#include\nuniform mat4 viewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;\n#endif\n\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\nvoid main(void) {\n#include\n#include\nvec4 worldPos=finalWorld*vec4(position,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR == 0u) {\ngl_Position=viewProjection*worldPos;\n} else {\ngl_Position=viewProjectionR*worldPos;\n}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\n#include\n#ifdef VERTEXCOLOR\n\nvColor=color;\n#endif\n}"; i.a.ShadersStore[r] = o; }, function (e, t, n) { "use strict"; (function (e) { n.d(t, "b", function () { return l; }), n.d(t, "a", function () { return u; }); var i = n(2), r = n(10), o = n(14), a = n(147), s = n(32), c = n(127), l = function () { (this.renderWidth = 512), (this.renderHeight = 256), (this.textureSize = 512), (this.deterministicLockstep = !1), (this.lockstepMaxSteps = 4); }, u = (function (t) { function n(n) { void 0 === n && (n = new l()); var i = t.call(this, null) || this; o.a.Instances.push(i), void 0 === n.deterministicLockstep && (n.deterministicLockstep = !1), void 0 === n.lockstepMaxSteps && (n.lockstepMaxSteps = 4), (i._options = n), (i._caps = { maxTexturesImageUnits: 16, maxVertexTextureImageUnits: 16, maxCombinedTexturesImageUnits: 32, maxTextureSize: 512, maxCubemapTextureSize: 512, maxRenderTextureSize: 512, maxVertexAttribs: 16, maxVaryingVectors: 16, maxFragmentUniformVectors: 16, maxVertexUniformVectors: 16, standardDerivatives: !1, astc: null, pvrtc: null, etc1: null, etc2: null, maxAnisotropy: 0, uintIndices: !1, fragmentDepthSupported: !1, highPrecisionShaderSupported: !0, colorBufferFloat: !1, textureFloat: !1, textureFloatLinearFiltering: !1, textureFloatRender: !1, textureHalfFloat: !1, textureHalfFloatLinearFiltering: !1, textureHalfFloatRender: !1, textureLOD: !1, drawBuffersExtension: !1, depthTextureExtension: !1, vertexArrayObject: !1, instancedArrays: !1, canUseTimestampForTimerQuery: !1, maxMSAASamples: 1, blendMinMax: !1, }), r.a.Log("Babylon.js v" + o.a.Version + " - Null engine"); var a = "undefined" != typeof self ? self : void 0 !== e ? e : window; return "undefined" == typeof URL && (a.URL = { createObjectURL: function () {}, revokeObjectURL: function () {} }), "undefined" == typeof Blob && (a.Blob = function () {}), i; } return ( Object(i.d)(n, t), (n.prototype.isDeterministicLockStep = function () { return this._options.deterministicLockstep; }), (n.prototype.getLockstepMaxSteps = function () { return this._options.lockstepMaxSteps; }), (n.prototype.getHardwareScalingLevel = function () { return 1; }), (n.prototype.createVertexBuffer = function (e) { var t = new c.a(); return (t.references = 1), t; }), (n.prototype.createIndexBuffer = function (e) { var t = new c.a(); return (t.references = 1), t; }), (n.prototype.clear = function (e, t, n, i) { void 0 === i && (i = !1); }), (n.prototype.getRenderWidth = function (e) { return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._options.renderWidth; }), (n.prototype.getRenderHeight = function (e) { return void 0 === e && (e = !1), !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._options.renderHeight; }), (n.prototype.setViewport = function (e, t, n) { this._cachedViewport = e; }), (n.prototype.createShaderProgram = function (e, t, n, i, r) { return { __SPECTOR_rebuildProgram: null }; }), (n.prototype.getUniforms = function (e, t) { return []; }), (n.prototype.getAttributes = function (e, t) { return []; }), (n.prototype.bindSamplers = function (e) { this._currentEffect = null; }), (n.prototype.enableEffect = function (e) { (this._currentEffect = e), e.onBind && e.onBind(e), e._onBindObservable && e._onBindObservable.notifyObservers(e); }), (n.prototype.setState = function (e, t, n, i) { void 0 === t && (t = 0), void 0 === i && (i = !1); }), (n.prototype.setIntArray = function (e, t) {}), (n.prototype.setIntArray2 = function (e, t) {}), (n.prototype.setIntArray3 = function (e, t) {}), (n.prototype.setIntArray4 = function (e, t) {}), (n.prototype.setFloatArray = function (e, t) {}), (n.prototype.setFloatArray2 = function (e, t) {}), (n.prototype.setFloatArray3 = function (e, t) {}), (n.prototype.setFloatArray4 = function (e, t) {}), (n.prototype.setArray = function (e, t) {}), (n.prototype.setArray2 = function (e, t) {}), (n.prototype.setArray3 = function (e, t) {}), (n.prototype.setArray4 = function (e, t) {}), (n.prototype.setMatrices = function (e, t) {}), (n.prototype.setMatrix3x3 = function (e, t) {}), (n.prototype.setMatrix2x2 = function (e, t) {}), (n.prototype.setFloat = function (e, t) {}), (n.prototype.setFloat2 = function (e, t, n) {}), (n.prototype.setFloat3 = function (e, t, n, i) {}), (n.prototype.setBool = function (e, t) {}), (n.prototype.setFloat4 = function (e, t, n, i, r) {}), (n.prototype.setAlphaMode = function (e, t) { void 0 === t && (t = !1), this._alphaMode !== e && ((this.alphaState.alphaBlend = 0 !== e), t || this.setDepthWrite(0 === e), (this._alphaMode = e)); }), (n.prototype.bindBuffers = function (e, t, n) {}), (n.prototype.wipeCaches = function (e) { this.preventCacheWipeBetweenFrames || (this.resetTextureCache(), (this._currentEffect = null), e && ((this._currentProgram = null), this.stencilState.reset(), this.depthCullingState.reset(), this.alphaState.reset()), (this._cachedVertexBuffers = null), (this._cachedIndexBuffer = null), (this._cachedEffectForVertexBuffers = null)); }), (n.prototype.draw = function (e, t, n, i) {}), (n.prototype.drawElementsType = function (e, t, n, i) {}), (n.prototype.drawArraysType = function (e, t, n, i) {}), (n.prototype._createTexture = function () { return {}; }), (n.prototype._releaseTexture = function (e) {}), (n.prototype.createTexture = function (e, t, n, i, r, o, a, c, l, u, h, d) { void 0 === r && (r = 3), void 0 === o && (o = null), void 0 === a && (a = null), void 0 === c && (c = null), void 0 === l && (l = null), void 0 === u && (u = null), void 0 === h && (h = null); var p = new s.a(this, s.b.Url), f = String(e); return ( (p.url = f), (p.generateMipMaps = !t), (p.samplingMode = r), (p.invertY = n), (p.baseWidth = this._options.textureSize), (p.baseHeight = this._options.textureSize), (p.width = this._options.textureSize), (p.height = this._options.textureSize), u && (p.format = u), (p.isReady = !0), o && o(), this._internalTexturesCache.push(p), p ); }), (n.prototype.createRenderTargetTexture = function (e, t) { var n = new a.a(); void 0 !== t && "object" == typeof t ? ((n.generateMipMaps = t.generateMipMaps), (n.generateDepthBuffer = void 0 === t.generateDepthBuffer || t.generateDepthBuffer), (n.generateStencilBuffer = n.generateDepthBuffer && t.generateStencilBuffer), (n.type = void 0 === t.type ? 0 : t.type), (n.samplingMode = void 0 === t.samplingMode ? 3 : t.samplingMode)) : ((n.generateMipMaps = t), (n.generateDepthBuffer = !0), (n.generateStencilBuffer = !1), (n.type = 0), (n.samplingMode = 3)); var i = new s.a(this, s.b.RenderTarget), r = e.width || e, o = e.height || e; return ( (i._depthStencilBuffer = {}), (i._framebuffer = {}), (i.baseWidth = r), (i.baseHeight = o), (i.width = r), (i.height = o), (i.isReady = !0), (i.samples = 1), (i.generateMipMaps = !!n.generateMipMaps), (i.samplingMode = n.samplingMode), (i.type = n.type), (i._generateDepthBuffer = n.generateDepthBuffer), (i._generateStencilBuffer = !!n.generateStencilBuffer), this._internalTexturesCache.push(i), i ); }), (n.prototype.updateTextureSamplingMode = function (e, t) { t.samplingMode = e; }), (n.prototype.bindFramebuffer = function (e, t, n, i, r) { this._currentRenderTarget && this.unBindFramebuffer(this._currentRenderTarget), (this._currentRenderTarget = e), (this._currentFramebuffer = e._MSAAFramebuffer ? e._MSAAFramebuffer : e._framebuffer), this._cachedViewport && !r && this.setViewport(this._cachedViewport, n, i); }), (n.prototype.unBindFramebuffer = function (e, t, n) { void 0 === t && (t = !1), (this._currentRenderTarget = null), n && (e._MSAAFramebuffer && (this._currentFramebuffer = e._framebuffer), n()), (this._currentFramebuffer = null); }), (n.prototype.createDynamicVertexBuffer = function (e) { var t = new c.a(); return (t.references = 1), (t.capacity = 1), t; }), (n.prototype.updateDynamicTexture = function (e, t, n, i, r) { void 0 === i && (i = !1); }), (n.prototype.areAllEffectsReady = function () { return !0; }), (n.prototype.getError = function () { return 0; }), (n.prototype._getUnpackAlignement = function () { return 1; }), (n.prototype._unpackFlipY = function (e) {}), (n.prototype.updateDynamicIndexBuffer = function (e, t, n) { void 0 === n && (n = 0); }), (n.prototype.updateDynamicVertexBuffer = function (e, t, n, i) {}), (n.prototype._bindTextureDirectly = function (e, t) { return this._boundTexturesCache[this._activeChannel] !== t && ((this._boundTexturesCache[this._activeChannel] = t), !0); }), (n.prototype._bindTexture = function (e, t) { e < 0 || this._bindTextureDirectly(0, t); }), (n.prototype._deleteBuffer = function (e) {}), (n.prototype.releaseEffects = function () {}), (n.prototype.displayLoadingUI = function () {}), (n.prototype.hideLoadingUI = function () {}), (n.prototype._uploadCompressedDataToTextureDirectly = function (e, t, n, i, r, o, a) { void 0 === o && (o = 0), void 0 === a && (a = 0); }), (n.prototype._uploadDataToTextureDirectly = function (e, t, n, i) { void 0 === n && (n = 0), void 0 === i && (i = 0); }), (n.prototype._uploadArrayBufferViewToTexture = function (e, t, n, i) { void 0 === n && (n = 0), void 0 === i && (i = 0); }), (n.prototype._uploadImageToTexture = function (e, t, n, i) { void 0 === n && (n = 0), void 0 === i && (i = 0); }), n ); })(o.a); }.call(this, n(212))); }, function (e, t, n) { "use strict"; var i = n(7), r = (n(59), "rgbdDecodePixelShader"), o = "\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\n#include\nvoid main(void)\n{\ngl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);\n}"; i.a.ShadersStore[r] = o; }, function (e, t, n) { "use strict"; var i = n(2), r = n(38), o = n(32), a = n(10), s = n(74); (r.a.prototype._createDepthStencilCubeTexture = function (e, t) { var n = new o.a(this, o.b.Unknown); if (((n.isCube = !0), 1 === this.webGLVersion)) return a.a.Error("Depth cube texture is not supported by WebGL 1."), n; var r = Object(i.a)({ bilinearFiltering: !1, comparisonFunction: 0, generateStencil: !1 }, t), s = this._gl; this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, n, !0), this._setupDepthStencilTexture(n, e, r.generateStencil, r.bilinearFiltering, r.comparisonFunction); for (var c = 0; c < 6; c++) r.generateStencil ? s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + c, 0, s.DEPTH24_STENCIL8, e, e, 0, s.DEPTH_STENCIL, s.UNSIGNED_INT_24_8, null) : s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + c, 0, s.DEPTH_COMPONENT24, e, e, 0, s.DEPTH_COMPONENT, s.UNSIGNED_INT, null); return this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, null), n; }), (r.a.prototype._partialLoadFile = function (e, t, n, i, r) { void 0 === r && (r = null); this._loadFile( e, function (e) { (n[t] = e), n._internalCount++, 6 === n._internalCount && i(n); }, void 0, void 0, !0, function (e, t) { r && e && r(e.status + " " + e.statusText, t); } ); }), (r.a.prototype._cascadeLoadFiles = function (e, t, n, i) { void 0 === i && (i = null); var r = []; r._internalCount = 0; for (var o = 0; o < 6; o++) this._partialLoadFile(n[o], o, r, t, i); }), (r.a.prototype._cascadeLoadImgs = function (e, t, n, i, r) { void 0 === i && (i = null); var o = []; o._internalCount = 0; for (var a = 0; a < 6; a++) this._partialLoadImg(n[a], a, o, e, t, i, r); }), (r.a.prototype._partialLoadImg = function (e, t, n, i, r, o, a) { var c; void 0 === o && (o = null); (c = s.a.LoadImage( e, function () { c && ((n[t] = c), n._internalCount++, i && i._removePendingData(c)), 6 === n._internalCount && r(n); }, function (e, t) { i && i._removePendingData(c), o && o(e, t); }, i ? i.offlineProvider : null, a )), i && c && i._addPendingData(c); }), (r.a.prototype._setCubeMapTextureParams = function (e) { var t = this._gl; t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, t.LINEAR), t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, e ? t.LINEAR_MIPMAP_LINEAR : t.LINEAR), t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE), this._bindTextureDirectly(t.TEXTURE_CUBE_MAP, null); }), (r.a.prototype.createCubeTexture = function (e, t, n, i, s, c, l, u, h, d, p, f) { var m = this; void 0 === s && (s = null), void 0 === c && (c = null), void 0 === u && (u = null), void 0 === h && (h = !1), void 0 === d && (d = 0), void 0 === p && (p = 0), void 0 === f && (f = null); var g = this._gl, b = f || new o.a(this, o.b.Cube); (b.isCube = !0), (b.url = e), (b.generateMipMaps = !i), (b._lodGenerationScale = d), (b._lodGenerationOffset = p), this._doNotHandleContextLost || ((b._extension = u), (b._files = n)); for (var _ = e.lastIndexOf("."), v = u || (_ > -1 ? e.substring(_).toLowerCase() : ""), y = null, C = 0, P = r.a._TextureLoaders; C < P.length; C++) { var x = P[C]; if (x.canLoad(v)) { y = x; break; } } if (y) { var T = function (e) { m._bindTextureDirectly(g.TEXTURE_CUBE_MAP, b, !0), y.loadCubeData(e, b, h, s, c); }; n && 6 === n.length ? y.supportCascades ? this._cascadeLoadFiles( t, function (e) { return T( e.map(function (e) { return new Uint8Array(e); }) ); }, n, c ) : c ? c("Textures type does not support cascades.") : a.a.Warn("Texture loader does not support cascades.") : this._loadFile( e, function (e) { return T(new Uint8Array(e)); }, void 0, void 0, !0, function (e, t) { c && e && c(e.status + " " + e.statusText, t); } ); } else { if (!n) throw new Error("Cannot load cubemap because files were not defined"); this._cascadeLoadImgs( t, function (e) { var t = m.needPOTTextures ? r.a.GetExponentOfTwo(e[0].width, m._caps.maxCubemapTextureSize) : e[0].width, n = t, o = [g.TEXTURE_CUBE_MAP_POSITIVE_X, g.TEXTURE_CUBE_MAP_POSITIVE_Y, g.TEXTURE_CUBE_MAP_POSITIVE_Z, g.TEXTURE_CUBE_MAP_NEGATIVE_X, g.TEXTURE_CUBE_MAP_NEGATIVE_Y, g.TEXTURE_CUBE_MAP_NEGATIVE_Z]; m._bindTextureDirectly(g.TEXTURE_CUBE_MAP, b, !0), m._unpackFlipY(!1); for (var c = l ? m._getInternalFormat(l) : m._gl.RGBA, u = 0; u < o.length; u++) if (e[u].width !== t || e[u].height !== n) { if ((m._prepareWorkingCanvas(), !m._workingCanvas || !m._workingContext)) return void a.a.Warn("Cannot create canvas to resize texture."); (m._workingCanvas.width = t), (m._workingCanvas.height = n), m._workingContext.drawImage(e[u], 0, 0, e[u].width, e[u].height, 0, 0, t, n), g.texImage2D(o[u], 0, c, c, g.UNSIGNED_BYTE, m._workingCanvas); } else g.texImage2D(o[u], 0, c, c, g.UNSIGNED_BYTE, e[u]); i || g.generateMipmap(g.TEXTURE_CUBE_MAP), m._setCubeMapTextureParams(!i), (b.width = t), (b.height = n), (b.isReady = !0), l && (b.format = l), b.onLoadedObservable.notifyObservers(b), b.onLoadedObservable.clear(), s && s(); }, n, c ); } return this._internalTexturesCache.push(b), b; }); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackHelper = void 0); const i = n(133), r = n(62), o = n(150), a = n(40), s = n(48); t.TrackHelper = class { static loadConfigs() { const e = i.RegionInfo.fromJson(n(253)(`./${s.GameConfig.DEFAULT_REGION}/${s.GameConfig.DEFAULT_REGION}Region.json`)), t = i.TrackPacing.fromJson(n(255)), r = new Map(), o = new Map(); s.GameConfig.DEFAULT_ZONES.forEach((e) => { const t = `${s.GameConfig.DEFAULT_REGION}${e}`, a = i.RegionZoneInfo.fromJson(n(256)(`./${s.GameConfig.DEFAULT_REGION}/${e}/${t}Zone.json`)); r.set(a.ID, a); const c = new Map(), l = `${s.GameConfig.DEFAULT_REGION}${e}`, u = n(262)(`./${s.GameConfig.DEFAULT_REGION}/${e}/${l}Pieces.json`); for (const e in u) c.set(e, i.TrackPieceInfo.fromJson(u[e])); o.set(a.ID, c); }); for (const [, e] of r) for (const t of e.Definitions) t.initialize(), (t.LedgeLeftOrRightIsObstacle = !e.IsLedgeZone); return [e, t, r, o]; } static selectPieceSimple(e, t, n, i) { var r; let a = 0; const s = n.SelectedDefinition.ID.ZoneID, c = (null === (r = e.getZoneInfo(s)) || void 0 === r ? void 0 : r.Definitions) || []; if (c.length < 1) return; for (let e = 0; e < c.length; ++e) { const n = c[e]; if (!(n.SelectionOdds < 1 && o.Utils.random(0, 1e3) >= 1e3 * n.SelectionOdds) && ((t.AvailablePieceDefinitions[a] = n), ++a, a > t.MaxPossibleDefinitions)) break; } const l = o.Utils.random(0, a); return (i.Definition = t.AvailablePieceDefinitions[l]), i; } static selectPieceComplex(e, t, n, r) { const c = n.SelectedDefinition, l = e.getZoneInfo(c.ID.ZoneID), u = t.findZonePacing(c.ID.ZoneID), h = t.ActiveMilestone; let d = !!h.AllowObstacles, p = !1; n.DistanceSinceLastMandatoryTurn < h.MinDistanceAfterTurnForObstacle && (d = !1), (n.BackToBackObstacleCount >= h.MaxBackToBackObstacles || 0 == !!c.AllowDoubleObstacle) && (d = !1), n.DistanceSinceLastObstacle < h.MinDistanceBetweenObstacles && o.Utils.random(0, 1e3) >= 1e3 * h.DoubleObstaclePercent && (d = !1), c.isMandatoryTurn() && (d = !1), t.IsFastTurnSection && 0 == !!l.AllowObstacleDuringFastTurn && (d = !1); const f = n.DistanceSinceLastMandatoryTurn >= h.MinDistanceBetweenTurns, m = c.isObstacle() && 0 == !!h.AllowTurnAfterObstacle, g = !!h.AllowTurns && 1 == f && 0 == m, b = n.DistanceSinceLastOptionalTurn >= h.MinDistanceBetweenOptionalTurns, _ = 1 == !!h.AllowOptionalTurns && 1 == b, v = !(d && (c.IsJumpOver || c.IsStumble)), y = s.GameConfig.IS_DEBUG && s.GameConfig.DEFAULT_ZONES.length != s.GameConfig.DEBUG_SELECTED_ZONES.length, C = y ? s.GameConfig.DEBUG_MIN_DISTANCE_BETWEEN_BASE_ZONE_CHANGE : t.MinDistanceBetweenBaseZoneChange, P = !t.IsFastTurnSection && !c.isObstacle() && !!l.TransitionToZoneSupported && n.DistanceSinceLastZoneChange > C; p = null == u ? n.DistanceSinceLastZoneChange > 100 : n.DistanceSinceLastZoneChange > u.MinLength; let x = !1, T = !1; l.TransitionToZoneSupported && !P && (g && n.DistanceSinceLastMandatoryTurn >= h.MaxDistanceBetweenTurns && (x = !0), d && n.DistanceSinceLastObstacle >= h.MaxDistanceBetweenObstacles && (T = !0), x && T && (0 == o.Utils.random(0, 2) ? (x = !1) : (T = !1))); const S = !(c.CategoryType == i.TrackPieceCategory.ZoneExitTransition); let O = 0; const E = e.getAllZones(); for (const [, n] of E) { if (!e.enabledZones.includes(n.Name) || (y && !s.GameConfig.DEBUG_SELECTED_ZONES.includes(n.Name))) continue; const r = t.findZonePacing(n.ID), u = n.ID == l.ID && S, f = P && n.ID != l.ID && null != r, m = c.CategoryType == i.TrackPieceCategory.ZoneExitTransition && !!n.TransitionToZoneSupported; if (u || f || m) for (const e of n.Definitions) { const r = !(e.CategoryType == i.TrackPieceCategory.CompoundPieceMiddle || e.CategoryType == i.TrackPieceCategory.CompoundPieceEnd), s = f && e.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition && c.CategoryType != i.TrackPieceCategory.ZoneEntranceTransition, u = !!n.TransitionToZoneSupported || (l.ID == n.ID && c.CategoryType != i.TrackPieceCategory.ZoneExitTransition && 0 == s); let m = r && (s || u); const b = e.DifficultyLevel <= h.MaxTrackPieceDifficulty; if (n.IsLedgeZone && e.CategoryType != i.TrackPieceCategory.ZoneEntranceTransition) { const t = !!( (c.IsLedgeLeft && (e.IsLedgeLeft || e.LedgeZoneTransitionType == i.LedgeZoneTransition.LeftToRight)) || (c.IsLedgeRight && (e.IsLedgeRight || e.LedgeZoneTransitionType == i.LedgeZoneTransition.RightToLeft)) ); m = m && t; } let C = m && b && (e.SelectionOdds >= 1 || o.Utils.random(0, 1e3) < 1e3 * e.SelectionOdds); if ((y && e.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition && 0 == a.GameController.instance.character.params.currentTrackPiece.SelectedDefinition.ID.ZoneID && e.ID.ZoneID > 0 && (C = !0), C)) { const n = x || T, r = 0 == n && P && e.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition, o = 0 == n && p && e.CategoryType == i.TrackPieceCategory.ZoneExitTransition; let a = 0 == x && d && e.isObstacle() && !e.isZoneTransition(); const s = 0 == T && 1 == e.isMandatoryTurn() && 1 == g, c = 0 == n && 0 == e.isTurn() && 0 == e.isObstacle() && 0 == e.isZoneTransition(), l = 1 == !!e.IsOptionalJunction && 1 == _; if ((a && e.IsSlideUnder && !v && (a = !1), (c || a || s || 1 == l || r || o) && ((t.AvailablePieceDefinitions[O] = e), O++, O > t.MaxPossibleDefinitions))) break; } } if (O > t.MaxPossibleDefinitions) break; } if (O > 0) { const n = o.Utils.random(0, O); if (((r.Definition = t.AvailablePieceDefinitions[n]), r.Definition.CategoryType == i.TrackPieceCategory.ZoneEntranceTransition)) { const t = e.getZoneInfo(r.Definition.ID.ZoneID); null != t && null != t.TutorialPacing && t.TutorialPacing.TutorialEnabled && (r.Pacing = t.TutorialPacing); } } else r = new i.NewTrackPieceInfo(); return r; } static selectPieceTutorial() {} static drawDebugPathSplines(e, t) { const n = r.Vector3.Zero(), i = []; for (let t = 0; t < e.trackInfo.Paths[0].GeneratedPath.length; ++t) { const r = n.add(e.trackInfo.Paths[0].GeneratedPath[t]); i.push(r); } const o = e.trackInfo.Paths[0].GeneratedPath.length, a = r.Curve3.CreateCatmullRomSpline(i, o, !1), s = r.Mesh.CreateLines("catmullRom", a.getPoints(), t); (s.color = new r.Color3(0, 1, 0)), s.setParent(e.assetInfo.rootMesh); } static createWorldSpline(e, t, n, i) { for (const o of e.trackInfo.Paths) { const a = []; for (let e = 0; e < o.GeneratedPath.length; ++e) { const s = new r.TransformNode("path_node", i); (s.position = o.GeneratedPath[e].clone()), s.position.addInPlace(t), s.rotateAround(t, r.Axis.Y, (n * Math.PI) / 180), a.push(s.position.clone()), s.dispose(); } e.trackPaths.push(a); } } static calcPointAlongTrack(e, t) { let n, o = e.currentTrackPiece.trackPaths[e.currentTrackPiece.selectedPathId], s = e.distanceFromPieceStart; const c = e.currentPosition; if (e.currentSegment + 1 >= o.length) { if (((n = a.GameController.instance.track.advanceToNextPieceAndBuild(e.currentTrackPiece)), null == n)) return e; (e.currentTrackPiece = n), (e.currentSegment = 0), (e.pathId = i.TrackPieceDefinition.MainPathID), (s = 0), (o = e.currentTrackPiece.trackPaths[e.currentTrackPiece.selectedPathId]); } const l = t.deltaTime * (e.boostVelocity > 0 ? e.boostVelocity : e.currentVelocity), u = e.currentDirection.multiplyByFloats(l, l, l); e.currentPosition = e.currentPosition.add(u); let h = o[e.currentSegment], d = o[e.currentSegment + 1], p = d.subtract(h), f = p.length(); p = p.normalize(); let m = e.currentPosition.subtract(h), g = r.Vector3.Dot(m, p); const b = e.currentSegment; for (; g > f; ) { if ((++e.currentSegment, e.currentSegment + 1 >= o.length)) { if (((n = a.GameController.instance.track.advanceToNextPieceAndBuild(e.currentTrackPiece)), null == n)) return e; (e.currentTrackPiece = n), (e.currentSegment = 0), (e.pathId = i.TrackPieceDefinition.MainPathID), (s = 0), (o = e.currentTrackPiece.trackPaths[e.currentTrackPiece.selectedPathId]); } if (((h = o[e.currentSegment]), (d = o[e.currentSegment + 1]), (p = d.subtract(h)), (f = p.length()), (p = p.normalize()), (m = e.currentPosition.subtract(h)), (g = r.Vector3.Dot(m, p)), b == e.currentSegment)) break; } let _ = 0; if (o.length > e.currentSegment) for (let t = 0; t < e.currentSegment; ++t) _ += r.Vector3.Distance(o[t], o[t + 1]); (s = _ + g), (e.distanceFromPieceStart = s), (e.distanceFromStartOfSegment = g), (e.currentDirection = p), (m = p.multiplyByFloats(g, g, g)), (e.currentPosition = m.add(h)); const v = e.currentPosition.subtract(c), y = r.Vector3.Dot(v, v.clone().normalize()); return (e.deltaDistance = y), a.GameController.instance.track.updatePacingDistance(y), e; } }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.AssetUtils = t.AssetInfo = void 0); const r = n(62), o = n(40), a = n(48); class s { constructor(e, t) { (this.meshes = []), (this.nodes = []), (this.fillMeshes = []), (this.skeletons = []), (this.animationGroups = []), (this.particleSystems = []), (this.collisionMeshes = []), (this.shadowMeshes = []), (this.axisScaling = new r.Vector3(-1, 1, -1)), (this.partOfPack = !1), (this.id = e), (this.name = t); } clone() { const e = new s(Math.random().toString(36).substr(2, 9), this.name), t = this.container.instantiateModelsToScene((e) => e); return ( (t.rootNodes[0].name = this.name), (e.rootMesh = t.rootNodes[0]), (e.animationGroups = t.animationGroups), (e.skeletons = t.skeletons), (e.axisScaling = this.axisScaling.clone()), (e.partOfPack = this.partOfPack), e.rootMesh .getChildMeshes(!1, (e) => e instanceof r.AbstractMesh) .forEach((t) => { const n = t; e.meshes.push(n), n.name.includes("_fill") ? (e.fillMeshes.push(n), n.setEnabled(!0), (n.isVisible = !0)) : n.name.includes("Collider") ? n.name.includes("ShadowBox") || n.name.includes("shadowtestbox") ? ((n.isVisible = !1), (n.checkCollisions = !0), e.shadowMeshes.push(n)) : ((n.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES), n.name.includes("mine_duck_b") && (n.scaling.z = 3), e.collisionMeshes.push(n), (n.checkCollisions = !0), (n.isVisible = a.GameConfig.showColliders)) : n.name.includes("god_rays") || ((n.checkCollisions = !0), (n.isVisible = !0)); }), (e.rootMesh.scaling = e.axisScaling.clone()), e ); } } t.AssetInfo = s; t.AssetUtils = class { static loadAssetAsync(e, t, n) { return i(this, void 0, void 0, function* () { const i = yield r.SceneLoader.LoadAssetContainerAsync(t, void 0, n), a = new s(e, e); (a.meshes = i.meshes), a.meshes.forEach((e) => { (e.checkCollisions = !1), (e.isVisible = !1), (e.alphaIndex = 0), (e.cullingStrategy = r.AbstractMesh.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY), (e.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES), e instanceof r.Mesh && (e.receiveShadows = !1); }); return ( i.transformNodes.forEach((e) => { if (e.name.includes("god")) { const t = 4, i = 8, a = 3, s = 2, c = s / t, l = a / i, u = (s - 1) / t, h = (a - 1) / i, d = new r.Vector4(c, l, u, h), p = { size: 1, frontUVs: d, backUVs: d, sideOrientation: r.Mesh.DOUBLESIDE }, f = r.MeshBuilder.CreatePlane("godray", p, n); (f.parent = e.parent), (f.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES), f.rotate(r.Axis.Z, (Math.PI / 180) * 135, r.Space.LOCAL), (f.position = e.position.clone()), (f.position.y -= 2), (f.position.x -= 3), f.setPivotPoint(new r.Vector3(0.5, 0.5, 0.5), r.Space.LOCAL), (f.scaling.x = 10), (f.scaling.y = 4), (f.isVisible = !1); } else if (e.name.includes("mine_entrance")) { const t = r.Mesh.CreatePlane("mine_exposure_plane", 1, n); (t.scaling = new r.Vector3(5, 5, 1)), (t.parent = e.parent), (t.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES), (t.position = e.position.clone()), (t.position.z = 3), (t.position.y = 1.5), (t.isVisible = !0); } }), (a.skeletons = i.skeletons), (a.animationGroups = i.animationGroups), (a.particleSystems = i.particleSystems), (a.container = i), a.container.createRootMesh(), a ); }); } }; }, function (e, t, n) { "use strict"; var i, r = (this && this.__decorate) || function (e, t, n, i) { var r, o = arguments.length, a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i); else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a); return o > 3 && a && Object.defineProperty(t, n, a), a; }, o = (this && this.__metadata) || function (e, t) { if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.AbiltiesUpgradeModel = t.Ability = t.Rule = void 0), n(176); const a = n(177), s = n(214); let c = class { constructor() { (this.level = 0), (this.amount = 0), (this.reward = 0); } }; r([a.jsonMember, o("design:type", Number)], c.prototype, "level", void 0), r([a.jsonMember, o("design:type", Number)], c.prototype, "amount", void 0), r([a.jsonMember, o("design:type", Number)], c.prototype, "reward", void 0), (c = r([a.jsonObject], c)), (t.Rule = c); let l = class { constructor() { (this.eid = 0), (this.rule = new Array()); } }; r([a.jsonMember, o("design:type", Number)], l.prototype, "eid", void 0), r([a.jsonMember, o("design:type", String)], l.prototype, "name", void 0), r([a.jsonArrayMember(c), o("design:type", Array)], l.prototype, "rule", void 0), (l = r([a.jsonObject], l)), (t.Ability = l); let u = (i = class { constructor() { this.data = []; } static fromJson(e) { return s.TypedJSONProvider.instance().get(i).parse(e); } }); r([a.jsonArrayMember(l), o("design:type", Array)], u.prototype, "data", void 0), (u = i = r([a.jsonObject], u)), (t.AbiltiesUpgradeModel = u); }, function (e, t, n) { "use strict"; var i, r, o = (this && this.__decorate) || function (e, t, n, i) { var r, o = arguments.length, a = o < 3 ? t : null === i ? (i = Object.getOwnPropertyDescriptor(t, n)) : i; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i); else for (var s = e.length - 1; s >= 0; s--) (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a); return o > 3 && a && Object.defineProperty(t, n, a), a; }, a = (this && this.__metadata) || function (e, t) { if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.DailyChallenges = t.ChallengeData = t.ObjectiveFilterType = t.ObjectiveTimeType = t.ObjectiveType = void 0), n(176); const s = n(177), c = n(214); var l, u, h; !(function (e) { (e[(e.None = -1)] = "None"), (e[(e.CollectCoins = 0)] = "CollectCoins"), (e[(e.Distance = 1)] = "Distance"), (e[(e.Runs = 2)] = "Runs"), (e[(e.Score = 3)] = "Score"), (e[(e.CollectPowerups = 4)] = "CollectPowerups"), (e[(e.Resurrects = 5)] = "Resurrects"), (e[(e.UsedPowerMeter = 6)] = "UsedPowerMeter"), (e[(e.WaterZone_Exit = 7)] = "WaterZone_Exit"), (e[(e.MineZone_Exit = 8)] = "MineZone_Exit"); })((l = t.ObjectiveType || (t.ObjectiveType = {}))), (function (e) { (e[(e.None = -1)] = "None"), (e[(e.OverTime = 0)] = "OverTime"), (e[(e.PerRun = 1)] = "PerRun"), (e[(e.Lifetime = 2)] = "Lifetime"); })((u = t.ObjectiveTimeType || (t.ObjectiveTimeType = {}))), (function (e) { (e[(e.None = -1)] = "None"), (e[(e.WithoutCoins = 0)] = "WithoutCoins"), (e[(e.WithoutPowerups = 1)] = "WithoutPowerups"), (e[(e.WithoutStumble = 2)] = "WithoutStumble"), (e[(e.WithoutSaveMe = 3)] = "WithoutSaveMe"), (e[(e.InMineCart = 4)] = "InMineCart"), (e[(e.InWaterSlide = 5)] = "InWaterSlide"); })((h = t.ObjectiveFilterType || (t.ObjectiveFilterType = {}))); let d = (i = class { constructor() { (this.objectiveType = l.Distance), (this.objectiveTimeType = u.PerRun), (this.objectiveFilterType = h.None); } clone() { const e = new i(); return ( (e.ID = this.ID), (e.descriptionPreEarned = this.descriptionPreEarned), (e.tier = this.tier), (e.objectiveType = this.objectiveType), (e.objectiveTimeType = this.objectiveTimeType), (e.objectiveFilterType = this.objectiveFilterType), (e.statValue = this.statValue), e ); } }); o([s.jsonMember, a("design:type", Number)], d.prototype, "ID", void 0), o([s.jsonMember, a("design:type", String)], d.prototype, "descriptionPreEarned", void 0), o([s.jsonMember, a("design:type", Number)], d.prototype, "tier", void 0), o([s.jsonMember, a("design:type", Number)], d.prototype, "objectiveType", void 0), o([s.jsonMember, a("design:type", Number)], d.prototype, "objectiveTimeType", void 0), o([s.jsonMember, a("design:type", Number)], d.prototype, "objectiveFilterType", void 0), o([s.jsonMember, a("design:type", Number)], d.prototype, "statValue", void 0), (d = i = o([s.jsonObject], d)), (t.ChallengeData = d); let p = (r = class { constructor() { this.data = []; } static fromJson(e) { return c.TypedJSONProvider.instance().get(r).parse(e); } }); o([s.jsonArrayMember(d), a("design:type", Array)], p.prototype, "data", void 0), (p = r = o([s.jsonObject], p)), (t.DailyChallenges = p); }, function (e) { e.exports = JSON.parse( '{"data":[{"eid":0,"name":"Shield","rule":[{"level":1,"amount":250,"reward":25},{"level":2,"amount":1000,"reward":50},{"level":3,"amount":2500,"reward":75},{"level":4,"amount":5000,"reward":100},{"level":5,"amount":10000,"reward":150}]},{"eid":1,"name":"CoinMagnet","rule":[{"level":1,"amount":250,"reward":25},{"level":2,"amount":2500,"reward":50},{"level":3,"amount":5000,"reward":75},{"level":4,"amount":10000,"reward":100},{"level":5,"amount":25000,"reward":150}]},{"eid":2,"name":"Boost","rule":[{"level":1,"amount":100,"reward":50},{"level":2,"amount":1000,"reward":100},{"level":3,"amount":5000,"reward":150},{"level":4,"amount":10000,"reward":200},{"level":5,"amount":25000,"reward":250}]}]}' ); }, function (e) { e.exports = JSON.parse( '{"data":[{"ID":0,"descriptionPreEarned":"Run 1,000 Meters in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1000},{"ID":1,"descriptionPreEarned":"Run 1,500 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1500},{"ID":2,"descriptionPreEarned":"Run 1,750 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1750},{"ID":3,"descriptionPreEarned":"Run 2,000 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2000},{"ID":4,"descriptionPreEarned":"Run 2,250 Meters in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2250},{"ID":5,"descriptionPreEarned":"Run 2,500 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2500},{"ID":6,"descriptionPreEarned":"Run 3,000 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":3000},{"ID":7,"descriptionPreEarned":"Run 3,500 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":3500},{"ID":8,"descriptionPreEarned":"Run 4,000 Meters in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":4000},{"ID":9,"descriptionPreEarned":"Run 3,000 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3000},{"ID":10,"descriptionPreEarned":"Run 3,500 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3500},{"ID":11,"descriptionPreEarned":"Run 4,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":4000},{"ID":12,"descriptionPreEarned":"Run 4,500 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":4500},{"ID":13,"descriptionPreEarned":"Run 5,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5000},{"ID":14,"descriptionPreEarned":"Run 5,500 Meters","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5500},{"ID":15,"descriptionPreEarned":"Run 6,500 Meters","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":6500},{"ID":16,"descriptionPreEarned":"Run 7,000 Meters","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":7000},{"ID":17,"descriptionPreEarned":"Run 8,000 Meters","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":8000},{"ID":18,"descriptionPreEarned":"Run 9,000 Meters","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":9000},{"ID":19,"descriptionPreEarned":"Run 10,000 Meters","tier":5,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10000},{"ID":20,"descriptionPreEarned":"Run 500 Meters\\nCollecting No Coins","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":0,"statValue":500},{"ID":21,"descriptionPreEarned":"Run 750 Meters\\nCollecting No Coins","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":0,"statValue":750},{"ID":22,"descriptionPreEarned":"Run 1,000 Meters\\nWithout Stumbling in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":1000},{"ID":23,"descriptionPreEarned":"Run 2,000 Meters\\nWithout Stumbling in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":2000},{"ID":24,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Stumbling in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":3000},{"ID":25,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Stumbling in One Run","tier":4,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":4000},{"ID":26,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Stumbling","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":3000},{"ID":27,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Stumbling","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":4000},{"ID":28,"descriptionPreEarned":"Run 5,000 Meters\\nWithout Stumbling","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":5000},{"ID":29,"descriptionPreEarned":"Run 6,000 Meters\\nWithout Stumbling","tier":5,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":6000},{"ID":30,"descriptionPreEarned":"Run 2,000 Meters\\nWithout Powerups in One Run","tier":2,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":2000},{"ID":31,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Powerups in One Run","tier":3,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":3000},{"ID":32,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Powerups in One Run","tier":4,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":4000},{"ID":33,"descriptionPreEarned":"Run 5,000 Meters\\nWithout Powerups in One Run","tier":5,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":1,"statValue":5000},{"ID":34,"descriptionPreEarned":"Run 2,000 Meters\\nWithout Powerups in One Run","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":2000},{"ID":35,"descriptionPreEarned":"Run 3,000 Meters\\nWithout Powerups in One Run","tier":3,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":3000},{"ID":36,"descriptionPreEarned":"Run 4,000 Meters\\nWithout Powerups in One Run","tier":4,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":4000},{"ID":37,"descriptionPreEarned":"Run 5,000 Meters\\nWithout Powerups in One Run","tier":5,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":1,"statValue":5000},{"ID":38,"descriptionPreEarned":"Ride the Minecart\\nFor 750 Meters in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":4,"statValue":750},{"ID":39,"descriptionPreEarned":"Ride the Minecart\\nFor 1000 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":1000},{"ID":40,"descriptionPreEarned":"Ride the Minecart\\nFor 1,500 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":1500},{"ID":41,"descriptionPreEarned":"Ride the Minecart\\nFor 2,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":2000},{"ID":42,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 750 Meters in One Run","tier":1,"objectiveType":1,"objectiveTimeType":1,"objectiveFilterType":5,"statValue":750},{"ID":43,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 1000 Meters","tier":1,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":1000},{"ID":44,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 1,500 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":1500},{"ID":45,"descriptionPreEarned":"Swim in the WaterSlide\\nfor 2,000 Meters","tier":2,"objectiveType":1,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":2000},{"ID":46,"descriptionPreEarned":"Collect 250 Coins\\nin One Run","tier":1,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":250},{"ID":47,"descriptionPreEarned":"Collect 350 Coins\\nin One Run","tier":2,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":350},{"ID":48,"descriptionPreEarned":"Collect 400 Coins\\nin One Run","tier":2,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":400},{"ID":49,"descriptionPreEarned":"Collect 500 Coins\\nin One Run","tier":3,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":500},{"ID":50,"descriptionPreEarned":"Collect 600 Coins\\nin One Run","tier":3,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":600},{"ID":51,"descriptionPreEarned":"Collect 700 Coins\\nin One Run","tier":3,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":700},{"ID":52,"descriptionPreEarned":"Collect 800 Coins\\nin One Run","tier":4,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":800},{"ID":53,"descriptionPreEarned":"Collect 900 Coins\\nin One Run","tier":4,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":900},{"ID":54,"descriptionPreEarned":"Collect 1,000 Coins\\nin One Run","tier":5,"objectiveType":0,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":1000},{"ID":55,"descriptionPreEarned":"Collect 1,000 Coins","tier":1,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1000},{"ID":56,"descriptionPreEarned":"Collect 1,250 Coins","tier":1,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1250},{"ID":57,"descriptionPreEarned":"Collect 1,500 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1500},{"ID":58,"descriptionPreEarned":"Collect 1,750 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1750},{"ID":59,"descriptionPreEarned":"Collect 2,000 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2000},{"ID":60,"descriptionPreEarned":"Collect 2,250 Coins","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2250},{"ID":61,"descriptionPreEarned":"Collect 2,500 Coins","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2500},{"ID":62,"descriptionPreEarned":"Collect 2,750 Coins","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":2750},{"ID":63,"descriptionPreEarned":"Collect 3,000 Coins","tier":4,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3000},{"ID":64,"descriptionPreEarned":"Collect 250 Coins\\nin the Minecart","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":250},{"ID":65,"descriptionPreEarned":"Collect 250 Coins\\nin the WaterSlide","tier":2,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":250},{"ID":66,"descriptionPreEarned":"Collect 500 Coins\\nin the Minecart","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":500},{"ID":67,"descriptionPreEarned":"Collect 500 Coins\\nin the WaterSlide","tier":3,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":500},{"ID":68,"descriptionPreEarned":"Collect 750 Coins\\nin the Minecart","tier":4,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":4,"statValue":750},{"ID":69,"descriptionPreEarned":"Collect 750 Coins\\nin the WaterSlide","tier":4,"objectiveType":0,"objectiveTimeType":0,"objectiveFilterType":5,"statValue":750},{"ID":70,"descriptionPreEarned":"Score 30,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":30000},{"ID":71,"descriptionPreEarned":"Score 45,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":45000},{"ID":72,"descriptionPreEarned":"Score 60,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":60000},{"ID":73,"descriptionPreEarned":"Score 75,000 points","tier":1,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":75000},{"ID":74,"descriptionPreEarned":"Score 90,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":90000},{"ID":75,"descriptionPreEarned":"Score 100,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":100000},{"ID":76,"descriptionPreEarned":"Score 120,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":120000},{"ID":77,"descriptionPreEarned":"Score 140,000 points","tier":2,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":140000},{"ID":78,"descriptionPreEarned":"Score 160,000 points","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":160000},{"ID":79,"descriptionPreEarned":"Score 180,000 points","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":180000},{"ID":80,"descriptionPreEarned":"Score 200,000 points","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":200000},{"ID":81,"descriptionPreEarned":"Score 250,000 points","tier":4,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":250000},{"ID":82,"descriptionPreEarned":"Score 30,000 points\\nin One Run","tier":1,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":30000},{"ID":83,"descriptionPreEarned":"Score 45,000 points\\nin One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":45000},{"ID":84,"descriptionPreEarned":"Score 60,000 points\\nin One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":60000},{"ID":85,"descriptionPreEarned":"Score 75,000 points\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":75000},{"ID":86,"descriptionPreEarned":"Score 90,000 points\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":90000},{"ID":87,"descriptionPreEarned":"Score 100,000 points\\nin One Run","tier":4,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":100000},{"ID":88,"descriptionPreEarned":"Score 30,000 points \'No Save Me\'\\nin One Run","tier":1,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":30000},{"ID":89,"descriptionPreEarned":"Score 50,000 points \'No Save Me\'\\nin One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":50000},{"ID":90,"descriptionPreEarned":"Score 70,000 points \'No Save Me\'\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":70000},{"ID":91,"descriptionPreEarned":"Score 90,000 points \'No Save Me\'\\nin One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":3,"statValue":90000},{"ID":92,"descriptionPreEarned":"Score 30,000 points\\nWithout Stumbling in One Run","tier":1,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":30000},{"ID":93,"descriptionPreEarned":"Score 50,000 points\\nWithout Stumbling in One Run","tier":2,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":50000},{"ID":94,"descriptionPreEarned":"Score 70,000 points\\nWithout Stumbling in One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":70000},{"ID":95,"descriptionPreEarned":"Score 90,000 points\\nWithout Stumbling in One Run","tier":3,"objectiveType":3,"objectiveTimeType":1,"objectiveFilterType":2,"statValue":90000},{"ID":96,"descriptionPreEarned":"Score 160,000 points\\nWithout Stumbling in One Run","tier":3,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":160000},{"ID":97,"descriptionPreEarned":"Score 180,000 points\\nWithout Stumbling in One Run","tier":4,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":180000},{"ID":98,"descriptionPreEarned":"Score 200,000 points\\nWithout Stumbling in One Run","tier":4,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":200000},{"ID":99,"descriptionPreEarned":"Score 250,000 points\\nWithout Stumbling in One Run","tier":5,"objectiveType":3,"objectiveTimeType":0,"objectiveFilterType":2,"statValue":250000},{"ID":100,"descriptionPreEarned":"Use a \'Save Me\'","tier":1,"objectiveType":5,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1},{"ID":101,"descriptionPreEarned":"Use a \'Save Me\' 3 Times","tier":2,"objectiveType":5,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":102,"descriptionPreEarned":"Use a \'Save Me\' 2 Times\\nin One Run","tier":3,"objectiveType":5,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":2},{"ID":103,"descriptionPreEarned":"Complete 3 Runs","tier":1,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":104,"descriptionPreEarned":"Complete 5 Runs","tier":21,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":105,"descriptionPreEarned":"Complete 8 Runs","tier":3,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":8},{"ID":106,"descriptionPreEarned":"Complete 10 Runs","tier":4,"objectiveType":2,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10},{"ID":107,"descriptionPreEarned":"Collect 5 PowerUps","tier":2,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":108,"descriptionPreEarned":"Collect 10 PowerUps","tier":2,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10},{"ID":109,"descriptionPreEarned":"Collect 15 PowerUps","tier":3,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":15},{"ID":110,"descriptionPreEarned":"Collect 25 PowerUps","tier":4,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":25},{"ID":111,"descriptionPreEarned":"Collect 30 PowerUps","tier":5,"objectiveType":4,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":30},{"ID":112,"descriptionPreEarned":"Use PowerMeter 3 Times\\nin one run","tier":3,"objectiveType":6,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":3},{"ID":113,"descriptionPreEarned":"Use PowerMeter 5 Times\\nin one run","tier":4,"objectiveType":6,"objectiveTimeType":1,"objectiveFilterType":-1,"statValue":5},{"ID":114,"descriptionPreEarned":"Use PowerMeter 3 Times ","tier":2,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":115,"descriptionPreEarned":"Use PowerMeter 5 Times ","tier":3,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":116,"descriptionPreEarned":"Use PowerMeter 7 Times ","tier":4,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":7},{"ID":117,"descriptionPreEarned":"Use PowerMeter 10 Times ","tier":5,"objectiveType":6,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":10},{"ID":118,"descriptionPreEarned":"Survive the WaterSlide ","tier":1,"objectiveType":7,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1},{"ID":119,"descriptionPreEarned":"Survive riding the MineCart ","tier":1,"objectiveType":8,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":1},{"ID":120,"descriptionPreEarned":"Survive the WaterSlide 3 times ","tier":2,"objectiveType":7,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":121,"descriptionPreEarned":"Survive riding the MineCart 3 times ","tier":2,"objectiveType":8,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":3},{"ID":122,"descriptionPreEarned":"Survive the WaterSlide 5 Times ","tier":3,"objectiveType":7,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5},{"ID":123,"descriptionPreEarned":"Survive riding the MineCart 5 Times ","tier":3,"objectiveType":8,"objectiveTimeType":0,"objectiveFilterType":-1,"statValue":5}]}' ); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.ShadersController = t.EType = void 0); const i = n(40), r = n(29); var o; !(function (e) { (e[(e.MINE_EXPOSURE = 0)] = "MINE_EXPOSURE"), (e[(e.TRACK_PIECE = 1)] = "TRACK_PIECE"); })((o = t.EType || (t.EType = {}))); t.ShadersController = class { constructor(e) { (this.shaders = new Map()), (this.scene = e); } addShader(e, t) { this.shaders.set(e, t); } initialize() { r.EventHandler.instance.addListener(r.EventID.OnPlayGame, () => { this.shaders.get(o.TRACK_PIECE).setInt("vertexFogEnabled", 1); }), r.EventHandler.instance.addListener(r.EventID.OnPlayerDeath, () => { this.shaders.get(o.TRACK_PIECE).setInt("vertexFogEnabled", 0); }), r.EventHandler.instance.addListener(r.EventID.OnContinueGame, () => { this.shaders.get(o.TRACK_PIECE).setInt("vertexFogEnabled", 1); }); } preUpdate() { this.shaders.forEach((e, t) => { switch (t) { case o.MINE_EXPOSURE: const t = i.GameController.instance.camera.camera.position; e.setVector3("playerPosition", t); } }); } postUpdate() {} pause() {} resume() {} reset() {} }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CoinsMaterialProvider = void 0); const i = n(62); t.CoinsMaterialProvider = class { constructor(e) { this._scene = e; } get defaultCoinMaterial() { const e = new i.Texture("assets/objects/coins/coin_default.jpg", this._scene), t = new i.StandardMaterial("DefaultCoinMaterial", this._scene); return (t.diffuseTexture = e), (t.backFaceCulling = !0), (t.emissiveColor = new i.Color3(1, 1, 1)), t; } get defaultPickupMaterial() { const e = new i.Texture("assets/objects/pickups/PickUps01.jpg", this._scene), t = new i.StandardMaterial("DefaultPickupMaterial", this._scene); return (t.diffuseTexture = e), (t.backFaceCulling = !0), (t.emissiveColor = new i.Color3(1, 1, 1)), t; } update() {} }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), n(211), n(292); const r = n(62), o = n(40), a = n(215), s = n(29), c = n(48); t.default = class { constructor(e) { (this._debugRenderCount = 0), (this._canvas = e), (this._divFps = document.getElementById("fps_value")), (this._divTrackPiece = document.getElementById("track_piece_name")); const t = new r.Engine(e, !0); (t.enableOfflineSupport = !1), (this._scene = new r.Scene(t)), this._initializeAsync(); const n = new r.SceneOptimizerOptions(); n.addOptimization(new r.HardwareScalingOptimization(0, 1)); new r.SceneOptimizer(this._scene, n).start(), (a.GLTFValidation.Configuration = void 0), (r.DracoCompression.Configuration = { decoder: { wasmUrl: "assets/babylonjs/draco_wasm_wrapper_gltf.js", wasmBinaryUrl: "assets/babylonjs/draco_decoder_gltf.wasm", fallbackUrl: "assets/babylonjs/draco_decoder_gltf.js" }, }); } _initializeAsync() { return i(this, void 0, void 0, function* () { const e = this._scene.getEngine(); (r.SceneLoader.ShowLoadingScreen = !1), this._checkProgress(), o.GameController.instance.initialize(this._canvas, this._scene), yield this._scene.whenReadyAsync(), s.EventHandler.instance.fireEvent(s.EventID.OnLoadingUpdate, 99), clearInterval(this._progressTimer), e.runRenderLoop(() => { this._scene.render(), c.GameConfig.showDebugInfo && this._debugRenderCount++ > 10 && ((this._divFps.innerHTML = e.getFps().toFixed() + " fps"), o.GameController.instance.character.params.currentTrackPiece ? (this._divTrackPiece.innerHTML = o.GameController.instance.character.params.currentTrackPiece.assetInfo.name) : (this._divTrackPiece.innerHTML = "-"), (this._debugRenderCount = 0)); }), setTimeout(() => { this.resize(), s.EventHandler.instance.fireEvent(s.EventID.OnLoadingUpdate, 100), s.EventHandler.instance.fireEvent(s.EventID.OnGameLoaded); }, 500); }); } _checkProgress() { let e = 0, t = 0, n = 0; this._progressTimer = setInterval(() => { 0 == e && (e = this._scene.getWaitingItemsCount()); const i = 100 - (this._scene.getWaitingItemsCount() / e) * 100; (n += (i - t) / 10), n >= i && ((n = i), (t = i)), n < 0 && (n = 0), n < 99 ? s.EventHandler.instance.fireEvent(s.EventID.OnLoadingUpdate, n) : clearInterval(this._progressTimer); }, 100); } resize() { this._scene.getEngine().resize(); } }; }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "ecb75761cc5768501b9345d4417c76f7.png"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "379241e29c75c9e274f9190a2e0874bb.jpg"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "52d79153235ad2a88f8b1ff2ffdbe067.jpg"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "079dea52d8f43464bedd59bc35cc7999.jpg"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "f56ee7e8556446da578df0b7c3ffceaf.webp"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "cfba04ff0ae4c4249eb648d48bf08d37.png"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "e27e9516fb177e6a09bedd53cf084336.webp"); }, function (e, t, n) { "use strict"; n.r(t), (t.default = n.p + "35f3ce4bf67811c36a2976dae509d4d1.png"); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterController = void 0); const r = n(62), o = n(40), a = n(156), s = n(250), c = n(251), l = n(139), u = n(231), h = n(133), d = n(268), p = n(29), f = n(52), m = n(48); t.CharacterController = class { constructor(e) { (this._stopCalcNextPosition = !1), (this._params = new a.CharacterParams()), (this._isInitialized = !1), (this._queueSlide = !1), (this._queueJump = !1), (this._isInNarrow = !1), (this.PLAYER_COLLIDER_SLIDESCALE = new r.Vector3(2.2, 0.6, 2.2)), (this.PLAYER_COLLIDER_WATERSLIDESCALE = new r.Vector3(2.2, 0.1, 2.2)), (this.PLAYER_COLLIDER_MINECARTDUCKSCALE = new r.Vector3(2.2, 0.001, 2.2)), (this.PLAYER_COLLIDER_MINECARTSCALE = new r.Vector3(2.2, 1.35, 2.2)), (this.PLAYER_COLLIDER_DEFAULT_POSITION = new r.Vector3(0, 1.5, 0)), (this.PLAYER_COLLIDER_MINECART_POSITION = new r.Vector3(0, 2.45, 0)), (this.PLAYER_COLLIDER_SLIDE_POSITION = new r.Vector3(0, -0.2, 0)), (this.SHAKEMAGNITUDE_SMALL = 0.05), (this.SHAKEMAGNITUDE_BIG = 0.1), (this.SHAKEDURATION_SMALL = 0.5), (this.PLAYER_DEFAULT_SPEED = 0.013), (this.PLAYER_MAX_SPEED = 0.026), (this.PLAYER_SPEED_BOOST = this.PLAYER_DEFAULT_SPEED + 0.013), (this.PLAYER_SPEED_BOOST_SLOW = 0.003), (this.PLAYER_DEFAULT_JUMP_SPEED = 0.015), (this.PLAYER_MAX_JUMP_SPEED = 0.028), (this.GOD_MODE_DURATION = 3), (this.GOD_MODE_RELAX_START = 1), (this._distanceDeltaSum = 0), (this._canAllowInput = !1), (this.GOD_MODE_DISABLED = 0), (this.GOD_MODE_ENABLED = 1), (this.GOD_MODE_EXHAUSTED = 2), (this._godModeState = this.GOD_MODE_DISABLED), (this._godModeTime = this.GOD_MODE_DURATION), (this._collisionStateObstacle = 0), (this._scene = e); } initialize() { return i(this, void 0, void 0, function* () { p.EventHandler.instance.addListener(p.EventID.OnTrackRootInit, (e) => { this._isInitialized && ((this._params.currentTrackPiece = e), (this._params.currentVelocity = this._runSpeed)); }), p.EventHandler.instance.addListener(p.EventID.OnCameraIntroEnd, () => { this._canAllowInput = !0; }), (this._character = new d.Character()), yield this._character.loadAssetAsync(this._scene), (this._shadow = this._character.playerShadow), (this._runSpeed = this.PLAYER_DEFAULT_SPEED), (this._jumpSpeed = this.PLAYER_DEFAULT_JUMP_SPEED), this._setupAnimator(), this._setupMover(), o.GameController.instance.camera.setTarget(this._character.playerTransform), this._setState(a.MovementState.Idle), this._setupEvents(), (this._isInitialized = !0), null == this._params.currentTrackPiece && null != o.GameController.instance.track.initialTrackPiece && ((this._params.currentTrackPiece = o.GameController.instance.track.initialTrackPiece), (this._params.currentVelocity = this._runSpeed)); }); } getBoostSlowSpeed() { return this._runSpeed + this.PLAYER_SPEED_BOOST_SLOW; } isInGodMode() { return this._godModeState != this.GOD_MODE_DISABLED; } setToResurrectionState() { let e = this.params.currentTrackPiece, t = !1, n = 5; for (; null != e; ) { const n = e.SelectedDefinition; if (!n.isObstacle() && !n.isTurn()) { (t = !0), (this.params.currentTrackPiece = e); break; } e = e.NextTrackPieces[0]; } if (!t) for (n = 3; null != e && n > 0; ) { const i = e.SelectedDefinition; if (!i.isObstacle() && !i.isTurn()) { (t = !0), (this.params.currentTrackPiece = e); break; } (e = e.PreviousTrackPiece), n--; } t || (e = this.params.currentTrackPiece), (this.params.currentSegment = 0), (this.params.distanceFromPieceStart = 0), (this.params.currentPosition = this.params.currentTrackPiece.assetInfo.rootMesh.position), this._shadow.setEnabled(!0), this.player.detachFromBone(), (this.player.position = this.params.currentPosition); let i = this.params.currentTrackPiece.getStartDirection().clone(); (i = i.normalize()), this.player.lookAt(this.player.position.subtract(i)), (this._runSpeed = this.PLAYER_DEFAULT_SPEED), e.SelectedDefinition.IsWaterSlide ? (this._character.startWaterTrail(), this._shadow.setEnabled(!1), this._setState(a.MovementState.WaterSliding)) : e.SelectedDefinition.IsMine ? (this._shadow.setEnabled(!1), this._setState(a.MovementState.CartRiding)) : this._setState(a.MovementState.Running), this._playerAnimator._setAnimationToFirstFrame(), (this._playerMover.TurnState = a.TurnState.None), o.GameController.instance.camera.updateForResurrection(this.player), (this._godModeState = this.GOD_MODE_ENABLED), (this._godModeTime = this.GOD_MODE_DURATION), p.EventHandler.instance.fireEvent(p.EventID.OnGodModeEnabled), p.EventHandler.instance.fireEvent(p.EventID.OnRessurect), (this._runSpeed = 0.5 * this._resurrectRunSpeed), (this._jumpSpeed = 0.5 * this._resurrectJumpSpeed), this._updateSpeed(), this.pause(), (this._collisionStateObstacle = 0), (o.GameController.instance.track.stopRemovalOnDeath = !1), (this._stopCalcNextPosition = !1); } updateShadow() { (this._shadow.position = this.player.position.clone()), (this._shadow.position.y = 0.05 + this.params.currentPosition.y), (this._shadow.rotation = this.player.rotation.clone()), this._shadow.rotate(r.Axis.X, r.Tools.ToRadians(90), r.Space.LOCAL); } _godModeUpdate() { const e = this._scene.getEngine().getDeltaTime() / 1e3; (this._godModeTime -= e), this._godModeTime < 0 ? ((this._godModeState = this.GOD_MODE_DISABLED), p.EventHandler.instance.fireEvent(p.EventID.OnGodModeDisabled)) : this._godModeTime < this.GOD_MODE_RELAX_START && this._godModeState == this.GOD_MODE_ENABLED && ((this._godModeState = this.GOD_MODE_EXHAUSTED), p.EventHandler.instance.fireEvent(p.EventID.OnGodModeExhausted)); } preUpdate() { this._shadow.isEnabled() && this.updateShadow(), o.GameController.instance.isGameRunning && this._isInitialized && ((this._godModeState != this.GOD_MODE_ENABLED && this._godModeState != this.GOD_MODE_EXHAUSTED) || this._godModeUpdate(), null != this._params.currentTrackPiece && (this.isPlayerDead || this._stopCalcNextPosition || ((this._params = u.TrackHelper.calcPointAlongTrack(this._params, this._scene)), this._distanceDeltaSum >= 1 && (f.gameState.updateDistance(this._movementState, this._distanceDeltaSum), (this._distanceDeltaSum = 0)), (this._distanceDeltaSum += this._params.deltaDistance), o.GameController.instance.tutorial.isEnabled && o.GameController.instance.tutorial.processScoreToRollback())), this._queueSlide && ((this._queueSlide = !1), this._processSlideInput()), this._queueJump && ((this._queueJump = !1), this._processJumpInput()), this.isPlayerDead || null == this._params.currentTrackPiece || (o.GameController.instance.tutorial.isEnabled || this.increaseSpeed(), this._checkCollission()), this._playerMover.update(this._movementState, this._params)); } postUpdate() { if (null == this.params.currentTrackPiece) return; let e = !1; const t = new r.Color3(0.2, 0.2, 0.2), n = this.params.currentTrackPiece.assetInfo.shadowMeshes; for (let t = 0; t < n.length; t++) { const i = n[t]; if (this._character.playerCollider.intersectsMesh(i, !0, !0)) { e = !0; break; } } this._character.material.albedoColor = e ? t : r.Color3.White(); } pause() { this._playerAnimator.pause(); } resume() { this._playerAnimator.resume(); } reset() { var e, t; this._shadow.setEnabled(!0), this.player.detachFromBone(), (this.player.rotationQuaternion = r.Quaternion.Identity()), (this._stopCalcNextPosition = !1), (this._isInNarrow = !1), (this._runSpeed = this.PLAYER_DEFAULT_SPEED), (this._jumpSpeed = this.PLAYER_DEFAULT_JUMP_SPEED), this._updateSpeed(), this._setState(a.MovementState.Idle), (this._params = new a.CharacterParams()), this._playerMover.reset(), this._character.setPlayerColliderToDefault(), (this._character.playerCollider.position = this.PLAYER_COLLIDER_DEFAULT_POSITION), this._character.playerTransform.setEnabled(!1), null === (e = this._character.dustFx) || void 0 === e || e.stop(), null === (t = this._character.waterSplashFx) || void 0 === t || t.stop(), this._character.stopWaterTrail(), (this._canAllowInput = !1), (this._queueJump = !1), (this._queueSlide = !1), this._character.setPlayerCartVisibility(!1), this._playerAnimator.setTrigger(a.AnimationState.Idle), o.GameController.instance.tutorial.shouldRestartTutorial && ((this._params.currentPosition = new r.Vector3(0, 0, 0)), (this._runSpeed = 0.5 * this._resurrectRunSpeed), (this._jumpSpeed = 0.5 * this._resurrectJumpSpeed), this._updateSpeed(), o.GameController.instance.camera.updateForResurrection(this.player), (this._canAllowInput = !0)), (this._resurrectRunSpeed = 0), (this._resurrectJumpSpeed = 0), (this._collisionStateObstacle = 0); } increaseSpeed() { (this._runSpeed += (this._scene.deltaTime / 1e3) * 5e-5), (this._jumpSpeed += (this._scene.deltaTime / 1e3) * 45e-6), this._updateSpeed(); } _updateSpeed() { this._runSpeed >= this.PLAYER_MAX_SPEED && (this._runSpeed = this.PLAYER_MAX_SPEED), this._jumpSpeed >= this.PLAYER_MAX_JUMP_SPEED && (this._jumpSpeed = this.PLAYER_MAX_JUMP_SPEED), this._runSpeed <= this.PLAYER_DEFAULT_SPEED && (this._runSpeed = this.PLAYER_DEFAULT_SPEED), this._jumpSpeed <= this.PLAYER_DEFAULT_JUMP_SPEED && (this._jumpSpeed = this.PLAYER_DEFAULT_JUMP_SPEED), this._playerMover.updateSpeedVars(this._runSpeed, this._jumpSpeed); } _setupEvents() { p.EventHandler.instance.addListener(p.EventID.OnKeyPress, (e) => { o.GameController.instance.isGameRunning && this._canAllowInput && ("Slide" == e ? this._processSlideInput() : "Jump" == e ? this._processJumpInput() : ("Left" == e || "Right" == e) && this._playerMover.tiltOrTurn(e)); }), p.EventHandler.instance.addListener(p.EventID.OnPlayGame, () => { this._shadow.setEnabled(!0), this._character.playerTransform.setEnabled(!0), o.GameController.instance.tutorial.isEnabled ? "waterslide" == o.GameController.instance.tutorial.currentTutorialZone ? this._setState(a.MovementState.WaterSliding) : "mine" == o.GameController.instance.tutorial.currentTutorialZone ? (this._setState(a.MovementState.CartRiding), this._character.setPlayerCartVisibility(!0)) : this._setState(a.MovementState.Running) : this._setState(a.MovementState.Running); }), p.EventHandler.instance.addListener(p.EventID.OnDebugFeatureChange, () => { m.GameConfig.showPlayerCollider ? (this._character.playerCollider.visibility = 0.5) : (this._character.playerCollider.visibility = 0); }); } _processSlideInput() { switch (this._movementState) { case a.MovementState.Running: if (this._playerAnimator.CurrentAnimationState == a.AnimationState.Jump || this._playerAnimator.CurrentAnimationState == a.AnimationState.Slide) return void (this._queueSlide = !0); this._playerAnimator.setTrigger(a.AnimationState.SlideEnter), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Slide), (this._character.playerCollider.scaling = this.PLAYER_COLLIDER_SLIDESCALE), (this._character.playerCollider.position = this.PLAYER_COLLIDER_SLIDE_POSITION); break; case a.MovementState.WaterSliding: (this._character.playerCollider.scaling = this.PLAYER_COLLIDER_WATERSLIDESCALE), this._character.waterDuckFx.start(), this._playerMover.performWaterDuck(); break; case a.MovementState.CartRiding: this._playerAnimator.setTrigger(a.AnimationState.MineCartDuck), (this._character.playerCollider.scaling = this.PLAYER_COLLIDER_MINECARTDUCKSCALE); } } _processJumpInput() { if (this._movementState == a.MovementState.Running) { if (this._playerAnimator.CurrentAnimationState == a.AnimationState.Jump) return void (this._queueJump = !0); (this._params.currentVelocity = this._jumpSpeed), this._character.setPlayerColliderToDefault(), this._playerAnimator.setTrigger(a.AnimationState.Jump), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.GruntJump); } } _setState(e) { if (this._movementState != e) { (e != a.MovementState.WaterSliding && e != a.MovementState.CartRiding && e != a.MovementState.Ziplining) || p.EventHandler.instance.fireEvent(p.EventID.OnPlayerEnteringNewZone), (this._movementState = e); const t = a.MovementAnimations.get(this._movementState); null != t && this._playerAnimator.setTrigger(t); } } _setupAnimator() { (this._playerAnimator = new s.CharacterAnimator(this._character.animationGroups)), this._playerAnimator.onRunStumbleAnimationEnd.add(() => { (this._runSpeed = 0.85 * this._runSpeed), (this._jumpSpeed = 0.85 * this._jumpSpeed), this._character.setPlayerColliderToDefault(), this._playerAnimator.setTrigger(a.AnimationState.Run); }), this._playerAnimator.onJumpAnimationEnd.add(() => { this._character.setPlayerColliderToDefault(), this._playerMover.resetJumpTimer(), this._movementState != a.MovementState.Death && this._movementState != a.MovementState.Ziplining && (this._playerAnimator.setTrigger(a.AnimationState.Run), this._character.dustFx.start(), (this._character.dustFx.targetStopDuration = 1), (this._params.currentVelocity = this._runSpeed)), (this._params.currentVelocity = this._runSpeed), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.GruntJumpLand); }), this._playerAnimator.onSlideEnterAnimationEnd.add(() => { this._playerAnimator.CurrentAnimationState != a.AnimationState.Jump && (this._character.dustFx.start(), (this._character.dustFx.targetStopDuration = 1), this._movementState != a.MovementState.Death && this._playerAnimator.setTrigger(a.AnimationState.Slide)); }), this._playerAnimator.onSlideAnimationEnd.add(() => { this._playerAnimator.CurrentAnimationState != a.AnimationState.Jump && (this._character.setPlayerColliderToDefault(), this._movementState != a.MovementState.Death && this._playerAnimator.setTrigger(a.AnimationState.Run)); }), this._playerAnimator.onWaterSlideEnterAnimationEnd.add(() => { this._character.waterSplashFx.start(), this._playerAnimator.setTrigger(a.AnimationState.WaterSlide); }), this._playerAnimator.onMineCartDuckAnimationEnd.add(() => { this.isPlayerDead || ((this._character.playerCollider.scaling = this.PLAYER_COLLIDER_MINECARTSCALE), this._playerAnimator.setTrigger(a.AnimationState.MineCart)); }), this._playerAnimator.onMineCartEnterAnimationEnd.add(() => { this._playerAnimator.setTrigger(a.AnimationState.MineCart), p.EventHandler.instance.fireEvent(p.EventID.PlaySFXLoop, l.SoundID.MineCartLoop); }), this._playerAnimator.onMineCartExitAnimationEnd.add(() => { this._playerAnimator.setTrigger(a.AnimationState.Run), this._setState(a.MovementState.Running), p.EventHandler.instance.fireEvent(p.EventID.StopSFX, l.SoundID.MineCartLoop), p.EventHandler.instance.fireEvent(p.EventID.OnMineCartSurvived); }), this._playerAnimator.onDeathHitAnimationEnd.add((e) => { this._notifyPlayerDeath(e); }); } _setupMover() { (this._playerMover = new c.CharacterMover(this._scene, this._character.playerTransform, this._playerAnimator)), this._playerMover.onZiplineFallEnds.add(() => { this._character.dustFx.start(), (this._character.dustFx.targetStopDuration = 1), this._playerAnimator.setTrigger(a.AnimationState.Run), this._setState(a.MovementState.Running), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.GruntJumpLand); }), this._playerMover.onDeathMovementEnd.add(() => { this._notifyPlayerDeath(void 0); }), this._playerMover.onWaterDuckEnd.add(() => { this._character.setPlayerColliderToDefault(); }), this._playerMover.onMineLedgeDeath.add(() => { this._death(a.DeathType.DeathByFall, "Mine Any Ledge"); }), this._updateSpeed(); } _checkCollission() { var e; this._checkDistanceBasedTrigger(); let t = !1; const n = !o.GameController.instance.powerup.isBoost && !this.isInGodMode(), i = !o.GameController.instance.powerup.isShield, r = null === (e = this._params.currentTrackPiece.trackInfo.CollisionInfo) || void 0 === e ? void 0 : e.Trigger; this._processNarrowCollision(n), this._params.currentTrackPiece.assetInfo.collisionMeshes.forEach((e) => { this._character.playerCollider.intersectsMesh(e, !0, !0) && (n && r == h.TrackTrigger.Stumble ? ((t = !0), i && this._processStumbleCollision()) : e.name.includes("zipline") ? this._processZiplineCollision(e, !n) : n && r == h.TrackTrigger.Obstacle ? ((t = !0), (i || e.name.includes("Collider_forest_turn") || e.name.includes("Collider_mine_junction") || e.name.includes("Collider_waterslide_junction")) && this._processObstacleCollision()) : !n || (r != h.TrackTrigger.MissedTurn && r != h.TrackTrigger.FallSaver) ? n && r == h.TrackTrigger.Water ? this._death(a.DeathType.DeathByWater, "Waterslide Death By Water") : r == h.TrackTrigger.WaterSlideZoneStart ? (this._character.startWaterTrail(), this._shadow.setEnabled(!1), this._setState(a.MovementState.WaterSliding), this._playerAnimator.setTrigger(a.AnimationState.WaterSlideEnter), o.GameController.instance.tutorial.enableForZoneIfRequired("waterslide")) : r == h.TrackTrigger.MineCartZoneStart ? (this._shadow.setEnabled(!1), this._setState(a.MovementState.CartRiding), this._playerAnimator.setTrigger(a.AnimationState.MineCartEnter), this._character.setPlayerCartVisibility(!0), (this._character.playerCollider.scaling = this.PLAYER_COLLIDER_MINECARTSCALE), (this._character.playerCollider.position = this.PLAYER_COLLIDER_MINECART_POSITION), o.GameController.instance.tutorial.enableForZoneIfRequired("mine")) : r == h.TrackTrigger.WaterSlideZoneStop ? (this._shadow.setEnabled(!0), this._character.stopWaterTrail(), this._movementState == a.MovementState.WaterSliding && p.EventHandler.instance.fireEvent(p.EventID.OnWaterSlideSurvived), this._setState(a.MovementState.Running), this._playerAnimator.setTrigger(a.AnimationState.Run), this._character.waterSplashFx.stop(), this._character.setPlayerColliderToDefault()) : r == h.TrackTrigger.MineCartZoneStop ? (this._shadow.setEnabled(!0), this._character.setPlayerCartVisibility(!1), this._playerAnimator.setTrigger(a.AnimationState.MineCartExit), this._character.setPlayerColliderToDefault()) : r == h.TrackTrigger.NarrowZoneStart ? (this._isInNarrow = !0) : r == h.TrackTrigger.NarrowZoneStop && (this._isInNarrow = !1) : this._death(a.DeathType.DeathByFall, "Missed Turn")); }), i || (t ? (this._collisionStateObstacle = 1) : ((this._collisionStateObstacle = 1 == this._collisionStateObstacle ? 2 : 0), 2 == this._collisionStateObstacle && o.GameController.instance.powerup.removeShield())), o.GameController.instance.coins.checkCoinCollision(this._params.currentTrackPiece, this._character.playerCollider, this._character.playerTransform, o.GameController.instance.powerup.isMagnet), o.GameController.instance.bonus.checkBonusItemCollision(this._params.currentTrackPiece, this._character.playerCollider); } _checkDistanceBasedTrigger() { const e = o.GameController.instance.track.statueAnimationInfos; e.forEach((t, n) => { const i = this.player.position.subtract(t.rootMesh.position), o = i.length(), a = i.multiplyByFloats(1 / o, 1 / o, 1 / o), s = this._runSpeed / this.PLAYER_MAX_SPEED; r.Vector3.Dot(this.player.forward, a) > 0.5 && o < 35 && (t.animationGroups.forEach((e) => { (e.speedRatio = (this.params.boostVelocity > 0 ? 3.5 : 2) * s), e.stop(), e.play(); }), t.particleSystems.forEach((e) => { e.start(); }), e.splice(n, 1)); }); } _processNarrowCollision(e) { const t = this._params.currentTrackPiece.SelectedDefinition; if (this._isInNarrow || t.IsNarrow) { this._isInNarrow = !0; !(t.CategoryType == h.TrackPieceCategory.ZoneEntranceTransition || t.CategoryType == h.TrackPieceCategory.ZoneExitTransition) && e && (this._playerMover.currentTiltAmount > 0.5 || this._playerMover.currentTiltAmount < -0.5) && this._death(a.DeathType.DeathByFall, "Narrow Left/Right Ledge"); } else this._isInNarrow = !1; } _processStumbleCollision() { if ( (this._playerAnimator.setTrigger(a.AnimationState.RunStumble), o.GameController.instance.camera.shake(this.SHAKEMAGNITUDE_SMALL, this.SHAKEDURATION_SMALL), this._params.currentTrackPiece.assetInfo.name.startsWith("narrow_stumble")) ) for (const e of this._params.currentTrackPiece.assetInfo.animationGroups) e.play(!1); } _processZiplineCollision(e, t) { e.name.includes("start") && this._movementState != a.MovementState.Ziplining ? (this._shadow.setEnabled(!1), t ? ((this._params.currentVelocity = this._runSpeed), this._setState(a.MovementState.Ziplining), this._playerMover.resetTilt()) : this._playerAnimator.CurrentAnimationState == a.AnimationState.Jump ? ((this._params.currentVelocity = this._runSpeed), this._setState(a.MovementState.Ziplining), this._playerMover.resetJumpTimer(), this._playerMover.resetTilt()) : setTimeout(() => { this._death(a.DeathType.DeathByFall, "Zipline Fall"); }, 500)) : e.name.includes("end") && this._movementState == a.MovementState.Ziplining && (this._shadow.setEnabled(!0), this._playerAnimator.setTrigger(a.AnimationState.DeathByFall), (this._params.currentVelocity = this._runSpeed), this._playerMover.startZiplineFallSimulation()); } _checkForFireCollision() { const e = this.params.currentTrackPiece.assetInfo.particleSystems; return !(0 == e.length || !e[0].name.includes("fire")); } _processObstacleCollision() { o.GameController.instance.camera.shake(this.SHAKEMAGNITUDE_BIG, this.SHAKEDURATION_SMALL); const e = this._checkForFireCollision(); this._movementState == a.MovementState.Running ? this._death(e ? a.DeathType.Fire : a.DeathType.DeathByHit, e ? "Obstacle Death By Fire" : "Obstacle Death By Hit") : this._movementState == a.MovementState.CartRiding ? this._death(a.DeathType.DeathByCart, "Obstacle Cart Hit") : this._movementState == a.MovementState.WaterSliding && this._death(a.DeathType.DeathByHit, "Obstacle Water Hit"); } _notifyPlayerDeath(e) { o.GameController.instance.isGameRunning && (p.EventHandler.instance.fireEvent(p.EventID.OnPlayerDeath, e), o.GameController.instance.tutorial.isEnabled && o.GameController.instance.tutorial.resurrectOnDeath()); } _death(e, t) { if (this._movementState == a.MovementState.Death) return; p.EventHandler.instance.fireEvent(p.EventID.PlayerDeathTypeUpdate, a.getMessageKeyForDeath(e)), m.GameConfig.showDeathInfo && p.EventHandler.instance.fireEvent( p.EventID.PlayerDeathDebugInfo, `Piece : ${this.params.currentTrackPiece.assetInfo.name}, Death : ${a.getMessageKeyForDeath(e).messageKey} - ${t}\nMover : ` + this._playerMover.debugTurnInfo() ), this._character.stopWaterTrail(), this._shadow.setEnabled(!1); const n = this._movementState; this._setState(a.MovementState.Death), (this._resurrectRunSpeed = this._runSpeed), (this._resurrectJumpSpeed = this._jumpSpeed); const i = this._params.currentTrackPiece; switch ((i.SelectedDefinition.IsMine && p.EventHandler.instance.fireEvent(p.EventID.StopSFX, l.SoundID.MineCartLoop), (o.GameController.instance.track.stopRemovalOnDeath = !0), (this._stopCalcNextPosition = !0), e)) { case a.DeathType.DeathByFall: (this._playerMover.playerDeathMoveDirection = r.Vector3.Down()), i.SelectedDefinition.IsLedgeLeft ? (this._playerMover.playerRotationInDeath = 90) : i.SelectedDefinition.IsLedgeRight ? (this._playerMover.playerRotationInDeath = -90) : (this._playerMover.playerRotationInDeath = 0), this._playerAnimator.setTrigger(a.AnimationState.DeathByFall), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Scream); break; case a.DeathType.DeathByCart: this._playerAnimator.setTrigger(a.AnimationState.DeathByMineHit), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Splat); break; case a.DeathType.DeathByHit: case a.DeathType.Fire: this._playerAnimator.setTrigger(a.AnimationState.DeathByHit), this._character.waterSplashFx.stop(), e == a.DeathType.Fire && (this._character.playerTransform.setEnabled(!1), (this._character.fireCollisionSmokeFX.emitter = this._character.playerTransform.position.add(new r.Vector3(0, 0, 0))), this._character.fireCollisionSmokeFX.start(0)), n == a.MovementState.Running ? p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Splat) : n == a.MovementState.WaterSliding && p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Splash); break; case a.DeathType.DeathByWater: (this._playerMover.playerDeathMoveDirection = this.player.getDirection(r.Vector3.Right()).add(r.Vector3.Down())), (this._playerMover.playerRotationInDeath = 90), this._playerAnimator.setTrigger(a.AnimationState.DeathByFall), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Scream); break; case a.DeathType.Eaten: (this._playerMover.playerDeathMoveDirection = r.Vector3.Zero()), this._playerAnimator.setTrigger(a.AnimationState.Idle), p.EventHandler.instance.fireEvent(p.EventID.PlaySFX, l.SoundID.Scream), this._notifyPlayerDeath(e); } } get isOnZipline() { return this._movementState == a.MovementState.Ziplining; } get CurrentMovementState() { return this._movementState; } get currentPosition() { return this._params.currentPosition; } get isPlayerDead() { return this._movementState == a.MovementState.Death; } get player() { return this._character.playerTransform; } get material() { return this._character.material; } deathByMonkey() { this._death(a.DeathType.Eaten, "Eaten By Monkey"); } get params() { return this._params; } }; }, function (e) { e.exports = JSON.parse( '{"Fall":["You fell to your death.","Aaaaaaaah!","But I\'m scared of heights!","End of the road…","Mind the gap.","Missed it by *that* much."],"Eaten":["You made a tasty snack.","I eat explorers like you for breakfast.","Nom nom... leathery!"],"Fire":["Mmmm, crispy explorer.","Smells like toast."],"MineDuck":["Ow, my head!","Who put that there?!","Should have ducked."],"MineLedge":["You fell to your death.","Aaaaaaaah!","But I\'m scared of the dark!","End of the road..."],"Mine":["Harder than it looks...","Good thing I have a hard head!","Wish I had a helmet..."],"Wheel":["Who put that here?","Really? Wheels with spikes?!","Ground into a fine pulp."],"DeathThrow":["Who put that here?","Really? Wheels with spikes?!","Ground into a fine pulp."],"WaterLeft":["Weeee, sliding time!","Bubble, bubble, bubble...","If only I brought my barrel."],"WaterRight":["Weeee, sliding time!","Bubble, bubble, bubble...","If only I brought my barrel."],"Ledge":["Missed it by *that* much.","You fell to your death.","Aaaaaaaah!","Watch your step...","Temple slippery when wet."],"SceneryTree":["Tree Hugger!","Trees hurt.","Who left this tree here?"],"SceneryRock":["Harder than it looks...","Good thing I have a hard head!","Wish I had a helmet..."],"None":[""]}' ); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterAnimator = void 0); const i = n(62), r = n(156), o = n(29); t.CharacterAnimator = class { constructor(e) { (this.onRunStumbleAnimationEnd = new i.Observable()), (this.onJumpAnimationEnd = new i.Observable()), (this.onSlideAnimationEnd = new i.Observable()), (this.onSlideEnterAnimationEnd = new i.Observable()), (this.onWaterSlideEnterAnimationEnd = new i.Observable()), (this.onMineCartEnterAnimationEnd = new i.Observable()), (this.onMineCartExitAnimationEnd = new i.Observable()), (this.onMineCartDuckAnimationEnd = new i.Observable()), (this.onDeathHitAnimationEnd = new i.Observable()), (this._animationGroups = e), (this._idleAnimation = this._animationGroups.find((e) => "Idle01" === e.name)), (this._runAnimation = this._animationGroups.find((e) => "Run01" === e.name)), (this._runAnimation.loopAnimation = !0), (this._runStumbleAnimation = this._animationGroups.find((e) => "RunStumble01" === e.name)), this._runStumbleAnimation.onAnimationGroupEndObservable.add(() => { this.onRunStumbleAnimationEnd.notifyObservers(); }), this._runStumbleAnimation.onAnimationGroupPlayObservable.add(() => { o.EventHandler.instance.fireEvent(o.EventID.OnStumble); }), (this._jumpAnimation = this._animationGroups.find((e) => "Jump01" === e.name)), this._jumpAnimation.onAnimationGroupEndObservable.add(() => { this.onJumpAnimationEnd.notifyObservers(); }), (this._slideAnimation = this._animationGroups.find((e) => "Slide01" === e.name)), this._slideAnimation.onAnimationGroupEndObservable.add(() => { this.onSlideAnimationEnd.notifyObservers(); }), (this._slideEnterAnimation = this._animationGroups.find((e) => "SlideEnter01" === e.name)), this._slideEnterAnimation.onAnimationGroupEndObservable.add(() => { this.onSlideEnterAnimationEnd.notifyObservers(); }), (this._waterSlideEnterAnimation = this._animationGroups.find((e) => "WaterSlideEnter01" === e.name)), this._waterSlideEnterAnimation.onAnimationGroupEndObservable.add(() => { this.onWaterSlideEnterAnimationEnd.notifyObservers(); }), (this._waterSlideIdleAnimation = this._animationGroups.find((e) => "WaterSlide01" === e.name)), (this._mineCartIdleAnimation = this._animationGroups.find((e) => "MineCartIdle01" === e.name)), (this._mineCartEnterAnimation = this._animationGroups.find((e) => "MineCartEnter01" === e.name)), this._mineCartEnterAnimation.onAnimationGroupEndObservable.add(() => { this.onMineCartEnterAnimationEnd.notifyObservers(); }), (this._mineCartExitAnimation = this._animationGroups.find((e) => "MineCartExit01" === e.name)), this._mineCartExitAnimation.onAnimationGroupEndObservable.add(() => { this.onMineCartExitAnimationEnd.notifyObservers(); }), (this._mineCartDuckAnimation = this._animationGroups.find((e) => "MineCartDuck01" === e.name)), this._mineCartDuckAnimation.onAnimationGroupEndObservable.add(() => { this.onMineCartDuckAnimationEnd.notifyObservers(); }), (this._ziplineIdleAnimation = this._animationGroups.find((e) => "ZiplineIdle01" == e.name)), (this._deathAnimation = this._animationGroups.find((e) => "Death01" === e.name)), this._deathAnimation.onAnimationGroupEndObservable.add(() => { this.onDeathHitAnimationEnd.notifyObservers(r.DeathType.DeathByHit); }), (this._deathCartHeadAnimation = this._animationGroups.find((e) => "DeathCartHead01" === e.name)), this._deathCartHeadAnimation.onAnimationGroupEndObservable.add(() => { this.onDeathHitAnimationEnd.notifyObservers(r.DeathType.DeathByCart); }), (this._deathFallingAnimation = this._animationGroups.find((e) => "DeathFalling01" === e.name)), (this._deathWaterfallAnimation = this._animationGroups.find((e) => "DeathWaterfall01" === e.name)); } get JumpAnimLength() { return this._jumpAnimation.to; } get CurrentAnimationState() { return this._animState; } GetAnimation(e) { switch (e) { case r.AnimationState.Idle: return this._idleAnimation; case r.AnimationState.Run: return this._runAnimation; case r.AnimationState.RunStumble: return this._runStumbleAnimation; case r.AnimationState.Jump: return this._jumpAnimation; case r.AnimationState.SlideEnter: return this._slideEnterAnimation; case r.AnimationState.Slide: return this._slideAnimation; case r.AnimationState.Zipline: return this._ziplineIdleAnimation; case r.AnimationState.WaterSlideEnter: return this._waterSlideEnterAnimation; case r.AnimationState.WaterSlide: return this._waterSlideIdleAnimation; case r.AnimationState.MineCart: return this._mineCartIdleAnimation; case r.AnimationState.MineCartDuck: return this._mineCartDuckAnimation; case r.AnimationState.MineCartEnter: return this._mineCartEnterAnimation; case r.AnimationState.MineCartExit: return this._mineCartExitAnimation; case r.AnimationState.DeathByHit: return this._deathAnimation; case r.AnimationState.DeathByFall: return this._deathFallingAnimation; case r.AnimationState.DeathByMineHit: return this._deathCartHeadAnimation; case r.AnimationState.DeathByWaterFall: return this._deathWaterfallAnimation; } } _setAnimationToFirstFrame() { this._currentAnimation.goToFrame(1); } _playAnimation() { let e = !1; null != this._previousAnimation && (this._previousAnimation.setWeightForAllAnimatables(0), this._previousAnimation.stop()), (this._animState != r.AnimationState.Run && this._animState != r.AnimationState.Zipline && this._animState != r.AnimationState.WaterSlide && this._animState != r.AnimationState.MineCart && this._animState != r.AnimationState.DeathByFall && this._animState != r.AnimationState.DeathByWaterFall) || (e = !0), this._currentAnimation.setWeightForAllAnimatables(1), this._currentAnimation.start(e); } setTrigger(e) { (this._animState = e), (this._previousAnimation = this._currentAnimation), (this._currentAnimation = this.GetAnimation(e)), this._currentAnimation != this._previousAnimation && (e == r.AnimationState.Jump && o.EventHandler.instance.fireEvent(o.EventID.OnPlayerJumpState), e == r.AnimationState.Run && o.EventHandler.instance.fireEvent(o.EventID.OnPlayerRunState), this._playAnimation()); } pause() { var e; null === (e = this._currentAnimation) || void 0 === e || e.pause(); } resume() { var e; null === (e = this._currentAnimation) || void 0 === e || e.play(this._currentAnimation.loopAnimation); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterMover = void 0); const i = n(62), r = n(156), o = n(40), a = n(150); t.CharacterMover = class { constructor(e, t, n) { (this.DEFAULT_PLAYER_POSITION = new i.Vector3(0, 0, 0)), (this._currentPostion = i.Vector3.Zero()), (this._currentDirection = new i.Vector3(0, 0, -1)), (this._distanceFromPieceStart = 0), (this._simulateZiplineFall = !1), (this._ziplineFallHeight = 2), (this._ziplineMovementOffset = 2), (this._currentTilt = r.TiltState.None), (this._currentTiltAmount = 0), (this._tiltSpeed = 5), (this._currentTurnState = r.TurnState.None), (this._currentTurnDir = r.Turn.None), (this._jumpTimer = 0), (this._jumpHeight = 2), (this._isJumpStart = !1), (this.WATER_SLIDE_DUCKTIME = 1), (this._waterDuckTimer = 0), (this._IsWaterDucking = !1), (this._waterSlideDuckDepth = 0.5), (this._playerDeathMoveDirection = i.Vector3.Zero()), (this._deathTimer = 0), (this._playerToRotation = 0), (this._params = new r.CharacterParams()), (this._autoTurnedForPowerup = !1), (this._waterslideHackDistanceVar = 0), (this._previousWaterslidePieceId = -1), (this._scene = e), (this._player = t), (this._animator = n), (this.onZiplineFallEnds = new i.Observable()), (this.onDeathMovementEnd = new i.Observable()), (this.onWaterDuckEnd = new i.Observable()), (this.onMineLedgeDeath = new i.Observable()), this._player.setEnabled(!1); } set playerDeathMoveDirection(e) { this._playerDeathMoveDirection = e; } set playerRotationInDeath(e) { this._playerToRotation = e; } get currentTiltAmount() { return this._currentTiltAmount; } resetTilt() { (this._currentTiltAmount = 0), (this._currentTilt = r.TiltState.None); } set TurnState(e) { this._currentTurnState = e; } performWaterDuck() { this._IsWaterDucking = !0; } debugTurnInfo() { return `Turn - ${this._currentTurnState}, Dirn - ${this._currentTurnDir}, Tilt - ${this._currentTilt}`; } updateSpeedVars(e, t) { (this._moveSpeed = e), (this._jumpSpeed = t); } resetJumpTimer() { (this._jumpTimer = 0), (this._isJumpStart = !1), (this._jumpStartYPos = 0); } reset() { (this._jumpTimer = 0), (this._isJumpStart = !1), (this._jumpStartYPos = 0), (this._deathTimer = 0), (this._player.position = this.DEFAULT_PLAYER_POSITION), this._player.setDirection(new i.Vector3(0, 0, 1)), (this._currentTurnState = r.TurnState.None), (this._currentTilt = r.TiltState.None), (this._currentTiltAmount = 0), this._player.setEnabled(!1); } update(e, t) { (this._movementState = e), (this._animator.CurrentAnimationState != r.AnimationState.DeathByFall && this._animator.CurrentAnimationState != r.AnimationState.DeathByWaterFall) || e == r.MovementState.Ziplining ? e != r.MovementState.Death && ((this._params = t), (this._currentTrackPiece = this._params.currentTrackPiece), null != this._params.currentTrackPiece && ((this._currentPostion = this._params.currentPosition), (this._currentDirection = this._params.currentDirection), (this._distanceFromPieceStart = this._params.distanceFromPieceStart), this._checkAutoTurnForPowerup(), e == r.MovementState.Ziplining ? this._zipLineMove() : e == r.MovementState.CartRiding ? this._cartRidingMove() : e == r.MovementState.WaterSliding ? this._waterSlidingMove() : this._move()), this._player.isEnabled() || this._player.setEnabled(!0)) : this._updateDeathMovement(); } _move() { this._applyPendingTurn(); const e = this._getDirectionAndPosition(); let t = e[1]; const n = e[0]; if (this._animator.CurrentAnimationState == r.AnimationState.Jump) { let e; this._isJumpStart || ((this._isJumpStart = !0), (this._jumpStartYPos = this._player.position.y)), (this._jumpTimer += this._scene.deltaTime / 1e3 / this._animator.JumpAnimLength), (this._jumpTimer >= 0 && this._jumpTimer <= 0.5) || (this._jumpTimer >= 0.5 && this._jumpTimer <= 1) ? ((e = Math.sin(Math.PI * this._jumpTimer) * this._jumpHeight), (t = new i.Vector3(t.x, t.y + e, t.z))) : (this._isJumpStart = !1), this._jumpTimer > 1 && (this._jumpTimer = 1); } (this.prevYRot = this.currentYRot), this._player.setDirection(n), (this.currentYRot = this._player.rotation.y), (this._player.position = t); } _waterSlidingMove() { this._applyPendingTurnWaterSlideAndMine(); const e = this._getDirectionAndPosition(); let t = e[1]; const n = e[0]; if (this._IsWaterDucking) { this._waterDuckTimer += this._scene.deltaTime / 1e3; const e = Math.sin(Math.PI * this._waterDuckTimer) * this._waterSlideDuckDepth; (t = new i.Vector3(t.x, t.y - e, t.z)), this._waterDuckTimer >= this.WATER_SLIDE_DUCKTIME && ((this._waterDuckTimer = 0), (this._IsWaterDucking = !1), null != this.onWaterDuckEnd && this.onWaterDuckEnd.notifyObservers()); } this._player.setDirection(n), (this._player.position = t); } _cartRidingMove() { this._applyPendingTurnWaterSlideAndMine(); const e = this._getDirectionAndPosition(), t = e[1], n = e[0]; this._player.setDirection(n, 0, 0, this._currentTiltAmount * (-Math.PI / 9)); let o = 0, a = i.Vector3.Zero(); 0 == this._currentTiltAmount ? (o = 0) : this._currentTurnState != r.TurnState.Failed && ((o = 0.45 * this._currentTiltAmount), (a = this._player.getDirection(i.Vector3.Right())), (a = a.normalize()), (a = a.multiplyByFloats(o, o, o))), (this._player.position = new i.Vector3(t.x, t.y, t.z).add(a)); } startZiplineFallSimulation() { this._simulateZiplineFall = !0; } _zipLineMove() { if ((this._getDirectionAndPosition(), this._simulateZiplineFall)) if (((this._ziplineFallHeight -= (this._scene.deltaTime / 1e3) * 6), this._ziplineFallHeight >= 0.5)) { const e = new i.Vector3(this._currentPostion.x, this._currentPostion.y + this._ziplineFallHeight, this._currentPostion.z); this._player.setDirection(this._currentDirection.multiply(new i.Vector3(-1, 0, -1))), (this._player.position = e); } else (this._simulateZiplineFall = !1), (this._currentTilt = r.TiltState.None), (this._currentTiltAmount = 0), (this._ziplineFallHeight = 2), null != this.onZiplineFallEnds && this.onZiplineFallEnds.notifyObservers(); else { this._player.setDirection(this._currentDirection.multiply(new i.Vector3(-1, 0, -1)), 0, 2 * Math.PI - Math.PI / 8, this._currentTiltAmount * (Math.PI / 4)); let e = 0, t = i.Vector3.Zero(); 0 == this._currentTiltAmount ? (e = 0) : this._currentTurnState != r.TurnState.Failed && ((e = 0.18 * this._currentTiltAmount), (t = this._player.getDirection(i.Vector3.Right())), (t = t.normalize()), (t = t.multiplyByFloats(e, e, e))); const n = new i.Vector3(this._currentPostion.x, this._currentPostion.y + this._ziplineMovementOffset, this._currentPostion.z).add(t); this._player.position = n; } } _getDirectionAndPosition() { let e, t; if ( (this._currentTurnState != r.TurnState.Pending && this._currentTurnState != r.TurnState.Done && this._params.currentTrackPiece.SelectedDefinition.isTurn() && (this._currentTurnState = r.TurnState.Failed), this._movementState == r.MovementState.Running && (this._params.currentTrackPiece.SelectedDefinition.isTurn() || this._currentTurnState != r.TurnState.Done || (this._currentTurnState = r.TurnState.None), Math.abs(this.currentYRot - this.prevYRot) > 75 && (this._currentTurnState = r.TurnState.None)), this._currentTurnState == r.TurnState.Failed || this._currentTurnState == r.TurnState.Pending) ) { (e = this._player.getDirection(i.Vector3.Forward()).clone()), (e = e.normalize()); let n = this._params.boostVelocity > 0 ? this._params.boostVelocity : 0; (n = this._animator.CurrentAnimationState == r.AnimationState.Jump ? this._jumpSpeed * this._scene.deltaTime : this._params.currentVelocity * this._scene.deltaTime), (t = this._player.position.clone().add(e.multiplyByFloats(-n, 0, -n))), (t = new i.Vector3(t.x, this._currentPostion.y, t.z)); } else (e = this._currentDirection.multiply(new i.Vector3(-1, 0, -1))), (t = this._getTiltedPosition(this._currentPostion)); return [e, t]; } _getTiltedPosition(e) { if (0 == this._currentTiltAmount && this._currentTilt == r.TiltState.None) return e; let t, n = (this._scene.deltaTime / 1e3) * this._tiltSpeed, o = !1, a = !1; this._currentTilt == r.TiltState.Right ? ((t = -0.8), (n = -n)) : this._currentTilt == r.TiltState.Left ? (t = 0.8) : ((t = 0), this._currentTiltAmount < t ? (o = !0) : this._currentTiltAmount > t ? ((n = -n), (a = !0)) : ((n = 0), (this._currentTiltAmount = 0))), (this._currentTiltAmount += n), (-0.8 == t && this._currentTiltAmount < t) || (0.8 == t && this._currentTiltAmount > t) ? (this._currentTiltAmount = t) : 0 == t && ((o && this._currentTiltAmount > 0) || (a && this._currentTiltAmount < 0)) && (this._currentTiltAmount = 0); const s = this._player.getDirection(i.Vector3.Right()); s.normalize(); const c = s.multiplyByFloats(this._currentTiltAmount, this._currentTiltAmount, this._currentTiltAmount), l = this._getWaterslideHackElevation(); return this._movementState != r.MovementState.CartRiding ? new i.Vector3(e.x + c.x, e.y + l, e.z + c.z) : e; } _getWaterslideHackElevation() { let e = 0; if (3 == this._params.currentTrackPiece.SelectedDefinition.ID.ZoneID) { const t = this._params.currentTrackPiece.SelectedDefinition.ID.PieceID; if ( (this._previousWaterslidePieceId != t && ((this._waterslideHackDistanceVar = 0), (this._previousWaterslidePieceId = t)), ((3 == t || 12 == t) && this._currentTilt == r.TiltState.Right) || ((4 == t || 13 == t) && this._currentTilt == r.TiltState.Left)) ) { this._waterslideHackDistanceVar += this._params.deltaDistance; const t = this._params.currentTrackPiece.getEstimatedLength(), n = t / 2; let i; i = this._waterslideHackDistanceVar < n ? this._waterslideHackDistanceVar / n : (t - this._waterslideHackDistanceVar) / n; const r = 0.8; e = Math.abs(this._currentTiltAmount) * i * r; } else this._waterslideHackDistanceVar = 0; } else this._waterslideHackDistanceVar = 0; return e; } _checkAutoTurnForPowerup() { (o.GameController.instance.powerup.isBoost || o.GameController.instance.character.isInGodMode()) && this._currentTrackPiece.SelectedDefinition.isTurn() && this._currentTurnState != r.TurnState.Done ? this._autoTurnedForPowerup || ((this._currentTrackPiece.selectedPathId = this._currentTrackPiece.getNextTrackPiecesLength() > 1 ? a.Utils.random(0, 2) : 0), (this._currentTurnState = r.TurnState.Done), (this._autoTurnedForPowerup = !0)) : (this._autoTurnedForPowerup = !1); } _applyPendingTurn() { this._currentTurnState == r.TurnState.Pending && (this._currentTrackPiece.SelectedDefinition.isAnyJunction() ? this._currentTurnDir == r.Turn.Right ? ((this._currentTrackPiece.selectedPathId = 1), (this._currentTurnState = r.TurnState.Done)) : this._currentTurnDir == r.Turn.Left && ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done)) : this._currentTrackPiece.SelectedDefinition.isLeftOrRightTurn() && ((this._currentTrackPiece.SelectedDefinition.IsTurnRight && this._currentTurnDir == r.Turn.Right) || (this._currentTrackPiece.SelectedDefinition.IsTurnLeft && this._currentTurnDir == r.Turn.Left)) && ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done))); } _applyPendingTurnWaterSlideAndMine() { let e = 999; if ( ((e = this._currentTrackPiece.getEstimatedLength() / 2 - this._distanceFromPieceStart), (e -= 1), this._movementState == r.MovementState.WaterSliding && (this._currentTrackPiece.SelectedDefinition.IsYJunction ? this._currentTilt != r.TiltState.None ? ((this._currentTrackPiece.selectedPathId = this._currentTilt == r.TiltState.Left ? 0 : 1), (this._currentTurnState = r.TurnState.Done)) : e < 0 && (this._currentTurnState = r.TurnState.Failed) : (this._currentTurnState = r.TurnState.None)), this._movementState == r.MovementState.CartRiding) ) if (this._currentTrackPiece.SelectedDefinition.IsYJunction) this._currentTilt != r.TiltState.None ? ((this._currentTrackPiece.selectedPathId = this._currentTilt == r.TiltState.Left ? 0 : 1), (this._currentTurnState = r.TurnState.Done)) : e < 0 && (this._currentTurnState = r.TurnState.Failed); else if (this._currentTrackPiece.SelectedDefinition.IsTurnRight) this._currentTilt == r.TiltState.Right ? ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done)) : e < 0 && (this._currentTurnState = r.TurnState.Failed); else if (this._currentTrackPiece.SelectedDefinition.IsTurnLeft) this._currentTilt == r.TiltState.Left ? ((this._currentTrackPiece.selectedPathId = 0), (this._currentTurnState = r.TurnState.Done)) : e < 0 && (this._currentTurnState = r.TurnState.Failed); else { if (((this._currentTurnState = r.TurnState.None), o.GameController.instance.powerup.isBoost || o.GameController.instance.character.isInGodMode())) return; ((this._currentTrackPiece.SelectedDefinition.IsLedgeLeft && this._currentTilt != r.TiltState.Left) || (this._currentTrackPiece.SelectedDefinition.IsLedgeRight && this._currentTilt != r.TiltState.Right)) && null != this.onMineLedgeDeath && this.onMineLedgeDeath.notifyObservers(); } } _shouldUserTurn() { let e = 999; this._currentTrackPiece.SelectedDefinition.isTurn() && (e = this._currentTrackPiece.getEstimatedLength() / 2 - this._distanceFromPieceStart); const t = this._currentTrackPiece.NextTrackPieces[0]; null != t && t.SelectedDefinition.isTurn() && (e = this._currentTrackPiece.getEstimatedLength() - this._distanceFromPieceStart + t.getEstimatedLength() / 2); e < 0 ? (this._currentTurnState = r.TurnState.Failed) : e > 0 && e <= 7 ? (this._currentTurnState = r.TurnState.Pending) : this._currentTrackPiece.SelectedDefinition.isTurn() || (this._currentTurnState = r.TurnState.None); } tiltOrTurn(e) { this._currentTurnState != r.TurnState.Pending && this._currentTurnState != r.TurnState.Done && this._currentTurnState != r.TurnState.CanTilt && this._movementState == r.MovementState.Running && this._shouldUserTurn(), this._currentTurnState == r.TurnState.None ? "Left" == e ? this._currentTilt == r.TiltState.None ? (this._currentTilt = r.TiltState.Left) : this._currentTilt == r.TiltState.Right && (this._currentTilt = r.TiltState.None) : "Right" == e && (this._currentTilt == r.TiltState.None ? (this._currentTilt = r.TiltState.Right) : this._currentTilt == r.TiltState.Left && (this._currentTilt = r.TiltState.None)) : (this._currentTurnDir = "Left" == e ? r.Turn.Left : r.Turn.Right); } _updateDeathMovement() { let e = 0; if (this._deathTimer < 1) { this._deathTimer += this._scene.deltaTime / 1e3; const t = this._player.position.add(this._playerDeathMoveDirection.multiply(new i.Vector3(0.1, 0.1, 0.1))); 0 != this._playerToRotation && ((e = this._playerToRotation > 0 ? 1 : -1), this._player.rotate(i.Vector3.Forward(), (e * Math.PI) / 90)), (this._player.position = t); } else (this._player.rotation = new i.Vector3(0, this._player.rotation.y, 0)), null != this.onDeathMovementEnd && (this.onDeathMovementEnd.notifyObservers(), (this._deathTimer = 0)); } }; }, function (e, t) { var n, i, r = (e.exports = {}); function o() { throw new Error("setTimeout has not been defined"); } function a() { throw new Error("clearTimeout has not been defined"); } function s(e) { if (n === setTimeout) return setTimeout(e, 0); if ((n === o || !n) && setTimeout) return (n = setTimeout), setTimeout(e, 0); try { return n(e, 0); } catch (t) { try { return n.call(null, e, 0); } catch (t) { return n.call(this, e, 0); } } } !(function () { try { n = "function" == typeof setTimeout ? setTimeout : o; } catch (e) { n = o; } try { i = "function" == typeof clearTimeout ? clearTimeout : a; } catch (e) { i = a; } })(); var c, l = [], u = !1, h = -1; function d() { u && c && ((u = !1), c.length ? (l = c.concat(l)) : (h = -1), l.length && p()); } function p() { if (!u) { var e = s(d); u = !0; for (var t = l.length; t; ) { for (c = l, l = []; ++h < t; ) c && c[h].run(); (h = -1), (t = l.length); } (c = null), (u = !1), (function (e) { if (i === clearTimeout) return clearTimeout(e); if ((i === a || !i) && clearTimeout) return (i = clearTimeout), clearTimeout(e); try { i(e); } catch (t) { try { return i.call(null, e); } catch (t) { return i.call(this, e); } } })(e); } } function f(e, t) { (this.fun = e), (this.array = t); } function m() {} (r.nextTick = function (e) { var t = new Array(arguments.length - 1); if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; l.push(new f(e, t)), 1 !== l.length || u || s(p); }), (f.prototype.run = function () { this.fun.apply(null, this.array); }), (r.title = "browser"), (r.browser = !0), (r.env = {}), (r.argv = []), (r.version = ""), (r.versions = {}), (r.on = m), (r.addListener = m), (r.once = m), (r.off = m), (r.removeListener = m), (r.removeAllListeners = m), (r.emit = m), (r.prependListener = m), (r.prependOnceListener = m), (r.listeners = function (e) { return []; }), (r.binding = function (e) { throw new Error("process.binding is not supported"); }), (r.cwd = function () { return "/"; }), (r.chdir = function (e) { throw new Error("process.chdir is not supported"); }), (r.umask = function () { return 0; }); }, function (e, t, n) { var i = { "./Machu/MachuRegion.json": 254 }; function r(e) { var t = o(e); return n(t); } function o(e) { if (!n.o(i, e)) { var t = new Error("Cannot find module '" + e + "'"); throw ((t.code = "MODULE_NOT_FOUND"), t); } return i[e]; } (r.keys = function () { return Object.keys(i); }), (r.resolve = o), (e.exports = r), (r.id = 253); }, function (e) { e.exports = JSON.parse( '{"Name":"Machu","ID":0,"DisplayName":"Sky Summit","GrowDistance":80,"CullDistance":60,"StartingSection":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"Variation":null,"Attach":0,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"DefaultPacingPath":"assets/tracks/Machu/MachuDefaultPacing.json","SkyboxConfig":"","ChaserConfig":""}' ); }, function (e) { e.exports = JSON.parse( '{"StartingSection":{"Pieces":[]},"RegionID":0,"MinDistanceBetweenBaseZoneChange":350,"Milestones":[{"Distance":0,"MaxTrackPieceDifficulty":1,"AllowCoins":1,"MinDistanceBetweenCoinRuns":80,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":25,"MaxDistanceBetweenTurns":50,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":1000,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":20,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0},{"Distance":250,"MaxTrackPieceDifficulty":1,"AllowCoins":1,"MinDistanceBetweenCoinRuns":70,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":25,"MaxDistanceBetweenTurns":50,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":1000,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":20,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0},{"Distance":500,"MaxTrackPieceDifficulty":2,"AllowCoins":1,"MinDistanceBetweenCoinRuns":60,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":20,"MaxDistanceBetweenTurns":45,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":1000,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":15,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.0500000007},{"Distance":1000,"MaxTrackPieceDifficulty":3,"AllowCoins":1,"MinDistanceBetweenCoinRuns":60,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":25,"MaxDistanceBetweenTurns":45,"AllowTurnAfterObstacle":0,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":10,"MaxDistanceBetweenObstacles":10,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.0500000007},{"Distance":1500,"MaxTrackPieceDifficulty":4,"AllowCoins":1,"MinDistanceBetweenCoinRuns":50,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":15,"MaxDistanceBetweenTurns":40,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":7.5,"MaxDistanceBetweenObstacles":10,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.100000001},{"Distance":2000,"MaxTrackPieceDifficulty":5,"AllowCoins":1,"MinDistanceBetweenCoinRuns":50,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":15,"MaxDistanceBetweenTurns":40,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":5,"MaxDistanceBetweenObstacles":5,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.150000006},{"Distance":3250,"MaxTrackPieceDifficulty":6,"AllowCoins":1,"MinDistanceBetweenCoinRuns":40,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":10,"MaxDistanceBetweenTurns":30,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":850,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":5,"MaxDistanceBetweenObstacles":5,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.174999997},{"Distance":4500,"MaxTrackPieceDifficulty":7,"AllowCoins":1,"MinDistanceBetweenCoinRuns":40,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":5,"MaxDistanceBetweenTurns":25,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":10,"DistanceToFastTurnSection":750,"MaxDistanceForFastTurnSection":150,"AllowObstacles":1,"MinDistanceBetweenObstacles":0,"MaxDistanceBetweenObstacles":2.5,"MaxBackToBackObstacles":1,"DoubleObstaclePercent":0.200000003}],"ZonePacing":[{"RegionID":0,"ZoneID":0,"MinLength":450,"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":1},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":2},"Difficulty":0,"SelectionChance":0.100000001},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Difficulty":0,"SelectionChance":0},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"Difficulty":2,"SelectionChance":0.5},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":15},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":17},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":18},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":19},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":21},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":22},"Difficulty":3,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":23},"Difficulty":0,"SelectionChance":0.300000012},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":24},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":25},"Difficulty":0,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":4,"MinLength":280,"Pieces":[{"ID":{"RegionID":0,"ZoneID":4,"PieceID":0},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":1},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":5},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":6},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":7},"Difficulty":1,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":4,"PieceID":8},"Difficulty":0,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":1,"MinLength":320,"Pieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":1},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":5},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":7},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"Difficulty":0,"SelectionChance":0.200000003},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":9},"Difficulty":0,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":10},"Difficulty":0,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":11},"Difficulty":0,"SelectionChance":0.400000006},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":13},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":14},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":15},"Difficulty":0,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":2,"MinLength":200,"Pieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":0},"Difficulty":3,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":1},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":5},"Difficulty":1,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":6},"Difficulty":0,"SelectionChance":0.100000001},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":7},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":8},"Difficulty":1,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":9},"Difficulty":1,"SelectionChance":1}],"Milestones":[]},{"RegionID":0,"ZoneID":3,"MinLength":200,"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":0},"Difficulty":2,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":1},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"Difficulty":1,"SelectionChance":0.5},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":6},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":7},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":8},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":9},"Difficulty":1,"SelectionChance":0.25},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":10},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":11},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":12},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":13},"Difficulty":0,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":14},"Difficulty":1,"SelectionChance":0.75},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"Difficulty":0,"SelectionChance":1},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":16},"Difficulty":1,"SelectionChance":0.75}],"Milestones":[{"Distance":0,"MaxTrackPieceDifficulty":-1,"AllowCoins":1,"MinDistanceBetweenCoinRuns":25,"MaxCoinsPerRun":25,"AllowTurns":1,"MinDistanceBetweenTurns":-1,"MaxDistanceBetweenTurns":-1,"AllowTurnAfterObstacle":1,"MinDistanceAfterTurnForObstacle":-1,"DistanceToFastTurnSection":-1,"MaxDistanceForFastTurnSection":-1,"AllowObstacles":1,"MinDistanceBetweenObstacles":-1,"MaxDistanceBetweenObstacles":-1,"MaxBackToBackObstacles":-1,"DoubleObstaclePercent":-1}]}],"RunnerSpeed":[{"PercentageOfMaxSpeed":0.5,"ForceToAdd":30},{"PercentageOfMaxSpeed":0.649999976,"ForceToAdd":10},{"PercentageOfMaxSpeed":0.850000024,"ForceToAdd":1.5},{"PercentageOfMaxSpeed":1,"ForceToAdd":0.5}],"RunnerSpeedAfterResurrect":[{"PercentageOfMaxSpeed":0.5,"ForceToAdd":30},{"PercentageOfMaxSpeed":0.649999976,"ForceToAdd":10},{"PercentageOfMaxSpeed":0.850000024,"ForceToAdd":10},{"PercentageOfMaxSpeed":1,"ForceToAdd":5}]}' ); }, function (e, t, n) { var i = { "./Machu/Base/MachuBaseZone.json": 257, "./Machu/Forest/MachuForestZone.json": 258, "./Machu/MineCart/MachuMineCartZone.json": 259, "./Machu/Narrows/MachuNarrowsZone.json": 260, "./Machu/WaterSlide/MachuWaterSlideZone.json": 261, }; function r(e) { var t = o(e); return n(t); } function o(e) { if (!n.o(i, e)) { var t = new Error("Cannot find module '" + e + "'"); throw ((t.code = "MODULE_NOT_FOUND"), t); } return i[e]; } (r.keys = function () { return Object.keys(i); }), (r.resolve = o), (e.exports = r), (r.id = 256); }, function (e) { e.exports = JSON.parse( '{"Name":"Base","ID":0,"Definitions":[{"DisplayName":"Machu Base Straight Flat","Name":"Straight Flat","ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"straight_a","Prefab":{"fileID":100880,"guid":"e26733bdc8c0842269c84677f827afa7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_b","Prefab":{"fileID":188046,"guid":"ca7028d4b309645c49099368c88c4f09","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_d","Prefab":{"fileID":198582,"guid":"a997bdc237b2f4679922eee73ffbbe58","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_organic_c","Prefab":{"fileID":153530,"guid":"d302c1f9725834b5d9b141a3ea033c03","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":0,"PieceID":1},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":1,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"junction_a","Prefab":{"fileID":168078,"guid":"eed93a757c2764e7885025900b44407f","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"junction_b","Prefab":{"fileID":137950,"guid":"4885a5d6bed864b2c8007a71c7ffdc33","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Bridge","Name":"Bridge","ID":{"RegionID":0,"ZoneID":0,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"bridge_a","Prefab":{"fileID":180572,"guid":"be031fe014a4a41ae88a406d79b84b81","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Jump Over","Name":"Jump Over","ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"gap_small_a","Prefab":{"fileID":170904,"guid":"2601b527d323546b0915433d56322cc2","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"jump_over_a","Prefab":{"fileID":196860,"guid":"a3a2870e5df074041bf6120289eee543","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"bridge_gap_a","Prefab":{"fileID":176006,"guid":"28feb4432339541838f3775bda554201","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"curve_water_a","Prefab":{"fileID":178170,"guid":"5a9b885a29e674c3a8e1eec15469977e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Straight Intro","Name":"Straight Intro","ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"straight_a","Prefab":{"fileID":100880,"guid":"e26733bdc8c0842269c84677f827afa7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_c","Prefab":{"fileID":112208,"guid":"01476053933904776bdb2cffbca792b1","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_e","Prefab":{"fileID":110666,"guid":"f64fdcf6398de4405852309a2258f0f7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_f","Prefab":{"fileID":123656,"guid":"0b14e1791e0d6450dad9c1c2129b4168","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"straight_organic_a","Prefab":{"fileID":151250,"guid":"25e45cc4e58484113b5d2981f71ba5d1","type":2},"PoolPreloadAmount":0,"Frequency":35,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"straight_organic_b","Prefab":{"fileID":133912,"guid":"be260fa310ba34a3da289e5ee1a646d3","type":2},"PoolPreloadAmount":0,"Frequency":35,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"hill_a","Prefab":{"fileID":173654,"guid":"b0677b342df604bba9bd6def5e7965f9","type":2},"PoolPreloadAmount":0,"Frequency":15,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"hill_b","Prefab":{"fileID":161882,"guid":"a66377f9bbce44466916bfa3782040ba","type":2},"PoolPreloadAmount":0,"Frequency":15,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"turn_left_a","Prefab":{"fileID":162404,"guid":"e3d23302fcdf74e78a96b28cc23fc0e7","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"turn_right_a","Prefab":{"fileID":100522,"guid":"f7ce3f9446f0647a883f11d291d60fc2","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Temple Start","Name":"Temple Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"SpecialType":1,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"temple_opening","Prefab":{"fileID":164392,"guid":"b14460f68d3754fd2a5e8c78179b868e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base ZipLine","Name":"ZipLine","ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":1,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":0.5,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"zipline_a","Prefab":{"fileID":129878,"guid":"9efe2e88653314089abaffcde5d61613","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"zipline_b","Prefab":{"fileID":152926,"guid":"57fc33f4f45fa452895594031d49931a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"zipline_c","Prefab":{"fileID":137766,"guid":"6902b0198761843369a26354244956c1","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Right Start","Name":"Ledge Right Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"SpecialType":0,"CategoryType":1,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":0,"PieceID":11},"CompoundPieceEndType":{"RegionID":0,"ZoneID":0,"PieceID":12},"Variations":[{"PieceName":"ledge_start_right_a","Prefab":{"fileID":177118,"guid":"5592e2da5b6c44a42abf690ac829f7a9","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":10},{"DisplayName":"Machu Base Ledge Right Middle","Name":"Ledge Right Middle","ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"SpecialType":0,"CategoryType":2,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_right_a","Prefab":{"fileID":167106,"guid":"06e791414a3e04d598fc96f16edd6bf3","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"ledge_right_b","Prefab":{"fileID":185352,"guid":"5b8ddee85bee74e08bcb5d9acadb6129","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Right End","Name":"Ledge Right End","ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"SpecialType":0,"CategoryType":3,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_end_right_a","Prefab":{"fileID":195712,"guid":"b1413b2d8e91749e0a0b87473c696f8a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Curve Left","Name":"Curve Left","ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":1,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"curve_a","Prefab":{"fileID":194384,"guid":"3eae573f8e9434d75838fb7ba400155b","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"curve_c","Prefab":{"fileID":134470,"guid":"5f9d1b7a9238f4532a995144a9bf4f25","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Curve Right","Name":"Curve Right","ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":1,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"curve_b","Prefab":{"fileID":103874,"guid":"729a9ea95da354c6997fe6e1efa1a7e0","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"curve_d","Prefab":{"fileID":110186,"guid":"3dd03fcd9a5ea49ef955e362058d3dc1","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Left Start","Name":"Ledge Left Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":15},"SpecialType":0,"CategoryType":1,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":0,"PieceID":16},"CompoundPieceEndType":{"RegionID":0,"ZoneID":0,"PieceID":17},"Variations":[{"PieceName":"ledge_start_left_a","Prefab":{"fileID":158140,"guid":"cf645e08cfcbc4a6c94a3b1dbf31ee9f","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":10},{"DisplayName":"Machu Base Ledge Left Middle","Name":"Ledge Left Middle","ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"SpecialType":0,"CategoryType":2,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_left_a","Prefab":{"fileID":132382,"guid":"8c1895160e4ca466d9217988fe9c50b6","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"ledge_left_b","Prefab":{"fileID":109884,"guid":"128240bf5421d4a72acc1afbd232eef4","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Ledge Left End","Name":"Ledge Left End","ID":{"RegionID":0,"ZoneID":0,"PieceID":17},"SpecialType":0,"CategoryType":3,"DeathType":8,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"ledge_end_left_a","Prefab":{"fileID":181448,"guid":"8b1635035569e460a8268585ade0dc19","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Stumble","Name":"Stumble","ID":{"RegionID":0,"ZoneID":0,"PieceID":18},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":1,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"stumble_a","Prefab":{"fileID":100572,"guid":"6b2b80fcaa431405997718d0d605a967","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"stumble_b","Prefab":{"fileID":105746,"guid":"d2daff925fbd44feb9819c4d784989e7","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Jump or Slide","Name":"Jump or Slide","ID":{"RegionID":0,"ZoneID":0,"PieceID":19},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"jump_or_slide_a","Prefab":{"fileID":130622,"guid":"963fa996378724017b060f9c97af6e9e","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Slide Under","Name":"Slide Under","ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"slide_under_a","Prefab":{"fileID":102080,"guid":"b8e5a5ab8551f4e08bb5199c05558d89","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Jump Over Long","Name":"Jump Over Long","ID":{"RegionID":0,"ZoneID":0,"PieceID":21},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":0,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"jump_over_b","Prefab":{"fileID":158012,"guid":"6e5fa50f887b642b1970740537eb5af1","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"gap_large_a","Prefab":{"fileID":197052,"guid":"4c1e184ca8d2d42d59970d46a48d847a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Run Between","Name":"Run Between","ID":{"RegionID":0,"ZoneID":0,"PieceID":22},"SpecialType":0,"CategoryType":0,"DeathType":11,"DeathShakeCamera":1,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"run_between_a","Prefab":{"fileID":109824,"guid":"6a40c3852d62b4c5ea6a0d3fa5dfdd5a","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":1,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Stairs Up Start","Name":"Stairs Up Start","ID":{"RegionID":0,"ZoneID":0,"PieceID":23},"SpecialType":0,"CategoryType":1,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":1,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.3,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":0,"PieceID":24},"CompoundPieceEndType":{"RegionID":0,"ZoneID":0,"PieceID":25},"Variations":[{"PieceName":"stairs_up_start_a","Prefab":{"fileID":105570,"guid":"1e6b669e5cbba4f2bbc9f92769bddd92","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":3},{"DisplayName":"Machu Base Stairs Up Middle","Name":"Stairs Up Middle","ID":{"RegionID":0,"ZoneID":0,"PieceID":24},"SpecialType":0,"CategoryType":2,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":1,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"stairs_up_middle_a","Prefab":{"fileID":176256,"guid":"1b6cff0a137fe4d36b64409f3bd956f9","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"stairs_up_middle_b","Prefab":{"fileID":155670,"guid":"c328d3b8612f847f6ab2bafc09f9393f","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Base Stairs Up End","Name":"Stairs Up End","ID":{"RegionID":0,"ZoneID":0,"PieceID":25},"SpecialType":0,"CategoryType":3,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":1,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"stairs_up_end_a","Prefab":{"fileID":119082,"guid":"1d4bfe0f503e44650a61e5f21c26264b","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":1,"Gameplay":0,"UseTiltForTurn":0,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.1,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":0,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{"StartingSection":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"TutorialStartAnalyticsEventName":"TutorialStartMain","TutorialMilestones":[{"TutorialMilestoneName":"Tutorial Jump","TutorialStep":0,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":1,"DisplayMessageText":"Swipe To Jump","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":5,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":9},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":5,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":5,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainA"},{"TutorialMilestoneName":"Tutorial Turn","TutorialStep":1,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":3,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":8,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":8,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":7},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":7,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":7,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainB"},{"TutorialMilestoneName":"Tutorial Slide","TutorialStep":2,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":2,"DisplayMessageText":"Swipe To Slide","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":20},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":19},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainC"},{"TutorialMilestoneName":"Tutorial Tilt","TutorialStep":3,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":4,"DisplayMessageText":"Tilt To Collect Coins","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":15},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":16},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":17},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":10},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainD"},{"TutorialMilestoneName":"Tutorial Meter","TutorialStep":4,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":19,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":1,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":1,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":1,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":11,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":1,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":14},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":13,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMainE"}],"SaveAndRestorePlayerSpeedOnStartEnd":0,"ResetPlayerSpeedToMinOnTutorialStart":0,"MarkTutorialCompleteWhenPacingRemoved":1}}' ); }, function (e) { e.exports = JSON.parse( '{"Name":"Forest","ID":4,"Definitions":[{"DisplayName":"Machu Forest Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":4,"PieceID":0},"SpecialType":0,"CategoryType":6,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_entrance_a","Prefab":{"fileID":146680,"guid":"3fea3c551ce014fd58f97c527ec9c996","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":4,"PieceID":1},"SpecialType":0,"CategoryType":7,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_exit_a","Prefab":{"fileID":143426,"guid":"9f49108458e8e40e69e354bb05845133","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_straight_a","Prefab":{"fileID":191488,"guid":"ad640ff7947d546b8976aebd32efb1b3","type":2},"PoolPreloadAmount":1,"Frequency":40,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"forest_straight_b","Prefab":{"fileID":189634,"guid":"104f432c0db7b42f4a15aa1a70b879c1","type":2},"PoolPreloadAmount":1,"Frequency":40,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"forest_hill_a","Prefab":{"fileID":179542,"guid":"e60388c395dff474aa4350077f46ab0a","type":2},"PoolPreloadAmount":1,"Frequency":20,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":4,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_turn_left_a","Prefab":{"fileID":108568,"guid":"10ec709c0abe2404aa0c639e3e582050","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":4,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_turn_right_a","Prefab":{"fileID":128776,"guid":"f9897a657ef5743e3a89c2576cac6d87","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":4,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":1,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_junction_a","Prefab":{"fileID":107456,"guid":"b05bfbc215c40460385e5bf3c3da271d","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"forest_junction_b","Prefab":{"fileID":109678,"guid":"b78f4e58025684ca1ae79c71795bd5c6","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Slide Under","Name":"Slide Under","ID":{"RegionID":0,"ZoneID":4,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_slide_under_a","Prefab":{"fileID":191460,"guid":"a12882d3a156743049be32e219548fea","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":4,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Jump Over","Name":"Jump Over","ID":{"RegionID":0,"ZoneID":4,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":12,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":0,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_jump_over_a","Prefab":{"fileID":112274,"guid":"690facb371ff44ad39a74a7961543be1","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"forest_jump_over_b","Prefab":{"fileID":120832,"guid":"28705f683d0f04ecbbfbb52d8549894b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"forest_river_a","Prefab":{"fileID":163104,"guid":"961f8963b740a4253909179047cb72b7","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Forest Stumble","Name":"Stumble","ID":{"RegionID":0,"ZoneID":4,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":1,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":1,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"forest_stumble_a","Prefab":{"fileID":186448,"guid":"4403651617aa941a691250ac99d8bf6b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"forest_stumble_b","Prefab":{"fileID":187778,"guid":"760bce868454842679621e6eaa876bf8","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":0,"Gameplay":0,"UseTiltForTurn":0,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.1,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":0,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{}}' ); }, function (e) { e.exports = JSON.parse( '{"Name":"MineCart","ID":1,"Definitions":[{"DisplayName":"Machu MineCart Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_straight_a","Prefab":{"fileID":191766,"guid":"33a512219db3342ccaf28c835846017a","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"mine_straight_b","Prefab":{"fileID":128108,"guid":"6a8c434388971473594c3a674c852cd6","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":1,"PieceID":1},"SpecialType":0,"CategoryType":6,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_entrance_a","Prefab":{"fileID":194912,"guid":"558dc3c1fc6a74685ba2d6ec3269a70e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":1,"PieceID":2},"SpecialType":0,"CategoryType":7,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_exit_a","Prefab":{"fileID":112884,"guid":"1ac33785e06b849d181bb3677b67dd24","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Left Start","Name":"Ledge Left Start","ID":{"RegionID":0,"ZoneID":1,"PieceID":3},"SpecialType":0,"CategoryType":1,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":1,"PieceID":4},"CompoundPieceEndType":{"RegionID":0,"ZoneID":1,"PieceID":5},"Variations":[{"PieceName":"mine_ledge_left_start_a","Prefab":{"fileID":113720,"guid":"e8f7889206b4f409cb697338a1a34626","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":12},{"DisplayName":"Machu MineCart Ledge Left Middle","Name":"Ledge Left Middle","ID":{"RegionID":0,"ZoneID":1,"PieceID":4},"SpecialType":0,"CategoryType":2,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":1,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_left_a","Prefab":{"fileID":190610,"guid":"8ca8ba14bc2ac49fe9e43a0241dcc983","type":2},"PoolPreloadAmount":1,"Frequency":65,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"mine_ledge_left_b","Prefab":{"fileID":153376,"guid":"8d6b9636da79444ea82d9c8cb363d281","type":2},"PoolPreloadAmount":1,"Frequency":45,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Left End","Name":"Ledge Left End","ID":{"RegionID":0,"ZoneID":1,"PieceID":5},"SpecialType":0,"CategoryType":3,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_left_end_a","Prefab":{"fileID":130366,"guid":"ce4a19be9cdac4380a32a6195b5e7312","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_junction_b","Prefab":{"fileID":167622,"guid":"619934b70136e4042ae52e55a0982a69","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":1,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_junction_c","Prefab":{"fileID":118348,"guid":"52c2691a586884a32b798a885e112c57","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Curve Right Long","Name":"Curve Right Long","ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":1,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.2,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_curve_a","Prefab":{"fileID":173686,"guid":"846082c61ec9b43049b602fe0ed944bc","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Curve Left","Name":"Curve Left","ID":{"RegionID":0,"ZoneID":1,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":1,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_curve_d","Prefab":{"fileID":148582,"guid":"6a46b6b7b31514eefbc497abda29e694","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Curve Right","Name":"Curve Right","ID":{"RegionID":0,"ZoneID":1,"PieceID":10},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":1,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_curve_c","Prefab":{"fileID":181700,"guid":"c4370397c651344e182fbb56f8a8cbcd","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":1,"PieceID":11},"SpecialType":0,"CategoryType":0,"DeathType":5,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":0,"IsYJunction":1,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.4,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_junction_a","Prefab":{"fileID":126656,"guid":"4059a295dddd7437092530ab54f5f568","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Duck","Name":"Duck","ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"SpecialType":0,"CategoryType":0,"DeathType":3,"DeathShakeCamera":1,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_duck_a","Prefab":{"fileID":132860,"guid":"c907ca4537ddc4cfeb7c249d459f39b5","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0},{"PieceName":"mine_duck_b","Prefab":{"fileID":195016,"guid":"952b3aafe7f23410ba3417e5820aefe2","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Right Start","Name":"Ledge Right Start","ID":{"RegionID":0,"ZoneID":1,"PieceID":13},"SpecialType":0,"CategoryType":1,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":0,"ZoneID":1,"PieceID":14},"CompoundPieceEndType":{"RegionID":0,"ZoneID":1,"PieceID":15},"Variations":[{"PieceName":"mine_ledge_right_start_a","Prefab":{"fileID":171916,"guid":"42f2f53a0177e4776a116dcc26e855a2","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":4,"CompoundPieceMaxMiddleCount":12},{"DisplayName":"Machu MineCart Ledge Right Middle","Name":"Ledge Right Middle","ID":{"RegionID":0,"ZoneID":1,"PieceID":14},"SpecialType":0,"CategoryType":2,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":1,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_right_a","Prefab":{"fileID":170186,"guid":"e9fe73f4402f145f3839fa86953c1bc4","type":2},"PoolPreloadAmount":1,"Frequency":65,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"mine_ledge_right_b","Prefab":{"fileID":112712,"guid":"dc2eb971fb37b4f49aa2351f583c6374","type":2},"PoolPreloadAmount":1,"Frequency":35,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu MineCart Ledge Right End","Name":"Ledge Right End","ID":{"RegionID":0,"ZoneID":1,"PieceID":15},"SpecialType":0,"CategoryType":3,"DeathType":4,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":1,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"mine_ledge_right_end_a","Prefab":{"fileID":115654,"guid":"820263a843b2a46e3b0b89c5605c5b08","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":0,"Gameplay":1,"UseTiltForTurn":1,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.4,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":1,"MaxHorizontalOffset":0.85,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":0,"TutorialPacing":{"StartingSection":{"Pieces":[],"TrackLoop":0},"TutorialStartAnalyticsEventName":"TutorialStartMineCart","TutorialMilestones":[{"TutorialMilestoneName":"Tutorial Mine Turn","TutorialStep":0,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":1},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":9},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":4,"DisplayMessageText":"Tilt To Live!","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":9,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":10,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":7},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":9,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":6},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMinecartA"},{"TutorialMilestoneName":"Tutorial Mine Duck","TutorialStep":1,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":2,"DisplayMessageText":"Swipe To Duck","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":1,"PieceID":8},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":13,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteMinecartB"}],"SaveAndRestorePlayerSpeedOnStartEnd":1,"ResetPlayerSpeedToMinOnTutorialStart":1,"MarkTutorialCompleteWhenPacingRemoved":1}}' ); }, function (e) { e.exports = JSON.parse( '{"Name":"Narrows","ID":2,"Definitions":[{"DisplayName":"Machu Narrows Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":2,"PieceID":0},"SpecialType":0,"CategoryType":6,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":3,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_start_a","Prefab":{"fileID":108856,"guid":"980c4dc67cfa84efcada18dee6ab6b1c","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":2,"PieceID":1},"SpecialType":0,"CategoryType":7,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_end_a","Prefab":{"fileID":112380,"guid":"6de617a73735248f5af923c6b4382d4d","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":0},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_straight_a","Prefab":{"fileID":198916,"guid":"0efe31ab0969c4b5fadf3e0b8e4a7298","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"narrow_straight_b","Prefab":{"fileID":174522,"guid":"796215173bde545ce939994eb10721f4","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Turn Left","Name":"Turn Left","ID":{"RegionID":0,"ZoneID":2,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_turn_left_a","Prefab":{"fileID":170448,"guid":"b20a6d81e9d3548908cb5ceaeb72245f","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Turn Right","Name":"Turn Right","ID":{"RegionID":0,"ZoneID":2,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":1,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_turn_right_a","Prefab":{"fileID":159922,"guid":"d6719ed0a12ac4ec095d9c4c6745b14e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Jump Or Slide","Name":"Jump Or Slide","ID":{"RegionID":0,"ZoneID":2,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_jump_or_slide_a","Prefab":{"fileID":100000,"guid":"44e2a9060c7df473a83b7beeeddbf3c8","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Straight Rare","Name":"Straight Rare","ID":{"RegionID":0,"ZoneID":2,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_straight_c","Prefab":{"fileID":148728,"guid":"a77df69986f96464daa82fe9c543c33b","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"narrow_straight_d","Prefab":{"fileID":194970,"guid":"a4b955ccccfe941529890a9919be7c91","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1},{"PieceName":"narrow_straight_e","Prefab":{"fileID":164742,"guid":"9496b1df260d94b48a0a45b60fc312db","type":2},"PoolPreloadAmount":1,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":2,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":1,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_junction_a","Prefab":{"fileID":195132,"guid":"fb3ac1359535c49c8a6845a7a7edad0c","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":7,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Stumble","Name":"Stumble","ID":{"RegionID":0,"ZoneID":2,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":1,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":1,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_stumble_a","Prefab":{"fileID":174996,"guid":"543a5f50e88774913a12ab2fd8adcb93","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu Narrows Jump","Name":"Jump","ID":{"RegionID":0,"ZoneID":2,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":0,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":1,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":1,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":0,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"narrow_jump_over_a","Prefab":{"fileID":171504,"guid":"48f102f9e81f747239ff755e6893448d","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1},{"PieceName":"narrow_jump_over_b","Prefab":{"fileID":118402,"guid":"c0d313fdb01c24b1cb1615ccbca26c7e","type":2},"PoolPreloadAmount":0,"Frequency":100,"CoinPlacement":3,"CanSpawnPowerup":1}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":2,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":1,"TransitionToZoneSupported":0,"Gameplay":0,"UseTiltForTurn":0,"IsLedgeZone":0,"TiltRatePercentModifier":0.85,"LedgeLeftRightMinTolerance":0,"LedgeLeftRightMaxTolerance":0.8,"CoinSettings":{"SmartPlacement":0,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":0,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{}}' ); }, function (e) { e.exports = JSON.parse( '{"Name":"WaterSlide","ID":3,"Definitions":[{"DisplayName":"Machu WaterSlide Entrance","Name":"Entrance","ID":{"RegionID":0,"ZoneID":3,"PieceID":0},"SpecialType":0,"CategoryType":6,"DeathType":12,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":2,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_start_a","Prefab":{"fileID":142972,"guid":"bbf83e217123e4b109fcce7ebb395c17","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Exit","Name":"Exit","ID":{"RegionID":0,"ZoneID":3,"PieceID":1},"SpecialType":0,"CategoryType":7,"DeathType":12,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_end_a","Prefab":{"fileID":138986,"guid":"3759be77208ce4f5da27d6da8becca42","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":0,"PieceID":5},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Straight","Name":"Straight","ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_straight_a","Prefab":{"fileID":170628,"guid":"cd9f72178227d4ea9bb2044b40ec200b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":7,"CanSpawnPowerup":0},{"PieceName":"waterslide_straight_b","Prefab":{"fileID":133912,"guid":"a44f9d958ae48490e9a5e3cb16b49e60","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":7,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveLeft45","Name":"CurveLeft45","ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"SpecialType":0,"CategoryType":0,"DeathType":7,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_45_b","Prefab":{"fileID":170040,"guid":"461a530d9f0624dce8ba2d8ebd252e3d","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":0,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveRight45","Name":"CurveRight45","ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"SpecialType":0,"CategoryType":0,"DeathType":7,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_45_a","Prefab":{"fileID":158748,"guid":"36cbe8ccc90424f6bbf33e08ea990cd5","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":2,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck","Name":"Duck","ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"SpecialType":0,"CategoryType":0,"DeathType":9,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.5,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_b","Prefab":{"fileID":134922,"guid":"c7f2f573d0c9843e4994401189b8cf01","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Left","Name":"Duck Left","ID":{"RegionID":0,"ZoneID":3,"PieceID":6},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_blocked_right","Prefab":{"fileID":102752,"guid":"d35ddfcb4d30043d392d5de8485e8478","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Right","Name":"Duck Right","ID":{"RegionID":0,"ZoneID":3,"PieceID":7},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_blocked_left","Prefab":{"fileID":159486,"guid":"7d10459e9f1814ce58d8f1f4788a7fdd","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Center","Name":"Duck Center","ID":{"RegionID":0,"ZoneID":3,"PieceID":8},"SpecialType":0,"CategoryType":0,"DeathType":6,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_center_blocked_sides","Prefab":{"fileID":170140,"guid":"288329cd584b945ffa9f76a23ca2db14","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Duck Side","Name":"Duck Side","ID":{"RegionID":0,"ZoneID":3,"PieceID":9},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":1,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.25,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_blocked_center","Prefab":{"fileID":105240,"guid":"4c6c2a590fdf64ef686cab5eb098746c","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Tilt Right","Name":"Tilt Right","ID":{"RegionID":0,"ZoneID":3,"PieceID":10},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_left_tilt_right","Prefab":{"fileID":135018,"guid":"3fc6186df8bf049a98866bea61895b10","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":2,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":2,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Tilt Left","Name":"Tilt Left","ID":{"RegionID":0,"ZoneID":3,"PieceID":11},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_duck_right_tilt_left","Prefab":{"fileID":147108,"guid":"81d7bb36382d545d288ae9ecffa59540","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":0,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":0,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveLeft90","Name":"CurveLeft90","ID":{"RegionID":0,"ZoneID":3,"PieceID":12},"SpecialType":0,"CategoryType":0,"DeathType":7,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_90_b","Prefab":{"fileID":124298,"guid":"a96a580c702d54d2da7783a06bf1aca3","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":0,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide CurveRight90","Name":"CurveRight90","ID":{"RegionID":0,"ZoneID":3,"PieceID":13},"SpecialType":0,"CategoryType":0,"DeathType":13,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_curve_90_a","Prefab":{"fileID":173738,"guid":"8a07dd86671a24426a6f7d2fa6e0ed6c","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":2,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Rock","Name":"Rock","ID":{"RegionID":0,"ZoneID":3,"PieceID":14},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":1,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_straight_c","Prefab":{"fileID":101528,"guid":"9b0c23b86c56c499bbd89417fa80be88","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":5,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":5,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Tilt Tutorial","Name":"Tilt Tutorial","ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":0,"IsTurnRight":0,"IsJunction":0,"IsYJunction":0,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":0,"SelectionOdds":1,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_straight_a","Prefab":{"fileID":170628,"guid":"cd9f72178227d4ea9bb2044b40ec200b","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":5,"CanSpawnPowerup":0},{"PieceName":"waterslide_straight_b","Prefab":{"fileID":133912,"guid":"a44f9d958ae48490e9a5e3cb16b49e60","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":5,"CanSpawnPowerup":0}],"PrePieces":[],"PostPieces":[],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1},{"DisplayName":"Machu WaterSlide Junction","Name":"Junction","ID":{"RegionID":0,"ZoneID":3,"PieceID":16},"SpecialType":0,"CategoryType":0,"DeathType":10,"DeathShakeCamera":0,"IsTurnLeft":1,"IsTurnRight":1,"IsJunction":0,"IsYJunction":1,"IsOptionalJunction":0,"IsSlideUnder":0,"IsJumpOver":0,"IsStumble":0,"IsLedgeLeft":0,"IsLedgeRight":0,"IsLedgeCenter":0,"IsStairs":0,"IsCurveLeft":0,"IsCurveRight":0,"IsMine":0,"IsZipLine":0,"IsWaterSlide":1,"IsGenericObstacle":0,"AllowDoubleObstacle":1,"LedgeZoneTransitionType":0,"DifficultyLevel":1,"SelectionOdds":0.75,"CompoundPieceMiddleType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"CompoundPieceEndType":{"RegionID":-1,"ZoneID":-1,"PieceID":-1},"Variations":[{"PieceName":"waterslide_junction_a","Prefab":{"fileID":109730,"guid":"f16bf614670dc47a1b8a9895487bca3c","type":2},"PoolPreloadAmount":1,"Frequency":0,"CoinPlacement":3,"CanSpawnPowerup":0}],"PrePieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":1,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":1,"CoinPlacement":3,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"PostPieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"VariationName":null,"OverrideCoinPlacement":0,"CoinPlacement":7,"OverrideCanSpawnPowerup":0,"CanSpawnPowerup":0}],"JunctionPostPieces":[],"CompoundPieceMinMiddleCount":1,"CompoundPieceMaxMiddleCount":1}],"AllowObstacleDuringFastTurn":0,"TransitionToZoneSupported":0,"Gameplay":2,"UseTiltForTurn":1,"IsLedgeZone":0,"TiltRatePercentModifier":1,"LedgeLeftRightMinTolerance":0.1,"LedgeLeftRightMaxTolerance":1.1,"CoinSettings":{"SmartPlacement":1,"UseTrackDefinitonsForAllowingCoins":0,"HeightAboveGround":0,"MaxHorizontalOffset":1.1,"UseTrackDefinitonsForAllowingBonus":0,"BonusItemHeightAboveGround":0},"Sunlight":1,"TutorialPacing":{"StartingSection":{"Pieces":[],"TrackLoop":0},"TutorialStartAnalyticsEventName":"TutorialStartWaterslide","TutorialMilestones":[{"TutorialMilestoneName":"Tutorial Water Slide Tilt","TutorialStep":0,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":0},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":4,"DisplayMessageText":"Tilt To Dodge!","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":15},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideA"},{"TutorialMilestoneName":"Tutorial Water Slide Tilt Left","TutorialStep":1,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":9,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":11},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideB"},{"TutorialMilestoneName":"Tutorial Water Slide Tilt Right","TutorialStep":2,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":10,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":10},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":12,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":12},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideC"},{"TutorialMilestoneName":"Tutorial Water Slide Duck","TutorialStep":3,"TutorialTrackQueue":{"Pieces":[{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":13},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":2,"DisplayMessageText":"Swipe To Dunk","SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":3},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":4},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":6,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":2}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":5},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":13,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":1}},{"ID":{"RegionID":0,"ZoneID":3,"PieceID":2},"Variation":null,"Attach":1,"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}],"TrackLoop":0},"AllowCoins":0,"MilestoneCompleteAnalyticsEventName":"TutorialSegmentCompleteWaterslideD"}],"SaveAndRestorePlayerSpeedOnStartEnd":1,"ResetPlayerSpeedToMinOnTutorialStart":1,"MarkTutorialCompleteWhenPacingRemoved":1}}' ); }, function (e, t, n) { var i = { "./Machu/Base/MachuBasePieces.json": 263, "./Machu/Forest/MachuForestPieces.json": 264, "./Machu/MineCart/MachuMineCartPieces.json": 265, "./Machu/Narrows/MachuNarrowsPieces.json": 266, "./Machu/WaterSlide/MachuWaterSlidePieces.json": 267, }; function r(e) { var t = o(e); return n(t); } function o(e) { if (!n.o(i, e)) { var t = new Error("Cannot find module '" + e + "'"); throw ((t.code = "MODULE_NOT_FOUND"), t); } return i[e]; } (r.keys = function () { return Object.keys(i); }), (r.resolve = o), (e.exports = r), (r.id = 262); }, function (e) { e.exports = JSON.parse( '{"bridge_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9234317e-7,"y":0.15999925,"z":-6.400001},{"x":9.193606e-7,"y":-0.16000101,"z":-8.320001},{"x":8.076157e-7,"y":-0.64000136,"z":-10.880001},{"x":6.959441e-7,"y":-0.9600017,"z":-13.4400015},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":4.7251046e-7,"y":-0.9600023,"z":-18.560001},{"x":3.605887e-7,"y":-0.64000255,"z":-21.12},{"x":2.4844172e-7,"y":-0.16000283,"z":-23.680002},{"x":-0.0000011813692,"y":0.15999696,"z":-25.600002},{"x":-0.0000014439192,"y":-0.0000024175642,"z":-32.000004}],"EstimatedPathLength":32.188538,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.6483148e-7,"y":0.05925905,"z":-1.8251855},{"x":-3.7325663e-7,"y":0.1362958,"z":-4.361482},{"x":-3.9234314e-7,"y":0.15999925,"z":-6.4000015},{"x":-2.861384e-8,"y":0.09481393,"z":-7.3481493},{"x":5.24454e-7,"y":-0.023704678,"z":-7.798519},{"x":9.1936073e-7,"y":-0.16000108,"z":-8.320001},{"x":9.875503e-7,"y":-0.3140753,"z":-9.125927},{"x":8.9757896e-7,"y":-0.4859272,"z":-10.002965},{"x":8.076157e-7,"y":-0.6400014,"z":-10.880001},{"x":7.703942e-7,"y":-0.7674089,"z":-11.733335},{"x":7.331808e-7,"y":-0.87703866,"z":-12.586669},{"x":6.9594404e-7,"y":-0.96000177,"z":-13.440002},{"x":6.586534e-7,"y":-1.0103722,"z":-14.293336},{"x":6.213393e-7,"y":-1.0340759,"z":-15.146669},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":5.4686734e-7,"y":-1.0340762,"z":-16.853336},{"x":5.097094e-7,"y":-1.0103725,"z":-17.70667},{"x":4.7251044e-7,"y":-0.96000224,"z":-18.560001},{"x":4.3523892e-7,"y":-0.87703925,"z":-19.413336},{"x":3.9792633e-7,"y":-0.76740974,"z":-20.266668},{"x":3.6058864e-7,"y":-0.64000237,"z":-21.120003},{"x":3.7202545e-7,"y":-0.48592848,"z":-21.997038},{"x":3.8343705e-7,"y":-0.3140766,"z":-22.874077},{"x":2.4844118e-7,"y":-0.16000254,"z":-23.680004},{"x":-1.7378969e-7,"y":-0.023706496,"z":-24.201485},{"x":-7.424281e-7,"y":0.094811976,"z":-24.651857},{"x":-0.0000011813695,"y":0.15999699,"z":-25.600004},{"x":-0.0000013650739,"y":0.13629329,"z":-27.638525},{"x":-0.0000014190827,"y":0.059256554,"z":-30.174818},{"x":-0.0000014439194,"y":-0.0000024586916,"z":-31.999996}],"GeneratedEstimatedPathLength":32.208782,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"bridge_gap_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9234317e-7,"y":0.15999925,"z":-6.400001},{"x":9.193606e-7,"y":-0.16000101,"z":-8.320001},{"x":8.076157e-7,"y":-0.64000136,"z":-10.880001},{"x":6.959441e-7,"y":-0.9600017,"z":-13.4400015},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":4.7251046e-7,"y":-0.9600023,"z":-18.560001},{"x":3.605887e-7,"y":-0.64000255,"z":-21.12},{"x":2.4844172e-7,"y":-0.16000283,"z":-23.680002},{"x":-0.0000011813692,"y":0.15999696,"z":-25.600002},{"x":-0.0000014439192,"y":-0.0000024175642,"z":-32.000004}],"EstimatedPathLength":32.188538,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.6483148e-7,"y":0.05925905,"z":-1.8251855},{"x":-3.7325663e-7,"y":0.1362958,"z":-4.361482},{"x":-3.9234314e-7,"y":0.15999925,"z":-6.4000015},{"x":-2.861384e-8,"y":0.09481393,"z":-7.3481493},{"x":5.24454e-7,"y":-0.023704678,"z":-7.798519},{"x":9.1936073e-7,"y":-0.16000108,"z":-8.320001},{"x":9.875503e-7,"y":-0.3140753,"z":-9.125927},{"x":8.9757896e-7,"y":-0.4859272,"z":-10.002965},{"x":8.076157e-7,"y":-0.6400014,"z":-10.880001},{"x":7.703942e-7,"y":-0.7674089,"z":-11.733335},{"x":7.331808e-7,"y":-0.87703866,"z":-12.586669},{"x":6.9594404e-7,"y":-0.96000177,"z":-13.440002},{"x":6.586534e-7,"y":-1.0103722,"z":-14.293336},{"x":6.213393e-7,"y":-1.0340759,"z":-15.146669},{"x":5.84062e-7,"y":-1.040002,"z":-16.000002},{"x":5.4686734e-7,"y":-1.0340762,"z":-16.853336},{"x":5.097094e-7,"y":-1.0103725,"z":-17.70667},{"x":4.7251044e-7,"y":-0.96000224,"z":-18.560001},{"x":4.3523892e-7,"y":-0.87703925,"z":-19.413336},{"x":3.9792633e-7,"y":-0.76740974,"z":-20.266668},{"x":3.6058864e-7,"y":-0.64000237,"z":-21.120003},{"x":3.7202545e-7,"y":-0.48592848,"z":-21.997038},{"x":3.8343705e-7,"y":-0.3140766,"z":-22.874077},{"x":2.4844118e-7,"y":-0.16000254,"z":-23.680004},{"x":-1.7378969e-7,"y":-0.023706496,"z":-24.201485},{"x":-7.424281e-7,"y":0.094811976,"z":-24.651857},{"x":-0.0000011813695,"y":0.15999699,"z":-25.600004},{"x":-0.0000013650739,"y":0.13629329,"z":-27.638525},{"x":-0.0000014190827,"y":0.059256554,"z":-30.174818},{"x":-0.0000014439194,"y":-0.0000024586916,"z":-31.999996}],"GeneratedEstimatedPathLength":32.208782,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"curve_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.13288085,"y":0.17367247,"z":-5.359034},{"x":0.64437985,"y":0.35665524,"z":-10.626655},{"x":1.483833,"y":0.5110622,"z":-15.792166},{"x":2.6405225,"y":0.63999754,"z":-20.84488}],"EstimatedPathLength":21.079628,"SourceLastYRot":345.28,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.004214975,"y":0.0065159206,"z":-0.20184807},{"x":0.008146799,"y":0.014388118,"z":-0.44689345},{"x":0.012013907,"y":0.023470491,"z":-0.7302913},{"x":0.016034728,"y":0.033616945,"z":-1.0471967},{"x":0.020427698,"y":0.04468137,"z":-1.3927649},{"x":0.025411252,"y":0.056517676,"z":-1.7621512},{"x":0.031203818,"y":0.068979755,"z":-2.1505103},{"x":0.03802383,"y":0.08192152,"z":-2.552998},{"x":0.04608973,"y":0.09519686,"z":-2.9647684},{"x":0.05561994,"y":0.10865968,"z":-3.380978},{"x":0.0668329,"y":0.12216388,"z":-3.796781},{"x":0.07994704,"y":0.13556336,"z":-4.2073336},{"x":0.0951808,"y":0.14871201,"z":-4.607789},{"x":0.1127526,"y":0.16146374,"z":-4.9933043},{"x":0.13288085,"y":0.17367247,"z":-5.359034},{"x":0.15530665,"y":0.18566026,"z":-5.713075},{"x":0.17959535,"y":0.19782412,"z":-6.066748},{"x":0.20570184,"y":0.21013038,"z":-6.4200425},{"x":0.23358122,"y":0.2225454,"z":-6.7729506},{"x":0.2631883,"y":0.23503545,"z":-7.125461},{"x":0.29447818,"y":0.2475669,"z":-7.477566},{"x":0.32740575,"y":0.26010603,"z":-7.829254},{"x":0.36192602,"y":0.2726192,"z":-8.180518},{"x":0.39799398,"y":0.28507274,"z":-8.531347},{"x":0.43556446,"y":0.2974329,"z":-8.881731},{"x":0.47459257,"y":0.3096661,"z":-9.231662},{"x":0.5150331,"y":0.3217386,"z":-9.581129},{"x":0.5568413,"y":0.33361676,"z":-9.930124},{"x":0.59997183,"y":0.34526688,"z":-10.278635},{"x":0.64437985,"y":0.35665524,"z":-10.626655},{"x":0.6901627,"y":0.36783165,"z":-10.974222},{"x":0.7374411,"y":0.37886998,"z":-11.321372},{"x":0.78620565,"y":0.38977304,"z":-11.668097},{"x":0.836447,"y":0.4005436,"z":-12.014388},{"x":0.8881553,"y":0.41118437,"z":-12.360234},{"x":0.94132113,"y":0.42169815,"z":-12.705626},{"x":0.995935,"y":0.43208766,"z":-13.050554},{"x":1.0519876,"y":0.44235575,"z":-13.395011},{"x":1.1094689,"y":0.45250505,"z":-13.738985},{"x":1.1683699,"y":0.4625384,"z":-14.082466},{"x":1.2286808,"y":0.47245854,"z":-14.425447},{"x":1.2903922,"y":0.48226824,"z":-14.767918},{"x":1.3534942,"y":0.49197024,"z":-15.109867},{"x":1.4179776,"y":0.5015673,"z":-15.451286},{"x":1.4838332,"y":0.51106226,"z":-15.792167},{"x":1.5541332,"y":0.520665,"z":-16.142769},{"x":1.6310838,"y":0.53052235,"z":-16.510435},{"x":1.7133751,"y":0.5405425,"z":-16.890772},{"x":1.7996963,"y":0.55063325,"z":-17.27939},{"x":1.8887377,"y":0.56070286,"z":-17.671898},{"x":1.9791889,"y":0.5706592,"z":-18.063904},{"x":2.0697403,"y":0.5804104,"z":-18.451017},{"x":2.159081,"y":0.5898645,"z":-18.828848},{"x":2.245901,"y":0.5989294,"z":-19.193005},{"x":2.3288906,"y":0.6075133,"z":-19.539093},{"x":2.4067395,"y":0.6155241,"z":-19.862728},{"x":2.478137,"y":0.6228699,"z":-20.159515},{"x":2.5417736,"y":0.6294587,"z":-20.425062},{"x":2.596339,"y":0.63519865,"z":-20.654982},{"x":2.6405225,"y":0.6399976,"z":-20.844877}],"GeneratedEstimatedPathLength":21.082336,"GeneratedLastYRot":345.28,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"curve_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.13288085,"y":-6.388455e-7,"z":-5.3590255},{"x":-0.64438474,"y":-0.0000012667944,"z":-10.626642},{"x":-1.4838378,"y":-0.0000018825714,"z":-15.792155},{"x":-2.6405175,"y":-0.0000024849012,"z":-20.844864}],"EstimatedPathLength":21.069756,"SourceLastYRot":14.72,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0042149653,"y":-2.406209e-8,"z":-0.20184775},{"x":-0.008146762,"y":-5.3273723e-8,"z":-0.4468927},{"x":-0.012013828,"y":-8.7057316e-8,"z":-0.7302901},{"x":-0.0160346,"y":-1.2483531e-7,"z":-1.047195},{"x":-0.020427518,"y":-1.6603016e-7,"z":-1.3927625},{"x":-0.025411017,"y":-2.1006436e-7,"z":-1.7621483},{"x":-0.031203534,"y":-2.5636032e-7,"z":-2.1505067},{"x":-0.03802351,"y":-3.043405e-7,"z":-2.5529935},{"x":-0.046089374,"y":-3.5342728e-7,"z":-2.9647636},{"x":-0.055619575,"y":-4.0304323e-7,"z":-3.3809724},{"x":-0.06683254,"y":-4.526107e-7,"z":-3.7967749},{"x":-0.079946734,"y":-5.015523e-7,"z":-4.207327},{"x":-0.095180556,"y":-5.492903e-7,"z":-4.6077824},{"x":-0.11275245,"y":-5.952472e-7,"z":-4.9932966},{"x":-0.13288085,"y":-6.388455e-7,"z":-5.3590255},{"x":-0.15530685,"y":-6.8105044e-7,"z":-5.713066},{"x":-0.1795958,"y":-7.232115e-7,"z":-6.0667386},{"x":-0.20570259,"y":-7.6532746e-7,"z":-6.420033},{"x":-0.23358229,"y":-8.073973e-7,"z":-6.7729406},{"x":-0.26318973,"y":-8.494198e-7,"z":-7.1254506},{"x":-0.29448003,"y":-8.9139394e-7,"z":-7.4775553},{"x":-0.327408,"y":-9.3331846e-7,"z":-7.829243},{"x":-0.3619287,"y":-9.751923e-7,"z":-8.180507},{"x":-0.39799702,"y":-0.0000010170143,"z":-8.531336},{"x":-0.43556786,"y":-0.0000010587833,"z":-8.881719},{"x":-0.47459638,"y":-0.0000011004983,"z":-9.231649},{"x":-0.5150373,"y":-0.000001142158,"z":-9.581116},{"x":-0.5568457,"y":-0.0000011837614,"z":-9.930111},{"x":-0.59997654,"y":-0.0000012253072,"z":-10.278622},{"x":-0.64438474,"y":-0.0000012667944,"z":-10.626642},{"x":-0.6901678,"y":-0.0000013082276,"z":-10.97421},{"x":-0.7374463,"y":-0.0000013496111,"z":-11.32136},{"x":-0.786211,"y":-0.0000013909439,"z":-11.668085},{"x":-0.8364525,"y":-0.0000014322251,"z":-12.014376},{"x":-0.8881609,"y":-0.0000014734532,"z":-12.360222},{"x":-0.94132686,"y":-0.000001514627,"z":-12.705614},{"x":-0.9959408,"y":-0.0000015557457,"z":-13.050543},{"x":-1.0519935,"y":-0.0000015968083,"z":-13.395},{"x":-1.1094749,"y":-0.000001637813,"z":-13.738975},{"x":-1.1683757,"y":-0.0000016787593,"z":-14.082457},{"x":-1.2286866,"y":-0.0000017196459,"z":-14.425438},{"x":-1.2903976,"y":-0.0000017604714,"z":-14.767908},{"x":-1.3534997,"y":-0.0000018012349,"z":-15.109858},{"x":-1.4179829,"y":-0.0000018419353,"z":-15.451277},{"x":-1.4838381,"y":-0.0000018825715,"z":-15.792156},{"x":-1.5541377,"y":-0.0000019243666,"z":-16.14276},{"x":-1.6310878,"y":-0.0000019681956,"z":-16.510424},{"x":-1.7133785,"y":-0.0000020135353,"z":-16.890762},{"x":-1.7996991,"y":-0.0000020598623,"z":-17.279379},{"x":-1.8887396,"y":-0.0000021066526,"z":-17.671886},{"x":-1.9791901,"y":-0.0000021533833,"z":-18.06389},{"x":-2.0697408,"y":-0.000002199531,"z":-18.451006},{"x":-2.1590805,"y":-0.0000022445718,"z":-18.828835},{"x":-2.2458997,"y":-0.0000022879826,"z":-19.192991},{"x":-2.3288884,"y":-0.0000023292396,"z":-19.539082},{"x":-2.4067364,"y":-0.00000236782,"z":-19.862715},{"x":-2.4781334,"y":-0.0000024031995,"z":-20.1595},{"x":-2.5417693,"y":-0.0000024348553,"z":-20.425049},{"x":-2.596334,"y":-0.0000024622636,"z":-20.654968},{"x":-2.6405172,"y":-0.0000024849012,"z":-20.844864}],"GeneratedEstimatedPathLength":21.072454,"GeneratedLastYRot":14.72,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"curve_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":-3.0517577e-7},{"x":0.13288085,"y":0.17773588,"z":-5.359034},{"x":0.64437985,"y":0.34707394,"z":-10.626655},{"x":1.483833,"y":0.48889223,"z":-15.792166},{"x":2.6405225,"y":0.63999754,"z":-20.84488}],"EstimatedPathLength":21.079552,"SourceLastYRot":345.28,"GeneratedPath":[{"x":0,"y":0,"z":-3.0517577e-7},{"x":0.004214975,"y":0.0067055537,"z":-0.20184836},{"x":0.008146799,"y":0.014862854,"z":-0.44689375},{"x":0.012013907,"y":0.024306446,"z":-0.73029155},{"x":0.016034728,"y":0.03487088,"z":-1.0471971},{"x":0.020427698,"y":0.046390705,"z":-1.3927652},{"x":0.025411252,"y":0.05870047,"z":-1.7621514},{"x":0.031203818,"y":0.07163471,"z":-2.1505105},{"x":0.03802383,"y":0.08502799,"z":-2.552998},{"x":0.04608973,"y":0.09871485,"z":-2.9647686},{"x":0.05561994,"y":0.112529844,"z":-3.380978},{"x":0.0668329,"y":0.1263075,"z":-3.796781},{"x":0.07994704,"y":0.13988239,"z":-4.207334},{"x":0.0951808,"y":0.15308905,"z":-4.6077895},{"x":0.1127526,"y":0.16576204,"z":-4.9933047},{"x":0.13288085,"y":0.17773588,"z":-5.359034},{"x":0.15530665,"y":0.18932602,"z":-5.713075},{"x":0.17959535,"y":0.20094682,"z":-6.066748},{"x":0.20570184,"y":0.21258128,"z":-6.4200425},{"x":0.23358122,"y":0.22421242,"z":-6.7729506},{"x":0.2631883,"y":0.23582321,"z":-7.125461},{"x":0.29447818,"y":0.24739671,"z":-7.477566},{"x":0.32740575,"y":0.25891587,"z":-7.829254},{"x":0.36192602,"y":0.27036372,"z":-8.180518},{"x":0.39799398,"y":0.28172326,"z":-8.531347},{"x":0.43556446,"y":0.29297745,"z":-8.881731},{"x":0.47459257,"y":0.3041094,"z":-9.231662},{"x":0.5150331,"y":0.31510198,"z":-9.581129},{"x":0.5568413,"y":0.32593828,"z":-9.930124},{"x":0.59997183,"y":0.33660126,"z":-10.278635},{"x":0.64437985,"y":0.34707394,"z":-10.626655},{"x":0.6901627,"y":0.35730836,"z":-10.974222},{"x":0.7374411,"y":0.36728954,"z":-11.321372},{"x":0.78620565,"y":0.37705028,"z":-11.668097},{"x":0.836447,"y":0.3866233,"z":-12.014388},{"x":0.8881553,"y":0.39604127,"z":-12.360234},{"x":0.94132113,"y":0.40533692,"z":-12.705626},{"x":0.995935,"y":0.41454297,"z":-13.050554},{"x":1.0519876,"y":0.4236922,"z":-13.395011},{"x":1.1094689,"y":0.43281722,"z":-13.738985},{"x":1.1683699,"y":0.4419508,"z":-14.082466},{"x":1.2286808,"y":0.45112568,"z":-14.425447},{"x":1.2903922,"y":0.46037453,"z":-14.767918},{"x":1.3534942,"y":0.46973008,"z":-15.109867},{"x":1.4179776,"y":0.4792251,"z":-15.451286},{"x":1.4838332,"y":0.48889226,"z":-15.792167},{"x":1.5541332,"y":0.49900967,"z":-16.142769},{"x":1.6310838,"y":0.5097386,"z":-16.510435},{"x":1.7133751,"y":0.52093667,"z":-16.890772},{"x":1.7996963,"y":0.53246105,"z":-17.27939},{"x":1.8887377,"y":0.54416925,"z":-17.671898},{"x":1.9791889,"y":0.55591875,"z":-18.063904},{"x":2.0697403,"y":0.567567,"z":-18.451017},{"x":2.159081,"y":0.5789713,"z":-18.828848},{"x":2.245901,"y":0.58998924,"z":-19.193005},{"x":2.3288906,"y":0.6004781,"z":-19.539093},{"x":2.4067395,"y":0.6102955,"z":-19.862728},{"x":2.478137,"y":0.61929864,"z":-20.159515},{"x":2.5417736,"y":0.6273451,"z":-20.425062},{"x":2.596339,"y":0.63429224,"z":-20.654982},{"x":2.6405225,"y":0.63999754,"z":-20.844877}],"GeneratedEstimatedPathLength":21.082253,"GeneratedLastYRot":345.28,"GeneratedSmoothing":5}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"curve_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.13288085,"y":-0.3173505,"z":-5.3590255},{"x":-0.64438474,"y":-0.6384681,"z":-10.626642},{"x":-1.4838378,"y":-0.9479207,"z":-15.792155},{"x":-2.6399999,"y":-1.2800026,"z":-20.880001}],"EstimatedPathLength":21.142717,"SourceLastYRot":15.000001,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0042149653,"y":-0.01193397,"z":-0.20184775},{"x":-0.008146762,"y":-0.02639335,"z":-0.4468927},{"x":-0.012013828,"y":-0.043099403,"z":-0.7302901},{"x":-0.0160346,"y":-0.06177338,"z":-1.047195},{"x":-0.020427518,"y":-0.08213654,"z":-1.3927625},{"x":-0.025411017,"y":-0.10391016,"z":-1.7621483},{"x":-0.031203534,"y":-0.12681548,"z":-2.1505067},{"x":-0.03802351,"y":-0.15057376,"z":-2.5529935},{"x":-0.046089374,"y":-0.17490625,"z":-2.9647636},{"x":-0.055619575,"y":-0.19953425,"z":-3.3809724},{"x":-0.06683254,"y":-0.22417897,"z":-3.7967749},{"x":-0.079946734,"y":-0.24856173,"z":-4.207327},{"x":-0.095180556,"y":-0.27240372,"z":-4.6077824},{"x":-0.11275245,"y":-0.29542625,"z":-4.9932966},{"x":-0.13288085,"y":-0.3173505,"z":-5.3590255},{"x":-0.15530685,"y":-0.33867317,"z":-5.713066},{"x":-0.1795958,"y":-0.36006746,"z":-6.0667386},{"x":-0.20570259,"y":-0.3815196,"z":-6.420033},{"x":-0.23358229,"y":-0.40301594,"z":-6.7729406},{"x":-0.26318973,"y":-0.4245427,"z":-7.1254506},{"x":-0.29448003,"y":-0.44608626,"z":-7.4775553},{"x":-0.327408,"y":-0.46763277,"z":-7.829243},{"x":-0.3619287,"y":-0.48916867,"z":-8.180507},{"x":-0.39799702,"y":-0.51068014,"z":-8.531336},{"x":-0.43556786,"y":-0.5321535,"z":-8.881719},{"x":-0.47459638,"y":-0.553575,"z":-9.231649},{"x":-0.5150373,"y":-0.57493085,"z":-9.581116},{"x":-0.5568457,"y":-0.5962075,"z":-9.930111},{"x":-0.59997654,"y":-0.6173911,"z":-10.278622},{"x":-0.64438474,"y":-0.6384681,"z":-10.626642},{"x":-0.69016886,"y":-0.6593901,"z":-10.974136},{"x":-0.7374503,"y":-0.68013823,"z":-11.321089},{"x":-0.7862193,"y":-0.70074314,"z":-11.667522},{"x":-0.836466,"y":-0.7212352,"z":-12.01346},{"x":-0.8881801,"y":-0.741645,"z":-12.358921},{"x":-0.94135165,"y":-0.7620028,"z":-12.703928},{"x":-0.99597085,"y":-0.78233933,"z":-13.048503},{"x":-1.0520278,"y":-0.8026851,"z":-13.392669},{"x":-1.1095121,"y":-0.8230703,"z":-13.736444},{"x":-1.168414,"y":-0.84352565,"z":-14.079853},{"x":-1.2287238,"y":-0.8640817,"z":-14.422918},{"x":-1.2904308,"y":-0.88476866,"z":-14.765659},{"x":-1.3535256,"y":-0.9056172,"z":-15.108098},{"x":-1.417998,"y":-0.92665774,"z":-15.450256},{"x":-1.4838381,"y":-0.94792074,"z":-15.792156},{"x":-1.5541172,"y":-0.9700912,"z":-16.144154},{"x":-1.6310407,"y":-0.99362344,"z":-16.51362},{"x":-1.7132999,"y":-1.0182022,"z":-16.896103},{"x":-1.7995846,"y":-1.0435121,"z":-17.287146},{"x":-1.8885863,"y":-1.0692378,"z":-17.682297},{"x":-1.9789956,"y":-1.095064,"z":-18.077103},{"x":-2.0695033,"y":-1.1206758,"z":-18.467112},{"x":-2.1588001,"y":-1.1457573,"z":-18.847866},{"x":-2.2455769,"y":-1.1699935,"z":-19.214916},{"x":-2.328524,"y":-1.1930691,"z":-19.563807},{"x":-2.4063334,"y":-1.2146689,"z":-19.890085},{"x":-2.4776945,"y":-1.2344773,"z":-20.189297},{"x":-2.5412989,"y":-1.2521793,"z":-20.45699},{"x":-2.595837,"y":-1.2674594,"z":-20.68871},{"x":-2.6399996,"y":-1.2800025,"z":-20.880001}],"GeneratedEstimatedPathLength":21.145382,"GeneratedLastYRot":15.000001,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"curve_water_a":{"DeathType":7,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.11676727,"y":0.2952315,"z":-4.0220995},{"x":-0.47006163,"y":0.4086942,"z":-7.8479505},{"x":-0.74709046,"y":0.6051087,"z":-10.555865},{"x":-0.97448075,"y":0.7310288,"z":-13.157182},{"x":-1.8582312,"y":1.1779256,"z":-17.220062},{"x":-2.6405199,"y":1.2799976,"z":-20.84488}],"EstimatedPathLength":21.11332,"SourceLastYRot":15.000001,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0039033347,"y":0.011486454,"z":-0.15175717},{"x":-0.007899823,"y":0.02598105,"z":-0.3363889},{"x":-0.012095917,"y":0.04305979,"z":-0.5501456},{"x":-0.01659807,"y":0.062298663,"z":-0.78927755},{"x":-0.021512736,"y":0.08327368,"z":-1.0500351},{"x":-0.02694637,"y":0.10556084,"z":-1.3286688},{"x":-0.03300542,"y":0.12873614,"z":-1.6214287},{"x":-0.03979634,"y":0.15237558,"z":-1.9245654},{"x":-0.047425587,"y":0.17605513,"z":-2.2343287},{"x":-0.055999614,"y":0.19935086,"z":-2.5469704},{"x":-0.06562488,"y":0.22183868,"z":-2.858739},{"x":-0.07640783,"y":0.24309468,"z":-3.1658864},{"x":-0.088454895,"y":0.2626948,"z":-3.4646616},{"x":-0.10187258,"y":0.28021508,"z":-3.7513163},{"x":-0.11676728,"y":0.2952315,"z":-4.0220995},{"x":-0.13361037,"y":0.30790165,"z":-4.2851734},{"x":-0.15261684,"y":0.3188227,"z":-4.5506525},{"x":-0.17350866,"y":0.32823002,"z":-4.8177166},{"x":-0.19600779,"y":0.33635882,"z":-5.0855474},{"x":-0.21983618,"y":0.34344447,"z":-5.353325},{"x":-0.24471581,"y":0.34972227,"z":-5.6202307},{"x":-0.27036864,"y":0.35542747,"z":-5.8854446},{"x":-0.29651666,"y":0.36079547,"z":-6.1481485},{"x":-0.32288173,"y":0.3660615,"z":-6.4075217},{"x":-0.34918588,"y":0.37146094,"z":-6.6627455},{"x":-0.3751511,"y":0.37722903,"z":-6.913001},{"x":-0.40049928,"y":0.3836011,"z":-7.157469},{"x":-0.4249525,"y":0.39081246,"z":-7.3953285},{"x":-0.4482326,"y":0.3990984,"z":-7.625763},{"x":-0.47006166,"y":0.4086942,"z":-7.8479505},{"x":-0.4908477,"y":0.41952604,"z":-8.061161},{"x":-0.51120013,"y":0.43127215,"z":-8.265807},{"x":-0.5311426,"y":0.4437961,"z":-8.462787},{"x":-0.55069876,"y":0.45696154,"z":-8.653001},{"x":-0.56989235,"y":0.47063202,"z":-8.837347},{"x":-0.5887469,"y":0.4846712,"z":-9.016725},{"x":-0.6072862,"y":0.49894264,"z":-9.192033},{"x":-0.62553394,"y":0.51330996,"z":-9.36417},{"x":-0.6435136,"y":0.52763677,"z":-9.534035},{"x":-0.66124904,"y":0.5417867,"z":-9.702528},{"x":-0.67876387,"y":0.5556233,"z":-9.870547},{"x":-0.69608176,"y":0.56901014,"z":-10.038991},{"x":-0.7132263,"y":0.58181095,"z":-10.208759},{"x":-0.7302214,"y":0.59388924,"z":-10.380751},{"x":-0.74709046,"y":0.6051087,"z":-10.555865},{"x":-0.7623299,"y":0.6148846,"z":-10.729351},{"x":-0.7748384,"y":0.62295526,"z":-10.896786},{"x":-0.78524363,"y":0.6296687,"z":-11.0595665},{"x":-0.7941732,"y":0.6353729,"z":-11.219084},{"x":-0.80225456,"y":0.64041585,"z":-11.376736},{"x":-0.8101153,"y":0.6451454,"z":-11.533912},{"x":-0.818383,"y":0.6499097,"z":-11.692009},{"x":-0.8276851,"y":0.6550566,"z":-11.85242},{"x":-0.8386494,"y":0.66093415,"z":-12.016539},{"x":-0.8519032,"y":0.6678902,"z":-12.18576},{"x":-0.86807424,"y":0.6762729,"z":-12.361477},{"x":-0.88778985,"y":0.6864301,"z":-12.545083},{"x":-0.9116779,"y":0.69870985,"z":-12.737973},{"x":-0.9403656,"y":0.71345997,"z":-12.941541},{"x":-0.9744808,"y":0.73102885,"z":-13.157182},{"x":-1.0145491,"y":0.7522169,"z":-13.386509},{"x":-1.0602292,"y":0.7771989,"z":-13.629087},{"x":-1.1108471,"y":0.8053828,"z":-13.883226},{"x":-1.1657296,"y":0.8361771,"z":-14.14724},{"x":-1.2242031,"y":0.86898977,"z":-14.419437},{"x":-1.2855933,"y":0.9032288,"z":-14.698129},{"x":-1.3492273,"y":0.93830276,"z":-14.981629},{"x":-1.414431,"y":0.9736195,"z":-15.268248},{"x":-1.4805312,"y":1.0085875,"z":-15.556296},{"x":-1.5468538,"y":1.0426146,"z":-15.844086},{"x":-1.6127257,"y":1.0751092,"z":-16.12993},{"x":-1.677473,"y":1.1054794,"z":-16.412136},{"x":-1.7404222,"y":1.1331334,"z":-16.689022},{"x":-1.8008994,"y":1.1574794,"z":-16.958893},{"x":-1.8582314,"y":1.1779257,"z":-17.220062},{"x":-1.9149525,"y":1.1949548,"z":-17.481955},{"x":-1.9736437,"y":1.2095883,"z":-17.753233},{"x":-2.033699,"y":1.222042,"z":-18.03106},{"x":-2.0945144,"y":1.2325314,"z":-18.312605},{"x":-2.1554835,"y":1.2412726,"z":-18.595036},{"x":-2.216002,"y":1.2484813,"z":-18.875523},{"x":-2.275464,"y":1.2543731,"z":-19.151226},{"x":-2.333265,"y":1.259164,"z":-19.41932},{"x":-2.3887994,"y":1.2630695,"z":-19.676966},{"x":-2.4414623,"y":1.2663058,"z":-19.921337},{"x":-2.4906483,"y":1.2690883,"z":-20.149595},{"x":-2.5357523,"y":1.271633,"z":-20.358913},{"x":-2.5761688,"y":1.2741556,"z":-20.546453},{"x":-2.6112933,"y":1.2768718,"z":-20.709387},{"x":-2.64052,"y":1.2799976,"z":-20.84488}],"GeneratedEstimatedPathLength":21.117401,"GeneratedLastYRot":15.000001,"GeneratedSmoothing":5}],"CollisionInfo":{"Trigger":2,"DeathType":7,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"gap_large_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002},{"x":-0.0000015557662,"y":-9.619341e-7,"z":-10.880001},{"x":-0.0000015557662,"y":-0.0000012671098,"z":-13.4400015}],"EstimatedPathLength":13.4400015,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-5.4066696e-8,"y":4.558964e-8,"z":-0.4503704},{"x":-1.4536262e-7,"y":9.450005e-8,"z":-1.1851853},{"x":-3.3506302e-7,"y":2.988726e-8,"z":-2.5600004},{"x":-7.2157235e-7,"y":-2.5046907e-7,"z":-5.120001},{"x":-0.0000012064862,"y":-6.443487e-7,"z":-8.320002},{"x":-0.0000015557662,"y":-9.619341e-7,"z":-10.880001},{"x":-0.0000016461886,"y":-0.0000011258248,"z":-12.254816},{"x":-0.0000016009775,"y":-0.0000012134215,"z":-12.989631},{"x":-0.0000015557664,"y":-0.0000012671096,"z":-13.4400015}],"GeneratedEstimatedPathLength":13.4400015,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"gap_small_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002},{"x":-3.35063e-7,"y":-5.041704e-7,"z":-7.0400014},{"x":-3.35063e-7,"y":-8.093461e-7,"z":-9.6}],"EstimatedPathLength":9.6,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-9.9277926e-8,"y":2.8635426e-8,"z":-0.5925926},{"x":-2.3578508e-7,"y":6.059162e-8,"z":-1.4696298},{"x":-3.35063e-7,"y":2.9887268e-8,"z":-2.5600002},{"x":-3.5988248e-7,"y":-1.1483536e-7,"z":-3.982223},{"x":-3.4747274e-7,"y":-3.222186e-7,"z":-5.6177793},{"x":-3.35063e-7,"y":-5.041704e-7,"z":-7.0400014},{"x":-3.35063e-7,"y":-6.341527e-7,"z":-8.130372},{"x":-3.35063e-7,"y":-7.387036e-7,"z":-9.007408},{"x":-3.35063e-7,"y":-8.093461e-7,"z":-9.6}],"GeneratedEstimatedPathLength":9.6,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":6,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"hill_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.026258452,"y":0.3246748,"z":-3.255033},{"x":0.035417903,"y":1.3145912,"z":-6.3675466},{"x":0.16867359,"y":2.8281555,"z":-9.269829},{"x":0.35836384,"y":3.660394,"z":-12.421686},{"x":0.6832246,"y":3.8387115,"z":-15.673509},{"x":1.2691972,"y":3.579331,"z":-18.882788},{"x":2.0457506,"y":2.6381323,"z":-21.910143},{"x":2.9494693,"y":1.1780084,"z":-24.700035},{"x":3.984855,"y":0.29238075,"z":-27.672049},{"x":5.139073,"y":-0.0000034229959,"z":-30.720003}],"EstimatedPathLength":32.70658,"SourceLastYRot":340.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.010064592,"y":0.059536368,"z":-0.849176},{"x":-0.02304679,"y":0.15514772,"z":-2.0600224},{"x":-0.02625845,"y":0.32467484,"z":-3.2550333},{"x":-0.014864438,"y":0.5859754,"z":-4.310881},{"x":0.0063001085,"y":0.92119175,"z":-5.350893},{"x":0.03541792,"y":1.3145914,"z":-6.367547},{"x":0.07244414,"y":1.8055584,"z":-7.341304},{"x":0.117423624,"y":2.3547084,"z":-8.291701},{"x":0.1686736,"y":2.8281558,"z":-9.269829},{"x":0.22271703,"y":3.1802564,"z":-10.298259},{"x":0.283031,"y":3.456654,"z":-11.354419},{"x":0.35836393,"y":3.6603942,"z":-12.421687},{"x":0.44696742,"y":3.784483,"z":-13.499799},{"x":0.55058986,"y":3.835914,"z":-14.589019},{"x":0.6832246,"y":3.8387115,"z":-15.673509},{"x":0.8521488,"y":3.8099258,"z":-16.753159},{"x":1.0500854,"y":3.7325068,"z":-17.828081},{"x":1.2691973,"y":3.5793307,"z":-18.882788},{"x":1.5092218,"y":3.3353221,"z":-19.914179},{"x":1.7704214,"y":3.0155566,"z":-20.925352},{"x":2.045751,"y":2.6381319,"z":-21.910145},{"x":2.332694,"y":2.1685855,"z":-22.850952},{"x":2.6337671,"y":1.6413801,"z":-23.765377},{"x":2.94947,"y":1.1780076,"z":-24.700037},{"x":3.280444,"y":0.8182715,"z":-25.674404},{"x":3.626048,"y":0.5223678,"z":-26.66901},{"x":3.9848554,"y":0.29238054,"z":-27.67205},{"x":4.4035416,"y":0.14014614,"z":-28.795298},{"x":4.8354306,"y":0.053827807,"z":-29.92698},{"x":5.139073,"y":-0.0000034868717,"z":-30.720001}],"GeneratedEstimatedPathLength":32.74007,"GeneratedLastYRot":340.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"hill_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.28488812,"y":0.28196338,"z":-2.9014976},{"x":-1.0187148,"y":1.1275271,"z":-5.613802},{"x":-2.0078952,"y":2.3123934,"z":-8.116951},{"x":-2.98852,"y":3.360237,"z":-10.680255},{"x":-3.84,"y":3.8399987,"z":-13.4400015},{"x":-4.494441,"y":3.8399985,"z":-15.88241}],"EstimatedPathLength":17.198086,"SourceLastYRot":15.000001,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.057232533,"y":0.052227527,"z":-0.7592473},{"x":-0.1461193,"y":0.13578433,"z":-1.8408833},{"x":-0.28488815,"y":0.2819634,"z":-2.9014976},{"x":-0.48678476,"y":0.509503,"z":-3.82736},{"x":-0.73856354,"y":0.7996651,"z":-4.7322006},{"x":-1.0187148,"y":1.1275272,"z":-5.613802},{"x":-1.3298434,"y":1.502424,"z":-6.46145},{"x":-1.6693447,"y":1.915021,"z":-7.2858586},{"x":-2.0078952,"y":2.3123934,"z":-8.116951},{"x":-2.340187,"y":2.6928647,"z":-8.959655},{"x":-2.671528,"y":3.058111,"z":-9.809041},{"x":-2.98852,"y":3.360237,"z":-10.680255},{"x":-3.2892106,"y":3.5800066,"z":-11.597372},{"x":-3.575552,"y":3.7366562,"z":-12.536317},{"x":-3.84,"y":3.8399987,"z":-13.4400015},{"x":-4.096981,"y":3.8755367,"z":-14.368104},{"x":-4.332069,"y":3.8577678,"z":-15.260947},{"x":-4.494441,"y":3.839999,"z":-15.88241}],"GeneratedEstimatedPathLength":17.212423,"GeneratedLastYRot":15.000001,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"jump_or_slide_a":{"DeathType":2,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":2,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"jump_over_a":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"EstimatedPathLength":8.320001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"GeneratedEstimatedPathLength":8.320001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"jump_over_b":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":6,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":-7.121442e-8,"y":0,"z":-7.121441e-8},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":2.5599995,"y":0,"z":-2.56}],"EstimatedPathLength":5.12,"SourceLastYRot":270.00003,"GeneratedPath":[{"x":-7.121442e-8,"y":0,"z":-7.121441e-8},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":2.5599995,"y":0,"z":-2.56}],"GeneratedEstimatedPathLength":5.12,"GeneratedLastYRot":270.00003,"GeneratedSmoothing":1},{"SourcePath":[{"x":-7.121441e-8,"y":0,"z":0},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":-2.56,"y":0,"z":-2.5599995}],"EstimatedPathLength":5.119999,"SourceLastYRot":90.00003,"GeneratedPath":[{"x":-7.121441e-8,"y":0,"z":0},{"x":-3.7639018e-7,"y":0,"z":-2.5599997},{"x":-2.56,"y":0,"z":-2.5599995}],"GeneratedEstimatedPathLength":5.119999,"GeneratedLastYRot":90.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"junction_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":2.56,"y":-3.0517577e-7,"z":-2.5600002}],"EstimatedPathLength":5.12,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":2.56,"y":-3.0517577e-7,"z":-2.5600002}],"GeneratedEstimatedPathLength":5.12,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":8.48942e-15,"z":7.121442e-8},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":-2.56,"y":-3.0517577e-7,"z":-2.5600002}],"EstimatedPathLength":5.12,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":8.48942e-15,"z":7.121442e-8},{"x":0,"y":-3.0517577e-7,"z":-2.5600002},{"x":-2.56,"y":-3.0517577e-7,"z":-2.5600002}],"GeneratedEstimatedPathLength":5.12,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"ledge_end_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-3.0517577e-7,"z":-2.5600004}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-3.0517577e-7,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_end_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0893518,"y":-2.9423802e-7,"z":-5.118961}],"EstimatedPathLength":5.1197405,"SourceLastYRot":2,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0893518,"y":-2.9423802e-7,"z":-5.118961}],"GeneratedEstimatedPathLength":5.1197405,"GeneratedLastYRot":2,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_left_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.08935188,"y":-2.751645e-7,"z":-5.1189604}],"EstimatedPathLength":5.11974,"SourceLastYRot":2,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.08935188,"y":-2.751645e-7,"z":-5.1189604}],"GeneratedEstimatedPathLength":5.11974,"GeneratedLastYRot":2,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935139,"y":-2.7516455e-7,"z":-5.118961}],"EstimatedPathLength":5.1197405,"SourceLastYRot":358.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935139,"y":-2.7516455e-7,"z":-5.118961}],"GeneratedEstimatedPathLength":5.1197405,"GeneratedLastYRot":358.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_right_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935132,"y":-3.5145854e-7,"z":-5.1189613}],"EstimatedPathLength":5.119741,"SourceLastYRot":358.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.08935132,"y":-3.5145854e-7,"z":-5.1189613}],"GeneratedEstimatedPathLength":5.119741,"GeneratedLastYRot":358.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_start_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"ledge_start_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"run_between_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"EstimatedPathLength":8.320001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-6.5675823e-7,"z":-8.320001}],"GeneratedEstimatedPathLength":8.320001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":11,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"slide_under_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"stairs_twist_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":-1.3921845e-8},{"x":-0.09798241,"y":0.15999982,"z":-1.5664097},{"x":-0.6859201,"y":1.5953863,"z":-4.39603}],"EstimatedPathLength":4.8044863,"SourceLastYRot":14.994832,"GeneratedPath":[{"x":0,"y":0,"z":-1.3921845e-8},{"x":-0.0072563533,"y":-0.005755108,"z":-0.35932064},{"x":-0.02539964,"y":0.00626754,"z":-0.89268684},{"x":-0.09798241,"y":0.15999982,"z":-1.5664097},{"x":-0.27944416,"y":0.5971514,"z":-2.5208461},{"x":-0.5153454,"y":1.1760126,"z":-3.6156392},{"x":-0.6859202,"y":1.5953864,"z":-4.3960304}],"GeneratedEstimatedPathLength":4.816329,"GeneratedLastYRot":14.994832,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_end_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":0.63999987,"z":-1.2800002},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600002}],"EstimatedPathLength":2.7110837,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-9.720692e-8,"y":0.18962961,"z":-0.33185193},{"x":-2.3164306e-7,"y":0.4503703,"z":-0.8059261},{"x":-3.35063e-7,"y":0.63999987,"z":-1.2800002},{"x":-3.7645054e-7,"y":0.68740726,"z":-1.7540743},{"x":-3.868219e-7,"y":0.6637035,"z":-2.2281485},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.7176538,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_middle_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"EstimatedPathLength":2.8621674,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.8621674,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_middle_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"EstimatedPathLength":2.8621674,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9098023e-7,"y":1.2799997,"z":-2.5600004}],"GeneratedEstimatedPathLength":2.8621674,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stairs_up_start_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":1.8247518e-7,"z":-1.2800001},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600002}],"EstimatedPathLength":2.7110834,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-9.720692e-8,"y":-0.023703635,"z":-0.3318519},{"x":-2.3164306e-7,"y":-0.047407247,"z":-0.805926},{"x":-3.35063e-7,"y":1.8247518e-7,"z":-1.2800001},{"x":-3.7645054e-7,"y":0.18962972,"z":-1.7540742},{"x":-3.868219e-7,"y":0.4503703,"z":-2.2281485},{"x":-3.9098023e-7,"y":0.63999975,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.7176533,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-8.856401e-7,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_e":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_f":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"straight_organic_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.055394217,"y":-0.030083584,"z":-3.8400004},{"x":0.36443958,"y":-0.09259369,"z":-7.6800013},{"x":0.280519,"y":-0.17153561,"z":-11.505611},{"x":0.057076167,"y":-0.27674162,"z":-14.780917},{"x":-0.24506778,"y":-0.31609866,"z":-17.67814},{"x":-0.64,"y":-0.32000247,"z":-20.480001}],"EstimatedPathLength":20.548151,"SourceLastYRot":10.000003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0049669775,"y":-0.006598465,"z":-0.9955557},{"x":0.01608887,"y":-0.016539551,"z":-2.417778},{"x":0.05539422,"y":-0.030083586,"z":-3.8400004},{"x":0.15417466,"y":-0.047909737,"z":-5.1205335},{"x":0.2811386,"y":-0.06933884,"z":-6.401067},{"x":0.36443958,"y":-0.0925937,"z":-7.6800013},{"x":0.37074214,"y":-0.116717756,"z":-8.976652},{"x":0.3333818,"y":-0.14266756,"z":-10.271705},{"x":0.280519,"y":-0.17153561,"z":-11.505611},{"x":0.21928787,"y":-0.20709766,"z":-12.652147},{"x":0.14255433,"y":-0.2455779,"z":-13.737537},{"x":0.057076138,"y":-0.27674162,"z":-14.780917},{"x":-0.034372147,"y":-0.2960514,"z":-15.778196},{"x":-0.1345651,"y":-0.30804467,"z":-16.733465},{"x":-0.24506773,"y":-0.31609866,"z":-17.67814},{"x":-0.38446575,"y":-0.32017067,"z":-18.72293},{"x":-0.5341736,"y":-0.32030344,"z":-19.757126},{"x":-0.64,"y":-0.32000244,"z":-20.480005}],"GeneratedEstimatedPathLength":20.549984,"GeneratedLastYRot":10.000003,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"straight_organic_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0049774167,"y":-6.012149e-7,"z":-3.7633564},{"x":-0.06799194,"y":-0.0000010604064,"z":-7.6153345},{"x":-0.027456664,"y":-0.0000016847189,"z":-11.572447},{"x":0.38723174,"y":-0.000001972629,"z":-15.267613},{"x":0.82532775,"y":-0.0000025680818,"z":-18.982634},{"x":1.4716306,"y":-0.0000027019564,"z":-22.665655},{"x":1.92,"y":-0.0000029754638,"z":-24.960003}],"EstimatedPathLength":25.109346,"SourceLastYRot":350.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.00085908134,"y":-1.6113061e-7,"z":-0.9724028},{"x":0.0011651163,"y":-3.8906293e-7,"z":-2.3629563},{"x":-0.004977418,"y":-6.012149e-7,"z":-3.7633567},{"x":-0.025518391,"y":-7.5868337e-7,"z":-5.036891},{"x":-0.052507933,"y":-9.0037145e-7,"z":-6.320272},{"x":-0.06799194,"y":-0.0000010604064,"z":-7.615335},{"x":-0.07600807,"y":-0.0000012687387,"z":-8.936286},{"x":-0.07251865,"y":-0.0000014954179,"z":-10.26892},{"x":-0.027456656,"y":-0.0000016847189,"z":-11.572447},{"x":0.08219082,"y":-0.0000017942172,"z":-12.822837},{"x":0.23341092,"y":-0.0000018663374,"z":-14.044122},{"x":0.38723183,"y":-0.000001972629,"z":-15.267614},{"x":0.52381855,"y":-0.000002165428,"z":-16.505669},{"x":0.6630062,"y":-0.0000023923983,"z":-17.74593},{"x":0.8253278,"y":-0.0000025680818,"z":-18.982634},{"x":1.0326703,"y":-0.000002641726,"z":-20.26411},{"x":1.2631466,"y":-0.0000026640837,"z":-21.54203},{"x":1.4716306,"y":-0.0000027019564,"z":-22.665655},{"x":1.6523551,"y":-0.0000027929123,"z":-23.618279},{"x":1.8110869,"y":-0.0000028993832,"z":-24.416605},{"x":1.9199998,"y":-0.0000029754642,"z":-24.960003}],"GeneratedEstimatedPathLength":25.110912,"GeneratedLastYRot":350.00003,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"straight_organic_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-3.35063e-7,"y":-0.0000011908157,"z":-12.800001}],"EstimatedPathLength":12.800001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-3.35063e-7,"y":-0.0000011908157,"z":-12.800001}],"GeneratedEstimatedPathLength":12.800001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"stumble_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":5,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"stumble_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600002,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":2.9887275e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600002,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":5,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"temple_opening":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":2.2411346e-7,"z":5.12},{"x":-3.35063e-7,"y":-5.1175064e-8,"z":-4.7683716e-7}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":2.2411346e-7,"z":5.12},{"x":-3.35063e-7,"y":-5.1175064e-8,"z":-4.7683716e-7}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"turn_left_a":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":270,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"turn_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004},{"x":-5.12,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004},{"x":-5.12,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"zipline_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.9575778e-7,"y":-4.892264e-7,"z":-6.4800014},{"x":8.8181594e-7,"y":-2.1773553,"z":-9.18841},{"x":4.7757834e-7,"y":-4.25224,"z":-11.976054},{"x":6.135008e-8,"y":-6.212002,"z":-14.845748},{"x":-3.671661e-7,"y":-8.042545,"z":-17.799486},{"x":-8.0811446e-7,"y":-9.728151,"z":-20.838205},{"x":-0.0000012614053,"y":-11.251753,"z":-23.961226},{"x":-0.0000017266545,"y":-12.595091,"z":-27.165842},{"x":-0.0000022030883,"y":-13.739566,"z":-30.446657},{"x":-0.0000026894977,"y":-14.666738,"z":-33.795303},{"x":-0.0000016761157,"y":-15.360006,"z":-37.200005},{"x":-0.0000014480023,"y":-15.360005,"z":-43.600002}],"EstimatedPathLength":47.628643,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.6457912e-7,"y":0.08064263,"z":-1.819689},{"x":-3.731313e-7,"y":0.1612852,"z":-4.3593783},{"x":-3.9575778e-7,"y":-5.2167155e-7,"z":-6.4800014},{"x":-3.156103e-8,"y":-0.5682951,"z":-7.6592464},{"x":5.185615e-7,"y":-1.3785181,"z":-8.419426},{"x":8.8181594e-7,"y":-2.1773555,"z":-9.18841},{"x":8.7209276e-7,"y":-2.880838,"z":-10.108717},{"x":6.755016e-7,"y":-3.5729349,"z":-11.0378275},{"x":4.7757834e-7,"y":-4.25224,"z":-11.976054},{"x":3.4017881e-7,"y":-4.918808,"z":-12.923429},{"x":2.0144714e-7,"y":-5.572583,"z":-13.879919},{"x":6.135003e-8,"y":-6.212002,"z":-14.845748},{"x":-8.011796e-8,"y":-6.8371224,"z":-15.820954},{"x":-2.229514e-7,"y":-7.4478865,"z":-16.8055},{"x":-3.6716605e-7,"y":-8.042545,"z":-17.799486},{"x":-5.127709e-7,"y":-8.62115,"z":-18.802975},{"x":-6.5975706e-7,"y":-9.183651,"z":-19.815908},{"x":-8.0811446e-7,"y":-9.728151,"z":-20.838205},{"x":-9.578544e-7,"y":-10.254696,"z":-21.869946},{"x":-0.0000011089655,"y":-10.76324,"z":-22.911053},{"x":-0.0000012614051,"y":-11.251753,"z":-23.961226},{"x":-0.0000014151883,"y":-11.72025,"z":-25.020565},{"x":-0.0000015703001,"y":-12.168718,"z":-26.08897},{"x":-0.0000017266547,"y":-12.595091,"z":-27.165842},{"x":-0.000001884268,"y":-12.999362,"z":-28.251291},{"x":-0.0000020431237,"y":-13.381536,"z":-29.345205},{"x":-0.0000022030883,"y":-13.739566,"z":-30.446657},{"x":-0.0000024200338,"y":-14.073382,"z":-31.555773},{"x":-0.0000026380876,"y":-14.383055,"z":-32.672424},{"x":-0.0000026894977,"y":-14.666738,"z":-33.795303},{"x":-0.0000024337155,"y":-14.94083,"z":-34.815113},{"x":-0.0000020112893,"y":-15.188934,"z":-35.841152},{"x":-0.0000016761156,"y":-15.360006,"z":-37.200005},{"x":-0.0000015334612,"y":-15.411359,"z":-39.348503},{"x":-0.0000014780587,"y":-15.385681,"z":-41.829803},{"x":-0.0000014480022,"y":-15.3600025,"z":-43.6}],"GeneratedEstimatedPathLength":47.70211,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":1,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":2.24,"z":0},"CameraFollowDistance":6,"CameraFocusDistance":3.2,"CameraPitchHeight":0.96,"CameraChangeRate":0.25,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"zipline_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-2.7975287e-7,"y":-4.831865e-7,"z":-6.400001},{"x":9.1850217e-7,"y":-3.0445836,"z":-9.896114},{"x":4.3808492e-7,"y":-5.866698,"z":-13.563462},{"x":-4.9161542e-8,"y":-8.490771,"z":-17.390146},{"x":-5.415404e-7,"y":-10.905275,"z":-21.361977},{"x":-0.0000010373557,"y":-13.125407,"z":-25.463531},{"x":-0.000001534971,"y":-15.096857,"z":-29.67855},{"x":-0.0000020328748,"y":-16.769758,"z":-33.99083},{"x":-0.00000252972,"y":-18.237179,"z":-38.384697},{"x":-0.0000030243434,"y":-19.547335,"z":-42.84555},{"x":-0.000002007882,"y":-20.480007,"z":-47.36},{"x":-0.0000020709672,"y":-20.480007,"z":-53.760002}],"EstimatedPathLength":59.18564,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.2726957e-7,"y":0.112762205,"z":-1.7668109},{"x":-2.8562278e-7,"y":0.22552435,"z":-4.2447333},{"x":-2.7975287e-7,"y":-5.285543e-7,"z":-6.400001},{"x":7.235647e-8,"y":-0.7975765,"z":-7.7741327},{"x":5.88689e-7,"y":-1.9334396,"z":-8.825611},{"x":9.1850217e-7,"y":-3.0445838,"z":-9.896114},{"x":8.829621e-7,"y":-4.0091023,"z":-11.099978},{"x":6.6090297e-7,"y":-4.948902,"z":-12.322868},{"x":4.3808492e-7,"y":-5.866698,"z":-13.563462},{"x":2.763653e-7,"y":-6.763821,"z":-14.821846},{"x":1.138871e-7,"y":-7.638939,"z":-16.09793},{"x":-4.91616e-8,"y":-8.490771,"z":-17.390146},{"x":-2.1278032e-7,"y":-9.318328,"z":-18.698534},{"x":-3.769695e-7,"y":-10.1226,"z":-20.023048},{"x":-5.415403e-7,"y":-10.905275,"z":-21.361977},{"x":-7.0649094e-7,"y":-11.668928,"z":-22.715351},{"x":-8.718233e-7,"y":-12.410985,"z":-24.08314},{"x":-0.0000010373557,"y":-13.125407,"z":-25.463531},{"x":-0.0000012030836,"y":-13.812036,"z":-26.856531},{"x":-0.0000013690114,"y":-14.471032,"z":-28.262138},{"x":-0.0000015349709,"y":-15.096857,"z":-29.678549},{"x":-0.0000017009568,"y":-15.6842165,"z":-31.10575},{"x":-0.0000018669747,"y":-16.238403,"z":-32.543755},{"x":-0.000002032875,"y":-16.769758,"z":-33.99083},{"x":-0.0000021986507,"y":-17.279943,"z":-35.44693},{"x":-0.0000023643086,"y":-17.767298,"z":-36.91209},{"x":-0.00000252972,"y":-18.237179,"z":-38.384697},{"x":-0.0000027507253,"y":-18.699528,"z":-39.8647},{"x":-0.0000029714838,"y":-19.144402,"z":-41.35215},{"x":-0.0000030243434,"y":-19.547335,"z":-42.84555},{"x":-0.000002757472,"y":-19.92073,"z":-44.27656},{"x":-0.000002322702,"y":-20.252186,"z":-45.713528},{"x":-0.000002007882,"y":-20.480007,"z":-47.36},{"x":-0.0000019512804,"y":-20.549093,"z":-49.590706},{"x":-0.0000020146283,"y":-20.51455,"z":-52.030907},{"x":-0.000002070967,"y":-20.480003,"z":-53.760006}],"GeneratedEstimatedPathLength":59.259087,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":10,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"zipline_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-2.7975287e-7,"y":-4.831865e-7,"z":-6.400001},{"x":-0.08971373,"y":-4.539918,"z":-14.362608},{"x":-0.8198828,"y":-9.821624,"z":-23.992931},{"x":-2.3304808,"y":-14.880877,"z":-33.673416},{"x":-4.740659,"y":-19.626894,"z":-43.36834},{"x":-8.187323,"y":-23.972643,"z":-52.977356},{"x":-12.785022,"y":-27.793566,"z":-62.36753},{"x":-18.59504,"y":-30.971836,"z":-71.36427},{"x":-25.588451,"y":-33.391224,"z":-79.7575},{"x":-33.63022,"y":-35.0057,"z":-87.37157},{"x":-42.757427,"y":-35.840015,"z":-94.24911},{"x":-48,"y":-35.840015,"z":-97.920006}],"EstimatedPathLength":122.29889,"SourceLastYRot":54.999996,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0033226376,"y":0.16814499,"z":-1.6013854},{"x":0.0066452445,"y":0.3362899,"z":-3.9138818},{"x":-2.810897e-7,"y":-5.5083655e-7,"z":-6.400001},{"x":0.00046123622,"y":-1.1495426,"z":-8.876688},{"x":-0.009045387,"y":-2.8035202,"z":-11.5269985},{"x":-0.08971375,"y":-4.5399184,"z":-14.362609},{"x":-0.25675753,"y":-6.2537785,"z":-17.447323},{"x":-0.49496302,"y":-8.05006,"z":-20.71734},{"x":-0.8198828,"y":-9.821624,"z":-23.992931},{"x":-1.2322884,"y":-11.536121,"z":-27.215511},{"x":-1.7314076,"y":-13.225901,"z":-30.443659},{"x":-2.330481,"y":-14.8808775,"z":-33.673416},{"x":-3.0288496,"y":-16.50091,"z":-36.90717},{"x":-3.8271723,"y":-18.08614,"z":-40.14253},{"x":-4.7406588,"y":-19.626894,"z":-43.36834},{"x":-5.7701397,"y":-21.124565,"z":-46.585815},{"x":-6.9147854,"y":-22.577763,"z":-49.793743},{"x":-8.187323,"y":-23.972643,"z":-52.977356},{"x":-9.589727,"y":-25.308964,"z":-56.1382},{"x":-11.120025,"y":-26.58697,"z":-59.274723},{"x":-12.785021,"y":-27.793566,"z":-62.367527},{"x":-14.588063,"y":-28.9287,"z":-65.41794},{"x":-16.525806,"y":-29.992426,"z":-68.42464},{"x":-18.595041,"y":-30.971836,"z":-71.36427},{"x":-20.799692,"y":-31.864325,"z":-74.23558},{"x":-23.135828,"y":-32.672493,"z":-77.039825},{"x":-25.588451,"y":-33.391224,"z":-79.7575},{"x":-28.151184,"y":-34.017902,"z":-82.380516},{"x":-30.830399,"y":-34.555145,"z":-84.91696},{"x":-33.630215,"y":-35.0057,"z":-87.37157},{"x":-36.73609,"y":-35.372494,"z":-89.8374},{"x":-39.962574,"y":-35.652603,"z":-92.2214},{"x":-42.757427,"y":-35.840015,"z":-94.24911},{"x":-44.986874,"y":-35.901817,"z":-95.84623},{"x":-46.784687,"y":-35.87092,"z":-97.08705},{"x":-47.999996,"y":-35.84002,"z":-97.92}],"GeneratedEstimatedPathLength":122.39681,"GeneratedLastYRot":54.999996,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":1,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":2.24,"z":0},"CameraFollowDistance":6,"CameraFocusDistance":3.2,"CameraPitchHeight":0.96,"CameraChangeRate":0.25,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}' ); }, function (e) { e.exports = JSON.parse( '{"forest_entrance_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.015082931,"y":-3.12552e-7,"z":-2.6218767},{"x":-0.12380798,"y":-6.1251643e-7,"z":-5.138161},{"x":-0.20913406,"y":-9.2271597e-7,"z":-7.740304},{"x":0.08,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.260457,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.00044216285,"y":-8.1498186e-8,"z":-0.6836567},{"x":-0.002560208,"y":-1.977244e-7,"z":-1.658633},{"x":-0.015082931,"y":-3.12552e-7,"z":-2.6218767},{"x":-0.045254797,"y":-4.130935e-7,"z":-3.46528},{"x":-0.08583134,"y":-5.122364e-7,"z":-4.296951},{"x":-0.12380798,"y":-6.1251643e-7,"z":-5.138161},{"x":-0.16785218,"y":-7.156105e-7,"z":-6.002977},{"x":-0.20929646,"y":-8.198417e-7,"z":-6.8773317},{"x":-0.20913406,"y":-9.2271597e-7,"z":-7.740304},{"x":-0.1297851,"y":-0.0000010339862,"z":-8.673707},{"x":-0.008829549,"y":-0.0000011438996,"z":-9.595726},{"x":0.07999997,"y":-0.0000012207032,"z":-10.240002}],"GeneratedEstimatedPathLength":10.261935,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":14,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_exit_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.013495331,"y":-0.016208997,"z":-2.5908947},{"x":0.22796433,"y":-0.11344156,"z":-5.121109},{"x":0.4949115,"y":-0.23930138,"z":-7.6913843},{"x":0.8283406,"y":-0.32000124,"z":-10.208006}],"EstimatedPathLength":10.261609,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.012941567,"y":-0.0012014599,"z":-0.6739609},{"x":-0.027382616,"y":-0.0042039203,"z":-1.635799},{"x":-0.013495331,"y":-0.016208997,"z":-2.5908947},{"x":0.047161695,"y":-0.04155784,"z":-3.4373107},{"x":0.13614705,"y":-0.0759093,"z":-4.276984},{"x":0.22796433,"y":-0.11344156,"z":-5.121109},{"x":0.3125965,"y":-0.15494691,"z":-5.9768877},{"x":0.40006053,"y":-0.19963303,"z":-6.8371162},{"x":0.4949115,"y":-0.23930138,"z":-7.6913843},{"x":0.61347926,"y":-0.2725354,"z":-8.627441},{"x":0.73943377,"y":-0.30075166,"z":-9.557536},{"x":0.8283406,"y":-0.32000124,"z":-10.208007}],"GeneratedEstimatedPathLength":10.262416,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":15,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_hill_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.049860872,"y":0.34993845,"z":-3.2718496},{"x":-0.16271706,"y":1.304214,"z":-6.414514},{"x":-0.3278528,"y":2.7218099,"z":-9.383132},{"x":-0.53108454,"y":3.5085342,"z":-12.571036},{"x":-0.7870781,"y":3.8330336,"z":-15.837468},{"x":-1.1952221,"y":3.6239479,"z":-19.09566},{"x":-1.7154187,"y":2.8683534,"z":-22.25651},{"x":-2.3002365,"y":1.4638574,"z":-25.176424},{"x":-3.0017464,"y":0.39953008,"z":-28.204197},{"x":-3.84,"y":-0.0000035095213,"z":-31.360003}],"EstimatedPathLength":32.902184,"SourceLastYRot":15.8898535,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.010593733,"y":0.06834193,"z":-0.853042},{"x":-0.026727563,"y":0.17556591,"z":-2.0696228},{"x":-0.04986088,"y":0.3499385,"z":-3.2718499},{"x":-0.080877006,"y":0.6061046,"z":-4.33542},{"x":-0.118892625,"y":0.92941934,"z":-5.3846364},{"x":-0.16271709,"y":1.3042142,"z":-6.4145145},{"x":-0.2124788,"y":1.7657918,"z":-7.4088244},{"x":-0.26804936,"y":2.2788491,"z":-8.383796},{"x":-0.32785282,"y":2.72181,"z":-9.383132},{"x":-0.39082065,"y":3.047902,"z":-10.426615},{"x":-0.4580214,"y":3.3038974,"z":-11.494463},{"x":-0.5310846,"y":3.5085344,"z":-12.571037},{"x":-0.6068723,"y":3.670702,"z":-13.654336},{"x":-0.68852246,"y":3.7815113,"z":-14.746359},{"x":-0.7870781,"y":3.8330336,"z":-15.837468},{"x":-0.9077057,"y":3.8231041,"z":-16.927748},{"x":-1.045239,"y":3.7538874,"z":-18.017113},{"x":-1.1952223,"y":3.6239479,"z":-19.09566},{"x":-1.3579277,"y":3.4365983,"z":-20.165411},{"x":-1.5330832,"y":3.1885257,"z":-21.224346},{"x":-1.7154189,"y":2.868353,"z":-22.256512},{"x":-1.9012494,"y":2.4356558,"z":-23.243668},{"x":-2.0942602,"y":1.9308579,"z":-24.204054},{"x":-2.300237,"y":1.4638566,"z":-25.176426},{"x":-2.520365,"y":1.0592616,"z":-26.17295},{"x":-2.753459,"y":0.6924623,"z":-27.181463},{"x":-3.0017467,"y":0.3995298,"z":-28.204199},{"x":-3.302082,"y":0.20231041,"z":-29.363533},{"x":-3.617611,"y":0.07895723,"z":-30.53709},{"x":-3.8400004,"y":-0.0000034868717,"z":-31.360004}],"GeneratedEstimatedPathLength":32.929432,"GeneratedLastYRot":15.8898535,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_jump_over_a":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":6,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_jump_over_b":{"DeathType":2,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":4.2688688e-7,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":4.2688688e-7,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":2,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_junction_b":{"DeathType":0,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":-8.48942e-15,"z":-7.1054274e-15},{"x":0,"y":0.63999915,"z":-7.680001},{"x":7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"EstimatedPathLength":15.413241,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":0.63999915,"z":-7.680001},{"x":-7.68,"y":1.2799991,"z":-7.680001}],"GeneratedEstimatedPathLength":15.413241,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_river_a":{"DeathType":13,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-9.155273e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-9.155273e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":6,"DeathType":13,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_slide_under_a":{"DeathType":9,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":4.2688688e-7,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":4.2688688e-7,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":9,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.14732192,"y":-0.10806658,"z":-5.191009},{"x":-0.64,"y":-0.32000124,"z":-10.240001}],"EstimatedPathLength":10.271621,"SourceLastYRot":4.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.025403606,"y":-0.024170296,"z":-1.3510772},{"x":-0.06717632,"y":-0.060347993,"z":-3.2789333},{"x":-0.14732192,"y":-0.10806658,"z":-5.191009},{"x":-0.30421335,"y":-0.17886698,"z":-7.071526},{"x":-0.49947768,"y":-0.26120827,"z":-8.936263},{"x":-0.6399999,"y":-0.32000124,"z":-10.240001}],"GeneratedEstimatedPathLength":10.272253,"GeneratedLastYRot":4.999999,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":7,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.17142333,"y":-0.75691676,"z":-5.191009},{"x":0,"y":-1.2800013,"z":-10.240001}],"EstimatedPathLength":10.327612,"SourceLastYRot":4.2688688e-7,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.057141114,"y":-0.20489815,"z":-1.3510772},{"x":-0.13332927,"y":-0.49389815,"z":-3.2789333},{"x":-0.17142333,"y":-0.75691676,"z":-5.191009},{"x":-0.13332926,"y":-0.9679727,"z":-7.071526},{"x":-0.057141103,"y":-1.1530473,"z":-8.936263},{"x":-1.4901161e-8,"y":-1.2800012,"z":-10.240001}],"GeneratedEstimatedPathLength":10.328366,"GeneratedLastYRot":4.2688688e-7,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_stumble_a":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.12,"y":0.23999973,"z":-2.5600002}],"EstimatedPathLength":2.5740242,"SourceLastYRot":4.999997,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.12,"y":0.23999973,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5740242,"GeneratedLastYRot":4.999997,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":5,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_stumble_b":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.12,"y":0.23999973,"z":-2.5600002}],"EstimatedPathLength":2.5740242,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.12,"y":0.23999973,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5740242,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":5,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"forest_turn_left_a":{"DeathType":9,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0.12874725,"y":0.51999897,"z":-8.779377},{"x":8.4618435,"y":-0.0000012021578,"z":-10.084432}],"EstimatedPathLength":17.246391,"SourceLastYRot":280,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0.12874725,"y":0.51999897,"z":-8.779377},{"x":8.4618435,"y":-0.0000012021578,"z":-10.084432}],"GeneratedEstimatedPathLength":17.246391,"GeneratedLastYRot":280,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":9,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"forest_turn_right_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-0.14897,"y":0.51332265,"z":-8.653961},{"x":-8.46184,"y":-0.0000012021578,"z":-10.084432}],"EstimatedPathLength":17.121105,"SourceLastYRot":80,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-0.14897,"y":0.51332265,"z":-8.653961},{"x":-8.46184,"y":-0.0000012021578,"z":-10.084432}],"GeneratedEstimatedPathLength":17.121105,"GeneratedLastYRot":80,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}' ); }, function (e) { e.exports = JSON.parse( '{"mine_curve_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.4039378,"y":-0.06550694,"z":-2.853208},{"x":-1.4866382,"y":-0.29973924,"z":-5.3089437},{"x":-3.157085,"y":-0.6579641,"z":-7.3947473},{"x":-5.327983,"y":-1.0430484,"z":-8.98481},{"x":-7.8147044,"y":-1.2440195,"z":-9.954295},{"x":-10.24,"y":-1.2800013,"z":-10.240001}],"EstimatedPathLength":16.10984,"SourceLastYRot":90,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.013792226,"y":-0.0021150534,"z":-0.10818955},{"x":-0.028402576,"y":-0.0041542496,"z":-0.240618},{"x":-0.04407534,"y":-0.006209339,"z":-0.3943959},{"x":-0.061054803,"y":-0.008372071,"z":-0.56663364},{"x":-0.07958526,"y":-0.010734194,"z":-0.75444186},{"x":-0.099911,"y":-0.013387461,"z":-0.954931},{"x":-0.1222763,"y":-0.01642362,"z":-1.1652116},{"x":-0.14692545,"y":-0.019934418,"z":-1.3823941},{"x":-0.17410275,"y":-0.024011606,"z":-1.6035888},{"x":-0.20405251,"y":-0.028746936,"z":-1.8259069},{"x":-0.23701896,"y":-0.034232162,"z":-2.0464582},{"x":-0.27324647,"y":-0.040559027,"z":-2.2623537},{"x":-0.31297922,"y":-0.04781927,"z":-2.4707031},{"x":-0.35646158,"y":-0.056104667,"z":-2.6686182},{"x":-0.40393782,"y":-0.06550695,"z":-2.853208},{"x":-0.45518956,"y":-0.07596598,"z":-3.0292325},{"x":-0.5097816,"y":-0.08733395,"z":-3.2033925},{"x":-0.56763315,"y":-0.0995711,"z":-3.3757124},{"x":-0.6286632,"y":-0.11263767,"z":-3.546217},{"x":-0.69279087,"y":-0.12649389,"z":-3.71493},{"x":-0.75993526,"y":-0.14109999,"z":-3.881877},{"x":-0.8300154,"y":-0.15641624,"z":-4.047082},{"x":-0.90295064,"y":-0.17240286,"z":-4.2105694},{"x":-0.97865975,"y":-0.18902007,"z":-4.372363},{"x":-1.057062,"y":-0.2062281,"z":-4.532489},{"x":-1.1380765,"y":-0.22398725,"z":-4.6909704},{"x":-1.2216222,"y":-0.24225768,"z":-4.8478317},{"x":-1.3076184,"y":-0.26099968,"z":-5.003098},{"x":-1.395984,"y":-0.28017345,"z":-5.156794},{"x":-1.4866383,"y":-0.29973927,"z":-5.3089437},{"x":-1.579897,"y":-0.31996483,"z":-5.4597673},{"x":-1.6760783,"y":-0.34108683,"z":-5.609394},{"x":-1.7751046,"y":-0.36301896,"z":-5.757712},{"x":-1.8768983,"y":-0.38567483,"z":-5.9046097},{"x":-1.9813819,"y":-0.40896812,"z":-6.049975},{"x":-2.0884776,"y":-0.43281248,"z":-6.193696},{"x":-2.198108,"y":-0.45712158,"z":-6.335661},{"x":-2.3101952,"y":-0.48180908,"z":-6.4757586},{"x":-2.424662,"y":-0.5067887,"z":-6.613876},{"x":-2.5414305,"y":-0.53197396,"z":-6.7499022},{"x":-2.6604235,"y":-0.5572786,"z":-6.883725},{"x":-2.781563,"y":-0.58261627,"z":-7.015233},{"x":-2.9047716,"y":-0.6079006,"z":-7.144314},{"x":-3.0299716,"y":-0.6330454,"z":-7.270856},{"x":-3.157085,"y":-0.6579641,"z":-7.3947473},{"x":-3.2866251,"y":-0.6832384,"z":-7.5164337},{"x":-3.4190454,"y":-0.70938206,"z":-7.63636},{"x":-3.5541828,"y":-0.73620784,"z":-7.754417},{"x":-3.6918721,"y":-0.76352787,"z":-7.8704915},{"x":-3.8319502,"y":-0.791155,"z":-7.984474},{"x":-3.974252,"y":-0.81890136,"z":-8.096253},{"x":-4.1186147,"y":-0.8465797,"z":-8.205719},{"x":-4.2648726,"y":-0.87400216,"z":-8.312758},{"x":-4.412863,"y":-0.9009816,"z":-8.417262},{"x":-4.5624204,"y":-0.92733014,"z":-8.519118},{"x":-4.7133822,"y":-0.95286053,"z":-8.618217},{"x":-4.865583,"y":-0.977385,"z":-8.714446},{"x":-5.01886,"y":-1.0007162,"z":-8.807695},{"x":-5.173047,"y":-1.0226665,"z":-8.897854},{"x":-5.3279834,"y":-1.0430484,"z":-8.98481},{"x":-5.484721,"y":-1.0621347,"z":-9.06888},{"x":-5.6442046,"y":-1.0803349,"z":-9.150417},{"x":-5.806097,"y":-1.0976657,"z":-9.229364},{"x":-5.9700646,"y":-1.1141442,"z":-9.305666},{"x":-6.1357718,"y":-1.1297876,"z":-9.379266},{"x":-6.302881,"y":-1.1446126,"z":-9.450107},{"x":-6.47106,"y":-1.1586362,"z":-9.518134},{"x":-6.6399703,"y":-1.1718756,"z":-9.583291},{"x":-6.8092794,"y":-1.1843477,"z":-9.645521},{"x":-6.9786506,"y":-1.1960696,"z":-9.704768},{"x":-7.147749,"y":-1.2070582,"z":-9.760977},{"x":-7.3162384,"y":-1.2173305,"z":-9.814089},{"x":-7.4837856,"y":-1.2269034,"z":-9.864051},{"x":-7.650052,"y":-1.2357941,"z":-9.910805},{"x":-7.814705,"y":-1.2440195,"z":-9.954295},{"x":-7.983205,"y":-1.2512838,"z":-9.99379},{"x":-8.159838,"y":-1.2573559,"z":-10.02883},{"x":-8.3425,"y":-1.2623509,"z":-10.05977},{"x":-8.529093,"y":-1.2663832,"z":-10.086963},{"x":-8.717512,"y":-1.2695675,"z":-10.110763},{"x":-8.905661,"y":-1.2720186,"z":-10.131523},{"x":-9.091433,"y":-1.273851,"z":-10.149599},{"x":-9.272731,"y":-1.2751795,"z":-10.165343},{"x":-9.447452,"y":-1.2761188,"z":-10.179111},{"x":-9.613495,"y":-1.2767833,"z":-10.191254},{"x":-9.768759,"y":-1.2772881,"z":-10.202127},{"x":-9.911143,"y":-1.2777475,"z":-10.212085},{"x":-10.038546,"y":-1.2782764,"z":-10.22148},{"x":-10.148865,"y":-1.2789894,"z":-10.230667},{"x":-10.240001,"y":-1.2800012,"z":-10.24}],"GeneratedEstimatedPathLength":16.14699,"GeneratedLastYRot":90,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_curve_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.35956573,"y":-0.06550692,"z":-2.6739085},{"x":1.4924482,"y":-0.29973924,"z":-5.32092},{"x":3.1985364,"y":-0.6579641,"z":-7.4292774},{"x":5.13277,"y":-0.9714654,"z":-8.869418},{"x":7.610147,"y":-1.1722332,"z":-9.898325},{"x":10.24,"y":-1.2800013,"z":-10.240001}],"EstimatedPathLength":16.099237,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.01192641,"y":-0.0021150522,"z":-0.10067398},{"x":0.023979776,"y":-0.004154247,"z":-0.22283487},{"x":0.036527876,"y":-0.0062093353,"z":-0.36408195},{"x":0.04993849,"y":-0.008372065,"z":-0.5220145},{"x":0.06457939,"y":-0.0107341865,"z":-0.69423175},{"x":0.08081837,"y":-0.013387452,"z":-0.8783331},{"x":0.09902319,"y":-0.016423607,"z":-1.0719178},{"x":0.11956164,"y":-0.019934405,"z":-1.272585},{"x":0.1428015,"y":-0.024011591,"z":-1.4779341},{"x":0.16911054,"y":-0.028746922,"z":-1.6855644},{"x":0.19885653,"y":-0.03423214,"z":-1.893075},{"x":0.2324073,"y":-0.04055901,"z":-2.0980659},{"x":0.27013054,"y":-0.047819253,"z":-2.298135},{"x":0.31239414,"y":-0.05610465,"z":-2.4908829},{"x":0.35956576,"y":-0.06550693,"z":-2.6739085},{"x":0.41144755,"y":-0.075965956,"z":-2.8522742},{"x":0.46747783,"y":-0.08733393,"z":-3.0323398},{"x":0.5274787,"y":-0.09957108,"z":-3.2136507},{"x":0.59127223,"y":-0.11263765,"z":-3.3957517},{"x":0.6586807,"y":-0.12649387,"z":-3.5781882},{"x":0.72952604,"y":-0.14109997,"z":-3.7605052},{"x":0.80363053,"y":-0.15641621,"z":-3.9422476},{"x":0.88081634,"y":-0.17240284,"z":-4.122961},{"x":0.9609053,"y":-0.18902005,"z":-4.30219},{"x":1.0437198,"y":-0.20622809,"z":-4.47948},{"x":1.1290818,"y":-0.22398722,"z":-4.654375},{"x":1.2168136,"y":-0.24225765,"z":-4.826422},{"x":1.3067372,"y":-0.26099965,"z":-4.9951653},{"x":1.3986747,"y":-0.28017342,"z":-5.1601496},{"x":1.4924483,"y":-0.29973927,"z":-5.32092},{"x":1.5890701,"y":-0.3201133,"z":-5.478504},{"x":1.6894664,"y":-0.3416383,"z":-5.634155},{"x":1.7933304,"y":-0.3641643,"z":-5.787757},{"x":1.9003555,"y":-0.3875413,"z":-5.9391956},{"x":2.0102348,"y":-0.41161934,"z":-6.088355},{"x":2.1226618,"y":-0.43624848,"z":-6.235121},{"x":2.2373295,"y":-0.46127868,"z":-6.3793774},{"x":2.3539314,"y":-0.4865601,"z":-6.521009},{"x":2.4721608,"y":-0.5119426,"z":-6.6599016},{"x":2.5917106,"y":-0.5372764,"z":-6.7959394},{"x":2.7122746,"y":-0.5624113,"z":-6.9290075},{"x":2.8335462,"y":-0.58719754,"z":-7.0589905},{"x":2.9552178,"y":-0.6114851,"z":-7.1857734},{"x":3.0769835,"y":-0.6351239,"z":-7.309241},{"x":3.1985364,"y":-0.6579641,"z":-7.4292774},{"x":3.3197343,"y":-0.68039674,"z":-7.545543},{"x":3.440826,"y":-0.7028722,"z":-7.6579247},{"x":3.5620918,"y":-0.7253305,"z":-7.7666516},{"x":3.6838112,"y":-0.7477107,"z":-7.871951},{"x":3.806265,"y":-0.7699528,"z":-7.974053},{"x":3.9297326,"y":-0.7919959,"z":-8.073185},{"x":4.0544944,"y":-0.81377995,"z":-8.169576},{"x":4.18083,"y":-0.8352442,"z":-8.263453},{"x":4.30902,"y":-0.8563284,"z":-8.355045},{"x":4.439343,"y":-0.87697196,"z":-8.444582},{"x":4.572081,"y":-0.8971146,"z":-8.532291},{"x":4.7075124,"y":-0.9166956,"z":-8.618401},{"x":4.845918,"y":-0.93565476,"z":-8.70314},{"x":4.9875774,"y":-0.95393145,"z":-8.7867365},{"x":5.1327705,"y":-0.97146547,"z":-8.869418},{"x":5.281841,"y":-0.98831624,"z":-8.951378},{"x":5.4347153,"y":-1.004596,"z":-9.032493},{"x":5.5910444,"y":-1.0203218,"z":-9.1125145},{"x":5.750483,"y":-1.0355119,"z":-9.191199},{"x":5.912683,"y":-1.0501832,"z":-9.268302},{"x":6.077296,"y":-1.0643533,"z":-9.343576},{"x":6.2439766,"y":-1.0780401,"z":-9.416779},{"x":6.4123755,"y":-1.0912609,"z":-9.487662},{"x":6.5821476,"y":-1.1040334,"z":-9.555983},{"x":6.752944,"y":-1.1163749,"z":-9.621492},{"x":6.924419,"y":-1.128303,"z":-9.683949},{"x":7.0962234,"y":-1.1398354,"z":-9.743106},{"x":7.268012,"y":-1.1509895,"z":-9.7987175},{"x":7.439435,"y":-1.161783,"z":-9.850538},{"x":7.6101475,"y":-1.1722332,"z":-9.898325},{"x":7.7864976,"y":-1.1823417,"z":-9.941767},{"x":7.973419,"y":-1.1920894,"z":-9.9809265},{"x":8.168437,"y":-1.2014631,"z":-10.016109},{"x":8.36908,"y":-1.2104498,"z":-10.047625},{"x":8.572872,"y":-1.2190362,"z":-10.075778},{"x":8.777344,"y":-1.2272093,"z":-10.100877},{"x":8.980019,"y":-1.2349559,"z":-10.123228},{"x":9.178425,"y":-1.2422631,"z":-10.14314},{"x":9.37009,"y":-1.2491174,"z":-10.160919},{"x":9.55254,"y":-1.2555059,"z":-10.176872},{"x":9.7233,"y":-1.2614154,"z":-10.191306},{"x":9.8799,"y":-1.2668328,"z":-10.20453},{"x":10.019865,"y":-1.2717451,"z":-10.216848},{"x":10.140723,"y":-1.2761389,"z":-10.228571},{"x":10.24,"y":-1.2800013,"z":-10.240003}],"GeneratedEstimatedPathLength":16.135641,"GeneratedLastYRot":270,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_curve_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.34469134,"y":-3.3673822e-7,"z":-2.8247654},{"x":-1.2800009,"y":-6.107062e-7,"z":-5.122976}],"EstimatedPathLength":5.326963,"SourceLastYRot":29.999994,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.011745621,"y":-1.28014905e-8,"z":-0.107387},{"x":-0.024148798,"y":-2.8520107e-8,"z":-0.23924431},{"x":-0.037428133,"y":-4.6800697e-8,"z":-0.39259303},{"x":-0.05180222,"y":-6.7288134e-8,"z":-0.5644541},{"x":-0.06748967,"y":-8.962731e-8,"z":-0.7518487},{"x":-0.084709086,"y":-1.13463095e-7,"z":-0.95179784},{"x":-0.10367906,"y":-1.3844037e-7,"z":-1.1613224},{"x":-0.1246182,"y":-1.6420402e-7,"z":-1.3774437},{"x":-0.1477451,"y":-1.9039895e-7,"z":-1.5971825},{"x":-0.17327838,"y":-2.1667e-7,"z":-1.8175602},{"x":-0.20143661,"y":-2.4266208e-7,"z":-2.0355973},{"x":-0.23243845,"y":-2.6802007e-7,"z":-2.2483158},{"x":-0.26650244,"y":-2.9238885e-7,"z":-2.4527357},{"x":-0.3038472,"y":-3.1541327e-7,"z":-2.6458788},{"x":-0.34469134,"y":-3.3673822e-7,"z":-2.8247654},{"x":-0.39183545,"y":-3.5739367e-7,"z":-2.998036},{"x":-0.44703007,"y":-3.7852107e-7,"z":-3.1752653},{"x":-0.5089187,"y":-3.9993262e-7,"z":-3.3548784},{"x":-0.5761452,"y":-4.214407e-7,"z":-3.5353014},{"x":-0.6473528,"y":-4.428575e-7,"z":-3.7149587},{"x":-0.7211856,"y":-4.6399535e-7,"z":-3.8922758},{"x":-0.7962869,"y":-4.846665e-7,"z":-4.0656776},{"x":-0.87130046,"y":-5.0468316e-7,"z":-4.23359},{"x":-0.9448699,"y":-5.238577e-7,"z":-4.394438},{"x":-1.0156386,"y":-5.420023e-7,"z":-4.546646},{"x":-1.0822506,"y":-5.589293e-7,"z":-4.6886396},{"x":-1.143349,"y":-5.7445084e-7,"z":-4.818845},{"x":-1.197578,"y":-5.883794e-7,"z":-4.935685},{"x":-1.2435806,"y":-6.00527e-7,"z":-5.0375876},{"x":-1.2800009,"y":-6.1070614e-7,"z":-5.1229763}],"GeneratedEstimatedPathLength":5.332934,"GeneratedLastYRot":29.999994,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_curve_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.40394,"y":-3.4012885e-7,"z":-2.853208},{"x":1.2800001,"y":-6.107062e-7,"z":-5.122976}],"EstimatedPathLength":5.3146267,"SourceLastYRot":330,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.014220901,"y":-1.2943143e-8,"z":-0.10857526},{"x":0.029994672,"y":-2.8854648e-8,"z":-0.24205065},{"x":0.047381923,"y":-4.7370325e-8,"z":-0.39737138},{"x":0.06644325,"y":-6.812599e-8,"z":-0.5714826},{"x":0.08723926,"y":-9.075752e-8,"z":-0.76132953},{"x":0.109830566,"y":-1.1490072e-7,"z":-0.9638575},{"x":0.13427776,"y":-1.4019143e-7,"z":-1.1760116},{"x":0.16064145,"y":-1.6626552e-7,"z":-1.3947368},{"x":0.18898223,"y":-1.9275882e-7,"z":-1.6169786},{"x":0.21936074,"y":-2.1930715e-7,"z":-1.8396822},{"x":0.25183755,"y":-2.4554637e-7,"z":-2.0597925},{"x":0.2864733,"y":-2.7111233e-7,"z":-2.2742558},{"x":0.32332855,"y":-2.956408e-7,"z":-2.4800153},{"x":0.3624639,"y":-3.1876772e-7,"z":-2.6740181},{"x":0.40394,"y":-3.4012885e-7,"z":-2.853208},{"x":0.4504521,"y":-3.6074812e-7,"z":-3.026175},{"x":0.503856,"y":-3.8177305e-7,"z":-3.202545},{"x":0.56295335,"y":-4.0302487e-7,"z":-3.3808181},{"x":0.6265458,"y":-4.2432498e-7,"z":-3.5594966},{"x":0.69343483,"y":-4.4549466e-7,"z":-3.7370806},{"x":0.7624223,"y":-4.6635523e-7,"z":-3.912072},{"x":0.83230966,"y":-4.8672797e-7,"z":-4.0829706},{"x":0.9018986,"y":-5.064343e-7,"z":-4.248279},{"x":0.96999073,"y":-5.252953e-7,"z":-4.4064975},{"x":1.0353875,"y":-5.431325e-7,"z":-4.5561266},{"x":1.0968908,"y":-5.5976716e-7,"z":-4.695668},{"x":1.1533021,"y":-5.7502047e-7,"z":-4.8236227},{"x":1.203423,"y":-5.8871393e-7,"z":-4.938491},{"x":1.2460551,"y":-6.006687e-7,"z":-5.0387754},{"x":1.2800002,"y":-6.1070614e-7,"z":-5.1229753}],"GeneratedEstimatedPathLength":5.3190746,"GeneratedLastYRot":330,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_duck_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0.0000016485794,"y":-2.7528853e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0.0000016485794,"y":-2.7528853e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":3,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_duck_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"EstimatedPathLength":5.1299906,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1299906,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":3,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_entrance_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":12,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_exit_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"EstimatedPathLength":7.6800013,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-5.804643e-7,"z":-7.6800013}],"GeneratedEstimatedPathLength":7.6800013,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":13,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"mine_junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":330,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":330,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13885999,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.56,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":29.999994,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13885999,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.56,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":29.999994,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":5,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_junction_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":330,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":0.1388597,"y":-2.1615625e-7,"z":-1.8132503},{"x":0.3114985,"y":-3.243479e-7,"z":-2.7208276},{"x":0.7228833,"y":-4.7123078e-7,"z":-3.9529707},{"x":1.2800006,"y":-6.1035126e-7,"z":-5.119998},{"x":2.56,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":330,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":5,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"mine_junction_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13886,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.5599997,"y":-8.8011916e-7,"z":-7.3829756}],"EstimatedPathLength":7.9394646,"SourceLastYRot":29.999994,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":0,"y":-1.04904174e-7,"z":-0.8800001},{"x":-0.13886,"y":-2.1615625e-7,"z":-1.8132503},{"x":-0.3115,"y":-3.243479e-7,"z":-2.7208276},{"x":-0.72288,"y":-4.7123078e-7,"z":-3.9529707},{"x":-1.2799994,"y":-6.1035126e-7,"z":-5.119998},{"x":-2.5599997,"y":-8.8011916e-7,"z":-7.3829756}],"GeneratedEstimatedPathLength":7.9394646,"GeneratedLastYRot":29.999994,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":5,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"mine_ledge_left_a":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-1.5184492e-7,"z":-1.273768},{"x":-0.08917214,"y":3.0138636e-8,"z":-2.5578916}],"EstimatedPathLength":2.5609841,"SourceLastYRot":3.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.003302672,"y":-5.1731195e-8,"z":-0.3298526},{"x":0.006605343,"y":-1.2033408e-7,"z":-0.80123496},{"x":0,"y":-1.5184492e-7,"z":-1.273768},{"x":-0.02642138,"y":-1.0917164e-7,"z":-1.7486023},{"x":-0.06275077,"y":-2.9406294e-8,"z":-2.2245872},{"x":-0.08917214,"y":3.0138608e-8,"z":-2.5578918}],"GeneratedEstimatedPathLength":2.5611305,"GeneratedLastYRot":3.999999,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_left_b":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-1.5488715e-7,"z":-1.299288},{"x":-0.08917214,"y":3.0138636e-8,"z":-2.5578916}],"EstimatedPathLength":2.5610466,"SourceLastYRot":3.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.003302672,"y":-5.274527e-8,"z":-0.3383593},{"x":0.006605343,"y":-1.2270026e-7,"z":-0.8210839},{"x":0,"y":-1.5488715e-7,"z":-1.299288},{"x":-0.02642138,"y":-1.11537815e-7,"z":-1.7684512},{"x":-0.06275077,"y":-3.0420367e-8,"z":-2.233094},{"x":-0.08917214,"y":3.0138636e-8,"z":-2.5578918}],"GeneratedEstimatedPathLength":2.5611992,"GeneratedLastYRot":3.999999,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_left_end_a":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":-9.155273e-7,"y":3.6379787e-14,"z":3.051758e-7},{"x":8.093461e-7,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":-9.155273e-7,"y":3.6379787e-14,"z":3.051758e-7},{"x":8.093461e-7,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_left_start_a":{"DeathType":4,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0,"y":-1.5245288e-7,"z":-1.2788676},{"x":0.089175306,"y":3.0138693e-8,"z":-2.557891}],"EstimatedPathLength":2.560996,"SourceLastYRot":356,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-0.0033027893,"y":-5.1933856e-8,"z":-0.33155233},{"x":-0.0066055777,"y":-1.2080696e-7,"z":-0.80520135},{"x":0,"y":-1.5245288e-7,"z":-1.2788676},{"x":0.026422318,"y":-1.09644475e-7,"z":-1.7525685},{"x":0.06275301,"y":-2.9608884e-8,"z":-2.2262866},{"x":0.08917531,"y":3.013872e-8,"z":-2.557891}],"GeneratedEstimatedPathLength":2.5611436,"GeneratedLastYRot":356,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0,"y":-1.5685391e-7,"z":-1.3157861},{"x":0.089175306,"y":3.0138693e-8,"z":-2.557891}],"EstimatedPathLength":2.561088,"SourceLastYRot":356,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":-0.0033027893,"y":-5.340086e-8,"z":-0.34385848},{"x":-0.0066055777,"y":-1.2422997e-7,"z":-0.83391577},{"x":0,"y":-1.5685391e-7,"z":-1.3157861},{"x":0.026422318,"y":-1.130675e-7,"z":-1.7812829},{"x":0.06275301,"y":-3.1075913e-8,"z":-2.2385926},{"x":0.08917531,"y":3.013868e-8,"z":-2.557891}],"GeneratedEstimatedPathLength":2.561245,"GeneratedLastYRot":356,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_end_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_ledge_right_start_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"EstimatedPathLength":2.5600004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":3.051758e-7},{"x":0.0000017248734,"y":2.9887246e-8,"z":-2.5600002}],"GeneratedEstimatedPathLength":2.5600004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"EstimatedPathLength":5.1299906,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1299906,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"mine_straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"EstimatedPathLength":5.1299906,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0000016485794,"y":-0.32000062,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1299906,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}}}' ); }, function (e) { e.exports = JSON.parse( '{"narrow_end_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":17,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"narrow_jump_or_slide_a":{"DeathType":2,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-2.7528847e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":2,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"narrow_jump_over_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_jump_over_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"EstimatedPathLength":10.240001,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.0000012207031,"z":-10.240001}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"narrow_junction_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":2.7890367e-14,"z":-7.121439e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":5.1200004,"y":-6.1035166e-7,"z":-5.120002}],"EstimatedPathLength":10.240001,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":2.7890367e-14,"z":-7.121439e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":5.1200004,"y":-6.1035166e-7,"z":-5.120002}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":270,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":4.4869205e-14,"z":7.121446e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":-5.1200004,"y":-6.1035144e-7,"z":-5.12}],"EstimatedPathLength":10.240001,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":4.4869205e-14,"z":7.121446e-8},{"x":0,"y":-6.103515e-7,"z":-5.1200004},{"x":-5.1200004,"y":-6.1035144e-7,"z":-5.12}],"GeneratedEstimatedPathLength":10.240001,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_start_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":16,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_c":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.63999945,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.63999945,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_d":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"EstimatedPathLength":5.209223,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.209223,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_straight_e":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"EstimatedPathLength":5.209223,"SourceLastYRot":4.999999,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":0.9599995,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.209223,"GeneratedLastYRot":4.999999,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_stumble_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"EstimatedPathLength":5.1200004,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-6.103515e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1200004,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":5,"DeathType":12,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_turn_left_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":5.1199994,"y":-6.1035155e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":270,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"narrow_turn_right_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":-5.12,"y":-6.1035155e-7,"z":-5.1200004}],"EstimatedPathLength":10.24,"SourceLastYRot":90,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-6.1035155e-7,"y":-6.1035155e-7,"z":-5.1200004},{"x":-5.12,"y":-6.1035155e-7,"z":-5.1200004}],"GeneratedEstimatedPathLength":10.24,"GeneratedLastYRot":90,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":3,"DeathType":0,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}' ); }, function (e) { e.exports = JSON.parse( '{"waterslide_curve_45_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0023899924,"y":-0.6398104,"z":-5.253956},{"x":-1.081701,"y":-1.079964,"z":-10.387234},{"x":-3.9350924,"y":-1.9062048,"z":-14.734301},{"x":-7.637469,"y":-2.5600023,"z":-18.43848}],"EstimatedPathLength":21.09972,"SourceLastYRot":45,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0021436797,"y":-0.024489932,"z":-0.19795471},{"x":0.008097293,"y":-0.054808237,"z":-0.43837017},{"x":0.016905699,"y":-0.090208724,"z":-0.71646893},{"x":0.027613763,"y":-0.12994519,"z":-1.0274734},{"x":0.03926634,"y":-0.17327146,"z":-1.3666062},{"x":0.050908297,"y":-0.21944135,"z":-1.7290902},{"x":0.06158449,"y":-0.26770863,"z":-2.1101475},{"x":0.070339784,"y":-0.3173271,"z":-2.5050008},{"x":0.07621904,"y":-0.3675506,"z":-2.9088726},{"x":0.07826711,"y":-0.41763294,"z":-3.3169856},{"x":0.07552885,"y":-0.46682793,"z":-3.724562},{"x":0.067049176,"y":-0.5143894,"z":-4.1268253},{"x":0.051872846,"y":-0.559571,"z":-4.5189967},{"x":0.02904486,"y":-0.60162675,"z":-4.8962994},{"x":-0.0023899924,"y":-0.6398104,"z":-5.253956},{"x":-0.039393924,"y":-0.67415065,"z":-5.6013093},{"x":-0.07870538,"y":-0.7055209,"z":-5.950493},{"x":-0.12094399,"y":-0.73444176,"z":-6.3009143},{"x":-0.16672961,"y":-0.761434,"z":-6.6519833},{"x":-0.21668176,"y":-0.7870182,"z":-7.0031066},{"x":-0.27142033,"y":-0.811715,"z":-7.3536944},{"x":-0.3315648,"y":-0.8360451,"z":-7.7031536},{"x":-0.3977351,"y":-0.8605292,"z":-8.050894},{"x":-0.4705508,"y":-0.88568795,"z":-8.396323},{"x":-0.55063146,"y":-0.9120419,"z":-8.738849},{"x":-0.6385971,"y":-0.9401118,"z":-9.077881},{"x":-0.735067,"y":-0.97041833,"z":-9.412827},{"x":-0.84066135,"y":-1.0034822,"z":-9.743095},{"x":-0.95599943,"y":-1.0398239,"z":-10.068094},{"x":-1.081701,"y":-1.079964,"z":-10.387234},{"x":-1.2186526,"y":-1.1241937,"z":-10.701201},{"x":-1.3667777,"y":-1.1721251,"z":-11.011165},{"x":-1.5252545,"y":-1.2232617,"z":-11.317251},{"x":-1.6932614,"y":-1.2771075,"z":-11.61959},{"x":-1.8699747,"y":-1.3331654,"z":-11.918305},{"x":-2.0545728,"y":-1.3909395,"z":-12.213527},{"x":-2.2462335,"y":-1.4499328,"z":-12.505381},{"x":-2.4441347,"y":-1.5096494,"z":-12.793997},{"x":-2.6474535,"y":-1.5695922,"z":-13.0795},{"x":-2.8553677,"y":-1.6292653,"z":-13.362019},{"x":-3.067056,"y":-1.688172,"z":-13.641681},{"x":-3.2816944,"y":-1.7458156,"z":-13.918612},{"x":-3.4984615,"y":-1.8016999,"z":-14.19294},{"x":-3.7165349,"y":-1.8553284,"z":-14.464794},{"x":-3.9350932,"y":-1.9062049,"z":-14.734302},{"x":-4.164945,"y":-1.9561547,"z":-15.007597},{"x":-4.414753,"y":-2.0070496,"z":-15.288919},{"x":-4.680472,"y":-2.0584617,"z":-15.575549},{"x":-4.9580545,"y":-2.109963,"z":-15.864763},{"x":-5.243456,"y":-2.1611257,"z":-16.153841},{"x":-5.5326304,"y":-2.211522,"z":-16.440062},{"x":-5.821534,"y":-2.2607243,"z":-16.720705},{"x":-6.106118,"y":-2.3083043,"z":-16.993048},{"x":-6.3823385,"y":-2.3538342,"z":-17.25437},{"x":-6.6461496,"y":-2.396886,"z":-17.50195},{"x":-6.8935065,"y":-2.4370327,"z":-17.733067},{"x":-7.1203623,"y":-2.473845,"z":-17.945},{"x":-7.3226714,"y":-2.5068963,"z":-18.135027},{"x":-7.4963894,"y":-2.535758,"z":-18.300428},{"x":-7.6374683,"y":-2.5600026,"z":-18.438482}],"GeneratedEstimatedPathLength":21.14456,"GeneratedLastYRot":45,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_curve_45_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.0023791504,"y":-0.63980687,"z":-5.2539573},{"x":1.0816895,"y":-1.0799574,"z":-10.387236},{"x":3.935082,"y":-1.9062021,"z":-14.734307},{"x":7.637468,"y":-2.5600038,"z":-18.43848}],"EstimatedPathLength":21.09973,"SourceLastYRot":315,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.002144109,"y":-0.024489798,"z":-0.19795477},{"x":-0.008098274,"y":-0.054807942,"z":-0.4383703},{"x":-0.016907338,"y":-0.09020825,"z":-0.7164691},{"x":-0.02761614,"y":-0.1299445,"z":-1.0274737},{"x":-0.039269526,"y":-0.17327055,"z":-1.3666067},{"x":-0.050912343,"y":-0.21944018,"z":-1.7290907},{"x":-0.06158942,"y":-0.2677072,"z":-2.1101482},{"x":-0.07034561,"y":-0.3173254,"z":-2.5050015},{"x":-0.07622574,"y":-0.36754867,"z":-2.9088736},{"x":-0.07827469,"y":-0.41763073,"z":-3.3169866},{"x":-0.075537264,"y":-0.46682543,"z":-3.7245631},{"x":-0.06705834,"y":-0.51438665,"z":-4.1268263},{"x":-0.0518827,"y":-0.55956805,"z":-4.518998},{"x":-0.029055253,"y":-0.60162354,"z":-4.8963013},{"x":0.0023791504,"y":-0.63980687,"z":-5.2539573},{"x":0.039382737,"y":-0.6741469,"z":-5.6013107},{"x":0.07869393,"y":-0.70551693,"z":-5.950495},{"x":0.12093234,"y":-0.73443747,"z":-6.3009157},{"x":0.1667178,"y":-0.7614294,"z":-6.6519847},{"x":0.21666986,"y":-0.7870133,"z":-7.003108},{"x":0.27140838,"y":-0.8117099,"z":-7.353696},{"x":0.33155283,"y":-0.83603966,"z":-7.703155},{"x":0.39772317,"y":-0.8605235,"z":-8.050896},{"x":0.47053888,"y":-0.885682,"z":-8.396324},{"x":0.55061966,"y":-0.9120357,"z":-8.738851},{"x":0.6385854,"y":-0.9401055,"z":-9.077883},{"x":0.73505545,"y":-0.97041184,"z":-9.412828},{"x":0.84064984,"y":-1.0034755,"z":-9.743097},{"x":0.95598793,"y":-1.0398172,"z":-10.068096},{"x":1.0816895,"y":-1.0799574,"z":-10.387236},{"x":1.218641,"y":-1.1241871,"z":-10.701203},{"x":1.3667662,"y":-1.1721185,"z":-11.011167},{"x":1.5252429,"y":-1.2232554,"z":-11.317254},{"x":1.6932497,"y":-1.2771014,"z":-11.619593},{"x":1.869963,"y":-1.3331596,"z":-11.918309},{"x":2.0545611,"y":-1.3909338,"z":-12.213531},{"x":2.2462218,"y":-1.4499274,"z":-12.505385},{"x":2.4441233,"y":-1.5096444,"z":-12.794003},{"x":2.6474419,"y":-1.5695877,"z":-13.079506},{"x":2.8553562,"y":-1.629261,"z":-13.362024},{"x":3.0670447,"y":-1.688168,"z":-13.641686},{"x":3.281683,"y":-1.745812,"z":-13.918618},{"x":3.4984503,"y":-1.8016968,"z":-14.192947},{"x":3.7165241,"y":-1.8553255,"z":-14.4648},{"x":3.9350827,"y":-1.9062022,"z":-14.734308},{"x":4.164935,"y":-1.9561522,"z":-15.007604},{"x":4.4147434,"y":-2.0070474,"z":-15.288926},{"x":4.680463,"y":-2.0584598,"z":-15.575556},{"x":4.958046,"y":-2.1099615,"z":-15.864769},{"x":5.2434483,"y":-2.1611245,"z":-16.153847},{"x":5.532624,"y":-2.2115211,"z":-16.440065},{"x":5.821528,"y":-2.2607238,"z":-16.720709},{"x":6.1061134,"y":-2.3083038,"z":-16.99305},{"x":6.3823347,"y":-2.3538342,"z":-17.254372},{"x":6.646147,"y":-2.3968863,"z":-17.50195},{"x":6.893504,"y":-2.437033,"z":-17.733067},{"x":7.1203604,"y":-2.473846,"z":-17.945},{"x":7.3226705,"y":-2.5068972,"z":-18.135027},{"x":7.4963894,"y":-2.535759,"z":-18.300428},{"x":7.637469,"y":-2.5600035,"z":-18.43848}],"GeneratedEstimatedPathLength":21.144575,"GeneratedLastYRot":315,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_curve_90_a":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.039224,"y":-1.0764616,"z":-8.314708},{"x":-4.187643,"y":-1.8079796,"z":-16.071527},{"x":-10.068355,"y":-2.8118565,"z":-21.928253},{"x":-17.768435,"y":-4.1072164,"z":-25.03823},{"x":-26.075945,"y":-5.1200013,"z":-26.07595}],"EstimatedPathLength":42.049656,"SourceLastYRot":90.000015,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.034730993,"y":-0.04122229,"z":-0.3140365},{"x":-0.07027642,"y":-0.092282735,"z":-0.6965743},{"x":-0.107587345,"y":-0.15191786,"z":-1.1397264},{"x":-0.1476149,"y":-0.21886423,"z":-1.6356066},{"x":-0.19131012,"y":-0.29185832,"z":-2.1763277},{"x":-0.23962411,"y":-0.36963665,"z":-2.7540026},{"x":-0.293508,"y":-0.45093584,"z":-3.3607454},{"x":-0.35391283,"y":-0.5344924,"z":-3.9886694},{"x":-0.42178965,"y":-0.61904275,"z":-4.6298866},{"x":-0.4980896,"y":-0.7033235,"z":-5.2765117},{"x":-0.5837638,"y":-0.78607106,"z":-5.920657},{"x":-0.6797631,"y":-0.8660222,"z":-6.5544357},{"x":-0.78703904,"y":-0.94191337,"z":-7.169962},{"x":-0.9065423,"y":-1.0124809,"z":-7.759348},{"x":-1.039224,"y":-1.0764616,"z":-8.314708},{"x":-1.182207,"y":-1.1346807,"z":-8.85197},{"x":-1.3323486,"y":-1.1891719,"z":-9.391524},{"x":-1.4902028,"y":-1.2404838,"z":-9.9321785},{"x":-1.6563232,"y":-1.2891653,"z":-10.472738},{"x":-1.8312645,"y":-1.3357649,"z":-11.012013},{"x":-2.0155797,"y":-1.3808315,"z":-11.548808},{"x":-2.2098231,"y":-1.4249136,"z":-12.081931},{"x":-2.414548,"y":-1.4685602,"z":-12.610188},{"x":-2.6303089,"y":-1.5123198,"z":-13.132384},{"x":-2.8576598,"y":-1.5567412,"z":-13.647331},{"x":-3.0971537,"y":-1.602373,"z":-14.1538315},{"x":-3.3493457,"y":-1.6497641,"z":-14.650696},{"x":-3.614788,"y":-1.699463,"z":-15.136726},{"x":-3.8940363,"y":-1.7520186,"z":-15.610735},{"x":-4.187643,"y":-1.8079796,"z":-16.071527},{"x":-4.4965796,"y":-1.8663918,"z":-16.522846},{"x":-4.820905,"y":-1.9259462,"z":-16.96873},{"x":-5.1598086,"y":-1.9866602,"z":-17.408426},{"x":-5.5124793,"y":-2.0485508,"z":-17.841185},{"x":-5.878104,"y":-2.1116347,"z":-18.266249},{"x":-6.2558737,"y":-2.1759293,"z":-18.682869},{"x":-6.6449738,"y":-2.2414513,"z":-19.090292},{"x":-7.044595,"y":-2.3082178,"z":-19.487764},{"x":-7.453927,"y":-2.376246,"z":-19.874535},{"x":-7.872154,"y":-2.4455523,"z":-20.24985},{"x":-8.298468,"y":-2.516154,"z":-20.612957},{"x":-8.732056,"y":-2.5880685,"z":-20.963104},{"x":-9.172108,"y":-2.661312,"z":-21.299538},{"x":-9.617812,"y":-2.7359028,"z":-21.621506},{"x":-10.068356,"y":-2.8118567,"z":-21.928253},{"x":-10.527605,"y":-2.8903363,"z":-22.21964},{"x":-10.999249,"y":-2.9721522,"z":-22.496422},{"x":-11.482212,"y":-3.0567946,"z":-22.759197},{"x":-11.975416,"y":-3.1437535,"z":-23.008566},{"x":-12.477783,"y":-3.2325177,"z":-23.245125},{"x":-12.988235,"y":-3.3225775,"z":-23.469479},{"x":-13.505697,"y":-3.413422,"z":-23.682222},{"x":-14.029092,"y":-3.5045424,"z":-23.883959},{"x":-14.557339,"y":-3.5954268,"z":-24.075287},{"x":-15.089362,"y":-3.6855657,"z":-24.256804},{"x":-15.624086,"y":-3.7744486,"z":-24.42911},{"x":-16.16043,"y":-3.8615654,"z":-24.592808},{"x":-16.697325,"y":-3.9464061,"z":-24.748493},{"x":-17.233685,"y":-4.0284595,"z":-24.896767},{"x":-17.768435,"y":-4.1072164,"z":-25.03823},{"x":-18.321861,"y":-4.185041,"z":-25.169737},{"x":-18.909687,"y":-4.2642064,"z":-25.288355},{"x":-19.523983,"y":-4.344063,"z":-25.395002},{"x":-20.156828,"y":-4.4239616,"z":-25.490602},{"x":-20.800297,"y":-4.5032535,"z":-25.576073},{"x":-21.446465,"y":-4.5812893,"z":-25.652332},{"x":-22.08741,"y":-4.6574206,"z":-25.7203},{"x":-22.715206,"y":-4.7309976,"z":-25.7809},{"x":-23.321926,"y":-4.8013716,"z":-25.835047},{"x":-23.89965,"y":-4.867893,"z":-25.883663},{"x":-24.440453,"y":-4.929914,"z":-25.927666},{"x":-24.936407,"y":-4.986784,"z":-25.967978},{"x":-25.379591,"y":-5.0378547,"z":-26.005514},{"x":-25.762077,"y":-5.0824766,"z":-26.041199},{"x":-26.075947,"y":-5.1200013,"z":-26.07595}],"GeneratedEstimatedPathLength":42.195683,"GeneratedLastYRot":90.000015,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_curve_90_b":{"DeathType":12,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.86726636,"y":-1.039943,"z":-8.34879},{"x":4.067121,"y":-1.7248831,"z":-16.104267},{"x":10.039133,"y":-2.807496,"z":-21.906828},{"x":17.750814,"y":-4.1047482,"z":-25.034552},{"x":26.075947,"y":-5.1200023,"z":-26.075949}],"EstimatedPathLength":42.145836,"SourceLastYRot":270,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.027796952,"y":-0.039868973,"z":-0.31539246},{"x":0.05423839,"y":-0.08931973,"z":-0.69968486},{"x":0.0806268,"y":-0.14711228,"z":-1.1449285},{"x":0.108264744,"y":-0.21200676,"z":-1.6431751},{"x":0.13845468,"y":-0.28276312,"z":-2.1864758},{"x":0.1724991,"y":-0.35814142,"z":-2.766882},{"x":0.21170062,"y":-0.4369018,"z":-3.3764458},{"x":0.25736165,"y":-0.51780427,"z":-4.0072184},{"x":0.3107847,"y":-0.5996088,"z":-4.651251},{"x":0.3732723,"y":-0.68107545,"z":-5.300595},{"x":0.446127,"y":-0.76096433,"z":-5.9473014},{"x":0.5306511,"y":-0.83803546,"z":-6.5834227},{"x":0.6281475,"y":-0.911049,"z":-7.2010107},{"x":0.7399184,"y":-0.9787648,"z":-7.7921157},{"x":0.8672664,"y":-1.039943,"z":-8.34879},{"x":1.0071089,"y":-1.0950891,"z":-8.8871},{"x":1.1557556,"y":-1.1459812,"z":-9.4276085},{"x":1.3135972,"y":-1.1932884,"z":-9.969105},{"x":1.4810243,"y":-1.2376797,"z":-10.510381},{"x":1.658428,"y":-1.2798243,"z":-11.050229},{"x":1.8461983,"y":-1.3203909,"z":-11.58744},{"x":2.0447268,"y":-1.360049,"z":-12.120806},{"x":2.2544036,"y":-1.3994672,"z":-12.6491165},{"x":2.4756196,"y":-1.4393147,"z":-13.171165},{"x":2.708766,"y":-1.4802608,"z":-13.685744},{"x":2.9542325,"y":-1.5229743,"z":-14.191642},{"x":3.212411,"y":-1.5681242,"z":-14.687653},{"x":3.483691,"y":-1.6163795,"z":-15.172565},{"x":3.7684646,"y":-1.6684096,"z":-15.645174},{"x":4.067121,"y":-1.7248831,"z":-16.104267},{"x":4.381152,"y":-1.7850649,"z":-16.55336},{"x":4.7111745,"y":-1.847665,"z":-16.996338},{"x":5.0562706,"y":-1.9125204,"z":-17.432564},{"x":5.4155235,"y":-1.9794688,"z":-17.861393},{"x":5.7880144,"y":-2.0483472,"z":-18.282183},{"x":6.172827,"y":-2.1189933,"z":-18.694294},{"x":6.5690413,"y":-2.191244,"z":-19.097084},{"x":6.975741,"y":-2.2649364,"z":-19.48991},{"x":7.3920097,"y":-2.3399088,"z":-19.872133},{"x":7.816926,"y":-2.4159975,"z":-20.243109},{"x":8.249575,"y":-2.49304,"z":-20.602196},{"x":8.689037,"y":-2.5708737,"z":-20.948753},{"x":9.134396,"y":-2.6493363,"z":-21.282139},{"x":9.584736,"y":-2.7282648,"z":-21.601713},{"x":10.039134,"y":-2.8074963,"z":-21.906828},{"x":10.501458,"y":-2.8883321,"z":-22.19734},{"x":10.975519,"y":-2.9718876,"z":-22.47387},{"x":11.460315,"y":-3.0577214,"z":-22.736942},{"x":11.954847,"y":-3.1453927,"z":-22.987083},{"x":12.45811,"y":-3.2344587,"z":-23.22481},{"x":12.969105,"y":-3.3244789,"z":-23.45065},{"x":13.48683,"y":-3.4150114,"z":-23.665123},{"x":14.010287,"y":-3.5056155,"z":-23.868757},{"x":14.538471,"y":-3.5958486,"z":-24.062069},{"x":15.070382,"y":-3.68527,"z":-24.245588},{"x":15.6050205,"y":-3.773438,"z":-24.419832},{"x":16.141384,"y":-3.8599114,"z":-24.58533},{"x":16.678474,"y":-3.9442487,"z":-24.7426},{"x":17.215284,"y":-4.026008,"z":-24.892164},{"x":17.750814,"y":-4.1047482,"z":-25.034552},{"x":18.305277,"y":-4.182726,"z":-25.16672},{"x":18.89425,"y":-4.262058,"z":-25.285898},{"x":19.509783,"y":-4.342091,"z":-25.393019},{"x":20.143934,"y":-4.422175,"z":-25.489008},{"x":20.788755,"y":-4.501657,"z":-25.574797},{"x":21.436304,"y":-4.579886,"z":-25.651314},{"x":22.078636,"y":-4.65621,"z":-25.719486},{"x":22.707802,"y":-4.7299767,"z":-25.780243},{"x":23.315857,"y":-4.800535,"z":-25.834515},{"x":23.894857,"y":-4.867233,"z":-25.883228},{"x":24.43686,"y":-4.9294186,"z":-25.927315},{"x":24.933912,"y":-4.98644,"z":-25.967701},{"x":25.378075,"y":-5.037646,"z":-26.005316},{"x":25.761398,"y":-5.082384,"z":-26.041088},{"x":26.075943,"y":-5.1200027,"z":-26.075949}],"GeneratedEstimatedPathLength":42.295406,"GeneratedLastYRot":270,"GeneratedSmoothing":5}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_b":{"DeathType":9,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":9,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_duck_blocked_center":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_duck_blocked_left":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-0.0004159069,"y":-0.30619767,"z":-2.5685883},{"x":-0.2232602,"y":-0.64000064,"z":-5.1135054}],"EstimatedPathLength":5.1631455,"SourceLastYRot":4.9999986,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.008130261,"y":-0.07836217,"z":-0.66680706},{"x":0.01621431,"y":-0.19074629,"z":-1.6190128},{"x":-0.0004159069,"y":-0.30619767,"z":-2.5685883},{"x":-0.06647466,"y":-0.42778358,"z":-3.5129037},{"x":-0.15724766,"y":-0.55243677,"z":-4.454589},{"x":-0.22326015,"y":-0.64000064,"z":-5.1135054}],"GeneratedEstimatedPathLength":5.1636124,"GeneratedLastYRot":4.9999986,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_blocked_right":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.11162654,"y":-0.38161045,"z":-2.5567527},{"x":0.44567108,"y":-0.64000064,"z":-5.094046}],"EstimatedPathLength":5.159683,"SourceLastYRot":350.00003,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.020702511,"y":-0.10349976,"z":-0.66358256},{"x":0.053807974,"y":-0.24940068,"z":-1.6112487},{"x":0.11162654,"y":-0.38161045,"z":-2.5567527},{"x":0.21887136,"y":-0.48643798,"z":-3.4979324},{"x":0.3508293,"y":-0.5775744,"z":-4.4369497},{"x":0.4456711,"y":-0.6400007,"z":-5.0940456}],"GeneratedEstimatedPathLength":5.160279,"GeneratedLastYRot":350.00003,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_center_blocked_sides":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":6,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_duck_left_tilt_right":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_duck_right_tilt_left":{"DeathType":6,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_end_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":-6.1035155e-7},{"x":-0.1393691,"y":-0.79539645,"z":-4.290733},{"x":-0.54644746,"y":-1.9032613,"z":-8.483154},{"x":-1.1987846,"y":-3.365799,"z":-12.533608},{"x":-2.067387,"y":-5.16327,"z":-16.40486},{"x":-3.118355,"y":-7.2759657,"z":-20.066158},{"x":-3.7006795,"y":-7.3068075,"z":-21.800455},{"x":-4.679308,"y":-7.1325974,"z":-24.023975}],"EstimatedPathLength":26.053791,"SourceLastYRot":25,"GeneratedPath":[{"x":0,"y":0,"z":-6.1035155e-7},{"x":-0.026217572,"y":-0.194641,"z":-1.1160539},{"x":-0.0679206,"y":-0.47765937,"z":-2.7088554},{"x":-0.13936912,"y":-0.7953965,"z":-4.290733},{"x":-0.24614793,"y":-1.128403,"z":-5.700747},{"x":-0.3826722,"y":-1.4961281,"z":-7.0998373},{"x":-0.5464475,"y":-1.9032614,"z":-8.483154},{"x":-0.7377161,"y":-2.352097,"z":-9.850459},{"x":-0.9562356,"y":-2.8403406,"z":-11.20199},{"x":-1.1987846,"y":-3.365799,"z":-12.533608},{"x":-1.4655448,"y":-3.928471,"z":-13.845076},{"x":-1.7563347,"y":-4.5283585,"z":-15.136633},{"x":-2.0673873,"y":-5.1632705,"z":-16.40486},{"x":-2.4215586,"y":-5.921258,"z":-17.712215},{"x":-2.7959926,"y":-6.7142706,"z":-18.996243},{"x":-3.118355,"y":-7.2759657,"z":-20.066158},{"x":-3.3324997,"y":-7.4480524,"z":-20.768879},{"x":-3.4945729,"y":-7.3888216,"z":-21.257488},{"x":-3.7006795,"y":-7.3068075,"z":-21.800455},{"x":-4.0337787,"y":-7.2574744,"z":-22.587742},{"x":-4.4109116,"y":-7.185357,"z":-23.429388},{"x":-4.679308,"y":-7.132596,"z":-24.023975}],"GeneratedEstimatedPathLength":26.09085,"GeneratedLastYRot":25,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":9,"DeathType":11,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":2.24,"z":0},"CameraFollowDistance":6,"CameraFocusDistance":3.2,"CameraPitchHeight":0.96,"CameraChangeRate":0.1,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":2}}},"waterslide_junction_a":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":0.04791809,"y":-0.43113866,"z":-3.0756624},{"x":0.34882933,"y":-0.60540485,"z":-4.584389},{"x":0.84734696,"y":-0.79161984,"z":-6.039201},{"x":1.4821026,"y":-0.9843688,"z":-7.439471},{"x":3.4438202,"y":-1.4793875,"z":-10.740855},{"x":5.7281003,"y":-1.920002,"z":-13.82886}],"EstimatedPathLength":15.492506,"SourceLastYRot":315,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":0.04791809,"y":-0.43113866,"z":-3.0756624},{"x":0.34882933,"y":-0.60540485,"z":-4.584389},{"x":0.84734696,"y":-0.79161984,"z":-6.039201},{"x":1.4821026,"y":-0.9843688,"z":-7.439471},{"x":3.4438202,"y":-1.4793875,"z":-10.740855},{"x":5.7281003,"y":-1.920002,"z":-13.82886}],"GeneratedEstimatedPathLength":15.492506,"GeneratedLastYRot":315,"GeneratedSmoothing":1},{"SourcePath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":-0.048018187,"y":-0.4311383,"z":-3.075659},{"x":-0.34888306,"y":-0.6054052,"z":-4.584392},{"x":-0.847373,"y":-0.79162097,"z":-6.0392084},{"x":-1.4821118,"y":-0.9843706,"z":-7.439483},{"x":-3.4438174,"y":-1.4793895,"z":-10.740868},{"x":-5.7281003,"y":-1.920002,"z":-13.82886}],"EstimatedPathLength":15.492478,"SourceLastYRot":44.999992,"GeneratedPath":[{"x":0,"y":0,"z":0},{"x":-0.00004394531,"y":-0.2541487,"z":-1.5378761},{"x":-0.048018187,"y":-0.4311383,"z":-3.075659},{"x":-0.34888306,"y":-0.6054052,"z":-4.584392},{"x":-0.847373,"y":-0.79162097,"z":-6.0392084},{"x":-1.4821118,"y":-0.9843706,"z":-7.439483},{"x":-3.4438174,"y":-1.4793895,"z":-10.740868},{"x":-5.7281003,"y":-1.920002,"z":-13.82886}],"GeneratedEstimatedPathLength":15.492478,"GeneratedLastYRot":44.999992,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}},"waterslide_start_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-3.35063e-7,"y":-0.08000062,"z":-5.1200004},{"x":1.5258789e-7,"y":-0.5556987,"z":-10.240001}],"EstimatedPathLength":10.262676,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.1733907e-7,"y":-0.006085438,"z":-1.3274076},{"x":-2.7190737e-7,"y":-0.021059833,"z":-3.223704},{"x":-3.35063e-7,"y":-0.08000062,"z":-5.1200004},{"x":-2.153933e-7,"y":-0.22687417,"z":-7.016297},{"x":-4.3109765e-9,"y":-0.41771415,"z":-8.912594},{"x":1.5258783e-7,"y":-0.5556987,"z":-10.240001}],"GeneratedEstimatedPathLength":10.2634,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"CollisionInfo":{"Trigger":8,"DeathType":11,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}},"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_straight_a":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_straight_b":{"DeathType":11,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.2269018e-9,"y":-0.64000034,"z":-5.1200004}],"EstimatedPathLength":5.1598454,"SourceLastYRot":0,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":-1.2269018e-9,"y":-0.64000034,"z":-5.1200004}],"GeneratedEstimatedPathLength":5.1598454,"GeneratedLastYRot":0,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0}},"waterslide_straight_c":{"DeathType":10,"DeathShakeCamera":0,"Paths":[{"SourcePath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.06063593,"y":-0.38061893,"z":-2.559139},{"x":0.2232602,"y":-0.64000064,"z":-5.1135054}],"EstimatedPathLength":5.1606464,"SourceLastYRot":355,"GeneratedPath":[{"x":0,"y":3.6379787e-14,"z":2.842171e-14},{"x":0.011943081,"y":-0.103169255,"z":-0.6636573},{"x":0.030623488,"y":-0.24862951,"z":-1.6116633},{"x":0.06063593,"y":-0.38061893,"z":-2.559139},{"x":0.11331245,"y":-0.48566678,"z":-3.5055542},{"x":0.17732102,"y":-0.5772438,"z":-4.451439},{"x":0.2232602,"y":-0.6400006,"z":-5.1135054}],"GeneratedEstimatedPathLength":5.1608753,"GeneratedLastYRot":355,"GeneratedSmoothing":1}],"EnterPiece":{"TutorialMessageType":0,"DisplayMessageText":null,"SetPlayerPowerPointsToMax":0,"ForceCoinsPlacementOnTrackPiece":0,"CoinPlacementLocation":7,"ForcePickupPlacementOnTrackPiece":0,"PickupTypeToPlace":-1,"TutorialSoundEffect":0},"CollisionInfo":{"Trigger":4,"DeathType":10,"ShakeCamera":0,"Transition":{"CameraFixedRotation":{"x":0,"y":0,"z":0},"CameraFocusRotation":{"x":0,"y":0,"z":0},"CameraFollowOffset":{"x":0,"y":0,"z":0},"CameraFocusOffset":{"x":0,"y":0,"z":0},"CameraFollowDistance":0,"CameraFocusDistance":0,"CameraPitchHeight":0,"CameraChangeRate":0,"FocusRotationSettings":0,"FixedRotationSettings":0,"FollowOffsetSettings":0,"FocusOffsetSettings":0,"FollowDistanceSettings":0,"FocusDistanceSettings":0,"PitchHeightSettings":0,"ChangeRateSettings":0}}}}' ); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.Character = void 0); const r = n(62), o = n(40), a = n(19), s = n(48); t.Character = class { constructor() { (this._characterMeshFileURL = "assets/characters/guy_dangerous/guy_dangerous.glb"), (this._mineCartMeshFileURL = "assets/tracks/Machu/MineCart/mine_cart_a_prefab.glb"), (this.skeletons = []), (this.animationGroups = []), (this.animationGroupsCart = []); } loadAssetAsync(e) { return i(this, void 0, void 0, function* () { const t = r.MeshBuilder.CreateBox("playerRoot", { size: 0.5 }); t.isVisible = !1; const n = yield this._loadPlayer(t, e); this._createCollider(n), yield this._loadMineCart(e); const i = this.playerTransform.position.clone(); (i.y += 1.5), this.playerTransform.setPivotPoint(i, r.Space.LOCAL); }); } _createShadow(e) { (this.playerShadow = r.MeshBuilder.CreatePlane("playerShadow", { width: 0.8, height: 1.3 }, e)), this.playerShadow.rotate(r.Axis.X, r.Tools.ToRadians(90), r.Space.LOCAL), (this.playerShadow.renderingGroupId = o.ETR2RenderingGroup.TRACK_PIECES), (this.playerShadow.checkCollisions = !1), (this.playerShadow.physicsImpostor = null), (this.playerShadow.alwaysSelectAsActiveMesh = !0), this.playerShadow.setEnabled(!1); const t = new r.Texture("assets/textures/BlobShadow." + a.WebUtils.textureExtension, e, !1, !1), n = new r.StandardMaterial("playerShadowMat", e); (n.disableLighting = !0), (n.emissiveTexture = t), (n.emissiveTexture.hasAlpha = !0), (n.diffuseTexture = t), (n.diffuseTexture.hasAlpha = !0), (n.useAlphaFromDiffuseTexture = !0), (n.alpha = 0.7), (this.playerShadow.material = n); } _createWaterTrailLeft(e) { (this.waterTrailLeft = new r.ParticleSystem("waterTrailLeft", 200, e)), this.waterTrailLeft.createPointEmitter(new r.Vector3(0.1, 0.5, -3), new r.Vector3(0.1, 0.5, -3)), (this.waterTrailLeft.isBillboardBased = !0), (this.waterTrailLeft.isLocal = !0), (this.waterTrailLeft.emitRate = 5), (this.waterTrailLeft.particleTexture = new r.Texture("assets/effects/effects_transparent." + a.WebUtils.textureExtension, e, !1, !0, r.Texture.LINEAR_LINEAR)), (this.waterTrailLeft.gravity = r.Vector3.Zero()), (this.waterTrailLeft.updateSpeed = 2), (this.waterTrailLeft.minLifeTime = 60), (this.waterTrailLeft.maxLifeTime = 65), (this.waterTrailLeft.blendMode = r.ParticleSystem.BLENDMODE_STANDARD), (this.waterTrailLeft.minSize = 0.01), (this.waterTrailLeft.maxSize = 0.01), this.waterTrailLeft.addSizeGradient(0, 0.005), this.waterTrailLeft.addSizeGradient(0.3, 0.15), this.waterTrailLeft.addSizeGradient(1, 0.4), this.waterTrailLeft.addColorGradient(0, new r.Color4(1, 1, 1, 0.3)), this.waterTrailLeft.addColorGradient(0.5, new r.Color4(1, 1, 1, 0.2)), this.waterTrailLeft.addColorGradient(1, new r.Color4(1, 1, 1, 0)), (this.waterTrailLeft.minInitialRotation = 0), (this.waterTrailLeft.maxInitialRotation = Math.PI), (this.waterTrailLeft.startSpriteCellID = 3), (this.waterTrailLeft.endSpriteCellID = 3), (this.waterTrailLeft.spriteCellHeight = 128), (this.waterTrailLeft.spriteCellWidth = 128), (this.waterTrailLeft.spriteCellChangeSpeed = 0), (this.waterTrailLeft.isAnimationSheetEnabled = !0), (this.waterTrailLeft.renderingGroupId = o.ETR2RenderingGroup.PARTICLES), this.waterTrailLeft.start(); } _loadPlayer(e, t) { return i(this, void 0, void 0, function* () { const n = yield r.SceneLoader.ImportMeshAsync(null, this._characterMeshFileURL, void 0, t), i = n.meshes[0]; n.meshes.forEach((e) => (e.alwaysSelectAsActiveMesh = !0)), n.meshes.forEach((e) => (e.alphaIndex = 2)), i.setDirection(new r.Vector3(0, 0, 1)), i.scaling.scaleInPlace(0.45), (i.isVisible = !1), i.setParent(e), (this.playerTransform = e), this._createShadow(t), (this.skeletons = n.skeletons), (this.animationGroups = n.animationGroups); const a = n.meshes[1]; (a.renderingGroupId = o.ETR2RenderingGroup.CHARACTER), (this.material = a.material), (this.material.unlit = !0), (this.leftHandBone = n.skeletons[0].bones.find((e) => "BoneFBXASC032LFBXASC032Hand" == e.name)), (this.rightHandBone = n.skeletons[0].bones.find((e) => "BoneFBXASC032RFBXASC032Hand" == e.name)); const s = n.meshes[2], c = n.meshes[3], l = n.meshes[4], u = n.meshes[5]; return ( (s.isVisible = !1), (u.isVisible = !1), (c.isVisible = !1), (l.isVisible = !1), (this.waterSplashFx = o.GameController.instance.particle.waterSplashTrailParticle), (this.waterSplashFx.emitter = u), (this.dustFx = o.GameController.instance.particle.dustTrailParticle), (this.dustFx.emitter = i), (this.fireCollisionSmokeFX = o.GameController.instance.particle.fireCrashSmokePartile), (this.waterDuckFx = o.GameController.instance.particle.playerDuckWaterSplashParticle), (this.waterDuckFx.emitter = l), this._createWaterTrailLeft(t), (this.waterTrailLeft.emitter = s), (this.waterTrailRight = this.waterTrailLeft.clone("waterTrailRight", s)), (this.waterTrailRight.direction1.x *= -1), (this.waterTrailRight.direction2.x *= -1), this.waterTrailLeft.stop(), this.waterTrailRight.stop(), i ); }); } startWaterTrail() { this.waterTrailRight.start(), this.waterTrailLeft.start(); } stopWaterTrail() { this.waterTrailRight.stop(), this.waterTrailLeft.stop(); } _loadMineCart(e) { return i(this, void 0, void 0, function* () { const t = yield r.SceneLoader.ImportMeshAsync(null, this._mineCartMeshFileURL, void 0, e), n = t.meshes[0]; for (const e of t.meshes) e instanceof r.Mesh && ((e.material = o.GameController.instance.track.trackMaterial), (e.renderingGroupId = o.ETR2RenderingGroup.CHARACTER), e.name.includes("Collider") && (e.isVisible = !1)); (this.playerMineCartTransform = n), (this.playerMineCartTransform.isVisible = !1), this.playerMineCartTransform.setDirection(new r.Vector3(0, 0, 1)), this.playerMineCartTransform.setParent(this.playerTransform), this.playerMineCartTransform.setEnabled(!0), this.setPlayerCartVisibility(!1), (this.animationGroupsCart = t.animationGroups); }); } _createCollider(e) { (this.playerCollider = r.MeshBuilder.CreateCylinder("playerSphere", { height: 1.5, diameter: 0.7 })), this.playerCollider.setParent(e), (this.playerCollider.position.y += 1.5), (this.playerCollider.renderingGroupId = o.ETR2RenderingGroup.CHARACTER), (this.playerCollider.visibility = s.GameConfig.showPlayerCollider ? 0.5 : 0), (this.playerColliderDefaulScale = this.playerCollider.scaling), (this.playerColliderDefaultPosition = this.playerCollider.position); } setPlayerCartVisibility(e) { for (const t of this.playerMineCartTransform.getChildMeshes()) t instanceof r.Mesh && !t.name.includes("Collider") && (t.isVisible = e); } setPlayerColliderToDefault() { (this.playerCollider.scaling = this.playerColliderDefaulScale), (this.playerCollider.position = this.playerColliderDefaultPosition); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.parseToMap = t.parseFromMap = t.LocalStore = void 0); (t.LocalStore = new (class { isLocalStorageSupported() { let e = !1; try { window.localStorage, (e = !0); } catch (t) { e = !1; } return e; } createCookie(e, t, n) { let i = ""; if (n) { const e = new Date(); e.setTime(e.getTime() + 24 * n * 60 * 60 * 1e3), (i = "; expires=" + e.toUTCString()); } document.cookie = e + "=" + t + i + "; path=/"; } readCookie(e) { const t = e + "=", n = document.cookie.split(";"); for (let e = 0; e < n.length; e++) { let i = n[e]; for (; " " == i.charAt(0); ) i = i.substring(1, i.length); if (0 == i.indexOf(t)) return i.substring(t.length, i.length); } return null; } setItem(e, t) { this.isLocalStorageSupported() ? window.localStorage.setItem(e, t) : this.createCookie(e, t); } getItem(e) { return this.isLocalStorageSupported() ? window.localStorage.getItem(e) : this.readCookie(e); } })()), (t.parseFromMap = (e) => { const t = {}; for (const [n, i] of e) t[n] = i; return t; }), (t.parseToMap = (e) => { const t = new Map(); for (const n in e) t.set(+n, e[n]); return t; }); }, function (e) { e.exports = JSON.parse( '{"Sections":[{"Group":"Founders","People":["Natalia Luckyanova","Keith Shepherd"]},{"Group":"Chief Executive Officer","People":["Walter Devins"]},{"Group":"Product Owner","People":["Eve Chang"]},{"Group":"Production","People":["Cody Bradley","--","Jeremy Albert","Brian Glass","Ross LeMere","Bryan Walker"]},{"Group":"Art Director","People":["Marika Orehek"]},{"Group":"Art Project Lead","People":["Lillian Matuszek"]},{"Group":"Art","People":["Danika Bird","Dennis Bruber","Xi Chen","Helen Lee","Riley Ribatto","Ula Wigierska","--","Diego Agasso","Jon Bass","Jason Flack","Fred Lang","Robert Rose","Kiril Tchangov","Justine Warburton Hamer","Jeremiah Washburn","Robert Zamber"]},{"Group":"Design Project Lead","People":["Jeff Shepherd"]},{"Group":"Design Team","People":["Baqir Shah","Josh Sweeney","Josiah Wallace","--","Jason Stone"]},{"Group":"Engineering Technical Director","People":["Tal Arrowood"]},{"Group":"Engineering Project Lead","People":["Josh Wilson"]},{"Group":"Engineering","People":["Ryan George","Joshua Good","Justin Hair","Ian Jensen","Ben Johnson","Bryan Kisby","--","Jessica Agee","Nic Allen","Shayne Guiliano","Brian Lhota","Rob McLaughlin","Jay Nakai","Richard Sandham","Scott Sherman"]},{"Group":"Quality Assurance Manager","People":["Michael Ruegg"]},{"Group":"Quality Assurance","People":["Tony Halstead","Mark Smith","Jake Flint","Lauren Renaux","Kale Keriazes","--","Joshua Taylor"]},{"Group":"Social Media Manager","People":["Brittany Watson"]},{"Group":"Customer Service","People":["Javonda Hunt"]},{"Group":"Lead Data Scientist","People":["Clay Heaton","--","Paul Ruddle II"]},{"Group":"Director of Finance and Human Resources","People":["Cindy Vice"]},{"Group":"HR Manager","People":["Anna Zimmerman"]},{"Group":"Interns","People":["DJ Schilens","--","Chris Collins"]},{"Group":"Music","People":["Cris Velasco","Guy Whitmore"]},{"Group":"Writing","People":["Matt King"]},{"Group":"Special Thanks","People":["Leandro Basallo","Anthony Pecorella"]},{"Group":"Fan Contributions","People":["Sonny Lee Leko","Stevie Ray Ramsey"]},{"Group":"Xansr Team","People":["Simon Banerjee","Nitu Chiring","Shiraz Imam","Vaibhav Kataria","Ankit Kushwah","Pralay Mistri","Swapnil Tamgadge"]}],"Additional":[["Officially Licensed Product of","National Football League Players Inc.","Copyright 2014"]]}' ); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.MonkeyController = void 0); const r = n(62), o = n(40), a = n(156), s = n(29), c = n(139); t.MonkeyController = class { constructor(e) { (this._monkeyState = a.MonkeyState.None), (this._characterMeshFileURL = "assets/characters/demon_monkey/demon_monkey_chaser.glb"), (this.MONKEY_DEFAULT_POSITION = new r.Vector3(0, 0, 20)), (this.DISAPPEAR_FINAL_OFFSET = 6), (this._disappearTime = 2), (this._chaseOffset = 3), (this._tauntOffset = 1), (this._idleOffset = 10), (this._maxStumbleForDeath = 2), (this._chaseDuration = 8), (this._disappearTimeLeft = this._disappearTime), (this._chaseTime = 4), (this._stumbleCounts = 0), (this._isInitialized = !1), (this._enemyOffset = 10), (this._isPowerUpActive = !1), (this._scene = e), (this._monkeyState = a.MonkeyState.None); } goIdle() { this._setState(a.MonkeyState.Idle); } initialize() { this._initMonkey(), s.EventHandler.instance.addListener(s.EventID.OnPowerupStart, () => { (this._isPowerUpActive = !0), this._setState(a.MonkeyState.Idle); }), s.EventHandler.instance.addListener(s.EventID.OnPowerupComplete, () => { this._isPowerUpActive = !1; }), s.EventHandler.instance.addListener(s.EventID.OnPlayerDeath, (e) => { if (this._monkeyState == a.MonkeyState.Chase) { e == a.DeathType.DeathByFall ? this._setState(a.MonkeyState.Idle) : this._setState(a.MonkeyState.Taunt); } }), s.EventHandler.instance.addListener(s.EventID.OnPlayerJumpState, () => { const e = o.GameController.instance.character.params.currentTrackPiece; this.checkForObstacle(e) && a.MonkeyState.Chase == this._monkeyState && this._setState(a.MonkeyState.Jump); }), s.EventHandler.instance.addListener(s.EventID.OnPlayerRunState, () => { this._monkeyState == a.MonkeyState.Jump && this._setState(a.MonkeyState.Chase); }), s.EventHandler.instance.addListener(s.EventID.OnPlayGame, (e) => { e || (s.EventHandler.instance.fireEvent(s.EventID.PlaySFX, c.SoundID.MonkeyRoar), this._setState(a.MonkeyState.Chase)); }), s.EventHandler.instance.addListener(s.EventID.OnPlayerEnteringNewZone, () => { this._setState(a.MonkeyState.Idle); }), s.EventHandler.instance.addListener(s.EventID.OnStumble, () => { if (!o.GameController.instance.tutorial.isEnabled) if ((this._stumbleCounts++, this._stumbleCounts >= this._maxStumbleForDeath)) { this._setState(a.MonkeyState.Taunt); const e = o.GameController.instance.character.player; e.attachToBone(this._handBone, this._monkey), (e.position = r.Vector3.Zero()), (e.position.y -= 1), o.GameController.instance.character.deathByMonkey(); } else this._stumbleCounts > 0 && (s.EventHandler.instance.fireEvent(s.EventID.PlaySFX, c.SoundID.MonkeyRoar), this._setState(a.MonkeyState.Chase)); }); } checkForObstacle(e) { if (e.SelectedDefinition.IsJumpOver || e.SelectedDefinition.IsGenericObstacle || e.SelectedDefinition.IsStumble || e.SelectedDefinition.isObstacle()) return !0; const t = Math.min(1, e.NextTrackPieces.length); for (let n = 0; n < t; n++) { const t = e.NextTrackPieces[n].SelectedDefinition; if (t.IsStumble || t.IsGenericObstacle) return !0; } return !1; } preUpdate() { this._isInitialized && o.GameController.instance.isGameRunning && this._updateForState(); } _updateForState() { const e = this._scene.getEngine().getDeltaTime() / 1e3; switch (this._monkeyState) { case a.MonkeyState.Chase: this._monkey.isEnabled() || this._monkey.setEnabled(!0), (this._chaseTime -= e), this._chaseTime < 0 && ((this._chaseTime = this._chaseDuration), this._setState(a.MonkeyState.Disappearing, !1)), this._updatePosition(); break; case a.MonkeyState.Jump: this._updatePosition(); break; case a.MonkeyState.Disappearing: if (((this._disappearTimeLeft -= e), this._disappearTimeLeft < 0)) this._setState(a.MonkeyState.Idle); else { const e = this._disappearTimeLeft / this._disappearTime; (this._enemyOffset = this.DISAPPEAR_FINAL_OFFSET * Math.abs(1 - e) + e * this._chaseOffset), this._updatePosition(); } } } postUpdate() {} pause() { this._currentAnimation.pause(); } resume() { this._currentAnimation.play(); } reset() { this._monkey.setEnabled(!1), (this._enemyOffset = 2), (this._chaseTime = 4), (this._stumbleCounts = 0); const e = this._playerPosition(); this._monkey.lookAt(e), (this._monkey.position = this.MONKEY_DEFAULT_POSITION), this._setState(a.MonkeyState.Idle); } _updatePosition() { const e = this._playerPosition().clone(); this._monkeyState != a.MonkeyState.Jump && (e.y = o.GameController.instance.character.params.currentPosition.y); const t = this._playerForward(), n = new r.Vector3(this._enemyOffset, 0, this._enemyOffset); (this._monkey.position = e.add(t.multiply(n))), this._monkey.lookAt(e); } _playerForward() { if (null != o.GameController.instance.character.player) { let e = o.GameController.instance.character.player.forward; return null == e && (e = new r.Vector3(0, 0, 0)), e; } return new r.Vector3(0, 0, 0); } _playerPosition() { if (null != o.GameController.instance.character.player) { let e = o.GameController.instance.character.player.position; return null == e && (e = new r.Vector3(0, 0, 0)), e; } return new r.Vector3(0, 0, 0); } _setState(e, t = !0) { switch (((this._previousAnimation = this._currentAnimation), (this._monkeyState = e), this._monkeyState)) { case a.MonkeyState.Disappearing: this._disappearTimeLeft = this._disappearTime; break; case a.MonkeyState.Idle: this._monkey.setEnabled(!1), (this._stumbleCounts = 0), (this._enemyOffset = this._idleOffset), (this._currentAnimation = this._idleAnimation); break; case a.MonkeyState.Jump: this._monkey.setEnabled(!0), (this._currentAnimation = this._jumpAnimation); break; case a.MonkeyState.Chase: this._monkey.setEnabled(!0), (this._currentAnimation = this._runAnimation), (this._enemyOffset = this._chaseOffset); break; case a.MonkeyState.Taunt: this._monkey.setEnabled(!0), (this._enemyOffset = this._tauntOffset), (this._currentAnimation = this._tauntAnimation), this._updatePosition(); } t && this._playAnimation(); } _playAnimation() { let e = !1; null != this._previousAnimation && (this._previousAnimation.setWeightForAllAnimatables(0), this._previousAnimation.stop()), this._currentAnimation.setWeightForAllAnimatables(1), this._monkeyState == a.MonkeyState.Chase && (e = !0), this._currentAnimation.start(e); } _initMonkey() { return i(this, void 0, void 0, function* () { const e = yield r.SceneLoader.ImportMeshAsync(null, this._characterMeshFileURL, void 0, this._scene); e.meshes.forEach((e) => (e.cullingStrategy = r.AbstractMesh.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY)); const t = e.meshes[0]; (t.position = this.MONKEY_DEFAULT_POSITION), t.setDirection(new r.Vector3(0, 0, 1)), (t.scaling.x = 0.9), (t.scaling.y = 0.9), (t.scaling.z = 0.9); const n = e.meshes[1]; n.renderingGroupId = o.ETR2RenderingGroup.CHARACTER; (n.material.unlit = !0), (this._handBone = e.skeletons[0].bones.find((e) => "Bone_L_Hand" == e.name)), (this._monkey = t), this._monkey.setEnabled(!1), this._setupAnimations(e.animationGroups), (this._isInitialized = !0), this._setState(a.MonkeyState.Idle); }); } _setupAnimations(e) { (this._animationGroups = e), (this._idleAnimation = this._animationGroups.find((e) => "Idle01" === e.name)), (this._runAnimation = this._animationGroups.find((e) => "Run01" === e.name)), (this._tauntAnimation = this._animationGroups.find((e) => "Taunt01" === e.name)), (this._jumpAnimation = this._animationGroups.find((e) => "Jump01" === e.name)); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.GameInputContoller = void 0); const i = n(62), r = n(29), o = n(48); t.GameInputContoller = class { constructor(e) { (this._minimumSwipeDistance = 50), (this._minimumSwipeVelocity = 100), (this._minimumAngle = 40), (this._inputsActive = !0), (this.onFirstClick = () => { r.EventHandler.instance.fireEvent(r.EventID.OnFirstUserInput), window.removeEventListener("click", this.onFirstClick); }), (this._scene = e); } initialize() { this._scene.actionManager || (this._scene.actionManager = new i.ActionManager(this._scene)), (this._keydownMap = {}), (this._keyupMap = {}); const e = this; this._scene.actionManager.registerAction( new i.ExecuteCodeAction(i.ActionManager.OnKeyDownTrigger, function (t) { t.sourceEvent.repeat || 0 == this._inputsActive || (e._keydownMap[t.sourceEvent.key] = "keydown" == t.sourceEvent.type); }) ), this._scene.actionManager.registerAction( new i.ExecuteCodeAction(i.ActionManager.OnKeyUpTrigger, function (t) { t.sourceEvent.repeat || 0 == this._inputsActive || (e._keyupMap[t.sourceEvent.key] = "keyup" == t.sourceEvent.type); }) ), this._scene.onPointerObservable.add(this._updateFromMouse.bind(this)), this._attachWindowEvents(), r.EventHandler.instance.addListener(r.EventID.OnStopInputs, () => { this._inputsActive = !1; }), r.EventHandler.instance.addListener(r.EventID.OnStartInputs, () => { this._inputsActive = !0; }); } _attachWindowEvents() { window.addEventListener( "keydown", (e) => { e.preventDefault(), o.GameConfig.canShowInspector && e.shiftKey && e.ctrlKey && e.altKey && (this._scene.debugLayer.isVisible() ? this._scene.debugLayer.hide() : (this._scene.debugLayer.show(), (document.getElementById("scene-explorer-host").style.zIndex = "10"), (document.getElementById("inspector-host").style.zIndex = "10"))); }, { passive: !1 } ), window.addEventListener("click", this.onFirstClick); } preUpdate() { this._updateFromKeyboard(), this._validTouch && (this._startTime += this._scene.deltaTime); } postUpdate() {} pause() { this._inputsActive = !1; } resume() { this._inputsActive = !0; } reset() {} _updateFromKeyboard() { (this._keydownMap.ArrowUp || this._keydownMap.w || this._keydownMap.W) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Jump"), (this._keydownMap.ArrowDown || this._keydownMap.s || this._keydownMap.S) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Slide"), (this._keydownMap.ArrowLeft || this._keydownMap.a || this._keydownMap.A) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Left"), (this._keydownMap.ArrowRight || this._keydownMap.d || this._keydownMap.D) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Right"), (this._keydownMap[" "] || this._keydownMap.Space) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Space"), (this._keydownMap.G || this._keydownMap.g) && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "SwitchCamera"), this._keydownMap.Escape && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Escape"), (this._keydownMap = {}), (this._keyupMap = {}); } _updateFromMouse(e) { switch (e.type) { case i.PointerEventTypes.POINTERDOWN: this._validTouch || ((this._startPointerVector = new i.Vector2(e.event.x, e.event.y)), (this._startTime = 0), (this._validTouch = !0)); break; case i.PointerEventTypes.POINTERUP: if (this._validTouch) { this._endPointerVector = new i.Vector2(e.event.x, e.event.y); const t = this._endPointerVector.subtract(this._startPointerVector), n = Math.sqrt(t.x * t.x + t.y * t.y); if (n / (this._startTime / 1e3) > this._minimumSwipeVelocity && n > this._minimumSwipeDistance) { t.normalize(); let e = i.Vector2.Dot(t, new i.Vector2(1, 0)); if (((e = (360 * Math.acos(e)) / (2 * Math.PI)), e < this._minimumAngle)) r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Right"); else if (180 - e < this._minimumAngle) r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Left"); else { let e = i.Vector2.Dot(t, new i.Vector2(0, 1)); (e = (360 * Math.acos(e)) / (2 * Math.PI)), e < this._minimumAngle ? r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Slide") : 180 - e < this._minimumAngle && r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Jump"); } } this._validTouch = !1; } break; case i.PointerEventTypes.POINTERMOVE: break; case i.PointerEventTypes.POINTERDOUBLETAP: r.EventHandler.instance.fireEvent(r.EventID.OnKeyPress, "Space"); } } }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackController = void 0); const r = n(62), o = n(133), a = n(40), s = n(231), c = n(29), l = n(274), u = n(178), h = n(150), d = n(48), p = n(276); t.TrackController = class { constructor(e) { (this._xCounts = 0), (this._maxPiecesToAddPerUpdate = 2), (this._growDistance = 60), (this._canExtendTrack = !0), (this._tempTrackPieceList = []), (this._toRemoveTrackPieces = []), (this._enabledZones = []), (this._stopRemovalOnDeath = !1), (this.statueAnimationInfos = new Array()), (this._scene = e), (this._trackMaterialProvider = new l.TrackMaterialProvider(e)), (this._trackAssetPool = new p.TrackAssetsPoolManager()); } getFillMeshMaterial() { return this._trackMaterialProvider.waterBridgeMaterial; } set stopRemovalOnDeath(e) { this._stopRemovalOnDeath = e; } initialize() { return i(this, void 0, void 0, function* () { ([this._regionInfo, this._regionPacing, this._regionZoneInfos, this._regionZonePeices] = s.TrackHelper.loadConfigs()), yield this._trackAssetPool.initialize(this._scene, this._regionZoneInfos, this._regionZonePeices, this._trackMaterialProvider), this._loadInitialTrack(); }); } preUpdate() { this._trackMaterialProvider.update(), this._trackAssetPool.update(); } postUpdate() {} pause() {} resume() {} reset() { this._trackAssetPool.resetPool(), (this._tempTrackPieceList = []), (this._toRemoveTrackPieces = []), (this._canExtendTrack = !1), (this._stopRemovalOnDeath = !1), this._loadInitialTrack(); } _loadInitialTrack() { let e; if ( ("done" != a.GameController.instance.gameState.flagsData.tutorialPhaseState && (e = a.GameController.instance.tutorial.enableAndGetSection(this._regionZoneInfos)), null == e && a.GameController.instance.tutorial.needZoneTutorial && a.GameController.instance.tutorial.shouldRestartTutorial) ) { const t = a.GameController.instance.tutorial.enableAndGetSectionZone(void 0); e = null != t ? t.Queue : void 0; } null == e && ((e = this._regionInfo.StartingSection), a.GameController.instance.tutorial.checkZoneTutorials()), this._loadInitialTrackFromSection(e); } _loadInitialTrackFromSection(e) { this._regionPacing.initialize(this._regionZoneInfos), (this._rootTrackPiece = this._createStartingTrackPiece(e.Pieces[0].ID)), this._rootTrackPiece.Queue.Pieces.push(...e.Pieces), this._rootTrackPiece.Queue.Pieces.shift(), (this._toRemoveRootTrackPiece = this._rootTrackPiece), (this._initialTrackPiece = this._rootTrackPiece), s.TrackHelper.createWorldSpline(this._rootTrackPiece, r.Vector3.Zero(), 0, this._scene); d.GameConfig.IS_DEBUG && d.GameConfig.DEFAULT_ZONES.length != d.GameConfig.DEBUG_SELECTED_ZONES.length && d.GameConfig.MAX_START_PIECES > 0 && d.GameConfig.MAX_START_PIECES < this._rootTrackPiece.Queue.Pieces.length && this._rootTrackPiece.Queue.Pieces.splice(d.GameConfig.MAX_START_PIECES, this._rootTrackPiece.Queue.Pieces.length - d.GameConfig.MAX_START_PIECES), this._attachPiecesOverDistance(this._rootTrackPiece, this._growDistance), c.EventHandler.instance.fireEvent(c.EventID.OnTrackRootInit, this._initialTrackPiece); } get initialTrackPiece() { return this._initialTrackPiece; } _findPieceDefinition(e) { let t; for (const [, n] of this._regionZoneInfos) { for (const i of n.Definitions) if (i.ID.isEquals(e)) { t = i; break; } if (null != t) break; } return t; } _createStartingTrackPiece(e) { const t = new o.TrackPiece(), n = this._findPieceDefinition(e), i = n.Variations[0]; return ( (t.trackInfo = this._regionZonePeices.get(e.ZoneID).get(i.PieceName)), (t.assetInfo = this._trackAssetPool.getTrackPiece(e.ZoneID, i.PieceName)), t.assetInfo.rootMesh.setEnabled(!0), (t.assetInfo.rootMesh.position = r.Vector3.Zero()), (t.SelectedDefinition = n), (t.SelectedVariationDefinition = i), d.GameConfig.showPathPoints && s.TrackHelper.drawDebugPathSplines(t, this._scene), this._startTrackPieceOptions(t), t ); } _createTrackPiece(e, t) { const n = new o.TrackPiece(), i = this._findPieceDefinition(e); let a = void 0; if (null != t && t.length > 0) for (const e of i.Variations) e.PieceName == t && (a = e); return ( null == a && (a = i.getVariation()), (n.trackInfo = this._regionZonePeices.get(e.ZoneID).get(a.PieceName)), (n.assetInfo = this._trackAssetPool.getTrackPiece(e.ZoneID, a.PieceName)), n.assetInfo.rootMesh.setEnabled(!0), (n.assetInfo.rootMesh.position = r.Vector3.Zero()), (n.SelectedDefinition = i), (n.SelectedVariationDefinition = a), (n.CurrCoinPlacement = a.CoinPlacement), (n.CurrCanSpawnPowerup = !!a.CanSpawnPowerup), (n.EnterPiece = n.trackInfo.EnterPiece), d.GameConfig.showPathPoints && s.TrackHelper.drawDebugPathSplines(n, this._scene), n ); } getAllZones() { return this._regionZoneInfos; } getZoneInfo(e) { for (const [, t] of this._regionZoneInfos) if (t.ID == e) return t; } get enabledZones() { return this._enabledZones; } _attachPiecesOverDistance(e, t, n = 0, i = 0) { let r, c = e; for (; t > 0; ) { let e, l = new o.NewTrackPieceInfo(), u = !1, h = !1; if (null != c.Queue && c.Queue.Pieces.length > 0) { const i = c, a = c.Queue.Pieces.shift(); if (((e = this._findPieceDefinition(a.ID)), 0 == e.isAnyJunction())) { switch (a.Attach) { case o.TrackPieceAttachType.Normal: let s = 0; ([c, s, r] = this._attachComplexPiece(i, e, a.Variation, n)), (t -= s); break; case o.TrackPieceAttachType.Basic: (c = this._attachPiece(i, e, a.Variation, n)), (t -= c.getEstimatedLength(n)), (r = c); } (c.Queue = i.Queue), (c.Pacing = i.Pacing), null != r && (r.EnterPiece = a.EnterPiece), (h = !0); } else { this._tempTrackPieceList = []; let o = 0; [c, o, r, this._tempTrackPieceList] = this._attachJunction(i, e, a.Variation, n); for (let e = 0; e < this._tempTrackPieceList.length; ++e) { const t = this._tempTrackPieceList[e]; 0 == e ? (t.Queue = i.Queue) : t.Queue.Pieces.push(...i.Queue.Pieces), (t.Pacing = i.Pacing); } (t -= o), (h = !0); } } else null != c.Pacing && (a.GameController.instance.tutorial.isEnabled ? (l = a.GameController.instance.tutorial.selectTrackPiece(c, l)) : ((l = s.TrackHelper.selectPieceComplex(this, c.Pacing, c, l)), a.GameController.instance.tutorial.canStartZoneTutorial(l.Definition) && (l = a.GameController.instance.tutorial.enableAndGetSectionZone(l))), (u = 1 != l.areAllMembersNull()), (h = !1)); if ( (0 == h && 0 == u && (a.GameController.instance.tutorial.isEnabled ? (l = a.GameController.instance.tutorial.selectTrackPiece(c, l)) : ((l = s.TrackHelper.selectPieceComplex(this, this._regionPacing, c, l)), a.GameController.instance.tutorial.canStartZoneTutorial(l.Definition) && (l = a.GameController.instance.tutorial.enableAndGetSectionZone(l)))), null == l) ) break; if (0 == h && null != l.Piece && null == l.Definition && ((e = this._findPieceDefinition(l.Piece.ID)), null != e && 0 == e.isAnyJunction())) { const i = c; (c = this._attachPiece(i, e, l.Piece.Variation, n)), (c.Queue = l.Queue), (c.Pacing = l.Pacing), (c.EnterPiece = l.Piece.EnterPiece), (t -= c.getEstimatedLength(n)), (h = !0); } if (0 == h && null != l.Definition) { if (((e = l.Definition), e.isAnyJunction())) { this._tempTrackPieceList = []; let a = 0; if ((([c, a, r, this._tempTrackPieceList] = this._attachJunction(c, e, void 0, n)), (t -= a) > 0 && (this._maxPiecesToAddPerUpdate, 1))) { for (let e = 0; e < this._tempTrackPieceList.length; ++e) { const n = this._attachPiecesOverDistance(this._tempTrackPieceList[e], t, o.TrackPieceDefinition.MainPathID, i); e == o.TrackPieceDefinition.MainPathID && (c = n); } t = 0; } } else { const i = e.isAnyJunction() ? n : o.TrackPieceDefinition.MainPathID; let a = 0; ([c, a, r] = this._attachComplexPiece(c, e, void 0, i)), (t -= a); } (h = !0), null == c.Pacing && null != l.Pacing && (c.Pacing = l.Pacing), (i += e.PrePieces.length + 1 + e.PostPieces.length), this._maxPiecesToAddPerUpdate; } else if (0 == h) break; } return c; } _attachComplexPiece(e, t, n, i = 0) { let r, a = 0, s = e; if (t.isAnyJunction()) { this._tempTrackPieceList = []; let e = 0; ([s, e, r, this._tempTrackPieceList] = this._attachJunction(s, t, n, i)), (a += e); } else { if (null != t.PrePieces) for (const e of t.PrePieces) { const t = this._findPieceDefinition(e.ID); (s = this._attachPiece(s, t, e.VariationName, i, e)), (a += s.getEstimatedLength(i)); } if (((s = this._attachPiece(s, t, n, i)), (r = s), (a += s.getEstimatedLength(i)), 1 == t.isCompoundStart())) { const e = h.Utils.random(t.CompoundPieceMinMiddleCount, t.CompoundPieceMaxMiddleCount + 1); for (let n = 0; n < e; ++n) { const e = this._findPieceDefinition(t.CompoundPieceMiddleType); (s = this._attachPiece(s, e, void 0, o.TrackPieceDefinition.MainPathID)), (a += s.getEstimatedLength(i)); } const n = this._findPieceDefinition(t.CompoundPieceEndType); (s = this._attachPiece(s, n, void 0, o.TrackPieceDefinition.MainPathID)), (a += s.getEstimatedLength(i)); } if (null != t.PostPieces) for (const e of t.PostPieces) { const t = this._findPieceDefinition(e.ID); (s = this._attachPiece(s, t, e.VariationName, i, e)), (a += s.getEstimatedLength(i)); } } return [s, a, r]; } _attachJunction(e, t, n, i = 0) { let r = e, a = e, s = 0, c = 0, l = 0; const u = []; if (null != t.PrePieces) for (const e of t.PrePieces) { const t = this._findPieceDefinition(e.ID); (r = this._attachPiece(r, t, e.VariationName)), (l += r.getEstimatedLength(i)); } (r = this._attachPiece(r, t, n)), (a = r); const h = r, d = r; s = r.getEstimatedLength(i); const p = r.getNumPaths(); let f = !1; for (let e = 0; e < p; ++e) { r = d; const n = !1; if (0 == n) { let n; null != t.JunctionPostPieces && t.JunctionPostPieces.length > 0 ? (n = e < t.JunctionPostPieces.length ? t.JunctionPostPieces[e].PathPostPieces : t.JunctionPostPieces[0].PathPostPieces) : null != t.PostPieces && (n = t.PostPieces); let a = 0; if (null != n) for (let t = 0; t < n.length; ++t) { const s = n[t], c = this._findPieceDefinition(s.ID), l = 0 == t ? e : o.TrackPieceDefinition.MainPathID; (r = this._attachPiece(r, c, s.VariationName, l, s)), (a += r.getEstimatedLength(i)); } c = c <= 0 ? a : Math.min(c, a); } else { const n = this.getZoneInfo(t.ID.ZoneID).getEndPiece(), i = e; if (null != n) r = this._attachPiece(r, n, void 0, i); else if (null != t.PostPieces && t.PostPieces.length > 0) { const e = t.PostPieces[0], n = this._findPieceDefinition(e.ID); (r = this._attachPiece(r, n, e.VariationName, i, e)), (r.IsDeadEnd = !0); } } 0 == f && 0 == n && ((a = r), (f = !0)), null != h && u.push(r); } return [a, l + s + c, h, u]; } _attachPiece(e, t, n, i = 0, c = o.ExtraPieceDefinition.default) { const l = this._createTrackPiece(t.ID, n); (l.DistanceFromRoot = e.DistanceFromRoot + e.getEstimatedLength(i)), e.setNextTrackPiece(i, l), c.OverrideCoinPlacement && (l.CurrCoinPlacement = c.CoinPlacement), c.OverrideCanSpawnPowerup && (l.CurrCanSpawnPowerup = !!c.CanSpawnPowerup); const h = e.lastPointFromPath(i), d = e.WorldRotationY + e.getSourceLastRotY(i), p = r.Vector3.TransformCoordinates(h, r.Matrix.RotationAxis(r.Axis.Y, (e.WorldRotationY * Math.PI) / 180)), f = e.assetInfo.rootMesh.position.add(p), m = f.subtract(e.assetInfo.rootMesh.position).normalize(); f.subtractInPlace(m.multiplyByFloats(0.01, 0, 0.01)), l.assetInfo.rootMesh.position.addInPlace(f), l.assetInfo.rootMesh.rotateAround(f, r.Axis.Y, (d * Math.PI) / 180), (l.WorldRotationY += d); const g = l.WorldRotationY; (l.WorldRotationY = g > 360 ? g - 360 : g), l.updateStats(e), a.GameController.instance.tutorial.isEnabled && (l.tutorialMilestoneIndex = a.GameController.instance.tutorial.currentMilestoneIndex), s.TrackHelper.createWorldSpline(l, f, d, this._scene); const b = e.PreviousTrackPiece; if (null != b && i == o.TrackPieceDefinition.MainPathID) { b.updateItemDistanceStats(); const t = a.GameController.instance.bonus.addBonusItems(b), n = a.GameController.instance.coins.addCoinsToTrackPiece(b, u.BonusItemProtoData.DefaultCoinMaxHorizOffset); for (let e = 0; e < 5; e++) a.GameController.instance.coins.addCoinToHistory(o.CoinPlacement.None); const i = u.BonusItemProtoData.MaxCoinsPerRun; e.updateCoinStats(n, i), b.updateStatsAfterItemsAdded(t, n, u.BonusItemProtoData.DefaultCoinPlacementHeight); } return this._startTrackPieceOptions(l), l; } _startTrackPieceOptions(e) { const t = e.assetInfo; if ( (null != e.assetInfo.sound && r.Engine.audioEngine.unlocked && ((e.assetInfo.sound.loop = !0), (e.assetInfo.sound.spatialSound = !0), (e.assetInfo.sound.distanceModel = "linear"), (e.assetInfo.sound.maxDistance = 40), e.assetInfo.sound.setPosition(e.assetInfo.rootMesh.position), e.assetInfo.sound.updateOptions({ spatialSound: !0, distanceModel: "linear", maxDistance: 40 }), e.assetInfo.sound.play(0, e.assetInfo.soundOffset, e.assetInfo.soundLength)), !t.name.includes("narrow_jump_over") && !t.name.includes("narrow_stumble")) ) { for (const e of t.particleSystems) e.start(); if (t.animationGroups.length > 0) for (const e of t.animationGroups) e.play(!0); } if (t.name.includes("narrow_jump_over")) t.animationGroups.forEach((e) => { e.play(), e.goToFrame(0), e.pause(); }), this.statueAnimationInfos.push(t); else if (t.name.startsWith("narrow_stumble")) for (const e of t.animationGroups) e.play(), e.goToFrame(0), e.pause(); } _assignTrackPieceAnimation(e) { if (e.assetInfo.animationGroups.length > 0) { let t = 0; if (null != e.PreviousTrackPiece) { let n = new o.TrackPiece(); for (n = e.PreviousTrackPiece; t < e.trackInfo.TriggerDistance && ((t += n.getEstimatedLength()), null != n.PreviousTrackPiece); ) n = n.PreviousTrackPiece; const i = t - e.trackInfo.TriggerDistance; n.triggerAnimations.set(i, e.assetInfo); } } } advanceToNextPieceAndBuild(e) { let t = e.NextTrackPieces[e.selectedPathId]; null == t && (t = e); const n = this._growDistance + e.getEstimatedLength(); this._extendTrack(t, n); const i = e.PreviousTrackPiece; if ((null != i && i != this._toRemoveRootTrackPiece && (this._collectOldTrackPieces(this._toRemoveRootTrackPiece, i), (this._toRemoveRootTrackPiece = i)), this._toRemoveTrackPieces.length > 6 && !this._stopRemovalOnDeath)) { for (const e of this._toRemoveTrackPieces) { const t = this.statueAnimationInfos.indexOf(e.assetInfo, 0); t > -1 && this.statueAnimationInfos.splice(t, 1), a.GameController.instance.coins.removeCoinsFromTrackPiece(e), this._trackAssetPool.removeTrackPiece(e.SelectedDefinition.ID.ZoneID, e.assetInfo), e.dispose(); } this._toRemoveTrackPieces = []; } return (this._rootTrackPiece = t), t; } _extendTrack(e, t) { const n = e.getNextTrackPiecesLength(); if (n < 1) t > 0 && this._attachPiecesOverDistance(e, t, o.TrackPieceDefinition.MainPathID); else { e.SelectedDefinition.IsZipLine ? (t -= e.getEstimatedLength() / 4) : (t -= e.getEstimatedLength()); for (let i = 0; i < n; ++i) { const n = e.NextTrackPieces[i]; this._extendTrack(n, t); } } } _collectOldTrackPieces(e, t) { if (null == e) return; if (((e.PreviousTrackPiece = void 0), e == t)) return; this._toRemoveTrackPieces.push(e); const n = e.getNextTrackPiecesLength(); for (let i = 0; i < n; ++i) this._collectOldTrackPieces(e.NextTrackPieces[i], t), (e.NextTrackPieces[i] = void 0); } updatePacingDistance(e) { if (((this._regionPacing.DistanceTraveled += e), this._regionPacing.NextMilestoneIndex >= this._regionPacing.Milestones.length)) return; const t = this._regionPacing.Milestones[this._regionPacing.NextMilestoneIndex]; t && this._regionPacing.DistanceTraveled > t.Distance && (this._regionPacing.selectNextMilestone(), a.GameController.instance.tutorial.isEnabled); } get trackMaterial() { return this._trackMaterialProvider.trackMaterial; } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackMaterialProvider = void 0); const i = n(62), r = n(40), o = n(237), a = n(275), s = n(19), c = { vertexSource: a.lightmap_opaque_vertex, fragmentSource: a.lightmap_opaque_fragment }; t.TrackMaterialProvider = class { constructor(e) { this._scene = e; } get colliderMaterial() { return ( null != this._colliderMaterial || ((this._colliderMaterial = new i.StandardMaterial("colliderMat", this._scene)), (this._colliderMaterial.emissiveColor = i.Color3.Magenta()), (this._colliderMaterial.diffuseColor = i.Color3.Magenta()), (this._colliderMaterial.backFaceCulling = !0), (this._colliderMaterial.forceDepthWrite = !0), (this._colliderMaterial.alpha = 0.5), (this._colliderMaterial.disableLighting = !0), this._colliderMaterial.freeze()), this._colliderMaterial ); } get trackMaterial() { if (null != this._trackMaterial) return this._trackMaterial; this._trackMaterial = new i.ShaderMaterial("lightmap", this._scene, c, { attributes: ["position", "normal", "uv", "uv2"], uniforms: ["world", "worldView", "worldViewProjection", "view", "projection", "lightmap", "albedo"], needAlphaBlending: !0, needAlphaTesting: !1, }); const e = new i.Texture("assets/textures/machu_lightmaps.jpg", this._scene); e.coordinatesIndex = 1; const t = new i.Texture("assets/textures/machu_master_a.jpg", this._scene); return ( this._trackMaterial.setTexture("lightmap", e), this._trackMaterial.setTexture("albedo", t), this._trackMaterial.setInt("vertexFogEnabled", 0), (this._trackMaterial.backFaceCulling = !0), (this._trackMaterial.forceDepthWrite = !0), r.GameController.instance.shader.addShader(o.EType.TRACK_PIECE, this._trackMaterial), this._trackMaterial ); } get godRayMaterial() { if (null != this._godRayMaterial) return this._godRayMaterial; this._godRayMaterial = new i.StandardMaterial("god_ray", this._scene); const e = new i.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !1); return ( (this._godRayMaterial.diffuseTexture = e), (this._godRayMaterial.diffuseTexture.hasAlpha = !0), (this._godRayMaterial.diffuseColor = new i.Color3(0.01, 0.01, 0.1)), (this._godRayMaterial.emissiveTexture = e), (this._godRayMaterial.emissiveTexture.hasAlpha = !0), (this._godRayMaterial.emissiveColor = new i.Color3(0.01, 0.01, 0)), (this._godRayMaterial.backFaceCulling = !1), (this._godRayMaterial.alpha = 0.9999), (this._godRayMaterial.alphaMode = i.Engine.ALPHA_ADD), (this._godRayMaterial.disableLighting = !0), this._godRayMaterial ); } get waterPanMaterial() { return ( null != this._curveWaterPanMat || ((this._curveWaterPanMatTex1 = new i.Texture("assets/textures/pan_water_b." + s.WebUtils.textureExtension, this._scene)), (this._curveWaterPanMatTex2 = new i.Texture("assets/textures/pan_water_b." + s.WebUtils.textureExtension, this._scene)), (this._curveWaterPanMat = new i.PBRMaterial("water_pan_mat", this._scene)), (this._curveWaterPanMat.albedoTexture = this._curveWaterPanMatTex1), (this._curveWaterPanMat.albedoColor = new i.Color3(0.9, 0.9, 0.9)), (this._curveWaterPanMat.ambientColor = i.Color3.Black()), (this._curveWaterPanMat.emissiveTexture = this._curveWaterPanMatTex2), (this._curveWaterPanMat.emissiveColor = new i.Color3(0.3, 0.3, 0.3)), (this._curveWaterPanMat.unlit = !0)), this._curveWaterPanMat ); } get folliageMaterial() { return ( null != this._foliageMat || ((this._foliageTex = new i.Texture("assets/textures/foliage_transparent." + s.WebUtils.textureExtension, this._scene)), (this._foliageMat = new i.StandardMaterial("foliage_mat", this._scene)), (this._foliageMat.disableLighting = !0), (this._foliageMat.emissiveTexture = this._foliageTex), (this._foliageMat.emissiveColor = i.Color3.White()), (this._foliageMat.emissiveTexture.hasAlpha = !0), (this._foliageMat.diffuseTexture = this._foliageTex), (this._foliageMat.diffuseColor = i.Color3.Gray()), (this._foliageMat.diffuseTexture.hasAlpha = !0)), this._foliageMat ); } get mineExposureShader() { return ( null != this._mineExposureMaterial || ((this._mineExposureMaterial = new i.ShaderMaterial("mineExposure", this._scene, "./assets/shaders/mine_exposure", { attributes: ["position"], uniforms: ["world", "worldView", "worldViewProjection", "view", "projection", "playerPosition"], needAlphaBlending: !0, })), this._mineExposureMaterial.setVector3("color", new i.Vector3(0, 0, 0)), (this._mineExposureMaterial.backFaceCulling = !1), r.GameController.instance.shader.addShader(o.EType.MINE_EXPOSURE, this._mineExposureMaterial)), this._mineExposureMaterial ); } get waterBridgeMaterial() { return ( null != this._curveWaterBridgeMat || ((this._curveWaterBridgeMatTex = new i.Texture("assets/effects/effects_transparent." + s.WebUtils.textureExtension, this._scene)), (this._curveWaterBridgeMat = new i.StandardMaterial("water_pan_bridge_mat", this._scene)), (this._curveWaterBridgeMat.diffuseTexture = this._curveWaterBridgeMatTex), (this._curveWaterBridgeMat.opacityTexture = this._curveWaterBridgeMatTex), (this._curveWaterBridgeMat.emissiveColor = i.Color3.White()), (this._curveWaterBridgeMat.alpha = 0), (this._curveWaterBridgeMat.alphaMode = i.Engine.ALPHA_COMBINE), (this._curveWaterBridgeMat.disableLighting = !0), (this._curveWaterBridgeMat.forceDepthWrite = !0)), this._curveWaterBridgeMat ); } update() { null != this._curveWaterPanMat && ((this._curveWaterPanMatTex1.vOffset += 0.002 * this._scene.deltaTime), (this._curveWaterPanMatTex2.vOffset += 9e-4 * this._scene.deltaTime)); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.mine_exposure_fragment = t.mine_exposure_vertex = t.lightmap_opaque_fragment = t.lightmap_opaque_vertex = void 0), (t.lightmap_opaque_vertex = "\n precision highp float;\n attribute vec3 position;\n attribute vec2 uv;\n attribute vec2 uv2;\n\n uniform mat4 worldViewProjection;\n uniform mat4 worldView;\n uniform bool vertexFogEnabled;\n\n varying vec2 vUV0;\n varying vec2 vUV1;\n varying float fogFactor;\n\n void main(void) {\n if(vertexFogEnabled){\n float start = 47.0;\n float end = 50.0;\n float vDistance = length(worldView * vec4(position,1.0));\n fogFactor = clamp((vDistance - start) / (end - start), 0.0, 1.0);\n }\n vUV0 = uv;\n vUV1 = uv2;\n gl_Position = worldViewProjection * vec4(position, 1.0);\n }\n"), (t.lightmap_opaque_fragment = "\n precision highp float;\n varying vec2 vUV0;\n varying vec2 vUV1;\n varying float fogFactor;\n\n uniform sampler2D lightmap;\n uniform sampler2D albedo;\n uniform bool vertexFogEnabled;\n\n void main(void) {\n float intensity = 1.2;\n vec4 color = texture2D(albedo,vUV0) * intensity;\n color.rgb *= texture2D(lightmap,vUV1).rgb;\n if(vertexFogEnabled)\n color = mix(color, vec4(1.0,1.0,1.0,0.0), fogFactor);\n gl_FragColor = color;\n }\n"), (t.mine_exposure_vertex = "\n precision highp float;\n\n attribute vec3 position;\n \n uniform mat4 world;\n uniform mat4 worldViewProjection;\n \n varying vec3 vPosition;\n \n void main(void) {\n vPosition = vec3(world * vec4(position,1.0));\n gl_Position = worldViewProjection * vec4(position, 1.0);\n }\n"), (t.mine_exposure_fragment = "\n precision highp float;\n\n varying vec3 vPosition;\n\n uniform vec3 playerPosition;\n const float MAX_EXPOSURE_DISTANCE = 15.0;\n\n uniform vec3 color;\n\n void main(void) {\n float alpha = 1.0;\n float d = distance(vPosition,playerPosition);\n if(d <= MAX_EXPOSURE_DISTANCE)\n alpha = d / MAX_EXPOSURE_DISTANCE;\n else \n alpha = 1.0;\n\n gl_FragColor = vec4(0.0,0.0,0.0,alpha);\n }\n"); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TrackAssetsPoolManager = t.TrackPiecePool = t.TrackPiecePack = void 0); const r = n(62), o = n(232), a = n(48), s = n(40), c = n(29); class l {} t.TrackPiecePack = l; class u { constructor() { (this.ready = new Map()), (this.used = new Map()); } addNewToReady() { const e = this.asset.clone(); e.rootMesh.setEnabled(!1), this.ready.set(e.id, e), s.GameController.instance.sound.addSoundsToTrackPiece(e), s.GameController.instance.particle.addEffectsToTrackPiece(e); } } t.TrackPiecePool = u; class h { constructor() { (this._zoneTrackPiecePacks = new Map()), (this._zoneTrackPiecePool = new Map()), (this._hasPending = !1), (this._isLoadingPending = !1), (this._diffuseCounter = 0), (this._pendingIds = []), (this._pendingPieceNames = new Map()), (this._shouldLoadSinglePieces = !0), (this._shouldLoadProgressively = !0); } initialize(e, t, n, r) { return i(this, void 0, void 0, function* () { (this._scene = e), (this._trackMaterialProvider = r), (this._trackMaterial = this._trackMaterialProvider.trackMaterial), (this._waterPanMaterial = this._trackMaterialProvider.waterPanMaterial), (this._waterBridgeMaterial = this._trackMaterialProvider.waterBridgeMaterial), (this._foliageMaterial = r.folliageMaterial), (this._godrayMaterial = r.godRayMaterial), a.GameConfig.IS_DEBUG && (this._colliderMaterial = r.colliderMaterial), (this._regionZoneInfos = t), (this._regionZonePeices = n); for (const [e, n] of t) 0 == e || 0 == this._shouldLoadProgressively ? yield this._loadTrackAssetPack(a.GameConfig.DEFAULT_REGION, n, !1) : (yield this._loadTrackAssetPack(a.GameConfig.DEFAULT_REGION, n, !0), this._pendingIds.push(e)); c.EventHandler.instance.addListener(c.EventID.OnGameLoaded, () => { this._hasPending = !0; }), c.EventHandler.instance.addListener(c.EventID.OnDebugFeatureChange, () => { a.GameConfig.showColliders ? (this._colliderMaterial.alpha = 0.5) : (this._colliderMaterial.alpha = 0); }); }); } update() { 0 == this._hasPending || this._isLoadingPending || this._diffuseCounter++ < 10 || (this._pendingIds.length > 0 ? ((this._isLoadingPending = !0), this._updateAssets()) : (this._hasPending = !1), (this._diffuseCounter = 0)); } _updateAssets() { return i(this, void 0, void 0, function* () { const e = this._regionZoneInfos.get(this._pendingIds[0]); let t = !1; try { t = 0 == this._shouldLoadSinglePieces ? yield this._loadTrackAssetPack(a.GameConfig.DEFAULT_REGION, e, !0) : yield this._loadSingleTrackAsset(a.GameConfig.DEFAULT_REGION, e); } catch (e) {} t && this._pendingIds.shift(), (this._isLoadingPending = !1); }); } _loadTrackAssetPack(e, t, n) { return i(this, void 0, void 0, function* () { let i, r; if (this._zoneTrackPiecePacks.has(t.ID)) i = this._zoneTrackPiecePacks.get(t.ID); else { (i = new l()), (i.id = t.ID), (i.name = t.Name.toLowerCase() + "_pack"); const r = `assets/tracks/${e}/${t.Name}/${i.name}.glb`; if (((0 != n && 0 != this._shouldLoadSinglePieces) || ((i.asset = yield o.AssetUtils.loadAssetAsync("" + i.name, r, this._scene)), this._zoneTrackPiecePacks.set(t.ID, i)), this._shouldLoadSinglePieces)) { const e = this._regionZonePeices.get(t.ID); this._pendingPieceNames.set(t.ID, [...e.keys()]); } if (n) return !1; } this._zoneTrackPiecePool.has(t.ID) ? (r = this._zoneTrackPiecePool.get(t.ID)) : ((r = new Map()), this._zoneTrackPiecePool.set(t.ID, r)); const a = this._cloneTrackAssetPack(i, r, n); return a && s.GameController.instance.track.enabledZones.push(t.Name), a; }); } _loadSingleTrackAsset(e, t) { return i(this, void 0, void 0, function* () { const n = this._pendingPieceNames.get(t.ID); let i; if ((this._zoneTrackPiecePool.has(t.ID) ? (i = this._zoneTrackPiecePool.get(t.ID)) : ((i = new Map()), this._zoneTrackPiecePool.set(t.ID, i)), null != this._pendingPieceName)) { const e = i.get(this._pendingPieceName); if (null != e && e.ready.size < h.MAX_INITIAL_CLONES) return e.addNewToReady(), !1; this._pendingPieceName = void 0; } if (n.length > 0) { const a = n[0], s = `assets/tracks/${e}/${t.Name}/${a}.glb`, c = yield o.AssetUtils.loadAssetAsync("" + a, s, this._scene); c.container.removeAllFromScene(), (c.axisScaling = new r.Vector3(-1, 1, -1)); const l = c.meshes[0]; l.setParent(null), l.setEnabled(!1); for (const e of l.getChildMeshes(!1, (e) => e instanceof r.AbstractMesh)) this._addMaterialsToTrackPiece(e); let h; return i.has(a) ? (h = i.get(a)) : ((h = new u()), (h.id = a)), (h.asset = c), i.set(a, h), (this._pendingPieceName = a), n.shift(), !1; } return (this._pendingPieceName = void 0), s.GameController.instance.track.enabledZones.push(t.Name), !0; }); } _cloneTrackAssetPack(e, t, n) { const i = e.asset.container; let r = !1; if (n) { if (null == e.toCloneNodes) { const t = i.meshes[0]; t.setParent(null), t.setEnabled(!1), (e.toCloneNodes = t.getChildren()[0].getChildren()[0].getChildren()); } const o = e.toCloneNodes[0]; let a; t.has(o.name) ? ((a = t.get(o.name)), a.ready.size < h.MAX_INITIAL_CLONES ? a.addNewToReady() : e.toCloneNodes.shift()) : this._prepareTrackPieceMesh(o, i, t, n), e.toCloneNodes.length <= 0 && (r = !0); } else { const e = i.meshes[0]; e.setParent(null), e.setEnabled(!1); for (const r of e.getChildren()[0].getChildren()[0].getChildren()) { const e = r; this._prepareTrackPieceMesh(e, i, t, n); } r = !0; } return !!r && (i.removeAllFromScene(), (e.toCloneNodes = void 0), !0); } _prepareTrackPieceMesh(e, t, n, i) { e.setParent(null), e.setEnabled(!1); const a = new r.AssetContainer(this._scene); (a.meshes = [e]), (a.animationGroups = []); for (const n of t.animationGroups) (n.name.includes(e.name) || this._isAnimationNameEquals(n.name, e.name)) && a.animationGroups.push(n); const s = new o.AssetInfo(e.id, e.name); (s.meshes = a.meshes), (s.animationGroups = a.animationGroups), (s.skeletons = a.skeletons), (s.container = a), (s.axisScaling = new r.Vector3(-1, -1, -1)), (s.partOfPack = !0); for (const t of e.getChildMeshes(!1, (e) => e instanceof r.AbstractMesh)) this._addMaterialsToTrackPiece(t); let c; if ((n.has(e.name) ? (c = n.get(e.name)) : ((c = new u()), (c.id = e.name)), (c.asset = s), n.set(e.name, c), 0 == i)) for (let e = 0; e < h.MAX_INITIAL_CLONES; e++) c.addNewToReady(); } _isAnimationNameEquals(e, t) { return "narrow_stumble_crash" == e && "narrow_stumble_a" == t; } _addMaterialsToTrackPiece(e) { if (e instanceof r.InstancedMesh) if (((e.sourceMesh.renderingGroupId = s.ETR2RenderingGroup.TRACK_PIECES), e.name.includes("curve_water_a_pan") || e.name.endsWith("_water"))) e.sourceMesh.material = this._waterPanMaterial; else if ("Effect_torch_fire_a" == e.name && a.GameConfig.showColliders) (e.sourceMesh.material = this._colliderMaterial), (e.sourceMesh.alphaIndex = 1); else if (e.name.includes("_fill")) (e.sourceMesh.alphaIndex = 1), (e.sourceMesh.material = this._waterBridgeMaterial); else if (e.name.startsWith("Collider") && a.GameConfig.showColliders) (e.sourceMesh.material = this._colliderMaterial), (e.sourceMesh.alphaIndex = 1); else if (e.name.includes("foliage")) e.sourceMesh.material = this._foliageMaterial; else if (e.name.includes("godray")) e.sourceMesh.material = this._godrayMaterial; else if (e.name.includes("exposure")) e.sourceMesh.material = this._trackMaterialProvider.mineExposureShader; else { if ("Collider_Obstacle" == e.sourceMesh.name) return; e.sourceMesh.material = this._trackMaterial; } else if (e.name.includes("curve_water_a_pan") || e.name.endsWith("_water")) e.material = this._waterPanMaterial; else if (e.name.includes("_fill")) (e.alphaIndex = 1), (e.material = this._waterBridgeMaterial); else if (e.name.startsWith("Collider") && a.GameConfig.showColliders) (e.alphaIndex = 1), (e.material = this._colliderMaterial); else if (e.name.includes("foliage")) e.material = this._foliageMaterial; else if (e.name.includes("godray")) e.material = this._godrayMaterial; else if (e.name.includes("exposure")) e.material = this._trackMaterialProvider.mineExposureShader; else { if ("Collider_Obstacle" == e.name) return; e.material = this._trackMaterial; } } getTrackPiece(e, t) { if (this._zoneTrackPiecePool.has(e)) { const n = this._zoneTrackPiecePool.get(e); if (n.has(t)) { const e = n.get(t); e.ready.size <= 0 && e.addNewToReady(); const i = e.ready.keys().next().value, r = e.ready.get(i); return e.ready.delete(i), e.used.set(i, r), r; } } return null; } removeTrackPiece(e, t) { if (this._zoneTrackPiecePool.has(e)) { const n = this._zoneTrackPiecePool.get(e); if (n.has(t.name)) { const e = n.get(t.name); if (e.used.has(t.id)) { const n = e.used.get(t.id); return this._resetTrackPiece(n), e.used.delete(t.id), e.ready.set(t.id, n), !0; } } } return !1; } resetPool() { for (const [, e] of this._zoneTrackPiecePool) for (const [, t] of e) t.used.forEach((e, n) => { this._resetTrackPiece(e), t.ready.set(n, e); }), t.used.clear(); } _resetTrackPiece(e) { var t; e.rootMesh.setEnabled(!1), (e.rootMesh.position = r.Vector3.Zero()), (e.rootMesh.rotationQuaternion = void 0), (e.rootMesh.rotation = r.Vector3.Zero()), (e.axisScaling = e.partOfPack ? new r.Vector3(1, 1, -1) : e.axisScaling), (e.rootMesh.scaling = e.axisScaling.clone()), null != e.sound && (null === (t = e.sound) || void 0 === t || t.stop()); for (const t of e.animationGroups) t.stop(), t.reset(); for (const t of e.particleSystems) t.stop(), t.reset(); } pausePool() { for (const [, e] of this._zoneTrackPiecePool) for (const [, t] of e) t.used.forEach((e) => { e.animationGroups.length > 0 && e.animationGroups.forEach((e) => { e.pause(); }); }); } resumePool() { for (const [, e] of this._zoneTrackPiecePool) for (const [, t] of e) t.used.forEach((e) => { e.animationGroups.length > 0 && e.animationGroups.forEach((e) => { e.start(!0); }); }); } } (t.TrackAssetsPoolManager = h), (h.MAX_INITIAL_CLONES = 3); }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.SkyboxController = void 0); const r = n(62); t.SkyboxController = class { constructor(e) { (this._assetPath = "assets/environments/Machu_Skybox.glb"), (this._scene = e); } initialize() { this._setupEnvironment(); } preUpdate() {} postUpdate() {} pause() {} resume() {} reset() {} _setupEnvironment() { return i(this, void 0, void 0, function* () { const e = new r.StandardMaterial("skyBox", this._scene); (e.backFaceCulling = !1), (e.disableLighting = !0), (e.specularColor = r.Color3.Black()), (e.specularPower = 0), (e.emissiveColor = r.Color3.White()); const t = yield r.SceneLoader.ImportMeshAsync(null, this._assetPath, void 0, this._scene); (this._skyboxRoot = t.meshes[0]), (this._skyboxMesh = t.meshes[1]), (this._skyboxOriginalPos = this._skyboxMesh.position); const n = this._skyboxMesh.material.albedoTexture; (e.diffuseTexture = n), (this._skyboxRoot.scaling = new r.Vector3(0.1, 0.1, 0.1)), (this._skyboxRoot.renderingGroupId = 0), (this._skyboxRoot.infiniteDistance = !0), (this._skyboxMesh.material = e); }); } get shadowLight() { return this._light; } get shadowGenerator() { return this._shadowGenerator; } get skyboxRoot() { return this._skyboxRoot; } get skyboxMesh() { return this._skyboxMesh; } }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CoinsController = void 0); const r = n(40), o = n(62), a = n(133), s = n(238), c = n(178), l = n(150), u = n(279); class h { constructor(e) { (this._updateTimer = 0), (this._isCheckingCollision = !1), (this._currentCoinIndex = 0), (this._currentCoins = new Map()), (this._currCoinHistoryIdx = -1), (this._coinHistory = []), (this._scene = e); } initialize() { return i(this, void 0, void 0, function* () { this._coinsMaterialProvider = new s.CoinsMaterialProvider(this._scene); const e = yield o.SceneLoader.ImportMeshAsync(null, "assets/objects/coins/default_coin_gold.glb", null, this._scene); e.meshes.forEach((e) => { e.setEnabled(!1); }), (this._defaultCoin = e.meshes[1]), (this._defaultCoin.renderingGroupId = r.ETR2RenderingGroup.PICK_UPS), this._defaultCoin.setParent(null), (this._defaultCoin.material = this._coinsMaterialProvider.defaultCoinMaterial); for (let e = 0; e < h.MAX_COINS_POOL; e++) { const t = this._defaultCoin.createInstance("coin" + e); t.setEnabled(!1), this._currentCoins.set(e, t), (t.alwaysSelectAsActiveMesh = !1); } this._coinAnimator = new u.CoinsAnimator(this._defaultCoin.clone()); }); } preUpdate() { if (((this._updateTimer += this._scene.deltaTime), this._updateTimer > 60)) { this._updateTimer = 0; for (const [, e] of this._currentCoins) e.rotate(o.Axis.Y, -Math.PI / 10); } this._coinAnimator.update(this._scene.getEngine().getDeltaTime() / 1e3); } pause() {} resume() {} postUpdate() {} reset() { for (const [, e] of this._currentCoins) e.setEnabled(!1); (this._coinHistory = []), (this._isCheckingCollision = !1), this._coinAnimator.reset(); } addCoinsToTrackPiece(e, t) { const n = null != e.EnterPiece && !!e.EnterPiece.ForceCoinsPlacementOnTrackPiece, i = c.BonusItemProtoData.AllowCoins || n; null != e.EnterPiece && e.EnterPiece.ForceCoinsPlacementOnTrackPiece && e.EnterPiece.CoinPlacementLocation != a.CoinPlacement.Any && (e.CurrCoinPlacement = e.EnterPiece.CoinPlacementLocation); const s = e.trackPaths[a.TrackPieceDefinition.MainPathID], l = !!e.SelectedDefinition.IsZipLine, u = r.GameController.instance.track.getZoneInfo(e.SelectedDefinition.ID.ZoneID), d = 0 == (!!u.CoinSettings.UseTrackDefinitonsForAllowingCoins || !1) && (e.SelectedDefinition.isMandatoryTurn() || !!e.SelectedDefinition.IsStumble || !!e.SelectedDefinition.IsJumpOver); if ( null == s || s.length < 2 || (e.DistanceSinceLastCoinRun < c.BonusItemProtoData.MinDistanceBetweenCoinRuns && 0 == l && 0 == n) || d || e.CurrCoinPlacement == a.CoinPlacement.None || e.PlacedBonusItemCategory != a.BonusItemCategory.None || 0 == i ) return !1; let p = !1, f = e.CurrCoinPlacement, m = !1; if ((([m, p, f] = this._chooseCoinPlacementForPiece(u, e)), 0 == m)) return !1; e.LastCoinPlacement = f; let g = t, b = e.LastCoinPlacementHeight, _ = !1; l ? ((b = 3.2), (g = 0.8)) : (u.CoinSettings.HeightAboveGround > 0 && (b = u.CoinSettings.HeightAboveGround), u.CoinSettings.MaxHorizontalOffset > 0 && (g = u.CoinSettings.MaxHorizontalOffset)), (e.SelectedDefinition.IsJumpOver || e.SelectedDefinition.IsStumble) && ((_ = !0), (b = c.BonusItemProtoData.ArcMaxHeight)); let v = 0, y = s.length - 1; if (1 == l) { const e = 6; (v = 8), (y = s.length - e), y < v && (y = v); } let C = 0, P = 0, x = 0.5, T = o.Vector3.Zero(), S = o.Vector3.Zero(), O = new o.Vector3(0, 0, 0), E = !0, M = 0, A = !1, I = 0; for (let t = v; t < y; t++) if (((T = s[t + 1].subtract(s[t])), (P = T.length()), (T = new o.Vector3(T.x / P, T.y / P, T.z / P)), C + P < x)) C += P; else { for (S = o.Vector3.Cross(o.Vector3.Up(), T); x < C + P; ) { let i = 0; if (1 == p && e.PreviousTrackPiece.LastCoinPlacement != e.LastCoinPlacement) switch (e.PreviousTrackPiece.LastCoinPlacement) { case a.CoinPlacement.Left: i = -0.5; break; case a.CoinPlacement.Right: i = 0.5; break; case a.CoinPlacement.Center: i = e.LastCoinPlacement == a.CoinPlacement.Left ? -0.5 : 0.5; } else switch (f) { case a.CoinPlacement.Left: i = -1; break; case a.CoinPlacement.Right: i = 1; } p = !1; const r = x - C; O = T.multiplyByFloats(r, r, r); const u = i * g; (O = O.add(S.multiplyByFloats(u, u, u))), (O = O.add(s[t])), 1 == _ ? (1 == E && ((M = O.y), (E = !1)), (O.y = M + b)) : (O.y += b); const d = this._currentCoins.get(this._currentCoinIndex); if ( ((d.position = O), d.rotate(o.Axis.Y, I), d.setEnabled(!0), (I += Math.PI / 10), this.addCoinToHistory(f), (x += 1), e.coinsList.push(this._currentCoinIndex), this._currentCoinIndex++, this._currentCoinIndex >= h.MAX_COINS_POOL && (this._currentCoinIndex = 0), e.CoinRunCoinCount++, e.CoinRunCoinCount >= c.BonusItemProtoData.MaxCoinsPerRun && 0 == l && 0 == n) ) break; } if (e.CoinRunCoinCount >= c.BonusItemProtoData.MaxCoinsPerRun && 0 == l && 0 == n) { (e.DistanceSinceLastCoinRun = 0), (A = !0); break; } C += P; } return 0 == A && l && e.CoinRunCoinCount >= c.BonusItemProtoData.MaxCoinsPerRun && (e.DistanceSinceLastCoinRun = 0), !0; } _chooseCoinPlacementForPiece(e, t) { const n = !!e.CoinSettings.SmartPlacement || !1; let i = t.CurrCoinPlacement, r = !1; if (1 == n) if (t.CoinRunCoinCount > 0) { if (t.LastCoinPlacement != i) if (t.LastCoinPlacement == a.CoinPlacement.Left) switch (i) { case a.CoinPlacement.Any: case a.CoinPlacement.LeftOrCenter: case a.CoinPlacement.LeftOrRight: i = a.CoinPlacement.Left; break; case a.CoinPlacement.Center: case a.CoinPlacement.CenterOrRight: (i = a.CoinPlacement.Center), (r = !0); break; default: return [!1, r, i]; } else if (t.LastCoinPlacement == a.CoinPlacement.Center) switch (i) { case a.CoinPlacement.Any: case a.CoinPlacement.CenterOrRight: case a.CoinPlacement.LeftOrCenter: i = a.CoinPlacement.Center; break; case a.CoinPlacement.Left: (i = a.CoinPlacement.Left), (r = !0); break; case a.CoinPlacement.Right: (i = a.CoinPlacement.Right), (r = !0); break; case a.CoinPlacement.LeftOrRight: (i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Right), (r = !0); break; default: return [!1, r, i]; } else if (t.LastCoinPlacement == a.CoinPlacement.Right) switch (i) { case a.CoinPlacement.Any: case a.CoinPlacement.CenterOrRight: case a.CoinPlacement.LeftOrRight: i = a.CoinPlacement.Right; break; case a.CoinPlacement.Center: case a.CoinPlacement.LeftOrCenter: (i = a.CoinPlacement.Center), (r = !0); break; default: return [!1, r, i]; } if (1 == r && 0 == this._canPlaceCoinBasedOnHistory(i)) return [!1, r, i]; } else switch (i) { case a.CoinPlacement.Left: case a.CoinPlacement.Center: case a.CoinPlacement.Right: break; case a.CoinPlacement.LeftOrCenter: i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Center; break; case a.CoinPlacement.LeftOrRight: i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Right; break; case a.CoinPlacement.CenterOrRight: i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Center : a.CoinPlacement.Right; break; case a.CoinPlacement.Any: switch (l.Utils.random(0, 3)) { case 0: i = a.CoinPlacement.Left; break; case 1: i = a.CoinPlacement.Center; break; case 2: i = a.CoinPlacement.Right; } } else { if (t.CoinRunCoinCount > 0) i = t.LastCoinPlacement; else if (t.SelectedDefinition.IsLedgeLeft) i = a.CoinPlacement.Left; else if (t.SelectedDefinition.IsLedgeRight) i = a.CoinPlacement.Right; else if (t.SelectedDefinition.IsLedgeCenter) i = a.CoinPlacement.Center; else if (e.Gameplay == a.TRGameRunnerGameplay.Ride) i = 0 == l.Utils.random(0, 2) ? a.CoinPlacement.Left : a.CoinPlacement.Right; else switch (l.Utils.random(0, 3)) { case 0: i = a.CoinPlacement.Left; break; case 1: i = a.CoinPlacement.Center; break; case 2: i = a.CoinPlacement.Right; } if ( (t.SelectedDefinition.IsLedgeLeft && i != a.CoinPlacement.Left) || (t.SelectedDefinition.IsLedgeRight && i != a.CoinPlacement.Right) || (t.SelectedDefinition.IsLedgeCenter && i != a.CoinPlacement.Center) || (e.Gameplay == a.TRGameRunnerGameplay.Ride && i == a.CoinPlacement.Center) ) return [!1, r, i]; } return [!0, r, i]; } _canPlaceCoinBasedOnHistory(e) { if (this._coinHistory.length > 0) { const t = this._currCoinHistoryIdx > 0 ? this._currCoinHistoryIdx - 1 : this._coinHistory.length - 1; if (this._coinHistory[t] == e) return !0; { let n = 0, i = t; for (; i != this._currCoinHistoryIdx && this._coinHistory[i] != e; ) n++, (i = i > 0 ? i - 1 : this._coinHistory.length - 1); return n >= c.BonusItemProtoData.MinCoinsToRepeatPlacement; } } return !0; } addCoinToHistory(e) { null != this._coinHistory && (this._currCoinHistoryIdx++, this._currCoinHistoryIdx >= c.BonusItemProtoData.MaxCoinHistorySize && (this._currCoinHistoryIdx = 0), this._currCoinHistoryIdx >= this._coinHistory.length ? this._coinHistory.push(e) : (this._coinHistory[this._currCoinHistoryIdx] = e)); } checkCoinCollision(e, t, n, r) { return i(this, void 0, void 0, function* () { if (this._isCheckingCollision) return; const i = this._scene.getEngine().getDeltaTime() / 1e3; r ? this._coinAnimator.processMagnetCoinCollection(this._currentCoins, e, n, i) : e.coinsList.length > 0 ? this._coinAnimator.processNormalCoinCollection(this._currentCoins, e, t) : this._coinAnimator.resetSoundPitch(), (this._isCheckingCollision = !1); }); } removeCoinsFromTrackPiece(e) { e.coinsList.length > 0 && e.coinsList.forEach((e) => { this._currentCoins.get(e).setEnabled(!1); }); } } (t.CoinsController = h), (h.MAX_COINS_POOL = 300); }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CoinsAnimator = void 0); const i = n(40), r = n(62), o = n(52); t.CoinsAnimator = class { constructor(e) { (this._magnetCoins = []), (this._poolIndex = 0), (this.POOL_SIZE = 100), (this._animCoins = new Array()), (this._directions = new Array(this.POOL_SIZE)), (this._animStates = new Array(this.POOL_SIZE)), (this._currCoinPitchMultiplier = 1), (this._currCoinPitch = 1), (this._constZ = 12), (this._barPosition = new r.Vector3(-12, 0, 0)), (this._masterCoinMesh = e), (this._masterCoinMesh = this._masterCoinMesh.makeGeometryUnique()), this._masterCoinMesh.setEnabled(!1), this._masterCoinMesh.setParent(null), (this._masterCoinMesh.renderingGroupId = 3); for (let e = 0; e < this.POOL_SIZE; e++) { const t = this._masterCoinMesh.createInstance("animCoin#" + e); this._animCoins.push(t), (this._animStates[e] = !1), t.setEnabled(!1), (t.position = this._barPosition); } this._speed = 10; } reset() { (this._magnetCoins = []), (this._currCoinPitch = 1), (this._currCoinPitchMultiplier = 1); } isCoinReached(e, t) { const n = new r.Vector2(e.position.x, e.position.y), i = new r.Vector2(this._barPosition.x, this._barPosition.y); return r.Vector2.DistanceSquared(n, i) < t * t; } _addNormalCoin(e) { const t = i.GameController.instance.camera.camera.getViewMatrix().clone(), n = this._animCoins[this._poolIndex]; n.setEnabled(!0), (n.position = e.position.clone()), (n.rotation = e.rotation.clone()), (n.rotationQuaternion = e.rotationQuaternion.clone()), (n.position = r.Vector3.TransformCoordinates(n.position, t)), (n.position.z = this._constZ), (n.parent = i.GameController.instance.camera.camera), (this._directions[this._poolIndex] = this._barPosition.subtract(n.position)), (this._directions[this._poolIndex].z = 0), this._directions[this._poolIndex].normalize(), (this._animStates[this._poolIndex] = !0), (this._poolIndex = ++this._poolIndex % this.POOL_SIZE); } update(e) { const t = this; this._animCoins.forEach(function (n, r) { t._animStates[r] && (t._moveTowardsDest(n, t._directions[r], e), t.isCoinReached(n, 1) && (o.gameState.updateCoins(i.GameController.instance.character.CurrentMovementState), (t._animStates[r] = !1), (n.position = t._barPosition), n.setEnabled(!1))); }); } _moveTowardsDest(e, t, n) { (e.position = e.position.add(t.multiplyByFloats(n, n, 0).multiplyByFloats(this._speed, this._speed, 0))), (e.position.z = this._constZ); } processNormalCoinCollection(e, t, n) { const i = 1 == t.SelectedDefinition.IsMine, r = n.getAbsolutePosition(); for (let n = t.coinsList.length - 1; n >= 0; n--) { const o = e.get(t.coinsList[n]); this.playerCoinCollision(r.clone(), o.position, i) && (this._addNormalCoin(o), o.setEnabled(!1), this._fireEventsForCollectAndSound(), t.coinsList.splice(n, 1)); } } playerCoinCollision(e, t, n) { let i = 0.4; const r = e.subtract(t).lengthSquared() <= i * i; (e.y += n ? 0.4 : 0.7), (i += n ? 0.5 : 0); const o = e.subtract(t).lengthSquared() <= i * i; return r || o; } _fireEventsForCollectAndSound() { i.GameController.instance.sound.playCoinCollectedSFX(this._currCoinPitch), (this._currCoinPitch += 0.01 * this._currCoinPitchMultiplier), (this._currCoinPitchMultiplier += 0.4), this._currCoinPitch > 4 && ((this._currCoinPitch = 1), (this._currCoinPitchMultiplier = 1)); } resetSoundPitch() { (this._currCoinPitch = 1), (this._currCoinPitchMultiplier = 1); } processMagnetCoinCollection(e, t, n, i) { const r = n.position, o = []; null != t.PreviousTrackPiece && t.PreviousTrackPiece.coinsList.length > 0 && o.push(t.PreviousTrackPiece), t.coinsList.length > 0 && o.push(t), null != t.NextTrackPieces[0] && t.NextTrackPieces[0].coinsList.length > 0 && o.push(t.NextTrackPieces[0]), null != t.NextTrackPieces[1] && t.NextTrackPieces[1].coinsList.length > 0 && o.push(t.NextTrackPieces[1]); for (const t of o) { for (let n = t.coinsList.length - 1; n >= 0; n--) { const i = e.get(t.coinsList[n]); r.subtract(i.position).length() <= 5 && (this._magnetCoins.push(t.coinsList[n]), t.coinsList.splice(n, 1)); } } for (let t = this._magnetCoins.length - 1; t >= 0; t--) { const n = e.get(this._magnetCoins[t]); let o = r.subtract(n.position); const a = o.length(), s = 1 / a; (o = o.multiplyByFloats(s, s, s)), (n.position = n.position.add(o.multiplyByFloats(i, i, i).multiplyByFloats(this._speed, this._speed, this._speed))), a <= 1 && (n.setEnabled(!1), this._fireEventsForCollectAndSound(), this._addNormalCoin(n), this._magnetCoins.splice(t, 1)); } } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CameraController = t.CameraShake = void 0); const i = n(40), r = n(62), o = n(48), a = n(29), s = n(156), c = n(133); class l { set(e, t) { (this._duration = t), (this._magnitude = e), (this._damperRate = e / t); } reset() { (this._duration = 0), (this._damperRate = 0), (this._magnitude = 0); } } t.CameraShake = l; t.CameraController = class { constructor(e) { (this._defaultCameraRotationOffset = 0), (this._defaultCameraFollowDistance = 4), (this._defaultHeightOffset = 3.5), (this._defaultCameraAcceleration = 0.05), (this._boostCameraAcceleration = 0.1), (this._defaultMaxCameraSpeed = 20), (this._defaultCameraFOV = 0.7), (this._defaultCameraRotationOffsetX = 15), (this.INIT_CAMERA_POSITION = new r.Vector3(0, 4.79, -8.48)), (this.INIT_CAMERA_ROTATION = new r.Vector3(6.77, 0, 0)), (this._isFlyEndOver = !1), (this._noCameraAnims = !1), (this._scene = e), (this._characterController = i.GameController.instance.character); } initialize() { (this._noCameraAnims = !1), this._noCameraAnims ? ((this._characterCamera = new r.FreeCamera("New Character Camera", new r.Vector3(1, 4, -5), this._scene)), a.EventHandler.instance.fireEvent(a.EventID.OnCameraFlyEnd)) : ((this._characterCamera = new r.FreeCamera("New Character Camera", new r.Vector3(42, 54, -34), this._scene)), (this._characterCamera.rotation = this.ToRadians(new r.Vector3(41, -53, -7)))), (this._shakeSetting = new l()), this._setCurrentCameraSetting(), this._shakeSetting.reset(), (this._activeCamera = this._scene.activeCamera), this._setupChestCamera(), this._setupFreeCamera(), this._setupDebugCamera(), a.EventHandler.instance.addListener(a.EventID.OnKeyPress, this._switchCamera.bind(this)), a.EventHandler.instance.addListener(a.EventID.OnEnablingChestUI, () => { this._scene.activeCamera = this._chestCamera; }), a.EventHandler.instance.addListener(a.EventID.OnDisablingChestUI, () => { this.reset(); }), a.EventHandler.instance.addListener(a.EventID.OnPowerupStart, (e) => { e == c.BonusItemType.Boost && (this._cameraAcceleration = this._boostCameraAcceleration); }), a.EventHandler.instance.addListener(a.EventID.OnPowerupComplete, (e) => { e == c.BonusItemType.Boost && (this._cameraAcceleration = this._defaultCameraAcceleration); }), a.EventHandler.instance.addListener(a.EventID.OnPlayGame, (e) => { (this._isFlyEndOver = !0), this._noCameraAnims || i.GameController.instance.tutorial.shouldRestartTutorial || e || ((this._cameraIntroAnim = this._scene.beginDirectAnimation(this._freeCamera, [this._cameraIntroPositionAnimation], 0, 199, !1, 1, () => { this._cameraIntroAnim.stop("IntroPosition"), (this._characterCamera.position = this._freeCamera.position), (this._scene.activeCamera = this._characterCamera), a.EventHandler.instance.fireEvent(a.EventID.OnCameraIntroEnd); })), (this._cameraIntroAnim.disposeOnEnd = !0)); }), a.EventHandler.instance.addListener(a.EventID.OnCameraFlySkip, () => { this._cameraFlyAnim.goToFrame(450); }); } _setupFreeCamera() { (this._freeCamera = new r.FreeCamera("FreeCamera", new r.Vector3(42, 54, -34), this._scene)), (this._freeCamera.rotation = new r.Vector3(r.Tools.ToRadians(41), r.Tools.ToRadians(-53), r.Tools.ToRadians(-7))), (this._scene.activeCamera = this._freeCamera), this._noCameraAnims || this._cameraAnimation(); } _setupDebugCamera() { (this._debugCamera = new r.FreeCamera("DebugCamera", r.Vector3.Zero(), this._scene)), this._debugCamera.attachControl(this._scene.getEngine().getRenderingCanvas(), !1); } _setupChestCamera() { (this._chestCamera = new r.FreeCamera("ChestCamera", r.Vector3.Zero(), this._scene)), (this._chestCamera.position = this.INIT_CAMERA_POSITION), (this._chestCamera.rotation = this.ToRadians(this.INIT_CAMERA_ROTATION)), (this._chestCamera.layerMask = 3); } _switchToChestCamera() { this._scene.activeCamera = this._chestCamera; } _switchBackToActiveCamera() { this._scene.activeCamera = this._activeCamera; } _switchCamera(e) { o.GameConfig.canSwitchCamera && "SwitchCamera" == e && (this._activeCamera == this._characterCamera ? ((this._debugCamera.position = this._characterCamera.position.clone()), (this._scene.activeCamera = this._debugCamera), i.GameController.instance.isGameRunning && a.EventHandler.instance.fireEvent(a.EventID.OnPauseGame), a.EventHandler.instance.fireEvent(a.EventID.OnDebugCameraStateChange, !0)) : ((this._scene.activeCamera = this._characterCamera), a.EventHandler.instance.fireEvent(a.EventID.OnDebugCameraStateChange, !1)), (this._activeCamera = this._scene.activeCamera)); } _cameraAnimation() { this._cameraFlyInPosAnimation = new r.Animation("FlyInPosition", "position", 60, r.Animation.ANIMATIONTYPE_VECTOR3, r.Animation.ANIMATIONLOOPMODE_CYCLE); const e = []; e.push({ frame: 0, value: new r.Vector3(31.686, 38.022, -18.004) }), e.push({ frame: 71, value: new r.Vector3(28.236, 34.256, -17.206) }), e.push({ frame: 450, value: new r.Vector3(0, 4.79, -8.48) }), this._cameraFlyInPosAnimation.setKeys(e), this._freeCamera.animations.push(this._cameraFlyInPosAnimation), (this._cameraFlyInRotationAnimation = new r.Animation("FlyInRotation", "rotation", 60, r.Animation.ANIMATIONTYPE_VECTOR3, r.Animation.ANIMATIONLOOPMODE_CYCLE)); const t = []; let n = this.ToRadians(new r.Vector3(40.993, -53.712, -6.714)); t.push({ frame: 0, value: n }), (n = this.ToRadians(new r.Vector3(39.598, -49.786, -6.341))), t.push({ frame: 71, value: n }), (n = this.ToRadians(new r.Vector3(6.77, 0, 0))), t.push({ frame: 450, value: n }), this._cameraFlyInRotationAnimation.setKeys(t), this._freeCamera.animations.push(this._cameraFlyInRotationAnimation), (this._cameraFlyAnim = this._scene.beginDirectAnimation(this._freeCamera, [this._cameraFlyInRotationAnimation, this._cameraFlyInPosAnimation], 0, 450, !1, 1, () => { a.EventHandler.instance.fireEvent(a.EventID.OnCameraFlyEnd), this._cameraFlyAnim.stop("FlyInRotation"); })), (this._cameraFlyAnim.disposeOnEnd = !0), (this._cameraIntroPositionAnimation = new r.Animation("IntroPosition", "position", 65, r.Animation.ANIMATIONTYPE_VECTOR3, r.Animation.ANIMATIONLOOPMODE_CYCLE)); const i = []; i.push({ frame: 0, value: new r.Vector3(0, 4.79, -8.48) }), i.push({ frame: 40, value: new r.Vector3(1.9156, 4.9015, -7.1546) }), i.push({ frame: 57, value: new r.Vector3(3.43, 4.9817, -6.1363) }), i.push({ frame: 127, value: new r.Vector3(6.3913, 5.0324, -7.8316) }), i.push({ frame: 136, value: new r.Vector3(6.1818, 4.944, -8.7518) }), i.push({ frame: 153, value: new r.Vector3(4.7875, 4.6546, -10.936) }), i.push({ frame: 199, value: new r.Vector3(0, 3.986, -19.5) }), this._cameraIntroPositionAnimation.setKeys(i), this._freeCamera.animations.push(this._cameraIntroPositionAnimation); } ToRadians(e) { return new r.Vector3(r.Tools.ToRadians(e.x), r.Tools.ToRadians(e.y), r.Tools.ToRadians(e.z)); } preUpdate() {} postUpdate() { this._isFlyEndOver && this._updateCamera(); } pause() { this._cameraIntroAnim.pause(); } resume() { this._cameraIntroAnim.restart(); } reset() { (this._isFlyEndOver = !1), (this._scene.activeCamera = this._freeCamera), (this._activeCamera = this._activeCamera), (this._cameraRotationOffset = this._defaultCameraRotationOffset), (this._cameraFollowDistance = this._defaultCameraFollowDistance), (this._cameraHeightOffset = this._defaultHeightOffset), (this._cameraAcceleration = this._defaultCameraAcceleration), (this._maxCameraSpeed = this._defaultMaxCameraSpeed), (this._currentRotationOffsetX = this._defaultCameraRotationOffsetX), (this._isCameraShaking = !1), this._shakeSetting.reset(), (this._cameraShakeTimer = 0), (this._characterCamera.maxZ = 50), this._noCameraAnims || ((this._freeCamera.position = this.INIT_CAMERA_POSITION), (this._freeCamera.rotation = this.ToRadians(this.INIT_CAMERA_ROTATION))), i.GameController.instance.tutorial.shouldRestartTutorial && ((this._scene.activeCamera = this._characterCamera), (this._activeCamera = this._scene.activeCamera)); } updateForResurrection(e) { (this._player = e), this._characterCamera.setTarget(this._player.position), (this._characterCamera.position = e.position), (this._scene.activeCamera = this._characterCamera); } setTarget(e) { (this._player = e), this._setCurrentCameraSetting(); } shake(e, t) { t > 0 && e > 0 && (this._shakeSetting.set(e, t), (this._isCameraShaking = !0), (this._cameraShakeTimer = 0)); } _setCurrentCameraSetting() { (this._cameraRotationOffset = this._defaultCameraRotationOffset), (this._cameraHeightOffset = this._defaultHeightOffset), (this._maxCameraSpeed = this._defaultMaxCameraSpeed), (this._cameraFollowDistance = this._defaultCameraFollowDistance), (this._cameraAcceleration = this._defaultCameraAcceleration), (this._characterCamera.fov = this._defaultCameraFOV), (this._currentRotationOffsetX = this._defaultCameraRotationOffsetX), (this._characterCamera.maxZ = 50); } _updateCamera() { if (null == this._player || this._characterController.CurrentMovementState == s.MovementState.Death) return; let e; if ( (this._characterController.isOnZipline ? (this._cameraHeightOffset = 2.5) : this._characterController.CurrentMovementState == s.MovementState.WaterSliding ? (this._cameraHeightOffset = 3) : (this._cameraHeightOffset = this._defaultHeightOffset), this._player.rotationQuaternion) ) { const t = new r.Matrix(); this._player.rotationQuaternion.toRotationMatrix(t), (e = Math.atan2(t.m[8], t.m[10])); } else e = this._player.rotation.y; const t = r.Tools.ToRadians(this._cameraRotationOffset) + e, n = this._player.getAbsolutePosition(), i = n.x + Math.sin(t) * this._cameraFollowDistance, o = n.z + Math.cos(t) * this._cameraFollowDistance, a = i - this._characterCamera.position.x, c = this._characterController.currentPosition.y + this._cameraHeightOffset - this._characterCamera.position.y, l = o - this._characterCamera.position.z; let u = a * this._cameraAcceleration * 2, h = c * this._cameraAcceleration, d = l * this._cameraAcceleration * 2; if ( ((u > this._maxCameraSpeed || u < -this._maxCameraSpeed) && (u = u < 1 ? -this._maxCameraSpeed : this._maxCameraSpeed), (h > this._maxCameraSpeed || h < -this._maxCameraSpeed) && (h = h < 1 ? -this._maxCameraSpeed : this._maxCameraSpeed), (d > this._maxCameraSpeed || d < -this._maxCameraSpeed) && (d = d < 1 ? -this._maxCameraSpeed : this._maxCameraSpeed), (this._characterCamera.position = new r.Vector3(this._characterCamera.position.x + u, this._characterCamera.position.y + h, this._characterCamera.position.z + d)), this._characterCamera.setTarget(n), this._freeCamera.setTarget(n), (this._characterCamera.rotation = new r.Vector3(r.Tools.ToRadians(this._currentRotationOffsetX), this._characterCamera.rotation.y, 0)), this._isCameraShaking) ) if ( ((this._cameraShakeTimer += this._scene.deltaTime / 1e3), (this._shakeSetting._magnitude -= (this._scene.deltaTime / 1e3) * this._shakeSetting._damperRate), this._shakeSetting._magnitude <= 0 || this._cameraShakeTimer > this._shakeSetting._duration) ) this._isCameraShaking = !1; else { const e = Math.sin(35 * this._cameraShakeTimer) * this._shakeSetting._magnitude, t = Math.sin(55 * this._cameraShakeTimer) * this._shakeSetting._magnitude; (this._characterCamera.position = this._characterCamera.position.add(r.Vector3.Right().multiplyByFloats(e, e, e))), (this._characterCamera.position = this._characterCamera.position.add(r.Vector3.Up().multiplyByFloats(t, t, t))); } } get camera() { return this._characterCamera; } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.ParticleController = void 0); const i = n(62), r = n(282); t.ParticleController = class { constructor(e) { (this._particlePool = []), (this._scene = e); } initialize() { (this._crashFireSmokeParticle = r.ParticleProvider.getCrashFireSmokeParticle(this._scene)), (this._waterSplashParticle = r.ParticleProvider.getWaterSplashParticle(this._scene)), (this._playerDuckWaterSplashParticle = r.ParticleProvider.getPlayerDuckWaterSplashParticle(this._scene)), (this._cauldronFireParticle = r.ParticleProvider.getCauldronFireParticle(this._scene)), (this._torchFireParticle = r.ParticleProvider.getTourchFireParticle(this._scene)), (this._horizontalLineFireParticle = r.ParticleProvider.getHorizontalLineFireParticle(this._scene, new i.Vector3(1, 0, 0))), (this._horizontalRightLineFireParticle = r.ParticleProvider.getHorizontalLineFireParticle(this._scene, new i.Vector3(-1, 0, 0))), (this._waterTrailRight = r.ParticleProvider.getWaterTrail(this._scene, !0)), (this._waterTrailLeft = r.ParticleProvider.getWaterTrail(this._scene, !1)), (this._verticalLineFireParticle = r.ParticleProvider.getVerticalLineFireParticle(this._scene)), (this._dustTrailParticle = r.ParticleProvider.getDustTrailParticle(this._scene)), (this._waterSplashTrailParticle = r.ParticleProvider.getWaterSplashTrailParticle(this._scene)), (this._narrowsFlashParticle = r.ParticleProvider.getNarrowsExplosionFlareParticle(this._scene)), (this._narrowsSmokeParticle = r.ParticleProvider.getNarrowsExplosionDustParticle(this._scene)), (this._sparksParticle = r.ParticleProvider.getSparksParticle(this._scene)), this._particlePool.push(this._waterSplashParticle), this._particlePool.push(this._playerDuckWaterSplashParticle), this._particlePool.push(this._cauldronFireParticle), this._particlePool.push(this._torchFireParticle), this._particlePool.push(this._horizontalLineFireParticle), this._particlePool.push(this._verticalLineFireParticle), this._particlePool.push(this._dustTrailParticle), this._particlePool.push(this._waterSplashTrailParticle), this._particlePool.push(this._narrowsFlashParticle), this._particlePool.push(this._narrowsSmokeParticle), this._particlePool.push(this._sparksParticle); } preUpdate() {} postUpdate() {} pause() {} resume() {} reset() {} get horizontalLineFireParticle() { return this._horizontalLineFireParticle; } get verticalLineFireParticle() { return this._verticalLineFireParticle; } get cauldronFireParticle() { return this._cauldronFireParticle; } get getTourchFireParticle() { return this._cauldronFireParticle; } get waterSplashParticle() { return this._waterSplashParticle; } get playerDuckWaterSplashParticle() { return this._playerDuckWaterSplashParticle; } get fireCrashSmokePartile() { return this._crashFireSmokeParticle; } get dustTrailParticle() { return this._dustTrailParticle; } get waterTrailRight() { return this._waterTrailRight; } get waterTrailLeft() { return this._waterTrailLeft; } get waterSplashTrailParticle() { return this._waterSplashTrailParticle; } get narrowsFlashParticle() { return this.narrowsFlashParticle; } get narrowsSmokeParticle() { return this._narrowsSmokeParticle; } get sparksParticle() { return this._sparksParticle; } addEffectsToTrackPiece(e) { e.particleSystems.length > 0 || e.rootMesh .getChildMeshes(!1, (e) => e instanceof i.AbstractMesh) .forEach((t) => { const n = t; if (n.name.startsWith("Effect")) { if (n.name.includes("_waterSplash")) { const t = this._waterSplashParticle.clone("Fx_waterSplash_" + n.name, n); (t.emitter = n), e.particleSystems.push(t); } if (n.name.includes("_fire_breath_hl")) { const t = this._horizontalLineFireParticle.clone("Fx_fire_hl_" + n.name, n); (t.emitter = n), e.particleSystems.push(t); } if (n.name.includes("_fire_breath_hr")) { const t = this._horizontalRightLineFireParticle.clone("Fx_fire_hr_" + n.name, n); (t.minInitialRotation = Math.PI), (t.maxInitialRotation = Math.PI), (t.emitter = n), e.particleSystems.push(t); } if (n.name.includes("_fire_breath_v")) { const t = this._verticalLineFireParticle.clone("Fx_fire_v_" + n.name, n); (t.emitter = n), e.particleSystems.push(t); } if (n.name.includes("_fire_cauldron_left") || n.name.includes("_fire_cauldron_right")) { const t = this._cauldronFireParticle.clone("Fx_fire_cauldron_" + n.name, n); e.particleSystems.push(t); } if (n.name.includes("_torch_fire_a")) { const t = this._torchFireParticle.clone("Fx_torchFire_" + n.name, n); (t.emitter = n), e.particleSystems.push(t); } if (n.name.includes("_sparks")) { const t = this._sparksParticle.clone("Fx_sparks_" + n.name, n); (t.emitter = n), e.particleSystems.push(t); } if (n.name.includes("_column_explosion")) { const t = this._narrowsFlashParticle.clone("Fx_column_explosion_flash_" + n.name, n); t.stop(), e.particleSystems.push(t); const i = this._narrowsSmokeParticle.clone("Fx_column_explosion_dust_" + n.name, n); i.stop(), e.particleSystems.push(i); } n.isVisible = !1; } }); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.ParticleProvider = void 0); const i = n(62), r = n(40), o = n(19); t.ParticleProvider = class { static getCrashFireSmokeParticle(e) { const t = i.ParticleSystem.Parse( { name: "smokeBurst", id: "default system", capacity: 1e4, emitter: [0, 0, 0], particleEmitterType: { type: "BoxParticleEmitter", direction1: [0, 1, 0], direction2: [0, 1, 0], minEmitBox: [-0.5, -0.5, -0.5], maxEmitBox: [0.5, 0.5, 0.5] }, texture: { tags: null, url: "", uOffset: 0, vOffset: 0, uScale: 1, vScale: 1, uAng: 0, vAng: 0, wAng: 0, uRotationCenter: 0.5, vRotationCenter: 0.5, wRotationCenter: 0.5, isBlocking: !0, uniqueId: 8, name: "", hasAlpha: !1, getAlphaFromRGB: !1, level: 1, coordinatesIndex: 0, coordinatesMode: 0, wrapU: 1, wrapV: 1, wrapR: 1, anisotropicFilteringLevel: 4, isCube: !1, is3D: !1, is2DArray: !1, gammaSpace: !0, invertZ: !1, lodLevelInAlpha: !1, lodGenerationOffset: 0, lodGenerationScale: 0, linearSpecularLOD: !1, isRenderTarget: !1, animations: [], invertY: !0, samplingMode: 3, }, isLocal: !1, animations: [], beginAnimationOnStart: !1, beginAnimationFrom: 0, beginAnimationTo: 60, beginAnimationLoop: !1, startDelay: 0, renderingGroupId: 0, isBillboardBased: !0, billboardMode: 7, minAngularSpeed: 0.3, maxAngularSpeed: 0.5, minSize: 1, maxSize: 1.5, minScaleX: 2, maxScaleX: 2, minScaleY: 2, maxScaleY: 2, minEmitPower: 1, maxEmitPower: 1, minLifeTime: 1, maxLifeTime: 1, emitRate: 10, gravity: [0, 0, 0], noiseStrength: [1, 1, 1], color1: [0, 0, 0, 1], color2: [0, 0, 0, 0.6], colorDead: [0, 0, 0, 0], updateSpeed: 0.015, targetStopDuration: 1, blendMode: 2, preWarmCycles: 0, preWarmStepOffset: 1, minInitialRotation: 0, maxInitialRotation: 0, startSpriteCellID: 0, endSpriteCellID: 0, spriteCellChangeSpeed: 1, spriteCellWidth: 0, spriteCellHeight: 0, spriteRandomStartCell: !1, isAnimationSheetEnabled: !1, colorGradients: [], textureMask: [1, 1, 1, 1], customShader: null, preventAutoStart: !0, }, e, "", !0 ); return ( (t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.TRILINEAR_SAMPLINGMODE)), (t.blendMode = i.ParticleSystem.BLENDMODE_STANDARD), (t.startSpriteCellID = 2), (t.endSpriteCellID = 2), (t.spriteCellHeight = 128), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0), (t.targetStopDuration = 1), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), t ); } static getWaterSplashParticle(e) { const t = new i.ParticleSystem("waterfallSplash_Particles", 2e3, e), n = i.MeshBuilder.CreateBox("fx_box", { height: 0.2, width: 1, depth: 0.5 }, e); n.isVisible = !1; const a = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = a), (a.useMeshNormalsForDirection = !1), (t.emitter = n), (a.direction1 = new i.Vector3(0, 2, 0)), (a.direction2 = new i.Vector3(0, 2, 0)), (t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (t.startSpriteCellID = 3), (t.endSpriteCellID = 3), (t.spriteCellHeight = 128), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0), t.addColorGradient(0, new i.Color4(0, 0, 0, 0)), t.addColorGradient(0.2, new i.Color4(0.2, 0.2, 0.2, 0.2)), t.addColorGradient(0.4, new i.Color4(0.2, 0.2, 0.2, 0.4)), t.addColorGradient(0.6, new i.Color4(0.2, 0.2, 0.2, 1)), t.addColorGradient(0.8, new i.Color4(0.2, 0.2, 0.2, 0.6)), t.addColorGradient(1, new i.Color4(0, 0, 0, 0)), (t.minSize = 0.4), (t.maxSize = 0.8), t.addSizeGradient(0, 0.1, 0.6), t.addSizeGradient(1, 0.6, 1), (t.minLifeTime = 0.8), (t.maxLifeTime = 1), (t.emitRate = 40), (t.blendMode = i.ParticleSystem.BLENDMODE_MULTIPLYADD), (t.gravity = new i.Vector3(0, -8, 0)), (t.minInitialRotation = 0), (t.maxInitialRotation = Math.PI), t.addAngularSpeedGradient(0, 0.2, 0.6), t.addAngularSpeedGradient(1, 0.8, 1), (t.minEmitPower = 2), (t.maxEmitPower = 4), (t.updateSpeed = 0.02), t.addLimitVelocityGradient(0, 15), t.addLimitVelocityGradient(1, 20), t ); } static getPlayerDuckWaterSplashParticle(e) { const t = new i.ParticleSystem("waterfallSplash_Particles", 300, e), n = i.MeshBuilder.CreateSphere("fx_sphere", { segments: 10, diameter: 1 }, e); n.isVisible = !1; const a = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = a), (a.useMeshNormalsForDirection = !0), (t.isLocal = !0), (t.emitter = n), (a.direction1 = new i.Vector3(0, 0, 10)), (a.direction2 = new i.Vector3(0, 0, 10)), (t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (t.startSpriteCellID = 3), (t.endSpriteCellID = 3), (t.spriteCellHeight = 128), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0), t.addColorGradient(0, new i.Color4(0, 0, 0, 0)), t.addColorGradient(0.2, new i.Color4(0.2, 0.2, 0.2, 0.2)), t.addColorGradient(0.4, new i.Color4(0.2, 0.2, 0.2, 0.4)), t.addColorGradient(0.6, new i.Color4(0.2, 0.2, 0.2, 1)), t.addColorGradient(0.8, new i.Color4(0.2, 0.2, 0.2, 0.6)), t.addColorGradient(1, new i.Color4(0, 0, 0, 0)), (t.minSize = 0.2), (t.maxSize = 0.4), t.addSizeGradient(0, 0.06, 0.08), t.addSizeGradient(1, 0.08, 1), (t.minLifeTime = 0.2), (t.maxLifeTime = 0.4), (t.emitRate = 300), (t.blendMode = i.ParticleSystem.BLENDMODE_MULTIPLYADD), (t.minInitialRotation = 0), (t.maxInitialRotation = Math.PI), t.addAngularSpeedGradient(0, 0.2, 0.6), t.addAngularSpeedGradient(1, 0.8, 1), (t.minEmitPower = 5), (t.maxEmitPower = 10), (t.updateSpeed = 0.02), t.addLimitVelocityGradient(0, 5), t.addLimitVelocityGradient(1, 10), (t.targetStopDuration = 0.5), t ); } static getHorizontalLineFireParticle(e, t) { const n = new i.ParticleSystem("fire_h_particles", 2e3, e), o = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE); o.isVisible = !1; const a = new i.MeshParticleEmitter(o); (n.particleEmitterType = a), (a.useMeshNormalsForDirection = !1); (t = t.multiplyByFloats(3, 3, 3)), (a.direction1 = t.clone()), (a.direction2 = t.clone()), (n.emitter = o), n.addColorGradient(0, new i.Color4(0, 0, 0, 0)), n.addColorGradient(0.2, new i.Color4(0.1, 0.1, 1, 0.2)), n.addColorGradient(0.4, new i.Color4(0, 0, 1, 0.6)), n.addColorGradient(0.6, new i.Color4(0.3, 0.2, 1, 0.8)), n.addColorGradient(0.8, new i.Color4(0.8, 0.8, 0.1, 1)), n.addColorGradient(1, new i.Color4(1, 0.2, 0.3, 0)), (n.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (n.isLocal = !0), (n.minSize = 1), (n.maxSize = 1.5), (n.minLifeTime = 0.3), (n.maxLifeTime = 1), (n.minScaleX = 1), (n.minScaleY = 1), (n.maxScaleX = 6), (n.maxScaleY = 1), (n.emitRate = 20), (n.minEmitPower = 5), (n.maxEmitPower = 10), (n.updateSpeed = 0.01), n.addLimitVelocityGradient(0, 60), n.addLimitVelocityGradient(0.5, 80); const s = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.TRILINEAR_SAMPLINGMODE); return ( (n.particleTexture = s), (n.startSpriteCellID = 4), (n.endSpriteCellID = 8), (n.spriteCellHeight = 64), (n.spriteCellWidth = 128), (n.spriteCellChangeSpeed = 3), (n.isAnimationSheetEnabled = !0), (n.blendMode = i.ParticleSystem.BLENDMODE_ADD), n ); } static getVerticalLineFireParticle(e) { const t = new i.ParticleSystem("fire_v_particles", 3, e), n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE); n.isVisible = !1; const o = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = o), (o.useMeshNormalsForDirection = !1), (o.direction1 = new i.Vector3(0, 1, 0)), (o.direction2 = new i.Vector3(0, 1, 0)), (t.emitter = n), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), t.addColorGradient(0, new i.Color4(0, 0, 0, 0)), t.addColorGradient(0.2, new i.Color4(1, 0.55, 0.25, 0.2)), t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.6)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.8)), t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.3)), t.addColorGradient(1, new i.Color4(0, 0, 0, 0)), (t.isLocal = !0), (t.minInitialRotation = -0.5 * Math.PI), (t.maxInitialRotation = -0.5 * Math.PI), t.addSizeGradient(0.2, 1.2, 1.2), t.addSizeGradient(0.5, 1.4, 1.6), t.addSizeGradient(0.8, 1.6, 1.8), t.addSizeGradient(1, 1, 1.2), (t.minLifeTime = 1.6), (t.maxLifeTime = 2), (t.minScaleX = 2), (t.maxScaleX = 2), (t.minScaleY = 0.8), (t.maxScaleY = 0.8), (t.emitRate = 2), (t.minEmitPower = 5), (t.maxEmitPower = 10), (t.updateSpeed = 0.05), t.addLimitVelocityGradient(0, 4), t.addLimitVelocityGradient(1, 20), (t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.LINEAR_LINEAR)), (t.startSpriteCellID = 4), (t.endSpriteCellID = 11), (t.spriteCellHeight = 64), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 2), (t.isAnimationSheetEnabled = !0), (t.blendMode = i.ParticleSystem.BLENDMODE_ADD), t ); } static getDustTrailParticle(e) { const t = new i.ParticleSystem("lineFire_Particles", 2e3, e), n = i.Mesh.CreateBox("fx_box", 0.2, e, !0, i.Mesh.DOUBLESIDE); n.isVisible = !1; const a = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = a), (a.useMeshNormalsForDirection = !1), (a.direction1 = new i.Vector3(-0.1, 0.1, -0.5)), (a.direction2 = new i.Vector3(0.1, 0.1, -1)), (t.emitter = n), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)), t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)), t.addColorGradient(0.4, new i.Color4(1, 1, 1, 1)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)), t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)), t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)), (t.isLocal = !0), (t.minSize = 0.01), (t.maxSize = 0.05), (t.minInitialRotation = 0), (t.maxInitialRotation = Math.PI), t.addAngularSpeedGradient(0, 0.5, 0.8), t.addAngularSpeedGradient(1, 3, 4), t.addSizeGradient(0, 0.05, 0.3), t.addSizeGradient(1, 0.05, 0.2), (t.minLifeTime = 0.8), (t.maxLifeTime = 1), (t.emitRate = 30), (t.minEmitPower = 5), (t.maxEmitPower = 10), (t.updateSpeed = 0.05), (t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.TRILINEAR_SAMPLINGMODE)), (t.startSpriteCellID = 2), (t.endSpriteCellID = 2), (t.spriteCellHeight = 128), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0), (t.blendMode = i.ParticleSystem.BLENDMODE_STANDARD), t ); } static getWaterSplashTrailParticle(e) { const t = new i.ParticleSystem("waterSplash_Particles", 500, e), n = i.Mesh.CreateBox("fx_box", 0.2, e, !0, i.Mesh.DOUBLESIDE); n.isVisible = !1; const r = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = r), (r.useMeshNormalsForDirection = !0), (r.direction1 = new i.Vector3(-1, 0.2, -1)), (r.direction2 = new i.Vector3(1, 0.2, -1)), (t.direction1 = new i.Vector3(-50, 1, 0)), (t.direction2 = new i.Vector3(50, 1, 0)), (t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)), (t.startSpriteCellID = 3), (t.endSpriteCellID = 3), (t.spriteCellHeight = 128), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0), (t.blendMode = i.ParticleSystem.BLENDMODE_ADD), t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)), t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)), t.addColorGradient(0.4, new i.Color4(1, 1, 1, 0.8)), t.addColorGradient(0.6, new i.Color4(0.5, 0.5, 0.5, 0.4)), t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)), t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)), (t.minSize = 0.08), (t.maxSize = 0.1), t.addSizeGradient(0, 0.1, 0.2), t.addSizeGradient(0.5, 0.2, 0.3), t.addSizeGradient(1, 0.1, 0.2), t.addLimitVelocityGradient(0, 4), t.addLimitVelocityGradient(1, 6), t.addAngularSpeedGradient(0, 0.5, 0.8), t.addAngularSpeedGradient(1, 0.1, 0.2), (t.minLifeTime = 0.1), (t.maxLifeTime = 0.2), (t.emitRate = 500), (t.minEmitPower = 10), (t.maxEmitPower = 20), (t.updateSpeed = 0.006), t ); } static getCauldronFireParticle(e) { const t = new i.ParticleSystem("fire_v_particles", 12, e), n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE); n.isVisible = !1; const o = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = o), (o.useMeshNormalsForDirection = !1), (o.direction1 = new i.Vector3(0, 1, 0)), (o.direction2 = new i.Vector3(0, 1, 0)), (t.emitter = n), t.addColorGradient(0, new i.Color4(0, 0, 0, 0)), t.addColorGradient(0.2, new i.Color4(1, 0.55, 1, 0.2)), t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.8)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.4)), t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.2)), t.addColorGradient(1, new i.Color4(0, 0, 0, 0)), (t.isLocal = !0), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (t.minInitialRotation = -0.5 * Math.PI), (t.maxInitialRotation = -0.5 * Math.PI), t.addSizeGradient(0.2, 1.2, 1.2), t.addSizeGradient(0.5, 1.4, 1.6), t.addSizeGradient(0.8, 1.6, 1.8), t.addSizeGradient(1, 1, 1.2), (t.minLifeTime = 1), (t.maxLifeTime = 1.6), (t.minScaleX = 1), (t.maxScaleX = 1), (t.minScaleY = 0.6), (t.maxScaleY = 0.6), (t.emitRate = 6), (t.minEmitPower = 1), (t.maxEmitPower = 2), (t.updateSpeed = 0.005), t.addLimitVelocityGradient(0, 1), t.addLimitVelocityGradient(1, 2), (t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.LINEAR_LINEAR)), (t.startSpriteCellID = 8), (t.endSpriteCellID = 15), (t.spriteCellHeight = 64), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 7), (t.isAnimationSheetEnabled = !0), (t.blendMode = i.ParticleSystem.BLENDMODE_ADD), t ); } static getTourchFireParticle(e) { const t = new i.ParticleSystem("torchFire_v_particles", 6, e), n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE); n.isVisible = !1; const o = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = o), (o.useMeshNormalsForDirection = !1), (o.direction1 = new i.Vector3(0, 1, 0)), (o.direction2 = new i.Vector3(0, 1, 0)), (t.emitter = n), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), t.addColorGradient(0, new i.Color4(0, 0, 0, 0)), t.addColorGradient(0.2, new i.Color4(1, 0.55, 1, 0.2)), t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.8)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)), t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.2)), t.addColorGradient(1, new i.Color4(0, 0, 0, 0)), (t.isLocal = !0), (t.minInitialRotation = -0.5 * Math.PI), (t.maxInitialRotation = -0.5 * Math.PI), t.addSizeGradient(0, 0.4, 0.6), t.addSizeGradient(0.5, 0.6, 0.8), t.addSizeGradient(1, 0.8, 1), (t.minLifeTime = 1), (t.maxLifeTime = 1.2), (t.minScaleX = 1.2), (t.maxScaleX = 1.2), (t.minScaleY = 1), (t.maxScaleY = 1), (t.emitRate = 6), (t.minEmitPower = 1), (t.maxEmitPower = 2), (t.updateSpeed = 0.009), t.addLimitVelocityGradient(0, 1), t.addLimitVelocityGradient(1, 2), (t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !0, !1, i.Texture.LINEAR_LINEAR)), (t.startSpriteCellID = 8), (t.endSpriteCellID = 15), (t.spriteCellHeight = 64), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 1), (t.isAnimationSheetEnabled = !0), (t.blendMode = i.ParticleSystem.BLENDMODE_ADD), t ); } static getNarrowsExplosionFlareParticle(e) { const t = new i.ParticleSystem("flare_particles", 3, e), n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE); n.isVisible = !1; const o = new i.MeshParticleEmitter(n); return ( (t.isLocal = !0), (t.particleEmitterType = o), (o.useMeshNormalsForDirection = !0), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (t.minLifeTime = 0.09), (t.maxLifeTime = 0.1), (t.minInitialRotation = 0), (t.maxInitialRotation = Math.PI), (t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !1, !1, i.Texture.TRILINEAR_SAMPLINGMODE)), (t.startSpriteCellID = 45), (t.endSpriteCellID = 45), (t.spriteCellHeight = 64), (t.spriteCellWidth = 64), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0), t.addColorGradient(0, new i.Color4(0, 0, 0, 0)), t.addColorGradient(0.2, new i.Color4(1, 0.55, 0.25, 0.2)), t.addColorGradient(0.4, new i.Color4(0.3, 0.3, 1, 0.6)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.8)), t.addColorGradient(0.8, new i.Color4(0.8, 0.5, 0.1, 0.3)), t.addColorGradient(1, new i.Color4(1, 0.2, 0.3, 0)), t.addSizeGradient(0, 2, 4), t.addSizeGradient(0.5, 4, 6), t.addSizeGradient(1, 2, 4), (t.blendMode = i.ParticleSystem.BLENDMODE_ADD), (t.startDelay = 1800), (t.targetStopDuration = 0.3), t ); } static getNarrowsExplosionDustParticle(e) { const t = new i.ParticleSystem("Dust_Particles", 50, e), n = i.Mesh.CreateSphere("fx_sphere", 10, 0.5, e, !0, i.Mesh.DOUBLESIDE); (n.isVisible = !1), (t.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.TRILINEAR_SAMPLINGMODE)), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (t.startSpriteCellID = 2), (t.endSpriteCellID = 2), (t.spriteCellHeight = 128), (t.spriteCellWidth = 128), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0); const a = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = a), (a.useMeshNormalsForDirection = !0), (t.emitter = n), t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)), t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)), t.addColorGradient(0.4, new i.Color4(1, 1, 1, 1)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)), t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)), t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)), (t.isLocal = !1), (t.minSize = 0.5), (t.maxSize = 2), (t.minInitialRotation = 0.4), (t.maxInitialRotation = Math.PI), t.addAngularSpeedGradient(0, 0.5, 0.8), t.addAngularSpeedGradient(1, 1, 2), t.addSizeGradient(0, 0.6, 1), t.addSizeGradient(1, 1.5, 1.5), (t.minLifeTime = 1.2), (t.maxLifeTime = 2), (t.emitRate = 30), (t.minEmitPower = 10), (t.maxEmitPower = 20), (t.updateSpeed = 0.04), t.addLimitVelocityGradient(0, 2), t.addLimitVelocityGradient(0.6, 0.8), t.addLimitVelocityGradient(1, 0.1), (t.blendMode = i.ParticleSystem.BLENDMODE_STANDARD), (t.startDelay = 1800), (t.targetStopDuration = 1.3), t ); } static getSparksParticle(e) { const t = new i.ParticleSystem("Sparks_Particles", 20, e), n = i.Mesh.CreateBox("fx_box", 0.3, e, !0, i.Mesh.DOUBLESIDE); (n.isVisible = !1), (t.particleTexture = new i.Texture("assets/effects/effects_additive.jpg", e, !1, !1, i.Texture.TRILINEAR_SAMPLINGMODE)), (t.startSpriteCellID = 45), (t.endSpriteCellID = 45), (t.spriteCellHeight = 64), (t.spriteCellWidth = 64), (t.spriteCellChangeSpeed = 0), (t.isAnimationSheetEnabled = !0); const o = new i.MeshParticleEmitter(n); return ( (t.particleEmitterType = o), (o.useMeshNormalsForDirection = !1), (o.direction1 = new i.Vector3(-1, -0.5, -0.5)), (o.direction2 = new i.Vector3(1, 0.5, 0.5)), (t.emitter = n), t.addColorGradient(0, new i.Color4(0.1, 0.1, 0.1, 0)), t.addColorGradient(0.2, new i.Color4(0.6, 0.6, 0.6, 0.6)), t.addColorGradient(0.4, new i.Color4(1, 1, 1, 1)), t.addColorGradient(0.6, new i.Color4(1, 1, 1, 0.6)), t.addColorGradient(0.8, new i.Color4(0.1, 0.1, 0.1, 0.2)), t.addColorGradient(1, new i.Color4(0.1, 0.1, 0.1, 0)), (t.isLocal = !0), (t.minSize = 0.1), (t.maxSize = 0.2), (t.minInitialRotation = 0), (t.maxInitialRotation = Math.PI), t.addAngularSpeedGradient(0, 0.5, 0.8), t.addAngularSpeedGradient(1, 1, 2), t.addSizeGradient(0, 0.2, 0.3), t.addSizeGradient(0.6, 0.1, 0.2), t.addSizeGradient(1, 0.09, 0.1), (t.minLifeTime = 2), (t.maxLifeTime = 3), (t.emitRate = 30), (t.minEmitPower = 10), (t.maxEmitPower = 20), (t.updateSpeed = 0.09), t.addLimitVelocityGradient(0, 4), t.addLimitVelocityGradient(0.6, 6), t.addLimitVelocityGradient(1, 9), (t.blendMode = i.ParticleSystem.BLENDMODE_ADD), (t.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), t ); } static getWaterTrail(e, t) { const n = new i.ParticleSystem("watertrail", 1e3, e); return ( (n.particleTexture = new i.Texture("assets/effects/effects_transparent." + o.WebUtils.textureExtension, e, !1, !0, i.Texture.LINEAR_LINEAR)), (n.emitRate = 100), (n.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (n.blendMode = i.ParticleSystem.BLENDMODE_ADD), (n.emitter = i.Vector3.Zero()), n.createPointEmitter(new i.Vector3(t ? 1 : -1, 0.5, -1), new i.Vector3(t ? 1 : -1, 0.5, -1)), (n.gravity = i.Vector3.Zero()), (n.startSpriteCellID = 3), (n.endSpriteCellID = 3), (n.spriteCellHeight = 128), (n.spriteCellWidth = 128), (n.spriteCellChangeSpeed = 0), (n.isAnimationSheetEnabled = !0), (n.minSize = 0.3), (n.maxSize = 0.3), (n.minLifeTime = 0.5), (n.maxLifeTime = 0.5), (n.updateSpeed = 0.07), n ); } }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.BonusController = void 0); const r = n(40), o = n(133), a = n(178), s = n(62), c = n(150), l = n(238), u = n(29), h = n(139); t.BonusController = class { constructor(e) { (this._totalProbability = 100), (this._spawnProbability = 50), (this._bonusLedgeLeftRightAdjust = 0.375), (this._isCheckingCollision = !1), (this._bonusItems = new Map([ ["pickupShield", o.BonusItemType.Shield], ["pickupBoost", o.BonusItemType.Boost], ["pickupVacuum", o.BonusItemType.Vacuum], ])), (this._scene = e), (this._pickupMaterialProvider = new l.CoinsMaterialProvider(this._scene)); } initialize() { this._loadProbabilities(), this._loadBonusModels(), this._crateSparklesPS(); } preUpdate() {} postUpdate() {} pause() {} resume() {} _crateSparklesPS() { (this._staticSparksPS = s.ParticleSystem.Parse( { name: "power_up_item_shine", id: "default system", capacity: 100, emitter: [0, 0, 0], particleEmitterType: { type: "BoxParticleEmitter", direction1: [-1, -1, -1], direction2: [1, 1, 1], minEmitBox: [-0.5, -0.5, -0.5], maxEmitBox: [0.5, 0.5, 0.5] }, texture: { tags: null, url: "", uOffset: 0, vOffset: 0, uScale: 1, vScale: 1, uAng: 0, vAng: 0, wAng: 0, uRotationCenter: 0.5, vRotationCenter: 0.5, wRotationCenter: 0.5, isBlocking: !0, uniqueId: 8, name: "", hasAlpha: !1, getAlphaFromRGB: !1, level: 1, coordinatesIndex: 0, coordinatesMode: 0, wrapU: 1, wrapV: 1, wrapR: 1, anisotropicFilteringLevel: 4, isCube: !1, is3D: !1, is2DArray: !1, gammaSpace: !0, invertZ: !1, lodLevelInAlpha: !1, lodGenerationOffset: 0, lodGenerationScale: 0, linearSpecularLOD: !1, isRenderTarget: !1, animations: [], invertY: !0, samplingMode: 3, }, isLocal: !1, animations: [], beginAnimationOnStart: !1, beginAnimationFrom: 0, beginAnimationTo: 60, beginAnimationLoop: !1, startDelay: 0, renderingGroupId: 0, isBillboardBased: !0, billboardMode: 7, minAngularSpeed: 1, maxAngularSpeed: 2, minSize: 0.1, maxSize: 0.1, minScaleX: 1, maxScaleX: 1, minScaleY: 1, maxScaleY: 1, minEmitPower: 0, maxEmitPower: 0, minLifeTime: 0.5, maxLifeTime: 1, emitRate: 10, gravity: [0, 0, 0], noiseStrength: [10, 10, 10], color1: [1, 1, 1, 1], color2: [1, 1, 1, 1], colorDead: [1, 1, 1, 0], updateSpeed: 0.005, targetStopDuration: 0, blendMode: 2, preWarmCycles: 0, preWarmStepOffset: 1, minInitialRotation: 10, maxInitialRotation: 45, startSpriteCellID: 0, endSpriteCellID: 0, spriteCellChangeSpeed: 1, spriteCellWidth: 0, spriteCellHeight: 0, spriteRandomStartCell: !1, isAnimationSheetEnabled: !1, textureMask: [1, 1, 1, 1], customShader: null, preventAutoStart: !1, }, this._scene, null, !1 )), (this._staticSparksPS.particleTexture = new s.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, s.Texture.TRILINEAR_SAMPLINGMODE)), (this._staticSparksPS.startSpriteCellID = 45), (this._staticSparksPS.endSpriteCellID = 45), (this._staticSparksPS.spriteCellHeight = 64), (this._staticSparksPS.spriteCellWidth = 64), (this._staticSparksPS.spriteCellChangeSpeed = 0), (this._staticSparksPS.isAnimationSheetEnabled = !0), this._staticSparksPS.addColorGradient(0, new s.Color4(1, 1, 1, 0.4)), this._staticSparksPS.addColorGradient(0.5, new s.Color4(1, 1, 1, 1)), this._staticSparksPS.addColorGradient(1, new s.Color4(1, 1, 1, 0)), (this._staticSparksPS.minSize = 0.4), (this._staticSparksPS.maxSize = 0.8), (this._staticSparksPS.targetStopDuration = 10), (this._staticSparksPS.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), this._staticSparksPS.stop(); } reset() { this._loadProbabilities(), this._bonusItemPool.forEach((e) => { const t = e[0]; (t.position = s.Vector3.Zero()), t.setEnabled(!1); }); } _loadProbabilities() { (this._availableItemProbabilities = new Array()), this._availableItemProbabilities.push(new a.BonusItemTypeProbability(o.BonusItemType.Boost, 40, 20)), this._availableItemProbabilities.push(new a.BonusItemTypeProbability(o.BonusItemType.Shield, 30, 20)), this._availableItemProbabilities.push(new a.BonusItemTypeProbability(o.BonusItemType.Vacuum, 30, 20)); } _loadBonusModels() { return i(this, void 0, void 0, function* () { this._bonusItemPool = new Map(); const e = this._pickupMaterialProvider.defaultPickupMaterial; for (const [t, n] of this._bonusItems) { const i = yield s.SceneLoader.ImportMeshAsync(null, `assets/objects/pickups/${t}.glb`, void 0, this._scene), o = i.meshes[0]; o.setEnabled(!1), (o.position = s.Vector3.Zero()); const a = s.MeshBuilder.CreateBox("pickupCollider", { size: 1 }); (a.parent = o), (a.position = s.Vector3.Zero()), (a.checkCollisions = !0), (a.scaling.x = 2.5), (a.isVisible = !1), this._bonusItemPool.set(n, [o, a]), i.meshes.forEach((t) => { t instanceof s.Mesh && ((t.material = e), (t.renderingGroupId = r.ETR2RenderingGroup.PICK_UPS)); }); } }); } addBonusItems(e) { if (r.GameController.instance.powerup.isPowerupActive()) return; const t = e.trackPaths[o.TrackPieceDefinition.MainPathID], n = r.GameController.instance.track.getZoneInfo(e.SelectedDefinition.ID.ZoneID), i = 0 == (n.CoinSettings.UseTrackDefinitonsForAllowingBonus || (null != n && !!n.CoinSettings.UseTrackDefinitonsForAllowingBonus)) && (e.SelectedDefinition.IsMine || e.SelectedDefinition.isTurn() || e.SelectedDefinition.IsStairs || e.SelectedDefinition.IsWaterSlide || e.SelectedDefinition.IsSlideUnder), c = null != e.EnterPiece && !!e.EnterPiece.ForcePickupPlacementOnTrackPiece && e.EnterPiece.PickupTypeToPlace != o.BonusItemType.None, l = e.NextTrackPieces[0], u = e.PreviousTrackPiece, h = null != l && (!!l.SelectedDefinition.IsJumpOver || !!l.SelectedDefinition.IsSlideUnder), d = null != u && (!!u.SelectedDefinition.IsJumpOver || !!u.SelectedDefinition.IsSlideUnder || !!u.SelectedDefinition.IsStairs); if ( (null == t || 0 == t.length || e.DistanceSinceLastBonusItem < a.BonusItemProtoData.MinDistanceBetweenBonusItems || e.DistanceSinceLastMandatoryTurn < a.BonusItemProtoData.MinDistanceAfterTurn || e.SelectedDefinition.IsZipLine || e.DistanceSinceLastZipline < a.BonusItemProtoData.MinDistanceAfterZipline || 1 == i || 0 == e.CurrCanSpawnPowerup || 1 == h || 1 == d || e.PlacedBonusItemCategory != o.BonusItemCategory.None || 0 == a.BonusItemProtoData.AllowBonusItems || a.BonusItemProtoData.ProbabilityBonusItem <= Number.EPSILON) && 0 == c ) return !1; let p = o.BonusItemType.None; if (((p = 1 == c ? e.EnterPiece.PickupTypeToPlace : this._determinePickupItemTypeToPlace()), p == o.BonusItemType.None)) return !1; let f = a.BonusItemProtoData.BonusItemPlacementHeight; n.CoinSettings.BonusItemHeightAboveGround > 0 && (f = n.CoinSettings.BonusItemHeightAboveGround); const m = Math.floor(t.length / 2), g = t[m].clone(); g.y += f; let b, _ = m - 1; if ((_ < 0 && (_ = 0), _ != m)) { b = t[_].subtract(t[m]); const e = b.lengthSquared(), n = Math.sqrt(e); if (((b.x /= n), (b.y /= n), (b.z /= n), 2 == t.length)) { const e = 0.5 * n; g.addInPlace(b.multiplyByFloats(e, e, e)); } } else b = e.assetInfo.rootMesh.forward; if (e.SelectedDefinition.IsLedgeLeft) { const e = s.Vector3.Cross(s.Vector3.Up(), b); g.addInPlace(e.multiplyByFloats(this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust)); } else if (1 == !!e.SelectedDefinition.IsLedgeRight) { const e = s.Vector3.Cross(b, s.Vector3.Up()); g.addInPlace(e.multiplyByFloats(this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust, this._bonusLedgeLeftRightAdjust)); } const v = this._bonusItemPool.get(p)[0]; return (this._staticSparksPS.worldOffset = g), this._staticSparksPS.start(), v.setEnabled(!0), (v.position = g), v.lookAt(t[0].add(new s.Vector3(0, f, 0))), (e.bonusType = p), !0; } _determinePickupItemTypeToPlace() { const e = c.Utils.random(0, this._totalProbability); let t = o.BonusItemType.None; if (this._totalProbability > 0 && this._availableItemProbabilities.length > 0 && e < this._spawnProbability) { const e = this._availableItemProbabilities.length; let n = c.Utils.random(0, this._totalProbability); for (let i = 0; i < e; i++) { const e = this._availableItemProbabilities[i]; if (((n -= e.ItemProbability), n < 0 && e.ItemProbability > 0)) { t = e.ItemType; break; } } } else t = o.BonusItemType.None; return t; } checkBonusItemCollision(e, t) { return i(this, void 0, void 0, function* () { if (!this._isCheckingCollision) { if (null != e.bonusType) { const n = this._bonusItemPool.get(e.bonusType)[0], i = this._bonusItemPool.get(e.bonusType)[1]; t.intersectsMesh(i) && (this._staticSparksPS.stop(), u.EventHandler.instance.fireEvent(u.EventID.OnPowerupCollect, e.bonusType), u.EventHandler.instance.fireEvent(u.EventID.PlaySFX, h.SoundID.BonusPickup), (e.bonusType = void 0), n.setEnabled(!1)); } this._isCheckingCollision = !1; } }); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.PowerupController = void 0); const i = n(133), r = n(40), o = n(29), a = n(139), s = n(233); t.PowerupController = class { constructor(e) { (this._isBoostActive = !1), (this._isMagnetActive = !1), (this._isShieldActive = !1), (this._isMeterFull = !1), (this._isTriggeredManually = !1), (this.INITIAL_BOOST_DISTANCE = 250), (this.INITIAL_SHIELD_TIME = 10), (this.INITIAL_MAGNET_TIME = 10), (this.SCALE_OFFSET = 1), (this._boostMaxDistance = this.INITIAL_BOOST_DISTANCE), (this._boostThresholdSlow = 10 * this.SCALE_OFFSET), (this._magnetThresholdFast = this.INITIAL_MAGNET_TIME), (this._shieldThresholdFast = this.INITIAL_SHIELD_TIME), (this._boostDistanceLeft = 0), (this._magnetTimeLeft = 0), (this._shieldTimeLeft = 0), (this._powerupVisibility = 0.2), (this._visibilityReverse = !1), (this._sfxEventSent = !1), (this._scene = e); } setBoostValues(e) { (this._boostThresholdSlow = 50), (this._boostMaxDistance = e); } upgradeBoost(e) { const t = this.INITIAL_BOOST_DISTANCE + e * this.SCALE_OFFSET; this.setBoostValues(t); } upgradeShield(e) { this._shieldThresholdFast = this.INITIAL_SHIELD_TIME + this.INITIAL_SHIELD_TIME * (e / 100); } upgradeMagnet(e) { this._magnetThresholdFast = this.INITIAL_MAGNET_TIME + this.INITIAL_MAGNET_TIME * (e / 100); } _setPowerUpsParams() { const e = s.AbiltiesUpgradeModel.fromJson(n(235)), t = r.GameController.instance.gameState.abilitiesData.abilitiesLevels, i = t[2] - 1; let o = 0; (o = i > -1 ? this.INITIAL_BOOST_DISTANCE + e.data[2].rule[i].reward : this.INITIAL_BOOST_DISTANCE * this.SCALE_OFFSET), this.setBoostValues(o); const a = t[1] - 1; if (a > -1) { const t = e.data[1].rule[a].reward; this._magnetThresholdFast = this.INITIAL_MAGNET_TIME + this.INITIAL_MAGNET_TIME * (t / 100); } else this._magnetThresholdFast = this.INITIAL_MAGNET_TIME; const c = t[0] - 1; if (c > -1) { const t = e.data[0].rule[c].reward; this._shieldThresholdFast = this.INITIAL_SHIELD_TIME + this.INITIAL_SHIELD_TIME * (t / 100); } else this._shieldThresholdFast = this.INITIAL_SHIELD_TIME; } initialize() { this._setPowerUpsParams(), o.EventHandler.instance.addListener(o.EventID.OnTutorialStart, () => { this.reset(); }), o.EventHandler.instance.addListener(o.EventID.OnPlayerDeath, () => { this.reset(); }), o.EventHandler.instance.addListener(o.EventID.OnAbilityUpgraded, (e) => { const t = e._id, n = e._reward; 2 == t ? this.upgradeBoost(n) : 1 == t ? this.upgradeMagnet(n) : 0 == t && this.upgradeShield(n); }), o.EventHandler.instance.addListener(o.EventID.OnPowerupCollect, (e) => { const t = e; t == i.BonusItemType.Boost ? ((this._isBoostActive = !0), this._onBoostStart(), (this._boostDistanceLeft = this._boostMaxDistance)) : t == i.BonusItemType.Vacuum ? ((this._isMagnetActive = !0), o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.Magnet), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupStart, i.BonusItemType.Vacuum), (this._magnetTimeLeft = this._magnetThresholdFast)) : t == i.BonusItemType.Shield && (o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.ShieldLoop), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupStart, i.BonusItemType.Shield), (this._isShieldActive = !0), (this._shieldTimeLeft = this._shieldThresholdFast)); }), o.EventHandler.instance.addListener(o.EventID.OnMeterFull, () => { (this._isMeterFull = !0), o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.BonusMeterFull); }), o.EventHandler.instance.addListener(o.EventID.OnKeyPress, (e) => { (r.GameController.instance.tutorial.needZoneTutorial && r.GameController.instance.tutorial.isEnabled) || ("Space" == e && r.GameController.instance.isGameRunning && this._isMeterFull && !r.GameController.instance.character.isPlayerDead && ((this._isTriggeredManually = !0), (this._boostDistanceLeft = this._boostMaxDistance), (this._isBoostActive = !0), this._onBoostStart(), (this._isMeterFull = !1), o.EventHandler.instance.fireEvent(o.EventID.OnPowerMeterUsed))); }); } preUpdate() { if (!r.GameController.instance.isGameRunning || r.GameController.instance.character.isPlayerDead || !this.isPowerupActive()) return; const e = this._scene.deltaTime / 1e3; this._createBlinkingEffect(e), this._isBoostActive && ((this._boostDistanceLeft -= r.GameController.instance.character.params.deltaDistance), this._useBoostPower()), this._isMagnetActive && ((this._magnetTimeLeft -= e), this._useMagnetPower()), this._isShieldActive && ((this._shieldTimeLeft -= e), this._useShieldPower()); } postUpdate() {} pause() { this._isBoostActive && o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.BoostLoop), this._isShieldActive && o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop), this._isMagnetActive && o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.Magnet); } resume() { this._isBoostActive && o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.BoostLoop), this._isShieldActive && o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.ShieldLoop), this._isMagnetActive && o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.Magnet); } reset() { this._isBoostActive && ((this._isBoostActive = !1), (this._boostDistanceLeft = 0), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Boost), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.BoostLoop)), this._isShieldActive && ((this._isShieldActive = !1), (this._shieldTimeLeft = 0), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Shield), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop)), this._isMagnetActive && ((this._isMagnetActive = !1), (this._magnetTimeLeft = 0), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Vacuum), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.Magnet)), this._isMeterFull && ((this._isMeterFull = !1), o.EventHandler.instance.fireEvent(o.EventID.OnPowerMeterUsed, !0)), o.EventHandler.instance.fireEvent(o.EventID.OnMeterReset), (this._powerupVisibility = 0.2), (this._sfxEventSent = !0), (this._isTriggeredManually = !1), (r.GameController.instance.character.params.boostVelocity = -1); } _onBoostStart() { o.EventHandler.instance.fireEvent(o.EventID.OnPowerupStart, i.BonusItemType.Boost), (r.GameController.instance.character.params.boostVelocity = r.GameController.instance.character.PLAYER_SPEED_BOOST), o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.BoostLoop); } _resetBoost() { (this._isBoostActive = !1), (this._boostDistanceLeft = 0), (this._isTriggeredManually = !1), (r.GameController.instance.character.params.boostVelocity = -1); } _resetMagnet() { (this._isMagnetActive = !1), (this._magnetTimeLeft = 0); } _resetShield() { (this._isShieldActive = !1), (this._shieldTimeLeft = 0); } removeShield() { o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Shield), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop), o.EventHandler.instance.fireEvent(o.EventID.PlaySFX, a.SoundID.ShieldPop), (this._isShieldActive = !1), (this._shieldTimeLeft = 0); } get shouldEmptyMeter() { return !this._isMeterFull; } get isTriggeredManually() { return this._isTriggeredManually; } get meterPowerUpType() { return i.BonusItemType.Boost; } get isBoost() { return this._isBoostActive; } get isShield() { return this._isShieldActive; } get isMagnet() { return this._isMagnetActive; } isPowerupActive() { return this._isBoostActive || this._isShieldActive || this._isMagnetActive; } _createBlinkingEffect(e) { this._visibilityReverse ? (this._powerupVisibility -= 5 * e) : (this._powerupVisibility += 5 * e), this._powerupVisibility >= 1 ? (this._visibilityReverse = !0) : this._powerupVisibility <= 0.2 && (this._visibilityReverse = !1); } _useShieldPower() { 0 == this._sfxEventSent && (o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.ShieldLoop), (this._sfxEventSent = !0)), this._shieldTimeLeft < 0 && (o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Shield), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.ShieldLoop), this._resetShield()); } _useBoostPower() { this._boostDistanceLeft < 0 ? (o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Boost), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.BoostLoop), this._resetBoost()) : this._boostDistanceLeft < this._boostThresholdSlow && r.GameController.instance.character.params.boostVelocity > 0 && ((r.GameController.instance.character.params.boostVelocity = r.GameController.instance.character.getBoostSlowSpeed()), o.EventHandler.instance.fireEvent(o.EventID.OnPowerupCooldown, i.BonusItemType.Boost)); } _useMagnetPower() { 0 == this._sfxEventSent && (o.EventHandler.instance.fireEvent(o.EventID.PlaySFXLoop, a.SoundID.Magnet), (this._sfxEventSent = !0)), this._magnetTimeLeft < 0 && (o.EventHandler.instance.fireEvent(o.EventID.OnPowerupComplete, i.BonusItemType.Vacuum), o.EventHandler.instance.fireEvent(o.EventID.StopSFX, a.SoundID.Magnet), this._resetMagnet()); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.TutorialController = void 0); const i = n(40), r = n(29), o = n(133), a = n(178), s = n(19), c = n(52); t.TutorialController = class { constructor(e) { (this._isEnabled = !1), (this._distanceToStepTrigger = 0), (this._minDistanceToStepTrigger = 15), (this._currentMilestoneIndex = 0), (this._needZoneTutorial = !1), (this._shouldRestartTutorial = !1), (this._previousMilestoneIndex = 999), (this._distanceAtStepStart = 0), (this._scene = e); } initialize() {} preUpdate() { this._isEnabled && i.GameController.instance.isGameRunning && !i.GameController.instance.character.isPlayerDead && (this._checkAndPerformTutorialMessage(), this._checkForTutorialStep()); } postUpdate() {} pause() {} resume() {} reset() { (this._currentStep = void 0), (this._distanceToStepTrigger = 0); } get isEnabled() { return this._isEnabled; } _resetSettings() { this._shouldRestartTutorial || ((this._isEnabled = !1), (a.BonusItemProtoData.AllowCoins = !0), (a.BonusItemProtoData.AllowBonusItems = !0)); } enableAndGetSection(e) { let t; this._resetSettings(); const n = i.GameController.instance.gameState.flagsData.tutorialPhaseState; return ( this._shouldRestartTutorial ? (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue) : "phase2" == n ? ((this._currentMilestoneIndex = 5), (this._previousMilestoneIndex = -1), (this._trackPacing = e.get(0).TutorialPacing), (t = this._trackPacing.TutorialMilestones[4].TutorialTrackQueue)) : ((this._currentMilestoneIndex = 0), (this._previousMilestoneIndex = -1), (this._trackPacing = e.get(0).TutorialPacing), (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue)), (this._isEnabled = !0), (a.BonusItemProtoData.AllowCoins = !1), (a.BonusItemProtoData.AllowBonusItems = !1), r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStart), t ); } enableAndGetSectionZone(e) { let t; if ((this._resetSettings(), null == e)) ("waterslide" == this._currentTutorialZone || "mine" == this._currentTutorialZone) && (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue); else if (null != e && (e.Definition.IsMine || e.Definition.IsWaterSlide)) { (this._currentMilestoneIndex = 0), (this._previousMilestoneIndex = 999); const n = i.GameController.instance.gameState.flagsData.tutorialZonesDone, r = i.GameController.instance.track.getAllZones(); !n.includes("waterslide") && e.Definition.IsWaterSlide ? ((this._trackPacing = r.get(3).TutorialPacing), (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue), (this._currentTutorialZone = "waterslide")) : !n.includes("mine") && e.Definition.IsMine && ((this._trackPacing = r.get(1).TutorialPacing), (t = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex].TutorialTrackQueue), (this._currentTutorialZone = "mine")); } if (null != t) { let n = !1; null == e && ((e = new o.NewTrackPieceInfo()), (n = !0)), (e.Queue = new o.TrackSection()), (e.Queue.Pieces = [...t.Pieces]), (e.Queue.TrackLoop = t.TrackLoop), n || (e.Piece = e.Queue.Pieces.shift()), (e.Definition = void 0), (e.Pacing = void 0), (a.BonusItemProtoData.AllowCoins = !1), (a.BonusItemProtoData.AllowBonusItems = !1); } return e; } enableForZoneIfRequired(e) { this._currentTutorialZone == e && ((this._isEnabled = !0), (this._previousMilestoneIndex = -1), r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStart)); } _disableTutorials() { this._isEnabled = !1; const e = i.GameController.instance.character.params; e.currentTrackPiece.SelectedDefinition.IsWaterSlide ? r.EventHandler.instance.fireEvent(r.EventID.OnChangeTutorialState, { tutorialPhaseState: "done", zoneDone: "waterslide" }) : e.currentTrackPiece.SelectedDefinition.IsMine ? r.EventHandler.instance.fireEvent(r.EventID.OnChangeTutorialState, { tutorialPhaseState: "done", zoneDone: "mine" }) : r.EventHandler.instance.fireEvent(r.EventID.OnChangeTutorialState, { tutorialPhaseState: "done" }), this._resetSettings(), (this._needZoneTutorial = !1), (this._currentTutorialZone = void 0), setTimeout(() => { r.EventHandler.instance.fireEvent(r.EventID.OnTutorialComplete), r.EventHandler.instance.fireEvent(r.EventID.OnPersistGameState), this.checkZoneTutorials(); }, 5e3); } checkZoneTutorials() { this._resetSettings(); const e = i.GameController.instance.gameState.flagsData.tutorialZonesDone; (e.includes("mine") && e.includes("waterslide")) || (this._needZoneTutorial = !0); } canStartZoneTutorial(e) { if (0 == this._needZoneTutorial || e.CategoryType != o.TrackPieceCategory.ZoneEntranceTransition) return !1; const t = i.GameController.instance.gameState.flagsData.tutorialZonesDone; return !!((!t.includes("mine") && e.IsMine) || (!t.includes("waterslide") && e.IsWaterSlide)); } resurrectOnDeath() { (this._shouldRestartTutorial = !0), (this._currentMilestoneIndex = i.GameController.instance.character.params.currentTrackPiece.tutorialMilestoneIndex), (this._previousMilestoneIndex = -1), c.gameState.forceUpdateDistance(this._distanceAtStepStart), (this._distanceAtStepStart = 0), r.EventHandler.instance.fireEvent(r.EventID.OnResetGame), (this._shouldRestartTutorial = !1), r.EventHandler.instance.fireEvent(r.EventID.OnPlayGame, !0); } processScoreToRollback() { this._previousMilestoneIndex < this._currentMilestoneIndex && ((this._previousMilestoneIndex = this._currentMilestoneIndex), (this._distanceAtStepStart = i.GameController.instance.gameState.currentRunData.distance)); } get shouldRestartTutorial() { return this._shouldRestartTutorial; } get needZoneTutorial() { return this._needZoneTutorial; } get currentTutorialZone() { return this._currentTutorialZone; } get currentMilestoneIndex() { return this._currentMilestoneIndex; } _checkForTutorialStep() { const e = i.GameController.instance.character.params; if (null == e.currentTrackPiece || e.currentTrackPiece.getNextTrackPiecesLength() < 0) return; const t = e.currentTrackPiece, n = t.NextTrackPieces[0]; if (n.getNextTrackPiecesLength() < 0) return; const o = n.NextTrackPieces[0], a = o.SelectedDefinition; if (this._distanceToStepTrigger > 0) return ( (this._distanceToStepTrigger -= e.deltaDistance), void ( null != this._currentStep && "done" != this._currentStep && this._distanceToStepTrigger < this._minDistanceToStepTrigger && (r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStepStart, { arrowDirection: this._currentStep }), (this._currentStep = "done")) ) ); null != this._currentStep && (r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStepComplete), (this._currentStep = void 0), (this._distanceToStepTrigger = 0)), (this._distanceToStepTrigger = t.getEstimatedLength() - e.distanceFromPieceStart + n.getEstimatedLength() + o.getEstimatedLength() / 2), a.IsTurnLeft || a.IsLedgeLeft ? (this._currentStep = "Left") : a.IsTurnRight || a.IsLedgeRight ? (this._currentStep = "Right") : a.IsSlideUnder ? (this._currentStep = "Down") : a.IsZipLine ? ((this._currentStep = "Up"), (this._distanceToStepTrigger -= o.getEstimatedLength() / 2)) : a.IsJumpOver ? (this._currentStep = "Up") : a.IsWaterSlide && a.Name.includes("Tilt Right") ? (this._currentStep = "Right") : a.IsWaterSlide && a.Name.includes("Tilt Left") ? (this._currentStep = "Left") : (this._currentStep = void 0), null == this._currentStep && (this._distanceToStepTrigger = 0); } _checkAndPerformTutorialMessage() { const e = i.GameController.instance.character.params; if (null == e.currentTrackPiece || null == e.currentTrackPiece.EnterPiece || e.currentTrackPiece.tutorialStepDone) return; let t, n, a, c, l; switch (e.currentTrackPiece.EnterPiece.TutorialMessageType) { case o.TutorialMessageDisplayType.SwipeToTurn: (a = "Turn"), (n = s.WebUtils.hasTouch ? "Swipe left to turn left\nSwipe right to turn right" : 'Press "left arrow" or "A"\nto turn left\nPress "right arrow" or "D"\nto turn right'); break; case o.TutorialMessageDisplayType.SwipeUpInstruction: (a = "Up"), (n = s.WebUtils.hasTouch ? "Swipe up to jump" : 'Press "up arrow" or "W"\nto jump'); break; case o.TutorialMessageDisplayType.SwipeDownInstruction: (a = "Down"), (l = "slide"), e.currentTrackPiece.SelectedDefinition.IsWaterSlide ? (l = "dunk") : e.currentTrackPiece.SelectedDefinition.IsMine && (l = "duck"), (n = s.WebUtils.hasTouch ? "Swipe down to " + l : 'Press "down arrow" or "S"\nto ' + l); break; case o.TutorialMessageDisplayType.TiltInstruction: (a = "Turn"), (l = "move"), e.currentTrackPiece.SelectedDefinition.IsMine && (l = "tilt"), (n = s.WebUtils.hasTouch ? `Swipe left to ${l} left\nSwipe right to ${l} right` : `Press "left arrow" or "A"\nto ${l} left\nPress "right arrow" or "D"\nto ${l} right`); break; case o.TutorialMessageDisplayType.NiceJobText: t = "Nice Job !"; break; case o.TutorialMessageDisplayType.UnlockPowerMeter: r.EventHandler.instance.fireEvent(r.EventID.OnPauseGame, "tutorialPause"), r.EventHandler.instance.fireEvent(r.EventID.OnPowerupUnlockAnim), (c = "Good job!\nBoost Power-up Unlocked!"); break; case o.TutorialMessageDisplayType.DoubleTapInstruction: r.EventHandler.instance.fireEvent(r.EventID.OnMeterFull), r.EventHandler.instance.fireEvent(r.EventID.OnUnlockPowerup), (n = s.WebUtils.hasTouch ? "Double tap\nto activate Power-up" : 'Press "Spacebar"\nto activate Power-up'); break; case o.TutorialMessageDisplayType.YouAreReadyText: (t = "You are ready now!"), this._disableTutorials(); } (null == n && null == t && null == c) || (r.EventHandler.instance.fireEvent(r.EventID.OnTutorialStepStart, { messageWithDelayArrow: a, messageWithDelay: n, message: t, messageStatic: c }), (e.currentTrackPiece.tutorialStepDone = !0)); } selectTrackPiece(e, t) { this._currentMilestoneIndex++, this._currentMilestoneIndex >= this._trackPacing.TutorialMilestones.length && (this._currentMilestoneIndex = this._trackPacing.TutorialMilestones.length - 1); const n = this._trackPacing.TutorialMilestones[this._currentMilestoneIndex]; (a.BonusItemProtoData.AllowCoins = !!n.AllowCoins), (a.BonusItemProtoData.AllowBonusItems = !1); const i = new o.TrackSection(); return (i.Pieces = [...n.TutorialTrackQueue.Pieces]), (t.Piece = i.Pieces.shift()), (t.Queue = i), (t.Definition = void 0), (t.Pacing = void 0), t; } }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.CharacterFXController = void 0); const r = n(40), o = n(29), a = n(62), s = n(287), c = n(133), l = n(19); t.CharacterFXController = class { constructor(e) { (this._initialized = !1), (this._isBoostExhausted = !1), (this._isGodModeExhausted = !1), (this._boostParticleUpdateSpeed = 0), (this._magnetEffectUpdateSpeed = 0), (this.powerUpActive = new s.PowerUpActiveEffect()), (this._blinkFreq = 1.5), (this._currentTime = 0), (this._scene = e); } _onPlayerReady() { (this._sharedFillMeshMaterial = r.GameController.instance.track.getFillMeshMaterial()), (this._sharedFillMeshMaterial.alpha = 0), (this._playerMaterial = r.GameController.instance.character.material), (this._playerMaterial.alphaCutOff = 0); const e = r.GameController.instance.character.player; this.powerUpActive.assignParent(e), (this._shieldMesh.parent = e), (this._boostParticle.emitter = e), (this._magnetEffect.emitter = e); } loadMesh() { return i(this, void 0, void 0, function* () { return (yield a.SceneLoader.ImportMeshAsync(null, "assets/effects/power_up_fx_mesh.glb", void 0, this._scene)).meshes[1]; }); } initialize() { this._createBoostTrailParticle(), this._createMagnetEffect(), this.loadMesh().then((e) => { null != e && (this.powerUpActive.createEffect(e.clone(), this._scene), this._createShieldEffect(e)); }), o.EventHandler.instance.addListener(o.EventID.OnPlayGame, () => { this._initialized || (this._onPlayerReady(), (this._initialized = !0)); }), o.EventHandler.instance.addListener(o.EventID.OnGodModeEnabled, () => { (this._playerMaterial.transparencyMode = 2), (this._playerMaterial.alpha = 0.6), (this._sharedFillMeshMaterial.alpha = 1); }), o.EventHandler.instance.addListener(o.EventID.OnGodModeDisabled, () => { (this._playerMaterial.transparencyMode = 0), (this._playerMaterial.alpha = 1), (this._sharedFillMeshMaterial.alpha = 0), (this._isGodModeExhausted = !1); }), o.EventHandler.instance.addListener(o.EventID.OnGodModeExhausted, () => { this._isGodModeExhausted = !0; }), o.EventHandler.instance.addListener(o.EventID.OnPowerupStart, (e) => { this.powerUpActive.isActive || this.powerUpActive.activate(), e == c.BonusItemType.Boost ? (this._boostParticle.start(), (this._playerMaterial.transparencyMode = 2), (this._playerMaterial.alpha = 0.7), (this._playerMaterial.emissiveIntensity = 0.4), (this._playerMaterial.emissiveColor = a.Color3.White()), (this._sharedFillMeshMaterial.alpha = 1)) : e == c.BonusItemType.Vacuum ? this._magnetEffect.start() : e == c.BonusItemType.Shield && this._shieldMesh.setEnabled(!0); }), o.EventHandler.instance.addListener(o.EventID.OnPowerupCooldown, () => { (this._isBoostExhausted = !0), this._boostParticle.stop(), (this._playerMaterial.emissiveIntensity = 0); }), o.EventHandler.instance.addListener(o.EventID.OnTutorialStart, () => { this.reset(); }), o.EventHandler.instance.addListener(o.EventID.OnPowerupComplete, (e) => { e == c.BonusItemType.Boost ? (this._boostParticle.stop(), (this._playerMaterial.transparencyMode = 0), (this._playerMaterial.alpha = 1), (this._playerMaterial.emissiveIntensity = 0), (this._sharedFillMeshMaterial.alpha = 0), (this._isBoostExhausted = !1)) : e == c.BonusItemType.Vacuum ? this._magnetEffect.stop() : e == c.BonusItemType.Shield && this._shieldMesh.setEnabled(!1); }); } _createBoostTrailParticle() { return ( (this._boostParticle = a.ParticleSystem.Parse( { name: "boostTrail", id: "default system", capacity: 100, emitter: [0, 0, 0], particleEmitterType: { type: "BoxParticleEmitter", direction1: [0, 1, 0], direction2: [0, 1, 0], minEmitBox: [-0.2, -0.2, -0.2], maxEmitBox: [0.2, 0.2, 0.2] }, texture: { tags: null, url: "", uOffset: 0, vOffset: 0, uScale: 1, vScale: 1, uAng: 0, vAng: 0, wAng: 0, uRotationCenter: 0.5, vRotationCenter: 0.5, wRotationCenter: 0.5, isBlocking: !0, uniqueId: 24, name: "", hasAlpha: !1, getAlphaFromRGB: !1, level: 1, coordinatesIndex: 0, coordinatesMode: 0, wrapU: 1, wrapV: 1, wrapR: 1, anisotropicFilteringLevel: 4, isCube: !1, is3D: !1, is2DArray: !1, gammaSpace: !0, invertZ: !1, lodLevelInAlpha: !1, lodGenerationOffset: 0, lodGenerationScale: 0, linearSpecularLOD: !1, isRenderTarget: !1, animations: [], invertY: !0, samplingMode: 3, }, isLocal: !1, animations: [], beginAnimationOnStart: !1, beginAnimationFrom: 0, beginAnimationTo: 60, beginAnimationLoop: !1, startDelay: 0, renderingGroupId: 0, isBillboardBased: !0, billboardMode: 7, minAngularSpeed: 0, maxAngularSpeed: 0, minSize: 0.5, maxSize: 1.5, minScaleX: 1, maxScaleX: 1, minScaleY: 1, maxScaleY: 1, minEmitPower: 0, maxEmitPower: 0, minLifeTime: 0.5, maxLifeTime: 1, emitRate: 20, gravity: [0, 0, 0], noiseStrength: [10, 10, 10], color1: [1, 1, 1, 1], color2: [1, 1, 1, 1], colorDead: [1, 1, 1, 0], updateSpeed: 0.016666666666666666, targetStopDuration: 0, blendMode: 2, preWarmCycles: 0, preWarmStepOffset: 1, minInitialRotation: 0, maxInitialRotation: 0, startSpriteCellID: 0, endSpriteCellID: 0, spriteCellChangeSpeed: 1, spriteCellWidth: 0, spriteCellHeight: 0, spriteRandomStartCell: !1, isAnimationSheetEnabled: !1, emitRateGradients: [], textureMask: [1, 1, 1, 1], customShader: null, preventAutoStart: !1, }, this._scene, "", !0 )), (this._boostParticle.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (this._boostParticle.particleTexture = new a.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, a.Texture.TRILINEAR_SAMPLINGMODE)), (this._boostParticle.startSpriteCellID = 12), (this._boostParticle.endSpriteCellID = 12), (this._boostParticle.spriteCellHeight = 128), (this._boostParticle.spriteCellWidth = 128), (this._boostParticle.spriteCellChangeSpeed = 0), (this._boostParticle.isAnimationSheetEnabled = !0), (this._boostParticle.worldOffset = new a.Vector3(0, 0.4, 0)), (this._boostParticleUpdateSpeed = this._boostParticle.updateSpeed), this._boostParticle ); } _createMagnetEffect() { (this._magnetEffect = new a.ParticleSystem("magnet effect", 10, this._scene)), this._magnetEffect.createPointEmitter(a.Vector3.Zero(), a.Vector3.Zero()), (this._magnetEffect.particleTexture = new a.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0)), (this._magnetEffect.startSpriteCellID = 13), (this._magnetEffect.endSpriteCellID = 13), (this._magnetEffect.spriteCellHeight = 128), (this._magnetEffect.spriteCellWidth = 128), (this._magnetEffect.spriteCellChangeSpeed = 0), (this._magnetEffect.isAnimationSheetEnabled = !0), (this._magnetEffect.minEmitPower = 0), (this._magnetEffect.maxEmitPower = 0), (this._magnetEffect.emitRate = 2), (this._magnetEffect.maxSize = 0.5), (this._magnetEffect.minSize = 1.5), (this._magnetEffect.updateSpeed += 0.005), this._magnetEffect.addSizeGradient(0, 1.5), this._magnetEffect.addSizeGradient(0.2, 1.3), this._magnetEffect.addSizeGradient(0.5, 1), this._magnetEffect.addSizeGradient(0.7, 0.8), this._magnetEffect.addSizeGradient(0.9, 0.6), this._magnetEffect.addSizeGradient(1, 0.5), this._magnetEffect.addColorGradient(0, new a.Color4(1, 1, 1, 1)), this._magnetEffect.addColorGradient(0.8, new a.Color4(1, 1, 1, 0.5)), this._magnetEffect.addColorGradient(1, new a.Color4(1, 1, 1, 0)), (this._magnetEffect.maxLifeTime = 0.5), (this._magnetEffect.isLocal = !0), (this._magnetEffect.renderingGroupId = r.ETR2RenderingGroup.PARTICLES), (this._magnetEffect.worldOffset.y += 1), (this._magnetEffectUpdateSpeed = this._magnetEffect.updateSpeed), this._magnetEffect.stop(); } _createShieldEffect(e) { (this._shieldMesh = e), (this._shieldMesh.renderingGroupId = r.ETR2RenderingGroup.CHARACTER), (this._shieldMesh.position = a.Vector3.Zero()), (this._shieldMesh.scaling = new a.Vector3(0.009, 0.009, 0.009)); const t = new a.Texture("assets/effects/effects_transparent." + l.WebUtils.textureExtension, this._scene, !1, !1); t.vOffset = -0.5; const n = new a.StandardMaterial("shiledMeshMat", this._scene); (n.diffuseTexture = t), (n.diffuseColor = a.Color3.Green()), (n.emissiveColor = a.Color3.Green()), (n.diffuseTexture.hasAlpha = !0), (n.useAlphaFromDiffuseTexture = !0), (n.emissiveTexture = t), (n.diffuseColor = a.Color3.Green()), (n.disableLighting = !0), (n.alpha = 1), (n.alphaMode = a.Engine.ALPHA_ADD), (n.backFaceCulling = !1), (this._shieldMesh.position.y += 1), (this._shieldMesh.material = n), this._shieldMesh.setEnabled(!1); } preUpdate() { if (((this._currentTime += 0.1), !this._initialized || !r.GameController.instance.isGameRunning)) return; const e = this._scene.getEngine().getDeltaTime() / 1e3; if ((this.powerUpActive.isActive && this.powerUpActive.update(e), this._shieldMesh.isEnabled() && this._shieldMesh.rotate(a.Axis.Y, 0.06, a.Space.LOCAL), this._isGodModeExhausted || this._isBoostExhausted)) { const e = 0.3 + Math.abs(Math.sin(this._currentTime * this._blinkFreq)); (this._sharedFillMeshMaterial.alpha = e), (this._playerMaterial.alpha = e); } } postUpdate() {} pause() { this._boostParticle.isStarted && (this._boostParticle.updateSpeed = 0), this._magnetEffect.isStarted && (this._magnetEffect.updateSpeed = 0); } resume() { this._boostParticle.isStarted && (this._boostParticle.updateSpeed = this._boostParticleUpdateSpeed), this._magnetEffect.isStarted && (this._magnetEffect.updateSpeed = this._magnetEffectUpdateSpeed); } reset() { this._initialized && ((this._isBoostExhausted = !1), (this._isGodModeExhausted = !1), this._magnetEffect.stop(), this._boostParticle.stop(), this._shieldMesh.setEnabled(!1), this.powerUpActive.reset(), (this._playerMaterial.alpha = 1), (this._playerMaterial.transparencyMode = 0), (this._sharedFillMeshMaterial.alpha = 0)); } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.PowerUpActiveEffect = void 0); const i = n(62), r = n(40); t.PowerUpActiveEffect = class { constructor() { (this.meshOneScale = new i.Vector3(0.3, 0.3, 0.3)), (this.meshTwoScale = new i.Vector3(0.4, 1, 0.3)), (this.isActive = !1), (this.duration = 1.6), (this._time = 0); } assignParent(e) { (this.meshOne.parent = e), (this.meshTwo.parent = e); } createEffect(e, t) { (e.renderingGroupId = r.ETR2RenderingGroup.CHARACTER), (e.scaling = e.scaling.multiplyByFloats(0.2, 0.2, 0.2)), (this.meshOne = e.clone()), (this.meshTwo = e.clone()), (this.meshTwo.scaling.y += 0.003), (this.meshOne.position.y += 0.6), (this.meshTwo.position.y += 0.6), e.setEnabled(!1); const n = new i.Texture("assets/effects/effects_additive.jpg", t, !1, !1); (this.meshOneMaterial = new i.StandardMaterial("power_up_effect_mat", t)), (this.meshOneMaterial.diffuseTexture = n), (this.meshOneMaterial.diffuseTexture.hasAlpha = !0), (this.meshOneMaterial.useAlphaFromDiffuseTexture = !0), (this.meshOneMaterial.emissiveTexture = n), (this.meshOneMaterial.disableLighting = !0), (this.meshOneMaterial.alpha = 0.89), (this.meshOneMaterial.alphaMode = i.Engine.ALPHA_ADD), (this.meshOneMaterial.backFaceCulling = !1), (this.meshOne.material = this.meshOneMaterial), (this.meshTwoMaterial = this.meshOneMaterial.clone("meshTwoMat")), (this.meshTwo.material = this.meshTwoMaterial), this.meshOne.setEnabled(!1), this.meshTwo.setEnabled(!1); } activate() { (this.isActive = !0), this.meshOne.setEnabled(!0), this.meshTwo.setEnabled(!0), (this.meshOneMaterial.alpha = 1), (this.meshTwoMaterial.alpha = 0); } deactivate() { (this.isActive = !1), this.meshOne.setEnabled(!1), this.meshTwo.setEnabled(!1); } reset() { this.meshOne.setEnabled(!1), this.meshTwo.setEnabled(!1), (this.isActive = !1), (this._time = 0); } update(e) { if (this.isActive) { if (((this._time += e), this._time > this.duration)) return void this.reset(); const t = 1, n = Math.abs(Math.sin(this._time * t)); (this.meshOneMaterial.alpha = n), (this.meshTwoMaterial.alpha = 1 - n), this.meshOne.rotate(i.Vector3.Up(), 0.09, i.Space.WORLD), this.meshTwo.rotate(i.Vector3.Up(), 0.15, i.Space.WORLD); } } }; }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.DailyChallengesController = void 0); const i = n(62), r = n(40), o = n(234), a = n(52), s = n(29); t.DailyChallengesController = class { constructor(e) { (this._challengeUpdateCounter = 0), (this._currentProgress = { percent: 0, text: "" }), (this._shouldShowChestUI = !1), (this._cloneDailyChallengeData = (e) => { const t = new a.DailyChallengeData(); return ( (t.currentChallengeID = e.currentChallengeID), (t.currentChallengeDate = e.currentChallengeDate), (t.currentChallengeExpiryDate = e.currentChallengeExpiryDate), (t.currentDayStreak = e.currentDayStreak), (t.isChallengeCompleted = e.isChallengeCompleted), (t.pastChallengeID = new Map(e.pastChallengeID)), t ); }), (this._scene = e); } get currentChallengeData() { return this._activeChallengeData; } get currentChallengeProgress() { return this._currentProgress; } get shouldShowChest() { return this._shouldShowChestUI; } initialize() { s.EventHandler.instance.addListener(s.EventID.OnDisablingChestUI, () => { this._shouldShowChestUI = !1; }), this._initDailyChallengesController(), s.EventHandler.instance.addListener(s.EventID.OnCheckDailyChallenge, this._checkChallengeCompletion.bind(this)), s.EventHandler.instance.addListener(s.EventID.OnForceDailyChallenge, this._debugDailyChallenge.bind(this)); } _isCurrentChallengeValid() { const e = new Date(this._dailyChallengesData.currentChallengeDate), t = this.getDiffInDays(e); return !(t >= 1) || (t > 1 && (this._dailyChallengesData.currentDayStreak = 0), !1); } _debugDailyChallenge(e) { (this._activeChallengeID = e), (this._isActiveChallengeCompleted = !1), (this._activeChallengeData = this._challengesData.data.find((e) => e.ID == this._activeChallengeID)), (this._activeChallengeExpiryTime = new Date(this._dailyChallengesData.currentChallengeExpiryDate)), (this._dailyChallengesData.currentChallengeID = this._activeChallengeData.ID), (this._dailyChallengesData.isChallengeCompleted = !1), (this._dailyChallengesData.currentDayStreak = 0), (this._currentProgress = { percent: 0, text: "" }), s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)), s.EventHandler.instance.fireEvent(s.EventID.OnResetDayStatData, !0); } _initDailyChallengesController() { if ( ((this._challengesData = o.DailyChallenges.fromJson(n(236))), (this._dailyChallengesData = this._cloneDailyChallengeData(r.GameController.instance.gameState.dailyChallengeData)), (this._activeChallengeID = this._dailyChallengesData.currentChallengeID), (this._isActiveChallengeCompleted = this._dailyChallengesData.isChallengeCompleted), -1 == this._activeChallengeID) ) this._getNewChallenge(this._dailyChallengesData.currentDayStreak); else { this._dailyChallengesData.currentChallengeExpiryDate.split("/"); (this._activeChallengeExpiryTime = new Date(this._dailyChallengesData.currentChallengeExpiryDate)), this._isCurrentChallengeValid() ? (this._activeChallengeData = this._challengesData.data.find((e) => e.ID == this._dailyChallengesData.currentChallengeID)) : this._getNewChallenge(this._dailyChallengesData.currentDayStreak); } } _updatePastChallengeIDs() { const e = this._dailyChallengesData.pastChallengeID; if (e.size > 0) for (const t of e.entries()) { const e = t[1], n = new Date(e); this.getDiffInDays(n) > 10 && this._dailyChallengesData.pastChallengeID.delete(t[0]); } } _fillterChallenges() { if ((this._updatePastChallengeIDs(), this._dailyChallengesData.pastChallengeID.size > 0)) { const e = [...this._dailyChallengesData.pastChallengeID.keys()]; return this._challengesData.data.filter((t) => 0 == e.includes(t.ID)); } return this._challengesData.data; } _getNewChallenge(e) { const t = this._fillterChallenges(); let n; 0 == e ? (n = t.filter((e) => 1 == e.tier)) : 1 == e ? (n = t.filter((e) => 1 == e.tier || 2 == e.tier)) : 2 == e ? (n = t.filter((e) => 1 == e.tier || 2 == e.tier || 3 == e.tier)) : 3 == e ? (n = t.filter((e) => 1 == e.tier || 2 == e.tier || 3 == e.tier || 4 == e.tier)) : e >= 4 && (n = t), 0 == n.length && (n = t); const r = Math.floor(i.Scalar.RandomRange(0, n.length)); (this._activeChallengeData = n[r]), (this._activeChallengeID = this._activeChallengeData.ID), (this._dailyChallengesData.currentChallengeID = this._activeChallengeData.ID), (this._dailyChallengesData.isChallengeCompleted = !1); const o = new Date(), a = new Date(); a.setDate(o.getDate() + 1), (this._dailyChallengesData.currentChallengeDate = o.getMonth() + 1 + "/" + o.getDate() + "/" + o.getFullYear()); const c = a.getMonth() + 1 + "/" + a.getDate() + "/" + a.getFullYear(); (this._dailyChallengesData.currentChallengeExpiryDate = c), (this._activeChallengeExpiryTime = a), this._dailyChallengesData.pastChallengeID.set(this._activeChallengeID, this._dailyChallengesData.currentChallengeDate), (this._currentProgress.percent = 0), (this._currentProgress.text = ""), s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)), s.EventHandler.instance.fireEvent(s.EventID.OnResetDayStatData); } _checkForPerRunChallengeObjectiveIsComplete(e) { if (this._isCurrentChallengeSatisfyFillterType()) { const t = this._activeChallengeData.statValue; switch (this._activeChallengeData.objectiveType) { case o.ObjectiveType.CollectCoins: return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide ? e.coinsCollectedInWaterSlide >= t : this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart ? e.coinsCollectedInMineCart >= t : e.coins >= t; case o.ObjectiveType.CollectPowerups: return e.powerupsCollectedThisRun >= t; case o.ObjectiveType.Distance: return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide ? e.distanceCoveredInWaterSlide >= t : this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart ? e.distanceCoveredInMineCart >= t : e.distance >= t; case o.ObjectiveType.Resurrects: return e.resurrectsThisRun >= t; case o.ObjectiveType.Runs: break; case o.ObjectiveType.Score: return e.score >= t; case o.ObjectiveType.UsedPowerMeter: return e.powermeterUsedThisRun >= t; case o.ObjectiveType.WaterZone_Exit: return e.waterslideSurvivedThisRun >= t; case o.ObjectiveType.MineZone_Exit: return e.minecartSurvivedThisRun >= t; } } } _checkForPerDayChallengeData(e) { if (this._isCurrentChallengeSatisfyFillterType()) { const t = this._activeChallengeData.statValue; switch (this._activeChallengeData.objectiveType) { case o.ObjectiveType.CollectCoins: return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide ? e.coinsCollectedInWaterSlide >= t : this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart ? e.coinsCollectedInMineCart >= t : e.coins >= t; case o.ObjectiveType.CollectPowerups: return e.powerupsCollectedToday >= t; case o.ObjectiveType.Distance: return this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide ? e.distanceCoveredInWaterSlide >= t : this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart ? e.distanceCoveredInMineCart >= t : e.distance >= t; case o.ObjectiveType.Resurrects: return e.resurrectsToday >= t; case o.ObjectiveType.Runs: return e.runs >= t; case o.ObjectiveType.Score: return e.score >= t; case o.ObjectiveType.UsedPowerMeter: return e.powerMeterUsedToday >= t; case o.ObjectiveType.WaterZone_Exit: return e.waterSlideSurvivedToday >= t; case o.ObjectiveType.MineZone_Exit: return e.minecartSurviveToday >= t; } } } _isCurrentChallengeSatisfyFillterType() { const e = this._activeChallengeData.objectiveFilterType; return ( -1 == e || (e == o.ObjectiveFilterType.WithoutCoins ? 0 == r.GameController.instance.gameState.currentRunData.coins : e == o.ObjectiveFilterType.WithoutPowerups ? 0 == r.GameController.instance.gameState.currentRunData.powerupsCollectedThisRun : e == o.ObjectiveFilterType.WithoutSaveMe ? 0 == r.GameController.instance.gameState.currentRunData.resurrectsThisRun : e != o.ObjectiveFilterType.WithoutStumble || 0 == r.GameController.instance.gameState.currentRunData.stumbleThisRun) ); } _updateCurrentChallengeRunTime() { this._isActiveChallengeCompleted || (this._dailyChallengesData.currentDayStreak = 0), this._getNewChallenge(this._dailyChallengesData.currentDayStreak), (this._dailyChallengesData = this._dailyChallengesData), (this._activeChallengeID = this._dailyChallengesData.currentChallengeID), (this._isActiveChallengeCompleted = this._dailyChallengesData.isChallengeCompleted), (this._activeChallengeExpiryTime = new Date(this._dailyChallengesData.currentChallengeExpiryDate)), s.EventHandler.instance.fireEvent(s.EventID.OnResetDayStatData); } getRewardAmount() { const e = this._dailyChallengesData.currentDayStreak; return 1 == e ? 200 : 2 == e ? 300 : 3 == e ? 400 : 4 == e ? 500 : this.getChestCoinReward(); } getChestCoinReward() { const e = 100 * Math.random(); return e <= 60 ? 1e3 : e > 60 && e <= 90 ? 2e3 : e > 90 ? 3e3 : void 0; } getDiffInDays(e) { const t = new Date(); return Math.floor(+t.getDate() - +e.getDate()); } getChallangeExpiryTime() { const e = this._activeChallengeExpiryTime, t = new Date(); return Math.floor((e.getTime() - t.getTime()) / 1e3); } getExpiryTimeString() { const e = this.getChallangeExpiryTime(), t = Math.floor(e / 3600), n = Math.floor((e % 3600) / 60), i = Math.floor((e % 3600) % 60); return (t > 0 ? t + (1 == t ? " hour, " : " hours, ") : "") + (n > 0 ? n + (1 == n ? " minute, " : " minutes, ") : "") + (i > 0 ? i + (1 == i ? " second" : " seconds") : ""); } _updateProgress(e) { const t = this._activeChallengeData.statValue; let n = 0; switch (this._activeChallengeData.objectiveType) { case o.ObjectiveType.CollectCoins: n = this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide ? e.coinsCollectedInWaterSlide : this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart ? e.coinsCollectedInMineCart : e.coins; case o.ObjectiveType.CollectPowerups: n = e.powerupsCollectedToday; break; case o.ObjectiveType.Distance: n = this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InWaterSlide ? e.distanceCoveredInWaterSlide : this._activeChallengeData.objectiveFilterType == o.ObjectiveFilterType.InMineCart ? e.distanceCoveredInMineCart : e.distance; break; case o.ObjectiveType.Resurrects: n = e.resurrectsToday; break; case o.ObjectiveType.Runs: n = e.runs; break; case o.ObjectiveType.Score: n = e.score; break; case o.ObjectiveType.UsedPowerMeter: n = e.powerMeterUsedToday; break; case o.ObjectiveType.WaterZone_Exit: n = e.waterSlideSurvivedToday; break; case o.ObjectiveType.MineZone_Exit: n = e.minecartSurviveToday; } n > t && (n = t), (this._currentProgress.percent = (n / t) * 100), (this._currentProgress.text = `${Math.round(n)} / ${t}`); } _checkChallengeCompletion() { this._isActiveChallengeCompleted || (this._activeChallengeData.objectiveTimeType == o.ObjectiveTimeType.PerRun ? this._checkForPerRunChallengeObjectiveIsComplete(r.GameController.instance.gameState.currentRunData) && ((this._isActiveChallengeCompleted = !0), (this._dailyChallengesData.isChallengeCompleted = this._isActiveChallengeCompleted), (this._dailyChallengesData.currentDayStreak += 1), (this._shouldShowChestUI = !0), s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)), (this._currentProgress = { percent: 0, text: "" })) : this._activeChallengeData.objectiveTimeType == o.ObjectiveTimeType.OverTime && this._checkForPerDayChallengeData(r.GameController.instance.gameState.currentDayDataFinal) && ((this._isActiveChallengeCompleted = !0), (this._dailyChallengesData.isChallengeCompleted = this._isActiveChallengeCompleted), (this._dailyChallengesData.currentDayStreak += 1), (this._shouldShowChestUI = !0), s.EventHandler.instance.fireEvent(s.EventID.OnDailyChallengeDataUpdate, this._cloneDailyChallengeData(this._dailyChallengesData)), (this._currentProgress = { percent: 0, text: "" }))); } preUpdate() { if (this._challengeUpdateCounter % 60 == 0) { this.getChallangeExpiryTime() <= 0 && this._updateCurrentChallengeRunTime(); const e = this.getExpiryTimeString(); s.EventHandler.instance.fireEvent(s.EventID.NextChallengeTimerChanged, e), this._activeChallengeData.objectiveTimeType == o.ObjectiveTimeType.OverTime && this._updateProgress(r.GameController.instance.gameState.currentDayData); } this._challengeUpdateCounter++; } postUpdate() {} pause() {} resume() {} reset() {} }; }, function (e, t, n) { "use strict"; var i = (this && this.__awaiter) || function (e, t, n, i) { return new (n || (n = Promise))(function (r, o) { function a(e) { try { c(i.next(e)); } catch (e) { o(e); } } function s(e) { try { c(i.throw(e)); } catch (e) { o(e); } } function c(e) { var t; e.done ? r(e.value) : ((t = e.value), t instanceof n ? t : new n(function (e) { e(t); })).then(a, s); } c((i = i.apply(e, t || [])).next()); }); }; Object.defineProperty(t, "__esModule", { value: !0 }), (t.ChestController = t.ChestAnimation = void 0); const r = n(40), o = n(62), a = n(29), s = n(139); var c; !(function (e) { (e[(e.Idle = 0)] = "Idle"), (e[(e.Open = 1)] = "Open"), (e[(e.Landing = 2)] = "Landing"), (e[(e.Spit = 3)] = "Spit"), (e[(e.OpenIdle = 4)] = "OpenIdle"); })((c = t.ChestAnimation || (t.ChestAnimation = {}))); t.ChestController = class { constructor(e) { (this._chestMeshFileURL = "assets/objects/chest/chest.glb"), (this._chestTexture = "assets/objects/chest/chest.jpg"), (this._beigeBgTexture = "assets/textures/beige_bg.jpg"), (this._skeletons = []), (this._animationGroups = []), (this._scene = e); } initialize() { return i(this, void 0, void 0, function* () { this._loadBlackPanel(), this._loadBeiegPanel(), this._loadAssetChestAsync(this._scene), a.EventHandler.instance.addListener(a.EventID.OnEnablingChestUI, this._enableChestUI.bind(this)), a.EventHandler.instance.addListener(a.EventID.OnDisablingChestUI, this._disableChestUI.bind(this)), a.EventHandler.instance.addListener(a.EventID.OnChestTap, this._chestTap.bind(this)), (this._light = new o.HemisphericLight("HemiLight", new o.Vector3(0, 1, 0), this._scene)), this._light.setEnabled(!1); }); } _enableChestUI() { this._blackBg.setEnabled(!0), this._chest.setEnabled(!0), this._beigeBg.setEnabled(!0), this._light.setEnabled(!0), this._playAnimation(c.Landing), this._chestClosedSparks.start(), a.EventHandler.instance.fireEvent(a.EventID.PlaySFX, s.SoundID.ChestDropin); } _disableChestUI() { this._blackBg.setEnabled(!1), this._chest.setEnabled(!1), this._beigeBg.setEnabled(!1), this._light.setEnabled(!1), this._chestClosedSparks.stop(), this._chestOpenRaysPS.stop(), a.EventHandler.instance.fireEvent(a.EventID.PlaySFX, s.SoundID.ChestLeave); } _chestTap() { this._chestClosedSparks.stop(), this._playAnimation(c.Open); const e = r.GameController.instance.dailyChallenges.getRewardAmount(); a.EventHandler.instance.fireEvent(a.EventID.OnChestReward, e), this._chestOpenRaysPS.start(), a.EventHandler.instance.fireEvent(a.EventID.PlaySFX, s.SoundID.ChestOpen), setTimeout(() => { this._chestOpenRaysPS.stop(); }, 2e3); } _createidleSparksPS() { (this._chestClosedSparks = o.ParticleSystem.Parse( { name: "chestSparksClosed", id: "default system", capacity: 400, emitter: [0, 0, 0], particleEmitterType: { type: "BoxParticleEmitter", direction1: [1, 0, 1], direction2: [-1, 0, -1], minEmitBox: [-0.3, -0.01, -0.3], maxEmitBox: [0.3, 0.01, 0.3] }, texture: { tags: null, url: "", uOffset: 0, vOffset: 0, uScale: 1, vScale: 1, uAng: 0, vAng: 0, wAng: 0, uRotationCenter: 0.5, vRotationCenter: 0.5, wRotationCenter: 0.5, isBlocking: !0, uniqueId: 8, name: "", hasAlpha: !0, getAlphaFromRGB: !1, level: 1, coordinatesIndex: 0, coordinatesMode: 0, wrapU: 1, wrapV: 1, wrapR: 1, anisotropicFilteringLevel: 4, isCube: !1, is3D: !1, is2DArray: !1, gammaSpace: !0, invertZ: !1, lodLevelInAlpha: !1, lodGenerationOffset: 0, lodGenerationScale: 0, linearSpecularLOD: !1, isRenderTarget: !1, animations: [], invertY: !0, samplingMode: 3, }, isLocal: !1, animations: [], beginAnimationOnStart: !1, beginAnimationFrom: 0, beginAnimationTo: 60, beginAnimationLoop: !1, startDelay: 0, renderingGroupId: 0, isBillboardBased: !0, billboardMode: 7, minAngularSpeed: 0, maxAngularSpeed: 0, minSize: 0.1, maxSize: 0.1, minScaleX: 1, maxScaleX: 1, minScaleY: 1, maxScaleY: 1, minEmitPower: 2, maxEmitPower: 2, minLifeTime: 1, maxLifeTime: 2, emitRate: 50, gravity: [0, 0, 0], noiseStrength: [10, 10, 10], color1: [1, 1, 1, 1], color2: [1, 1, 1, 1], colorDead: [1, 1, 1, 0], updateSpeed: 0.016666666666666666, targetStopDuration: 0, blendMode: 2, preWarmCycles: 0, preWarmStepOffset: 1, minInitialRotation: 0, maxInitialRotation: 0, startSpriteCellID: 0, endSpriteCellID: 0, spriteCellChangeSpeed: 1, spriteCellWidth: 0, spriteCellHeight: 0, spriteRandomStartCell: !1, isAnimationSheetEnabled: !1, velocityGradients: [ { gradient: 0, factor1: 0.1, factor2: 0.3 }, { gradient: 1, factor1: 1, factor2: 0.1 }, ], limitVelocityGradients: [], limitVelocityDamping: 0.4, textureMask: [1, 1, 1, 1], customShader: null, preventAutoStart: !1, }, this._scene, "", !0 )), (this._chestClosedSparks.particleTexture = new o.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, o.Texture.TRILINEAR_SAMPLINGMODE)), (this._chestClosedSparks.startSpriteCellID = 45), (this._chestClosedSparks.endSpriteCellID = 45), (this._chestClosedSparks.spriteCellHeight = 64), (this._chestClosedSparks.spriteCellWidth = 64), (this._chestClosedSparks.spriteCellChangeSpeed = 0), (this._chestClosedSparks.isAnimationSheetEnabled = !0), (this._chestClosedSparks.isLocal = !1), (this._chestClosedSparks.minSize = 0.3), (this._chestClosedSparks.maxSize = 0.3), (this._chestClosedSparks.minLifeTime = 1.5), (this._chestClosedSparks.maxLifeTime = 2), (this._chestClosedSparks.minInitialRotation = 0), (this._chestClosedSparks.maxInitialRotation = Math.PI), this._chestClosedSparks.addAngularSpeedGradient(0, 0.5, 0.8), this._chestClosedSparks.addAngularSpeedGradient(1, 1, 2), (this._chestClosedSparks.blendMode = o.ParticleSystem.BLENDMODE_ADD); const e = new o.Vector3(0, -0.6, 0.3); (this._chestClosedSparks.worldOffset = this._chest.position.subtract(e)), (this._chestClosedSparks.layerMask = 3), (this._chestClosedSparks.renderingGroupId = r.ETR2RenderingGroup.UI); } _createRaysOnOpenPS() { (this._chestOpenRaysPS = o.ParticleSystem.Parse( { name: "chestRays", id: "default system", capacity: 10, emitter: [0, 0, 0], particleEmitterType: { type: "ConeParticleEmitter", radius: 0.1, angle: 0.7853981633974483, directionRandomizer: 0, radiusRange: 1, heightRange: 1, emitFromSpawnPointOnly: !1 }, texture: { tags: null, url: "", uOffset: 0, vOffset: 0, uScale: 1, vScale: 1, uAng: 0, vAng: 0, wAng: 0, uRotationCenter: 0.5, vRotationCenter: 0.5, wRotationCenter: 0.5, isBlocking: !0, uniqueId: 8, name: "", hasAlpha: !0, getAlphaFromRGB: !1, level: 1, coordinatesIndex: 0, coordinatesMode: 0, wrapU: 1, wrapV: 1, wrapR: 1, anisotropicFilteringLevel: 4, isCube: !1, is3D: !1, is2DArray: !1, gammaSpace: !0, invertZ: !1, lodLevelInAlpha: !1, lodGenerationOffset: 0, lodGenerationScale: 0, linearSpecularLOD: !1, isRenderTarget: !1, animations: [], invertY: !0, samplingMode: 3, }, isLocal: !1, animations: [], beginAnimationOnStart: !1, beginAnimationFrom: 0, beginAnimationTo: 60, beginAnimationLoop: !1, startDelay: 0, renderingGroupId: 0, isBillboardBased: !0, billboardMode: 7, minAngularSpeed: 0, maxAngularSpeed: 0, minSize: 0.1, maxSize: 0.1, minScaleX: 5, maxScaleX: 10, minScaleY: 20, maxScaleY: 20, minEmitPower: 0, maxEmitPower: 0, minLifeTime: 2, maxLifeTime: 2, emitRate: 3, gravity: [0, 0, 0], noiseStrength: [10, 10, 10], color1: [1, 1, 1, 1], color2: [1, 1, 1, 1], colorDead: [1, 1, 1, 0], updateSpeed: 0.016666666666666666, targetStopDuration: 1, blendMode: 2, preWarmCycles: 0, preWarmStepOffset: 1, minInitialRotation: 0, maxInitialRotation: 0, startSpriteCellID: 0, endSpriteCellID: 0, spriteCellChangeSpeed: 1, spriteCellWidth: 0, spriteCellHeight: 0, spriteRandomStartCell: !1, isAnimationSheetEnabled: !1, textureMask: [1, 1, 1, 1], customShader: null, preventAutoStart: !0, }, this._scene, "", !0 )), (this._chestOpenRaysPS.particleTexture = new o.Texture("assets/effects/effects_additive.jpg", this._scene, !1, !0, o.Texture.TRILINEAR_SAMPLINGMODE)), (this._chestOpenRaysPS.startSpriteCellID = 21), (this._chestOpenRaysPS.endSpriteCellID = 21), (this._chestOpenRaysPS.spriteCellHeight = 64), (this._chestOpenRaysPS.spriteCellWidth = 128), (this._chestOpenRaysPS.spriteCellChangeSpeed = 0), (this._chestOpenRaysPS.isAnimationSheetEnabled = !0), (this._chestOpenRaysPS.blendMode = o.ParticleSystem.BLENDMODE_ADD), (this._chestOpenRaysPS.targetStopDuration = 1), (this._chestOpenRaysPS.minInitialRotation = Math.PI / 2), (this._chestOpenRaysPS.maxInitialRotation = Math.PI / 2), (this._chestOpenRaysPS.minScaleX = 20), (this._chestOpenRaysPS.maxScaleX = 25), (this._chestOpenRaysPS.minScaleY = 25), (this._chestOpenRaysPS.maxScaleY = 30); const e = new o.Vector3(0, -1, 0); (this._chestOpenRaysPS.worldOffset = this._chest.position.subtract(e)), (this._chestOpenRaysPS.layerMask = 3), (this._chestOpenRaysPS.renderingGroupId = r.ETR2RenderingGroup.UI); } _initializeVFX() { this._createidleSparksPS(), this._createRaysOnOpenPS(); } _loadBlackPanel() { (this._blackBg = o.Mesh.CreatePlane("ChestBG", 20, this._scene)), (this._blackBg.position.z = 1), (this._blackBg.renderingGroupId = r.ETR2RenderingGroup.UI); const e = new o.StandardMaterial("BlackBG", this._scene); (e.diffuseColor = o.Color3.Black()), (e.alpha = 0.5), (this._blackBg.material = e), (this._blackBg.layerMask = 3), this._blackBg.setEnabled(!1); } _loadBeiegPanel() { (this._beigeBg = o.Mesh.CreatePlane("ChestBG2", 20, this._scene)), (this._beigeBg.position.z = 2), (this._beigeBg.renderingGroupId = r.ETR2RenderingGroup.UI); const e = new o.StandardMaterial("BeiegBG", this._scene), t = new o.Texture(this._beigeBgTexture, this._scene); (e.diffuseTexture = t), (this._beigeBg.material = e), (this._beigeBg.layerMask = 3), this._beigeBg.setEnabled(!1); } _loadAssetChestAsync(e) { return i(this, void 0, void 0, function* () { const t = yield o.SceneLoader.ImportMeshAsync(null, this._chestMeshFileURL, void 0, e); this._material = new o.StandardMaterial("ChestMaterial", this._scene); const n = new o.Texture(this._chestTexture, this._scene); (this._material.diffuseTexture = n), (this._material.emissiveTexture = n), (this._material.disableLighting = !0), (t.meshes[1].material = this._material), (t.meshes[1].renderingGroupId = r.ETR2RenderingGroup.UI), (this._chest = t.meshes[0]), (this._chest.renderingGroupId = r.ETR2RenderingGroup.UI), (this._chest.scaling = new o.Vector3(2.5 * this._chest.scaling.x, 2.5 * this._chest.scaling.y, 2.5 * this._chest.scaling.z)), (this._chest.position.y += 2), (this._chest.rotation = o.Vector3.Zero()), (this._animationGroups = t.animationGroups), (this._skeletons = t.skeletons), (this._chest.layerMask = 3), this._setupAnimations(), this._chest.setEnabled(!1), this._initializeVFX(), this._playAnimation(c.Idle); }); } _setupAnimations() { (this._idleAnimation = this._animationGroups.find((e) => "idle" === e.name)), (this._openAnimation = this._animationGroups.find((e) => "open" === e.name)), this._openAnimation.onAnimationGroupEndObservable.add(() => { this._playAnimation(c.OpenIdle); }), (this._landAnimation = this._animationGroups.find((e) => "landing" === e.name)), (this._landAnimation.loopAnimation = !1), this._landAnimation.onAnimationGroupEndObservable.add(() => { this._playAnimation(c.Idle), a.EventHandler.instance.fireEvent(a.EventID.OnChestLandingDone); }), (this._openIdleAnimation = this._animationGroups.find((e) => "open_idle" === e.name)), (this._spitAnimatoin = this._animationGroups.find((e) => "spit" === e.name)); } _getAnimation(e) { switch (e) { case c.Idle: return this._idleAnimation; case c.Open: return this._openAnimation; case c.Landing: return this._landAnimation; case c.Spit: return this._spitAnimatoin; case c.OpenIdle: return this._openIdleAnimation; } } _playAnimation(e, t = 0) { var n, i; const r = this._currentAnimaton; null == r || r.stop(), null == r || r.setWeightForAllAnimatables(0), (this._currentAnimaton = this._getAnimation(e)); let o = !1; (e != c.Idle && e != c.OpenIdle && e != c.Spit) || (o = !0), null === (n = this._currentAnimaton) || void 0 === n || n.setWeightForAllAnimatables(1), 0 == t ? null === (i = this._currentAnimaton) || void 0 === i || i.start(o) : setTimeout(() => { var e; null === (e = this._currentAnimaton) || void 0 === e || e.start(o); }, t); } preUpdate() {} postUpdate() {} pause() { var e; null === (e = this._currentAnimaton) || void 0 === e || e.stop(); } resume() { var e; null === (e = this._currentAnimaton) || void 0 === e || e.play(); } reset() {} }; }, function (e) { e.exports = JSON.parse( '{"BonusMeterFull":{"start":0,"end":0.4010884353741497,"loop":false},"BonusPickup":{"start":2,"end":2.1775056689342405,"loop":false},"BoostLoop":{"start":4,"end":4.7424489795918365,"loop":false},"ButtonClick":{"start":6,"end":6.696598639455782,"loop":false},"CashRegister":{"start":8,"end":9.441950113378685,"loop":false},"ChestDropin":{"start":11,"end":11.708117913832199,"loop":false},"ChestLeave":{"start":13,"end":13.297052154195011,"loop":false},"ChestOpen":{"start":15,"end":15.77047619047619,"loop":false},"ChestScreenOpen":{"start":17,"end":17.979183673469386,"loop":false},"Coin":{"start":19,"end":19.353514739229023,"loop":false},"GruntJump":{"start":21,"end":21.170113378684807,"loop":false},"GruntJumpLand":{"start":23,"end":23.255419501133787,"loop":false},"GruntTrip":{"start":25,"end":25.276780045351472,"loop":false},"Magnet":{"start":27,"end":27.889387755102042,"loop":false},"MineCartLoop":{"start":29,"end":30.20843537414966,"loop":false},"MineCartTilt":{"start":32,"end":32.41151927437642,"loop":false},"MineCartTurn":{"start":34,"end":34.35233560090703,"loop":false},"MonkeyRoar":{"start":36,"end":38.114331065759636,"loop":false},"PillarCrash":{"start":40,"end":41.84746031746032,"loop":false},"PillarFall":{"start":43,"end":46.38650793650794,"loop":false},"Scream":{"start":48,"end":49.47736961451247,"loop":false},"ShieldLoop":{"start":51,"end":51.69668934240363,"loop":false},"ShieldPop":{"start":53,"end":53.66244897959184,"loop":false},"Sizzle":{"start":55,"end":56.36521541950113,"loop":false},"Slide":{"start":58,"end":58.83827664399093,"loop":false},"Splash":{"start":60,"end":62.51827664399093,"loop":false},"SplashEntry":{"start":64,"end":64.62721088435374,"loop":false},"Splat":{"start":66,"end":66.32598639455782,"loop":false},"Swish":{"start":68,"end":68.11120181405896,"loop":false},"Woohoo":{"start":70,"end":71.05224489795918,"loop":false},"Wooosh":{"start":73,"end":73.29727891156463,"loop":false}}' ); }, function (e) { e.exports = JSON.parse( '{"FlameTrap":{"start":0,"end":2.6417687074829934,"loop":false},"SawBlade":{"start":4,"end":9.027120181405895,"loop":false},"SkySummitPlank":{"start":11,"end":12.186190476190475,"loop":false},"SpinningSpikeTrap":{"start":14,"end":14.623764172335601,"loop":false},"WaterLoopC":{"start":16,"end":18.52126984126984,"loop":false}}' ); }, function (e, t, n) { (function (t) { var i; "undefined" != typeof self && self, (i = function (e, t, n, i, r) { return (function (e) { var t = {}; function n(i) { if (t[i]) return t[i].exports; var r = (t[i] = { i: i, l: !1, exports: {} }); return e[i].call(r.exports, r, r.exports, n), (r.l = !0), r.exports; } return ( (n.m = e), (n.c = t), (n.d = function (e, t, i) { n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: i }); }), (n.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }), (n.t = function (e, t) { if ((1 & t && (e = n(e)), 8 & t)) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var i = Object.create(null); if ((n.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e)) for (var r in e) n.d( i, r, function (t) { return e[t]; }.bind(null, r) ); return i; }), (n.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return n.d(t, "a", t), t; }), (n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }), (n.p = ""), n((n.s = "./legacy/legacy.ts")) ); })({ "../../../../node_modules/@fortawesome/fontawesome-svg-core/index.es.js": function (e, t, n) { "use strict"; n.r(t), function (e, i) { function r(e) { return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; })(e); } function o(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } function a(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e; } function s(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}, i = Object.keys(n); "function" == typeof Object.getOwnPropertySymbols && (i = i.concat( Object.getOwnPropertySymbols(n).filter(function (e) { return Object.getOwnPropertyDescriptor(n, e).enumerable; }) )), i.forEach(function (t) { a(e, t, n[t]); }); } return e; } function c(e, t) { return ( (function (e) { if (Array.isArray(e)) return e; })(e) || (function (e, t) { var n = [], i = !0, r = !1, o = void 0; try { for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) && (n.push(a.value), !t || n.length !== t); i = !0); } catch (e) { (r = !0), (o = e); } finally { try { i || null == s.return || s.return(); } finally { if (r) throw o; } } return n; })(e, t) || (function () { throw new TypeError("Invalid attempt to destructure non-iterable instance"); })() ); } function l(e) { return ( (function (e) { if (Array.isArray(e)) { for (var t = 0, n = new Array(e.length); t < e.length; t++) n[t] = e[t]; return n; } })(e) || (function (e) { if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e); })(e) || (function () { throw new TypeError("Invalid attempt to spread non-iterable instance"); })() ); } n.d(t, "icon", function () { return Pt; }), n.d(t, "noAuto", function () { return _t; }), n.d(t, "config", function () { return L; }), n.d(t, "toHtml", function () { return Ne; }), n.d(t, "layer", function () { return St; }), n.d(t, "text", function () { return xt; }), n.d(t, "counter", function () { return Tt; }), n.d(t, "library", function () { return bt; }), n.d(t, "dom", function () { return yt; }), n.d(t, "parse", function () { return Ct; }), n.d(t, "findIconDefinition", function () { return mt; }); var u = function () {}, h = {}, d = {}, p = null, f = { mark: u, measure: u }; try { "undefined" != typeof window && (h = window), "undefined" != typeof document && (d = document), "undefined" != typeof MutationObserver && (p = MutationObserver), "undefined" != typeof performance && (f = performance); } catch (e) {} var m = (h.navigator || {}).userAgent, g = void 0 === m ? "" : m, b = h, _ = d, v = p, y = f, C = (b.document, !!_.documentElement && !!_.head && "function" == typeof _.addEventListener && "function" == typeof _.createElement), P = ~g.indexOf("MSIE") || ~g.indexOf("Trident/"), x = ["HTML", "HEAD", "STYLE", "SCRIPT"], T = { fas: "solid", far: "regular", fal: "light", fab: "brands", fa: "solid" }, S = { solid: "fas", regular: "far", light: "fal", brands: "fab" }, O = /Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/, E = { 900: "fas", 400: "far", normal: "far", 300: "fal" }, M = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], A = M.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]), I = ["class", "data-prefix", "data-icon", "data-fa-transform", "data-fa-mask"], D = [ "xs", "sm", "lg", "fw", "ul", "li", "border", "pull-left", "pull-right", "spin", "pulse", "rotate-90", "rotate-180", "rotate-270", "flip-horizontal", "flip-vertical", "flip-both", "stack", "stack-1x", "stack-2x", "inverse", "layers", "layers-text", "layers-counter", ] .concat( M.map(function (e) { return "".concat(e, "x"); }) ) .concat( A.map(function (e) { return "w-".concat(e); }) ), R = b.FontAwesomeConfig || {}; _ && "function" == typeof _.querySelector && [ ["data-family-prefix", "familyPrefix"], ["data-replacement-class", "replacementClass"], ["data-auto-replace-svg", "autoReplaceSvg"], ["data-auto-add-css", "autoAddCss"], ["data-auto-a11y", "autoA11y"], ["data-search-pseudo-elements", "searchPseudoElements"], ["data-observe-mutations", "observeMutations"], ["data-mutate-approach", "mutateApproach"], ["data-keep-original-source", "keepOriginalSource"], ["data-measure-performance", "measurePerformance"], ["data-show-missing-icons", "showMissingIcons"], ].forEach(function (e) { var t = c(e, 2), n = t[0], i = t[1], r = (function (e) { return "" === e || ("false" !== e && ("true" === e || e)); })( (function (e) { var t = _.querySelector("script[" + e + "]"); if (t) return t.getAttribute(e); })(n) ); null != r && (R[i] = r); }); var w = s( {}, { familyPrefix: "fa", replacementClass: "svg-inline--fa", autoReplaceSvg: !0, autoAddCss: !0, autoA11y: !0, searchPseudoElements: !1, observeMutations: !0, mutateApproach: "async", keepOriginalSource: !0, measurePerformance: !1, showMissingIcons: !0, }, R ); w.autoReplaceSvg || (w.observeMutations = !1); var L = s({}, w); b.FontAwesomeConfig = L; var F = b || {}; F.___FONT_AWESOME___ || (F.___FONT_AWESOME___ = {}), F.___FONT_AWESOME___.styles || (F.___FONT_AWESOME___.styles = {}), F.___FONT_AWESOME___.hooks || (F.___FONT_AWESOME___.hooks = {}), F.___FONT_AWESOME___.shims || (F.___FONT_AWESOME___.shims = []); var N = F.___FONT_AWESOME___, k = [], z = !1; function j(e) { C && (z ? setTimeout(e, 0) : k.push(e)); } C && ((z = (_.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(_.readyState)) || _.addEventListener("DOMContentLoaded", function e() { _.removeEventListener("DOMContentLoaded", e), (z = 1), k.map(function (e) { return e(); }); })); var B, V = function () {}, G = void 0 !== e && void 0 !== e.process && "function" == typeof e.process.emit, U = void 0 === i ? setTimeout : i, H = []; function W() { for (var e = 0; e < H.length; e++) H[e][0](H[e][1]); (H = []), (B = !1); } function X(e, t) { H.push([e, t]), B || ((B = !0), U(W, 0)); } function Y(e) { var t = e.owner, n = t._state, i = t._data, r = e[n], o = e.then; if ("function" == typeof r) { n = "fulfilled"; try { i = r(i); } catch (e) { Q(o, e); } } K(o, i) || ("fulfilled" === n && Z(o, i), "rejected" === n && Q(o, i)); } function K(e, t) { var n; try { if (e === t) throw new TypeError("A promises callback cannot return that same promise."); if (t && ("function" == typeof t || "object" === r(t))) { var i = t.then; if ("function" == typeof i) return ( i.call( t, function (i) { n || ((n = !0), t === i ? q(e, i) : Z(e, i)); }, function (t) { n || ((n = !0), Q(e, t)); } ), !0 ); } } catch (t) { return n || Q(e, t), !0; } return !1; } function Z(e, t) { (e !== t && K(e, t)) || q(e, t); } function q(e, t) { "pending" === e._state && ((e._state = "settled"), (e._data = t), X($, e)); } function Q(e, t) { "pending" === e._state && ((e._state = "settled"), (e._data = t), X(ee, e)); } function J(e) { e._then = e._then.forEach(Y); } function $(e) { (e._state = "fulfilled"), J(e); } function ee(t) { (t._state = "rejected"), J(t), !t._handled && G && e.process.emit("unhandledRejection", t._data, t); } function te(t) { e.process.emit("rejectionHandled", t); } function ne(e) { if ("function" != typeof e) throw new TypeError("Promise resolver " + e + " is not a function"); if (this instanceof ne == 0) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); (this._then = []), (function (e, t) { function n(e) { Q(t, e); } try { e(function (e) { Z(t, e); }, n); } catch (e) { n(e); } })(e, this); } (ne.prototype = { constructor: ne, _state: "pending", _then: null, _data: void 0, _handled: !1, then: function (e, t) { var n = { owner: this, then: new this.constructor(V), fulfilled: e, rejected: t }; return ( (!t && !e) || this._handled || ((this._handled = !0), "rejected" === this._state && G && X(te, this)), "fulfilled" === this._state || "rejected" === this._state ? X(Y, n) : this._then.push(n), n.then ); }, catch: function (e) { return this.then(null, e); }, }), (ne.all = function (e) { if (!Array.isArray(e)) throw new TypeError("You must pass an array to Promise.all()."); return new ne(function (t, n) { var i = [], r = 0; function o(e) { return ( r++, function (n) { (i[e] = n), --r || t(i); } ); } for (var a, s = 0; s < e.length; s++) (a = e[s]) && "function" == typeof a.then ? a.then(o(s), n) : (i[s] = a); r || t(i); }); }), (ne.race = function (e) { if (!Array.isArray(e)) throw new TypeError("You must pass an array to Promise.race()."); return new ne(function (t, n) { for (var i, r = 0; r < e.length; r++) (i = e[r]) && "function" == typeof i.then ? i.then(t, n) : t(i); }); }), (ne.resolve = function (e) { return e && "object" === r(e) && e.constructor === ne ? e : new ne(function (t) { t(e); }); }), (ne.reject = function (e) { return new ne(function (t, n) { n(e); }); }); var ie = "function" == typeof Promise ? Promise : ne, re = 16, oe = { size: 16, x: 0, y: 0, rotate: 0, flipX: !1, flipY: !1 }; function ae(e) { if (e && C) { var t = _.createElement("style"); t.setAttribute("type", "text/css"), (t.innerHTML = e); for (var n = _.head.childNodes, i = null, r = n.length - 1; r > -1; r--) { var o = n[r], a = (o.tagName || "").toUpperCase(); ["STYLE", "LINK"].indexOf(a) > -1 && (i = o); } return _.head.insertBefore(t, i), e; } } function se() { for (var e = 12, t = ""; e-- > 0; ) t += "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[(62 * Math.random()) | 0]; return t; } function ce(e) { for (var t = [], n = (e || []).length >>> 0; n--; ) t[n] = e[n]; return t; } function le(e) { return e.classList ? ce(e.classList) : (e.getAttribute("class") || "").split(" ").filter(function (e) { return e; }); } function ue(e, t) { var n = t.split("-"), i = n[0], r = n.slice(1).join("-"); return i !== e || "" === r || (function (e) { return ~D.indexOf(e); })(r) ? null : r; } function he(e) { return "".concat(e).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">"); } function de(e) { return Object.keys(e || {}).reduce(function (t, n) { return t + "".concat(n, ": ").concat(e[n], ";"); }, ""); } function pe(e) { return e.size !== oe.size || e.x !== oe.x || e.y !== oe.y || e.rotate !== oe.rotate || e.flipX || e.flipY; } function fe(e) { var t = e.transform, n = e.containerWidth, i = e.iconWidth, r = { transform: "translate(".concat(n / 2, " 256)") }, o = "translate(".concat(32 * t.x, ", ").concat(32 * t.y, ") "), a = "scale(".concat((t.size / 16) * (t.flipX ? -1 : 1), ", ").concat((t.size / 16) * (t.flipY ? -1 : 1), ") "), s = "rotate(".concat(t.rotate, " 0 0)"); return { outer: r, inner: { transform: "".concat(o, " ").concat(a, " ").concat(s) }, path: { transform: "translate(".concat((i / 2) * -1, " -256)") } }; } var me = { x: 0, y: 0, width: "100%", height: "100%" }; function ge(e) { var t = e.icons, n = t.main, i = t.mask, r = e.prefix, o = e.iconName, a = e.transform, c = e.symbol, l = e.title, u = e.extra, h = e.watchable, d = void 0 !== h && h, p = i.found ? i : n, f = p.width, m = p.height, g = "fa-w-".concat(Math.ceil((f / m) * 16)), b = [L.replacementClass, o ? "".concat(L.familyPrefix, "-").concat(o) : "", g] .filter(function (e) { return -1 === u.classes.indexOf(e); }) .concat(u.classes) .join(" "), _ = { children: [], attributes: s({}, u.attributes, { "data-prefix": r, "data-icon": o, class: b, role: u.attributes.role || "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 ".concat(f, " ").concat(m), }), }; d && (_.attributes["data-fa-i2svg"] = ""), l && _.children.push({ tag: "title", attributes: { id: _.attributes["aria-labelledby"] || "title-".concat(se()) }, children: [l] }); var v = s({}, _, { prefix: r, iconName: o, main: n, mask: i, transform: a, symbol: c, styles: u.styles }), y = i.found && n.found ? (function (e) { var t = e.children, n = e.attributes, i = e.main, r = e.mask, o = e.transform, a = i.width, c = i.icon, l = r.width, u = r.icon, h = fe({ transform: o, containerWidth: l, iconWidth: a }), d = { tag: "rect", attributes: s({}, me, { fill: "white" }) }, p = { tag: "g", attributes: s({}, h.inner), children: [{ tag: "path", attributes: s({}, c.attributes, h.path, { fill: "black" }) }] }, f = { tag: "g", attributes: s({}, h.outer), children: [p] }, m = "mask-".concat(se()), g = "clip-".concat(se()), b = { tag: "defs", children: [ { tag: "clipPath", attributes: { id: g }, children: [u] }, { tag: "mask", attributes: s({}, me, { id: m, maskUnits: "userSpaceOnUse", maskContentUnits: "userSpaceOnUse" }), children: [d, f] }, ], }; return t.push(b, { tag: "rect", attributes: s({ fill: "currentColor", "clip-path": "url(#".concat(g, ")"), mask: "url(#".concat(m, ")") }, me) }), { children: t, attributes: n }; })(v) : (function (e) { var t = e.children, n = e.attributes, i = e.main, r = e.transform, o = de(e.styles); if ((o.length > 0 && (n.style = o), pe(r))) { var a = fe({ transform: r, containerWidth: i.width, iconWidth: i.width }); t.push({ tag: "g", attributes: s({}, a.outer), children: [{ tag: "g", attributes: s({}, a.inner), children: [{ tag: i.icon.tag, children: i.icon.children, attributes: s({}, i.icon.attributes, a.path) }] }], }); } else t.push(i.icon); return { children: t, attributes: n }; })(v), C = y.children, P = y.attributes; return ( (v.children = C), (v.attributes = P), c ? (function (e) { var t = e.prefix, n = e.iconName, i = e.children, r = e.attributes, o = e.symbol; return [ { tag: "svg", attributes: { style: "display: none;" }, children: [{ tag: "symbol", attributes: s({}, r, { id: !0 === o ? "".concat(t, "-").concat(L.familyPrefix, "-").concat(n) : o }), children: i }], }, ]; })(v) : (function (e) { var t = e.children, n = e.main, i = e.mask, r = e.attributes, o = e.styles, a = e.transform; if (pe(a) && n.found && !i.found) { var c = { x: n.width / n.height / 2, y: 0.5 }; r.style = de(s({}, o, { "transform-origin": "".concat(c.x + a.x / 16, "em ").concat(c.y + a.y / 16, "em") })); } return [{ tag: "svg", attributes: r, children: t }]; })(v) ); } function be(e) { var t = e.content, n = e.width, i = e.height, r = e.transform, o = e.title, a = e.extra, c = e.watchable, l = void 0 !== c && c, u = s({}, a.attributes, o ? { title: o } : {}, { class: a.classes.join(" ") }); l && (u["data-fa-i2svg"] = ""); var h = s({}, a.styles); pe(r) && ((h.transform = (function (e) { var t = e.transform, n = e.width, i = void 0 === n ? 16 : n, r = e.height, o = void 0 === r ? 16 : r, a = e.startCentered, s = void 0 !== a && a, c = ""; return ( (c += s && P ? "translate(".concat(t.x / re - i / 2, "em, ").concat(t.y / re - o / 2, "em) ") : s ? "translate(calc(-50% + ".concat(t.x / re, "em), calc(-50% + ").concat(t.y / re, "em)) ") : "translate(".concat(t.x / re, "em, ").concat(t.y / re, "em) ")), (c += "scale(".concat((t.size / re) * (t.flipX ? -1 : 1), ", ").concat((t.size / re) * (t.flipY ? -1 : 1), ") ")), (c += "rotate(".concat(t.rotate, "deg) ")) ); })({ transform: r, startCentered: !0, width: n, height: i })), (h["-webkit-transform"] = h.transform)); var d = de(h); d.length > 0 && (u.style = d); var p = []; return p.push({ tag: "span", attributes: u, children: [t] }), o && p.push({ tag: "span", attributes: { class: "sr-only" }, children: [o] }), p; } function _e(e) { var t = e.content, n = e.title, i = e.extra, r = s({}, i.attributes, n ? { title: n } : {}, { class: i.classes.join(" ") }), o = de(i.styles); o.length > 0 && (r.style = o); var a = []; return a.push({ tag: "span", attributes: r, children: [t] }), n && a.push({ tag: "span", attributes: { class: "sr-only" }, children: [n] }), a; } var ve = function () {}, ye = L.measurePerformance && y && y.mark && y.measure ? y : { mark: ve, measure: ve }, Ce = function (e) { ye.mark("".concat('FA "5.9.0"', " ").concat(e, " ends")), ye.measure("".concat('FA "5.9.0"', " ").concat(e), "".concat('FA "5.9.0"', " ").concat(e, " begins"), "".concat('FA "5.9.0"', " ").concat(e, " ends")); }, Pe = function (e) { return ( ye.mark("".concat('FA "5.9.0"', " ").concat(e, " begins")), function () { return Ce(e); } ); }, xe = function (e, t, n, i) { var r, o, a, s = Object.keys(e), c = s.length, l = void 0 !== i ? (function (e, t) { return function (n, i, r, o) { return e.call(t, n, i, r, o); }; })(t, i) : t; for (void 0 === n ? ((r = 1), (a = e[s[0]])) : ((r = 0), (a = n)); r < c; r++) a = l(a, e[(o = s[r])], o, e); return a; }; function Te(e) { for (var t = "", n = 0; n < e.length; n++) t += ("000" + e.charCodeAt(n).toString(16)).slice(-4); return t; } function Se(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, i = n.skipHooks, r = void 0 !== i && i, o = Object.keys(t).reduce(function (e, n) { var i = t[n]; return i.icon ? (e[i.iconName] = i.icon) : (e[n] = i), e; }, {}); "function" != typeof N.hooks.addPack || r ? (N.styles[e] = s({}, N.styles[e] || {}, o)) : N.hooks.addPack(e, o), "fas" === e && Se("fa", t); } var Oe = N.styles, Ee = N.shims, Me = {}, Ae = {}, Ie = {}, De = function () { var e = function (e) { return xe( Oe, function (t, n, i) { return (t[i] = xe(n, e, {})), t; }, {} ); }; (Me = e(function (e, t, n) { return t[3] && (e[t[3]] = n), e; })), (Ae = e(function (e, t, n) { var i = t[2]; return ( (e[n] = n), i.forEach(function (t) { e[t] = n; }), e ); })); var t = "far" in Oe; Ie = xe( Ee, function (e, n) { var i = n[0], r = n[1], o = n[2]; return "far" !== r || t || (r = "fas"), (e[i] = { prefix: r, iconName: o }), e; }, {} ); }; function Re(e, t) { return (Me[e] || {})[t]; } De(); var we = N.styles; function Le(e) { return e.reduce( function (e, t) { var n = ue(L.familyPrefix, t); if (we[t]) e.prefix = t; else if (L.autoFetchSvg && ["fas", "far", "fal", "fab", "fa"].indexOf(t) > -1) e.prefix = t; else if (n) { var i = "fa" === e.prefix ? (function (e) { return Ie[e] || { prefix: null, iconName: null }; })(n) : {}; (e.iconName = i.iconName || n), (e.prefix = i.prefix || e.prefix); } else t !== L.replacementClass && 0 !== t.indexOf("fa-w-") && e.rest.push(t); return e; }, { prefix: null, iconName: null, rest: [] } ); } function Fe(e, t, n) { if (e && e[t] && e[t][n]) return { prefix: t, iconName: n, icon: e[t][n] }; } function Ne(e) { var t = e.tag, n = e.attributes, i = void 0 === n ? {} : n, r = e.children, o = void 0 === r ? [] : r; return "string" == typeof e ? he(e) : "<" .concat(t, " ") .concat( (function (e) { return Object.keys(e || {}) .reduce(function (t, n) { return t + "".concat(n, '="').concat(he(e[n]), '" '); }, "") .trim(); })(i), ">" ) .concat(o.map(Ne).join(""), ""); } var ke = function () {}; function ze(e) { return "string" == typeof (e.getAttribute ? e.getAttribute("data-fa-i2svg") : null); } var je = { replace: function (e) { var t = e[0], n = e[1] .map(function (e) { return Ne(e); }) .join("\n"); if (t.parentNode && t.outerHTML) t.outerHTML = n + (L.keepOriginalSource && "svg" !== t.tagName.toLowerCase() ? "\x3c!-- ".concat(t.outerHTML, " --\x3e") : ""); else if (t.parentNode) { var i = document.createElement("span"); t.parentNode.replaceChild(i, t), (i.outerHTML = n); } }, nest: function (e) { var t = e[0], n = e[1]; if (~le(t).indexOf(L.replacementClass)) return je.replace(e); var i = new RegExp("".concat(L.familyPrefix, "-.*")); delete n[0].attributes.style; var r = n[0].attributes.class.split(" ").reduce( function (e, t) { return t === L.replacementClass || t.match(i) ? e.toSvg.push(t) : e.toNode.push(t), e; }, { toNode: [], toSvg: [] } ); n[0].attributes.class = r.toSvg.join(" "); var o = n .map(function (e) { return Ne(e); }) .join("\n"); t.setAttribute("class", r.toNode.join(" ")), t.setAttribute("data-fa-i2svg", ""), (t.innerHTML = o); }, }; function Be(e) { e(); } function Ve(e, t) { var n = "function" == typeof t ? t : ke; if (0 === e.length) n(); else { var i = Be; "async" === L.mutateApproach && (i = b.requestAnimationFrame || Be), i(function () { var t = !0 === L.autoReplaceSvg ? je.replace : je[L.autoReplaceSvg] || je.replace, i = Pe("mutate"); e.map(t), i(), n(); }); } } var Ge = !1; function Ue() { Ge = !1; } var He = null; function We(e) { if (v && L.observeMutations) { var t = e.treeCallback, n = e.nodeCallback, i = e.pseudoElementsCallback, r = e.observeMutationsRoot, o = void 0 === r ? _ : r; (He = new v(function (e) { Ge || ce(e).forEach(function (e) { if ( ("childList" === e.type && e.addedNodes.length > 0 && !ze(e.addedNodes[0]) && (L.searchPseudoElements && i(e.target), t(e.target)), "attributes" === e.type && e.target.parentNode && L.searchPseudoElements && i(e.target.parentNode), "attributes" === e.type && ze(e.target) && ~I.indexOf(e.attributeName)) ) if ("class" === e.attributeName) { var r = Le(le(e.target)), o = r.prefix, a = r.iconName; o && e.target.setAttribute("data-prefix", o), a && e.target.setAttribute("data-icon", a); } else n(e.target); }); })), C && He.observe(o, { childList: !0, attributes: !0, characterData: !0, subtree: !0 }); } } function Xe(e) { var t, n, i = e.getAttribute("data-prefix"), r = e.getAttribute("data-icon"), o = void 0 !== e.innerText ? e.innerText.trim() : "", a = Le(le(e)); return ( i && r && ((a.prefix = i), (a.iconName = r)), a.prefix && o.length > 1 ? (a.iconName = ((t = a.prefix), (n = e.innerText), (Ae[t] || {})[n])) : a.prefix && 1 === o.length && (a.iconName = Re(a.prefix, Te(e.innerText))), a ); } var Ye = function (e) { var t = { size: 16, x: 0, y: 0, flipX: !1, flipY: !1, rotate: 0 }; return e ? e .toLowerCase() .split(" ") .reduce(function (e, t) { var n = t.toLowerCase().split("-"), i = n[0], r = n.slice(1).join("-"); if (i && "h" === r) return (e.flipX = !0), e; if (i && "v" === r) return (e.flipY = !0), e; if (((r = parseFloat(r)), isNaN(r))) return e; switch (i) { case "grow": e.size = e.size + r; break; case "shrink": e.size = e.size - r; break; case "left": e.x = e.x - r; break; case "right": e.x = e.x + r; break; case "up": e.y = e.y - r; break; case "down": e.y = e.y + r; break; case "rotate": e.rotate = e.rotate + r; } return e; }, t) : t; }; function Ke(e) { var t = Xe(e), n = t.iconName, i = t.prefix, r = t.rest, o = (function (e) { var t = e.getAttribute("style"), n = []; return ( t && (n = t.split(";").reduce(function (e, t) { var n = t.split(":"), i = n[0], r = n.slice(1); return i && r.length > 0 && (e[i] = r.join(":").trim()), e; }, {})), n ); })(e), a = (function (e) { return Ye(e.getAttribute("data-fa-transform")); })(e), s = (function (e) { var t = e.getAttribute("data-fa-symbol"); return null !== t && ("" === t || t); })(e), c = (function (e) { var t = ce(e.attributes).reduce(function (e, t) { return "class" !== e.name && "style" !== e.name && (e[t.name] = t.value), e; }, {}), n = e.getAttribute("title"); return L.autoA11y && (n ? (t["aria-labelledby"] = "".concat(L.replacementClass, "-title-").concat(se())) : ((t["aria-hidden"] = "true"), (t.focusable = "false"))), t; })(e), l = (function (e) { var t = e.getAttribute("data-fa-mask"); return t ? Le( t.split(" ").map(function (e) { return e.trim(); }) ) : { prefix: null, iconName: null, rest: [] }; })(e); return { iconName: n, title: e.getAttribute("title"), prefix: i, transform: a, symbol: s, mask: l, extra: { classes: r, styles: o, attributes: c } }; } function Ze(e) { (this.name = "MissingIcon"), (this.message = e || "Icon unavailable"), (this.stack = new Error().stack); } (Ze.prototype = Object.create(Error.prototype)), (Ze.prototype.constructor = Ze); var qe = { fill: "currentColor" }, Qe = { attributeType: "XML", repeatCount: "indefinite", dur: "2s" }, Je = { tag: "path", attributes: s({}, qe, { d: "M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z", }), }, $e = s({}, Qe, { attributeName: "opacity" }), et = { tag: "g", children: [ Je, { tag: "circle", attributes: s({}, qe, { cx: "256", cy: "364", r: "28" }), children: [ { tag: "animate", attributes: s({}, Qe, { attributeName: "r", values: "28;14;28;28;14;28;" }) }, { tag: "animate", attributes: s({}, $e, { values: "1;0;1;1;0;1;" }) }, ], }, { tag: "path", attributes: s({}, qe, { opacity: "1", d: "M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z", }), children: [{ tag: "animate", attributes: s({}, $e, { values: "1;0;0;0;0;1;" }) }], }, { tag: "path", attributes: s({}, qe, { opacity: "0", d: "M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z" }), children: [{ tag: "animate", attributes: s({}, $e, { values: "0;0;1;1;0;0;" }) }], }, ], }, tt = N.styles; function nt(e, t) { return new ie(function (n, i) { var r = { found: !1, width: 512, height: 512, icon: et }; if (e && t && tt[t] && tt[t][e]) { var o = tt[t][e]; return n((r = { found: !0, width: o[0], height: o[1], icon: { tag: "path", attributes: { fill: "currentColor", d: o.slice(4)[0] } } })); } e && t && !L.showMissingIcons ? i(new Ze("Icon is missing for prefix ".concat(t, " with icon name ").concat(e))) : n(r); }); } var it = N.styles; function rt(e) { var t = Ke(e); return ~t.extra.classes.indexOf("fa-layers-text") ? (function (e, t) { var n = t.title, i = t.transform, r = t.extra, o = null, a = null; if (P) { var s = parseInt(getComputedStyle(e).fontSize, 10), c = e.getBoundingClientRect(); (o = c.width / s), (a = c.height / s); } return L.autoA11y && !n && (r.attributes["aria-hidden"] = "true"), ie.resolve([e, be({ content: e.innerHTML, width: o, height: a, transform: i, title: n, extra: r, watchable: !0 })]); })(e, t) : (function (e, t) { var n = t.iconName, i = t.title, r = t.prefix, o = t.transform, a = t.symbol, s = t.mask, l = t.extra; return new ie(function (t, u) { ie.all([nt(n, r), nt(s.iconName, s.prefix)]).then(function (s) { var u = c(s, 2), h = u[0], d = u[1]; t([e, ge({ icons: { main: h, mask: d }, prefix: r, iconName: n, transform: o, symbol: a, mask: d, title: i, extra: l, watchable: !0 })]); }); }); })(e, t); } function ot(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; if (C) { var n = _.documentElement.classList, i = function (e) { return n.add("".concat("fontawesome-i2svg", "-").concat(e)); }, r = function (e) { return n.remove("".concat("fontawesome-i2svg", "-").concat(e)); }, o = L.autoFetchSvg ? Object.keys(T) : Object.keys(it), a = [".".concat("fa-layers-text", ":not([").concat("data-fa-i2svg", "])")] .concat( o.map(function (e) { return ".".concat(e, ":not([").concat("data-fa-i2svg", "])"); }) ) .join(", "); if (0 !== a.length) { var s = []; try { s = ce(e.querySelectorAll(a)); } catch (e) {} if (s.length > 0) { i("pending"), r("complete"); var c = Pe("onTree"), l = s.reduce(function (e, t) { try { var n = rt(t); n && e.push(n); } catch (e) {} return e; }, []); return new ie(function (e, n) { ie.all(l) .then(function (n) { Ve(n, function () { i("active"), i("complete"), r("pending"), "function" == typeof t && t(), c(), e(); }); }) .catch(function () { c(), n(); }); }); } } } } function at(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; rt(e).then(function (e) { e && Ve([e], t); }); } function st(e, t) { var n = "".concat("data-fa-pseudo-element-pending").concat(t.replace(":", "-")); return new ie(function (i, r) { if (null !== e.getAttribute(n)) return i(); var o = ce(e.children).filter(function (e) { return e.getAttribute("data-fa-pseudo-element") === t; })[0], a = b.getComputedStyle(e, t), c = a.getPropertyValue("font-family").match(O), l = a.getPropertyValue("font-weight"); if (o && !c) return e.removeChild(o), i(); if (c) { var u = a.getPropertyValue("content"), h = ~["Light", "Regular", "Solid", "Brands"].indexOf(c[1]) ? S[c[1].toLowerCase()] : E[l], d = Te(3 === u.length ? u.substr(1, 1) : u), p = Re(h, d), f = p; if (!p || (o && o.getAttribute("data-prefix") === h && o.getAttribute("data-icon") === f)) i(); else { e.setAttribute(n, f), o && e.removeChild(o); var m = { iconName: null, title: null, prefix: null, transform: oe, symbol: !1, mask: null, extra: { classes: [], styles: {}, attributes: {} } }, g = m.extra; (g.attributes["data-fa-pseudo-element"] = t), nt(p, h) .then(function (r) { var o = ge(s({}, m, { icons: { main: r, mask: { prefix: null, iconName: null, rest: [] } }, prefix: h, iconName: f, extra: g, watchable: !0 })), a = _.createElement("svg"); ":before" === t ? e.insertBefore(a, e.firstChild) : e.appendChild(a), (a.outerHTML = o .map(function (e) { return Ne(e); }) .join("\n")), e.removeAttribute(n), i(); }) .catch(r); } } else i(); }); } function ct(e) { return ie.all([st(e, ":before"), st(e, ":after")]); } function lt(e) { return !(e.parentNode === document.head || ~x.indexOf(e.tagName.toUpperCase()) || e.getAttribute("data-fa-pseudo-element") || (e.parentNode && "svg" === e.parentNode.tagName)); } function ut(e) { if (C) return new ie(function (t, n) { var i = ce(e.querySelectorAll("*")).filter(lt).map(ct), r = Pe("searchPseudoElements"); (Ge = !0), ie .all(i) .then(function () { r(), Ue(), t(); }) .catch(function () { r(), Ue(), n(); }); }); } function ht() { var e = "svg-inline--fa", t = L.familyPrefix, n = L.replacementClass, i = 'svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}'; if ("fa" !== t || n !== e) { var r = new RegExp("\\.".concat("fa", "\\-"), "g"), o = new RegExp("\\.".concat(e), "g"); i = i.replace(r, ".".concat(t, "-")).replace(o, ".".concat(n)); } return i; } function dt(e) { return { found: !0, width: e[0], height: e[1], icon: { tag: "path", attributes: { fill: "currentColor", d: e.slice(4)[0] } } }; } function pt() { L.autoAddCss && !vt && (ae(ht()), (vt = !0)); } function ft(e, t) { return ( Object.defineProperty(e, "abstract", { get: t }), Object.defineProperty(e, "html", { get: function () { return e.abstract.map(function (e) { return Ne(e); }); }, }), Object.defineProperty(e, "node", { get: function () { if (C) { var t = _.createElement("div"); return (t.innerHTML = e.html), t.children; } }, }), e ); } function mt(e) { var t = e.prefix, n = void 0 === t ? "fa" : t, i = e.iconName; if (i) return Fe(bt.definitions, n, i) || Fe(N.styles, n, i); } var gt, bt = new ((function () { function e() { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, e), (this.definitions = {}); } var t, n, i; return ( (t = e), (n = [ { key: "add", value: function () { for (var e = this, t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; var r = n.reduce(this._pullDefinitions, {}); Object.keys(r).forEach(function (t) { (e.definitions[t] = s({}, e.definitions[t] || {}, r[t])), Se(t, r[t]), De(); }); }, }, { key: "reset", value: function () { this.definitions = {}; }, }, { key: "_pullDefinitions", value: function (e, t) { var n = t.prefix && t.iconName && t.icon ? { 0: t } : t; return ( Object.keys(n).map(function (t) { var i = n[t], r = i.prefix, o = i.iconName, a = i.icon; e[r] || (e[r] = {}), (e[r][o] = a); }), e ); }, }, ]) && o(t.prototype, n), i && o(t, i), e ); })())(), _t = function () { (L.autoReplaceSvg = !1), (L.observeMutations = !1), He && He.disconnect(); }, vt = !1, yt = { i2svg: function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (C) { pt(); var t = e.node, n = void 0 === t ? _ : t, i = e.callback, r = void 0 === i ? function () {} : i; return L.searchPseudoElements && ut(n), ot(n, r); } return ie.reject("Operation requires a DOM of some kind."); }, css: ht, insertCss: function () { vt || (ae(ht()), (vt = !0)); }, watch: function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.autoReplaceSvgRoot, n = e.observeMutationsRoot; !1 === L.autoReplaceSvg && (L.autoReplaceSvg = !0), (L.observeMutations = !0), j(function () { Et({ autoReplaceSvgRoot: t }), We({ treeCallback: ot, nodeCallback: at, pseudoElementsCallback: ut, observeMutationsRoot: n }); }); }, }, Ct = { transform: function (e) { return Ye(e); }, }, Pt = ((gt = function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.transform, i = void 0 === n ? oe : n, r = t.symbol, o = void 0 !== r && r, a = t.mask, c = void 0 === a ? null : a, l = t.title, u = void 0 === l ? null : l, h = t.classes, d = void 0 === h ? [] : h, p = t.attributes, f = void 0 === p ? {} : p, m = t.styles, g = void 0 === m ? {} : m; if (e) { var b = e.prefix, _ = e.iconName, v = e.icon; return ft(s({ type: "icon" }, e), function () { return ( pt(), L.autoA11y && (u ? (f["aria-labelledby"] = "".concat(L.replacementClass, "-title-").concat(se())) : ((f["aria-hidden"] = "true"), (f.focusable = "false"))), ge({ icons: { main: dt(v), mask: c ? dt(c.icon) : { found: !1, width: null, height: null, icon: {} } }, prefix: b, iconName: _, transform: s({}, oe, i), symbol: o, title: u, extra: { attributes: f, styles: g, classes: d }, }) ); }); } }), function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = (e || {}).icon ? e : mt(e || {}), i = t.mask; return i && (i = (i || {}).icon ? i : mt(i || {})), gt(n, s({}, t, { mask: i })); }), xt = function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.transform, i = void 0 === n ? oe : n, r = t.title, o = void 0 === r ? null : r, a = t.classes, c = void 0 === a ? [] : a, u = t.attributes, h = void 0 === u ? {} : u, d = t.styles, p = void 0 === d ? {} : d; return ft({ type: "text", content: e }, function () { return pt(), be({ content: e, transform: s({}, oe, i), title: o, extra: { attributes: h, styles: p, classes: ["".concat(L.familyPrefix, "-layers-text")].concat(l(c)) } }); }); }, Tt = function (e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.title, i = void 0 === n ? null : n, r = t.classes, o = void 0 === r ? [] : r, a = t.attributes, s = void 0 === a ? {} : a, c = t.styles, u = void 0 === c ? {} : c; return ft({ type: "counter", content: e }, function () { return pt(), _e({ content: e.toString(), title: i, extra: { attributes: s, styles: u, classes: ["".concat(L.familyPrefix, "-layers-counter")].concat(l(o)) } }); }); }, St = function (e) { return ft({ type: "layer" }, function () { pt(); var t = []; return ( e(function (e) { Array.isArray(e) ? e.map(function (e) { t = t.concat(e.abstract); }) : (t = t.concat(e.abstract)); }), [{ tag: "span", attributes: { class: "".concat(L.familyPrefix, "-layers") }, children: t }] ); }); }, Ot = { noAuto: _t, config: L, dom: yt, library: bt, parse: Ct, findIconDefinition: mt, icon: Pt, text: xt, counter: Tt, layer: St, toHtml: Ne }, Et = function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.autoReplaceSvgRoot, n = void 0 === t ? _ : t; (Object.keys(N.styles).length > 0 || L.autoFetchSvg) && C && L.autoReplaceSvg && Ot.dom.i2svg({ node: n }); }; }.call(this, n("../../../../node_modules/webpack/buildin/global.js"), n("../../../../node_modules/timers-browserify/main.js").setImmediate); }, "../../../../node_modules/@fortawesome/free-regular-svg-icons/index.es.js": function (e, t, n) { "use strict"; n.r(t), n.d(t, "far", function () { return Kt; }), n.d(t, "prefix", function () { return i; }), n.d(t, "faAddressBook", function () { return r; }), n.d(t, "faAddressCard", function () { return o; }), n.d(t, "faAngry", function () { return a; }), n.d(t, "faArrowAltCircleDown", function () { return s; }), n.d(t, "faArrowAltCircleLeft", function () { return c; }), n.d(t, "faArrowAltCircleRight", function () { return l; }), n.d(t, "faArrowAltCircleUp", function () { return u; }), n.d(t, "faBell", function () { return h; }), n.d(t, "faBellSlash", function () { return d; }), n.d(t, "faBookmark", function () { return p; }), n.d(t, "faBuilding", function () { return f; }), n.d(t, "faCalendar", function () { return m; }), n.d(t, "faCalendarAlt", function () { return g; }), n.d(t, "faCalendarCheck", function () { return b; }), n.d(t, "faCalendarMinus", function () { return _; }), n.d(t, "faCalendarPlus", function () { return v; }), n.d(t, "faCalendarTimes", function () { return y; }), n.d(t, "faCaretSquareDown", function () { return C; }), n.d(t, "faCaretSquareLeft", function () { return P; }), n.d(t, "faCaretSquareRight", function () { return x; }), n.d(t, "faCaretSquareUp", function () { return T; }), n.d(t, "faChartBar", function () { return S; }), n.d(t, "faCheckCircle", function () { return O; }), n.d(t, "faCheckSquare", function () { return E; }), n.d(t, "faCircle", function () { return M; }), n.d(t, "faClipboard", function () { return A; }), n.d(t, "faClock", function () { return I; }), n.d(t, "faClone", function () { return D; }), n.d(t, "faClosedCaptioning", function () { return R; }), n.d(t, "faComment", function () { return w; }), n.d(t, "faCommentAlt", function () { return L; }), n.d(t, "faCommentDots", function () { return F; }), n.d(t, "faComments", function () { return N; }), n.d(t, "faCompass", function () { return k; }), n.d(t, "faCopy", function () { return z; }), n.d(t, "faCopyright", function () { return j; }), n.d(t, "faCreditCard", function () { return B; }), n.d(t, "faDizzy", function () { return V; }), n.d(t, "faDotCircle", function () { return G; }), n.d(t, "faEdit", function () { return U; }), n.d(t, "faEnvelope", function () { return H; }), n.d(t, "faEnvelopeOpen", function () { return W; }), n.d(t, "faEye", function () { return X; }), n.d(t, "faEyeSlash", function () { return Y; }), n.d(t, "faFile", function () { return K; }), n.d(t, "faFileAlt", function () { return Z; }), n.d(t, "faFileArchive", function () { return q; }), n.d(t, "faFileAudio", function () { return Q; }), n.d(t, "faFileCode", function () { return J; }), n.d(t, "faFileExcel", function () { return $; }), n.d(t, "faFileImage", function () { return ee; }), n.d(t, "faFilePdf", function () { return te; }), n.d(t, "faFilePowerpoint", function () { return ne; }), n.d(t, "faFileVideo", function () { return ie; }), n.d(t, "faFileWord", function () { return re; }), n.d(t, "faFlag", function () { return oe; }), n.d(t, "faFlushed", function () { return ae; }), n.d(t, "faFolder", function () { return se; }), n.d(t, "faFolderOpen", function () { return ce; }), n.d(t, "faFontAwesomeLogoFull", function () { return le; }), n.d(t, "faFrown", function () { return ue; }), n.d(t, "faFrownOpen", function () { return he; }), n.d(t, "faFutbol", function () { return de; }), n.d(t, "faGem", function () { return pe; }), n.d(t, "faGrimace", function () { return fe; }), n.d(t, "faGrin", function () { return me; }), n.d(t, "faGrinAlt", function () { return ge; }), n.d(t, "faGrinBeam", function () { return be; }), n.d(t, "faGrinBeamSweat", function () { return _e; }), n.d(t, "faGrinHearts", function () { return ve; }), n.d(t, "faGrinSquint", function () { return ye; }), n.d(t, "faGrinSquintTears", function () { return Ce; }), n.d(t, "faGrinStars", function () { return Pe; }), n.d(t, "faGrinTears", function () { return xe; }), n.d(t, "faGrinTongue", function () { return Te; }), n.d(t, "faGrinTongueSquint", function () { return Se; }), n.d(t, "faGrinTongueWink", function () { return Oe; }), n.d(t, "faGrinWink", function () { return Ee; }), n.d(t, "faHandLizard", function () { return Me; }), n.d(t, "faHandPaper", function () { return Ae; }), n.d(t, "faHandPeace", function () { return Ie; }), n.d(t, "faHandPointDown", function () { return De; }), n.d(t, "faHandPointLeft", function () { return Re; }), n.d(t, "faHandPointRight", function () { return we; }), n.d(t, "faHandPointUp", function () { return Le; }), n.d(t, "faHandPointer", function () { return Fe; }), n.d(t, "faHandRock", function () { return Ne; }), n.d(t, "faHandScissors", function () { return ke; }), n.d(t, "faHandSpock", function () { return ze; }), n.d(t, "faHandshake", function () { return je; }), n.d(t, "faHdd", function () { return Be; }), n.d(t, "faHeart", function () { return Ve; }), n.d(t, "faHospital", function () { return Ge; }), n.d(t, "faHourglass", function () { return Ue; }), n.d(t, "faIdBadge", function () { return He; }), n.d(t, "faIdCard", function () { return We; }), n.d(t, "faImage", function () { return Xe; }), n.d(t, "faImages", function () { return Ye; }), n.d(t, "faKeyboard", function () { return Ke; }), n.d(t, "faKiss", function () { return Ze; }), n.d(t, "faKissBeam", function () { return qe; }), n.d(t, "faKissWinkHeart", function () { return Qe; }), n.d(t, "faLaugh", function () { return Je; }), n.d(t, "faLaughBeam", function () { return $e; }), n.d(t, "faLaughSquint", function () { return et; }), n.d(t, "faLaughWink", function () { return tt; }), n.d(t, "faLemon", function () { return nt; }), n.d(t, "faLifeRing", function () { return it; }), n.d(t, "faLightbulb", function () { return rt; }), n.d(t, "faListAlt", function () { return ot; }), n.d(t, "faMap", function () { return at; }), n.d(t, "faMeh", function () { return st; }), n.d(t, "faMehBlank", function () { return ct; }), n.d(t, "faMehRollingEyes", function () { return lt; }), n.d(t, "faMinusSquare", function () { return ut; }), n.d(t, "faMoneyBillAlt", function () { return ht; }), n.d(t, "faMoon", function () { return dt; }), n.d(t, "faNewspaper", function () { return pt; }), n.d(t, "faObjectGroup", function () { return ft; }), n.d(t, "faObjectUngroup", function () { return mt; }), n.d(t, "faPaperPlane", function () { return gt; }), n.d(t, "faPauseCircle", function () { return bt; }), n.d(t, "faPlayCircle", function () { return _t; }), n.d(t, "faPlusSquare", function () { return vt; }), n.d(t, "faQuestionCircle", function () { return yt; }), n.d(t, "faRegistered", function () { return Ct; }), n.d(t, "faSadCry", function () { return Pt; }), n.d(t, "faSadTear", function () { return xt; }), n.d(t, "faSave", function () { return Tt; }), n.d(t, "faShareSquare", function () { return St; }), n.d(t, "faSmile", function () { return Ot; }), n.d(t, "faSmileBeam", function () { return Et; }), n.d(t, "faSmileWink", function () { return Mt; }), n.d(t, "faSnowflake", function () { return At; }), n.d(t, "faSquare", function () { return It; }), n.d(t, "faStar", function () { return Dt; }), n.d(t, "faStarHalf", function () { return Rt; }), n.d(t, "faStickyNote", function () { return wt; }), n.d(t, "faStopCircle", function () { return Lt; }), n.d(t, "faSun", function () { return Ft; }), n.d(t, "faSurprise", function () { return Nt; }), n.d(t, "faThumbsDown", function () { return kt; }), n.d(t, "faThumbsUp", function () { return zt; }), n.d(t, "faTimesCircle", function () { return jt; }), n.d(t, "faTired", function () { return Bt; }), n.d(t, "faTrashAlt", function () { return Vt; }), n.d(t, "faUser", function () { return Gt; }), n.d(t, "faUserCircle", function () { return Ut; }), n.d(t, "faWindowClose", function () { return Ht; }), n.d(t, "faWindowMaximize", function () { return Wt; }), n.d(t, "faWindowMinimize", function () { return Xt; }), n.d(t, "faWindowRestore", function () { return Yt; }); var i = "far", r = { prefix: "far", iconName: "address-book", icon: [ 448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z", ], }, o = { prefix: "far", iconName: "address-card", icon: [ 576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z", ], }, a = { prefix: "far", iconName: "angry", icon: [ 496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z", ], }, s = { prefix: "far", iconName: "arrow-alt-circle-down", icon: [ 512, 512, [], "f358", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z", ], }, c = { prefix: "far", iconName: "arrow-alt-circle-left", icon: [ 512, 512, [], "f359", "M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z", ], }, l = { prefix: "far", iconName: "arrow-alt-circle-right", icon: [ 512, 512, [], "f35a", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z", ], }, u = { prefix: "far", iconName: "arrow-alt-circle-up", icon: [ 512, 512, [], "f35b", "M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z", ], }, h = { prefix: "far", iconName: "bell", icon: [ 448, 512, [], "f0f3", "M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z", ], }, d = { prefix: "far", iconName: "bell-slash", icon: [ 640, 512, [], "f1f6", "M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z", ], }, p = { prefix: "far", iconName: "bookmark", icon: [384, 512, [], "f02e", "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"], }, f = { prefix: "far", iconName: "building", icon: [ 448, 512, [], "f1ad", "M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z", ], }, m = { prefix: "far", iconName: "calendar", icon: [ 448, 512, [], "f133", "M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z", ], }, g = { prefix: "far", iconName: "calendar-alt", icon: [ 448, 512, [], "f073", "M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, b = { prefix: "far", iconName: "calendar-check", icon: [ 448, 512, [], "f274", "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z", ], }, _ = { prefix: "far", iconName: "calendar-minus", icon: [ 448, 512, [], "f272", "M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, v = { prefix: "far", iconName: "calendar-plus", icon: [ 448, 512, [], "f271", "M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, y = { prefix: "far", iconName: "calendar-times", icon: [ 448, 512, [], "f273", "M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, C = { prefix: "far", iconName: "caret-square-down", icon: [ 448, 512, [], "f150", "M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, P = { prefix: "far", iconName: "caret-square-left", icon: [ 448, 512, [], "f191", "M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, x = { prefix: "far", iconName: "caret-square-right", icon: [ 448, 512, [], "f152", "M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, T = { prefix: "far", iconName: "caret-square-up", icon: [ 448, 512, [], "f151", "M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, S = { prefix: "far", iconName: "chart-bar", icon: [ 512, 512, [], "f080", "M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z", ], }, O = { prefix: "far", iconName: "check-circle", icon: [ 512, 512, [], "f058", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z", ], }, E = { prefix: "far", iconName: "check-square", icon: [ 448, 512, [], "f14a", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z", ], }, M = { prefix: "far", iconName: "circle", icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"], }, A = { prefix: "far", iconName: "clipboard", icon: [ 384, 512, [], "f328", "M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24", ], }, I = { prefix: "far", iconName: "clock", icon: [ 512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z", ], }, D = { prefix: "far", iconName: "clone", icon: [ 512, 512, [], "f24d", "M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z", ], }, R = { prefix: "far", iconName: "closed-captioning", icon: [ 512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z", ], }, w = { prefix: "far", iconName: "comment", icon: [ 512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z", ], }, L = { prefix: "far", iconName: "comment-alt", icon: [ 512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z", ], }, F = { prefix: "far", iconName: "comment-dots", icon: [ 512, 512, [], "f4ad", "M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z", ], }, N = { prefix: "far", iconName: "comments", icon: [ 576, 512, [], "f086", "M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z", ], }, k = { prefix: "far", iconName: "compass", icon: [ 496, 512, [], "f14e", "M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z", ], }, z = { prefix: "far", iconName: "copy", icon: [ 448, 512, [], "f0c5", "M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z", ], }, j = { prefix: "far", iconName: "copyright", icon: [ 512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z", ], }, B = { prefix: "far", iconName: "credit-card", icon: [ 576, 512, [], "f09d", "M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z", ], }, V = { prefix: "far", iconName: "dizzy", icon: [ 496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z", ], }, G = { prefix: "far", iconName: "dot-circle", icon: [ 512, 512, [], "f192", "M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z", ], }, U = { prefix: "far", iconName: "edit", icon: [ 576, 512, [], "f044", "M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z", ], }, H = { prefix: "far", iconName: "envelope", icon: [ 512, 512, [], "f0e0", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z", ], }, W = { prefix: "far", iconName: "envelope-open", icon: [ 512, 512, [], "f2b6", "M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z", ], }, X = { prefix: "far", iconName: "eye", icon: [ 576, 512, [], "f06e", "M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z", ], }, Y = { prefix: "far", iconName: "eye-slash", icon: [ 576, 512, [], "f070", "M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z", ], }, K = { prefix: "far", iconName: "file", icon: [ 384, 512, [], "f15b", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z", ], }, Z = { prefix: "far", iconName: "file-alt", icon: [ 384, 512, [], "f15c", "M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z", ], }, q = { prefix: "far", iconName: "file-archive", icon: [ 384, 512, [], "f1c6", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z", ], }, Q = { prefix: "far", iconName: "file-audio", icon: [ 384, 512, [], "f1c7", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z", ], }, J = { prefix: "far", iconName: "file-code", icon: [ 384, 512, [], "f1c9", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z", ], }, $ = { prefix: "far", iconName: "file-excel", icon: [ 384, 512, [], "f1c3", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z", ], }, ee = { prefix: "far", iconName: "file-image", icon: [ 384, 512, [], "f1c5", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z", ], }, te = { prefix: "far", iconName: "file-pdf", icon: [ 384, 512, [], "f1c1", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z", ], }, ne = { prefix: "far", iconName: "file-powerpoint", icon: [ 384, 512, [], "f1c4", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z", ], }, ie = { prefix: "far", iconName: "file-video", icon: [ 384, 512, [], "f1c8", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z", ], }, re = { prefix: "far", iconName: "file-word", icon: [ 384, 512, [], "f1c2", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z", ], }, oe = { prefix: "far", iconName: "flag", icon: [ 512, 512, [], "f024", "M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z", ], }, ae = { prefix: "far", iconName: "flushed", icon: [ 496, 512, [], "f579", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z", ], }, se = { prefix: "far", iconName: "folder", icon: [ 512, 512, [], "f07b", "M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z", ], }, ce = { prefix: "far", iconName: "folder-open", icon: [ 576, 512, [], "f07c", "M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z", ], }, le = { prefix: "far", iconName: "font-awesome-logo-full", icon: [ 3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z", ], }, ue = { prefix: "far", iconName: "frown", icon: [ 496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z", ], }, he = { prefix: "far", iconName: "frown-open", icon: [ 496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z", ], }, de = { prefix: "far", iconName: "futbol", icon: [ 496, 512, [], "f1e3", "M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z", ], }, pe = { prefix: "far", iconName: "gem", icon: [ 576, 512, [], "f3a5", "M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z", ], }, fe = { prefix: "far", iconName: "grimace", icon: [ 496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z", ], }, me = { prefix: "far", iconName: "grin", icon: [ 496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z", ], }, ge = { prefix: "far", iconName: "grin-alt", icon: [ 496, 512, [], "f581", "M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z", ], }, be = { prefix: "far", iconName: "grin-beam", icon: [ 496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z", ], }, _e = { prefix: "far", iconName: "grin-beam-sweat", icon: [ 496, 512, [], "f583", "M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z", ], }, ve = { prefix: "far", iconName: "grin-hearts", icon: [ 496, 512, [], "f584", "M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z", ], }, ye = { prefix: "far", iconName: "grin-squint", icon: [ 496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z", ], }, Ce = { prefix: "far", iconName: "grin-squint-tears", icon: [ 512, 512, [], "f586", "M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z", ], }, Pe = { prefix: "far", iconName: "grin-stars", icon: [ 496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z", ], }, xe = { prefix: "far", iconName: "grin-tears", icon: [ 640, 512, [], "f588", "M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z", ], }, Te = { prefix: "far", iconName: "grin-tongue", icon: [ 496, 512, [], "f589", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z", ], }, Se = { prefix: "far", iconName: "grin-tongue-squint", icon: [ 496, 512, [], "f58a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z", ], }, Oe = { prefix: "far", iconName: "grin-tongue-wink", icon: [ 496, 512, [], "f58b", "M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z", ], }, Ee = { prefix: "far", iconName: "grin-wink", icon: [ 496, 512, [], "f58c", "M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z", ], }, Me = { prefix: "far", iconName: "hand-lizard", icon: [ 576, 512, [], "f258", "M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z", ], }, Ae = { prefix: "far", iconName: "hand-paper", icon: [ 448, 512, [], "f256", "M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z", ], }, Ie = { prefix: "far", iconName: "hand-peace", icon: [ 448, 512, [], "f25b", "M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z", ], }, De = { prefix: "far", iconName: "hand-point-down", icon: [ 448, 512, [], "f0a7", "M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z", ], }, Re = { prefix: "far", iconName: "hand-point-left", icon: [ 512, 512, [], "f0a5", "M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z", ], }, we = { prefix: "far", iconName: "hand-point-right", icon: [ 512, 512, [], "f0a4", "M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z", ], }, Le = { prefix: "far", iconName: "hand-point-up", icon: [ 448, 512, [], "f0a6", "M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z", ], }, Fe = { prefix: "far", iconName: "hand-pointer", icon: [ 448, 512, [], "f25a", "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z", ], }, Ne = { prefix: "far", iconName: "hand-rock", icon: [ 512, 512, [], "f255", "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z", ], }, ke = { prefix: "far", iconName: "hand-scissors", icon: [ 512, 512, [], "f257", "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z", ], }, ze = { prefix: "far", iconName: "hand-spock", icon: [ 512, 512, [], "f259", "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z", ], }, je = { prefix: "far", iconName: "handshake", icon: [ 640, 512, [], "f2b5", "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z", ], }, Be = { prefix: "far", iconName: "hdd", icon: [ 576, 512, [], "f0a0", "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z", ], }, Ve = { prefix: "far", iconName: "heart", icon: [ 512, 512, [], "f004", "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z", ], }, Ge = { prefix: "far", iconName: "hospital", icon: [ 448, 512, [], "f0f8", "M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z", ], }, Ue = { prefix: "far", iconName: "hourglass", icon: [ 384, 512, [], "f254", "M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z", ], }, He = { prefix: "far", iconName: "id-badge", icon: [ 384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z", ], }, We = { prefix: "far", iconName: "id-card", icon: [ 576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z", ], }, Xe = { prefix: "far", iconName: "image", icon: [ 512, 512, [], "f03e", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z", ], }, Ye = { prefix: "far", iconName: "images", icon: [ 576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z", ], }, Ke = { prefix: "far", iconName: "keyboard", icon: [ 576, 512, [], "f11c", "M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z", ], }, Ze = { prefix: "far", iconName: "kiss", icon: [ 496, 512, [], "f596", "M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z", ], }, qe = { prefix: "far", iconName: "kiss-beam", icon: [ 496, 512, [], "f597", "M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z", ], }, Qe = { prefix: "far", iconName: "kiss-wink-heart", icon: [ 504, 512, [], "f598", "M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z", ], }, Je = { prefix: "far", iconName: "laugh", icon: [ 496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z", ], }, $e = { prefix: "far", iconName: "laugh-beam", icon: [ 496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z", ], }, et = { prefix: "far", iconName: "laugh-squint", icon: [ 496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z", ], }, tt = { prefix: "far", iconName: "laugh-wink", icon: [ 496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z", ], }, nt = { prefix: "far", iconName: "lemon", icon: [ 512, 512, [], "f094", "M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z", ], }, it = { prefix: "far", iconName: "life-ring", icon: [ 512, 512, [], "f1cd", "M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z", ], }, rt = { prefix: "far", iconName: "lightbulb", icon: [ 352, 512, [], "f0eb", "M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z", ], }, ot = { prefix: "far", iconName: "list-alt", icon: [ 512, 512, [], "f022", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z", ], }, at = { prefix: "far", iconName: "map", icon: [ 576, 512, [], "f279", "M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z", ], }, st = { prefix: "far", iconName: "meh", icon: [ 496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z", ], }, ct = { prefix: "far", iconName: "meh-blank", icon: [ 496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z", ], }, lt = { prefix: "far", iconName: "meh-rolling-eyes", icon: [ 496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z", ], }, ut = { prefix: "far", iconName: "minus-square", icon: [ 448, 512, [], "f146", "M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, ht = { prefix: "far", iconName: "money-bill-alt", icon: [ 640, 512, [], "f3d1", "M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z", ], }, dt = { prefix: "far", iconName: "moon", icon: [ 512, 512, [], "f186", "M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z", ], }, pt = { prefix: "far", iconName: "newspaper", icon: [ 576, 512, [], "f1ea", "M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z", ], }, ft = { prefix: "far", iconName: "object-group", icon: [ 512, 512, [], "f247", "M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z", ], }, mt = { prefix: "far", iconName: "object-ungroup", icon: [ 576, 512, [], "f248", "M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z", ], }, gt = { prefix: "far", iconName: "paper-plane", icon: [ 512, 512, [], "f1d8", "M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z", ], }, bt = { prefix: "far", iconName: "pause-circle", icon: [ 512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z", ], }, _t = { prefix: "far", iconName: "play-circle", icon: [ 512, 512, [], "f144", "M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z", ], }, vt = { prefix: "far", iconName: "plus-square", icon: [ 448, 512, [], "f0fe", "M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z", ], }, yt = { prefix: "far", iconName: "question-circle", icon: [ 512, 512, [], "f059", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z", ], }, Ct = { prefix: "far", iconName: "registered", icon: [ 512, 512, [], "f25d", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z", ], }, Pt = { prefix: "far", iconName: "sad-cry", icon: [ 496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z", ], }, xt = { prefix: "far", iconName: "sad-tear", icon: [ 496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z", ], }, Tt = { prefix: "far", iconName: "save", icon: [ 448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z", ], }, St = { prefix: "far", iconName: "share-square", icon: [ 576, 512, [], "f14d", "M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z", ], }, Ot = { prefix: "far", iconName: "smile", icon: [ 496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z", ], }, Et = { prefix: "far", iconName: "smile-beam", icon: [ 496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z", ], }, Mt = { prefix: "far", iconName: "smile-wink", icon: [ 496, 512, [], "f4da", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z", ], }, At = { prefix: "far", iconName: "snowflake", icon: [ 448, 512, [], "f2dc", "M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z", ], }, It = { prefix: "far", iconName: "square", icon: [ 448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z", ], }, Dt = { prefix: "far", iconName: "star", icon: [ 576, 512, [], "f005", "M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z", ], }, Rt = { prefix: "far", iconName: "star-half", icon: [ 576, 512, [], "f089", "M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z", ], }, wt = { prefix: "far", iconName: "sticky-note", icon: [ 448, 512, [], "f249", "M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z", ], }, Lt = { prefix: "far", iconName: "stop-circle", icon: [ 512, 512, [], "f28d", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z", ], }, Ft = { prefix: "far", iconName: "sun", icon: [ 512, 512, [], "f185", "M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z", ], }, Nt = { prefix: "far", iconName: "surprise", icon: [ 496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z", ], }, kt = { prefix: "far", iconName: "thumbs-down", icon: [ 512, 512, [], "f165", "M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z", ], }, zt = { prefix: "far", iconName: "thumbs-up", icon: [ 512, 512, [], "f164", "M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z", ], }, jt = { prefix: "far", iconName: "times-circle", icon: [ 512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z", ], }, Bt = { prefix: "far", iconName: "tired", icon: [ 496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z", ], }, Vt = { prefix: "far", iconName: "trash-alt", icon: [ 448, 512, [], "f2ed", "M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z", ], }, Gt = { prefix: "far", iconName: "user", icon: [ 448, 512, [], "f007", "M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z", ], }, Ut = { prefix: "far", iconName: "user-circle", icon: [ 496, 512, [], "f2bd", "M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z", ], }, Ht = { prefix: "far", iconName: "window-close", icon: [ 512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z", ], }, Wt = { prefix: "far", iconName: "window-maximize", icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"], }, Xt = { prefix: "far", iconName: "window-minimize", icon: [512, 512, [], "f2d1", "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"] }, Yt = { prefix: "far", iconName: "window-restore", icon: [ 512, 512, [], "f2d2", "M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z", ], }, Kt = { faAddressBook: r, faAddressCard: o, faAngry: a, faArrowAltCircleDown: s, faArrowAltCircleLeft: c, faArrowAltCircleRight: l, faArrowAltCircleUp: u, faBell: h, faBellSlash: d, faBookmark: p, faBuilding: f, faCalendar: m, faCalendarAlt: g, faCalendarCheck: b, faCalendarMinus: _, faCalendarPlus: v, faCalendarTimes: y, faCaretSquareDown: C, faCaretSquareLeft: P, faCaretSquareRight: x, faCaretSquareUp: T, faChartBar: S, faCheckCircle: O, faCheckSquare: E, faCircle: M, faClipboard: A, faClock: I, faClone: D, faClosedCaptioning: R, faComment: w, faCommentAlt: L, faCommentDots: F, faComments: N, faCompass: k, faCopy: z, faCopyright: j, faCreditCard: B, faDizzy: V, faDotCircle: G, faEdit: U, faEnvelope: H, faEnvelopeOpen: W, faEye: X, faEyeSlash: Y, faFile: K, faFileAlt: Z, faFileArchive: q, faFileAudio: Q, faFileCode: J, faFileExcel: $, faFileImage: ee, faFilePdf: te, faFilePowerpoint: ne, faFileVideo: ie, faFileWord: re, faFlag: oe, faFlushed: ae, faFolder: se, faFolderOpen: ce, faFontAwesomeLogoFull: le, faFrown: ue, faFrownOpen: he, faFutbol: de, faGem: pe, faGrimace: fe, faGrin: me, faGrinAlt: ge, faGrinBeam: be, faGrinBeamSweat: _e, faGrinHearts: ve, faGrinSquint: ye, faGrinSquintTears: Ce, faGrinStars: Pe, faGrinTears: xe, faGrinTongue: Te, faGrinTongueSquint: Se, faGrinTongueWink: Oe, faGrinWink: Ee, faHandLizard: Me, faHandPaper: Ae, faHandPeace: Ie, faHandPointDown: De, faHandPointLeft: Re, faHandPointRight: we, faHandPointUp: Le, faHandPointer: Fe, faHandRock: Ne, faHandScissors: ke, faHandSpock: ze, faHandshake: je, faHdd: Be, faHeart: Ve, faHospital: Ge, faHourglass: Ue, faIdBadge: He, faIdCard: We, faImage: Xe, faImages: Ye, faKeyboard: Ke, faKiss: Ze, faKissBeam: qe, faKissWinkHeart: Qe, faLaugh: Je, faLaughBeam: $e, faLaughSquint: et, faLaughWink: tt, faLemon: nt, faLifeRing: it, faLightbulb: rt, faListAlt: ot, faMap: at, faMeh: st, faMehBlank: ct, faMehRollingEyes: lt, faMinusSquare: ut, faMoneyBillAlt: ht, faMoon: dt, faNewspaper: pt, faObjectGroup: ft, faObjectUngroup: mt, faPaperPlane: gt, faPauseCircle: bt, faPlayCircle: _t, faPlusSquare: vt, faQuestionCircle: yt, faRegistered: Ct, faSadCry: Pt, faSadTear: xt, faSave: Tt, faShareSquare: St, faSmile: Ot, faSmileBeam: Et, faSmileWink: Mt, faSnowflake: At, faSquare: It, faStar: Dt, faStarHalf: Rt, faStickyNote: wt, faStopCircle: Lt, faSun: Ft, faSurprise: Nt, faThumbsDown: kt, faThumbsUp: zt, faTimesCircle: jt, faTired: Bt, faTrashAlt: Vt, faUser: Gt, faUserCircle: Ut, faWindowClose: Ht, faWindowMaximize: Wt, faWindowMinimize: Xt, faWindowRestore: Yt, }; }, "../../../../node_modules/@fortawesome/free-solid-svg-icons/index.es.js": function (e, t, n) { "use strict"; n.r(t), n.d(t, "fas", function () { return Zf; }), n.d(t, "prefix", function () { return i; }), n.d(t, "faAd", function () { return r; }), n.d(t, "faAddressBook", function () { return o; }), n.d(t, "faAddressCard", function () { return a; }), n.d(t, "faAdjust", function () { return s; }), n.d(t, "faAirFreshener", function () { return c; }), n.d(t, "faAlignCenter", function () { return l; }), n.d(t, "faAlignJustify", function () { return u; }), n.d(t, "faAlignLeft", function () { return h; }), n.d(t, "faAlignRight", function () { return d; }), n.d(t, "faAllergies", function () { return p; }), n.d(t, "faAmbulance", function () { return f; }), n.d(t, "faAmericanSignLanguageInterpreting", function () { return m; }), n.d(t, "faAnchor", function () { return g; }), n.d(t, "faAngleDoubleDown", function () { return b; }), n.d(t, "faAngleDoubleLeft", function () { return _; }), n.d(t, "faAngleDoubleRight", function () { return v; }), n.d(t, "faAngleDoubleUp", function () { return y; }), n.d(t, "faAngleDown", function () { return C; }), n.d(t, "faAngleLeft", function () { return P; }), n.d(t, "faAngleRight", function () { return x; }), n.d(t, "faAngleUp", function () { return T; }), n.d(t, "faAngry", function () { return S; }), n.d(t, "faAnkh", function () { return O; }), n.d(t, "faAppleAlt", function () { return E; }), n.d(t, "faArchive", function () { return M; }), n.d(t, "faArchway", function () { return A; }), n.d(t, "faArrowAltCircleDown", function () { return I; }), n.d(t, "faArrowAltCircleLeft", function () { return D; }), n.d(t, "faArrowAltCircleRight", function () { return R; }), n.d(t, "faArrowAltCircleUp", function () { return w; }), n.d(t, "faArrowCircleDown", function () { return L; }), n.d(t, "faArrowCircleLeft", function () { return F; }), n.d(t, "faArrowCircleRight", function () { return N; }), n.d(t, "faArrowCircleUp", function () { return k; }), n.d(t, "faArrowDown", function () { return z; }), n.d(t, "faArrowLeft", function () { return j; }), n.d(t, "faArrowRight", function () { return B; }), n.d(t, "faArrowUp", function () { return V; }), n.d(t, "faArrowsAlt", function () { return G; }), n.d(t, "faArrowsAltH", function () { return U; }), n.d(t, "faArrowsAltV", function () { return H; }), n.d(t, "faAssistiveListeningSystems", function () { return W; }), n.d(t, "faAsterisk", function () { return X; }), n.d(t, "faAt", function () { return Y; }), n.d(t, "faAtlas", function () { return K; }), n.d(t, "faAtom", function () { return Z; }), n.d(t, "faAudioDescription", function () { return q; }), n.d(t, "faAward", function () { return Q; }), n.d(t, "faBackspace", function () { return J; }), n.d(t, "faBackward", function () { return $; }), n.d(t, "faBalanceScale", function () { return ee; }), n.d(t, "faBan", function () { return te; }), n.d(t, "faBandAid", function () { return ne; }), n.d(t, "faBarcode", function () { return ie; }), n.d(t, "faBars", function () { return re; }), n.d(t, "faBaseballBall", function () { return oe; }), n.d(t, "faBasketballBall", function () { return ae; }), n.d(t, "faBath", function () { return se; }), n.d(t, "faBatteryEmpty", function () { return ce; }), n.d(t, "faBatteryFull", function () { return le; }), n.d(t, "faBatteryHalf", function () { return ue; }), n.d(t, "faBatteryQuarter", function () { return he; }), n.d(t, "faBatteryThreeQuarters", function () { return de; }), n.d(t, "faBed", function () { return pe; }), n.d(t, "faBeer", function () { return fe; }), n.d(t, "faBell", function () { return me; }), n.d(t, "faBellSlash", function () { return ge; }), n.d(t, "faBezierCurve", function () { return be; }), n.d(t, "faBible", function () { return _e; }), n.d(t, "faBicycle", function () { return ve; }), n.d(t, "faBinoculars", function () { return ye; }), n.d(t, "faBirthdayCake", function () { return Ce; }), n.d(t, "faBlender", function () { return Pe; }), n.d(t, "faBlenderPhone", function () { return xe; }), n.d(t, "faBlind", function () { return Te; }), n.d(t, "faBold", function () { return Se; }), n.d(t, "faBolt", function () { return Oe; }), n.d(t, "faBomb", function () { return Ee; }), n.d(t, "faBone", function () { return Me; }), n.d(t, "faBong", function () { return Ae; }), n.d(t, "faBook", function () { return Ie; }), n.d(t, "faBookDead", function () { return De; }), n.d(t, "faBookOpen", function () { return Re; }), n.d(t, "faBookReader", function () { return we; }), n.d(t, "faBookmark", function () { return Le; }), n.d(t, "faBowlingBall", function () { return Fe; }), n.d(t, "faBox", function () { return Ne; }), n.d(t, "faBoxOpen", function () { return ke; }), n.d(t, "faBoxes", function () { return ze; }), n.d(t, "faBraille", function () { return je; }), n.d(t, "faBrain", function () { return Be; }), n.d(t, "faBriefcase", function () { return Ve; }), n.d(t, "faBriefcaseMedical", function () { return Ge; }), n.d(t, "faBroadcastTower", function () { return Ue; }), n.d(t, "faBroom", function () { return He; }), n.d(t, "faBrush", function () { return We; }), n.d(t, "faBug", function () { return Xe; }), n.d(t, "faBuilding", function () { return Ye; }), n.d(t, "faBullhorn", function () { return Ke; }), n.d(t, "faBullseye", function () { return Ze; }), n.d(t, "faBurn", function () { return qe; }), n.d(t, "faBus", function () { return Qe; }), n.d(t, "faBusAlt", function () { return Je; }), n.d(t, "faBusinessTime", function () { return $e; }), n.d(t, "faCalculator", function () { return et; }), n.d(t, "faCalendar", function () { return tt; }), n.d(t, "faCalendarAlt", function () { return nt; }), n.d(t, "faCalendarCheck", function () { return it; }), n.d(t, "faCalendarMinus", function () { return rt; }), n.d(t, "faCalendarPlus", function () { return ot; }), n.d(t, "faCalendarTimes", function () { return at; }), n.d(t, "faCamera", function () { return st; }), n.d(t, "faCameraRetro", function () { return ct; }), n.d(t, "faCampground", function () { return lt; }), n.d(t, "faCannabis", function () { return ut; }), n.d(t, "faCapsules", function () { return ht; }), n.d(t, "faCar", function () { return dt; }), n.d(t, "faCarAlt", function () { return pt; }), n.d(t, "faCarBattery", function () { return ft; }), n.d(t, "faCarCrash", function () { return mt; }), n.d(t, "faCarSide", function () { return gt; }), n.d(t, "faCaretDown", function () { return bt; }), n.d(t, "faCaretLeft", function () { return _t; }), n.d(t, "faCaretRight", function () { return vt; }), n.d(t, "faCaretSquareDown", function () { return yt; }), n.d(t, "faCaretSquareLeft", function () { return Ct; }), n.d(t, "faCaretSquareRight", function () { return Pt; }), n.d(t, "faCaretSquareUp", function () { return xt; }), n.d(t, "faCaretUp", function () { return Tt; }), n.d(t, "faCartArrowDown", function () { return St; }), n.d(t, "faCartPlus", function () { return Ot; }), n.d(t, "faCat", function () { return Et; }), n.d(t, "faCertificate", function () { return Mt; }), n.d(t, "faChair", function () { return At; }), n.d(t, "faChalkboard", function () { return It; }), n.d(t, "faChalkboardTeacher", function () { return Dt; }), n.d(t, "faChargingStation", function () { return Rt; }), n.d(t, "faChartArea", function () { return wt; }), n.d(t, "faChartBar", function () { return Lt; }), n.d(t, "faChartLine", function () { return Ft; }), n.d(t, "faChartPie", function () { return Nt; }), n.d(t, "faCheck", function () { return kt; }), n.d(t, "faCheckCircle", function () { return zt; }), n.d(t, "faCheckDouble", function () { return jt; }), n.d(t, "faCheckSquare", function () { return Bt; }), n.d(t, "faChess", function () { return Vt; }), n.d(t, "faChessBishop", function () { return Gt; }), n.d(t, "faChessBoard", function () { return Ut; }), n.d(t, "faChessKing", function () { return Ht; }), n.d(t, "faChessKnight", function () { return Wt; }), n.d(t, "faChessPawn", function () { return Xt; }), n.d(t, "faChessQueen", function () { return Yt; }), n.d(t, "faChessRook", function () { return Kt; }), n.d(t, "faChevronCircleDown", function () { return Zt; }), n.d(t, "faChevronCircleLeft", function () { return qt; }), n.d(t, "faChevronCircleRight", function () { return Qt; }), n.d(t, "faChevronCircleUp", function () { return Jt; }), n.d(t, "faChevronDown", function () { return $t; }), n.d(t, "faChevronLeft", function () { return en; }), n.d(t, "faChevronRight", function () { return tn; }), n.d(t, "faChevronUp", function () { return nn; }), n.d(t, "faChild", function () { return rn; }), n.d(t, "faChurch", function () { return on; }), n.d(t, "faCircle", function () { return an; }), n.d(t, "faCircleNotch", function () { return sn; }), n.d(t, "faCity", function () { return cn; }), n.d(t, "faClipboard", function () { return ln; }), n.d(t, "faClipboardCheck", function () { return un; }), n.d(t, "faClipboardList", function () { return hn; }), n.d(t, "faClock", function () { return dn; }), n.d(t, "faClone", function () { return pn; }), n.d(t, "faClosedCaptioning", function () { return fn; }), n.d(t, "faCloud", function () { return mn; }), n.d(t, "faCloudDownloadAlt", function () { return gn; }), n.d(t, "faCloudMoon", function () { return bn; }), n.d(t, "faCloudSun", function () { return _n; }), n.d(t, "faCloudUploadAlt", function () { return vn; }), n.d(t, "faCocktail", function () { return yn; }), n.d(t, "faCode", function () { return Cn; }), n.d(t, "faCodeBranch", function () { return Pn; }), n.d(t, "faCoffee", function () { return xn; }), n.d(t, "faCog", function () { return Tn; }), n.d(t, "faCogs", function () { return Sn; }), n.d(t, "faCoins", function () { return On; }), n.d(t, "faColumns", function () { return En; }), n.d(t, "faComment", function () { return Mn; }), n.d(t, "faCommentAlt", function () { return An; }), n.d(t, "faCommentDollar", function () { return In; }), n.d(t, "faCommentDots", function () { return Dn; }), n.d(t, "faCommentSlash", function () { return Rn; }), n.d(t, "faComments", function () { return wn; }), n.d(t, "faCommentsDollar", function () { return Ln; }), n.d(t, "faCompactDisc", function () { return Fn; }), n.d(t, "faCompass", function () { return Nn; }), n.d(t, "faCompress", function () { return kn; }), n.d(t, "faConciergeBell", function () { return zn; }), n.d(t, "faCookie", function () { return jn; }), n.d(t, "faCookieBite", function () { return Bn; }), n.d(t, "faCopy", function () { return Vn; }), n.d(t, "faCopyright", function () { return Gn; }), n.d(t, "faCouch", function () { return Un; }), n.d(t, "faCreditCard", function () { return Hn; }), n.d(t, "faCrop", function () { return Wn; }), n.d(t, "faCropAlt", function () { return Xn; }), n.d(t, "faCross", function () { return Yn; }), n.d(t, "faCrosshairs", function () { return Kn; }), n.d(t, "faCrow", function () { return Zn; }), n.d(t, "faCrown", function () { return qn; }), n.d(t, "faCube", function () { return Qn; }), n.d(t, "faCubes", function () { return Jn; }), n.d(t, "faCut", function () { return $n; }), n.d(t, "faDatabase", function () { return ei; }), n.d(t, "faDeaf", function () { return ti; }), n.d(t, "faDesktop", function () { return ni; }), n.d(t, "faDharmachakra", function () { return ii; }), n.d(t, "faDiagnoses", function () { return ri; }), n.d(t, "faDice", function () { return oi; }), n.d(t, "faDiceD20", function () { return ai; }), n.d(t, "faDiceD6", function () { return si; }), n.d(t, "faDiceFive", function () { return ci; }), n.d(t, "faDiceFour", function () { return li; }), n.d(t, "faDiceOne", function () { return ui; }), n.d(t, "faDiceSix", function () { return hi; }), n.d(t, "faDiceThree", function () { return di; }), n.d(t, "faDiceTwo", function () { return pi; }), n.d(t, "faDigitalTachograph", function () { return fi; }), n.d(t, "faDirections", function () { return mi; }), n.d(t, "faDivide", function () { return gi; }), n.d(t, "faDizzy", function () { return bi; }), n.d(t, "faDna", function () { return _i; }), n.d(t, "faDog", function () { return vi; }), n.d(t, "faDollarSign", function () { return yi; }), n.d(t, "faDolly", function () { return Ci; }), n.d(t, "faDollyFlatbed", function () { return Pi; }), n.d(t, "faDonate", function () { return xi; }), n.d(t, "faDoorClosed", function () { return Ti; }), n.d(t, "faDoorOpen", function () { return Si; }), n.d(t, "faDotCircle", function () { return Oi; }), n.d(t, "faDove", function () { return Ei; }), n.d(t, "faDownload", function () { return Mi; }), n.d(t, "faDraftingCompass", function () { return Ai; }), n.d(t, "faDragon", function () { return Ii; }), n.d(t, "faDrawPolygon", function () { return Di; }), n.d(t, "faDrum", function () { return Ri; }), n.d(t, "faDrumSteelpan", function () { return wi; }), n.d(t, "faDrumstickBite", function () { return Li; }), n.d(t, "faDumbbell", function () { return Fi; }), n.d(t, "faDungeon", function () { return Ni; }), n.d(t, "faEdit", function () { return ki; }), n.d(t, "faEject", function () { return zi; }), n.d(t, "faEllipsisH", function () { return ji; }), n.d(t, "faEllipsisV", function () { return Bi; }), n.d(t, "faEnvelope", function () { return Vi; }), n.d(t, "faEnvelopeOpen", function () { return Gi; }), n.d(t, "faEnvelopeOpenText", function () { return Ui; }), n.d(t, "faEnvelopeSquare", function () { return Hi; }), n.d(t, "faEquals", function () { return Wi; }), n.d(t, "faEraser", function () { return Xi; }), n.d(t, "faEuroSign", function () { return Yi; }), n.d(t, "faExchangeAlt", function () { return Ki; }), n.d(t, "faExclamation", function () { return Zi; }), n.d(t, "faExclamationCircle", function () { return qi; }), n.d(t, "faExclamationTriangle", function () { return Qi; }), n.d(t, "faExpand", function () { return Ji; }), n.d(t, "faExpandArrowsAlt", function () { return $i; }), n.d(t, "faExternalLinkAlt", function () { return er; }), n.d(t, "faExternalLinkSquareAlt", function () { return tr; }), n.d(t, "faEye", function () { return nr; }), n.d(t, "faEyeDropper", function () { return ir; }), n.d(t, "faEyeSlash", function () { return rr; }), n.d(t, "faFastBackward", function () { return or; }), n.d(t, "faFastForward", function () { return ar; }), n.d(t, "faFax", function () { return sr; }), n.d(t, "faFeather", function () { return cr; }), n.d(t, "faFeatherAlt", function () { return lr; }), n.d(t, "faFemale", function () { return ur; }), n.d(t, "faFighterJet", function () { return hr; }), n.d(t, "faFile", function () { return dr; }), n.d(t, "faFileAlt", function () { return pr; }), n.d(t, "faFileArchive", function () { return fr; }), n.d(t, "faFileAudio", function () { return mr; }), n.d(t, "faFileCode", function () { return gr; }), n.d(t, "faFileContract", function () { return br; }), n.d(t, "faFileCsv", function () { return _r; }), n.d(t, "faFileDownload", function () { return vr; }), n.d(t, "faFileExcel", function () { return yr; }), n.d(t, "faFileExport", function () { return Cr; }), n.d(t, "faFileImage", function () { return Pr; }), n.d(t, "faFileImport", function () { return xr; }), n.d(t, "faFileInvoice", function () { return Tr; }), n.d(t, "faFileInvoiceDollar", function () { return Sr; }), n.d(t, "faFileMedical", function () { return Or; }), n.d(t, "faFileMedicalAlt", function () { return Er; }), n.d(t, "faFilePdf", function () { return Mr; }), n.d(t, "faFilePowerpoint", function () { return Ar; }), n.d(t, "faFilePrescription", function () { return Ir; }), n.d(t, "faFileSignature", function () { return Dr; }), n.d(t, "faFileUpload", function () { return Rr; }), n.d(t, "faFileVideo", function () { return wr; }), n.d(t, "faFileWord", function () { return Lr; }), n.d(t, "faFill", function () { return Fr; }), n.d(t, "faFillDrip", function () { return Nr; }), n.d(t, "faFilm", function () { return kr; }), n.d(t, "faFilter", function () { return zr; }), n.d(t, "faFingerprint", function () { return jr; }), n.d(t, "faFire", function () { return Br; }), n.d(t, "faFireExtinguisher", function () { return Vr; }), n.d(t, "faFirstAid", function () { return Gr; }), n.d(t, "faFish", function () { return Ur; }), n.d(t, "faFistRaised", function () { return Hr; }), n.d(t, "faFlag", function () { return Wr; }), n.d(t, "faFlagCheckered", function () { return Xr; }), n.d(t, "faFlask", function () { return Yr; }), n.d(t, "faFlushed", function () { return Kr; }), n.d(t, "faFolder", function () { return Zr; }), n.d(t, "faFolderMinus", function () { return qr; }), n.d(t, "faFolderOpen", function () { return Qr; }), n.d(t, "faFolderPlus", function () { return Jr; }), n.d(t, "faFont", function () { return $r; }), n.d(t, "faFontAwesomeLogoFull", function () { return eo; }), n.d(t, "faFootballBall", function () { return to; }), n.d(t, "faForward", function () { return no; }), n.d(t, "faFrog", function () { return io; }), n.d(t, "faFrown", function () { return ro; }), n.d(t, "faFrownOpen", function () { return oo; }), n.d(t, "faFunnelDollar", function () { return ao; }), n.d(t, "faFutbol", function () { return so; }), n.d(t, "faGamepad", function () { return co; }), n.d(t, "faGasPump", function () { return lo; }), n.d(t, "faGavel", function () { return uo; }), n.d(t, "faGem", function () { return ho; }), n.d(t, "faGenderless", function () { return po; }), n.d(t, "faGhost", function () { return fo; }), n.d(t, "faGift", function () { return mo; }), n.d(t, "faGlassMartini", function () { return go; }), n.d(t, "faGlassMartiniAlt", function () { return bo; }), n.d(t, "faGlasses", function () { return _o; }), n.d(t, "faGlobe", function () { return vo; }), n.d(t, "faGlobeAfrica", function () { return yo; }), n.d(t, "faGlobeAmericas", function () { return Co; }), n.d(t, "faGlobeAsia", function () { return Po; }), n.d(t, "faGolfBall", function () { return xo; }), n.d(t, "faGopuram", function () { return To; }), n.d(t, "faGraduationCap", function () { return So; }), n.d(t, "faGreaterThan", function () { return Oo; }), n.d(t, "faGreaterThanEqual", function () { return Eo; }), n.d(t, "faGrimace", function () { return Mo; }), n.d(t, "faGrin", function () { return Ao; }), n.d(t, "faGrinAlt", function () { return Io; }), n.d(t, "faGrinBeam", function () { return Do; }), n.d(t, "faGrinBeamSweat", function () { return Ro; }), n.d(t, "faGrinHearts", function () { return wo; }), n.d(t, "faGrinSquint", function () { return Lo; }), n.d(t, "faGrinSquintTears", function () { return Fo; }), n.d(t, "faGrinStars", function () { return No; }), n.d(t, "faGrinTears", function () { return ko; }), n.d(t, "faGrinTongue", function () { return zo; }), n.d(t, "faGrinTongueSquint", function () { return jo; }), n.d(t, "faGrinTongueWink", function () { return Bo; }), n.d(t, "faGrinWink", function () { return Vo; }), n.d(t, "faGripHorizontal", function () { return Go; }), n.d(t, "faGripVertical", function () { return Uo; }), n.d(t, "faHSquare", function () { return Ho; }), n.d(t, "faHammer", function () { return Wo; }), n.d(t, "faHamsa", function () { return Xo; }), n.d(t, "faHandHolding", function () { return Yo; }), n.d(t, "faHandHoldingHeart", function () { return Ko; }), n.d(t, "faHandHoldingUsd", function () { return Zo; }), n.d(t, "faHandLizard", function () { return qo; }), n.d(t, "faHandPaper", function () { return Qo; }), n.d(t, "faHandPeace", function () { return Jo; }), n.d(t, "faHandPointDown", function () { return $o; }), n.d(t, "faHandPointLeft", function () { return ea; }), n.d(t, "faHandPointRight", function () { return ta; }), n.d(t, "faHandPointUp", function () { return na; }), n.d(t, "faHandPointer", function () { return ia; }), n.d(t, "faHandRock", function () { return ra; }), n.d(t, "faHandScissors", function () { return oa; }), n.d(t, "faHandSpock", function () { return aa; }), n.d(t, "faHands", function () { return sa; }), n.d(t, "faHandsHelping", function () { return ca; }), n.d(t, "faHandshake", function () { return la; }), n.d(t, "faHanukiah", function () { return ua; }), n.d(t, "faHashtag", function () { return ha; }), n.d(t, "faHatWizard", function () { return da; }), n.d(t, "faHaykal", function () { return pa; }), n.d(t, "faHdd", function () { return fa; }), n.d(t, "faHeading", function () { return ma; }), n.d(t, "faHeadphones", function () { return ga; }), n.d(t, "faHeadphonesAlt", function () { return ba; }), n.d(t, "faHeadset", function () { return _a; }), n.d(t, "faHeart", function () { return va; }), n.d(t, "faHeartbeat", function () { return ya; }), n.d(t, "faHelicopter", function () { return Ca; }), n.d(t, "faHighlighter", function () { return Pa; }), n.d(t, "faHiking", function () { return xa; }), n.d(t, "faHippo", function () { return Ta; }), n.d(t, "faHistory", function () { return Sa; }), n.d(t, "faHockeyPuck", function () { return Oa; }), n.d(t, "faHome", function () { return Ea; }), n.d(t, "faHorse", function () { return Ma; }), n.d(t, "faHospital", function () { return Aa; }), n.d(t, "faHospitalAlt", function () { return Ia; }), n.d(t, "faHospitalSymbol", function () { return Da; }), n.d(t, "faHotTub", function () { return Ra; }), n.d(t, "faHotel", function () { return wa; }), n.d(t, "faHourglass", function () { return La; }), n.d(t, "faHourglassEnd", function () { return Fa; }), n.d(t, "faHourglassHalf", function () { return Na; }), n.d(t, "faHourglassStart", function () { return ka; }), n.d(t, "faHouseDamage", function () { return za; }), n.d(t, "faHryvnia", function () { return ja; }), n.d(t, "faICursor", function () { return Ba; }), n.d(t, "faIdBadge", function () { return Va; }), n.d(t, "faIdCard", function () { return Ga; }), n.d(t, "faIdCardAlt", function () { return Ua; }), n.d(t, "faImage", function () { return Ha; }), n.d(t, "faImages", function () { return Wa; }), n.d(t, "faInbox", function () { return Xa; }), n.d(t, "faIndent", function () { return Ya; }), n.d(t, "faIndustry", function () { return Ka; }), n.d(t, "faInfinity", function () { return Za; }), n.d(t, "faInfo", function () { return qa; }), n.d(t, "faInfoCircle", function () { return Qa; }), n.d(t, "faItalic", function () { return Ja; }), n.d(t, "faJedi", function () { return $a; }), n.d(t, "faJoint", function () { return es; }), n.d(t, "faJournalWhills", function () { return ts; }), n.d(t, "faKaaba", function () { return ns; }), n.d(t, "faKey", function () { return is; }), n.d(t, "faKeyboard", function () { return rs; }), n.d(t, "faKhanda", function () { return os; }), n.d(t, "faKiss", function () { return as; }), n.d(t, "faKissBeam", function () { return ss; }), n.d(t, "faKissWinkHeart", function () { return cs; }), n.d(t, "faKiwiBird", function () { return ls; }), n.d(t, "faLandmark", function () { return us; }), n.d(t, "faLanguage", function () { return hs; }), n.d(t, "faLaptop", function () { return ds; }), n.d(t, "faLaptopCode", function () { return ps; }), n.d(t, "faLaugh", function () { return fs; }), n.d(t, "faLaughBeam", function () { return ms; }), n.d(t, "faLaughSquint", function () { return gs; }), n.d(t, "faLaughWink", function () { return bs; }), n.d(t, "faLayerGroup", function () { return _s; }), n.d(t, "faLeaf", function () { return vs; }), n.d(t, "faLemon", function () { return ys; }), n.d(t, "faLessThan", function () { return Cs; }), n.d(t, "faLessThanEqual", function () { return Ps; }), n.d(t, "faLevelDownAlt", function () { return xs; }), n.d(t, "faLevelUpAlt", function () { return Ts; }), n.d(t, "faLifeRing", function () { return Ss; }), n.d(t, "faLightbulb", function () { return Os; }), n.d(t, "faLink", function () { return Es; }), n.d(t, "faLiraSign", function () { return Ms; }), n.d(t, "faList", function () { return As; }), n.d(t, "faListAlt", function () { return Is; }), n.d(t, "faListOl", function () { return Ds; }), n.d(t, "faListUl", function () { return Rs; }), n.d(t, "faLocationArrow", function () { return ws; }), n.d(t, "faLock", function () { return Ls; }), n.d(t, "faLockOpen", function () { return Fs; }), n.d(t, "faLongArrowAltDown", function () { return Ns; }), n.d(t, "faLongArrowAltLeft", function () { return ks; }), n.d(t, "faLongArrowAltRight", function () { return zs; }), n.d(t, "faLongArrowAltUp", function () { return js; }), n.d(t, "faLowVision", function () { return Bs; }), n.d(t, "faLuggageCart", function () { return Vs; }), n.d(t, "faMagic", function () { return Gs; }), n.d(t, "faMagnet", function () { return Us; }), n.d(t, "faMailBulk", function () { return Hs; }), n.d(t, "faMale", function () { return Ws; }), n.d(t, "faMap", function () { return Xs; }), n.d(t, "faMapMarked", function () { return Ys; }), n.d(t, "faMapMarkedAlt", function () { return Ks; }), n.d(t, "faMapMarker", function () { return Zs; }), n.d(t, "faMapMarkerAlt", function () { return qs; }), n.d(t, "faMapPin", function () { return Qs; }), n.d(t, "faMapSigns", function () { return Js; }), n.d(t, "faMarker", function () { return $s; }), n.d(t, "faMars", function () { return ec; }), n.d(t, "faMarsDouble", function () { return tc; }), n.d(t, "faMarsStroke", function () { return nc; }), n.d(t, "faMarsStrokeH", function () { return ic; }), n.d(t, "faMarsStrokeV", function () { return rc; }), n.d(t, "faMask", function () { return oc; }), n.d(t, "faMedal", function () { return ac; }), n.d(t, "faMedkit", function () { return sc; }), n.d(t, "faMeh", function () { return cc; }), n.d(t, "faMehBlank", function () { return lc; }), n.d(t, "faMehRollingEyes", function () { return uc; }), n.d(t, "faMemory", function () { return hc; }), n.d(t, "faMenorah", function () { return dc; }), n.d(t, "faMercury", function () { return pc; }), n.d(t, "faMicrochip", function () { return fc; }), n.d(t, "faMicrophone", function () { return mc; }), n.d(t, "faMicrophoneAlt", function () { return gc; }), n.d(t, "faMicrophoneAltSlash", function () { return bc; }), n.d(t, "faMicrophoneSlash", function () { return _c; }), n.d(t, "faMicroscope", function () { return vc; }), n.d(t, "faMinus", function () { return yc; }), n.d(t, "faMinusCircle", function () { return Cc; }), n.d(t, "faMinusSquare", function () { return Pc; }), n.d(t, "faMobile", function () { return xc; }), n.d(t, "faMobileAlt", function () { return Tc; }), n.d(t, "faMoneyBill", function () { return Sc; }), n.d(t, "faMoneyBillAlt", function () { return Oc; }), n.d(t, "faMoneyBillWave", function () { return Ec; }), n.d(t, "faMoneyBillWaveAlt", function () { return Mc; }), n.d(t, "faMoneyCheck", function () { return Ac; }), n.d(t, "faMoneyCheckAlt", function () { return Ic; }), n.d(t, "faMonument", function () { return Dc; }), n.d(t, "faMoon", function () { return Rc; }), n.d(t, "faMortarPestle", function () { return wc; }), n.d(t, "faMosque", function () { return Lc; }), n.d(t, "faMotorcycle", function () { return Fc; }), n.d(t, "faMountain", function () { return Nc; }), n.d(t, "faMousePointer", function () { return kc; }), n.d(t, "faMusic", function () { return zc; }), n.d(t, "faNetworkWired", function () { return jc; }), n.d(t, "faNeuter", function () { return Bc; }), n.d(t, "faNewspaper", function () { return Vc; }), n.d(t, "faNotEqual", function () { return Gc; }), n.d(t, "faNotesMedical", function () { return Uc; }), n.d(t, "faObjectGroup", function () { return Hc; }), n.d(t, "faObjectUngroup", function () { return Wc; }), n.d(t, "faOilCan", function () { return Xc; }), n.d(t, "faOm", function () { return Yc; }), n.d(t, "faOtter", function () { return Kc; }), n.d(t, "faOutdent", function () { return Zc; }), n.d(t, "faPaintBrush", function () { return qc; }), n.d(t, "faPaintRoller", function () { return Qc; }), n.d(t, "faPalette", function () { return Jc; }), n.d(t, "faPallet", function () { return $c; }), n.d(t, "faPaperPlane", function () { return el; }), n.d(t, "faPaperclip", function () { return tl; }), n.d(t, "faParachuteBox", function () { return nl; }), n.d(t, "faParagraph", function () { return il; }), n.d(t, "faParking", function () { return rl; }), n.d(t, "faPassport", function () { return ol; }), n.d(t, "faPastafarianism", function () { return al; }), n.d(t, "faPaste", function () { return sl; }), n.d(t, "faPause", function () { return cl; }), n.d(t, "faPauseCircle", function () { return ll; }), n.d(t, "faPaw", function () { return ul; }), n.d(t, "faPeace", function () { return hl; }), n.d(t, "faPen", function () { return dl; }), n.d(t, "faPenAlt", function () { return pl; }), n.d(t, "faPenFancy", function () { return fl; }), n.d(t, "faPenNib", function () { return ml; }), n.d(t, "faPenSquare", function () { return gl; }), n.d(t, "faPencilAlt", function () { return bl; }), n.d(t, "faPencilRuler", function () { return _l; }), n.d(t, "faPeopleCarry", function () { return vl; }), n.d(t, "faPercent", function () { return yl; }), n.d(t, "faPercentage", function () { return Cl; }), n.d(t, "faPhone", function () { return Pl; }), n.d(t, "faPhoneSlash", function () { return xl; }), n.d(t, "faPhoneSquare", function () { return Tl; }), n.d(t, "faPhoneVolume", function () { return Sl; }), n.d(t, "faPiggyBank", function () { return Ol; }), n.d(t, "faPills", function () { return El; }), n.d(t, "faPlaceOfWorship", function () { return Ml; }), n.d(t, "faPlane", function () { return Al; }), n.d(t, "faPlaneArrival", function () { return Il; }), n.d(t, "faPlaneDeparture", function () { return Dl; }), n.d(t, "faPlay", function () { return Rl; }), n.d(t, "faPlayCircle", function () { return wl; }), n.d(t, "faPlug", function () { return Ll; }), n.d(t, "faPlus", function () { return Fl; }), n.d(t, "faPlusCircle", function () { return Nl; }), n.d(t, "faPlusSquare", function () { return kl; }), n.d(t, "faPodcast", function () { return zl; }), n.d(t, "faPoll", function () { return jl; }), n.d(t, "faPollH", function () { return Bl; }), n.d(t, "faPoo", function () { return Vl; }), n.d(t, "faPoop", function () { return Gl; }), n.d(t, "faPortrait", function () { return Ul; }), n.d(t, "faPoundSign", function () { return Hl; }), n.d(t, "faPowerOff", function () { return Wl; }), n.d(t, "faPray", function () { return Xl; }), n.d(t, "faPrayingHands", function () { return Yl; }), n.d(t, "faPrescription", function () { return Kl; }), n.d(t, "faPrescriptionBottle", function () { return Zl; }), n.d(t, "faPrescriptionBottleAlt", function () { return ql; }), n.d(t, "faPrint", function () { return Ql; }), n.d(t, "faProcedures", function () { return Jl; }), n.d(t, "faProjectDiagram", function () { return $l; }), n.d(t, "faPuzzlePiece", function () { return eu; }), n.d(t, "faQrcode", function () { return tu; }), n.d(t, "faQuestion", function () { return nu; }), n.d(t, "faQuestionCircle", function () { return iu; }), n.d(t, "faQuidditch", function () { return ru; }), n.d(t, "faQuoteLeft", function () { return ou; }), n.d(t, "faQuoteRight", function () { return au; }), n.d(t, "faQuran", function () { return su; }), n.d(t, "faRandom", function () { return cu; }), n.d(t, "faReceipt", function () { return lu; }), n.d(t, "faRecycle", function () { return uu; }), n.d(t, "faRedo", function () { return hu; }), n.d(t, "faRedoAlt", function () { return du; }), n.d(t, "faRegistered", function () { return pu; }), n.d(t, "faReply", function () { return fu; }), n.d(t, "faReplyAll", function () { return mu; }), n.d(t, "faRetweet", function () { return gu; }), n.d(t, "faRibbon", function () { return bu; }), n.d(t, "faRing", function () { return _u; }), n.d(t, "faRoad", function () { return vu; }), n.d(t, "faRobot", function () { return yu; }), n.d(t, "faRocket", function () { return Cu; }), n.d(t, "faRoute", function () { return Pu; }), n.d(t, "faRss", function () { return xu; }), n.d(t, "faRssSquare", function () { return Tu; }), n.d(t, "faRubleSign", function () { return Su; }), n.d(t, "faRuler", function () { return Ou; }), n.d(t, "faRulerCombined", function () { return Eu; }), n.d(t, "faRulerHorizontal", function () { return Mu; }), n.d(t, "faRulerVertical", function () { return Au; }), n.d(t, "faRunning", function () { return Iu; }), n.d(t, "faRupeeSign", function () { return Du; }), n.d(t, "faSadCry", function () { return Ru; }), n.d(t, "faSadTear", function () { return wu; }), n.d(t, "faSave", function () { return Lu; }), n.d(t, "faSchool", function () { return Fu; }), n.d(t, "faScrewdriver", function () { return Nu; }), n.d(t, "faScroll", function () { return ku; }), n.d(t, "faSearch", function () { return zu; }), n.d(t, "faSearchDollar", function () { return ju; }), n.d(t, "faSearchLocation", function () { return Bu; }), n.d(t, "faSearchMinus", function () { return Vu; }), n.d(t, "faSearchPlus", function () { return Gu; }), n.d(t, "faSeedling", function () { return Uu; }), n.d(t, "faServer", function () { return Hu; }), n.d(t, "faShapes", function () { return Wu; }), n.d(t, "faShare", function () { return Xu; }), n.d(t, "faShareAlt", function () { return Yu; }), n.d(t, "faShareAltSquare", function () { return Ku; }), n.d(t, "faShareSquare", function () { return Zu; }), n.d(t, "faShekelSign", function () { return qu; }), n.d(t, "faShieldAlt", function () { return Qu; }), n.d(t, "faShip", function () { return Ju; }), n.d(t, "faShippingFast", function () { return $u; }), n.d(t, "faShoePrints", function () { return eh; }), n.d(t, "faShoppingBag", function () { return th; }), n.d(t, "faShoppingBasket", function () { return nh; }), n.d(t, "faShoppingCart", function () { return ih; }), n.d(t, "faShower", function () { return rh; }), n.d(t, "faShuttleVan", function () { return oh; }), n.d(t, "faSign", function () { return ah; }), n.d(t, "faSignInAlt", function () { return sh; }), n.d(t, "faSignLanguage", function () { return ch; }), n.d(t, "faSignOutAlt", function () { return lh; }), n.d(t, "faSignal", function () { return uh; }), n.d(t, "faSignature", function () { return hh; }), n.d(t, "faSitemap", function () { return dh; }), n.d(t, "faSkull", function () { return ph; }), n.d(t, "faSkullCrossbones", function () { return fh; }), n.d(t, "faSlash", function () { return mh; }), n.d(t, "faSlidersH", function () { return gh; }), n.d(t, "faSmile", function () { return bh; }), n.d(t, "faSmileBeam", function () { return _h; }), n.d(t, "faSmileWink", function () { return vh; }), n.d(t, "faSmoking", function () { return yh; }), n.d(t, "faSmokingBan", function () { return Ch; }), n.d(t, "faSnowflake", function () { return Ph; }), n.d(t, "faSocks", function () { return xh; }), n.d(t, "faSolarPanel", function () { return Th; }), n.d(t, "faSort", function () { return Sh; }), n.d(t, "faSortAlphaDown", function () { return Oh; }), n.d(t, "faSortAlphaUp", function () { return Eh; }), n.d(t, "faSortAmountDown", function () { return Mh; }), n.d(t, "faSortAmountUp", function () { return Ah; }), n.d(t, "faSortDown", function () { return Ih; }), n.d(t, "faSortNumericDown", function () { return Dh; }), n.d(t, "faSortNumericUp", function () { return Rh; }), n.d(t, "faSortUp", function () { return wh; }), n.d(t, "faSpa", function () { return Lh; }), n.d(t, "faSpaceShuttle", function () { return Fh; }), n.d(t, "faSpider", function () { return Nh; }), n.d(t, "faSpinner", function () { return kh; }), n.d(t, "faSplotch", function () { return zh; }), n.d(t, "faSprayCan", function () { return jh; }), n.d(t, "faSquare", function () { return Bh; }), n.d(t, "faSquareFull", function () { return Vh; }), n.d(t, "faSquareRootAlt", function () { return Gh; }), n.d(t, "faStamp", function () { return Uh; }), n.d(t, "faStar", function () { return Hh; }), n.d(t, "faStarAndCrescent", function () { return Wh; }), n.d(t, "faStarHalf", function () { return Xh; }), n.d(t, "faStarHalfAlt", function () { return Yh; }), n.d(t, "faStarOfDavid", function () { return Kh; }), n.d(t, "faStarOfLife", function () { return Zh; }), n.d(t, "faStepBackward", function () { return qh; }), n.d(t, "faStepForward", function () { return Qh; }), n.d(t, "faStethoscope", function () { return Jh; }), n.d(t, "faStickyNote", function () { return $h; }), n.d(t, "faStop", function () { return ed; }), n.d(t, "faStopCircle", function () { return td; }), n.d(t, "faStopwatch", function () { return nd; }), n.d(t, "faStore", function () { return id; }), n.d(t, "faStoreAlt", function () { return rd; }), n.d(t, "faStream", function () { return od; }), n.d(t, "faStreetView", function () { return ad; }), n.d(t, "faStrikethrough", function () { return sd; }), n.d(t, "faStroopwafel", function () { return cd; }), n.d(t, "faSubscript", function () { return ld; }), n.d(t, "faSubway", function () { return ud; }), n.d(t, "faSuitcase", function () { return hd; }), n.d(t, "faSuitcaseRolling", function () { return dd; }), n.d(t, "faSun", function () { return pd; }), n.d(t, "faSuperscript", function () { return fd; }), n.d(t, "faSurprise", function () { return md; }), n.d(t, "faSwatchbook", function () { return gd; }), n.d(t, "faSwimmer", function () { return bd; }), n.d(t, "faSwimmingPool", function () { return _d; }), n.d(t, "faSynagogue", function () { return vd; }), n.d(t, "faSync", function () { return yd; }), n.d(t, "faSyncAlt", function () { return Cd; }), n.d(t, "faSyringe", function () { return Pd; }), n.d(t, "faTable", function () { return xd; }), n.d(t, "faTableTennis", function () { return Td; }), n.d(t, "faTablet", function () { return Sd; }), n.d(t, "faTabletAlt", function () { return Od; }), n.d(t, "faTablets", function () { return Ed; }), n.d(t, "faTachometerAlt", function () { return Md; }), n.d(t, "faTag", function () { return Ad; }), n.d(t, "faTags", function () { return Id; }), n.d(t, "faTape", function () { return Dd; }), n.d(t, "faTasks", function () { return Rd; }), n.d(t, "faTaxi", function () { return wd; }), n.d(t, "faTeeth", function () { return Ld; }), n.d(t, "faTeethOpen", function () { return Fd; }), n.d(t, "faTerminal", function () { return Nd; }), n.d(t, "faTextHeight", function () { return kd; }), n.d(t, "faTextWidth", function () { return zd; }), n.d(t, "faTh", function () { return jd; }), n.d(t, "faThLarge", function () { return Bd; }), n.d(t, "faThList", function () { return Vd; }), n.d(t, "faTheaterMasks", function () { return Gd; }), n.d(t, "faThermometer", function () { return Ud; }), n.d(t, "faThermometerEmpty", function () { return Hd; }), n.d(t, "faThermometerFull", function () { return Wd; }), n.d(t, "faThermometerHalf", function () { return Xd; }), n.d(t, "faThermometerQuarter", function () { return Yd; }), n.d(t, "faThermometerThreeQuarters", function () { return Kd; }), n.d(t, "faThumbsDown", function () { return Zd; }), n.d(t, "faThumbsUp", function () { return qd; }), n.d(t, "faThumbtack", function () { return Qd; }), n.d(t, "faTicketAlt", function () { return Jd; }), n.d(t, "faTimes", function () { return $d; }), n.d(t, "faTimesCircle", function () { return ep; }), n.d(t, "faTint", function () { return tp; }), n.d(t, "faTintSlash", function () { return np; }), n.d(t, "faTired", function () { return ip; }), n.d(t, "faToggleOff", function () { return rp; }), n.d(t, "faToggleOn", function () { return op; }), n.d(t, "faToiletPaper", function () { return ap; }), n.d(t, "faToolbox", function () { return sp; }), n.d(t, "faTooth", function () { return cp; }), n.d(t, "faTorah", function () { return lp; }), n.d(t, "faToriiGate", function () { return up; }), n.d(t, "faTractor", function () { return hp; }), n.d(t, "faTrademark", function () { return dp; }), n.d(t, "faTrafficLight", function () { return pp; }), n.d(t, "faTrain", function () { return fp; }), n.d(t, "faTransgender", function () { return mp; }), n.d(t, "faTransgenderAlt", function () { return gp; }), n.d(t, "faTrash", function () { return bp; }), n.d(t, "faTrashAlt", function () { return _p; }), n.d(t, "faTree", function () { return vp; }), n.d(t, "faTrophy", function () { return yp; }), n.d(t, "faTruck", function () { return Cp; }), n.d(t, "faTruckLoading", function () { return Pp; }), n.d(t, "faTruckMonster", function () { return xp; }), n.d(t, "faTruckMoving", function () { return Tp; }), n.d(t, "faTruckPickup", function () { return Sp; }), n.d(t, "faTshirt", function () { return Op; }), n.d(t, "faTty", function () { return Ep; }), n.d(t, "faTv", function () { return Mp; }), n.d(t, "faUmbrella", function () { return Ap; }), n.d(t, "faUmbrellaBeach", function () { return Ip; }), n.d(t, "faUnderline", function () { return Dp; }), n.d(t, "faUndo", function () { return Rp; }), n.d(t, "faUndoAlt", function () { return wp; }), n.d(t, "faUniversalAccess", function () { return Lp; }), n.d(t, "faUniversity", function () { return Fp; }), n.d(t, "faUnlink", function () { return Np; }), n.d(t, "faUnlock", function () { return kp; }), n.d(t, "faUnlockAlt", function () { return zp; }), n.d(t, "faUpload", function () { return jp; }), n.d(t, "faUser", function () { return Bp; }), n.d(t, "faUserAlt", function () { return Vp; }), n.d(t, "faUserAltSlash", function () { return Gp; }), n.d(t, "faUserAstronaut", function () { return Up; }), n.d(t, "faUserCheck", function () { return Hp; }), n.d(t, "faUserCircle", function () { return Wp; }), n.d(t, "faUserClock", function () { return Xp; }); n.d(t, "faUserCog", function () { return Yp; }), n.d(t, "faUserEdit", function () { return Kp; }), n.d(t, "faUserFriends", function () { return Zp; }), n.d(t, "faUserGraduate", function () { return qp; }), n.d(t, "faUserInjured", function () { return Qp; }), n.d(t, "faUserLock", function () { return Jp; }), n.d(t, "faUserMd", function () { return $p; }), n.d(t, "faUserMinus", function () { return ef; }), n.d(t, "faUserNinja", function () { return tf; }), n.d(t, "faUserPlus", function () { return nf; }), n.d(t, "faUserSecret", function () { return rf; }), n.d(t, "faUserShield", function () { return of; }), n.d(t, "faUserSlash", function () { return af; }), n.d(t, "faUserTag", function () { return sf; }), n.d(t, "faUserTie", function () { return cf; }), n.d(t, "faUserTimes", function () { return lf; }), n.d(t, "faUsers", function () { return uf; }), n.d(t, "faUsersCog", function () { return hf; }), n.d(t, "faUtensilSpoon", function () { return df; }), n.d(t, "faUtensils", function () { return pf; }), n.d(t, "faVectorSquare", function () { return ff; }), n.d(t, "faVenus", function () { return mf; }), n.d(t, "faVenusDouble", function () { return gf; }), n.d(t, "faVenusMars", function () { return bf; }), n.d(t, "faVial", function () { return _f; }), n.d(t, "faVials", function () { return vf; }), n.d(t, "faVideo", function () { return yf; }), n.d(t, "faVideoSlash", function () { return Cf; }), n.d(t, "faVihara", function () { return Pf; }), n.d(t, "faVolleyballBall", function () { return xf; }), n.d(t, "faVolumeDown", function () { return Tf; }), n.d(t, "faVolumeMute", function () { return Sf; }), n.d(t, "faVolumeOff", function () { return Of; }), n.d(t, "faVolumeUp", function () { return Ef; }), n.d(t, "faVrCardboard", function () { return Mf; }), n.d(t, "faWalking", function () { return Af; }), n.d(t, "faWallet", function () { return If; }), n.d(t, "faWarehouse", function () { return Df; }), n.d(t, "faWeight", function () { return Rf; }), n.d(t, "faWeightHanging", function () { return wf; }), n.d(t, "faWheelchair", function () { return Lf; }), n.d(t, "faWifi", function () { return Ff; }), n.d(t, "faWind", function () { return Nf; }), n.d(t, "faWindowClose", function () { return kf; }), n.d(t, "faWindowMaximize", function () { return zf; }), n.d(t, "faWindowMinimize", function () { return jf; }), n.d(t, "faWindowRestore", function () { return Bf; }), n.d(t, "faWineBottle", function () { return Vf; }), n.d(t, "faWineGlass", function () { return Gf; }), n.d(t, "faWineGlassAlt", function () { return Uf; }), n.d(t, "faWonSign", function () { return Hf; }), n.d(t, "faWrench", function () { return Wf; }), n.d(t, "faXRay", function () { return Xf; }), n.d(t, "faYenSign", function () { return Yf; }), n.d(t, "faYinYang", function () { return Kf; }); var i = "fas", r = { prefix: "fas", iconName: "ad", icon: [ 512, 512, [], "f641", "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z", ], }, o = { prefix: "fas", iconName: "address-book", icon: [ 448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z", ], }, a = { prefix: "fas", iconName: "address-card", icon: [ 576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z", ], }, s = { prefix: "fas", iconName: "adjust", icon: [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"], }, c = { prefix: "fas", iconName: "air-freshener", icon: [ 384, 512, [], "f5d0", "M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z", ], }, l = { prefix: "fas", iconName: "align-center", icon: [ 448, 512, [], "f037", "M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z", ], }, u = { prefix: "fas", iconName: "align-justify", icon: [ 448, 512, [], "f039", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z", ], }, h = { prefix: "fas", iconName: "align-left", icon: [ 448, 512, [], "f036", "M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z", ], }, d = { prefix: "fas", iconName: "align-right", icon: [ 448, 512, [], "f038", "M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z", ], }, p = { prefix: "fas", iconName: "allergies", icon: [ 448, 512, [], "f461", "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z", ], }, f = { prefix: "fas", iconName: "ambulance", icon: [ 640, 512, [], "f0f9", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z", ], }, m = { prefix: "fas", iconName: "american-sign-language-interpreting", icon: [ 640, 512, [], "f2a3", "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z", ], }, g = { prefix: "fas", iconName: "anchor", icon: [ 576, 512, [], "f13d", "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z", ], }, b = { prefix: "fas", iconName: "angle-double-down", icon: [ 320, 512, [], "f103", "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z", ], }, _ = { prefix: "fas", iconName: "angle-double-left", icon: [ 448, 512, [], "f100", "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z", ], }, v = { prefix: "fas", iconName: "angle-double-right", icon: [ 448, 512, [], "f101", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z", ], }, y = { prefix: "fas", iconName: "angle-double-up", icon: [ 320, 512, [], "f102", "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z", ], }, C = { prefix: "fas", iconName: "angle-down", icon: [ 320, 512, [], "f107", "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z", ], }, P = { prefix: "fas", iconName: "angle-left", icon: [ 256, 512, [], "f104", "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z", ], }, x = { prefix: "fas", iconName: "angle-right", icon: [ 256, 512, [], "f105", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z", ], }, T = { prefix: "fas", iconName: "angle-up", icon: [ 320, 512, [], "f106", "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z", ], }, S = { prefix: "fas", iconName: "angry", icon: [ 496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z", ], }, O = { prefix: "fas", iconName: "ankh", icon: [ 320, 512, [], "f644", "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z", ], }, E = { prefix: "fas", iconName: "apple-alt", icon: [ 448, 512, [], "f5d1", "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z", ], }, M = { prefix: "fas", iconName: "archive", icon: [ 512, 512, [], "f187", "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z", ], }, A = { prefix: "fas", iconName: "archway", icon: [ 576, 512, [], "f557", "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z", ], }, I = { prefix: "fas", iconName: "arrow-alt-circle-down", icon: [ 512, 512, [], "f358", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z", ], }, D = { prefix: "fas", iconName: "arrow-alt-circle-left", icon: [ 512, 512, [], "f359", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z", ], }, R = { prefix: "fas", iconName: "arrow-alt-circle-right", icon: [ 512, 512, [], "f35a", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z", ], }, w = { prefix: "fas", iconName: "arrow-alt-circle-up", icon: [ 512, 512, [], "f35b", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z", ], }, L = { prefix: "fas", iconName: "arrow-circle-down", icon: [ 512, 512, [], "f0ab", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z", ], }, F = { prefix: "fas", iconName: "arrow-circle-left", icon: [ 512, 512, [], "f0a8", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z", ], }, N = { prefix: "fas", iconName: "arrow-circle-right", icon: [ 512, 512, [], "f0a9", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z", ], }, k = { prefix: "fas", iconName: "arrow-circle-up", icon: [ 512, 512, [], "f0aa", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z", ], }, z = { prefix: "fas", iconName: "arrow-down", icon: [ 448, 512, [], "f063", "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z", ], }, j = { prefix: "fas", iconName: "arrow-left", icon: [ 448, 512, [], "f060", "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z", ], }, B = { prefix: "fas", iconName: "arrow-right", icon: [ 448, 512, [], "f061", "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z", ], }, V = { prefix: "fas", iconName: "arrow-up", icon: [ 448, 512, [], "f062", "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z", ], }, G = { prefix: "fas", iconName: "arrows-alt", icon: [ 512, 512, [], "f0b2", "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z", ], }, U = { prefix: "fas", iconName: "arrows-alt-h", icon: [ 512, 512, [], "f337", "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z", ], }, H = { prefix: "fas", iconName: "arrows-alt-v", icon: [ 256, 512, [], "f338", "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z", ], }, W = { prefix: "fas", iconName: "assistive-listening-systems", icon: [ 512, 512, [], "f2a2", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z", ], }, X = { prefix: "fas", iconName: "asterisk", icon: [ 512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z", ], }, Y = { prefix: "fas", iconName: "at", icon: [ 512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z", ], }, K = { prefix: "fas", iconName: "atlas", icon: [ 448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z", ], }, Z = { prefix: "fas", iconName: "atom", icon: [ 448, 512, [], "f5d2", "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z", ], }, q = { prefix: "fas", iconName: "audio-description", icon: [ 512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z", ], }, Q = { prefix: "fas", iconName: "award", icon: [ 384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z", ], }, J = { prefix: "fas", iconName: "backspace", icon: [ 640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z", ], }, $ = { prefix: "fas", iconName: "backward", icon: [ 512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z", ], }, ee = { prefix: "fas", iconName: "balance-scale", icon: [ 640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z", ], }, te = { prefix: "fas", iconName: "ban", icon: [ 512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z", ], }, ne = { prefix: "fas", iconName: "band-aid", icon: [ 640, 512, [], "f462", "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z", ], }, ie = { prefix: "fas", iconName: "barcode", icon: [ 512, 512, [], "f02a", "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z", ], }, re = { prefix: "fas", iconName: "bars", icon: [ 448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z", ], }, oe = { prefix: "fas", iconName: "baseball-ball", icon: [ 496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z", ], }, ae = { prefix: "fas", iconName: "basketball-ball", icon: [ 496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z", ], }, se = { prefix: "fas", iconName: "bath", icon: [ 512, 512, [], "f2cd", "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z", ], }, ce = { prefix: "fas", iconName: "battery-empty", icon: [ 640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z", ], }, le = { prefix: "fas", iconName: "battery-full", icon: [ 640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z", ], }, ue = { prefix: "fas", iconName: "battery-half", icon: [ 640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z", ], }, he = { prefix: "fas", iconName: "battery-quarter", icon: [ 640, 512, [], "f243", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z", ], }, de = { prefix: "fas", iconName: "battery-three-quarters", icon: [ 640, 512, [], "f241", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z", ], }, pe = { prefix: "fas", iconName: "bed", icon: [ 640, 512, [], "f236", "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z", ], }, fe = { prefix: "fas", iconName: "beer", icon: [ 448, 512, [], "f0fc", "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z", ], }, me = { prefix: "fas", iconName: "bell", icon: [ 448, 512, [], "f0f3", "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z", ], }, ge = { prefix: "fas", iconName: "bell-slash", icon: [ 640, 512, [], "f1f6", "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z", ], }, be = { prefix: "fas", iconName: "bezier-curve", icon: [ 640, 512, [], "f55b", "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z", ], }, _e = { prefix: "fas", iconName: "bible", icon: [ 448, 512, [], "f647", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z", ], }, ve = { prefix: "fas", iconName: "bicycle", icon: [ 640, 512, [], "f206", "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z", ], }, ye = { prefix: "fas", iconName: "binoculars", icon: [ 512, 512, [], "f1e5", "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z", ], }, Ce = { prefix: "fas", iconName: "birthday-cake", icon: [ 448, 512, [], "f1fd", "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z", ], }, Pe = { prefix: "fas", iconName: "blender", icon: [ 512, 512, [], "f517", "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z", ], }, xe = { prefix: "fas", iconName: "blender-phone", icon: [ 576, 512, [], "f6b6", "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Te = { prefix: "fas", iconName: "blind", icon: [ 384, 512, [], "f29d", "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z", ], }, Se = { prefix: "fas", iconName: "bold", icon: [ 384, 512, [], "f032", "M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z", ], }, Oe = { prefix: "fas", iconName: "bolt", icon: [ 320, 512, [], "f0e7", "M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z", ], }, Ee = { prefix: "fas", iconName: "bomb", icon: [ 512, 512, [], "f1e2", "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z", ], }, Me = { prefix: "fas", iconName: "bone", icon: [ 640, 512, [], "f5d7", "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z", ], }, Ae = { prefix: "fas", iconName: "bong", icon: [ 448, 512, [], "f55c", "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z", ], }, Ie = { prefix: "fas", iconName: "book", icon: [ 448, 512, [], "f02d", "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z", ], }, De = { prefix: "fas", iconName: "book-dead", icon: [ 448, 512, [], "f6b7", "M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z", ], }, Re = { prefix: "fas", iconName: "book-open", icon: [ 576, 512, [], "f518", "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z", ], }, we = { prefix: "fas", iconName: "book-reader", icon: [ 512, 512, [], "f5da", "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z", ], }, Le = { prefix: "fas", iconName: "bookmark", icon: [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"] }, Fe = { prefix: "fas", iconName: "bowling-ball", icon: [ 496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, Ne = { prefix: "fas", iconName: "box", icon: [ 512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z", ], }, ke = { prefix: "fas", iconName: "box-open", icon: [ 640, 512, [], "f49e", "M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z", ], }, ze = { prefix: "fas", iconName: "boxes", icon: [ 576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z", ], }, je = { prefix: "fas", iconName: "braille", icon: [ 640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z", ], }, Be = { prefix: "fas", iconName: "brain", icon: [ 576, 512, [], "f5dc", "M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z", ], }, Ve = { prefix: "fas", iconName: "briefcase", icon: [ 512, 512, [], "f0b1", "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z", ], }, Ge = { prefix: "fas", iconName: "briefcase-medical", icon: [ 512, 512, [], "f469", "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z", ], }, Ue = { prefix: "fas", iconName: "broadcast-tower", icon: [ 640, 512, [], "f519", "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z", ], }, He = { prefix: "fas", iconName: "broom", icon: [ 640, 512, [], "f51a", "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z", ], }, We = { prefix: "fas", iconName: "brush", icon: [ 384, 512, [], "f55d", "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z", ], }, Xe = { prefix: "fas", iconName: "bug", icon: [ 512, 512, [], "f188", "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z", ], }, Ye = { prefix: "fas", iconName: "building", icon: [ 448, 512, [], "f1ad", "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z", ], }, Ke = { prefix: "fas", iconName: "bullhorn", icon: [ 576, 512, [], "f0a1", "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z", ], }, Ze = { prefix: "fas", iconName: "bullseye", icon: [ 496, 512, [], "f140", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z", ], }, qe = { prefix: "fas", iconName: "burn", icon: [ 384, 512, [], "f46a", "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z", ], }, Qe = { prefix: "fas", iconName: "bus", icon: [ 512, 512, [], "f207", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Je = { prefix: "fas", iconName: "bus-alt", icon: [ 512, 512, [], "f55e", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, $e = { prefix: "fas", iconName: "business-time", icon: [ 640, 512, [], "f64a", "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z", ], }, et = { prefix: "fas", iconName: "calculator", icon: [ 448, 512, [], "f1ec", "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z", ], }, tt = { prefix: "fas", iconName: "calendar", icon: [ 448, 512, [], "f133", "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z", ], }, nt = { prefix: "fas", iconName: "calendar-alt", icon: [ 448, 512, [], "f073", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z", ], }, it = { prefix: "fas", iconName: "calendar-check", icon: [ 448, 512, [], "f274", "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z", ], }, rt = { prefix: "fas", iconName: "calendar-minus", icon: [ 448, 512, [], "f272", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z", ], }, ot = { prefix: "fas", iconName: "calendar-plus", icon: [ 448, 512, [], "f271", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z", ], }, at = { prefix: "fas", iconName: "calendar-times", icon: [ 448, 512, [], "f273", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z", ], }, st = { prefix: "fas", iconName: "camera", icon: [ 512, 512, [], "f030", "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z", ], }, ct = { prefix: "fas", iconName: "camera-retro", icon: [ 512, 512, [], "f083", "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z", ], }, lt = { prefix: "fas", iconName: "campground", icon: [ 640, 512, [], "f6bb", "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z", ], }, ut = { prefix: "fas", iconName: "cannabis", icon: [ 512, 512, [], "f55f", "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z", ], }, ht = { prefix: "fas", iconName: "capsules", icon: [ 576, 512, [], "f46b", "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z", ], }, dt = { prefix: "fas", iconName: "car", icon: [ 512, 512, [], "f1b9", "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z", ], }, pt = { prefix: "fas", iconName: "car-alt", icon: [ 480, 512, [], "f5de", "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z", ], }, ft = { prefix: "fas", iconName: "car-battery", icon: [ 512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z", ], }, mt = { prefix: "fas", iconName: "car-crash", icon: [ 640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z", ], }, gt = { prefix: "fas", iconName: "car-side", icon: [ 640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z", ], }, bt = { prefix: "fas", iconName: "caret-down", icon: [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"] }, _t = { prefix: "fas", iconName: "caret-left", icon: [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"], }, vt = { prefix: "fas", iconName: "caret-right", icon: [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"], }, yt = { prefix: "fas", iconName: "caret-square-down", icon: [ 448, 512, [], "f150", "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z", ], }, Ct = { prefix: "fas", iconName: "caret-square-left", icon: [ 448, 512, [], "f191", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z", ], }, Pt = { prefix: "fas", iconName: "caret-square-right", icon: [ 448, 512, [], "f152", "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z", ], }, xt = { prefix: "fas", iconName: "caret-square-up", icon: [ 448, 512, [], "f151", "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z", ], }, Tt = { prefix: "fas", iconName: "caret-up", icon: [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"], }, St = { prefix: "fas", iconName: "cart-arrow-down", icon: [ 576, 512, [], "f218", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z", ], }, Ot = { prefix: "fas", iconName: "cart-plus", icon: [ 576, 512, [], "f217", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z", ], }, Et = { prefix: "fas", iconName: "cat", icon: [ 512, 512, [], "f6be", "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z", ], }, Mt = { prefix: "fas", iconName: "certificate", icon: [ 512, 512, [], "f0a3", "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z", ], }, At = { prefix: "fas", iconName: "chair", icon: [ 448, 512, [], "f6c0", "M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z", ], }, It = { prefix: "fas", iconName: "chalkboard", icon: [ 640, 512, [], "f51b", "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z", ], }, Dt = { prefix: "fas", iconName: "chalkboard-teacher", icon: [ 640, 512, [], "f51c", "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z", ], }, Rt = { prefix: "fas", iconName: "charging-station", icon: [ 576, 512, [], "f5e7", "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z", ], }, wt = { prefix: "fas", iconName: "chart-area", icon: [ 512, 512, [], "f1fe", "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z", ], }, Lt = { prefix: "fas", iconName: "chart-bar", icon: [ 512, 512, [], "f080", "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z", ], }, Ft = { prefix: "fas", iconName: "chart-line", icon: [ 512, 512, [], "f201", "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z", ], }, Nt = { prefix: "fas", iconName: "chart-pie", icon: [ 544, 512, [], "f200", "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z", ], }, kt = { prefix: "fas", iconName: "check", icon: [ 512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z", ], }, zt = { prefix: "fas", iconName: "check-circle", icon: [ 512, 512, [], "f058", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z", ], }, jt = { prefix: "fas", iconName: "check-double", icon: [ 512, 512, [], "f560", "M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z", ], }, Bt = { prefix: "fas", iconName: "check-square", icon: [ 448, 512, [], "f14a", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z", ], }, Vt = { prefix: "fas", iconName: "chess", icon: [ 512, 512, [], "f439", "M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z", ], }, Gt = { prefix: "fas", iconName: "chess-bishop", icon: [ 320, 512, [], "f43a", "M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z", ], }, Ut = { prefix: "fas", iconName: "chess-board", icon: [ 512, 512, [], "f43c", "M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z", ], }, Ht = { prefix: "fas", iconName: "chess-king", icon: [ 448, 512, [], "f43f", "M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z", ], }, Wt = { prefix: "fas", iconName: "chess-knight", icon: [ 384, 512, [], "f441", "M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z", ], }, Xt = { prefix: "fas", iconName: "chess-pawn", icon: [ 320, 512, [], "f443", "M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z", ], }, Yt = { prefix: "fas", iconName: "chess-queen", icon: [ 512, 512, [], "f445", "M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z", ], }, Kt = { prefix: "fas", iconName: "chess-rook", icon: [ 384, 512, [], "f447", "M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z", ], }, Zt = { prefix: "fas", iconName: "chevron-circle-down", icon: [ 512, 512, [], "f13a", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z", ], }, qt = { prefix: "fas", iconName: "chevron-circle-left", icon: [ 512, 512, [], "f137", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z", ], }, Qt = { prefix: "fas", iconName: "chevron-circle-right", icon: [ 512, 512, [], "f138", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z", ], }, Jt = { prefix: "fas", iconName: "chevron-circle-up", icon: [ 512, 512, [], "f139", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z", ], }, $t = { prefix: "fas", iconName: "chevron-down", icon: [ 448, 512, [], "f078", "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z", ], }, en = { prefix: "fas", iconName: "chevron-left", icon: [ 320, 512, [], "f053", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z", ], }, tn = { prefix: "fas", iconName: "chevron-right", icon: [ 320, 512, [], "f054", "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z", ], }, nn = { prefix: "fas", iconName: "chevron-up", icon: [ 448, 512, [], "f077", "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z", ], }, rn = { prefix: "fas", iconName: "child", icon: [ 384, 512, [], "f1ae", "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z", ], }, on = { prefix: "fas", iconName: "church", icon: [ 640, 512, [], "f51d", "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z", ], }, an = { prefix: "fas", iconName: "circle", icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"] }, sn = { prefix: "fas", iconName: "circle-notch", icon: [ 512, 512, [], "f1ce", "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z", ], }, cn = { prefix: "fas", iconName: "city", icon: [ 640, 512, [], "f64f", "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z", ], }, ln = { prefix: "fas", iconName: "clipboard", icon: [ 384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z", ], }, un = { prefix: "fas", iconName: "clipboard-check", icon: [ 384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z", ], }, hn = { prefix: "fas", iconName: "clipboard-list", icon: [ 384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z", ], }, dn = { prefix: "fas", iconName: "clock", icon: [ 512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z", ], }, pn = { prefix: "fas", iconName: "clone", icon: [ 512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z", ], }, fn = { prefix: "fas", iconName: "closed-captioning", icon: [ 512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z", ], }, mn = { prefix: "fas", iconName: "cloud", icon: [ 640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z", ], }, gn = { prefix: "fas", iconName: "cloud-download-alt", icon: [ 640, 512, [], "f381", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z", ], }, bn = { prefix: "fas", iconName: "cloud-moon", icon: [ 640, 512, [], "f6c3", "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z", ], }, _n = { prefix: "fas", iconName: "cloud-sun", icon: [ 640, 512, [], "f6c4", "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z", ], }, vn = { prefix: "fas", iconName: "cloud-upload-alt", icon: [ 640, 512, [], "f382", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z", ], }, yn = { prefix: "fas", iconName: "cocktail", icon: [ 576, 512, [], "f561", "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z", ], }, Cn = { prefix: "fas", iconName: "code", icon: [ 640, 512, [], "f121", "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z", ], }, Pn = { prefix: "fas", iconName: "code-branch", icon: [ 384, 512, [], "f126", "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z", ], }, xn = { prefix: "fas", iconName: "coffee", icon: [ 640, 512, [], "f0f4", "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z", ], }, Tn = { prefix: "fas", iconName: "cog", icon: [ 512, 512, [], "f013", "M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z", ], }, Sn = { prefix: "fas", iconName: "cogs", icon: [ 640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z", ], }, On = { prefix: "fas", iconName: "coins", icon: [ 512, 512, [], "f51e", "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z", ], }, En = { prefix: "fas", iconName: "columns", icon: [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"], }, Mn = { prefix: "fas", iconName: "comment", icon: [ 512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z", ], }, An = { prefix: "fas", iconName: "comment-alt", icon: [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"], }, In = { prefix: "fas", iconName: "comment-dollar", icon: [ 512, 512, [], "f651", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z", ], }, Dn = { prefix: "fas", iconName: "comment-dots", icon: [ 512, 512, [], "f4ad", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, Rn = { prefix: "fas", iconName: "comment-slash", icon: [ 640, 512, [], "f4b3", "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z", ], }, wn = { prefix: "fas", iconName: "comments", icon: [ 576, 512, [], "f086", "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z", ], }, Ln = { prefix: "fas", iconName: "comments-dollar", icon: [ 576, 512, [], "f653", "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z", ], }, Fn = { prefix: "fas", iconName: "compact-disc", icon: [ 496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z", ], }, Nn = { prefix: "fas", iconName: "compass", icon: [ 496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z", ], }, kn = { prefix: "fas", iconName: "compress", icon: [ 448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z", ], }, zn = { prefix: "fas", iconName: "concierge-bell", icon: [ 512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z", ], }, jn = { prefix: "fas", iconName: "cookie", icon: [ 512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Bn = { prefix: "fas", iconName: "cookie-bite", icon: [ 512, 512, [], "f564", "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Vn = { prefix: "fas", iconName: "copy", icon: [ 448, 512, [], "f0c5", "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z", ], }, Gn = { prefix: "fas", iconName: "copyright", icon: [ 512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z", ], }, Un = { prefix: "fas", iconName: "couch", icon: [ 640, 512, [], "f4b8", "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z", ], }, Hn = { prefix: "fas", iconName: "credit-card", icon: [ 576, 512, [], "f09d", "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z", ], }, Wn = { prefix: "fas", iconName: "crop", icon: [ 512, 512, [], "f125", "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z", ], }, Xn = { prefix: "fas", iconName: "crop-alt", icon: [ 512, 512, [], "f565", "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z", ], }, Yn = { prefix: "fas", iconName: "cross", icon: [ 384, 512, [], "f654", "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z", ], }, Kn = { prefix: "fas", iconName: "crosshairs", icon: [ 512, 512, [], "f05b", "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z", ], }, Zn = { prefix: "fas", iconName: "crow", icon: [ 640, 512, [], "f520", "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z", ], }, qn = { prefix: "fas", iconName: "crown", icon: [ 640, 512, [], "f521", "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z", ], }, Qn = { prefix: "fas", iconName: "cube", icon: [ 512, 512, [], "f1b2", "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z", ], }, Jn = { prefix: "fas", iconName: "cubes", icon: [ 512, 512, [], "f1b3", "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z", ], }, $n = { prefix: "fas", iconName: "cut", icon: [ 448, 512, [], "f0c4", "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z", ], }, ei = { prefix: "fas", iconName: "database", icon: [ 448, 512, [], "f1c0", "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z", ], }, ti = { prefix: "fas", iconName: "deaf", icon: [ 512, 512, [], "f2a4", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z", ], }, ni = { prefix: "fas", iconName: "desktop", icon: [ 576, 512, [], "f108", "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z", ], }, ii = { prefix: "fas", iconName: "dharmachakra", icon: [ 512, 512, [], "f655", "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z", ], }, ri = { prefix: "fas", iconName: "diagnoses", icon: [ 640, 512, [], "f470", "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z", ], }, oi = { prefix: "fas", iconName: "dice", icon: [ 640, 512, [], "f522", "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z", ], }, ai = { prefix: "fas", iconName: "dice-d20", icon: [ 480, 512, [], "f6cf", "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z", ], }, si = { prefix: "fas", iconName: "dice-d6", icon: [ 448, 512, [], "f6d1", "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z", ], }, ci = { prefix: "fas", iconName: "dice-five", icon: [ 448, 512, [], "f523", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, li = { prefix: "fas", iconName: "dice-four", icon: [ 448, 512, [], "f524", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, ui = { prefix: "fas", iconName: "dice-one", icon: [ 448, 512, [], "f525", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, hi = { prefix: "fas", iconName: "dice-six", icon: [ 448, 512, [], "f526", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, di = { prefix: "fas", iconName: "dice-three", icon: [ 448, 512, [], "f527", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, pi = { prefix: "fas", iconName: "dice-two", icon: [ 448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, fi = { prefix: "fas", iconName: "digital-tachograph", icon: [ 640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z", ], }, mi = { prefix: "fas", iconName: "directions", icon: [ 512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z", ], }, gi = { prefix: "fas", iconName: "divide", icon: [ 448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z", ], }, bi = { prefix: "fas", iconName: "dizzy", icon: [ 496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z", ], }, _i = { prefix: "fas", iconName: "dna", icon: [ 448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z", ], }, vi = { prefix: "fas", iconName: "dog", icon: [ 512, 512, [], "f6d3", "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z", ], }, yi = { prefix: "fas", iconName: "dollar-sign", icon: [ 288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z", ], }, Ci = { prefix: "fas", iconName: "dolly", icon: [ 576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z", ], }, Pi = { prefix: "fas", iconName: "dolly-flatbed", icon: [ 640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z", ], }, xi = { prefix: "fas", iconName: "donate", icon: [ 512, 512, [], "f4b9", "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z", ], }, Ti = { prefix: "fas", iconName: "door-closed", icon: [ 640, 512, [], "f52a", "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z", ], }, Si = { prefix: "fas", iconName: "door-open", icon: [ 640, 512, [], "f52b", "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z", ], }, Oi = { prefix: "fas", iconName: "dot-circle", icon: [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"], }, Ei = { prefix: "fas", iconName: "dove", icon: [ 512, 512, [], "f4ba", "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z", ], }, Mi = { prefix: "fas", iconName: "download", icon: [ 512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z", ], }, Ai = { prefix: "fas", iconName: "drafting-compass", icon: [ 512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z", ], }, Ii = { prefix: "fas", iconName: "dragon", icon: [ 640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z", ], }, Di = { prefix: "fas", iconName: "draw-polygon", icon: [ 448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z", ], }, Ri = { prefix: "fas", iconName: "drum", icon: [ 576, 512, [], "f569", "M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z", ], }, wi = { prefix: "fas", iconName: "drum-steelpan", icon: [ 576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z", ], }, Li = { prefix: "fas", iconName: "drumstick-bite", icon: [ 512, 512, [], "f6d7", "M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z", ], }, Fi = { prefix: "fas", iconName: "dumbbell", icon: [ 640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z", ], }, Ni = { prefix: "fas", iconName: "dungeon", icon: [ 512, 512, [], "f6d9", "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z", ], }, ki = { prefix: "fas", iconName: "edit", icon: [ 576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z", ], }, zi = { prefix: "fas", iconName: "eject", icon: [ 448, 512, [], "f052", "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z", ], }, ji = { prefix: "fas", iconName: "ellipsis-h", icon: [ 512, 512, [], "f141", "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z", ], }, Bi = { prefix: "fas", iconName: "ellipsis-v", icon: [ 192, 512, [], "f142", "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z", ], }, Vi = { prefix: "fas", iconName: "envelope", icon: [ 512, 512, [], "f0e0", "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z", ], }, Gi = { prefix: "fas", iconName: "envelope-open", icon: [ 512, 512, [], "f2b6", "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z", ], }, Ui = { prefix: "fas", iconName: "envelope-open-text", icon: [ 512, 512, [], "f658", "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z", ], }, Hi = { prefix: "fas", iconName: "envelope-square", icon: [ 448, 512, [], "f199", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z", ], }, Wi = { prefix: "fas", iconName: "equals", icon: [ 448, 512, [], "f52c", "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z", ], }, Xi = { prefix: "fas", iconName: "eraser", icon: [ 512, 512, [], "f12d", "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z", ], }, Yi = { prefix: "fas", iconName: "euro-sign", icon: [ 320, 512, [], "f153", "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z", ], }, Ki = { prefix: "fas", iconName: "exchange-alt", icon: [ 512, 512, [], "f362", "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z", ], }, Zi = { prefix: "fas", iconName: "exclamation", icon: [ 192, 512, [], "f12a", "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z", ], }, qi = { prefix: "fas", iconName: "exclamation-circle", icon: [ 512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z", ], }, Qi = { prefix: "fas", iconName: "exclamation-triangle", icon: [ 576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z", ], }, Ji = { prefix: "fas", iconName: "expand", icon: [ 448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z", ], }, $i = { prefix: "fas", iconName: "expand-arrows-alt", icon: [ 448, 512, [], "f31e", "M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z", ], }, er = { prefix: "fas", iconName: "external-link-alt", icon: [ 576, 512, [], "f35d", "M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z", ], }, tr = { prefix: "fas", iconName: "external-link-square-alt", icon: [ 448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z", ], }, nr = { prefix: "fas", iconName: "eye", icon: [ 576, 512, [], "f06e", "M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z", ], }, ir = { prefix: "fas", iconName: "eye-dropper", icon: [ 512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z", ], }, rr = { prefix: "fas", iconName: "eye-slash", icon: [ 576, 512, [], "f070", "M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z", ], }, or = { prefix: "fas", iconName: "fast-backward", icon: [ 512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z", ], }, ar = { prefix: "fas", iconName: "fast-forward", icon: [ 512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z", ], }, sr = { prefix: "fas", iconName: "fax", icon: [ 512, 512, [], "f1ac", "M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z", ], }, cr = { prefix: "fas", iconName: "feather", icon: [ 512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z", ], }, lr = { prefix: "fas", iconName: "feather-alt", icon: [ 512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z", ], }, ur = { prefix: "fas", iconName: "female", icon: [ 256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z", ], }, hr = { prefix: "fas", iconName: "fighter-jet", icon: [ 640, 512, [], "f0fb", "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z", ], }, dr = { prefix: "fas", iconName: "file", icon: [ 384, 512, [], "f15b", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, pr = { prefix: "fas", iconName: "file-alt", icon: [ 384, 512, [], "f15c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, fr = { prefix: "fas", iconName: "file-archive", icon: [ 384, 512, [], "f1c6", "M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, mr = { prefix: "fas", iconName: "file-audio", icon: [ 384, 512, [], "f1c7", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, gr = { prefix: "fas", iconName: "file-code", icon: [ 384, 512, [], "f1c9", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z", ], }, br = { prefix: "fas", iconName: "file-contract", icon: [ 384, 512, [], "f56c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z", ], }, _r = { prefix: "fas", iconName: "file-csv", icon: [ 384, 512, [], "f6dd", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z", ], }, vr = { prefix: "fas", iconName: "file-download", icon: [ 384, 512, [], "f56d", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z", ], }, yr = { prefix: "fas", iconName: "file-excel", icon: [ 384, 512, [], "f1c3", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, Cr = { prefix: "fas", iconName: "file-export", icon: [ 576, 512, [], "f56e", "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z", ], }, Pr = { prefix: "fas", iconName: "file-image", icon: [ 384, 512, [], "f1c5", "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z", ], }, xr = { prefix: "fas", iconName: "file-import", icon: [ 512, 512, [], "f56f", "M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z", ], }, Tr = { prefix: "fas", iconName: "file-invoice", icon: [ 384, 512, [], "f570", "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z", ], }, Sr = { prefix: "fas", iconName: "file-invoice-dollar", icon: [ 384, 512, [], "f571", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z", ], }, Or = { prefix: "fas", iconName: "file-medical", icon: [ 384, 512, [], "f477", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z", ], }, Er = { prefix: "fas", iconName: "file-medical-alt", icon: [ 448, 512, [], "f478", "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z", ], }, Mr = { prefix: "fas", iconName: "file-pdf", icon: [ 384, 512, [], "f1c1", "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z", ], }, Ar = { prefix: "fas", iconName: "file-powerpoint", icon: [ 384, 512, [], "f1c4", "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z", ], }, Ir = { prefix: "fas", iconName: "file-prescription", icon: [ 384, 512, [], "f572", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, Dr = { prefix: "fas", iconName: "file-signature", icon: [ 576, 512, [], "f573", "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z", ], }, Rr = { prefix: "fas", iconName: "file-upload", icon: [ 384, 512, [], "f574", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z", ], }, wr = { prefix: "fas", iconName: "file-video", icon: [ 384, 512, [], "f1c8", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z", ], }, Lr = { prefix: "fas", iconName: "file-word", icon: [ 384, 512, [], "f1c2", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z", ], }, Fr = { prefix: "fas", iconName: "fill", icon: [ 512, 512, [], "f575", "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z", ], }, Nr = { prefix: "fas", iconName: "fill-drip", icon: [ 576, 512, [], "f576", "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z", ], }, kr = { prefix: "fas", iconName: "film", icon: [ 512, 512, [], "f008", "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z", ], }, zr = { prefix: "fas", iconName: "filter", icon: [ 512, 512, [], "f0b0", "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z", ], }, jr = { prefix: "fas", iconName: "fingerprint", icon: [ 512, 512, [], "f577", "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z", ], }, Br = { prefix: "fas", iconName: "fire", icon: [ 384, 512, [], "f06d", "M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z", ], }, Vr = { prefix: "fas", iconName: "fire-extinguisher", icon: [ 448, 512, [], "f134", "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z", ], }, Gr = { prefix: "fas", iconName: "first-aid", icon: [ 576, 512, [], "f479", "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z", ], }, Ur = { prefix: "fas", iconName: "fish", icon: [ 576, 512, [], "f578", "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z", ], }, Hr = { prefix: "fas", iconName: "fist-raised", icon: [ 384, 512, [], "f6de", "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z", ], }, Wr = { prefix: "fas", iconName: "flag", icon: [ 512, 512, [], "f024", "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z", ], }, Xr = { prefix: "fas", iconName: "flag-checkered", icon: [ 512, 512, [], "f11e", "M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z", ], }, Yr = { prefix: "fas", iconName: "flask", icon: [ 448, 512, [], "f0c3", "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z", ], }, Kr = { prefix: "fas", iconName: "flushed", icon: [ 496, 512, [], "f579", "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z", ], }, Zr = { prefix: "fas", iconName: "folder", icon: [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"] }, qr = { prefix: "fas", iconName: "folder-minus", icon: [ 512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z", ], }, Qr = { prefix: "fas", iconName: "folder-open", icon: [ 576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z", ], }, Jr = { prefix: "fas", iconName: "folder-plus", icon: [ 512, 512, [], "f65e", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z", ], }, $r = { prefix: "fas", iconName: "font", icon: [ 448, 512, [], "f031", "M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z", ], }, eo = { prefix: "fas", iconName: "font-awesome-logo-full", icon: [ 3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z", ], }, to = { prefix: "fas", iconName: "football-ball", icon: [ 496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z", ], }, no = { prefix: "fas", iconName: "forward", icon: [ 512, 512, [], "f04e", "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z", ], }, io = { prefix: "fas", iconName: "frog", icon: [ 576, 512, [], "f52e", "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z", ], }, ro = { prefix: "fas", iconName: "frown", icon: [ 496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z", ], }, oo = { prefix: "fas", iconName: "frown-open", icon: [ 496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, ao = { prefix: "fas", iconName: "funnel-dollar", icon: [ 640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z", ], }, so = { prefix: "fas", iconName: "futbol", icon: [ 512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z", ], }, co = { prefix: "fas", iconName: "gamepad", icon: [ 640, 512, [], "f11b", "M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z", ], }, lo = { prefix: "fas", iconName: "gas-pump", icon: [ 512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z", ], }, uo = { prefix: "fas", iconName: "gavel", icon: [ 512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z", ], }, ho = { prefix: "fas", iconName: "gem", icon: [ 576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z", ], }, po = { prefix: "fas", iconName: "genderless", icon: [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"], }, fo = { prefix: "fas", iconName: "ghost", icon: [ 384, 512, [], "f6e2", "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, mo = { prefix: "fas", iconName: "gift", icon: [ 512, 512, [], "f06b", "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z", ], }, go = { prefix: "fas", iconName: "glass-martini", icon: [ 512, 512, [], "f000", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z", ], }, bo = { prefix: "fas", iconName: "glass-martini-alt", icon: [ 512, 512, [], "f57b", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z", ], }, _o = { prefix: "fas", iconName: "glasses", icon: [ 576, 512, [], "f530", "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z", ], }, vo = { prefix: "fas", iconName: "globe", icon: [ 496, 512, [], "f0ac", "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z", ], }, yo = { prefix: "fas", iconName: "globe-africa", icon: [ 496, 512, [], "f57c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z", ], }, Co = { prefix: "fas", iconName: "globe-americas", icon: [ 496, 512, [], "f57d", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z", ], }, Po = { prefix: "fas", iconName: "globe-asia", icon: [ 496, 512, [], "f57e", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z", ], }, xo = { prefix: "fas", iconName: "golf-ball", icon: [ 416, 512, [], "f450", "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z", ], }, To = { prefix: "fas", iconName: "gopuram", icon: [ 512, 512, [], "f664", "M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z", ], }, So = { prefix: "fas", iconName: "graduation-cap", icon: [ 640, 512, [], "f19d", "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z", ], }, Oo = { prefix: "fas", iconName: "greater-than", icon: [ 384, 512, [], "f531", "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z", ], }, Eo = { prefix: "fas", iconName: "greater-than-equal", icon: [ 448, 512, [], "f532", "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z", ], }, Mo = { prefix: "fas", iconName: "grimace", icon: [ 496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z", ], }, Ao = { prefix: "fas", iconName: "grin", icon: [ 496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z", ], }, Io = { prefix: "fas", iconName: "grin-alt", icon: [ 496, 512, [], "f581", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z", ], }, Do = { prefix: "fas", iconName: "grin-beam", icon: [ 496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z", ], }, Ro = { prefix: "fas", iconName: "grin-beam-sweat", icon: [ 504, 512, [], "f583", "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z", ], }, wo = { prefix: "fas", iconName: "grin-hearts", icon: [ 496, 512, [], "f584", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z", ], }, Lo = { prefix: "fas", iconName: "grin-squint", icon: [ 496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z", ], }, Fo = { prefix: "fas", iconName: "grin-squint-tears", icon: [ 512, 512, [], "f586", "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z", ], }, No = { prefix: "fas", iconName: "grin-stars", icon: [ 496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z", ], }, ko = { prefix: "fas", iconName: "grin-tears", icon: [ 640, 512, [], "f588", "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z", ], }, zo = { prefix: "fas", iconName: "grin-tongue", icon: [ 496, 512, [], "f589", "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z", ], }, jo = { prefix: "fas", iconName: "grin-tongue-squint", icon: [ 496, 512, [], "f58a", "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z", ], }, Bo = { prefix: "fas", iconName: "grin-tongue-wink", icon: [ 496, 512, [], "f58b", "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z", ], }, Vo = { prefix: "fas", iconName: "grin-wink", icon: [ 496, 512, [], "f58c", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z", ], }, Go = { prefix: "fas", iconName: "grip-horizontal", icon: [ 448, 512, [], "f58d", "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z", ], }, Uo = { prefix: "fas", iconName: "grip-vertical", icon: [ 320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z", ], }, Ho = { prefix: "fas", iconName: "h-square", icon: [ 448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z", ], }, Wo = { prefix: "fas", iconName: "hammer", icon: [ 576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z", ], }, Xo = { prefix: "fas", iconName: "hamsa", icon: [ 512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z", ], }, Yo = { prefix: "fas", iconName: "hand-holding", icon: [ 576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z", ], }, Ko = { prefix: "fas", iconName: "hand-holding-heart", icon: [ 576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z", ], }, Zo = { prefix: "fas", iconName: "hand-holding-usd", icon: [ 544, 512, [], "f4c0", "M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z", ], }, qo = { prefix: "fas", iconName: "hand-lizard", icon: [ 576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z", ], }, Qo = { prefix: "fas", iconName: "hand-paper", icon: [ 448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z", ], }, Jo = { prefix: "fas", iconName: "hand-peace", icon: [ 448, 512, [], "f25b", "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z", ], }, $o = { prefix: "fas", iconName: "hand-point-down", icon: [ 384, 512, [], "f0a7", "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z", ], }, ea = { prefix: "fas", iconName: "hand-point-left", icon: [ 512, 512, [], "f0a5", "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z", ], }, ta = { prefix: "fas", iconName: "hand-point-right", icon: [ 512, 512, [], "f0a4", "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z", ], }, na = { prefix: "fas", iconName: "hand-point-up", icon: [ 384, 512, [], "f0a6", "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z", ], }, ia = { prefix: "fas", iconName: "hand-pointer", icon: [ 448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z", ], }, ra = { prefix: "fas", iconName: "hand-rock", icon: [ 512, 512, [], "f255", "M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z", ], }, oa = { prefix: "fas", iconName: "hand-scissors", icon: [ 512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z", ], }, aa = { prefix: "fas", iconName: "hand-spock", icon: [ 512, 512, [], "f259", "M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z", ], }, sa = { prefix: "fas", iconName: "hands", icon: [ 640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z", ], }, ca = { prefix: "fas", iconName: "hands-helping", icon: [ 640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z", ], }, la = { prefix: "fas", iconName: "handshake", icon: [ 640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z", ], }, ua = { prefix: "fas", iconName: "hanukiah", icon: [ 640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z", ], }, ha = { prefix: "fas", iconName: "hashtag", icon: [ 448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z", ], }, da = { prefix: "fas", iconName: "hat-wizard", icon: [ 512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z", ], }, pa = { prefix: "fas", iconName: "haykal", icon: [ 512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z", ], }, fa = { prefix: "fas", iconName: "hdd", icon: [ 576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z", ], }, ma = { prefix: "fas", iconName: "heading", icon: [ 512, 512, [], "f1dc", "M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z", ], }, ga = { prefix: "fas", iconName: "headphones", icon: [ 512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z", ], }, ba = { prefix: "fas", iconName: "headphones-alt", icon: [ 512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z", ], }, _a = { prefix: "fas", iconName: "headset", icon: [ 512, 512, [], "f590", "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z", ], }, va = { prefix: "fas", iconName: "heart", icon: [ 512, 512, [], "f004", "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z", ], }, ya = { prefix: "fas", iconName: "heartbeat", icon: [ 512, 512, [], "f21e", "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z", ], }, Ca = { prefix: "fas", iconName: "helicopter", icon: [ 640, 512, [], "f533", "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z", ], }, Pa = { prefix: "fas", iconName: "highlighter", icon: [ 544, 512, [], "f591", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z", ], }, xa = { prefix: "fas", iconName: "hiking", icon: [ 384, 512, [], "f6ec", "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z", ], }, Ta = { prefix: "fas", iconName: "hippo", icon: [ 640, 512, [], "f6ed", "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z", ], }, Sa = { prefix: "fas", iconName: "history", icon: [ 512, 512, [], "f1da", "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z", ], }, Oa = { prefix: "fas", iconName: "hockey-puck", icon: [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"], }, Ea = { prefix: "fas", iconName: "home", icon: [ 576, 512, [], "f015", "M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z", ], }, Ma = { prefix: "fas", iconName: "horse", icon: [ 576, 512, [], "f6f0", "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z", ], }, Aa = { prefix: "fas", iconName: "hospital", icon: [ 448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z", ], }, Ia = { prefix: "fas", iconName: "hospital-alt", icon: [ 576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z", ], }, Da = { prefix: "fas", iconName: "hospital-symbol", icon: [ 512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z", ], }, Ra = { prefix: "fas", iconName: "hot-tub", icon: [ 512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z", ], }, wa = { prefix: "fas", iconName: "hotel", icon: [ 576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z", ], }, La = { prefix: "fas", iconName: "hourglass", icon: [ 384, 512, [], "f254", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z", ], }, Fa = { prefix: "fas", iconName: "hourglass-end", icon: [ 384, 512, [], "f253", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z", ], }, Na = { prefix: "fas", iconName: "hourglass-half", icon: [ 384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z", ], }, ka = { prefix: "fas", iconName: "hourglass-start", icon: [ 384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z", ], }, za = { prefix: "fas", iconName: "house-damage", icon: [ 576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z", ], }, ja = { prefix: "fas", iconName: "hryvnia", icon: [ 384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z", ], }, Ba = { prefix: "fas", iconName: "i-cursor", icon: [ 256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z", ], }, Va = { prefix: "fas", iconName: "id-badge", icon: [ 384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z", ], }, Ga = { prefix: "fas", iconName: "id-card", icon: [ 576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z", ], }, Ua = { prefix: "fas", iconName: "id-card-alt", icon: [ 576, 512, [], "f47f", "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z", ], }, Ha = { prefix: "fas", iconName: "image", icon: [ 512, 512, [], "f03e", "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z", ], }, Wa = { prefix: "fas", iconName: "images", icon: [ 576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z", ], }, Xa = { prefix: "fas", iconName: "inbox", icon: [ 576, 512, [], "f01c", "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z", ], }, Ya = { prefix: "fas", iconName: "indent", icon: [ 448, 512, [], "f03c", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z", ], }, Ka = { prefix: "fas", iconName: "industry", icon: [ 512, 512, [], "f275", "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z", ], }, Za = { prefix: "fas", iconName: "infinity", icon: [ 640, 512, [], "f534", "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z", ], }, qa = { prefix: "fas", iconName: "info", icon: [ 192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z", ], }, Qa = { prefix: "fas", iconName: "info-circle", icon: [ 512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z", ], }, Ja = { prefix: "fas", iconName: "italic", icon: [ 320, 512, [], "f033", "M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z", ], }, $a = { prefix: "fas", iconName: "jedi", icon: [ 544, 512, [], "f669", "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z", ], }, es = { prefix: "fas", iconName: "joint", icon: [ 640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z", ], }, ts = { prefix: "fas", iconName: "journal-whills", icon: [ 448, 512, [], "f66a", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z", ], }, ns = { prefix: "fas", iconName: "kaaba", icon: [ 576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z", ], }, is = { prefix: "fas", iconName: "key", icon: [ 512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z", ], }, rs = { prefix: "fas", iconName: "keyboard", icon: [ 576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z", ], }, os = { prefix: "fas", iconName: "khanda", icon: [ 512, 512, [], "f66d", "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z", ], }, as = { prefix: "fas", iconName: "kiss", icon: [ 496, 512, [], "f596", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, ss = { prefix: "fas", iconName: "kiss-beam", icon: [ 496, 512, [], "f597", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z", ], }, cs = { prefix: "fas", iconName: "kiss-wink-heart", icon: [ 504, 512, [], "f598", "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z", ], }, ls = { prefix: "fas", iconName: "kiwi-bird", icon: [ 576, 512, [], "f535", "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z", ], }, us = { prefix: "fas", iconName: "landmark", icon: [ 512, 512, [], "f66f", "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z", ], }, hs = { prefix: "fas", iconName: "language", icon: [ 640, 512, [], "f1ab", "M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z", ], }, ds = { prefix: "fas", iconName: "laptop", icon: [ 640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z", ], }, ps = { prefix: "fas", iconName: "laptop-code", icon: [ 640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z", ], }, fs = { prefix: "fas", iconName: "laugh", icon: [ 496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z", ], }, ms = { prefix: "fas", iconName: "laugh-beam", icon: [ 496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z", ], }, gs = { prefix: "fas", iconName: "laugh-squint", icon: [ 496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z", ], }, bs = { prefix: "fas", iconName: "laugh-wink", icon: [ 496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z", ], }, _s = { prefix: "fas", iconName: "layer-group", icon: [ 512, 512, [], "f5fd", "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z", ], }, vs = { prefix: "fas", iconName: "leaf", icon: [ 576, 512, [], "f06c", "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z", ], }, ys = { prefix: "fas", iconName: "lemon", icon: [ 512, 512, [], "f094", "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z", ], }, Cs = { prefix: "fas", iconName: "less-than", icon: [ 384, 512, [], "f536", "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z", ], }, Ps = { prefix: "fas", iconName: "less-than-equal", icon: [ 448, 512, [], "f537", "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z", ], }, xs = { prefix: "fas", iconName: "level-down-alt", icon: [ 320, 512, [], "f3be", "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z", ], }, Ts = { prefix: "fas", iconName: "level-up-alt", icon: [ 320, 512, [], "f3bf", "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z", ], }, Ss = { prefix: "fas", iconName: "life-ring", icon: [ 512, 512, [], "f1cd", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z", ], }, Os = { prefix: "fas", iconName: "lightbulb", icon: [ 352, 512, [], "f0eb", "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z", ], }, Es = { prefix: "fas", iconName: "link", icon: [ 512, 512, [], "f0c1", "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z", ], }, Ms = { prefix: "fas", iconName: "lira-sign", icon: [ 384, 512, [], "f195", "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z", ], }, As = { prefix: "fas", iconName: "list", icon: [ 512, 512, [], "f03a", "M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z", ], }, Is = { prefix: "fas", iconName: "list-alt", icon: [ 512, 512, [], "f022", "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z", ], }, Ds = { prefix: "fas", iconName: "list-ol", icon: [ 512, 512, [], "f0cb", "M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z", ], }, Rs = { prefix: "fas", iconName: "list-ul", icon: [ 512, 512, [], "f0ca", "M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z", ], }, ws = { prefix: "fas", iconName: "location-arrow", icon: [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"], }, Ls = { prefix: "fas", iconName: "lock", icon: [ 448, 512, [], "f023", "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z", ], }, Fs = { prefix: "fas", iconName: "lock-open", icon: [ 576, 512, [], "f3c1", "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z", ], }, Ns = { prefix: "fas", iconName: "long-arrow-alt-down", icon: [ 256, 512, [], "f309", "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z", ], }, ks = { prefix: "fas", iconName: "long-arrow-alt-left", icon: [ 448, 512, [], "f30a", "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z", ], }, zs = { prefix: "fas", iconName: "long-arrow-alt-right", icon: [ 448, 512, [], "f30b", "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z", ], }, js = { prefix: "fas", iconName: "long-arrow-alt-up", icon: [ 256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z", ], }, Bs = { prefix: "fas", iconName: "low-vision", icon: [ 576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z", ], }, Vs = { prefix: "fas", iconName: "luggage-cart", icon: [ 640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z", ], }, Gs = { prefix: "fas", iconName: "magic", icon: [ 512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z", ], }, Us = { prefix: "fas", iconName: "magnet", icon: [ 512, 512, [], "f076", "M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z", ], }, Hs = { prefix: "fas", iconName: "mail-bulk", icon: [ 576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z", ], }, Ws = { prefix: "fas", iconName: "male", icon: [ 192, 512, [], "f183", "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z", ], }, Xs = { prefix: "fas", iconName: "map", icon: [ 576, 512, [], "f279", "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z", ], }, Ys = { prefix: "fas", iconName: "map-marked", icon: [ 576, 512, [], "f59f", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z", ], }, Ks = { prefix: "fas", iconName: "map-marked-alt", icon: [ 576, 512, [], "f5a0", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z", ], }, Zs = { prefix: "fas", iconName: "map-marker", icon: [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"], }, qs = { prefix: "fas", iconName: "map-marker-alt", icon: [ 384, 512, [], "f3c5", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z", ], }, Qs = { prefix: "fas", iconName: "map-pin", icon: [ 288, 512, [], "f276", "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z", ], }, Js = { prefix: "fas", iconName: "map-signs", icon: [ 512, 512, [], "f277", "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z", ], }, $s = { prefix: "fas", iconName: "marker", icon: [ 512, 512, [], "f5a1", "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z", ], }, ec = { prefix: "fas", iconName: "mars", icon: [ 384, 512, [], "f222", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", ], }, tc = { prefix: "fas", iconName: "mars-double", icon: [ 512, 512, [], "f227", "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z", ], }, nc = { prefix: "fas", iconName: "mars-stroke", icon: [ 384, 512, [], "f229", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", ], }, ic = { prefix: "fas", iconName: "mars-stroke-h", icon: [ 480, 512, [], "f22b", "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z", ], }, rc = { prefix: "fas", iconName: "mars-stroke-v", icon: [ 288, 512, [], "f22a", "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z", ], }, oc = { prefix: "fas", iconName: "mask", icon: [ 640, 512, [], "f6fa", "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z", ], }, ac = { prefix: "fas", iconName: "medal", icon: [ 512, 512, [], "f5a2", "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z", ], }, sc = { prefix: "fas", iconName: "medkit", icon: [ 512, 512, [], "f0fa", "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z", ], }, cc = { prefix: "fas", iconName: "meh", icon: [ 496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, lc = { prefix: "fas", iconName: "meh-blank", icon: [ 496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, uc = { prefix: "fas", iconName: "meh-rolling-eyes", icon: [ 496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z", ], }, hc = { prefix: "fas", iconName: "memory", icon: [ 640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z", ], }, dc = { prefix: "fas", iconName: "menorah", icon: [ 640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z", ], }, pc = { prefix: "fas", iconName: "mercury", icon: [ 288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z", ], }, fc = { prefix: "fas", iconName: "microchip", icon: [ 512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z", ], }, mc = { prefix: "fas", iconName: "microphone", icon: [ 352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z", ], }, gc = { prefix: "fas", iconName: "microphone-alt", icon: [ 352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z", ], }, bc = { prefix: "fas", iconName: "microphone-alt-slash", icon: [ 640, 512, [], "f539", "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z", ], }, _c = { prefix: "fas", iconName: "microphone-slash", icon: [ 640, 512, [], "f131", "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z", ], }, vc = { prefix: "fas", iconName: "microscope", icon: [ 512, 512, [], "f610", "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z", ], }, yc = { prefix: "fas", iconName: "minus", icon: [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"] }, Cc = { prefix: "fas", iconName: "minus-circle", icon: [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"], }, Pc = { prefix: "fas", iconName: "minus-square", icon: [ 448, 512, [], "f146", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z", ], }, xc = { prefix: "fas", iconName: "mobile", icon: [ 320, 512, [], "f10b", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, Tc = { prefix: "fas", iconName: "mobile-alt", icon: [ 320, 512, [], "f3cd", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z", ], }, Sc = { prefix: "fas", iconName: "money-bill", icon: [ 640, 512, [], "f0d6", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z", ], }, Oc = { prefix: "fas", iconName: "money-bill-alt", icon: [ 640, 512, [], "f3d1", "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z", ], }, Ec = { prefix: "fas", iconName: "money-bill-wave", icon: [ 640, 512, [], "f53a", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z", ], }, Mc = { prefix: "fas", iconName: "money-bill-wave-alt", icon: [ 640, 512, [], "f53b", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z", ], }, Ac = { prefix: "fas", iconName: "money-check", icon: [ 640, 512, [], "f53c", "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z", ], }, Ic = { prefix: "fas", iconName: "money-check-alt", icon: [ 640, 512, [], "f53d", "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z", ], }, Dc = { prefix: "fas", iconName: "monument", icon: [ 384, 512, [], "f5a6", "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z", ], }, Rc = { prefix: "fas", iconName: "moon", icon: [ 512, 512, [], "f186", "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z", ], }, wc = { prefix: "fas", iconName: "mortar-pestle", icon: [ 512, 512, [], "f5a7", "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z", ], }, Lc = { prefix: "fas", iconName: "mosque", icon: [ 640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z", ], }, Fc = { prefix: "fas", iconName: "motorcycle", icon: [ 640, 512, [], "f21c", "M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z", ], }, Nc = { prefix: "fas", iconName: "mountain", icon: [ 640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z", ], }, kc = { prefix: "fas", iconName: "mouse-pointer", icon: [ 320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z", ], }, zc = { prefix: "fas", iconName: "music", icon: [ 512, 512, [], "f001", "M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z", ], }, jc = { prefix: "fas", iconName: "network-wired", icon: [ 640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z", ], }, Bc = { prefix: "fas", iconName: "neuter", icon: [ 288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", ], }, Vc = { prefix: "fas", iconName: "newspaper", icon: [ 576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z", ], }, Gc = { prefix: "fas", iconName: "not-equal", icon: [ 448, 512, [], "f53e", "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z", ], }, Uc = { prefix: "fas", iconName: "notes-medical", icon: [ 384, 512, [], "f481", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z", ], }, Hc = { prefix: "fas", iconName: "object-group", icon: [ 512, 512, [], "f247", "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z", ], }, Wc = { prefix: "fas", iconName: "object-ungroup", icon: [ 576, 512, [], "f248", "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z", ], }, Xc = { prefix: "fas", iconName: "oil-can", icon: [ 640, 512, [], "f613", "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z", ], }, Yc = { prefix: "fas", iconName: "om", icon: [ 512, 512, [], "f679", "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z", ], }, Kc = { prefix: "fas", iconName: "otter", icon: [ 640, 512, [], "f700", "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z", ], }, Zc = { prefix: "fas", iconName: "outdent", icon: [ 448, 512, [], "f03b", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z", ], }, qc = { prefix: "fas", iconName: "paint-brush", icon: [ 512, 512, [], "f1fc", "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z", ], }, Qc = { prefix: "fas", iconName: "paint-roller", icon: [ 512, 512, [], "f5aa", "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z", ], }, Jc = { prefix: "fas", iconName: "palette", icon: [ 512, 512, [], "f53f", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, $c = { prefix: "fas", iconName: "pallet", icon: [ 640, 512, [], "f482", "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z", ], }, el = { prefix: "fas", iconName: "paper-plane", icon: [ 512, 512, [], "f1d8", "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z", ], }, tl = { prefix: "fas", iconName: "paperclip", icon: [ 448, 512, [], "f0c6", "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z", ], }, nl = { prefix: "fas", iconName: "parachute-box", icon: [ 512, 512, [], "f4cd", "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z", ], }, il = { prefix: "fas", iconName: "paragraph", icon: [ 448, 512, [], "f1dd", "M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z", ], }, rl = { prefix: "fas", iconName: "parking", icon: [ 448, 512, [], "f540", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z", ], }, ol = { prefix: "fas", iconName: "passport", icon: [ 448, 512, [], "f5ab", "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z", ], }, al = { prefix: "fas", iconName: "pastafarianism", icon: [ 640, 512, [], "f67b", "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z", ], }, sl = { prefix: "fas", iconName: "paste", icon: [ 448, 512, [], "f0ea", "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z", ], }, cl = { prefix: "fas", iconName: "pause", icon: [ 448, 512, [], "f04c", "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z", ], }, ll = { prefix: "fas", iconName: "pause-circle", icon: [ 512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z", ], }, ul = { prefix: "fas", iconName: "paw", icon: [ 512, 512, [], "f1b0", "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z", ], }, hl = { prefix: "fas", iconName: "peace", icon: [ 496, 512, [], "f67c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z", ], }, dl = { prefix: "fas", iconName: "pen", icon: [ 512, 512, [], "f304", "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z", ], }, pl = { prefix: "fas", iconName: "pen-alt", icon: [ 512, 512, [], "f305", "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z", ], }, fl = { prefix: "fas", iconName: "pen-fancy", icon: [ 512, 512, [], "f5ac", "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z", ], }, ml = { prefix: "fas", iconName: "pen-nib", icon: [ 512, 512, [], "f5ad", "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z", ], }, gl = { prefix: "fas", iconName: "pen-square", icon: [ 448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z", ], }, bl = { prefix: "fas", iconName: "pencil-alt", icon: [ 512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z", ], }, _l = { prefix: "fas", iconName: "pencil-ruler", icon: [ 512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z", ], }, vl = { prefix: "fas", iconName: "people-carry", icon: [ 640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z", ], }, yl = { prefix: "fas", iconName: "percent", icon: [ 448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z", ], }, Cl = { prefix: "fas", iconName: "percentage", icon: [ 384, 512, [], "f541", "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z", ], }, Pl = { prefix: "fas", iconName: "phone", icon: [ 512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z", ], }, xl = { prefix: "fas", iconName: "phone-slash", icon: [ 640, 512, [], "f3dd", "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z", ], }, Tl = { prefix: "fas", iconName: "phone-square", icon: [ 448, 512, [], "f098", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z", ], }, Sl = { prefix: "fas", iconName: "phone-volume", icon: [ 384, 512, [], "f2a0", "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z", ], }, Ol = { prefix: "fas", iconName: "piggy-bank", icon: [ 576, 512, [], "f4d3", "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z", ], }, El = { prefix: "fas", iconName: "pills", icon: [ 576, 512, [], "f484", "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z", ], }, Ml = { prefix: "fas", iconName: "place-of-worship", icon: [ 640, 512, [], "f67f", "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z", ], }, Al = { prefix: "fas", iconName: "plane", icon: [ 576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z", ], }, Il = { prefix: "fas", iconName: "plane-arrival", icon: [ 640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z", ], }, Dl = { prefix: "fas", iconName: "plane-departure", icon: [ 640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z", ], }, Rl = { prefix: "fas", iconName: "play", icon: [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"] }, wl = { prefix: "fas", iconName: "play-circle", icon: [ 512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z", ], }, Ll = { prefix: "fas", iconName: "plug", icon: [ 384, 512, [], "f1e6", "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z", ], }, Fl = { prefix: "fas", iconName: "plus", icon: [ 448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z", ], }, Nl = { prefix: "fas", iconName: "plus-circle", icon: [ 512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z", ], }, kl = { prefix: "fas", iconName: "plus-square", icon: [ 448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z", ], }, zl = { prefix: "fas", iconName: "podcast", icon: [ 448, 512, [], "f2ce", "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z", ], }, jl = { prefix: "fas", iconName: "poll", icon: [ 448, 512, [], "f681", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z", ], }, Bl = { prefix: "fas", iconName: "poll-h", icon: [ 448, 512, [], "f682", "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z", ], }, Vl = { prefix: "fas", iconName: "poo", icon: [ 512, 512, [], "f2fe", "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, Gl = { prefix: "fas", iconName: "poop", icon: [ 512, 512, [], "f619", "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z", ], }, Ul = { prefix: "fas", iconName: "portrait", icon: [ 384, 512, [], "f3e0", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z", ], }, Hl = { prefix: "fas", iconName: "pound-sign", icon: [ 320, 512, [], "f154", "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z", ], }, Wl = { prefix: "fas", iconName: "power-off", icon: [ 512, 512, [], "f011", "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z", ], }, Xl = { prefix: "fas", iconName: "pray", icon: [ 384, 512, [], "f683", "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z", ], }, Yl = { prefix: "fas", iconName: "praying-hands", icon: [ 640, 512, [], "f684", "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z", ], }, Kl = { prefix: "fas", iconName: "prescription", icon: [ 384, 512, [], "f5b1", "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z", ], }, Zl = { prefix: "fas", iconName: "prescription-bottle", icon: [ 384, 512, [], "f485", "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z", ], }, ql = { prefix: "fas", iconName: "prescription-bottle-alt", icon: [ 384, 512, [], "f486", "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z", ], }, Ql = { prefix: "fas", iconName: "print", icon: [ 512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z", ], }, Jl = { prefix: "fas", iconName: "procedures", icon: [ 640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z", ], }, $l = { prefix: "fas", iconName: "project-diagram", icon: [ 640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z", ], }, eu = { prefix: "fas", iconName: "puzzle-piece", icon: [ 576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z", ], }, tu = { prefix: "fas", iconName: "qrcode", icon: [ 448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z", ], }, nu = { prefix: "fas", iconName: "question", icon: [ 384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z", ], }, iu = { prefix: "fas", iconName: "question-circle", icon: [ 512, 512, [], "f059", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z", ], }, ru = { prefix: "fas", iconName: "quidditch", icon: [ 640, 512, [], "f458", "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z", ], }, ou = { prefix: "fas", iconName: "quote-left", icon: [ 512, 512, [], "f10d", "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z", ], }, au = { prefix: "fas", iconName: "quote-right", icon: [ 512, 512, [], "f10e", "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z", ], }, su = { prefix: "fas", iconName: "quran", icon: [ 448, 512, [], "f687", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z", ], }, cu = { prefix: "fas", iconName: "random", icon: [ 512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z", ], }, lu = { prefix: "fas", iconName: "receipt", icon: [ 384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z", ], }, uu = { prefix: "fas", iconName: "recycle", icon: [ 512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z", ], }, hu = { prefix: "fas", iconName: "redo", icon: [ 512, 512, [], "f01e", "M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z", ], }, du = { prefix: "fas", iconName: "redo-alt", icon: [ 512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z", ], }, pu = { prefix: "fas", iconName: "registered", icon: [ 512, 512, [], "f25d", "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z", ], }, fu = { prefix: "fas", iconName: "reply", icon: [ 512, 512, [], "f3e5", "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z", ], }, mu = { prefix: "fas", iconName: "reply-all", icon: [ 576, 512, [], "f122", "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z", ], }, gu = { prefix: "fas", iconName: "retweet", icon: [ 640, 512, [], "f079", "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z", ], }, bu = { prefix: "fas", iconName: "ribbon", icon: [ 448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z", ], }, _u = { prefix: "fas", iconName: "ring", icon: [ 512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z", ], }, vu = { prefix: "fas", iconName: "road", icon: [ 576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z", ], }, yu = { prefix: "fas", iconName: "robot", icon: [ 640, 512, [], "f544", "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z", ], }, Cu = { prefix: "fas", iconName: "rocket", icon: [ 512, 512, [], "f135", "M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z", ], }, Pu = { prefix: "fas", iconName: "route", icon: [ 512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, xu = { prefix: "fas", iconName: "rss", icon: [ 448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z", ], }, Tu = { prefix: "fas", iconName: "rss-square", icon: [ 448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z", ], }, Su = { prefix: "fas", iconName: "ruble-sign", icon: [ 384, 512, [], "f158", "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z", ], }, Ou = { prefix: "fas", iconName: "ruler", icon: [ 640, 512, [], "f545", "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z", ], }, Eu = { prefix: "fas", iconName: "ruler-combined", icon: [ 512, 512, [], "f546", "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z", ], }, Mu = { prefix: "fas", iconName: "ruler-horizontal", icon: [ 576, 512, [], "f547", "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z", ], }, Au = { prefix: "fas", iconName: "ruler-vertical", icon: [ 256, 512, [], "f548", "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z", ], }, Iu = { prefix: "fas", iconName: "running", icon: [ 416, 512, [], "f70c", "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z", ], }, Du = { prefix: "fas", iconName: "rupee-sign", icon: [ 320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z", ], }, Ru = { prefix: "fas", iconName: "sad-cry", icon: [ 496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z", ], }, wu = { prefix: "fas", iconName: "sad-tear", icon: [ 496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z", ], }, Lu = { prefix: "fas", iconName: "save", icon: [ 448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z", ], }, Fu = { prefix: "fas", iconName: "school", icon: [ 640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z", ], }, Nu = { prefix: "fas", iconName: "screwdriver", icon: [ 512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z", ], }, ku = { prefix: "fas", iconName: "scroll", icon: [ 640, 512, [], "f70e", "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z", ], }, zu = { prefix: "fas", iconName: "search", icon: [ 512, 512, [], "f002", "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z", ], }, ju = { prefix: "fas", iconName: "search-dollar", icon: [ 512, 512, [], "f688", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z", ], }, Bu = { prefix: "fas", iconName: "search-location", icon: [ 512, 512, [], "f689", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z", ], }, Vu = { prefix: "fas", iconName: "search-minus", icon: [ 512, 512, [], "f010", "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z", ], }, Gu = { prefix: "fas", iconName: "search-plus", icon: [ 512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z", ], }, Uu = { prefix: "fas", iconName: "seedling", icon: [ 512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z", ], }, Hu = { prefix: "fas", iconName: "server", icon: [ 512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z", ], }, Wu = { prefix: "fas", iconName: "shapes", icon: [ 512, 512, [], "f61f", "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z", ], }, Xu = { prefix: "fas", iconName: "share", icon: [ 512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z", ], }, Yu = { prefix: "fas", iconName: "share-alt", icon: [ 448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z", ], }, Ku = { prefix: "fas", iconName: "share-alt-square", icon: [ 448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z", ], }, Zu = { prefix: "fas", iconName: "share-square", icon: [ 576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z", ], }, qu = { prefix: "fas", iconName: "shekel-sign", icon: [ 448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z", ], }, Qu = { prefix: "fas", iconName: "shield-alt", icon: [ 512, 512, [], "f3ed", "M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z", ], }, Ju = { prefix: "fas", iconName: "ship", icon: [ 640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z", ], }, $u = { prefix: "fas", iconName: "shipping-fast", icon: [ 640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z", ], }, eh = { prefix: "fas", iconName: "shoe-prints", icon: [ 640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z", ], }, th = { prefix: "fas", iconName: "shopping-bag", icon: [ 448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z", ], }, nh = { prefix: "fas", iconName: "shopping-basket", icon: [ 576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z", ], }, ih = { prefix: "fas", iconName: "shopping-cart", icon: [ 576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z", ], }, rh = { prefix: "fas", iconName: "shower", icon: [ 512, 512, [], "f2cc", "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z", ], }, oh = { prefix: "fas", iconName: "shuttle-van", icon: [ 640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z", ], }, ah = { prefix: "fas", iconName: "sign", icon: [ 512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z", ], }, sh = { prefix: "fas", iconName: "sign-in-alt", icon: [ 512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z", ], }, ch = { prefix: "fas", iconName: "sign-language", icon: [ 448, 512, [], "f2a7", "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z", ], }, lh = { prefix: "fas", iconName: "sign-out-alt", icon: [ 512, 512, [], "f2f5", "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z", ], }, uh = { prefix: "fas", iconName: "signal", icon: [ 640, 512, [], "f012", "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z", ], }, hh = { prefix: "fas", iconName: "signature", icon: [ 512, 512, [], "f5b7", "M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z", ], }, dh = { prefix: "fas", iconName: "sitemap", icon: [ 640, 512, [], "f0e8", "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z", ], }, ph = { prefix: "fas", iconName: "skull", icon: [ 512, 512, [], "f54c", "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z", ], }, fh = { prefix: "fas", iconName: "skull-crossbones", icon: [ 448, 512, [], "f714", "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z", ], }, mh = { prefix: "fas", iconName: "slash", icon: [ 640, 512, [], "f715", "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z", ], }, gh = { prefix: "fas", iconName: "sliders-h", icon: [ 512, 512, [], "f1de", "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z", ], }, bh = { prefix: "fas", iconName: "smile", icon: [ 496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z", ], }, _h = { prefix: "fas", iconName: "smile-beam", icon: [ 496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z", ], }, vh = { prefix: "fas", iconName: "smile-wink", icon: [ 496, 512, [], "f4da", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z", ], }, yh = { prefix: "fas", iconName: "smoking", icon: [ 640, 512, [], "f48d", "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z", ], }, Ch = { prefix: "fas", iconName: "smoking-ban", icon: [ 512, 512, [], "f54d", "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z", ], }, Ph = { prefix: "fas", iconName: "snowflake", icon: [ 448, 512, [], "f2dc", "M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z", ], }, xh = { prefix: "fas", iconName: "socks", icon: [ 512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z", ], }, Th = { prefix: "fas", iconName: "solar-panel", icon: [ 640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z", ], }, Sh = { prefix: "fas", iconName: "sort", icon: [ 320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z", ], }, Oh = { prefix: "fas", iconName: "sort-alpha-down", icon: [ 448, 512, [], "f15d", "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z", ], }, Eh = { prefix: "fas", iconName: "sort-alpha-up", icon: [ 448, 512, [], "f15e", "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z", ], }, Mh = { prefix: "fas", iconName: "sort-amount-down", icon: [ 512, 512, [], "f160", "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z", ], }, Ah = { prefix: "fas", iconName: "sort-amount-up", icon: [ 512, 512, [], "f161", "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z", ], }, Ih = { prefix: "fas", iconName: "sort-down", icon: [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"] }, Dh = { prefix: "fas", iconName: "sort-numeric-down", icon: [ 448, 512, [], "f162", "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z", ], }, Rh = { prefix: "fas", iconName: "sort-numeric-up", icon: [ 448, 512, [], "f163", "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z", ], }, wh = { prefix: "fas", iconName: "sort-up", icon: [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"] }, Lh = { prefix: "fas", iconName: "spa", icon: [ 576, 512, [], "f5bb", "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z", ], }, Fh = { prefix: "fas", iconName: "space-shuttle", icon: [ 640, 512, [], "f197", "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z", ], }, Nh = { prefix: "fas", iconName: "spider", icon: [ 576, 512, [], "f717", "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z", ], }, kh = { prefix: "fas", iconName: "spinner", icon: [ 512, 512, [], "f110", "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z", ], }, zh = { prefix: "fas", iconName: "splotch", icon: [ 512, 512, [], "f5bc", "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z", ], }, jh = { prefix: "fas", iconName: "spray-can", icon: [ 512, 512, [], "f5bd", "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z", ], }, Bh = { prefix: "fas", iconName: "square", icon: [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] }, Vh = { prefix: "fas", iconName: "square-full", icon: [512, 512, [], "f45c", "M512 512H0V0h512v512z"] }, Gh = { prefix: "fas", iconName: "square-root-alt", icon: [ 576, 512, [], "f698", "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z", ], }, Uh = { prefix: "fas", iconName: "stamp", icon: [ 512, 512, [], "f5bf", "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z", ], }, Hh = { prefix: "fas", iconName: "star", icon: [ 576, 512, [], "f005", "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z", ], }, Wh = { prefix: "fas", iconName: "star-and-crescent", icon: [ 512, 512, [], "f699", "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z", ], }, Xh = { prefix: "fas", iconName: "star-half", icon: [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"], }, Yh = { prefix: "fas", iconName: "star-half-alt", icon: [ 536, 512, [], "f5c0", "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z", ], }, Kh = { prefix: "fas", iconName: "star-of-david", icon: [ 464, 512, [], "f69a", "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z", ], }, Zh = { prefix: "fas", iconName: "star-of-life", icon: [ 480, 512, [], "f621", "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z", ], }, qh = { prefix: "fas", iconName: "step-backward", icon: [ 448, 512, [], "f048", "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z", ], }, Qh = { prefix: "fas", iconName: "step-forward", icon: [ 448, 512, [], "f051", "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z", ], }, Jh = { prefix: "fas", iconName: "stethoscope", icon: [ 512, 512, [], "f0f1", "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z", ], }, $h = { prefix: "fas", iconName: "sticky-note", icon: [ 448, 512, [], "f249", "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z", ], }, ed = { prefix: "fas", iconName: "stop", icon: [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"] }, td = { prefix: "fas", iconName: "stop-circle", icon: [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"], }, nd = { prefix: "fas", iconName: "stopwatch", icon: [ 448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z", ], }, id = { prefix: "fas", iconName: "store", icon: [ 616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z", ], }, rd = { prefix: "fas", iconName: "store-alt", icon: [ 640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z", ], }, od = { prefix: "fas", iconName: "stream", icon: [ 512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z", ], }, ad = { prefix: "fas", iconName: "street-view", icon: [ 512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z", ], }, sd = { prefix: "fas", iconName: "strikethrough", icon: [ 512, 512, [], "f0cc", "M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z", ], }, cd = { prefix: "fas", iconName: "stroopwafel", icon: [ 512, 512, [], "f551", "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z", ], }, ld = { prefix: "fas", iconName: "subscript", icon: [ 512, 512, [], "f12c", "M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z", ], }, ud = { prefix: "fas", iconName: "subway", icon: [ 448, 512, [], "f239", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z", ], }, hd = { prefix: "fas", iconName: "suitcase", icon: [ 512, 512, [], "f0f2", "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z", ], }, dd = { prefix: "fas", iconName: "suitcase-rolling", icon: [ 384, 512, [], "f5c1", "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z", ], }, pd = { prefix: "fas", iconName: "sun", icon: [ 512, 512, [], "f185", "M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z", ], }, fd = { prefix: "fas", iconName: "superscript", icon: [ 512, 512, [], "f12b", "M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z", ], }, md = { prefix: "fas", iconName: "surprise", icon: [ 496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, gd = { prefix: "fas", iconName: "swatchbook", icon: [ 511, 512, [], "f5c3", "M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z", ], }, bd = { prefix: "fas", iconName: "swimmer", icon: [ 640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z", ], }, _d = { prefix: "fas", iconName: "swimming-pool", icon: [ 640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z", ], }, vd = { prefix: "fas", iconName: "synagogue", icon: [ 640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z", ], }, yd = { prefix: "fas", iconName: "sync", icon: [ 512, 512, [], "f021", "M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z", ], }, Cd = { prefix: "fas", iconName: "sync-alt", icon: [ 512, 512, [], "f2f1", "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z", ], }, Pd = { prefix: "fas", iconName: "syringe", icon: [ 512, 512, [], "f48e", "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z", ], }, xd = { prefix: "fas", iconName: "table", icon: [ 512, 512, [], "f0ce", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z", ], }, Td = { prefix: "fas", iconName: "table-tennis", icon: [ 512, 512, [], "f45d", "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z", ], }, Sd = { prefix: "fas", iconName: "tablet", icon: [ 448, 512, [], "f10a", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z", ], }, Od = { prefix: "fas", iconName: "tablet-alt", icon: [ 448, 512, [], "f3fa", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z", ], }, Ed = { prefix: "fas", iconName: "tablets", icon: [ 640, 512, [], "f490", "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z", ], }, Md = { prefix: "fas", iconName: "tachometer-alt", icon: [ 576, 512, [], "f3fd", "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Ad = { prefix: "fas", iconName: "tag", icon: [ 512, 512, [], "f02b", "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z", ], }, Id = { prefix: "fas", iconName: "tags", icon: [ 640, 512, [], "f02c", "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z", ], }, Dd = { prefix: "fas", iconName: "tape", icon: [ 640, 512, [], "f4db", "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z", ], }, Rd = { prefix: "fas", iconName: "tasks", icon: [ 512, 512, [], "f0ae", "M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z", ], }, wd = { prefix: "fas", iconName: "taxi", icon: [ 512, 512, [], "f1ba", "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Ld = { prefix: "fas", iconName: "teeth", icon: [ 640, 512, [], "f62e", "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z", ], }, Fd = { prefix: "fas", iconName: "teeth-open", icon: [ 640, 512, [], "f62f", "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z", ], }, Nd = { prefix: "fas", iconName: "terminal", icon: [ 640, 512, [], "f120", "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z", ], }, kd = { prefix: "fas", iconName: "text-height", icon: [ 576, 512, [], "f034", "M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z", ], }, zd = { prefix: "fas", iconName: "text-width", icon: [ 448, 512, [], "f035", "M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z", ], }, jd = { prefix: "fas", iconName: "th", icon: [ 512, 512, [], "f00a", "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z", ], }, Bd = { prefix: "fas", iconName: "th-large", icon: [ 512, 512, [], "f009", "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z", ], }, Vd = { prefix: "fas", iconName: "th-list", icon: [ 512, 512, [], "f00b", "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z", ], }, Gd = { prefix: "fas", iconName: "theater-masks", icon: [ 640, 512, [], "f630", "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z", ], }, Ud = { prefix: "fas", iconName: "thermometer", icon: [ 512, 512, [], "f491", "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z", ], }, Hd = { prefix: "fas", iconName: "thermometer-empty", icon: [ 256, 512, [], "f2cb", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z", ], }, Wd = { prefix: "fas", iconName: "thermometer-full", icon: [ 256, 512, [], "f2c7", "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z", ], }, Xd = { prefix: "fas", iconName: "thermometer-half", icon: [ 256, 512, [], "f2c9", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z", ], }, Yd = { prefix: "fas", iconName: "thermometer-quarter", icon: [ 256, 512, [], "f2ca", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z", ], }, Kd = { prefix: "fas", iconName: "thermometer-three-quarters", icon: [ 256, 512, [], "f2c8", "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z", ], }, Zd = { prefix: "fas", iconName: "thumbs-down", icon: [ 512, 512, [], "f165", "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z", ], }, qd = { prefix: "fas", iconName: "thumbs-up", icon: [ 512, 512, [], "f164", "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z", ], }, Qd = { prefix: "fas", iconName: "thumbtack", icon: [ 384, 512, [], "f08d", "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z", ], }, Jd = { prefix: "fas", iconName: "ticket-alt", icon: [ 576, 512, [], "f3ff", "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z", ], }, $d = { prefix: "fas", iconName: "times", icon: [ 352, 512, [], "f00d", "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z", ], }, ep = { prefix: "fas", iconName: "times-circle", icon: [ 512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z", ], }, tp = { prefix: "fas", iconName: "tint", icon: [ 352, 512, [], "f043", "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z", ], }, np = { prefix: "fas", iconName: "tint-slash", icon: [ 640, 512, [], "f5c7", "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z", ], }, ip = { prefix: "fas", iconName: "tired", icon: [ 496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z", ], }, rp = { prefix: "fas", iconName: "toggle-off", icon: [ 576, 512, [], "f204", "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z", ], }, op = { prefix: "fas", iconName: "toggle-on", icon: [ 576, 512, [], "f205", "M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128", ], }, ap = { prefix: "fas", iconName: "toilet-paper", icon: [ 576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z", ], }, sp = { prefix: "fas", iconName: "toolbox", icon: [ 512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z", ], }, cp = { prefix: "fas", iconName: "tooth", icon: [ 448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z", ], }, lp = { prefix: "fas", iconName: "torah", icon: [ 448, 512, [], "f6a0", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z", ], }, up = { prefix: "fas", iconName: "torii-gate", icon: [ 512, 512, [], "f6a1", "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z", ], }, hp = { prefix: "fas", iconName: "tractor", icon: [ 640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z", ], }, dp = { prefix: "fas", iconName: "trademark", icon: [ 640, 512, [], "f25c", "M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z", ], }, pp = { prefix: "fas", iconName: "traffic-light", icon: [ 384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z", ], }, fp = { prefix: "fas", iconName: "train", icon: [ 448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z", ], }, mp = { prefix: "fas", iconName: "transgender", icon: [ 384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", ], }, gp = { prefix: "fas", iconName: "transgender-alt", icon: [ 480, 512, [], "f225", "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", ], }, bp = { prefix: "fas", iconName: "trash", icon: [ 448, 512, [], "f1f8", "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z", ], }, _p = { prefix: "fas", iconName: "trash-alt", icon: [ 448, 512, [], "f2ed", "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z", ], }, vp = { prefix: "fas", iconName: "tree", icon: [ 384, 512, [], "f1bb", "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z", ], }, yp = { prefix: "fas", iconName: "trophy", icon: [ 576, 512, [], "f091", "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z", ], }, Cp = { prefix: "fas", iconName: "truck", icon: [ 640, 512, [], "f0d1", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z", ], }, Pp = { prefix: "fas", iconName: "truck-loading", icon: [ 640, 512, [], "f4de", "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z", ], }, xp = { prefix: "fas", iconName: "truck-monster", icon: [ 640, 512, [], "f63b", "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z", ], }, Tp = { prefix: "fas", iconName: "truck-moving", icon: [ 640, 512, [], "f4df", "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z", ], }, Sp = { prefix: "fas", iconName: "truck-pickup", icon: [ 640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z", ], }, Op = { prefix: "fas", iconName: "tshirt", icon: [ 640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z", ], }, Ep = { prefix: "fas", iconName: "tty", icon: [ 512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z", ], }, Mp = { prefix: "fas", iconName: "tv", icon: [ 640, 512, [], "f26c", "M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z", ], }, Ap = { prefix: "fas", iconName: "umbrella", icon: [ 576, 512, [], "f0e9", "M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z", ], }, Ip = { prefix: "fas", iconName: "umbrella-beach", icon: [ 640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z", ], }, Dp = { prefix: "fas", iconName: "underline", icon: [ 448, 512, [], "f0cd", "M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z", ], }, Rp = { prefix: "fas", iconName: "undo", icon: [ 512, 512, [], "f0e2", "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z", ], }, wp = { prefix: "fas", iconName: "undo-alt", icon: [ 512, 512, [], "f2ea", "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z", ], }, Lp = { prefix: "fas", iconName: "universal-access", icon: [ 512, 512, [], "f29a", "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z", ], }, Fp = { prefix: "fas", iconName: "university", icon: [ 512, 512, [], "f19c", "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z", ], }, Np = { prefix: "fas", iconName: "unlink", icon: [ 512, 512, [], "f127", "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z", ], }, kp = { prefix: "fas", iconName: "unlock", icon: [ 448, 512, [], "f09c", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z", ], }, zp = { prefix: "fas", iconName: "unlock-alt", icon: [ 448, 512, [], "f13e", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z", ], }, jp = { prefix: "fas", iconName: "upload", icon: [ 512, 512, [], "f093", "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z", ], }, Bp = { prefix: "fas", iconName: "user", icon: [ 448, 512, [], "f007", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z", ], }, Vp = { prefix: "fas", iconName: "user-alt", icon: [ 512, 512, [], "f406", "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z", ], }, Gp = { prefix: "fas", iconName: "user-alt-slash", icon: [ 640, 512, [], "f4fa", "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z", ], }, Up = { prefix: "fas", iconName: "user-astronaut", icon: [ 448, 512, [], "f4fb", "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z", ], }, Hp = { prefix: "fas", iconName: "user-check", icon: [ 640, 512, [], "f4fc", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z", ], }, Wp = { prefix: "fas", iconName: "user-circle", icon: [ 496, 512, [], "f2bd", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z", ], }, Xp = { prefix: "fas", iconName: "user-clock", icon: [ 640, 512, [], "f4fd", "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z", ], }, Yp = { prefix: "fas", iconName: "user-cog", icon: [ 640, 512, [], "f4fe", "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z", ], }, Kp = { prefix: "fas", iconName: "user-edit", icon: [ 640, 512, [], "f4ff", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z", ], }, Zp = { prefix: "fas", iconName: "user-friends", icon: [ 640, 512, [], "f500", "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z", ], }, qp = { prefix: "fas", iconName: "user-graduate", icon: [ 448, 512, [], "f501", "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z", ], }, Qp = { prefix: "fas", iconName: "user-injured", icon: [ 448, 512, [], "f728", "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z", ], }, Jp = { prefix: "fas", iconName: "user-lock", icon: [ 640, 512, [], "f502", "M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z", ], }, $p = { prefix: "fas", iconName: "user-md", icon: [ 448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z", ], }, ef = { prefix: "fas", iconName: "user-minus", icon: [ 640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z", ], }, tf = { prefix: "fas", iconName: "user-ninja", icon: [ 448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z", ], }, nf = { prefix: "fas", iconName: "user-plus", icon: [ 640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z", ], }, rf = { prefix: "fas", iconName: "user-secret", icon: [ 448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z", ], }, of = { prefix: "fas", iconName: "user-shield", icon: [ 640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z", ], }, af = { prefix: "fas", iconName: "user-slash", icon: [ 640, 512, [], "f506", "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z", ], }, sf = { prefix: "fas", iconName: "user-tag", icon: [ 640, 512, [], "f507", "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z", ], }, cf = { prefix: "fas", iconName: "user-tie", icon: [ 448, 512, [], "f508", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z", ], }, lf = { prefix: "fas", iconName: "user-times", icon: [ 640, 512, [], "f235", "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z", ], }, uf = { prefix: "fas", iconName: "users", icon: [ 640, 512, [], "f0c0", "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z", ], }, hf = { prefix: "fas", iconName: "users-cog", icon: [ 640, 512, [], "f509", "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z", ], }, df = { prefix: "fas", iconName: "utensil-spoon", icon: [ 512, 512, [], "f2e5", "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z", ], }, pf = { prefix: "fas", iconName: "utensils", icon: [ 416, 512, [], "f2e7", "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z", ], }, ff = { prefix: "fas", iconName: "vector-square", icon: [ 512, 512, [], "f5cb", "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z", ], }, mf = { prefix: "fas", iconName: "venus", icon: [ 288, 512, [], "f221", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z", ], }, gf = { prefix: "fas", iconName: "venus-double", icon: [ 512, 512, [], "f226", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z", ], }, bf = { prefix: "fas", iconName: "venus-mars", icon: [ 576, 512, [], "f228", "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", ], }, _f = { prefix: "fas", iconName: "vial", icon: [ 480, 512, [], "f492", "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z", ], }, vf = { prefix: "fas", iconName: "vials", icon: [ 640, 512, [], "f493", "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z", ], }, yf = { prefix: "fas", iconName: "video", icon: [ 576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z", ], }, Cf = { prefix: "fas", iconName: "video-slash", icon: [ 640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z", ], }, Pf = { prefix: "fas", iconName: "vihara", icon: [ 640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z", ], }, xf = { prefix: "fas", iconName: "volleyball-ball", icon: [ 495, 512, [], "f45f", "M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z", ], }, Tf = { prefix: "fas", iconName: "volume-down", icon: [ 384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z", ], }, Sf = { prefix: "fas", iconName: "volume-mute", icon: [ 512, 512, [], "f6a9", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z", ], }, Of = { prefix: "fas", iconName: "volume-off", icon: [ 257, 512, [], "f026", "M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z", ], }, Ef = { prefix: "fas", iconName: "volume-up", icon: [ 576, 512, [], "f028", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z", ], }, Mf = { prefix: "fas", iconName: "vr-cardboard", icon: [ 640, 512, [], "f729", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z", ], }, Af = { prefix: "fas", iconName: "walking", icon: [ 320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z", ], }, If = { prefix: "fas", iconName: "wallet", icon: [ 512, 512, [], "f555", "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z", ], }, Df = { prefix: "fas", iconName: "warehouse", icon: [ 640, 512, [], "f494", "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z", ], }, Rf = { prefix: "fas", iconName: "weight", icon: [ 512, 512, [], "f496", "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z", ], }, wf = { prefix: "fas", iconName: "weight-hanging", icon: [ 512, 512, [], "f5cd", "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z", ], }, Lf = { prefix: "fas", iconName: "wheelchair", icon: [ 512, 512, [], "f193", "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z", ], }, Ff = { prefix: "fas", iconName: "wifi", icon: [ 640, 512, [], "f1eb", "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z", ], }, Nf = { prefix: "fas", iconName: "wind", icon: [ 512, 512, [], "f72e", "M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z", ], }, kf = { prefix: "fas", iconName: "window-close", icon: [ 512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z", ], }, zf = { prefix: "fas", iconName: "window-maximize", icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"], }, jf = { prefix: "fas", iconName: "window-minimize", icon: [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"] }, Bf = { prefix: "fas", iconName: "window-restore", icon: [ 512, 512, [], "f2d2", "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z", ], }, Vf = { prefix: "fas", iconName: "wine-bottle", icon: [ 512, 512, [], "f72f", "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z", ], }, Gf = { prefix: "fas", iconName: "wine-glass", icon: [ 288, 512, [], "f4e3", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z", ], }, Uf = { prefix: "fas", iconName: "wine-glass-alt", icon: [ 288, 512, [], "f5ce", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z", ], }, Hf = { prefix: "fas", iconName: "won-sign", icon: [ 576, 512, [], "f159", "M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z", ], }, Wf = { prefix: "fas", iconName: "wrench", icon: [ 512, 512, [], "f0ad", "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z", ], }, Xf = { prefix: "fas", iconName: "x-ray", icon: [ 640, 512, [], "f497", "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z", ], }, Yf = { prefix: "fas", iconName: "yen-sign", icon: [ 384, 512, [], "f157", "M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z", ], }, Kf = { prefix: "fas", iconName: "yin-yang", icon: [ 496, 512, [], "f6ad", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z", ], }, Zf = { faAd: r, faAddressBook: o, faAddressCard: a, faAdjust: s, faAirFreshener: c, faAlignCenter: l, faAlignJustify: u, faAlignLeft: h, faAlignRight: d, faAllergies: p, faAmbulance: f, faAmericanSignLanguageInterpreting: m, faAnchor: g, faAngleDoubleDown: b, faAngleDoubleLeft: _, faAngleDoubleRight: v, faAngleDoubleUp: y, faAngleDown: C, faAngleLeft: P, faAngleRight: x, faAngleUp: T, faAngry: S, faAnkh: O, faAppleAlt: E, faArchive: M, faArchway: A, faArrowAltCircleDown: I, faArrowAltCircleLeft: D, faArrowAltCircleRight: R, faArrowAltCircleUp: w, faArrowCircleDown: L, faArrowCircleLeft: F, faArrowCircleRight: N, faArrowCircleUp: k, faArrowDown: z, faArrowLeft: j, faArrowRight: B, faArrowUp: V, faArrowsAlt: G, faArrowsAltH: U, faArrowsAltV: H, faAssistiveListeningSystems: W, faAsterisk: X, faAt: Y, faAtlas: K, faAtom: Z, faAudioDescription: q, faAward: Q, faBackspace: J, faBackward: $, faBalanceScale: ee, faBan: te, faBandAid: ne, faBarcode: ie, faBars: re, faBaseballBall: oe, faBasketballBall: ae, faBath: se, faBatteryEmpty: ce, faBatteryFull: le, faBatteryHalf: ue, faBatteryQuarter: he, faBatteryThreeQuarters: de, faBed: pe, faBeer: fe, faBell: me, faBellSlash: ge, faBezierCurve: be, faBible: _e, faBicycle: ve, faBinoculars: ye, faBirthdayCake: Ce, faBlender: Pe, faBlenderPhone: xe, faBlind: Te, faBold: Se, faBolt: Oe, faBomb: Ee, faBone: Me, faBong: Ae, faBook: Ie, faBookDead: De, faBookOpen: Re, faBookReader: we, faBookmark: Le, faBowlingBall: Fe, faBox: Ne, faBoxOpen: ke, faBoxes: ze, faBraille: je, faBrain: Be, faBriefcase: Ve, faBriefcaseMedical: Ge, faBroadcastTower: Ue, faBroom: He, faBrush: We, faBug: Xe, faBuilding: Ye, faBullhorn: Ke, faBullseye: Ze, faBurn: qe, faBus: Qe, faBusAlt: Je, faBusinessTime: $e, faCalculator: et, faCalendar: tt, faCalendarAlt: nt, faCalendarCheck: it, faCalendarMinus: rt, faCalendarPlus: ot, faCalendarTimes: at, faCamera: st, faCameraRetro: ct, faCampground: lt, faCannabis: ut, faCapsules: ht, faCar: dt, faCarAlt: pt, faCarBattery: ft, faCarCrash: mt, faCarSide: gt, faCaretDown: bt, faCaretLeft: _t, faCaretRight: vt, faCaretSquareDown: yt, faCaretSquareLeft: Ct, faCaretSquareRight: Pt, faCaretSquareUp: xt, faCaretUp: Tt, faCartArrowDown: St, faCartPlus: Ot, faCat: Et, faCertificate: Mt, faChair: At, faChalkboard: It, faChalkboardTeacher: Dt, faChargingStation: Rt, faChartArea: wt, faChartBar: Lt, faChartLine: Ft, faChartPie: Nt, faCheck: kt, faCheckCircle: zt, faCheckDouble: jt, faCheckSquare: Bt, faChess: Vt, faChessBishop: Gt, faChessBoard: Ut, faChessKing: Ht, faChessKnight: Wt, faChessPawn: Xt, faChessQueen: Yt, faChessRook: Kt, faChevronCircleDown: Zt, faChevronCircleLeft: qt, faChevronCircleRight: Qt, faChevronCircleUp: Jt, faChevronDown: $t, faChevronLeft: en, faChevronRight: tn, faChevronUp: nn, faChild: rn, faChurch: on, faCircle: an, faCircleNotch: sn, faCity: cn, faClipboard: ln, faClipboardCheck: un, faClipboardList: hn, faClock: dn, faClone: pn, faClosedCaptioning: fn, faCloud: mn, faCloudDownloadAlt: gn, faCloudMoon: bn, faCloudSun: _n, faCloudUploadAlt: vn, faCocktail: yn, faCode: Cn, faCodeBranch: Pn, faCoffee: xn, faCog: Tn, faCogs: Sn, faCoins: On, faColumns: En, faComment: Mn, faCommentAlt: An, faCommentDollar: In, faCommentDots: Dn, faCommentSlash: Rn, faComments: wn, faCommentsDollar: Ln, faCompactDisc: Fn, faCompass: Nn, faCompress: kn, faConciergeBell: zn, faCookie: jn, faCookieBite: Bn, faCopy: Vn, faCopyright: Gn, faCouch: Un, faCreditCard: Hn, faCrop: Wn, faCropAlt: Xn, faCross: Yn, faCrosshairs: Kn, faCrow: Zn, faCrown: qn, faCube: Qn, faCubes: Jn, faCut: $n, faDatabase: ei, faDeaf: ti, faDesktop: ni, faDharmachakra: ii, faDiagnoses: ri, faDice: oi, faDiceD20: ai, faDiceD6: si, faDiceFive: ci, faDiceFour: li, faDiceOne: ui, faDiceSix: hi, faDiceThree: di, faDiceTwo: pi, faDigitalTachograph: fi, faDirections: mi, faDivide: gi, faDizzy: bi, faDna: _i, faDog: vi, faDollarSign: yi, faDolly: Ci, faDollyFlatbed: Pi, faDonate: xi, faDoorClosed: Ti, faDoorOpen: Si, faDotCircle: Oi, faDove: Ei, faDownload: Mi, faDraftingCompass: Ai, faDragon: Ii, faDrawPolygon: Di, faDrum: Ri, faDrumSteelpan: wi, faDrumstickBite: Li, faDumbbell: Fi, faDungeon: Ni, faEdit: ki, faEject: zi, faEllipsisH: ji, faEllipsisV: Bi, faEnvelope: Vi, faEnvelopeOpen: Gi, faEnvelopeOpenText: Ui, faEnvelopeSquare: Hi, faEquals: Wi, faEraser: Xi, faEuroSign: Yi, faExchangeAlt: Ki, faExclamation: Zi, faExclamationCircle: qi, faExclamationTriangle: Qi, faExpand: Ji, faExpandArrowsAlt: $i, faExternalLinkAlt: er, faExternalLinkSquareAlt: tr, faEye: nr, faEyeDropper: ir, faEyeSlash: rr, faFastBackward: or, faFastForward: ar, faFax: sr, faFeather: cr, faFeatherAlt: lr, faFemale: ur, faFighterJet: hr, faFile: dr, faFileAlt: pr, faFileArchive: fr, faFileAudio: mr, faFileCode: gr, faFileContract: br, faFileCsv: _r, faFileDownload: vr, faFileExcel: yr, faFileExport: Cr, faFileImage: Pr, faFileImport: xr, faFileInvoice: Tr, faFileInvoiceDollar: Sr, faFileMedical: Or, faFileMedicalAlt: Er, faFilePdf: Mr, faFilePowerpoint: Ar, faFilePrescription: Ir, faFileSignature: Dr, faFileUpload: Rr, faFileVideo: wr, faFileWord: Lr, faFill: Fr, faFillDrip: Nr, faFilm: kr, faFilter: zr, faFingerprint: jr, faFire: Br, faFireExtinguisher: Vr, faFirstAid: Gr, faFish: Ur, faFistRaised: Hr, faFlag: Wr, faFlagCheckered: Xr, faFlask: Yr, faFlushed: Kr, faFolder: Zr, faFolderMinus: qr, faFolderOpen: Qr, faFolderPlus: Jr, faFont: $r, faFontAwesomeLogoFull: eo, faFootballBall: to, faForward: no, faFrog: io, faFrown: ro, faFrownOpen: oo, faFunnelDollar: ao, faFutbol: so, faGamepad: co, faGasPump: lo, faGavel: uo, faGem: ho, faGenderless: po, faGhost: fo, faGift: mo, faGlassMartini: go, faGlassMartiniAlt: bo, faGlasses: _o, faGlobe: vo, faGlobeAfrica: yo, faGlobeAmericas: Co, faGlobeAsia: Po, faGolfBall: xo, faGopuram: To, faGraduationCap: So, faGreaterThan: Oo, faGreaterThanEqual: Eo, faGrimace: Mo, faGrin: Ao, faGrinAlt: Io, faGrinBeam: Do, faGrinBeamSweat: Ro, faGrinHearts: wo, faGrinSquint: Lo, faGrinSquintTears: Fo, faGrinStars: No, faGrinTears: ko, faGrinTongue: zo, faGrinTongueSquint: jo, faGrinTongueWink: Bo, faGrinWink: Vo, faGripHorizontal: Go, faGripVertical: Uo, faHSquare: Ho, faHammer: Wo, faHamsa: Xo, faHandHolding: Yo, faHandHoldingHeart: Ko, faHandHoldingUsd: Zo, faHandLizard: qo, faHandPaper: Qo, faHandPeace: Jo, faHandPointDown: $o, faHandPointLeft: ea, faHandPointRight: ta, faHandPointUp: na, faHandPointer: ia, faHandRock: ra, faHandScissors: oa, faHandSpock: aa, faHands: sa, faHandsHelping: ca, faHandshake: la, faHanukiah: ua, faHashtag: ha, faHatWizard: da, faHaykal: pa, faHdd: fa, faHeading: ma, faHeadphones: ga, faHeadphonesAlt: ba, faHeadset: _a, faHeart: va, faHeartbeat: ya, faHelicopter: Ca, faHighlighter: Pa, faHiking: xa, faHippo: Ta, faHistory: Sa, faHockeyPuck: Oa, faHome: Ea, faHorse: Ma, faHospital: Aa, faHospitalAlt: Ia, faHospitalSymbol: Da, faHotTub: Ra, faHotel: wa, faHourglass: La, faHourglassEnd: Fa, faHourglassHalf: Na, faHourglassStart: ka, faHouseDamage: za, faHryvnia: ja, faICursor: Ba, faIdBadge: Va, faIdCard: Ga, faIdCardAlt: Ua, faImage: Ha, faImages: Wa, faInbox: Xa, faIndent: Ya, faIndustry: Ka, faInfinity: Za, faInfo: qa, faInfoCircle: Qa, faItalic: Ja, faJedi: $a, faJoint: es, faJournalWhills: ts, faKaaba: ns, faKey: is, faKeyboard: rs, faKhanda: os, faKiss: as, faKissBeam: ss, faKissWinkHeart: cs, faKiwiBird: ls, faLandmark: us, faLanguage: hs, faLaptop: ds, faLaptopCode: ps, faLaugh: fs, faLaughBeam: ms, faLaughSquint: gs, faLaughWink: bs, faLayerGroup: _s, faLeaf: vs, faLemon: ys, faLessThan: Cs, faLessThanEqual: Ps, faLevelDownAlt: xs, faLevelUpAlt: Ts, faLifeRing: Ss, faLightbulb: Os, faLink: Es, faLiraSign: Ms, faList: As, faListAlt: Is, faListOl: Ds, faListUl: Rs, faLocationArrow: ws, faLock: Ls, faLockOpen: Fs, faLongArrowAltDown: Ns, faLongArrowAltLeft: ks, faLongArrowAltRight: zs, faLongArrowAltUp: js, faLowVision: Bs, faLuggageCart: Vs, faMagic: Gs, faMagnet: Us, faMailBulk: Hs, faMale: Ws, faMap: Xs, faMapMarked: Ys, faMapMarkedAlt: Ks, faMapMarker: Zs, faMapMarkerAlt: qs, faMapPin: Qs, faMapSigns: Js, faMarker: $s, faMars: ec, faMarsDouble: tc, faMarsStroke: nc, faMarsStrokeH: ic, faMarsStrokeV: rc, faMask: oc, faMedal: ac, faMedkit: sc, faMeh: cc, faMehBlank: lc, faMehRollingEyes: uc, faMemory: hc, faMenorah: dc, faMercury: pc, faMicrochip: fc, faMicrophone: mc, faMicrophoneAlt: gc, faMicrophoneAltSlash: bc, faMicrophoneSlash: _c, faMicroscope: vc, faMinus: yc, faMinusCircle: Cc, faMinusSquare: Pc, faMobile: xc, faMobileAlt: Tc, faMoneyBill: Sc, faMoneyBillAlt: Oc, faMoneyBillWave: Ec, faMoneyBillWaveAlt: Mc, faMoneyCheck: Ac, faMoneyCheckAlt: Ic, faMonument: Dc, faMoon: Rc, faMortarPestle: wc, faMosque: Lc, faMotorcycle: Fc, faMountain: Nc, faMousePointer: kc, faMusic: zc, faNetworkWired: jc, faNeuter: Bc, faNewspaper: Vc, faNotEqual: Gc, faNotesMedical: Uc, faObjectGroup: Hc, faObjectUngroup: Wc, faOilCan: Xc, faOm: Yc, faOtter: Kc, faOutdent: Zc, faPaintBrush: qc, faPaintRoller: Qc, faPalette: Jc, faPallet: $c, faPaperPlane: el, faPaperclip: tl, faParachuteBox: nl, faParagraph: il, faParking: rl, faPassport: ol, faPastafarianism: al, faPaste: sl, faPause: cl, faPauseCircle: ll, faPaw: ul, faPeace: hl, faPen: dl, faPenAlt: pl, faPenFancy: fl, faPenNib: ml, faPenSquare: gl, faPencilAlt: bl, faPencilRuler: _l, faPeopleCarry: vl, faPercent: yl, faPercentage: Cl, faPhone: Pl, faPhoneSlash: xl, faPhoneSquare: Tl, faPhoneVolume: Sl, faPiggyBank: Ol, faPills: El, faPlaceOfWorship: Ml, faPlane: Al, faPlaneArrival: Il, faPlaneDeparture: Dl, faPlay: Rl, faPlayCircle: wl, faPlug: Ll, faPlus: Fl, faPlusCircle: Nl, faPlusSquare: kl, faPodcast: zl, faPoll: jl, faPollH: Bl, faPoo: Vl, faPoop: Gl, faPortrait: Ul, faPoundSign: Hl, faPowerOff: Wl, faPray: Xl, faPrayingHands: Yl, faPrescription: Kl, faPrescriptionBottle: Zl, faPrescriptionBottleAlt: ql, faPrint: Ql, faProcedures: Jl, faProjectDiagram: $l, faPuzzlePiece: eu, faQrcode: tu, faQuestion: nu, faQuestionCircle: iu, faQuidditch: ru, faQuoteLeft: ou, faQuoteRight: au, faQuran: su, faRandom: cu, faReceipt: lu, faRecycle: uu, faRedo: hu, faRedoAlt: du, faRegistered: pu, faReply: fu, faReplyAll: mu, faRetweet: gu, faRibbon: bu, faRing: _u, faRoad: vu, faRobot: yu, faRocket: Cu, faRoute: Pu, faRss: xu, faRssSquare: Tu, faRubleSign: Su, faRuler: Ou, faRulerCombined: Eu, faRulerHorizontal: Mu, faRulerVertical: Au, faRunning: Iu, faRupeeSign: Du, faSadCry: Ru, faSadTear: wu, faSave: Lu, faSchool: Fu, faScrewdriver: Nu, faScroll: ku, faSearch: zu, faSearchDollar: ju, faSearchLocation: Bu, faSearchMinus: Vu, faSearchPlus: Gu, faSeedling: Uu, faServer: Hu, faShapes: Wu, faShare: Xu, faShareAlt: Yu, faShareAltSquare: Ku, faShareSquare: Zu, faShekelSign: qu, faShieldAlt: Qu, faShip: Ju, faShippingFast: $u, faShoePrints: eh, faShoppingBag: th, faShoppingBasket: nh, faShoppingCart: ih, faShower: rh, faShuttleVan: oh, faSign: ah, faSignInAlt: sh, faSignLanguage: ch, faSignOutAlt: lh, faSignal: uh, faSignature: hh, faSitemap: dh, faSkull: ph, faSkullCrossbones: fh, faSlash: mh, faSlidersH: gh, faSmile: bh, faSmileBeam: _h, faSmileWink: vh, faSmoking: yh, faSmokingBan: Ch, faSnowflake: Ph, faSocks: xh, faSolarPanel: Th, faSort: Sh, faSortAlphaDown: Oh, faSortAlphaUp: Eh, faSortAmountDown: Mh, faSortAmountUp: Ah, faSortDown: Ih, faSortNumericDown: Dh, faSortNumericUp: Rh, faSortUp: wh, faSpa: Lh, faSpaceShuttle: Fh, faSpider: Nh, faSpinner: kh, faSplotch: zh, faSprayCan: jh, faSquare: Bh, faSquareFull: Vh, faSquareRootAlt: Gh, faStamp: Uh, faStar: Hh, faStarAndCrescent: Wh, faStarHalf: Xh, faStarHalfAlt: Yh, faStarOfDavid: Kh, faStarOfLife: Zh, faStepBackward: qh, faStepForward: Qh, faStethoscope: Jh, faStickyNote: $h, faStop: ed, faStopCircle: td, faStopwatch: nd, faStore: id, faStoreAlt: rd, faStream: od, faStreetView: ad, faStrikethrough: sd, faStroopwafel: cd, faSubscript: ld, faSubway: ud, faSuitcase: hd, faSuitcaseRolling: dd, faSun: pd, faSuperscript: fd, faSurprise: md, faSwatchbook: gd, faSwimmer: bd, faSwimmingPool: _d, faSynagogue: vd, faSync: yd, faSyncAlt: Cd, faSyringe: Pd, faTable: xd, faTableTennis: Td, faTablet: Sd, faTabletAlt: Od, faTablets: Ed, faTachometerAlt: Md, faTag: Ad, faTags: Id, faTape: Dd, faTasks: Rd, faTaxi: wd, faTeeth: Ld, faTeethOpen: Fd, faTerminal: Nd, faTextHeight: kd, faTextWidth: zd, faTh: jd, faThLarge: Bd, faThList: Vd, faTheaterMasks: Gd, faThermometer: Ud, faThermometerEmpty: Hd, faThermometerFull: Wd, faThermometerHalf: Xd, faThermometerQuarter: Yd, faThermometerThreeQuarters: Kd, faThumbsDown: Zd, faThumbsUp: qd, faThumbtack: Qd, faTicketAlt: Jd, faTimes: $d, faTimesCircle: ep, faTint: tp, faTintSlash: np, faTired: ip, faToggleOff: rp, faToggleOn: op, faToiletPaper: ap, faToolbox: sp, faTooth: cp, faTorah: lp, faToriiGate: up, faTractor: hp, faTrademark: dp, faTrafficLight: pp, faTrain: fp, faTransgender: mp, faTransgenderAlt: gp, faTrash: bp, faTrashAlt: _p, faTree: vp, faTrophy: yp, faTruck: Cp, faTruckLoading: Pp, faTruckMonster: xp, faTruckMoving: Tp, faTruckPickup: Sp, faTshirt: Op, faTty: Ep, faTv: Mp, faUmbrella: Ap, faUmbrellaBeach: Ip, faUnderline: Dp, faUndo: Rp, faUndoAlt: wp, faUniversalAccess: Lp, faUniversity: Fp, faUnlink: Np, faUnlock: kp, faUnlockAlt: zp, faUpload: jp, faUser: Bp, faUserAlt: Vp, faUserAltSlash: Gp, faUserAstronaut: Up, faUserCheck: Hp, faUserCircle: Wp, faUserClock: Xp, faUserCog: Yp, faUserEdit: Kp, faUserFriends: Zp, faUserGraduate: qp, faUserInjured: Qp, faUserLock: Jp, faUserMd: $p, faUserMinus: ef, faUserNinja: tf, faUserPlus: nf, faUserSecret: rf, faUserShield: of, faUserSlash: af, faUserTag: sf, faUserTie: cf, faUserTimes: lf, faUsers: uf, faUsersCog: hf, faUtensilSpoon: df, faUtensils: pf, faVectorSquare: ff, faVenus: mf, faVenusDouble: gf, faVenusMars: bf, faVial: _f, faVials: vf, faVideo: yf, faVideoSlash: Cf, faVihara: Pf, faVolleyballBall: xf, faVolumeDown: Tf, faVolumeMute: Sf, faVolumeOff: Of, faVolumeUp: Ef, faVrCardboard: Mf, faWalking: Af, faWallet: If, faWarehouse: Df, faWeight: Rf, faWeightHanging: wf, faWheelchair: Lf, faWifi: Ff, faWind: Nf, faWindowClose: kf, faWindowMaximize: zf, faWindowMinimize: jf, faWindowRestore: Bf, faWineBottle: Vf, faWineGlass: Gf, faWineGlassAlt: Uf, faWonSign: Hf, faWrench: Wf, faXRay: Xf, faYenSign: Yf, faYinYang: Kf, }; }, "../../../../node_modules/@fortawesome/react-fontawesome/index.es.js": function (e, t, n) { "use strict"; n.r(t), function (e) { n.d(t, "FontAwesomeIcon", function () { return v; }); var i = n("../../../../node_modules/@fortawesome/fontawesome-svg-core/index.es.js"), r = n("../../../../node_modules/prop-types/index.js"), o = n.n(r), a = n("../../../../node_modules/react/index.js"), s = n.n(a); function c(e) { return (c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; })(e); } function l(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e; } function u(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}, i = Object.keys(n); "function" == typeof Object.getOwnPropertySymbols && (i = i.concat( Object.getOwnPropertySymbols(n).filter(function (e) { return Object.getOwnPropertyDescriptor(n, e).enumerable; }) )), i.forEach(function (t) { l(e, t, n[t]); }); } return e; } function h(e, t) { if (null == e) return {}; var n, i, r = (function (e, t) { if (null == e) return {}; var n, i, r = {}, o = Object.keys(e); for (i = 0; i < o.length; i++) (n = o[i]), t.indexOf(n) >= 0 || (r[n] = e[n]); return r; })(e, t); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); for (i = 0; i < o.length; i++) (n = o[i]), t.indexOf(n) >= 0 || (Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n])); } return r; } function d(e) { return ( (function (e) { if (Array.isArray(e)) { for (var t = 0, n = new Array(e.length); t < e.length; t++) n[t] = e[t]; return n; } })(e) || (function (e) { if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e); })(e) || (function () { throw new TypeError("Invalid attempt to spread non-iterable instance"); })() ); } var p = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {}, f = (function (e, t) { return e((t = { exports: {} }), t.exports), t.exports; })(function (e) { !(function (t) { var n = function (e, t, i) { if (!c(t) || u(t) || h(t) || d(t) || s(t)) return t; var r, o = 0, a = 0; if (l(t)) for (r = [], a = t.length; o < a; o++) r.push(n(e, t[o], i)); else for (var p in ((r = {}), t)) Object.prototype.hasOwnProperty.call(t, p) && (r[e(p, i)] = n(e, t[p], i)); return r; }, i = function (e) { return p(e) ? e : (e = e.replace(/[\-_\s]+(.)?/g, function (e, t) { return t ? t.toUpperCase() : ""; })) .substr(0, 1) .toLowerCase() + e.substr(1); }, r = function (e) { var t = i(e); return t.substr(0, 1).toUpperCase() + t.substr(1); }, o = function (e, t) { return (function (e, t) { var n = (t = t || {}).separator || "_", i = t.split || /(?=[A-Z])/; return e.split(i).join(n); })(e, t).toLowerCase(); }, a = Object.prototype.toString, s = function (e) { return "function" == typeof e; }, c = function (e) { return e === Object(e); }, l = function (e) { return "[object Array]" == a.call(e); }, u = function (e) { return "[object Date]" == a.call(e); }, h = function (e) { return "[object RegExp]" == a.call(e); }, d = function (e) { return "[object Boolean]" == a.call(e); }, p = function (e) { return (e -= 0) == e; }, f = function (e, t) { var n = t && "process" in t ? t.process : t; return "function" != typeof n ? e : function (t, i) { return n(t, e, i); }; }, m = { camelize: i, decamelize: o, pascalize: r, depascalize: o, camelizeKeys: function (e, t) { return n(f(i, t), e); }, decamelizeKeys: function (e, t) { return n(f(o, t), e, t); }, pascalizeKeys: function (e, t) { return n(f(r, t), e); }, depascalizeKeys: function () { return this.decamelizeKeys.apply(this, arguments); }, }; e.exports ? (e.exports = m) : (t.humps = m); })(p); }); function m(e) { return e .split(";") .map(function (e) { return e.trim(); }) .filter(function (e) { return e; }) .reduce(function (e, t) { var n, i = t.indexOf(":"), r = f.camelize(t.slice(0, i)), o = t.slice(i + 1).trim(); return r.startsWith("webkit") ? (e[((n = r), n.charAt(0).toUpperCase() + n.slice(1))] = o) : (e[r] = o), e; }, {}); } var g = !1; try { g = !1; } catch (e) {} function b(e, t) { return (Array.isArray(t) && t.length > 0) || (!Array.isArray(t) && t) ? l({}, e, t) : {}; } function _(e) { return null === e ? null : "object" === c(e) && e.prefix && e.iconName ? e : Array.isArray(e) && 2 === e.length ? { prefix: e[0], iconName: e[1] } : "string" == typeof e ? { prefix: "fas", iconName: e } : void 0; } function v(e) { var t = e.icon, n = e.mask, r = e.symbol, o = e.className, a = e.title, s = _(t), c = b( "classes", [].concat( d( (function (e) { var t, n = (l( (t = { "fa-spin": e.spin, "fa-pulse": e.pulse, "fa-fw": e.fixedWidth, "fa-inverse": e.inverse, "fa-border": e.border, "fa-li": e.listItem, "fa-flip-horizontal": "horizontal" === e.flip || "both" === e.flip, "fa-flip-vertical": "vertical" === e.flip || "both" === e.flip, }), "fa-".concat(e.size), null !== e.size ), l(t, "fa-rotate-".concat(e.rotation), null !== e.rotation), l(t, "fa-pull-".concat(e.pull), null !== e.pull), t); return Object.keys(n) .map(function (e) { return n[e] ? e : null; }) .filter(function (e) { return e; }); })(e) ), d(o.split(" ")) ) ), h = b("transform", "string" == typeof e.transform ? i.parse.transform(e.transform) : e.transform), p = b("mask", _(n)), f = Object(i.icon)(s, u({}, c, h, p, { symbol: r, title: a })); if (!f) return ( (function () { var e; !g && console && "function" == typeof console.error && (e = console).error.apply(e, arguments); })("Could not find icon", s), null ); var m = f.abstract, C = {}; return ( Object.keys(e).forEach(function (t) { v.defaultProps.hasOwnProperty(t) || (C[t] = e[t]); }), y(m[0], C) ); } (v.displayName = "FontAwesomeIcon"), (v.propTypes = { border: o.a.bool, className: o.a.string, mask: o.a.oneOfType([o.a.object, o.a.array, o.a.string]), fixedWidth: o.a.bool, inverse: o.a.bool, flip: o.a.oneOf(["horizontal", "vertical", "both"]), icon: o.a.oneOfType([o.a.object, o.a.array, o.a.string]), listItem: o.a.bool, pull: o.a.oneOf(["right", "left"]), pulse: o.a.bool, rotation: o.a.oneOf([90, 180, 270]), size: o.a.oneOf(["lg", "xs", "sm", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x", "9x", "10x"]), spin: o.a.bool, symbol: o.a.oneOfType([o.a.bool, o.a.string]), title: o.a.string, transform: o.a.oneOfType([o.a.string, o.a.object]), }), (v.defaultProps = { border: !1, className: "", mask: null, fixedWidth: !1, inverse: !1, flip: null, icon: null, listItem: !1, pull: null, pulse: !1, rotation: null, size: null, spin: !1, symbol: !1, title: "", transform: null, }); var y = function e(t, n) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if ("string" == typeof n) return n; var r = (n.children || []).map(function (n) { return e(t, n); }), o = Object.keys(n.attributes || {}).reduce( function (e, t) { var i = n.attributes[t]; switch (t) { case "class": (e.attrs.className = i), delete n.attributes.class; break; case "style": e.attrs.style = m(i); break; default: 0 === t.indexOf("aria-") || 0 === t.indexOf("data-") ? (e.attrs[t.toLowerCase()] = i) : (e.attrs[f.camelize(t)] = i); } return e; }, { attrs: {} } ), a = i.style, s = void 0 === a ? {} : a, c = h(i, ["style"]); return (o.attrs.style = u({}, o.attrs.style, s)), t.apply(void 0, [n.tag, u({}, o.attrs, c)].concat(d(r))); }.bind(null, s.a.createElement); }.call(this, n("../../../../node_modules/webpack/buildin/global.js")); }, "../../../../node_modules/classnames/index.js": function (e, t, n) { var i; !(function () { "use strict"; var n = {}.hasOwnProperty; function r() { for (var e = [], t = 0; t < arguments.length; t++) { var i = arguments[t]; if (i) { var o = typeof i; if ("string" === o || "number" === o) e.push(i); else if (Array.isArray(i) && i.length) { var a = r.apply(null, i); a && e.push(a); } else if ("object" === o) for (var s in i) n.call(i, s) && i[s] && e.push(s); } } return e.join(" "); } e.exports ? ((r.default = r), (e.exports = r)) : void 0 === (i = function () { return r; }.apply(t, [])) || (e.exports = i); })(); }, "../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./components/actionTabs/actionTabs.scss": function (e, t, n) { (e.exports = n("../../../../node_modules/css-loader/lib/css-base.js")(!1)).push([ e.i, '#inspector-host {\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0px; }\n\n#__resizable_base__ {\n display: none; }\n\n#actionTabs {\n background: #333333;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: auto 1fr;\n font: 14px "Arial";\n overflow: hidden; }\n #actionTabs .hoverIcon:hover {\n opacity: 0.8; }\n #actionTabs #header {\n height: 30px;\n font-size: 16px;\n color: white;\n background: #222222;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #actionTabs #header #logo {\n grid-column: 1;\n width: 24px;\n height: 24px;\n display: flex;\n align-self: center;\n justify-self: center; }\n #actionTabs #header #back {\n grid-column: 1;\n display: grid;\n align-self: center;\n justify-self: center;\n cursor: pointer; }\n #actionTabs #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #actionTabs #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #actionTabs #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs {\n display: grid;\n grid-row: 2;\n grid-template-rows: 40px 1fr;\n font: 14px "Arial";\n overflow: hidden; }\n #actionTabs .tabs .labels {\n grid-row: 1;\n display: flex;\n align-items: center;\n justify-items: center;\n border-bottom: 1px solid #ffffff;\n margin: 0;\n padding: 0; }\n #actionTabs .tabs .labels .label {\n font-size: 24px;\n color: white;\n width: 40px;\n display: flex;\n align-content: center;\n justify-content: center;\n border: 1px solid transparent;\n border-bottom: none;\n background: #333333;\n padding: 5px;\n height: 28px;\n cursor: pointer; }\n #actionTabs .tabs .labels .label.active {\n border-color: #ffffff;\n border-bottom: 2px solid transparent;\n margin-bottom: -2px; }\n #actionTabs .tabs .panes {\n grid-row: 2;\n display: grid;\n grid-template-rows: 100%;\n overflow: hidden; }\n #actionTabs .tabs .panes .infoMessage {\n opacity: 0.5;\n color: white;\n margin: 15px 5px 0px 5px; }\n #actionTabs .tabs .panes .pane {\n color: white;\n overflow-x: hidden;\n overflow-y: auto;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #actionTabs .tabs .panes .pane .underline {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.5); }\n #actionTabs .tabs .panes .pane .textureLinkLine {\n display: grid;\n grid-template-columns: auto 1fr; }\n #actionTabs .tabs .panes .pane .textureLinkLine .debug {\n grid-column: 1;\n margin-left: 5px;\n margin-right: 5px;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer;\n opacity: 0.5; }\n #actionTabs .tabs .panes .pane .textureLinkLine .debug.selected {\n opacity: 1.0; }\n #actionTabs .tabs .panes .pane .textureLinkLine .textLine {\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .messageLine {\n text-align: center;\n font-size: 12px;\n font-style: italic;\n opacity: 0.6; }\n #actionTabs .tabs .panes .pane .iconMessageLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 30px 1fr; }\n #actionTabs .tabs .panes .pane .iconMessageLine .icon {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center; }\n #actionTabs .tabs .panes .pane .iconMessageLine .value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .textLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .textLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .textLine .link-value {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 140px;\n text-decoration: underline;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .textLine .value {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 200px;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text; }\n #actionTabs .tabs .panes .pane .textLine .value.check {\n color: green; }\n #actionTabs .tabs .panes .pane .textLine .value.uncheck {\n color: red; }\n #actionTabs .tabs .panes .pane .textInputLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr 120px; }\n #actionTabs .tabs .panes .pane .textInputLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .textInputLine .value {\n display: flex;\n align-items: center;\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .textInputLine .value input {\n width: 110px; }\n #actionTabs .tabs .panes .pane .buttonLine {\n height: 30px;\n display: grid;\n align-items: center;\n justify-items: stretch; }\n #actionTabs .tabs .panes .pane .buttonLine input[type="file"] {\n display: none; }\n #actionTabs .tabs .panes .pane .buttonLine .file-upload {\n background: #222222;\n border: 1px solid #337ab7;\n margin: 5px 10px 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9;\n cursor: pointer;\n text-align: center; }\n #actionTabs .tabs .panes .pane .buttonLine .file-upload:hover {\n opacity: 1.0; }\n #actionTabs .tabs .panes .pane .buttonLine .file-upload:active {\n transform: scale(0.98);\n transform-origin: 0.5 0.5; }\n #actionTabs .tabs .panes .pane .buttonLine button {\n background: #222222;\n border: 1px solid #337ab7;\n margin: 5px 10px 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9; }\n #actionTabs .tabs .panes .pane .buttonLine button:hover {\n opacity: 1.0; }\n #actionTabs .tabs .panes .pane .buttonLine button:active {\n background: #282828; }\n #actionTabs .tabs .panes .pane .buttonLine button:focus {\n border: 1px solid #337ab7;\n outline: 0px; }\n #actionTabs .tabs .panes .pane .radioLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr 24px; }\n #actionTabs .tabs .panes .pane .radioLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer {\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .radio {\n grid-column: 2;\n display: none; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .radio:checked + label:before {\n border-color: #337ab7; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .radio:checked + label:after {\n transform: scale(1); }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio {\n display: inline-block;\n height: 14px;\n position: relative;\n padding: 0 24px;\n margin-bottom: 0;\n cursor: pointer;\n vertical-align: bottom; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:before, #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:after {\n position: absolute;\n content: \'\';\n border-radius: 50%;\n transition: all .3s ease;\n transition-property: transform, border-color; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:before {\n left: 0px;\n top: 0;\n width: 16px;\n height: 16px;\n border: 2px solid white; }\n #actionTabs .tabs .panes .pane .radioLine .radioContainer .labelForRadio:after {\n top: 6px;\n left: 6px;\n width: 8px;\n height: 8px;\n transform: scale(0);\n background: #337ab7; }\n #actionTabs .tabs .panes .pane .vector3Line {\n padding-left: 2px;\n display: grid; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine {\n display: grid;\n grid-template-columns: 1fr auto 20px;\n height: 30px; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine .vector {\n grid-column: 2;\n display: flex;\n align-items: center;\n text-align: right;\n opacity: 0.8; }\n #actionTabs .tabs .panes .pane .vector3Line .firstLine .expand {\n grid-column: 3;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #actionTabs .tabs .panes .pane .vector3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .checkBoxLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .checkBoxLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .lbl {\n position: relative;\n display: block;\n height: 14px;\n width: 34px;\n margin-right: 5px;\n background: #898989;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.3s ease; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .lbl:after {\n position: absolute;\n left: 3px;\n top: 2px;\n display: block;\n width: 10px;\n height: 10px;\n border-radius: 100px;\n background: #fff;\n box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);\n content: \'\';\n transition: all 0.15s ease; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .lbl:active:after {\n transform: scale(1.15, 0.85); }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .cbx:checked ~ label {\n background: #337ab7; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .cbx:checked ~ label:after {\n left: 20px;\n background: #164975; }\n #actionTabs .tabs .panes .pane .checkBoxLine .checkBox .hidden {\n display: none; }\n #actionTabs .tabs .panes .pane .textureLine {\n display: grid;\n grid-template-rows: 30px auto; }\n #actionTabs .tabs .panes .pane .textureLine .control {\n margin-top: 2px;\n grid-row: 1;\n display: grid;\n grid-template-columns: 1fr 40px 40px 40px 40px 40px 1fr; }\n #actionTabs .tabs .panes .pane .textureLine .control .red {\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .textureLine .control .green {\n grid-column: 3; }\n #actionTabs .tabs .panes .pane .textureLine .control .blue {\n grid-column: 4; }\n #actionTabs .tabs .panes .pane .textureLine .control .alpha {\n grid-column: 5; }\n #actionTabs .tabs .panes .pane .textureLine .control .all {\n grid-column: 6; }\n #actionTabs .tabs .panes .pane .textureLine .control3D {\n margin-top: 2px;\n grid-row: 1;\n display: grid;\n grid-template-columns: 1fr 40px 40px 40px 40px 40px 40px 1fr; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .px {\n grid-column: 2; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .nx {\n grid-column: 3; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .py {\n grid-column: 4; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .ny {\n grid-column: 5; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .pz {\n grid-column: 6; }\n #actionTabs .tabs .panes .pane .textureLine .control3D .nz {\n grid-column: 7; }\n #actionTabs .tabs .panes .pane .textureLine .command {\n border: 1px solid transparent;\n background: transparent;\n color: white; }\n #actionTabs .tabs .panes .pane .textureLine .selected {\n border: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .textureLine .preview {\n grid-row: 2;\n display: grid;\n align-self: center;\n justify-self: center;\n height: 256px;\n width: 256px;\n margin-top: 5px;\n margin-bottom: 5px;\n border: 2px solid rgba(255, 255, 255, 0.4); }\n #actionTabs .tabs .panes .pane .gltf-extension-property {\n margin-left: 30px;\n border-left: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .floatLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr 120px; }\n #actionTabs .tabs .panes .pane .floatLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .floatLine .value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .floatLine .value input {\n width: 110px; }\n #actionTabs .tabs .panes .pane .sliderLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .sliderLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .sliderLine .slider {\n grid-column: 2;\n margin-right: 5px;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range {\n -webkit-appearance: none;\n width: 120px;\n height: 6px;\n background: #d3d3d3;\n border-radius: 5px;\n outline: none;\n opacity: 0.7;\n -webkit-transition: .2s;\n transition: opacity .2s; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range:hover {\n opacity: 1; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #337ab7;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .sliderLine .slider .range::-moz-range-thumb {\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #337ab7;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .color3Line {\n padding-left: 2px;\n display: grid; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine {\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto 20px 20px; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input[type="color"] {\n -webkit-appearance: none;\n border: 1px solid rgba(255, 255, 255, 0.5);\n padding: 0;\n width: 30px;\n height: 20px; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input[type="color"]::-webkit-color-swatch-wrapper {\n padding: 0; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input[type="color"]::-webkit-color-swatch {\n border: none; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .color3 input {\n margin-right: 5px; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .copy {\n grid-column: 3;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .copy img {\n height: 100%; }\n #actionTabs .tabs .panes .pane .color3Line .firstLine .expand {\n grid-column: 4;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #actionTabs .tabs .panes .pane .color3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #actionTabs .tabs .panes .pane .listLine {\n padding-left: 2px;\n height: 30px;\n display: grid;\n grid-template-columns: 1fr auto; }\n #actionTabs .tabs .panes .pane .listLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .listLine .options {\n grid-column: 2;\n display: flex;\n align-items: center;\n margin-right: 5px; }\n #actionTabs .tabs .panes .pane .listLine .options select {\n width: 115px; }\n #actionTabs .tabs .panes .pane .paneContainer {\n margin-top: 3px;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%; }\n #actionTabs .tabs .panes .pane .paneContainer .paneList {\n border-left: 3px solid transparent; }\n #actionTabs .tabs .panes .pane .paneContainer:hover .paneList {\n border-left: 3px solid rgba(51, 122, 183, 0.8); }\n #actionTabs .tabs .panes .pane .paneContainer:hover .paneContainer-content .header .title {\n border-left: 3px solid #337ab7; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-highlight-border {\n grid-row: 1;\n grid-column: 1;\n opacity: 1;\n border: 3px solid red;\n transition: opacity 250ms;\n pointer-events: none; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-highlight-border.transparent {\n opacity: 0; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content {\n grid-row: 1;\n grid-column: 1; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header {\n display: grid;\n grid-template-columns: 1fr auto;\n background: #555555;\n height: 30px;\n padding-right: 5px;\n cursor: pointer; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header .title {\n border-left: 3px solid transparent;\n padding-left: 5px;\n grid-column: 1;\n display: flex;\n align-items: center; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header .collapse {\n grid-column: 2;\n display: flex;\n align-items: center;\n justify-items: center;\n transform-origin: center; }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .header .collapse.closed {\n transform: rotate(180deg); }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .paneList > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n #actionTabs .tabs .panes .pane .paneContainer .paneContainer-content .fragment > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n', "", ]); }, "../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./components/embedHost/embedHost.scss": function (e, t, n) { (e.exports = n("../../../../node_modules/css-loader/lib/css-base.js")(!1)).push([ e.i, '#embed-host {\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0px; }\n\n#__resizable_base__ {\n display: none; }\n\n#embed {\n background: #333333;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: 30px 1fr;\n font: 14px "Arial";\n overflow: hidden; }\n #embed #header {\n font-size: 16px;\n color: white;\n background: #222222;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #embed #header #logo {\n grid-column: 1;\n width: 24px;\n height: 24px;\n display: flex;\n align-self: center;\n justify-self: center; }\n #embed #header #back {\n grid-column: 1;\n display: grid;\n align-self: center;\n justify-self: center;\n cursor: pointer; }\n #embed #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #embed #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #embed #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #embed #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #embed #split {\n grid-row: 2;\n overflow: hidden; }\n #embed #split.splitPopup {\n display: grid;\n grid-template-rows: 300px 2px 1fr; }\n #embed #split.splitPopup .panes {\n margin-bottom: 1px; }\n #embed #split #topPart {\n grid-row: 1;\n overflow: hidden;\n display: grid;\n grid-auto-rows: 100%; }\n #embed #split #separator {\n grid-row: 2;\n background: white;\n opacity: 0.1; }\n #embed #split #bottomPart {\n overflow: hidden;\n grid-row: 3;\n display: grid;\n grid-auto-rows: 100%; }\n #embed #split .gutter.gutter-vertical {\n background-image: none;\n background: #444444;\n cursor: row-resize; }\n', "", ]); }, "../../../../node_modules/css-loader/index.js!../../../../node_modules/sass-loader/lib/loader.js!./components/sceneExplorer/sceneExplorer.scss": function (e, t, n) { (e.exports = n("../../../../node_modules/css-loader/lib/css-base.js")(!1)).push([ e.i, '#scene-explorer-host {\n position: absolute;\n left: 0px;\n top: 0px;\n bottom: 0px; }\n #scene-explorer-host:focus {\n outline: none; }\n\n#__resizable_base__ {\n display: none; }\n\n.context-menu {\n background: #222222; }\n .context-menu .react-contextmenu-item {\n padding: 10px;\n cursor: pointer; }\n .context-menu .react-contextmenu-item:hover {\n background: #555555; }\n\n.react-contextmenu.context-menu.react-contextmenu--visible {\n z-index: 99;\n transform: scale(1); }\n\n#sceneExplorer {\n background: #333333;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: auto 1fr;\n font: 14px "Arial"; }\n #sceneExplorer:focus {\n outline: none; }\n #sceneExplorer #header {\n height: 30px;\n font-size: 16px;\n color: white;\n background: #222222;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #sceneExplorer #header #logo {\n position: relative;\n grid-column: 1;\n width: 24px;\n height: 24px;\n left: 0;\n display: flex;\n align-self: center;\n justify-self: center; }\n #sceneExplorer #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #sceneExplorer #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #sceneExplorer #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #sceneExplorer #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #sceneExplorer #tree {\n grid-row: 2;\n overflow-x: hidden;\n overflow-y: auto; }\n #sceneExplorer .filter {\n display: flex;\n align-items: stretch; }\n #sceneExplorer .filter input {\n width: 100%;\n margin: 10px 40px 5px 40px;\n display: block;\n border: none;\n padding: 0;\n border-bottom: solid 1px #337ab7;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #337ab7 4%);\n background-position: -1000px 0;\n background-size: 1000px 100%;\n background-repeat: no-repeat;\n color: white; }\n #sceneExplorer .filter input::placeholder {\n color: lightgray; }\n #sceneExplorer .filter input:focus {\n box-shadow: none;\n outline: none;\n background-position: 0 0; }\n #sceneExplorer .groupContainer {\n margin-left: 0px;\n color: white;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n align-self: center;\n display: grid;\n align-items: center; }\n #sceneExplorer .groupContainer:hover {\n background: #444444; }\n #sceneExplorer .groupContainer .expandableHeader {\n display: grid;\n grid-template-columns: 1fr 20px; }\n #sceneExplorer .groupContainer .expandableHeader .text {\n grid-column: 1;\n display: grid;\n grid-template-columns: 20px 1fr; }\n #sceneExplorer .groupContainer .expandableHeader .text .arrow {\n grid-column: 1;\n margin-left: 0px;\n color: white;\n cursor: pointer;\n display: inline-block;\n margin-right: 6px;\n opacity: 0.5; }\n #sceneExplorer .groupContainer .expandableHeader .text .text-value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #sceneExplorer .groupContainer .expandableHeader .expandAll {\n opacity: 0.5;\n grid-column: 2;\n margin-right: 10px; }\n #sceneExplorer .icon {\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #sceneExplorer .itemContainer {\n margin-left: 0px;\n color: white;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: grid;\n grid-template-columns: 20px 1fr; }\n #sceneExplorer .itemContainer:hover {\n background: #444444; }\n #sceneExplorer .itemContainer.selected {\n background: #bbbbbb;\n color: black; }\n #sceneExplorer .itemContainer .isNotActive {\n opacity: 0.3; }\n #sceneExplorer .itemContainer .arrow {\n grid-column: 1;\n color: white;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .popup {\n width: 200px;\n visibility: hidden;\n background-color: #444444;\n color: #fff;\n border: 1px solid rgba(255, 255, 255, 0.5);\n position: absolute;\n z-index: 1;\n margin-left: -180px;\n box-sizing: border-box; }\n #sceneExplorer .itemContainer .popup.show {\n visibility: visible; }\n #sceneExplorer .itemContainer .popup:focus {\n outline: none; }\n #sceneExplorer .itemContainer .popup .popupMenu {\n padding: 6px 5px 5px 10px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: 18px; }\n #sceneExplorer .itemContainer .popup .popupMenu:hover {\n background: white;\n color: #333333; }\n #sceneExplorer .itemContainer .sceneNode {\n grid-column: 2;\n margin-left: -10px;\n display: grid;\n grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\n align-items: center;\n cursor: pointer; }\n #sceneExplorer .itemContainer .sceneNode .sceneTitle {\n grid-column: 1;\n margin-right: 5px;\n display: flex;\n align-items: center;\n height: 24px; }\n #sceneExplorer .itemContainer .sceneNode .translation {\n grid-column: 2;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .translation.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .rotation {\n grid-column: 3;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .rotation.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .scaling {\n grid-column: 4;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .scaling.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .bounding {\n grid-column: 5;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .bounding.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .separator {\n grid-column: 6;\n margin-left: 5px;\n width: 5px;\n display: flex;\n align-items: center;\n height: 18px;\n border-left: solid 1px #337ab7; }\n #sceneExplorer .itemContainer .sceneNode .pickingMode {\n grid-column: 7;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .sceneNode .pickingMode.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .sceneNode .refresh {\n grid-column: 8; }\n #sceneExplorer .itemContainer .sceneNode .extensions {\n width: 20px;\n grid-column: 9; }\n #sceneExplorer .itemContainer .animationGroupTools {\n grid-column: 2;\n width: 100%;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center;\n min-width: 0; }\n #sceneExplorer .itemContainer .animationGroupTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .meshTools {\n grid-column: 2;\n width: 100%;\n display: grid;\n grid-template-columns: 1fr 20px 20px auto 5px;\n align-items: center;\n min-width: 0; }\n #sceneExplorer .itemContainer .meshTools .bounding-box {\n grid-column: 2;\n opacity: 0.5; }\n #sceneExplorer .itemContainer .meshTools .bounding-box.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .meshTools .visibility {\n grid-column: 3; }\n #sceneExplorer .itemContainer .meshTools .extensions {\n width: 20px;\n grid-column: 4; }\n #sceneExplorer .itemContainer .cameraTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .cameraTools .activeCamera {\n grid-column: 2; }\n #sceneExplorer .itemContainer .cameraTools .extensions {\n width: 20px;\n grid-column: 3; }\n #sceneExplorer .itemContainer .lightTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .lightTools .enableLight {\n grid-column: 2; }\n #sceneExplorer .itemContainer .lightTools .extensions {\n width: 20px;\n grid-column: 3; }\n #sceneExplorer .itemContainer .materialTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .materialTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .postProcessTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .postProcessTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .renderingPipelineTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .renderingPipelineTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .textureTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .textureTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .adtextureTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .adtextureTools .pickingMode {\n grid-column: 2;\n opacity: 0.6; }\n #sceneExplorer .itemContainer .adtextureTools .pickingMode.selected {\n opacity: 1; }\n #sceneExplorer .itemContainer .adtextureTools .extensions {\n width: 20px;\n grid-column: 3; }\n #sceneExplorer .itemContainer .controlTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px 20px auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .controlTools .highlight {\n grid-column: 2; }\n #sceneExplorer .itemContainer .controlTools .visibility {\n grid-column: 3; }\n #sceneExplorer .itemContainer .controlTools .extensions {\n width: 20px;\n grid-column: 4; }\n #sceneExplorer .itemContainer .transformNodeTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .transformNodeTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .skeletonTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr auto 5px;\n align-items: center; }\n #sceneExplorer .itemContainer .skeletonTools .extensions {\n width: 20px;\n grid-column: 2; }\n #sceneExplorer .itemContainer .title {\n grid-column: 1;\n background: transparent;\n white-space: nowrap;\n overflow: hidden;\n min-width: 0;\n margin-right: 5px;\n display: grid;\n align-items: center;\n grid-template-columns: 25px 1fr;\n height: 24px;\n cursor: pointer; }\n #sceneExplorer .itemContainer .title .titleIcon {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center; }\n #sceneExplorer .itemContainer .title .titleText {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n', "", ]); }, "../../../../node_modules/css-loader/lib/css-base.js": function (e, t) { e.exports = function (e) { var t = []; return ( (t.toString = function () { return this.map(function (t) { var n = (function (e, t) { var n, i = e[1] || "", r = e[3]; if (!r) return i; if (t && "function" == typeof btoa) { var o = ((n = r), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(n)))) + " */"), a = r.sources.map(function (e) { return "/*# sourceURL=" + r.sourceRoot + e + " */"; }); return [i].concat(a).concat([o]).join("\n"); } return [i].join("\n"); })(t, e); return t[2] ? "@media " + t[2] + "{" + n + "}" : n; }).join(""); }), (t.i = function (e, n) { "string" == typeof e && (e = [[null, e, ""]]); for (var i = {}, r = 0; r < this.length; r++) { var o = this[r][0]; "number" == typeof o && (i[o] = !0); } for (r = 0; r < e.length; r++) { var a = e[r]; ("number" == typeof a[0] && i[a[0]]) || (n && !a[2] ? (a[2] = n) : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), t.push(a)); } }), t ); }; }, "../../../../node_modules/object-assign/index.js": function (e, t, n) { "use strict"; var i = Object.getOwnPropertySymbols, r = Object.prototype.hasOwnProperty, o = Object.prototype.propertyIsEnumerable; function a(e) { if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined"); return Object(e); } e.exports = (function () { try { if (!Object.assign) return !1; var e = new String("abc"); if (((e[5] = "de"), "5" === Object.getOwnPropertyNames(e)[0])) return !1; for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n; if ( "0123456789" !== Object.getOwnPropertyNames(t) .map(function (e) { return t[e]; }) .join("") ) return !1; var i = {}; return ( "abcdefghijklmnopqrst".split("").forEach(function (e) { i[e] = e; }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, i)).join("") ); } catch (e) { return !1; } })() ? Object.assign : function (e, t) { for (var n, s, c = a(e), l = 1; l < arguments.length; l++) { for (var u in (n = Object(arguments[l]))) r.call(n, u) && (c[u] = n[u]); if (i) { s = i(n); for (var h = 0; h < s.length; h++) o.call(n, s[h]) && (c[s[h]] = n[s[h]]); } } return c; }; }, "../../../../node_modules/process/browser.js": function (e, t) { var n, i, r = (e.exports = {}); function o() { throw new Error("setTimeout has not been defined"); } function a() { throw new Error("clearTimeout has not been defined"); } function s(e) { if (n === setTimeout) return setTimeout(e, 0); if ((n === o || !n) && setTimeout) return (n = setTimeout), setTimeout(e, 0); try { return n(e, 0); } catch (t) { try { return n.call(null, e, 0); } catch (t) { return n.call(this, e, 0); } } } !(function () { try { n = "function" == typeof setTimeout ? setTimeout : o; } catch (e) { n = o; } try { i = "function" == typeof clearTimeout ? clearTimeout : a; } catch (e) { i = a; } })(); var c, l = [], u = !1, h = -1; function d() { u && c && ((u = !1), c.length ? (l = c.concat(l)) : (h = -1), l.length && p()); } function p() { if (!u) { var e = s(d); u = !0; for (var t = l.length; t; ) { for (c = l, l = []; ++h < t; ) c && c[h].run(); (h = -1), (t = l.length); } (c = null), (u = !1), (function (e) { if (i === clearTimeout) return clearTimeout(e); if ((i === a || !i) && clearTimeout) return (i = clearTimeout), clearTimeout(e); try { i(e); } catch (t) { try { return i.call(null, e); } catch (t) { return i.call(this, e); } } })(e); } } function f(e, t) { (this.fun = e), (this.array = t); } function m() {} (r.nextTick = function (e) { var t = new Array(arguments.length - 1); if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; l.push(new f(e, t)), 1 !== l.length || u || s(p); }), (f.prototype.run = function () { this.fun.apply(null, this.array); }), (r.title = "browser"), (r.browser = !0), (r.env = {}), (r.argv = []), (r.version = ""), (r.versions = {}), (r.on = m), (r.addListener = m), (r.once = m), (r.off = m), (r.removeListener = m), (r.removeAllListeners = m), (r.emit = m), (r.prependListener = m), (r.prependOnceListener = m), (r.listeners = function (e) { return []; }), (r.binding = function (e) { throw new Error("process.binding is not supported"); }), (r.cwd = function () { return "/"; }), (r.chdir = function (e) { throw new Error("process.chdir is not supported"); }), (r.umask = function () { return 0; }); }, "../../../../node_modules/prop-types/checkPropTypes.js": function (e, t, n) { "use strict"; var i = function () {}, r = n("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"), o = {}, a = Function.call.bind(Object.prototype.hasOwnProperty); function s(e, t, n, s, c) { for (var l in e) if (a(e, l)) { var u; try { if ("function" != typeof e[l]) { var h = Error((s || "React class") + ": " + n + " type `" + l + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[l] + "`."); throw ((h.name = "Invariant Violation"), h); } u = e[l](t, l, s, n, null, r); } catch (e) { u = e; } if ( (!u || u instanceof Error || i( (s || "React class") + ": type specification of " + n + " `" + l + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof u + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)." ), u instanceof Error && !(u.message in o)) ) { o[u.message] = !0; var d = c ? c() : ""; i("Failed " + n + " type: " + u.message + (null != d ? d : "")); } } } (i = function (e) { var t = "Warning: " + e; try { throw new Error(t); } catch (e) {} }), (s.resetWarningCache = function () { o = {}; }), (e.exports = s); }, "../../../../node_modules/prop-types/factoryWithTypeCheckers.js": function (e, t, n) { "use strict"; var i = n("../../../../node_modules/react-is/index.js"), r = n("../../../../node_modules/object-assign/index.js"), o = n("../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js"), a = n("../../../../node_modules/prop-types/checkPropTypes.js"), s = Function.call.bind(Object.prototype.hasOwnProperty), c = function () {}; function l() { return null; } (c = function (e) { var t = "Warning: " + e; try { throw new Error(t); } catch (e) {} }), (e.exports = function (e, t) { var n = "function" == typeof Symbol && Symbol.iterator, u = { array: f("array"), bool: f("boolean"), func: f("function"), number: f("number"), object: f("object"), string: f("string"), symbol: f("symbol"), any: p(l), arrayOf: function (e) { return p(function (t, n, i, r, a) { if ("function" != typeof e) return new d("Property `" + a + "` of component `" + i + "` has invalid PropType notation inside arrayOf."); var s = t[n]; if (!Array.isArray(s)) return new d("Invalid " + r + " `" + a + "` of type `" + g(s) + "` supplied to `" + i + "`, expected an array."); for (var c = 0; c < s.length; c++) { var l = e(s, c, i, r, a + "[" + c + "]", o); if (l instanceof Error) return l; } return null; }); }, element: p(function (t, n, i, r, o) { var a = t[n]; return e(a) ? null : new d("Invalid " + r + " `" + o + "` of type `" + g(a) + "` supplied to `" + i + "`, expected a single ReactElement."); }), elementType: p(function (e, t, n, r, o) { var a = e[t]; return i.isValidElementType(a) ? null : new d("Invalid " + r + " `" + o + "` of type `" + g(a) + "` supplied to `" + n + "`, expected a single ReactElement type."); }), instanceOf: function (e) { return p(function (t, n, i, r, o) { if (!(t[n] instanceof e)) { var a = e.name || "<>"; return new d( "Invalid " + r + " `" + o + "` of type `" + (((s = t[n]).constructor && s.constructor.name ? s.constructor.name : "<>") + "` supplied to `") + i + "`, expected instance of `" + a + "`." ); } var s; return null; }); }, node: p(function (e, t, n, i, r) { return m(e[t]) ? null : new d("Invalid " + i + " `" + r + "` supplied to `" + n + "`, expected a ReactNode."); }), objectOf: function (e) { return p(function (t, n, i, r, a) { if ("function" != typeof e) return new d("Property `" + a + "` of component `" + i + "` has invalid PropType notation inside objectOf."); var c = t[n], l = g(c); if ("object" !== l) return new d("Invalid " + r + " `" + a + "` of type `" + l + "` supplied to `" + i + "`, expected an object."); for (var u in c) if (s(c, u)) { var h = e(c, u, i, r, a + "." + u, o); if (h instanceof Error) return h; } return null; }); }, oneOf: function (e) { if (!Array.isArray(e)) return ( c( arguments.length > 1 ? "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])." : "Invalid argument supplied to oneOf, expected an array." ), l ); function t(t, n, i, r, o) { for (var a = t[n], s = 0; s < e.length; s++) if (h(a, e[s])) return null; var c = JSON.stringify(e, function (e, t) { return "symbol" === b(t) ? String(t) : t; }); return new d("Invalid " + r + " `" + o + "` of value `" + String(a) + "` supplied to `" + i + "`, expected one of " + c + "."); } return p(t); }, oneOfType: function (e) { if (!Array.isArray(e)) return c("Invalid argument supplied to oneOfType, expected an instance of array."), l; for (var t = 0; t < e.length; t++) { var n = e[t]; if ("function" != typeof n) return c("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + _(n) + " at index " + t + "."), l; } return p(function (t, n, i, r, a) { for (var s = 0; s < e.length; s++) if (null == (0, e[s])(t, n, i, r, a, o)) return null; return new d("Invalid " + r + " `" + a + "` supplied to `" + i + "`."); }); }, shape: function (e) { return p(function (t, n, i, r, a) { var s = t[n], c = g(s); if ("object" !== c) return new d("Invalid " + r + " `" + a + "` of type `" + c + "` supplied to `" + i + "`, expected `object`."); for (var l in e) { var u = e[l]; if (u) { var h = u(s, l, i, r, a + "." + l, o); if (h) return h; } } return null; }); }, exact: function (e) { return p(function (t, n, i, a, s) { var c = t[n], l = g(c); if ("object" !== l) return new d("Invalid " + a + " `" + s + "` of type `" + l + "` supplied to `" + i + "`, expected `object`."); var u = r({}, t[n], e); for (var h in u) { var p = e[h]; if (!p) return new d( "Invalid " + a + " `" + s + "` key `" + h + "` supplied to `" + i + "`.\nBad object: " + JSON.stringify(t[n], null, " ") + "\nValid keys: " + JSON.stringify(Object.keys(e), null, " ") ); var f = p(c, h, i, a, s + "." + h, o); if (f) return f; } return null; }); }, }; function h(e, t) { return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t; } function d(e) { (this.message = e), (this.stack = ""); } function p(e) { var n = {}, i = 0; function r(r, a, s, l, u, h, p) { if (((l = l || "<>"), (h = h || s), p !== o)) { if (t) { var f = new Error( "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types" ); throw ((f.name = "Invariant Violation"), f); } if ("undefined" != typeof console) { var m = l + ":" + s; !n[m] && i < 3 && (c( "You are manually calling a React.PropTypes validation function for the `" + h + "` prop on `" + l + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details." ), (n[m] = !0), i++); } } return null == a[s] ? r ? null === a[s] ? new d("The " + u + " `" + h + "` is marked as required in `" + l + "`, but its value is `null`.") : new d("The " + u + " `" + h + "` is marked as required in `" + l + "`, but its value is `undefined`.") : null : e(a, s, l, u, h); } var a = r.bind(null, !1); return (a.isRequired = r.bind(null, !0)), a; } function f(e) { return p(function (t, n, i, r, o, a) { var s = t[n]; return g(s) !== e ? new d("Invalid " + r + " `" + o + "` of type `" + b(s) + "` supplied to `" + i + "`, expected `" + e + "`.") : null; }); } function m(t) { switch (typeof t) { case "number": case "string": case "undefined": return !0; case "boolean": return !t; case "object": if (Array.isArray(t)) return t.every(m); if (null === t || e(t)) return !0; var i = (function (e) { var t = e && ((n && e[n]) || e["@@iterator"]); if ("function" == typeof t) return t; })(t); if (!i) return !1; var r, o = i.call(t); if (i !== t.entries) { for (; !(r = o.next()).done; ) if (!m(r.value)) return !1; } else for (; !(r = o.next()).done; ) { var a = r.value; if (a && !m(a[1])) return !1; } return !0; default: return !1; } } function g(e) { var t = typeof e; return Array.isArray(e) ? "array" : e instanceof RegExp ? "object" : (function (e, t) { return "symbol" === e || (!!t && ("Symbol" === t["@@toStringTag"] || ("function" == typeof Symbol && t instanceof Symbol))); })(t, e) ? "symbol" : t; } function b(e) { if (null == e) return "" + e; var t = g(e); if ("object" === t) { if (e instanceof Date) return "date"; if (e instanceof RegExp) return "regexp"; } return t; } function _(e) { var t = b(e); switch (t) { case "array": case "object": return "an " + t; case "boolean": case "date": case "regexp": return "a " + t; default: return t; } } return (d.prototype = Error.prototype), (u.checkPropTypes = a), (u.resetWarningCache = a.resetWarningCache), (u.PropTypes = u), u; }); }, "../../../../node_modules/prop-types/index.js": function (e, t, n) { var i = n("../../../../node_modules/react-is/index.js"); e.exports = n("../../../../node_modules/prop-types/factoryWithTypeCheckers.js")(i.isElement, !0); }, "../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js": function (e, t, n) { "use strict"; e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"; }, "../../../../node_modules/react-contextmenu/es6/AbstractMenu.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react/index.js"), r = n.n(i), o = n("../../../../node_modules/prop-types/index.js"), a = n.n(o), s = n("../../../../node_modules/react-contextmenu/es6/MenuItem.js"), c = (function (e) { function t(e) { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, t); var n = (function (e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || ("object" != typeof t && "function" != typeof t) ? e : t; })(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return l.call(n), (n.seletedItemRef = null), (n.state = { selectedItem: null, forceSubMenuOpen: !1 }), n; } return ( (function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t)); })(t, e), t ); })(i.Component); c.propTypes = { children: a.a.node.isRequired }; var l = function () { var e = this; (this.handleKeyNavigation = function (t) { if (!1 !== e.state.isVisible) switch (t.keyCode) { case 37: case 27: t.preventDefault(), e.hideMenu(t); break; case 38: t.preventDefault(), e.selectChildren(!0); break; case 40: t.preventDefault(), e.selectChildren(!1); break; case 39: e.tryToOpenSubMenu(t); break; case 13: t.preventDefault(), e.tryToOpenSubMenu(t); var n = e.seletedItemRef && e.seletedItemRef.props && e.seletedItemRef.props.disabled; e.seletedItemRef && e.seletedItemRef.ref instanceof HTMLElement && !n ? e.seletedItemRef.ref.click() : e.hideMenu(t); } }), (this.handleForceClose = function () { e.setState({ forceSubMenuOpen: !1 }); }), (this.tryToOpenSubMenu = function (t) { e.state.selectedItem && e.state.selectedItem.type === e.getSubMenuType() && (t.preventDefault(), e.setState({ forceSubMenuOpen: !0 })); }), (this.selectChildren = function (t) { var n = e.state.selectedItem, i = []; r.a.Children.forEach(e.props.children, function t(n) { n && ([s.default, e.getSubMenuType()].indexOf(n.type) < 0 ? r.a.Children.forEach(n.props.children, t) : n.props.divider || i.push(n)); }); var o = i.indexOf(n); o < 0 ? e.setState({ selectedItem: t ? i[i.length - 1] : i[0], forceSubMenuOpen: !1 }) : t ? e.setState({ selectedItem: i[o - 1 < 0 ? i.length - 1 : o - 1], forceSubMenuOpen: !1 }) : e.setState({ selectedItem: i[o + 1 < i.length ? o + 1 : 0], forceSubMenuOpen: !1 }); }), (this.onChildMouseMove = function (t) { e.state.selectedItem !== t && e.setState({ selectedItem: t, forceSubMenuOpen: !1 }); }), (this.onChildMouseLeave = function () { e.setState({ selectedItem: null, forceSubMenuOpen: !1 }); }), (this.renderChildren = function (t) { return r.a.Children.map(t, function (t) { var n = {}; return r.a.isValidElement(t) ? [s.default, e.getSubMenuType()].indexOf(t.type) < 0 ? ((n.children = e.renderChildren(t.props.children)), r.a.cloneElement(t, n)) : ((n.onMouseLeave = e.onChildMouseLeave.bind(e)), t.type === e.getSubMenuType() && ((n.forceOpen = e.state.forceSubMenuOpen && e.state.selectedItem === t), (n.forceClose = e.handleForceClose), (n.parentKeyNavigationHandler = e.handleKeyNavigation)), t.props.divider || e.state.selectedItem !== t ? ((n.onMouseMove = function () { return e.onChildMouseMove(t); }), r.a.cloneElement(t, n)) : ((n.selected = !0), (n.ref = function (t) { e.seletedItemRef = t; }), r.a.cloneElement(t, n))) : t; }); }); }; t.default = c; }, "../../../../node_modules/react-contextmenu/es6/ContextMenu.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react/index.js"), r = n.n(i), o = n("../../../../node_modules/prop-types/index.js"), a = n.n(o), s = n("../../../../node_modules/classnames/index.js"), c = n.n(s), l = n("../../../../node_modules/object-assign/index.js"), u = n.n(l), h = n("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"), d = n("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js"), p = n("../../../../node_modules/react-contextmenu/es6/SubMenu.js"), f = n("../../../../node_modules/react-contextmenu/es6/actions.js"), m = n("../../../../node_modules/react-contextmenu/es6/helpers.js"), g = (function () { function e(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } return function (t, n, i) { return n && e(t.prototype, n), i && e(t, i), t; }; })(), b = (function (e) { function t(e) { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, t); var n = (function (e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || ("object" != typeof t && "function" != typeof t) ? e : t; })(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return ( (n.registerHandlers = function () { document.addEventListener("mousedown", n.handleOutsideClick), document.addEventListener("touchstart", n.handleOutsideClick), document.addEventListener("scroll", n.handleHide), document.addEventListener("contextmenu", n.handleHide), document.addEventListener("keydown", n.handleKeyNavigation), window.addEventListener("resize", n.handleHide); }), (n.unregisterHandlers = function () { document.removeEventListener("mousedown", n.handleOutsideClick), document.removeEventListener("touchstart", n.handleOutsideClick), document.removeEventListener("scroll", n.handleHide), document.removeEventListener("contextmenu", n.handleHide), document.removeEventListener("keydown", n.handleKeyNavigation), window.removeEventListener("resize", n.handleHide); }), (n.handleShow = function (e) { if (e.detail.id === n.props.id && !n.state.isVisible) { var t = e.detail.position, i = t.x, r = t.y; n.setState({ isVisible: !0, x: i, y: r }), n.registerHandlers(), Object(m.callIfExists)(n.props.onShow, e); } }), (n.handleHide = function (e) { !n.state.isVisible || (e.detail && e.detail.id && e.detail.id !== n.props.id) || (n.unregisterHandlers(), n.setState({ isVisible: !1, selectedItem: null, forceSubMenuOpen: !1 }), Object(m.callIfExists)(n.props.onHide, e)); }), (n.handleOutsideClick = function (e) { n.menu.contains(e.target) || Object(f.hideMenu)(); }), (n.handleMouseLeave = function (e) { e.preventDefault(), Object(m.callIfExists)(n.props.onMouseLeave, e, u()({}, n.props.data, m.store.data), m.store.target), n.props.hideOnLeave && Object(f.hideMenu)(); }), (n.handleContextMenu = function (e) { n.handleHide(e); }), (n.hideMenu = function (e) { (27 !== e.keyCode && 13 !== e.keyCode) || Object(f.hideMenu)(); }), (n.getMenuPosition = function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, i = { top: t, left: e }; if (!n.menu) return i; var r = window, o = r.innerWidth, a = r.innerHeight, s = n.menu.getBoundingClientRect(); return ( t + s.height > a && (i.top -= s.height), e + s.width > o && (i.left -= s.width), i.top < 0 && (i.top = s.height < a ? (a - s.height) / 2 : 0), i.left < 0 && (i.left = s.width < o ? (o - s.width) / 2 : 0), i ); }), (n.getRTLMenuPosition = function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, i = { top: t, left: e }; if (!n.menu) return i; var r = window, o = r.innerWidth, a = r.innerHeight, s = n.menu.getBoundingClientRect(); return ( (i.left = e - s.width), t + s.height > a && (i.top -= s.height), i.left < 0 && (i.left += s.width), i.top < 0 && (i.top = s.height < a ? (a - s.height) / 2 : 0), i.left + s.width > o && (i.left = s.width < o ? (o - s.width) / 2 : 0), i ); }), (n.menuRef = function (e) { n.menu = e; }), (n.state = u()({}, n.state, { x: 0, y: 0, isVisible: !1 })), n ); } return ( (function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t)); })(t, e), g(t, [ { key: "getSubMenuType", value: function () { return p.default; }, }, { key: "componentDidMount", value: function () { this.listenId = h.default.register(this.handleShow, this.handleHide); }, }, { key: "componentDidUpdate", value: function () { var e = this; if (this.state.isVisible) { var t = window.requestAnimationFrame || setTimeout; t(function () { var n = e.state, i = n.x, r = n.y, o = e.props.rtl ? e.getRTLMenuPosition(i, r) : e.getMenuPosition(i, r), a = o.top, s = o.left; t(function () { e.menu && ((e.menu.style.top = a + "px"), (e.menu.style.left = s + "px"), (e.menu.style.opacity = 1), (e.menu.style.pointerEvents = "auto")); }); }); } else { if (!this.menu) return; (this.menu.style.opacity = 0), (this.menu.style.pointerEvents = "none"); } }, }, { key: "componentWillUnmount", value: function () { this.listenId && h.default.unregister(this.listenId), this.unregisterHandlers(); }, }, { key: "render", value: function () { var e, t, n, i = this.props, o = i.children, a = i.className, s = i.style, l = this.state.isVisible, h = u()({}, s, { position: "fixed", opacity: 0, pointerEvents: "none" }), d = c()( m.cssClasses.menu, a, ((e = {}), (t = m.cssClasses.menuVisible), (n = l), t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e) ); return r.a.createElement( "nav", { role: "menu", tabIndex: "-1", ref: this.menuRef, style: h, className: d, onContextMenu: this.handleContextMenu, onMouseLeave: this.handleMouseLeave }, this.renderChildren(o) ); }, }, ]), t ); })(d.default); (b.propTypes = { id: a.a.string.isRequired, children: a.a.node.isRequired, data: a.a.object, className: a.a.string, hideOnLeave: a.a.bool, rtl: a.a.bool, onHide: a.a.func, onMouseLeave: a.a.func, onShow: a.a.func, style: a.a.object, }), (b.defaultProps = { className: "", data: {}, hideOnLeave: !1, rtl: !1, onHide: function () { return null; }, onMouseLeave: function () { return null; }, onShow: function () { return null; }, style: {}, }), (t.default = b); }, "../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react/index.js"), r = n.n(i), o = n("../../../../node_modules/prop-types/index.js"), a = n.n(o), s = n("../../../../node_modules/classnames/index.js"), c = n.n(s), l = n("../../../../node_modules/object-assign/index.js"), u = n.n(l), h = n("../../../../node_modules/react-contextmenu/es6/actions.js"), d = n("../../../../node_modules/react-contextmenu/es6/helpers.js"), p = (function () { function e(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } return function (t, n, i) { return n && e(t.prototype, n), i && e(t, i), t; }; })(); function f(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); } function m(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || ("object" != typeof t && "function" != typeof t) ? e : t; } var g = (function (e) { function t() { var e, n, i; f(this, t); for (var r = arguments.length, o = Array(r), a = 0; a < r; a++) o[a] = arguments[a]; return ( (n = i = m(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(o)))), (i.touchHandled = !1), (i.handleMouseDown = function (e) { i.props.holdToDisplay >= 0 && 0 === e.button && (e.persist(), e.stopPropagation(), (i.mouseDownTimeoutId = setTimeout(function () { return i.handleContextClick(e); }, i.props.holdToDisplay))), Object(d.callIfExists)(i.props.attributes.onMouseDown, e); }), (i.handleMouseUp = function (e) { 0 === e.button && clearTimeout(i.mouseDownTimeoutId), Object(d.callIfExists)(i.props.attributes.onMouseUp, e); }), (i.handleMouseOut = function (e) { 0 === e.button && clearTimeout(i.mouseDownTimeoutId), Object(d.callIfExists)(i.props.attributes.onMouseOut, e); }), (i.handleTouchstart = function (e) { (i.touchHandled = !1), i.props.holdToDisplay >= 0 && (e.persist(), e.stopPropagation(), (i.touchstartTimeoutId = setTimeout(function () { i.handleContextClick(e), (i.touchHandled = !0); }, i.props.holdToDisplay))), Object(d.callIfExists)(i.props.attributes.onTouchStart, e); }), (i.handleTouchEnd = function (e) { i.touchHandled && e.preventDefault(), clearTimeout(i.touchstartTimeoutId), Object(d.callIfExists)(i.props.attributes.onTouchEnd, e); }), (i.handleContextMenu = function (e) { i.handleContextClick(e), Object(d.callIfExists)(i.props.attributes.onContextMenu, e); }), (i.handleContextClick = function (e) { if (!i.props.disable) { e.preventDefault(), e.stopPropagation(); var t = e.clientX || (e.touches && e.touches[0].pageX), n = e.clientY || (e.touches && e.touches[0].pageY); i.props.posX && (t -= i.props.posX), i.props.posY && (n -= i.props.posY), Object(h.hideMenu)(); var r = Object(d.callIfExists)(i.props.collect, i.props), o = { position: { x: t, y: n }, target: i.elem, id: i.props.id, data: r }; r && "function" == typeof r.then ? r.then(function (e) { (o.data = e), Object(h.showMenu)(o); }) : Object(h.showMenu)(o); } }), (i.elemRef = function (e) { i.elem = e; }), m(i, n) ); } return ( (function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t)); })(t, e), p(t, [ { key: "render", value: function () { var e = this.props, t = e.renderTag, n = e.attributes, i = e.children, o = u()({}, n, { className: c()(d.cssClasses.menuWrapper, n.className), onContextMenu: this.handleContextMenu, onMouseDown: this.handleMouseDown, onMouseUp: this.handleMouseUp, onTouchStart: this.handleTouchstart, onTouchEnd: this.handleTouchEnd, onMouseOut: this.handleMouseOut, ref: this.elemRef, }); return r.a.createElement(t, o, i); }, }, ]), t ); })(i.Component); (g.propTypes = { id: a.a.string.isRequired, children: a.a.node.isRequired, attributes: a.a.object, collect: a.a.func, disable: a.a.bool, holdToDisplay: a.a.number, posX: a.a.number, posY: a.a.number, renderTag: a.a.oneOfType([a.a.node, a.a.func]), }), (g.defaultProps = { attributes: {}, collect: function () { return null; }, disable: !1, holdToDisplay: 1e3, renderTag: "div", posX: 0, posY: 0, }), (t.default = g); }, "../../../../node_modules/react-contextmenu/es6/MenuItem.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react/index.js"), r = n.n(i), o = n("../../../../node_modules/prop-types/index.js"), a = n.n(o), s = n("../../../../node_modules/classnames/index.js"), c = n.n(s), l = n("../../../../node_modules/object-assign/index.js"), u = n.n(l), h = n("../../../../node_modules/react-contextmenu/es6/actions.js"), d = n("../../../../node_modules/react-contextmenu/es6/helpers.js"), p = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]); } return e; }, f = (function () { function e(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } return function (t, n, i) { return n && e(t.prototype, n), i && e(t, i), t; }; })(); function m(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e; } function g(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); } function b(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || ("object" != typeof t && "function" != typeof t) ? e : t; } var _ = (function (e) { function t() { var e, n, i; g(this, t); for (var r = arguments.length, o = Array(r), a = 0; a < r; a++) o[a] = arguments[a]; return ( (n = i = b(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(o)))), (i.handleClick = function (e) { e.preventDefault(), i.props.disabled || i.props.divider || (Object(d.callIfExists)(i.props.onClick, e, u()({}, i.props.data, d.store.data), d.store.target), i.props.preventClose || Object(h.hideMenu)()); }), b(i, n) ); } return ( (function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t)); })(t, e), f(t, [ { key: "render", value: function () { var e, t = this, n = this.props, i = n.disabled, o = n.divider, a = n.children, s = n.attributes, l = n.selected, u = c()( d.cssClasses.menuItem, s.className, (m((e = {}), c()(d.cssClasses.menuItemDisabled, s.disabledClassName), i), m(e, c()(d.cssClasses.menuItemDivider, s.dividerClassName), o), m(e, c()(d.cssClasses.menuItemSelected, s.selectedClassName), l), e) ); return r.a.createElement( "div", p({}, s, { className: u, role: "menuitem", tabIndex: "-1", "aria-disabled": i ? "true" : "false", "aria-orientation": o ? "horizontal" : null, ref: function (e) { t.ref = e; }, onMouseMove: this.props.onMouseMove, onMouseLeave: this.props.onMouseLeave, onTouchEnd: this.handleClick, onClick: this.handleClick, }), o ? null : a ); }, }, ]), t ); })(i.Component); (_.propTypes = { children: a.a.node, attributes: a.a.object, data: a.a.object, disabled: a.a.bool, divider: a.a.bool, preventClose: a.a.bool, onClick: a.a.func, selected: a.a.bool, onMouseMove: a.a.func, onMouseLeave: a.a.func, }), (_.defaultProps = { disabled: !1, data: {}, divider: !1, attributes: {}, preventClose: !1, onClick: function () { return null; }, children: null, selected: !1, onMouseMove: function () { return null; }, onMouseLeave: function () { return null; }, }), (t.default = _); }, "../../../../node_modules/react-contextmenu/es6/SubMenu.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react/index.js"), r = n.n(i), o = n("../../../../node_modules/prop-types/index.js"), a = n.n(o), s = n("../../../../node_modules/classnames/index.js"), c = n.n(s), l = n("../../../../node_modules/object-assign/index.js"), u = n.n(l), h = n("../../../../node_modules/react-contextmenu/es6/AbstractMenu.js"), d = n("../../../../node_modules/react-contextmenu/es6/helpers.js"), p = n("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"), f = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]); } return e; }, m = (function () { function e(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } return function (t, n, i) { return n && e(t.prototype, n), i && e(t, i), t; }; })(); function g(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e; } var b = (function (e) { function t(e) { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, t); var n = (function (e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || ("object" != typeof t && "function" != typeof t) ? e : t; })(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return ( (n.getMenuPosition = function () { var e = window, t = e.innerWidth, i = e.innerHeight, r = n.subMenu.getBoundingClientRect(), o = {}; return r.bottom > i ? (o.bottom = 0) : (o.top = 0), r.right < t ? (o.left = "100%") : (o.right = "100%"), o; }), (n.getRTLMenuPosition = function () { var e = window.innerHeight, t = n.subMenu.getBoundingClientRect(), i = {}; return t.bottom > e ? (i.bottom = 0) : (i.top = 0), t.left < 0 ? (i.left = "100%") : (i.right = "100%"), i; }), (n.hideMenu = function (e) { (e.detail && e.detail.id && n.menu && e.detail.id !== n.menu.id) || (n.props.forceOpen && n.props.forceClose(), n.setState({ visible: !1, selectedItem: null }), n.unregisterHandlers()); }), (n.handleClick = function (e) { e.preventDefault(), n.props.disabled || Object(d.callIfExists)(n.props.onClick, e, u()({}, n.props.data, d.store.data), d.store.target); }), (n.handleMouseEnter = function () { n.closetimer && clearTimeout(n.closetimer), n.props.disabled || n.state.visible || (n.opentimer = setTimeout(function () { return n.setState({ visible: !0, selectedItem: null }); }, n.props.hoverDelay)); }), (n.handleMouseLeave = function () { n.opentimer && clearTimeout(n.opentimer), n.state.visible && (n.closetimer = setTimeout(function () { return n.setState({ visible: !1, selectedItem: null }); }, n.props.hoverDelay)); }), (n.menuRef = function (e) { n.menu = e; }), (n.subMenuRef = function (e) { n.subMenu = e; }), (n.registerHandlers = function () { document.removeEventListener("keydown", n.props.parentKeyNavigationHandler), document.addEventListener("keydown", n.handleKeyNavigation); }), (n.unregisterHandlers = function (e) { document.removeEventListener("keydown", n.handleKeyNavigation), e || document.addEventListener("keydown", n.props.parentKeyNavigationHandler); }), (n.state = u()({}, n.state, { visible: !1 })), n ); } return ( (function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t)); })(t, e), m(t, [ { key: "componentDidMount", value: function () { this.listenId = p.default.register(function () {}, this.hideMenu); }, }, { key: "getSubMenuType", value: function () { return t; }, }, { key: "shouldComponentUpdate", value: function (e, t) { return ( (this.isVisibilityChange = !((this.state.visible === t.visible && this.props.forceOpen === e.forceOpen) || (this.state.visible && e.forceOpen) || (this.props.forceOpen && t.visible))), !0 ); }, }, { key: "componentDidUpdate", value: function () { var e = this; this.isVisibilityChange && (this.props.forceOpen || this.state.visible ? (window.requestAnimationFrame || setTimeout)(function () { var t = e.props.rtl ? e.getRTLMenuPosition() : e.getMenuPosition(); e.subMenu.style.removeProperty("top"), e.subMenu.style.removeProperty("bottom"), e.subMenu.style.removeProperty("left"), e.subMenu.style.removeProperty("right"), Object(d.hasOwnProp)(t, "top") && (e.subMenu.style.top = t.top), Object(d.hasOwnProp)(t, "left") && (e.subMenu.style.left = t.left), Object(d.hasOwnProp)(t, "bottom") && (e.subMenu.style.bottom = t.bottom), Object(d.hasOwnProp)(t, "right") && (e.subMenu.style.right = t.right), e.subMenu.classList.add(d.cssClasses.menuVisible), e.registerHandlers(), e.setState({ selectedItem: null }); }) : (this.subMenu.addEventListener("transitionend", function t() { e.subMenu.removeEventListener("transitionend", t), e.subMenu.style.removeProperty("bottom"), e.subMenu.style.removeProperty("right"), (e.subMenu.style.top = 0), (e.subMenu.style.left = "100%"), e.unregisterHandlers(); }), this.subMenu.classList.remove(d.cssClasses.menuVisible))); }, }, { key: "componentWillUnmount", value: function () { this.listenId && p.default.unregister(this.listenId), this.opentimer && clearTimeout(this.opentimer), this.closetimer && clearTimeout(this.closetimer), this.unregisterHandlers(!0); }, }, { key: "render", value: function () { var e, t = this.props, n = t.children, i = t.attributes, o = t.disabled, a = t.title, s = t.selected, l = this.state.visible, u = { ref: this.menuRef, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, className: c()(d.cssClasses.menuItem, d.cssClasses.subMenu, i.listClassName), style: { position: "relative" }, }, h = { className: c()( d.cssClasses.menuItem, i.className, ((e = {}), g(e, c()(d.cssClasses.menuItemDisabled, i.disabledClassName), o), g(e, c()(d.cssClasses.menuItemActive, i.visibleClassName), l), g(e, c()(d.cssClasses.menuItemSelected, i.selectedClassName), s), e) ), onMouseMove: this.props.onMouseMove, onMouseOut: this.props.onMouseOut, onClick: this.handleClick, }, p = { ref: this.subMenuRef, style: { position: "absolute", transition: "opacity 1ms", top: 0, left: "100%" }, className: c()(d.cssClasses.menu, this.props.className) }; return r.a.createElement( "nav", f({}, u, { role: "menuitem", tabIndex: "-1", "aria-haspopup": "true" }), r.a.createElement("div", f({}, i, h), a), r.a.createElement("nav", f({}, p, { role: "menu", tabIndex: "-1" }), this.renderChildren(n)) ); }, }, ]), t ); })(h.default); (b.propTypes = { children: a.a.node.isRequired, attributes: a.a.object, title: a.a.node.isRequired, className: a.a.string, disabled: a.a.bool, hoverDelay: a.a.number, rtl: a.a.bool, selected: a.a.bool, onMouseMove: a.a.func, onMouseOut: a.a.func, forceOpen: a.a.bool, forceClose: a.a.func, parentKeyNavigationHandler: a.a.func, }), (b.defaultProps = { disabled: !1, hoverDelay: 500, attributes: {}, className: "", rtl: !1, selected: !1, onMouseMove: function () { return null; }, onMouseOut: function () { return null; }, forceOpen: !1, forceClose: function () { return null; }, parentKeyNavigationHandler: function () { return null; }, }), (t.default = b); }, "../../../../node_modules/react-contextmenu/es6/actions.js": function (e, t, n) { "use strict"; n.r(t), n.d(t, "MENU_SHOW", function () { return a; }), n.d(t, "MENU_HIDE", function () { return s; }), n.d(t, "dispatchGlobalEvent", function () { return c; }), n.d(t, "showMenu", function () { return l; }), n.d(t, "hideMenu", function () { return u; }); var i = n("../../../../node_modules/object-assign/index.js"), r = n.n(i), o = n("../../../../node_modules/react-contextmenu/es6/helpers.js"), a = "REACT_CONTEXTMENU_SHOW", s = "REACT_CONTEXTMENU_HIDE"; function c(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : window, i = void 0; "function" == typeof window.CustomEvent ? (i = new window.CustomEvent(e, { detail: t })) : (i = document.createEvent("CustomEvent")).initCustomEvent(e, !1, !0, t), n && (n.dispatchEvent(i), r()(o.store, t)); } function l() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments[1]; c(a, r()({}, e, { type: a }), t); } function u() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments[1]; c(s, r()({}, e, { type: s }), t); } }, "../../../../node_modules/react-contextmenu/es6/connectMenu.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react/index.js"), r = n.n(i), o = n("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js"), a = n("../../../../node_modules/react-contextmenu/es6/globalEventListener.js"), s = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]); } return e; }, c = (function () { function e(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } return function (t, n, i) { return n && e(t.prototype, n), i && e(t, i), t; }; })(), l = [].concat( (function (e) { if (Array.isArray(e)) { for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t]; return n; } return Array.from(e); })(Object.keys(o.default.propTypes)), ["children"] ); t.default = function (e) { return function (t) { return (function (n) { function i(t) { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, i); var n = (function (e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || ("object" != typeof t && "function" != typeof t) ? e : t; })(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this, t)); return ( (n.handleShow = function (t) { if (t.detail.id === e) { var i = t.detail.data, r = {}; for (var o in i) l.includes(o) || (r[o] = i[o]); n.setState({ trigger: r }); } }), (n.handleHide = function () { n.setState({ trigger: null }); }), (n.state = { trigger: null }), n ); } return ( (function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } })), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : (e.__proto__ = t)); })(i, n), c(i, [ { key: "componentDidMount", value: function () { this.listenId = a.default.register(this.handleShow, this.handleHide); }, }, { key: "componentWillUnmount", value: function () { this.listenId && a.default.unregister(this.listenId); }, }, { key: "render", value: function () { return r.a.createElement(t, s({}, this.props, { id: e, trigger: this.state.trigger })); }, }, ]), i ); })(i.Component); }; }; }, "../../../../node_modules/react-contextmenu/es6/globalEventListener.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react-contextmenu/es6/actions.js"), r = n("../../../../node_modules/react-contextmenu/es6/helpers.js"); t.default = new (function e() { var t = this; !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, e), (this.handleShowEvent = function (e) { for (var n in t.callbacks) Object(r.hasOwnProp)(t.callbacks, n) && t.callbacks[n].show(e); }), (this.handleHideEvent = function (e) { for (var n in t.callbacks) Object(r.hasOwnProp)(t.callbacks, n) && t.callbacks[n].hide(e); }), (this.register = function (e, n) { var i = Object(r.uniqueId)(); return (t.callbacks[i] = { show: e, hide: n }), i; }), (this.unregister = function (e) { e && t.callbacks[e] && delete t.callbacks[e]; }), (this.callbacks = {}), r.canUseDOM && (window.addEventListener(i.MENU_SHOW, this.handleShowEvent), window.addEventListener(i.MENU_HIDE, this.handleHideEvent)); })(); }, "../../../../node_modules/react-contextmenu/es6/helpers.js": function (e, t, n) { "use strict"; function i(e) { for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i]; return "function" == typeof e && e.apply(void 0, n); } function r(e, t) { return Object.prototype.hasOwnProperty.call(e, t); } function o() { return Math.random().toString(36).substring(7); } n.r(t), n.d(t, "callIfExists", function () { return i; }), n.d(t, "hasOwnProp", function () { return r; }), n.d(t, "uniqueId", function () { return o; }), n.d(t, "cssClasses", function () { return a; }), n.d(t, "store", function () { return s; }), n.d(t, "canUseDOM", function () { return c; }); var a = { menu: "react-contextmenu", menuVisible: "react-contextmenu--visible", menuWrapper: "react-contextmenu-wrapper", menuItem: "react-contextmenu-item", menuItemActive: "react-contextmenu-item--active", menuItemDisabled: "react-contextmenu-item--disabled", menuItemDivider: "react-contextmenu-item--divider", menuItemSelected: "react-contextmenu-item--selected", subMenu: "react-contextmenu-submenu", }, s = {}, c = Boolean("undefined" != typeof window && window.document && window.document.createElement); }, "../../../../node_modules/react-contextmenu/es6/index.js": function (e, t, n) { "use strict"; n.r(t); var i = n("../../../../node_modules/react-contextmenu/es6/ContextMenu.js"); n.d(t, "ContextMenu", function () { return i.default; }); var r = n("../../../../node_modules/react-contextmenu/es6/ContextMenuTrigger.js"); n.d(t, "ContextMenuTrigger", function () { return r.default; }); var o = n("../../../../node_modules/react-contextmenu/es6/MenuItem.js"); n.d(t, "MenuItem", function () { return o.default; }); var a = n("../../../../node_modules/react-contextmenu/es6/SubMenu.js"); n.d(t, "SubMenu", function () { return a.default; }); var s = n("../../../../node_modules/react-contextmenu/es6/connectMenu.js"); n.d(t, "connectMenu", function () { return s.default; }); var c = n("../../../../node_modules/react-contextmenu/es6/actions.js"); n.d(t, "hideMenu", function () { return c.hideMenu; }), n.d(t, "showMenu", function () { return c.showMenu; }); }, "../../../../node_modules/react-dom/cjs/react-dom.development.js": function (e, t, n) { "use strict"; !(function () { var t = n("../../../../node_modules/react/index.js"), i = n("../../../../node_modules/object-assign/index.js"), r = n("../../../../node_modules/prop-types/checkPropTypes.js"), o = n("../../../../node_modules/scheduler/index.js"), a = n("../../../../node_modules/scheduler/tracing.js"); function s(e) { return (e.name = "Invariant Violation"), e; } !(function () { if (!t) throw s(Error("ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.")); })(); var c = null, l = {}; function u() { if (c) for (var e in l) { var t = l[e], n = c.indexOf(e); if ( ((function () { if (!(n > -1)) throw s(Error("EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `" + e + "`.")); })(), !p[n]) ) { !(function () { if (!t.extractEvents) throw s(Error("EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `" + e + "` does not.")); })(), (p[n] = t); var i = t.eventTypes; for (var r in i) !(function () { if (!h(i[r], t, r)) throw s(Error("EventPluginRegistry: Failed to publish event `" + r + "` for plugin `" + e + "`.")); })(); } } } function h(e, t, n) { !(function () { if (f.hasOwnProperty(n)) throw s(Error("EventPluginHub: More than one plugin attempted to publish the same event name, `" + n + "`.")); })(), (f[n] = e); var i = e.phasedRegistrationNames; if (i) { for (var r in i) i.hasOwnProperty(r) && d(i[r], t, n); return !0; } return !!e.registrationName && (d(e.registrationName, t, n), !0); } function d(e, t, n) { !(function () { if (m[e]) throw s(Error("EventPluginHub: More than one plugin attempted to publish the same registration name, `" + e + "`.")); })(), (m[e] = t), (g[e] = t.eventTypes[n].dependencies); var i = e.toLowerCase(); (b[i] = e), "onDoubleClick" === e && (b.ondblclick = e); } var p = [], f = {}, m = {}, g = {}, b = {}, _ = function (e, t, n, i, r, o, a, s, c) { var l = Array.prototype.slice.call(arguments, 3); try { t.apply(n, l); } catch (e) { this.onError(e); } }; if ("undefined" != typeof window && "function" == typeof window.dispatchEvent && "undefined" != typeof document && "function" == typeof document.createEvent) { var v = document.createElement("react"); _ = function (e, t, n, i, r, o, a, c, l) { !(function () { if ("undefined" == typeof document) throw s( Error( "The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous." ) ); })(); var u = document.createEvent("Event"), h = !0, d = window.event, p = Object.getOwnPropertyDescriptor(window, "event"), f = Array.prototype.slice.call(arguments, 3); function m() { v.removeEventListener(C, m, !1), void 0 !== window.event && window.hasOwnProperty("event") && (window.event = d), t.apply(n, f), (h = !1); } var g = void 0, b = !1, _ = !1; function y(e) { if (((g = e.error), (b = !0), null === g && 0 === e.colno && 0 === e.lineno && (_ = !0), e.defaultPrevented && null != g && "object" == typeof g)) try { g._suppressLogging = !0; } catch (e) {} } var C = "react-" + (e || "invokeguardedcallback"); window.addEventListener("error", y), v.addEventListener(C, m, !1), u.initEvent(C, !1, !1), v.dispatchEvent(u), p && Object.defineProperty(window, "event", p), h && (b ? _ && (g = new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://fb.me/react-crossorigin-error for more information.")) : (g = new Error( "An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the \"Pause on exceptions\" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue." )), this.onError(g)), window.removeEventListener("error", y); }; } var y = _, C = !1, P = null, x = !1, T = null, S = { onError: function (e) { (C = !0), (P = e); }, }; function O(e, t, n, i, r, o, a, s, c) { (C = !1), (P = null), y.apply(S, arguments); } function E(e, t, n, i, r, o, a, s, c) { if ((O.apply(this, arguments), C)) { var l = A(); x || ((x = !0), (T = l)); } } function M() { return C; } function A() { if (C) { var e = P; return (C = !1), (P = null), e; } !(function () { throw s(Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.")); })(); } var I, D = function (e, t) { for (var n = arguments.length, i = Array(n > 2 ? n - 2 : 0), r = 2; r < n; r++) i[r - 2] = arguments[r]; if (void 0 === t) throw new Error("`warningWithoutStack(condition, format, ...args)` requires a warning message argument"); if (i.length > 8) throw new Error("warningWithoutStack() currently supports at most 8 arguments."); if (!e) { if ("undefined" != typeof console) { var o = i.map(function (e) { return "" + e; }); o.unshift("Warning: " + t), Function.prototype.apply.call(console.error, console, o); } try { var a = 0, s = "Warning: " + t.replace(/%s/g, function () { return i[a++]; }); throw new Error(s); } catch (e) {} } }, R = null, w = null, L = null; function F(e, t, n) { var i = e.type || "unknown-event"; (e.currentTarget = L(n)), E(i, t, void 0, e), (e.currentTarget = null); } function N(e, t) { return ( (function () { if (null == t) throw s(Error("accumulateInto(...): Accumulated items must not be null or undefined.")); })(), null == e ? t : Array.isArray(e) ? (Array.isArray(t) ? (e.push.apply(e, t), e) : (e.push(t), e)) : Array.isArray(t) ? [e].concat(t) : [e, t] ); } function k(e, t, n) { Array.isArray(e) ? e.forEach(t, n) : e && t.call(n, e); } I = function (e) { var t = e._dispatchListeners, n = e._dispatchInstances, i = Array.isArray(t), r = i ? t.length : t ? 1 : 0, o = Array.isArray(n), a = o ? n.length : n ? 1 : 0; (o !== i || a !== r) && D(!1, "EventPluginUtils: Invalid `event`."); }; var z = null, j = function (e) { e && ((function (e) { var t = e._dispatchListeners, n = e._dispatchInstances; if ((I(e), Array.isArray(t))) for (var i = 0; i < t.length && !e.isPropagationStopped(); i++) F(e, t[i], n[i]); else t && F(e, t, n); (e._dispatchListeners = null), (e._dispatchInstances = null); })(e), e.isPersistent() || e.constructor.release(e)); }, B = function (e) { return j(e); }; function V(e) { null !== e && (z = N(z, e)); var t = z; (z = null), t && (k(t, B), (function () { if (z) throw s(Error("processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.")); })(), (function () { if (x) { var e = T; throw ((x = !1), (T = null), e); } })()); } var G = { injectEventPluginOrder: function (e) { !(function () { if (c) throw s(Error("EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.")); })(), (c = Array.prototype.slice.call(e)), u(); }, injectEventPluginsByName: function (e) { var t = !1; for (var n in e) if (e.hasOwnProperty(n)) { var i = e[n]; (l.hasOwnProperty(n) && l[n] === i) || ((function () { if (l[n]) throw s(Error("EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + n + "`.")); })(), (l[n] = i), (t = !0)); } t && u(); }, }; function U(e, t) { var n, i = e.stateNode; if (!i) return null; var r = R(i); return r ? ((n = r[t]), (function (e, t, n) { switch (e) { case "onClick": case "onClickCapture": case "onDoubleClick": case "onDoubleClickCapture": case "onMouseDown": case "onMouseDownCapture": case "onMouseMove": case "onMouseMoveCapture": case "onMouseUp": case "onMouseUpCapture": return !(!n.disabled || ((i = t), "button" !== i && "input" !== i && "select" !== i && "textarea" !== i)); default: return !1; } var i; })(t, e.type, r) ? null : ((function () { if (n && "function" != typeof n) throw s(Error("Expected `" + t + "` listener to be a function, instead got a value of `" + typeof n + "` type.")); })(), n)) : null; } function H(e, t, n, i) { V( (function (e, t, n, i) { for (var r = null, o = 0; o < p.length; o++) { var a = p[o]; if (a) { var s = a.extractEvents(e, t, n, i); s && (r = N(r, s)); } } return r; })(e, t, n, i) ); } var W = Math.random().toString(36).slice(2), X = "__reactInternalInstance$" + W, Y = "__reactEventHandlers$" + W; function K(e, t) { t[X] = e; } function Z(e) { if (e[X]) return e[X]; for (; !e[X]; ) { if (!e.parentNode) return null; e = e.parentNode; } var t = e[X]; return 5 === t.tag || 6 === t.tag ? t : null; } function q(e) { var t = e[X]; return !t || (5 !== t.tag && 6 !== t.tag) ? null : t; } function Q(e) { if (5 === e.tag || 6 === e.tag) return e.stateNode; !(function () { throw s(Error("getNodeFromInstance: Invalid argument.")); })(); } function J(e) { return e[Y] || null; } function $(e, t) { e[Y] = t; } function ee(e) { do { e = e.return; } while (e && 5 !== e.tag); return e || null; } function te(e, t, n, i, r) { for ( var o = e && t ? (function (e, t) { for (var n = 0, i = e; i; i = ee(i)) n++; for (var r = 0, o = t; o; o = ee(o)) r++; for (; n - r > 0; ) (e = ee(e)), n--; for (; r - n > 0; ) (t = ee(t)), r--; for (var a = n; a--; ) { if (e === t || e === t.alternate) return e; (e = ee(e)), (t = ee(t)); } return null; })(e, t) : null, a = []; e && e !== o; ) { var s = e.alternate; if (null !== s && s === o) break; a.push(e), (e = ee(e)); } for (var c = []; t && t !== o; ) { var l = t.alternate; if (null !== l && l === o) break; c.push(t), (t = ee(t)); } for (var u = 0; u < a.length; u++) n(a[u], "bubbled", i); for (var h = c.length; h-- > 0; ) n(c[h], "captured", r); } function ne(e, t, n) { e || D(!1, "Dispatching inst must not be null"); var i = (function (e, t, n) { return U(e, t.dispatchConfig.phasedRegistrationNames[n]); })(e, n, t); i && ((n._dispatchListeners = N(n._dispatchListeners, i)), (n._dispatchInstances = N(n._dispatchInstances, e))); } function ie(e) { e && e.dispatchConfig.phasedRegistrationNames && (function (e, t, n) { for (var i = []; e; ) i.push(e), (e = ee(e)); var r = void 0; for (r = i.length; r-- > 0; ) t(i[r], "captured", n); for (r = 0; r < i.length; r++) t(i[r], "bubbled", n); })(e._targetInst, ne, e); } function re(e, t, n) { if (e && n && n.dispatchConfig.registrationName) { var i = U(e, n.dispatchConfig.registrationName); i && ((n._dispatchListeners = N(n._dispatchListeners, i)), (n._dispatchInstances = N(n._dispatchInstances, e))); } } function oe(e) { e && e.dispatchConfig.registrationName && re(e._targetInst, 0, e); } function ae(e) { k(e, ie); } var se = !("undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement); function ce(e, t) { var n = {}; return (n[e.toLowerCase()] = t.toLowerCase()), (n["Webkit" + e] = "webkit" + t), (n["Moz" + e] = "moz" + t), n; } var le = { animationend: ce("Animation", "AnimationEnd"), animationiteration: ce("Animation", "AnimationIteration"), animationstart: ce("Animation", "AnimationStart"), transitionend: ce("Transition", "TransitionEnd"), }, ue = {}, he = {}; function de(e) { if (ue[e]) return ue[e]; if (!le[e]) return e; var t = le[e]; for (var n in t) if (t.hasOwnProperty(n) && n in he) return (ue[e] = t[n]); return e; } se && ((he = document.createElement("div").style), "AnimationEvent" in window || (delete le.animationend.animation, delete le.animationiteration.animation, delete le.animationstart.animation), "TransitionEvent" in window || delete le.transitionend.transition); var pe = de("animationend"), fe = de("animationiteration"), me = de("animationstart"), ge = de("transitionend"), be = [ "abort", "canplay", "canplaythrough", "durationchange", "emptied", "encrypted", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "pause", "play", "playing", "progress", "ratechange", "seeked", "seeking", "stalled", "suspend", "timeupdate", "volumechange", "waiting", ], _e = null, ve = null, ye = null; function Ce() { if (ye) return ye; var e = void 0, t = ve, n = t.length, i = void 0, r = Pe(), o = r.length; for (e = 0; e < n && t[e] === r[e]; e++); var a = n - e; for (i = 1; i <= a && t[n - i] === r[o - i]; i++); var s = i > 1 ? 1 - i : void 0; return (ye = r.slice(e, s)); } function Pe() { return "value" in _e ? _e.value : _e.textContent; } var xe = { type: null, target: null, currentTarget: function () { return null; }, eventPhase: null, bubbles: null, cancelable: null, timeStamp: function (e) { return e.timeStamp || Date.now(); }, defaultPrevented: null, isTrusted: null, }; function Te() { return !0; } function Se() { return !1; } function Oe(e, t, n, i) { delete this.nativeEvent, delete this.preventDefault, delete this.stopPropagation, delete this.isDefaultPrevented, delete this.isPropagationStopped, (this.dispatchConfig = e), (this._targetInst = t), (this.nativeEvent = n); var r = this.constructor.Interface; for (var o in r) if (r.hasOwnProperty(o)) { delete this[o]; var a = r[o]; a ? (this[o] = a(n)) : "target" === o ? (this.target = i) : (this[o] = n[o]); } var s = null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue; return (this.isDefaultPrevented = s ? Te : Se), (this.isPropagationStopped = Se), this; } function Ee(e, t) { var n = "function" == typeof t; return { configurable: !0, set: function (e) { return i(n ? "setting the method" : "setting the property", "This is effectively a no-op"), e; }, get: function () { return i(n ? "accessing the method" : "accessing the property", n ? "This is a no-op function" : "This is set to null"), t; }, }; function i(t, n) { D( !1, "This synthetic event is reused for performance reasons. If you're seeing this, you're %s `%s` on a released/nullified synthetic event. %s. If you must keep the original synthetic event around, use event.persist(). See https://fb.me/react-event-pooling for more information.", t, e, n ); } } function Me(e, t, n, i) { if (this.eventPool.length) { var r = this.eventPool.pop(); return this.call(r, e, t, n, i), r; } return new this(e, t, n, i); } function Ae(e) { var t = this; !(function () { if (!(e instanceof t)) throw s(Error("Trying to release an event instance into a pool of a different type.")); })(), e.destructor(), t.eventPool.length < 10 && t.eventPool.push(e); } function Ie(e) { (e.eventPool = []), (e.getPooled = Me), (e.release = Ae); } i(Oe.prototype, { preventDefault: function () { this.defaultPrevented = !0; var e = this.nativeEvent; e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue && (e.returnValue = !1), (this.isDefaultPrevented = Te)); }, stopPropagation: function () { var e = this.nativeEvent; e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble && (e.cancelBubble = !0), (this.isPropagationStopped = Te)); }, persist: function () { this.isPersistent = Te; }, isPersistent: Se, destructor: function () { var e = this.constructor.Interface; for (var t in e) Object.defineProperty(this, t, Ee(t, e[t])); (this.dispatchConfig = null), (this._targetInst = null), (this.nativeEvent = null), (this.isDefaultPrevented = Se), (this.isPropagationStopped = Se), (this._dispatchListeners = null), (this._dispatchInstances = null), Object.defineProperty(this, "nativeEvent", Ee("nativeEvent", null)), Object.defineProperty(this, "isDefaultPrevented", Ee("isDefaultPrevented", Se)), Object.defineProperty(this, "isPropagationStopped", Ee("isPropagationStopped", Se)), Object.defineProperty( this, "preventDefault", Ee("preventDefault", function () {}) ), Object.defineProperty( this, "stopPropagation", Ee("stopPropagation", function () {}) ); }, }), (Oe.Interface = xe), (Oe.extend = function (e) { var t = this, n = function () {}; n.prototype = t.prototype; var r = new n(); function o() { return t.apply(this, arguments); } return i(r, o.prototype), (o.prototype = r), (o.prototype.constructor = o), (o.Interface = i({}, t.Interface, e)), (o.extend = t.extend), Ie(o), o; }), Ie(Oe); var De = Oe.extend({ data: null }), Re = Oe.extend({ data: null }), we = [9, 13, 27, 32], Le = se && "CompositionEvent" in window, Fe = null; se && "documentMode" in document && (Fe = document.documentMode); var Ne = se && "TextEvent" in window && !Fe, ke = se && (!Le || (Fe && Fe > 8 && Fe <= 11)), ze = String.fromCharCode(32), je = { beforeInput: { phasedRegistrationNames: { bubbled: "onBeforeInput", captured: "onBeforeInputCapture" }, dependencies: ["compositionend", "keypress", "textInput", "paste"] }, compositionEnd: { phasedRegistrationNames: { bubbled: "onCompositionEnd", captured: "onCompositionEndCapture" }, dependencies: ["blur", "compositionend", "keydown", "keypress", "keyup", "mousedown"], }, compositionStart: { phasedRegistrationNames: { bubbled: "onCompositionStart", captured: "onCompositionStartCapture" }, dependencies: ["blur", "compositionstart", "keydown", "keypress", "keyup", "mousedown"], }, compositionUpdate: { phasedRegistrationNames: { bubbled: "onCompositionUpdate", captured: "onCompositionUpdateCapture" }, dependencies: ["blur", "compositionupdate", "keydown", "keypress", "keyup", "mousedown"], }, }, Be = !1; function Ve(e, t) { switch (e) { case "keyup": return -1 !== we.indexOf(t.keyCode); case "keydown": return 229 !== t.keyCode; case "keypress": case "mousedown": case "blur": return !0; default: return !1; } } function Ge(e) { var t = e.detail; return "object" == typeof t && "data" in t ? t.data : null; } function Ue(e) { return "ko" === e.locale; } var He = !1; function We(e, t, n, i) { var r = void 0, o = void 0; if ( (Le ? (r = (function (e) { switch (e) { case "compositionstart": return je.compositionStart; case "compositionend": return je.compositionEnd; case "compositionupdate": return je.compositionUpdate; } })(e)) : He ? Ve(e, n) && (r = je.compositionEnd) : (function (e, t) { return "keydown" === e && 229 === t.keyCode; })(e, n) && (r = je.compositionStart), !r) ) return null; ke && !Ue(n) && (He || r !== je.compositionStart ? r === je.compositionEnd && He && (o = Ce()) : (He = (function (e) { return (_e = e), (ve = Pe()), !0; })(i))); var a = De.getPooled(r, t, n, i); if (o) a.data = o; else { var s = Ge(n); null !== s && (a.data = s); } return ae(a), a; } function Xe(e, t) { if (He) { if ("compositionend" === e || (!Le && Ve(e, t))) { var n = Ce(); return (_e = null), (ve = null), (ye = null), (He = !1), n; } return null; } switch (e) { case "paste": return null; case "keypress": if ( !(function (e) { return (e.ctrlKey || e.altKey || e.metaKey) && !(e.ctrlKey && e.altKey); })(t) ) { if (t.char && t.char.length > 1) return t.char; if (t.which) return String.fromCharCode(t.which); } return null; case "compositionend": return ke && !Ue(t) ? null : t.data; default: return null; } } function Ye(e, t, n, i) { var r = void 0; if ( !(r = Ne ? (function (e, t) { switch (e) { case "compositionend": return Ge(t); case "keypress": return 32 !== t.which ? null : ((Be = !0), ze); case "textInput": var n = t.data; return n === ze && Be ? null : n; default: return null; } })(e, n) : Xe(e, n)) ) return null; var o = Re.getPooled(je.beforeInput, t, n, i); return (o.data = r), ae(o), o; } var Ke = { eventTypes: je, extractEvents: function (e, t, n, i) { var r = We(e, t, n, i), o = Ye(e, t, n, i); return null === r ? o : null === o ? r : [r, o]; }, }, Ze = null, qe = null, Qe = null; function Je(e) { var t = w(e); if (t) { !(function () { if ("function" != typeof Ze) throw s(Error("setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.")); })(); var n = R(t.stateNode); Ze(t.stateNode, t.type, n); } } function $e(e) { qe ? (Qe ? Qe.push(e) : (Qe = [e])) : (qe = e); } function et() { if (qe) { var e = qe, t = Qe; if (((qe = null), (Qe = null), Je(e), t)) for (var n = 0; n < t.length; n++) Je(t[n]); } } var tt = function (e, t) { return e(t); }, nt = function (e, t, n, i) { return e(t, n, i); }, it = function () {}, rt = tt, ot = !1; function at() { (null !== qe || null !== Qe) && (it(), et()); } function st(e, t, n) { if (ot) return e(t, n); ot = !0; try { return rt(e, t, n); } finally { (ot = !1), at(); } } function ct(e, t, n, i) { var r = ot; ot = !0; try { return nt(e, t, n, i); } finally { (ot = r) || at(); } } function lt(e) { ot || it(); } var ut = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 }; function ht(e) { var t = e && e.nodeName && e.nodeName.toLowerCase(); return "input" === t ? !!ut[e.type] : "textarea" === t; } function dt(e) { var t = e.target || e.srcElement || window; return t.correspondingUseElement && (t = t.correspondingUseElement), 3 === t.nodeType ? t.parentNode : t; } function pt(e) { if (!se) return !1; var t = "on" + e, n = t in document; if (!n) { var i = document.createElement("div"); i.setAttribute(t, "return;"), (n = "function" == typeof i[t]); } return n; } function ft(e) { var t = e.type, n = e.nodeName; return n && "input" === n.toLowerCase() && ("checkbox" === t || "radio" === t); } function mt(e) { return e._valueTracker; } function gt(e) { mt(e) || (e._valueTracker = (function (e) { var t = ft(e) ? "checked" : "value", n = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), i = "" + e[t]; if (!e.hasOwnProperty(t) && void 0 !== n && "function" == typeof n.get && "function" == typeof n.set) { var r = n.get, o = n.set; return ( Object.defineProperty(e, t, { configurable: !0, get: function () { return r.call(this); }, set: function (e) { (i = "" + e), o.call(this, e); }, }), Object.defineProperty(e, t, { enumerable: n.enumerable }), { getValue: function () { return i; }, setValue: function (e) { i = "" + e; }, stopTracking: function () { !(function (e) { e._valueTracker = null; })(e), delete e[t]; }, } ); } })(e)); } function bt(e) { if (!e) return !1; var t = mt(e); if (!t) return !0; var n = t.getValue(), i = (function (e) { var t = ""; return e ? (t = ft(e) ? (e.checked ? "true" : "false") : e.value) : t; })(e); return i !== n && (t.setValue(i), !0); } var _t = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; _t.hasOwnProperty("ReactCurrentDispatcher") || (_t.ReactCurrentDispatcher = { current: null }), _t.hasOwnProperty("ReactCurrentBatchConfig") || (_t.ReactCurrentBatchConfig = { suspense: null }); var vt = /^(.*)[\\\/]/, yt = "function" == typeof Symbol && Symbol.for, Ct = yt ? Symbol.for("react.element") : 60103, Pt = yt ? Symbol.for("react.portal") : 60106, xt = yt ? Symbol.for("react.fragment") : 60107, Tt = yt ? Symbol.for("react.strict_mode") : 60108, St = yt ? Symbol.for("react.profiler") : 60114, Ot = yt ? Symbol.for("react.provider") : 60109, Et = yt ? Symbol.for("react.context") : 60110, Mt = yt ? Symbol.for("react.concurrent_mode") : 60111, At = yt ? Symbol.for("react.forward_ref") : 60112, It = yt ? Symbol.for("react.suspense") : 60113, Dt = yt ? Symbol.for("react.suspense_list") : 60120, Rt = yt ? Symbol.for("react.memo") : 60115, wt = yt ? Symbol.for("react.lazy") : 60116, Lt = (yt && Symbol.for("react.fundamental"), yt && Symbol.for("react.responder"), "function" == typeof Symbol && Symbol.iterator); function Ft(e) { if (null === e || "object" != typeof e) return null; var t = (Lt && e[Lt]) || e["@@iterator"]; return "function" == typeof t ? t : null; } function Nt(e) { return 1 === e._status ? e._result : null; } function kt(e) { if (null == e) return null; if (("number" == typeof e.tag && D(!1, "Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."), "function" == typeof e)) return e.displayName || e.name || null; if ("string" == typeof e) return e; switch (e) { case xt: return "Fragment"; case Pt: return "Portal"; case St: return "Profiler"; case Tt: return "StrictMode"; case It: return "Suspense"; case Dt: return "SuspenseList"; } if ("object" == typeof e) switch (e.$$typeof) { case Et: return "Context.Consumer"; case Ot: return "Context.Provider"; case At: return (n = e), (i = e.render), (r = "ForwardRef"), (o = i.displayName || i.name || ""), n.displayName || ("" !== o ? r + "(" + o + ")" : r); case Rt: return kt(e.type); case wt: var t = Nt(e); if (t) return kt(t); } var n, i, r, o; return null; } var zt = _t.ReactDebugCurrentFrame; function jt(e) { switch (e.tag) { case 3: case 4: case 6: case 7: case 10: case 9: return ""; default: var t = e._debugOwner, n = e._debugSource, i = kt(e.type), r = null; return ( t && (r = kt(t.type)), (function (e, t, n) { var i = ""; if (t) { var r = t.fileName, o = r.replace(vt, ""); if (/^index\./.test(o)) { var a = r.match(vt); if (a) { var s = a[1]; s && (o = s.replace(vt, "") + "/" + o); } } i = " (at " + o + ":" + t.lineNumber + ")"; } else n && (i = " (created by " + n + ")"); return "\n in " + (e || "Unknown") + i; })(i, n, r) ); } } function Bt(e) { var t = "", n = e; do { (t += jt(n)), (n = n.return); } while (n); return t; } var Vt = null, Gt = null; function Ut() { if (null === Vt) return null; var e = Vt._debugOwner; return null != e ? kt(e.type) : null; } function Ht() { return null === Vt ? "" : Bt(Vt); } function Wt() { (zt.getCurrentStack = null), (Vt = null), (Gt = null); } function Xt(e) { (zt.getCurrentStack = Ht), (Vt = e), (Gt = null); } function Yt(e) { Gt = e; } var Kt = function (e, t) { if (!e) { for (var n = _t.ReactDebugCurrentFrame, i = n.getStackAddendum(), r = arguments.length, o = Array(r > 2 ? r - 2 : 0), a = 2; a < r; a++) o[a - 2] = arguments[a]; D.apply(void 0, [!1, t + "%s"].concat(o, [i])); } }, Zt = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD", qt = Zt + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040", Qt = new RegExp("^[" + Zt + "][" + qt + "]*$"), Jt = Object.prototype.hasOwnProperty, $t = {}, en = {}; function tn(e) { return !!Jt.call(en, e) || (!Jt.call($t, e) && (Qt.test(e) ? ((en[e] = !0), !0) : (($t[e] = !0), Kt(!1, "Invalid attribute name: `%s`", e), !1))); } function nn(e, t, n) { return null !== t ? 0 === t.type : !n && e.length > 2 && ("o" === e[0] || "O" === e[0]) && ("n" === e[1] || "N" === e[1]); } function rn(e, t, n, i) { if (null !== n && 0 === n.type) return !1; switch (typeof t) { case "function": case "symbol": return !0; case "boolean": if (i) return !1; if (null !== n) return !n.acceptsBooleans; var r = e.toLowerCase().slice(0, 5); return "data-" !== r && "aria-" !== r; default: return !1; } } function on(e, t, n, i) { if (null == t) return !0; if (rn(e, t, n, i)) return !0; if (i) return !1; if (null !== n) switch (n.type) { case 3: return !t; case 4: return !1 === t; case 5: return isNaN(t); case 6: return isNaN(t) || t < 1; } return !1; } function an(e) { return cn.hasOwnProperty(e) ? cn[e] : null; } function sn(e, t, n, i, r, o) { (this.acceptsBooleans = 2 === t || 3 === t || 4 === t), (this.attributeName = i), (this.attributeNamespace = r), (this.mustUseProperty = n), (this.propertyName = e), (this.type = t), (this.sanitizeURL = o); } var cn = {}; ["children", "dangerouslySetInnerHTML", "defaultValue", "defaultChecked", "innerHTML", "suppressContentEditableWarning", "suppressHydrationWarning", "style"].forEach(function (e) { cn[e] = new sn(e, 0, !1, e, null, !1); }), [ ["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"], ].forEach(function (e) { var t = e[0], n = e[1]; cn[t] = new sn(t, 1, !1, n, null, !1); }), ["contentEditable", "draggable", "spellCheck", "value"].forEach(function (e) { cn[e] = new sn(e, 2, !1, e.toLowerCase(), null, !1); }), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function (e) { cn[e] = new sn(e, 2, !1, e, null, !1); }), [ "allowFullScreen", "async", "autoFocus", "autoPlay", "controls", "default", "defer", "disabled", "disablePictureInPicture", "formNoValidate", "hidden", "loop", "noModule", "noValidate", "open", "playsInline", "readOnly", "required", "reversed", "scoped", "seamless", "itemScope", ].forEach(function (e) { cn[e] = new sn(e, 3, !1, e.toLowerCase(), null, !1); }), ["checked", "multiple", "muted", "selected"].forEach(function (e) { cn[e] = new sn(e, 3, !0, e, null, !1); }), ["capture", "download"].forEach(function (e) { cn[e] = new sn(e, 4, !1, e, null, !1); }), ["cols", "rows", "size", "span"].forEach(function (e) { cn[e] = new sn(e, 6, !1, e, null, !1); }), ["rowSpan", "start"].forEach(function (e) { cn[e] = new sn(e, 5, !1, e.toLowerCase(), null, !1); }); var ln = /[\-\:]([a-z])/g, un = function (e) { return e[1].toUpperCase(); }; [ "accent-height", "alignment-baseline", "arabic-form", "baseline-shift", "cap-height", "clip-path", "clip-rule", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "dominant-baseline", "enable-background", "fill-opacity", "fill-rule", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "glyph-name", "glyph-orientation-horizontal", "glyph-orientation-vertical", "horiz-adv-x", "horiz-origin-x", "image-rendering", "letter-spacing", "lighting-color", "marker-end", "marker-mid", "marker-start", "overline-position", "overline-thickness", "paint-order", "panose-1", "pointer-events", "rendering-intent", "shape-rendering", "stop-color", "stop-opacity", "strikethrough-position", "strikethrough-thickness", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-anchor", "text-decoration", "text-rendering", "underline-position", "underline-thickness", "unicode-bidi", "unicode-range", "units-per-em", "v-alphabetic", "v-hanging", "v-ideographic", "v-mathematical", "vector-effect", "vert-adv-y", "vert-origin-x", "vert-origin-y", "word-spacing", "writing-mode", "xmlns:xlink", "x-height", ].forEach(function (e) { var t = e.replace(ln, un); cn[t] = new sn(t, 1, !1, e, null, !1); }), ["xlink:actuate", "xlink:arcrole", "xlink:role", "xlink:show", "xlink:title", "xlink:type"].forEach(function (e) { var t = e.replace(ln, un); cn[t] = new sn(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1); }), ["xml:base", "xml:lang", "xml:space"].forEach(function (e) { var t = e.replace(ln, un); cn[t] = new sn(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1); }), ["tabIndex", "crossOrigin"].forEach(function (e) { cn[e] = new sn(e, 1, !1, e.toLowerCase(), null, !1); }), (cn.xlinkHref = new sn("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0)), ["src", "href", "action", "formAction"].forEach(function (e) { cn[e] = new sn(e, 1, !1, e.toLowerCase(), null, !0); }), _t.ReactDebugCurrentFrame; var hn = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i, dn = !1; function pn(e) { !dn && hn.test(e) && ((dn = !0), Kt( !1, "A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.", JSON.stringify(e) )); } function fn(e, t, n, i) { if (i.mustUseProperty) return e[i.propertyName]; i.sanitizeURL && pn("" + n); var r = i.attributeName, o = null; if (4 === i.type) { if (e.hasAttribute(r)) { var a = e.getAttribute(r); return "" === a || (on(t, n, i, !1) ? a : a === "" + n ? n : a); } } else if (e.hasAttribute(r)) { if (on(t, n, i, !1)) return e.getAttribute(r); if (3 === i.type) return n; o = e.getAttribute(r); } return on(t, n, i, !1) ? (null === o ? n : o) : o === "" + n ? n : o; } function mn(e, t, n) { if (tn(t)) { if (!e.hasAttribute(t)) return void 0 === n ? void 0 : null; var i = e.getAttribute(t); return i === "" + n ? n : i; } } function gn(e, t, n, i) { var r = an(t); if (!nn(t, r, i)) if ((on(t, n, r, i) && (n = null), i || null === r)) { if (tn(t)) { var o = t; null === n ? e.removeAttribute(o) : e.setAttribute(o, "" + n); } } else if (r.mustUseProperty) { var a = r.propertyName; if (null === n) { var s = r.type; e[a] = 3 !== s && ""; } else e[a] = n; } else { var c = r.attributeName, l = r.attributeNamespace; if (null === n) e.removeAttribute(c); else { var u = r.type, h = void 0; 3 === u || (4 === u && !0 === n) ? (h = "") : ((h = "" + n), r.sanitizeURL && pn(h)), l ? e.setAttributeNS(l, c, h) : e.setAttribute(c, h); } } } function bn(e) { return "" + e; } function _n(e) { switch (typeof e) { case "boolean": case "number": case "object": case "string": case "undefined": return e; default: return ""; } } var vn, yn = { checkPropTypes: null }; vn = _t.ReactDebugCurrentFrame; var Cn = { button: !0, checkbox: !0, image: !0, hidden: !0, radio: !0, reset: !0, submit: !0 }, Pn = { value: function (e, t, n) { return Cn[e.type] || e.onChange || e.readOnly || e.disabled || null == e[t] ? null : new Error( "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`." ); }, checked: function (e, t, n) { return e.onChange || e.readOnly || e.disabled || null == e[t] ? null : new Error( "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`." ); }, }; yn.checkPropTypes = function (e, t) { r(Pn, t, "prop", e, vn.getStackAddendum); }; var xn = !1, Tn = !1, Sn = !1, On = !1; function En(e) { return "checkbox" === e.type || "radio" === e.type ? null != e.checked : null != e.value; } function Mn(e, t) { var n = e, r = t.checked; return i({}, t, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != r ? r : n._wrapperState.initialChecked }); } function An(e, t) { yn.checkPropTypes("input", t), void 0 === t.checked || void 0 === t.defaultChecked || Tn || (Kt( !1, "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://fb.me/react-controlled-components", Ut() || "A component", t.type ), (Tn = !0)), void 0 === t.value || void 0 === t.defaultValue || xn || (Kt( !1, "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://fb.me/react-controlled-components", Ut() || "A component", t.type ), (xn = !0)); var n = e, i = null == t.defaultValue ? "" : t.defaultValue; n._wrapperState = { initialChecked: null != t.checked ? t.checked : t.defaultChecked, initialValue: _n(null != t.value ? t.value : i), controlled: En(t) }; } function In(e, t) { var n = e, i = t.checked; null != i && gn(n, "checked", i, !1); } function Dn(e, t) { var n = e, i = En(t); n._wrapperState.controlled || !i || On || (Kt( !1, "A component is changing an uncontrolled input of type %s to be controlled. Input elements should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://fb.me/react-controlled-components", t.type ), (On = !0)), !n._wrapperState.controlled || i || Sn || (Kt( !1, "A component is changing a controlled input of type %s to be uncontrolled. Input elements should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://fb.me/react-controlled-components", t.type ), (Sn = !0)), In(e, t); var r = _n(t.value), o = t.type; if (null != r) "number" === o ? ((0 === r && "" === n.value) || n.value != r) && (n.value = bn(r)) : n.value !== bn(r) && (n.value = bn(r)); else if ("submit" === o || "reset" === o) return void n.removeAttribute("value"); t.hasOwnProperty("value") ? Ln(n, t.type, r) : t.hasOwnProperty("defaultValue") && Ln(n, t.type, _n(t.defaultValue)), null == t.checked && null != t.defaultChecked && (n.defaultChecked = !!t.defaultChecked); } function Rn(e, t, n) { var i = e; if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) { var r = t.type, o = "submit" === r || "reset" === r; if (o && (void 0 === t.value || null === t.value)) return; var a = bn(i._wrapperState.initialValue); n || (a !== i.value && (i.value = a)), (i.defaultValue = a); } var s = i.name; "" !== s && (i.name = ""), (i.defaultChecked = !i.defaultChecked), (i.defaultChecked = !!i._wrapperState.initialChecked), "" !== s && (i.name = s); } function wn(e, t) { var n = e; Dn(n, t), (function (e, t) { var n = t.name; if ("radio" === t.type && null != n) { for (var i = e; i.parentNode; ) i = i.parentNode; for (var r = i.querySelectorAll("input[name=" + JSON.stringify("" + n) + '][type="radio"]'), o = 0; o < r.length; o++) { var a = r[o]; if (a !== e && a.form === e.form) { var c = J(a); !(function () { if (!c) throw s(Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.")); })(), bt(a), Dn(a, c); } } } })(n, t); } function Ln(e, t, n) { ("number" === t && e.ownerDocument.activeElement === e) || (null == n ? (e.defaultValue = bn(e._wrapperState.initialValue)) : e.defaultValue !== bn(n) && (e.defaultValue = bn(n))); } var Fn = { change: { phasedRegistrationNames: { bubbled: "onChange", captured: "onChangeCapture" }, dependencies: ["blur", "change", "click", "focus", "input", "keydown", "keyup", "selectionchange"] } }; function Nn(e, t, n) { var i = Oe.getPooled(Fn.change, e, t, n); return (i.type = "change"), $e(n), ae(i), i; } var kn = null, zn = null; function jn(e) { !(function (e, t) { if (ot) return e(t); ot = !0; try { tt(e, t); } finally { (ot = !1), at(); } })(Bn, Nn(zn, e, dt(e))); } function Bn(e) { V(e); } function Vn(e) { if (bt(Q(e))) return e; } function Gn(e, t) { if ("change" === e) return t; } var Un = !1; function Hn() { kn && (kn.detachEvent("onpropertychange", Wn), (kn = null), (zn = null)); } function Wn(e) { "value" === e.propertyName && Vn(zn) && jn(e); } function Xn(e, t, n) { "focus" === e ? (Hn(), (function (e, t) { (zn = t), (kn = e).attachEvent("onpropertychange", Wn); })(t, n)) : "blur" === e && Hn(); } function Yn(e, t) { if ("selectionchange" === e || "keyup" === e || "keydown" === e) return Vn(zn); } function Kn(e, t) { if ("click" === e) return Vn(t); } function Zn(e, t) { if ("input" === e || "change" === e) return Vn(t); } se && (Un = pt("input") && (!document.documentMode || document.documentMode > 9)); var qn = { eventTypes: Fn, _isInputEventSupported: Un, extractEvents: function (e, t, n, i) { var r, o, a, s, c = t ? Q(t) : window, l = void 0, u = void 0; if ( ("select" === (o = (r = c).nodeName && r.nodeName.toLowerCase()) || ("input" === o && "file" === r.type) ? (l = Gn) : ht(c) ? Un ? (l = Zn) : ((l = Yn), (u = Xn)) : (function (e) { var t = e.nodeName; return t && "input" === t.toLowerCase() && ("checkbox" === e.type || "radio" === e.type); })(c) && (l = Kn), l) ) { var h = l(e, t); if (h) return Nn(h, n, i); } u && u(e, c, t), "blur" === e && (s = (a = c)._wrapperState) && s.controlled && "number" === a.type && Ln(a, "number", a.value); }, }, Qn = Oe.extend({ view: null, detail: null }), Jn = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" }; function $n(e) { var t = this.nativeEvent; if (t.getModifierState) return t.getModifierState(e); var n = Jn[e]; return !!n && !!t[n]; } function ei(e) { return $n; } var ti = 0, ni = 0, ii = !1, ri = !1, oi = Qn.extend({ screenX: null, screenY: null, clientX: null, clientY: null, pageX: null, pageY: null, ctrlKey: null, shiftKey: null, altKey: null, metaKey: null, getModifierState: ei, button: null, buttons: null, relatedTarget: function (e) { return e.relatedTarget || (e.fromElement === e.srcElement ? e.toElement : e.fromElement); }, movementX: function (e) { if ("movementX" in e) return e.movementX; var t = ti; return (ti = e.screenX), ii ? ("mousemove" === e.type ? e.screenX - t : 0) : ((ii = !0), 0); }, movementY: function (e) { if ("movementY" in e) return e.movementY; var t = ni; return (ni = e.screenY), ri ? ("mousemove" === e.type ? e.screenY - t : 0) : ((ri = !0), 0); }, }), ai = oi.extend({ pointerId: null, width: null, height: null, pressure: null, tangentialPressure: null, tiltX: null, tiltY: null, twist: null, pointerType: null, isPrimary: null }), si = { mouseEnter: { registrationName: "onMouseEnter", dependencies: ["mouseout", "mouseover"] }, mouseLeave: { registrationName: "onMouseLeave", dependencies: ["mouseout", "mouseover"] }, pointerEnter: { registrationName: "onPointerEnter", dependencies: ["pointerout", "pointerover"] }, pointerLeave: { registrationName: "onPointerLeave", dependencies: ["pointerout", "pointerover"] }, }, ci = { eventTypes: si, extractEvents: function (e, t, n, i) { var r = "mouseover" === e || "pointerover" === e, o = "mouseout" === e || "pointerout" === e; if (r && (n.relatedTarget || n.fromElement)) return null; if (!o && !r) return null; var a = void 0; if (i.window === i) a = i; else { var s = i.ownerDocument; a = s ? s.defaultView || s.parentWindow : window; } var c = void 0, l = void 0; if (o) { c = t; var u = n.relatedTarget || n.toElement; l = u ? Z(u) : null; } else (c = null), (l = t); if (c === l) return null; var h = void 0, d = void 0, p = void 0, f = void 0; "mouseout" === e || "mouseover" === e ? ((h = oi), (d = si.mouseLeave), (p = si.mouseEnter), (f = "mouse")) : ("pointerout" !== e && "pointerover" !== e) || ((h = ai), (d = si.pointerLeave), (p = si.pointerEnter), (f = "pointer")); var m = null == c ? a : Q(c), g = null == l ? a : Q(l), b = h.getPooled(d, c, n, i); (b.type = f + "leave"), (b.target = m), (b.relatedTarget = g); var _ = h.getPooled(p, l, n, i); return ( (_.type = f + "enter"), (_.target = g), (_.relatedTarget = m), (function (e, t, n, i) { te(n, i, re, e, t); })(b, _, c, l), [b, _] ); }, }; function li(e, t) { return (e === t && (0 !== e || 1 / e == 1 / t)) || (e != e && t != t); } var ui = Object.prototype.hasOwnProperty; function hi(e, t) { if (li(e, t)) return !0; if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1; var n = Object.keys(e), i = Object.keys(t); if (n.length !== i.length) return !1; for (var r = 0; r < n.length; r++) if (!ui.call(t, n[r]) || !li(e[n[r]], t[n[r]])) return !1; return !0; } function di(e, t) { var n = { responder: e, props: t }; return Object.freeze(n), n; } function pi(e) { return e._reactInternalFiber; } o.unstable_UserBlockingPriority, o.unstable_runWithPriority, new Map(), new Map(), new Set(), new Map(); var fi = _t.ReactCurrentOwner; function mi(e) { var t = e; if (e.alternate) for (; t.return; ) t = t.return; else { if (0 != (2 & t.effectTag)) return 1; for (; t.return; ) if (0 != (2 & (t = t.return).effectTag)) return 1; } return 3 === t.tag ? 2 : 3; } function gi(e) { return 2 === mi(e); } function bi(e) { !(function () { if (2 !== mi(e)) throw s(Error("Unable to find node on an unmounted component.")); })(); } function _i(e) { var t = e.alternate; if (!t) { var n = mi(e); return ( (function () { if (3 === n) throw s(Error("Unable to find node on an unmounted component.")); })(), 1 === n ? null : e ); } for (var i = e, r = t; ; ) { var o = i.return; if (null === o) break; var a = o.alternate; if (null === a) { var c = o.return; if (null !== c) { i = r = c; continue; } break; } if (o.child === a.child) { for (var l = o.child; l; ) { if (l === i) return bi(o), e; if (l === r) return bi(o), t; l = l.sibling; } !(function () { throw s(Error("Unable to find node on an unmounted component.")); })(); } if (i.return !== r.return) (i = o), (r = a); else { for (var u = !1, h = o.child; h; ) { if (h === i) { (u = !0), (i = o), (r = a); break; } if (h === r) { (u = !0), (r = o), (i = a); break; } h = h.sibling; } if (!u) { for (h = a.child; h; ) { if (h === i) { (u = !0), (i = a), (r = o); break; } if (h === r) { (u = !0), (r = a), (i = o); break; } h = h.sibling; } !(function () { if (!u) throw s(Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")); })(); } } !(function () { if (i.alternate !== r) throw s(Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")); })(); } return ( (function () { if (3 !== i.tag) throw s(Error("Unable to find node on an unmounted component.")); })(), i.stateNode.current === i ? e : t ); } function vi(e) { var t = _i(e); if (!t) return null; for (var n = t; ; ) { if (5 === n.tag || 6 === n.tag) return n; if (n.child) (n.child.return = n), (n = n.child); else { if (n === t) return null; for (; !n.sibling; ) { if (!n.return || n.return === t) return null; n = n.return; } (n.sibling.return = n.return), (n = n.sibling); } } return null; } function yi(e, t, n) { e.addEventListener(t, n, !0); } var Ci = Oe.extend({ animationName: null, elapsedTime: null, pseudoElement: null }), Pi = Oe.extend({ clipboardData: function (e) { return "clipboardData" in e ? e.clipboardData : window.clipboardData; }, }), xi = Qn.extend({ relatedTarget: null }); function Ti(e) { var t = void 0, n = e.keyCode; return "charCode" in e ? 0 === (t = e.charCode) && 13 === n && (t = 13) : (t = n), 10 === t && (t = 13), t >= 32 || 13 === t ? t : 0; } for ( var Si = { Esc: "Escape", Spacebar: " ", Left: "ArrowLeft", Up: "ArrowUp", Right: "ArrowRight", Down: "ArrowDown", Del: "Delete", Win: "OS", Menu: "ContextMenu", Apps: "ContextMenu", Scroll: "ScrollLock", MozPrintableKey: "Unidentified", }, Oi = { 8: "Backspace", 9: "Tab", 12: "Clear", 13: "Enter", 16: "Shift", 17: "Control", 18: "Alt", 19: "Pause", 20: "CapsLock", 27: "Escape", 32: " ", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "ArrowLeft", 38: "ArrowUp", 39: "ArrowRight", 40: "ArrowDown", 45: "Insert", 46: "Delete", 112: "F1", 113: "F2", 114: "F3", 115: "F4", 116: "F5", 117: "F6", 118: "F7", 119: "F8", 120: "F9", 121: "F10", 122: "F11", 123: "F12", 144: "NumLock", 145: "ScrollLock", 224: "Meta", }, Ei = Qn.extend({ key: function (e) { if (e.key) { var t = Si[e.key] || e.key; if ("Unidentified" !== t) return t; } if ("keypress" === e.type) { var n = Ti(e); return 13 === n ? "Enter" : String.fromCharCode(n); } return "keydown" === e.type || "keyup" === e.type ? Oi[e.keyCode] || "Unidentified" : ""; }, location: null, ctrlKey: null, shiftKey: null, altKey: null, metaKey: null, repeat: null, locale: null, getModifierState: ei, charCode: function (e) { return "keypress" === e.type ? Ti(e) : 0; }, keyCode: function (e) { return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0; }, which: function (e) { return "keypress" === e.type ? Ti(e) : "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0; }, }), Mi = oi.extend({ dataTransfer: null }), Ai = Qn.extend({ touches: null, targetTouches: null, changedTouches: null, altKey: null, metaKey: null, ctrlKey: null, shiftKey: null, getModifierState: ei }), Ii = Oe.extend({ propertyName: null, elapsedTime: null, pseudoElement: null }), Di = oi.extend({ deltaX: function (e) { return ("deltaX" in e) ? e.deltaX : ("wheelDeltaX" in e) ? -e.wheelDeltaX : 0; }, deltaY: function (e) { return ("deltaY" in e) ? e.deltaY : ("wheelDeltaY" in e) ? -e.wheelDeltaY : ("wheelDelta" in e) ? -e.wheelDelta : 0; }, deltaZ: null, deltaMode: null, }), Ri = [ ["blur", "blur", 0], ["cancel", "cancel", 0], ["click", "click", 0], ["close", "close", 0], ["contextmenu", "contextMenu", 0], ["copy", "copy", 0], ["cut", "cut", 0], ["auxclick", "auxClick", 0], ["dblclick", "doubleClick", 0], ["dragend", "dragEnd", 0], ["dragstart", "dragStart", 0], ["drop", "drop", 0], ["focus", "focus", 0], ["input", "input", 0], ["invalid", "invalid", 0], ["keydown", "keyDown", 0], ["keypress", "keyPress", 0], ["keyup", "keyUp", 0], ["mousedown", "mouseDown", 0], ["mouseup", "mouseUp", 0], ["paste", "paste", 0], ["pause", "pause", 0], ["play", "play", 0], ["pointercancel", "pointerCancel", 0], ["pointerdown", "pointerDown", 0], ["pointerup", "pointerUp", 0], ["ratechange", "rateChange", 0], ["reset", "reset", 0], ["seeked", "seeked", 0], ["submit", "submit", 0], ["touchcancel", "touchCancel", 0], ["touchend", "touchEnd", 0], ["touchstart", "touchStart", 0], ["volumechange", "volumeChange", 0], ["drag", "drag", 1], ["dragenter", "dragEnter", 1], ["dragexit", "dragExit", 1], ["dragleave", "dragLeave", 1], ["dragover", "dragOver", 1], ["mousemove", "mouseMove", 1], ["mouseout", "mouseOut", 1], ["mouseover", "mouseOver", 1], ["pointermove", "pointerMove", 1], ["pointerout", "pointerOut", 1], ["pointerover", "pointerOver", 1], ["scroll", "scroll", 1], ["toggle", "toggle", 1], ["touchmove", "touchMove", 1], ["wheel", "wheel", 1], ["abort", "abort", 2], [pe, "animationEnd", 2], [fe, "animationIteration", 2], [me, "animationStart", 2], ["canplay", "canPlay", 2], ["canplaythrough", "canPlayThrough", 2], ["durationchange", "durationChange", 2], ["emptied", "emptied", 2], ["encrypted", "encrypted", 2], ["ended", "ended", 2], ["error", "error", 2], ["gotpointercapture", "gotPointerCapture", 2], ["load", "load", 2], ["loadeddata", "loadedData", 2], ["loadedmetadata", "loadedMetadata", 2], ["loadstart", "loadStart", 2], ["lostpointercapture", "lostPointerCapture", 2], ["playing", "playing", 2], ["progress", "progress", 2], ["seeking", "seeking", 2], ["stalled", "stalled", 2], ["suspend", "suspend", 2], ["timeupdate", "timeUpdate", 2], [ge, "transitionEnd", 2], ["waiting", "waiting", 2], ], wi = {}, Li = {}, Fi = 0; Fi < Ri.length; Fi++ ) { var Ni = Ri[Fi], ki = Ni[0], zi = Ni[1], ji = Ni[2], Bi = "on" + (zi[0].toUpperCase() + zi.slice(1)), Vi = { phasedRegistrationNames: { bubbled: Bi, captured: Bi + "Capture" }, dependencies: [ki], eventPriority: ji }; (wi[zi] = Vi), (Li[ki] = Vi); } var Gi = [ "abort", "cancel", "canplay", "canplaythrough", "close", "durationchange", "emptied", "encrypted", "ended", "error", "input", "invalid", "load", "loadeddata", "loadedmetadata", "loadstart", "pause", "play", "playing", "progress", "ratechange", "reset", "seeked", "seeking", "stalled", "submit", "suspend", "timeupdate", "toggle", "volumechange", "waiting", ], Ui = { eventTypes: wi, getEventPriority: function (e) { var t = Li[e]; return void 0 !== t ? t.eventPriority : 2; }, extractEvents: function (e, t, n, i) { var r = Li[e]; if (!r) return null; var o = void 0; switch (e) { case "keypress": if (0 === Ti(n)) return null; case "keydown": case "keyup": o = Ei; break; case "blur": case "focus": o = xi; break; case "click": if (2 === n.button) return null; case "auxclick": case "dblclick": case "mousedown": case "mousemove": case "mouseup": case "mouseout": case "mouseover": case "contextmenu": o = oi; break; case "drag": case "dragend": case "dragenter": case "dragexit": case "dragleave": case "dragover": case "dragstart": case "drop": o = Mi; break; case "touchcancel": case "touchend": case "touchmove": case "touchstart": o = Ai; break; case pe: case fe: case me: o = Ci; break; case ge: o = Ii; break; case "scroll": o = Qn; break; case "wheel": o = Di; break; case "copy": case "cut": case "paste": o = Pi; break; case "gotpointercapture": case "lostpointercapture": case "pointercancel": case "pointerdown": case "pointermove": case "pointerout": case "pointerover": case "pointerup": o = ai; break; default: -1 === Gi.indexOf(e) && D(!1, "SimpleEventPlugin: Unhandled event type, `%s`. This warning is likely caused by a bug in React. Please file an issue.", e), (o = Oe); } var a = o.getPooled(r, t, n, i); return ae(a), a; }, }, Hi = (o.unstable_UserBlockingPriority, o.unstable_runWithPriority, Ui.getEventPriority), Wi = []; function Xi(e) { for (; e.return; ) e = e.return; return 3 !== e.tag ? null : e.stateNode.containerInfo; } function Yi(e) { var t = e.targetInst, n = t; do { if (!n) { e.ancestors.push(n); break; } var i = Xi(n); if (!i) break; e.ancestors.push(n), (n = Z(i)); } while (n); for (var r = 0; r < e.ancestors.length; r++) { t = e.ancestors[r]; var o = dt(e.nativeEvent); H(e.topLevelType, t, e.nativeEvent, o); } } var Ki = !0; function Zi(e) { Ki = !!e; } function qi(e, t) { Ji(t, e, !1); } function Qi(e, t) { Ji(t, e, !0); } function Ji(e, t, n) { var i = void 0; switch (Hi(t)) { case 0: i = $i.bind(null, t, 1); break; case 1: i = er.bind(null, t, 1); break; case 2: default: i = nr.bind(null, t, 1); } var r = t; n ? yi(e, r, i) : (function (e, t, n) { e.addEventListener(t, n, !1); })(e, r, i); } function $i(e, t, n) { lt(n.timeStamp), ct(nr, e, t, n); } function er(e, t, n) { nr(e, 0, n); } function tr(e, t, n, i) { var r, o = (function (e, t, n) { if (Wi.length) { var i = Wi.pop(); return (i.topLevelType = e), (i.nativeEvent = t), (i.targetInst = n), i; } return { topLevelType: e, nativeEvent: t, targetInst: n, ancestors: [] }; })(e, n, i); try { st(Yi, o); } finally { ((r = o).topLevelType = null), (r.nativeEvent = null), (r.targetInst = null), (r.ancestors.length = 0), Wi.length < 10 && Wi.push(r); } } function nr(e, t, n) { if (Ki) { var i = dt(n), r = Z(i); null === r || "number" != typeof r.tag || gi(r) || (r = null), tr(e, 0, n, r); } } var ir = new ("function" == typeof WeakMap ? WeakMap : Map)(); function rr(e) { var t = ir.get(e); return void 0 === t && ((t = new Set()), ir.set(e, t)), t; } function or(e) { if (void 0 === (e = e || ("undefined" != typeof document ? document : void 0))) return null; try { return e.activeElement || e.body; } catch (t) { return e.body; } } function ar(e) { for (; e && e.firstChild; ) e = e.firstChild; return e; } function sr(e) { for (; e; ) { if (e.nextSibling) return e.nextSibling; e = e.parentNode; } } function cr(e, t) { for (var n = ar(e), i = 0, r = 0; n; ) { if (3 === n.nodeType) { if (((r = i + n.textContent.length), i <= t && r >= t)) return { node: n, offset: t - i }; i = r; } n = ar(sr(n)); } } function lr(e) { var t = e.ownerDocument, n = (t && t.defaultView) || window, i = n.getSelection && n.getSelection(); if (!i || 0 === i.rangeCount) return null; var r = i.anchorNode, o = i.anchorOffset, a = i.focusNode, s = i.focusOffset; try { r.nodeType, a.nodeType; } catch (e) { return null; } return (function (e, t, n, i, r) { var o = 0, a = -1, s = -1, c = 0, l = 0, u = e, h = null; e: for (;;) { for ( var d = null; u !== t || (0 !== n && 3 !== u.nodeType) || (a = o + n), u !== i || (0 !== r && 3 !== u.nodeType) || (s = o + r), 3 === u.nodeType && (o += u.nodeValue.length), null !== (d = u.firstChild); ) (h = u), (u = d); for (;;) { if (u === e) break e; if ((h === t && ++c === n && (a = o), h === i && ++l === r && (s = o), null !== (d = u.nextSibling))) break; h = (u = h).parentNode; } u = d; } return -1 === a || -1 === s ? null : { start: a, end: s }; })(e, r, o, a, s); } function ur(e) { return e && 3 === e.nodeType; } function hr(e) { return ( e && e.ownerDocument && (function e(t, n) { return !(!t || !n) && (t === n || (!ur(t) && (ur(n) ? e(t, n.parentNode) : "contains" in t ? t.contains(n) : !!t.compareDocumentPosition && !!(16 & t.compareDocumentPosition(n))))); })(e.ownerDocument.documentElement, e) ); } function dr(e) { try { return "string" == typeof e.contentWindow.location.href; } catch (e) { return !1; } } function pr() { for (var e = window, t = or(); t instanceof e.HTMLIFrameElement; ) { if (!dr(t)) return t; t = or((e = t.contentWindow).document); } return t; } function fr(e) { var t = e && e.nodeName && e.nodeName.toLowerCase(); return t && (("input" === t && ("text" === e.type || "search" === e.type || "tel" === e.type || "url" === e.type || "password" === e.type)) || "textarea" === t || "true" === e.contentEditable); } function mr(e) { var t, n, i, r, o = pr(), a = e.focusedElem, s = e.selectionRange; if (o !== a && hr(a)) { null !== s && fr(a) && ((t = a), (i = (n = s).start), void 0 === (r = n.end) && (r = i), "selectionStart" in t ? ((t.selectionStart = i), (t.selectionEnd = Math.min(r, t.value.length))) : (function (e, t) { var n = e.ownerDocument || document, i = (n && n.defaultView) || window; if (i.getSelection) { var r = i.getSelection(), o = e.textContent.length, a = Math.min(t.start, o), s = void 0 === t.end ? a : Math.min(t.end, o); if (!r.extend && a > s) { var c = s; (s = a), (a = c); } var l = cr(e, a), u = cr(e, s); if (l && u) { if (1 === r.rangeCount && r.anchorNode === l.node && r.anchorOffset === l.offset && r.focusNode === u.node && r.focusOffset === u.offset) return; var h = n.createRange(); h.setStart(l.node, l.offset), r.removeAllRanges(), a > s ? (r.addRange(h), r.extend(u.node, u.offset)) : (h.setEnd(u.node, u.offset), r.addRange(h)); } } })(t, n)); for (var c = [], l = a; (l = l.parentNode); ) 1 === l.nodeType && c.push({ element: l, left: l.scrollLeft, top: l.scrollTop }); "function" == typeof a.focus && a.focus(); for (var u = 0; u < c.length; u++) { var h = c[u]; (h.element.scrollLeft = h.left), (h.element.scrollTop = h.top); } } } var gr = se && "documentMode" in document && document.documentMode <= 11, br = { select: { phasedRegistrationNames: { bubbled: "onSelect", captured: "onSelectCapture" }, dependencies: ["blur", "contextmenu", "dragend", "focus", "keydown", "keyup", "mousedown", "mouseup", "selectionchange"], }, }, _r = null, vr = null, yr = null, Cr = !1; function Pr(e) { return e.window === e ? e.document : 9 === e.nodeType ? e : e.ownerDocument; } function xr(e, t) { var n = Pr(t); if (Cr || null == _r || _r !== or(n)) return null; var i = (function (e) { if ("selectionStart" in e && fr(e)) return { start: e.selectionStart, end: e.selectionEnd }; var t = ((e.ownerDocument && e.ownerDocument.defaultView) || window).getSelection(); return { anchorNode: t.anchorNode, anchorOffset: t.anchorOffset, focusNode: t.focusNode, focusOffset: t.focusOffset }; })(_r); if (!yr || !hi(yr, i)) { yr = i; var r = Oe.getPooled(br.select, vr, e, t); return (r.type = "select"), (r.target = _r), ae(r), r; } return null; } var Tr = { eventTypes: br, extractEvents: function (e, t, n, i) { var r = Pr(i); if ( !r || !(function (e, t) { for (var n = rr(t), i = g[e], r = 0; r < i.length; r++) { var o = i[r]; if (!n.has(o)) return !1; } return !0; })("onSelect", r) ) return null; var o = t ? Q(t) : window; switch (e) { case "focus": (ht(o) || "true" === o.contentEditable) && ((_r = o), (vr = t), (yr = null)); break; case "blur": (_r = null), (vr = null), (yr = null); break; case "mousedown": Cr = !0; break; case "contextmenu": case "mouseup": case "dragend": return (Cr = !1), xr(n, i); case "selectionchange": if (gr) break; case "keydown": case "keyup": return xr(n, i); } return null; }, }; G.injectEventPluginOrder(["ResponderEventPlugin", "SimpleEventPlugin", "EnterLeaveEventPlugin", "ChangeEventPlugin", "SelectEventPlugin", "BeforeInputEventPlugin"]), (R = J), (w = q), ((L = Q) && w) || D(!1, "EventPluginUtils.setComponentTree(...): Injected module is missing getNodeFromInstance or getInstanceFromNode."), G.injectEventPluginsByName({ SimpleEventPlugin: Ui, EnterLeaveEventPlugin: ci, ChangeEventPlugin: qn, SelectEventPlugin: Tr, BeforeInputEventPlugin: Ke }); var Sr = !1, Or = !1; function Er(e, n) { "object" == typeof n.children && null !== n.children && t.Children.forEach(n.children, function (e) { null != e && "string" != typeof e && "number" != typeof e && "string" == typeof e.type && (Or || ((Or = !0), Kt(!1, "Only strings and numbers are supported as