{"version":3,"sources":["jsdelivr-header.js","webpack://rive/webpack/universalModuleDefinition","webpack://rive/npm/webgl2_advanced/webgl2_advanced.mjs","webpack://rive/src/animation/Animation.ts","webpack://rive/src/utils/registerTouchInteractions.ts","webpack://rive/src/utils/sanitizeUrl.ts","webpack://rive/webpack/bootstrap","/npm/@rive-app/webgl2@2.26.3/webpack:/rive/webpack/runtime/define property getters","/npm/@rive-app/webgl2@2.26.3/webpack:/rive/webpack/runtime/hasOwnProperty shorthand","/npm/@rive-app/webgl2@2.26.3/webpack:/rive/webpack/runtime/make namespace object","webpack://rive/src/rive.ts"],"names":[],"mappings":"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","file":"/npm/@rive-app/webgl2@2.26.3/rive.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/@rive-app/webgl2@2.26.3/rive.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rive\"] = factory();\n\telse\n\t\troot[\"rive\"] = factory();\n})(this, () => {\nreturn ","\nvar Rive = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  \n  return (\nfunction(moduleArg = {}) {\n\nvar m = moduleArg, aa, ba;\nm.ready = new Promise((a, b) => {\n  aa = a;\n  ba = b;\n});\nfunction ca() {\n  function a(g) {\n    const n = d;\n    c = b = 0;\n    d = new Map();\n    n.forEach(p => {\n      try {\n        p(g);\n      } catch (l) {\n        console.error(l);\n      }\n    });\n    this.kb();\n    e && e.Mb();\n  }\n  let b = 0, c = 0, d = new Map(), e = null, f = null;\n  this.requestAnimationFrame = function(g) {\n    b || (b = requestAnimationFrame(a.bind(this)));\n    const n = ++c;\n    d.set(n, g);\n    return n;\n  };\n  this.cancelAnimationFrame = function(g) {\n    d.delete(g);\n    b && 0 == d.size && (cancelAnimationFrame(b), b = 0);\n  };\n  this.Kb = function(g) {\n    f && (document.body.remove(f), f = null);\n    g || (f = document.createElement(\"div\"), f.style.backgroundColor = \"black\", f.style.position = \"fixed\", f.style.right = 0, f.style.top = 0, f.style.color = \"white\", f.style.padding = \"4px\", f.innerHTML = \"RIVE FPS\", g = function(n) {\n      f.innerHTML = \"RIVE FPS \" + n.toFixed(1);\n    }, document.body.appendChild(f));\n    e = new function() {\n      let n = 0, p = 0;\n      this.Mb = function() {\n        var l = performance.now();\n        p ? (++n, l -= p, 1000 < l && (g(1000 * n / l), n = p = 0)) : (p = l, n = 0);\n      };\n    }();\n  };\n  this.kb = function() {\n  };\n}\nfunction da() {\n  console.assert(!0);\n  const a = new Map();\n  let b = -Infinity;\n  this.push = function(c) {\n    c = c + 255 >> 8;\n    a.has(c) && clearTimeout(a.get(c));\n    a.set(c, setTimeout(function() {\n      a.delete(c);\n      0 == a.length ? b = -Infinity : c == b && (b = Math.max(...a.keys()), console.assert(b < c));\n    }, 1000));\n    b = Math.max(c, b);\n    return b << 8;\n  };\n}\nconst ea = m.onRuntimeInitialized;\nm.onRuntimeInitialized = function() {\n  ea && ea();\n  let a = m.decodeAudio;\n  m.decodeAudio = function(e, f) {\n    e = a(e);\n    f(e);\n  };\n  let b = m.decodeFont;\n  m.decodeFont = function(e, f) {\n    e = b(e);\n    f(e);\n  };\n  const c = m.FileAssetLoader;\n  m.ptrToAsset = e => {\n    let f = m.ptrToFileAsset(e);\n    return f.isImage ? m.ptrToImageAsset(e) : f.isFont ? m.ptrToFontAsset(e) : f.isAudio ? m.ptrToAudioAsset(e) : f;\n  };\n  m.CustomFileAssetLoader = c.extend(\"CustomFileAssetLoader\", {__construct:function({loadContents:e}) {\n    this.__parent.__construct.call(this);\n    this.Bb = e;\n  }, loadContents:function(e, f) {\n    e = m.ptrToAsset(e);\n    return this.Bb(e, f);\n  },});\n  m.CDNFileAssetLoader = c.extend(\"CDNFileAssetLoader\", {__construct:function() {\n    this.__parent.__construct.call(this);\n  }, loadContents:function(e) {\n    let f = m.ptrToAsset(e);\n    e = f.cdnUuid;\n    if (\"\" === e) {\n      return !1;\n    }\n    (function(g, n) {\n      var p = new XMLHttpRequest();\n      p.responseType = \"arraybuffer\";\n      p.onreadystatechange = function() {\n        4 == p.readyState && 200 == p.status && n(p);\n      };\n      p.open(\"GET\", g, !0);\n      p.send(null);\n    })(f.cdnBaseUrl + \"/\" + e, g => {\n      f.decode(new Uint8Array(g.response));\n    });\n    return !0;\n  },});\n  m.FallbackFileAssetLoader = c.extend(\"FallbackFileAssetLoader\", {__construct:function() {\n    this.__parent.__construct.call(this);\n    this.gb = [];\n  }, addLoader:function(e) {\n    this.gb.push(e);\n  }, loadContents:function(e, f) {\n    for (let g of this.gb) {\n      if (g.loadContents(e, f)) {\n        return !0;\n      }\n    }\n    return !1;\n  },});\n  let d = m.computeAlignment;\n  m.computeAlignment = function(e, f, g, n, p = 1.0) {\n    return d.call(this, e, f, g, n, p);\n  };\n};\nconst fa = m.onRuntimeInitialized;\nm.onRuntimeInitialized = function() {\n  function a(k) {\n    this.F = k;\n    this.Ab = k.getContext(\"2d\");\n    this.Db = d;\n    this.S = [];\n    this.la = 0;\n    this.clear = function() {\n      console.assert(0 == this.la);\n      this.S = [];\n      e.delete(this);\n    };\n    this.save = function() {\n      ++this.la;\n      this.S.push(d.save.bind(d));\n    };\n    this.restore = function() {\n      0 < this.la && (this.S.push(d.restore.bind(d)), --this.la);\n    };\n    this.transform = function(q) {\n      this.S.push(d.transform.bind(d, q));\n    };\n    this.align = function(q, v, y, C, z = 1.0) {\n      this.S.push(d.align.bind(d, q, v, y, C, z));\n    };\n    this.flush = function() {\n      console.assert(0 == this.la);\n      e.add(this);\n      d.Va || c();\n    };\n    this[\"delete\"] = function() {\n    };\n  }\n  function b(k, q = !1) {\n    var v = {alpha:!0, depth:q, stencil:q, antialias:q, premultipliedAlpha:!0, preserveDrawingBuffer:0, powerPreference:\"high-performance\", failIfMajorPerformanceCaveat:0, enableExtensionsByDefault:!1, explicitSwapControl:0, renderViaOffscreenBackBuffer:0,};\n    q = k.getContext(\"webgl2\", v);\n    if (!q) {\n      return null;\n    }\n    v = ha(q, v);\n    ia(v);\n    const y = f(k.width, k.height);\n    y.Ka = v;\n    y.F = k;\n    y.La = k.width;\n    y.Wa = k.height;\n    y.T = q;\n    var C = y.delete;\n    y.delete = function() {\n      C.call(this);\n      var z = this.Ka;\n      r === w[z] && (r = null);\n      \"object\" == typeof JSEvents && JSEvents.Nc(w[z].D.canvas);\n      w[z] && w[z].D.canvas && (w[z].D.canvas.zb = void 0);\n      this.Ka = this.F = this.La = this.T = w[z] = null;\n    };\n    return y;\n  }\n  function c() {\n    if (d) {\n      var k = d.Cb, q = 0, v = 0, y = 0, C = Array(e.size), z = 0;\n      for (var E of e) {\n        E.fa = Math.min(E.F.width, k), E.ea = Math.min(E.F.height, k), E.Ia = E.ea * E.fa, q = Math.max(q, E.fa), v = Math.max(v, E.ea), y += E.Ia, C[z++] = E;\n      }\n      e.clear();\n      if (!(0 >= y)) {\n        q = 1 << (0 >= q ? 0 : 32 - Math.clz32(q - 1));\n        for (v = 1 << (0 >= v ? 0 : 32 - Math.clz32(v - 1)); v * q < y;) {\n          q <= v ? q *= 2 : v *= 2;\n        }\n        q = Math.min(q, k);\n        q = Math.min(v, k);\n        C.sort((Z, rb) => rb.Ia - Z.Ia);\n        y = new m.DynamicRectanizer(k);\n        for (E = 0; E < C.length;) {\n          y.reset(q, v);\n          for (z = E; z < C.length; ++z) {\n            var H = C[z], F = y.addRect(H.fa, H.ea);\n            if (0 > F) {\n              console.assert(z > E);\n              break;\n            }\n            H.ra = F & 65535;\n            H.sa = F >> 16;\n          }\n          H = n.push(y.drawWidth());\n          F = p.push(y.drawHeight());\n          console.assert(H >= y.drawWidth());\n          console.assert(F >= y.drawHeight());\n          console.assert(H <= k);\n          console.assert(F <= k);\n          d.F.width != H && (d.F.width = H);\n          d.F.height != F && (d.F.height = F);\n          d.clear();\n          for (H = E; H < z; ++H) {\n            F = C[H];\n            d.saveClipRect(F.ra, F.sa, F.ra + F.fa, F.sa + F.ea);\n            let Z = new m.Mat2D();\n            Z.xx = F.fa / F.F.width;\n            Z.yy = F.ea / F.F.height;\n            Z.xy = Z.yx = 0;\n            Z.tx = F.ra;\n            Z.ty = F.sa;\n            d.transform(Z);\n            for (const rb of F.S) {\n              rb();\n            }\n            d.restoreClipRect();\n            F.S = [];\n          }\n          for (d.flush(); E < z; ++E) {\n            H = C[E], F = H.Ab, F.globalCompositeOperation = \"copy\", F.drawImage(d.F, H.ra, H.sa, H.fa, H.ea, 0, 0, H.F.width, H.F.height);\n          }\n          E = z;\n        }\n      }\n    }\n  }\n  fa && fa();\n  let d = null;\n  const e = new Set(), f = m.makeRenderer;\n  m.makeRenderer = function(k, q) {\n    if (!d) {\n      function v(y) {\n        var C = document.createElement(\"canvas\");\n        C.width = 1;\n        C.height = 1;\n        d = b(C, y);\n        d.Va = !!d.T.getExtension(\"WEBGL_shader_pixel_local_storage\");\n        d.Cb = Math.min(d.T.getParameter(d.T.MAX_RENDERBUFFER_SIZE), d.T.getParameter(d.T.MAX_TEXTURE_SIZE));\n        d.Ja = !d.Va;\n        if (y = d.T.getExtension(\"WEBGL_debug_renderer_info\")) {\n          C = d.T.getParameter(y.UNMASKED_RENDERER_WEBGL), d.T.getParameter(y.UNMASKED_VENDOR_WEBGL).includes(\"Google\") && C.includes(\"ANGLE Metal Renderer\") && (d.Ja = !1);\n        }\n        return d;\n      }\n      d = v(!0);\n      d.Ja || (d = v(!1));\n    }\n    return q ? new a(k) : b(k, d.Ja);\n  };\n  const g = m.Artboard.prototype.draw;\n  m.Artboard.prototype.draw = function(k) {\n    k.S ? k.S.push(g.bind(this, k.Db)) : g.call(this, k);\n  };\n  const n = new da(), p = new da(), l = new ca();\n  m.requestAnimationFrame = l.requestAnimationFrame.bind(l);\n  m.cancelAnimationFrame = l.cancelAnimationFrame.bind(l);\n  m.enableFPSCounter = l.Kb.bind(l);\n  l.kb = c;\n  m.resolveAnimationFrame = c;\n  let t = m.load;\n  m.load = function(k, q, v = !0) {\n    const y = new m.FallbackFileAssetLoader();\n    void 0 !== q && y.addLoader(q);\n    v && (q = new m.CDNFileAssetLoader(), y.addLoader(q));\n    return Promise.resolve(t(k, y));\n  };\n  const u = m.WebGL2Renderer.prototype.clear;\n  m.WebGL2Renderer.prototype.clear = function() {\n    ia(this.Ka);\n    const k = this.F;\n    if (this.La != k.width || this.Wa != k.height) {\n      this.resize(k.width, k.height), this.La = k.width, this.Wa = k.height;\n    }\n    u.call(this);\n  };\n  m.decodeImage = function(k, q) {\n    k = m.decodeWebGL2Image(k);\n    q(k);\n  };\n  let x = m.Renderer.prototype.align;\n  m.Renderer.prototype.align = function(k, q, v, y, C = 1.0) {\n    x.call(this, k, q, v, y, C);\n  };\n};\nvar ja = Object.assign({}, m), ka = \"./this.program\", la = \"object\" == typeof window, ma = \"function\" == typeof importScripts, A = \"\", na, oa;\nif (la || ma) {\n  ma ? A = self.location.href : \"undefined\" != typeof document && document.currentScript && (A = document.currentScript.src), _scriptDir && (A = _scriptDir), 0 !== A.indexOf(\"blob:\") ? A = A.substr(0, A.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1) : A = \"\", ma && (oa = a => {\n    var b = new XMLHttpRequest();\n    b.open(\"GET\", a, !1);\n    b.responseType = \"arraybuffer\";\n    b.send(null);\n    return new Uint8Array(b.response);\n  }), na = (a, b, c) => {\n    var d = new XMLHttpRequest();\n    d.open(\"GET\", a, !0);\n    d.responseType = \"arraybuffer\";\n    d.onload = () => {\n      200 == d.status || 0 == d.status && d.response ? b(d.response) : c();\n    };\n    d.onerror = c;\n    d.send(null);\n  };\n}\nvar pa = m.print || console.log.bind(console), qa = m.printErr || console.error.bind(console);\nObject.assign(m, ja);\nja = null;\nm.thisProgram && (ka = m.thisProgram);\nvar ra;\nm.wasmBinary && (ra = m.wasmBinary);\nvar noExitRuntime = m.noExitRuntime || !0;\n\"object\" != typeof WebAssembly && sa(\"no native wasm support detected\");\nvar ta, B, ua = !1, D, G, I, va, J, K, wa, xa;\nfunction ya() {\n  var a = ta.buffer;\n  m.HEAP8 = D = new Int8Array(a);\n  m.HEAP16 = I = new Int16Array(a);\n  m.HEAP32 = J = new Int32Array(a);\n  m.HEAPU8 = G = new Uint8Array(a);\n  m.HEAPU16 = va = new Uint16Array(a);\n  m.HEAPU32 = K = new Uint32Array(a);\n  m.HEAPF32 = wa = new Float32Array(a);\n  m.HEAPF64 = xa = new Float64Array(a);\n}\nvar za, Aa = [], Ba = [], Ca = [];\nfunction Da() {\n  var a = m.preRun.shift();\n  Aa.unshift(a);\n}\nvar Ea = 0, Fa = null, Ga = null;\nfunction sa(a) {\n  if (m.onAbort) {\n    m.onAbort(a);\n  }\n  a = \"Aborted(\" + a + \")\";\n  qa(a);\n  ua = !0;\n  a = new WebAssembly.RuntimeError(a + \". Build with -sASSERTIONS for more info.\");\n  ba(a);\n  throw a;\n}\nfunction Ha(a) {\n  return a.startsWith(\"data:application/octet-stream;base64,\");\n}\nvar Ia;\nIa = \"webgl2_advanced.wasm\";\nif (!Ha(Ia)) {\n  var Ja = Ia;\n  Ia = m.locateFile ? m.locateFile(Ja, A) : A + Ja;\n}\nfunction Ka(a) {\n  if (a == Ia && ra) {\n    return new Uint8Array(ra);\n  }\n  if (oa) {\n    return oa(a);\n  }\n  throw \"both async and sync fetching of the wasm failed\";\n}\nfunction La(a) {\n  if (!ra && (la || ma)) {\n    if (\"function\" == typeof fetch && !a.startsWith(\"file://\")) {\n      return fetch(a, {credentials:\"same-origin\"}).then(b => {\n        if (!b.ok) {\n          throw \"failed to load wasm binary file at '\" + a + \"'\";\n        }\n        return b.arrayBuffer();\n      }).catch(() => Ka(a));\n    }\n    if (na) {\n      return new Promise((b, c) => {\n        na(a, d => b(new Uint8Array(d)), c);\n      });\n    }\n  }\n  return Promise.resolve().then(() => Ka(a));\n}\nfunction Ma(a, b, c) {\n  return La(a).then(d => WebAssembly.instantiate(d, b)).then(d => d).then(c, d => {\n    qa(\"failed to asynchronously prepare wasm: \" + d);\n    sa(d);\n  });\n}\nfunction Na(a, b) {\n  var c = Ia;\n  return ra || \"function\" != typeof WebAssembly.instantiateStreaming || Ha(c) || c.startsWith(\"file://\") || \"function\" != typeof fetch ? Ma(c, a, b) : fetch(c, {credentials:\"same-origin\"}).then(d => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n    qa(\"wasm streaming compile failed: \" + e);\n    qa(\"falling back to ArrayBuffer instantiation\");\n    return Ma(c, a, b);\n  }));\n}\nvar Oa, Pa, Ta = {505374:(a, b, c, d, e) => {\n  if (\"undefined\" === typeof window || void 0 === (window.AudioContext || window.webkitAudioContext)) {\n    return 0;\n  }\n  if (\"undefined\" === typeof window.h) {\n    window.h = {Da:0};\n    window.h.I = {};\n    window.h.I.Ba = a;\n    window.h.I.capture = b;\n    window.h.I.Na = c;\n    window.h.ia = {};\n    window.h.ia.stopped = d;\n    window.h.ia.tb = e;\n    let f = window.h;\n    f.C = [];\n    f.nc = function(g) {\n      for (var n = 0; n < f.C.length; ++n) {\n        if (null == f.C[n]) {\n          return f.C[n] = g, n;\n        }\n      }\n      f.C.push(g);\n      return f.C.length - 1;\n    };\n    f.yb = function(g) {\n      for (f.C[g] = null; 0 < f.C.length;) {\n        if (null == f.C[f.C.length - 1]) {\n          f.C.pop();\n        } else {\n          break;\n        }\n      }\n    };\n    f.Pc = function(g) {\n      for (var n = 0; n < f.C.length; ++n) {\n        if (f.C[n] == g) {\n          return f.yb(n);\n        }\n      }\n    };\n    f.va = function(g) {\n      return f.C[g];\n    };\n    f.xb = [\"touchend\", \"click\"];\n    f.unlock = function() {\n      for (var g = 0; g < f.C.length; ++g) {\n        var n = f.C[g];\n        null != n && null != n.J && n.state === f.ia.tb && n.J.resume().then(() => {\n          Qa(n.lb);\n        }, p => {\n          console.error(\"Failed to resume audiocontext\", p);\n        });\n      }\n      f.xb.map(function(p) {\n        document.removeEventListener(p, f.unlock, !0);\n      });\n    };\n    f.xb.map(function(g) {\n      document.addEventListener(g, f.unlock, !0);\n    });\n  }\n  window.h.Da += 1;\n  return 1;\n}, 507552:() => {\n  \"undefined\" !== typeof window.h && (--window.h.Da, 0 === window.h.Da && delete window.h);\n}, 507716:() => void 0 !== navigator.mediaDevices && void 0 !== navigator.mediaDevices.getUserMedia, 507820:() => {\n  try {\n    var a = new (window.AudioContext || window.webkitAudioContext)(), b = a.sampleRate;\n    a.close();\n    return b;\n  } catch (c) {\n    return 0;\n  }\n}, 507991:(a, b, c, d, e, f) => {\n  if (\"undefined\" === typeof window.h) {\n    return -1;\n  }\n  var g = {}, n = {};\n  a == window.h.I.Ba && 0 != c && (n.sampleRate = c);\n  g.J = new (window.AudioContext || window.webkitAudioContext)(n);\n  g.J.suspend();\n  g.state = window.h.ia.stopped;\n  c = 0;\n  a != window.h.I.Ba && (c = b);\n  g.Z = g.J.createScriptProcessor(d, c, b);\n  g.Z.onaudioprocess = function(p) {\n    if (null == g.wa || 0 == g.wa.length) {\n      g.wa = new Float32Array(wa.buffer, e, d * b);\n    }\n    if (a == window.h.I.capture || a == window.h.I.Na) {\n      for (var l = 0; l < b; l += 1) {\n        for (var t = p.inputBuffer.getChannelData(l), u = g.wa, x = 0; x < d; x += 1) {\n          u[x * b + l] = t[x];\n        }\n      }\n      Ra(f, d, e);\n    }\n    if (a == window.h.I.Ba || a == window.h.I.Na) {\n      for (Sa(f, d, e), l = 0; l < p.outputBuffer.numberOfChannels; ++l) {\n        for (t = p.outputBuffer.getChannelData(l), u = g.wa, x = 0; x < d; x += 1) {\n          t[x] = u[x * b + l];\n        }\n      }\n    } else {\n      for (l = 0; l < p.outputBuffer.numberOfChannels; ++l) {\n        p.outputBuffer.getChannelData(l).fill(0.0);\n      }\n    }\n  };\n  a != window.h.I.capture && a != window.h.I.Na || navigator.mediaDevices.getUserMedia({audio:!0, video:!1}).then(function(p) {\n    g.Ea = g.J.createMediaStreamSource(p);\n    g.Ea.connect(g.Z);\n    g.Z.connect(g.J.destination);\n  }).catch(function(p) {\n    console.log(\"Failed to get user media: \" + p);\n  });\n  a == window.h.I.Ba && g.Z.connect(g.J.destination);\n  g.lb = f;\n  return window.h.nc(g);\n}, 510868:a => window.h.va(a).J.sampleRate, 510941:a => {\n  a = window.h.va(a);\n  void 0 !== a.Z && (a.Z.onaudioprocess = function() {\n  }, a.Z.disconnect(), a.Z = void 0);\n  void 0 !== a.Ea && (a.Ea.disconnect(), a.Ea = void 0);\n  a.J.close();\n  a.J = void 0;\n  a.lb = void 0;\n}, 511341:a => {\n  window.h.yb(a);\n}, 511391:a => {\n  a = window.h.va(a);\n  a.J.resume();\n  a.state = window.h.ia.tb;\n}, 511530:a => {\n  a = window.h.va(a);\n  a.J.suspend();\n  a.state = window.h.ia.stopped;\n}}, Ua = a => {\n  for (; 0 < a.length;) {\n    a.shift()(m);\n  }\n}, Va = (a, b) => {\n  for (var c = 0, d = a.length - 1; 0 <= d; d--) {\n    var e = a[d];\n    \".\" === e ? a.splice(d, 1) : \"..\" === e ? (a.splice(d, 1), c++) : c && (a.splice(d, 1), c--);\n  }\n  if (b) {\n    for (; c; c--) {\n      a.unshift(\"..\");\n    }\n  }\n  return a;\n}, Wa = a => {\n  var b = \"/\" === a.charAt(0), c = \"/\" === a.substr(-1);\n  (a = Va(a.split(\"/\").filter(d => !!d), !b).join(\"/\")) || b || (a = \".\");\n  a && c && (a += \"/\");\n  return (b ? \"/\" : \"\") + a;\n}, Xa = a => {\n  var b = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);\n  a = b[0];\n  b = b[1];\n  if (!a && !b) {\n    return \".\";\n  }\n  b && (b = b.substr(0, b.length - 1));\n  return a + b;\n}, Ya = a => {\n  if (\"/\" === a) {\n    return \"/\";\n  }\n  a = Wa(a);\n  a = a.replace(/\\/$/, \"\");\n  var b = a.lastIndexOf(\"/\");\n  return -1 === b ? a : a.substr(b + 1);\n}, Za = () => {\n  if (\"object\" == typeof crypto && \"function\" == typeof crypto.getRandomValues) {\n    return a => crypto.getRandomValues(a);\n  }\n  sa(\"initRandomDevice\");\n}, $a = a => ($a = Za())(a);\nfunction ab() {\n  for (var a = \"\", b = !1, c = arguments.length - 1; -1 <= c && !b; c--) {\n    b = 0 <= c ? arguments[c] : \"/\";\n    if (\"string\" != typeof b) {\n      throw new TypeError(\"Arguments to path.resolve must be strings\");\n    }\n    if (!b) {\n      return \"\";\n    }\n    a = b + \"/\" + a;\n    b = \"/\" === b.charAt(0);\n  }\n  a = Va(a.split(\"/\").filter(d => !!d), !b).join(\"/\");\n  return (b ? \"/\" : \"\") + a || \".\";\n}\nvar bb = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf8\") : void 0, L = (a, b, c) => {\n  var d = b + c;\n  for (c = b; a[c] && !(c >= d);) {\n    ++c;\n  }\n  if (16 < c - b && a.buffer && bb) {\n    return bb.decode(a.subarray(b, c));\n  }\n  for (d = \"\"; b < c;) {\n    var e = a[b++];\n    if (e & 128) {\n      var f = a[b++] & 63;\n      if (192 == (e & 224)) {\n        d += String.fromCharCode((e & 31) << 6 | f);\n      } else {\n        var g = a[b++] & 63;\n        e = 224 == (e & 240) ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;\n        65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));\n      }\n    } else {\n      d += String.fromCharCode(e);\n    }\n  }\n  return d;\n}, cb = [], db = a => {\n  for (var b = 0, c = 0; c < a.length; ++c) {\n    var d = a.charCodeAt(c);\n    127 >= d ? b++ : 2047 >= d ? b += 2 : 55296 <= d && 57343 >= d ? (b += 4, ++c) : b += 3;\n  }\n  return b;\n}, eb = (a, b, c, d) => {\n  if (!(0 < d)) {\n    return 0;\n  }\n  var e = c;\n  d = c + d - 1;\n  for (var f = 0; f < a.length; ++f) {\n    var g = a.charCodeAt(f);\n    if (55296 <= g && 57343 >= g) {\n      var n = a.charCodeAt(++f);\n      g = 65536 + ((g & 1023) << 10) | n & 1023;\n    }\n    if (127 >= g) {\n      if (c >= d) {\n        break;\n      }\n      b[c++] = g;\n    } else {\n      if (2047 >= g) {\n        if (c + 1 >= d) {\n          break;\n        }\n        b[c++] = 192 | g >> 6;\n      } else {\n        if (65535 >= g) {\n          if (c + 2 >= d) {\n            break;\n          }\n          b[c++] = 224 | g >> 12;\n        } else {\n          if (c + 3 >= d) {\n            break;\n          }\n          b[c++] = 240 | g >> 18;\n          b[c++] = 128 | g >> 12 & 63;\n        }\n        b[c++] = 128 | g >> 6 & 63;\n      }\n      b[c++] = 128 | g & 63;\n    }\n  }\n  b[c] = 0;\n  return c - e;\n};\nfunction fb(a, b) {\n  var c = Array(db(a) + 1);\n  a = eb(a, c, 0, c.length);\n  b && (c.length = a);\n  return c;\n}\nvar gb = [];\nfunction hb(a, b) {\n  gb[a] = {input:[], G:[], V:b};\n  ib(a, jb);\n}\nvar jb = {open:function(a) {\n  var b = gb[a.node.Ca];\n  if (!b) {\n    throw new M(43);\n  }\n  a.s = b;\n  a.seekable = !1;\n}, close:function(a) {\n  a.s.V.ua(a.s);\n}, ua:function(a) {\n  a.s.V.ua(a.s);\n}, read:function(a, b, c, d) {\n  if (!a.s || !a.s.V.fb) {\n    throw new M(60);\n  }\n  for (var e = 0, f = 0; f < d; f++) {\n    try {\n      var g = a.s.V.fb(a.s);\n    } catch (n) {\n      throw new M(29);\n    }\n    if (void 0 === g && 0 === e) {\n      throw new M(6);\n    }\n    if (null === g || void 0 === g) {\n      break;\n    }\n    e++;\n    b[c + f] = g;\n  }\n  e && (a.node.timestamp = Date.now());\n  return e;\n}, write:function(a, b, c, d) {\n  if (!a.s || !a.s.V.Qa) {\n    throw new M(60);\n  }\n  try {\n    for (var e = 0; e < d; e++) {\n      a.s.V.Qa(a.s, b[c + e]);\n    }\n  } catch (f) {\n    throw new M(29);\n  }\n  d && (a.node.timestamp = Date.now());\n  return e;\n},}, kb = {fb:function() {\n  a: {\n    if (!cb.length) {\n      var a = null;\n      \"undefined\" != typeof window && \"function\" == typeof window.prompt ? (a = window.prompt(\"Input: \"), null !== a && (a += \"\\n\")) : \"function\" == typeof readline && (a = readline(), null !== a && (a += \"\\n\"));\n      if (!a) {\n        a = null;\n        break a;\n      }\n      cb = fb(a, !0);\n    }\n    a = cb.shift();\n  }\n  return a;\n}, Qa:function(a, b) {\n  null === b || 10 === b ? (pa(L(a.G, 0)), a.G = []) : 0 != b && a.G.push(b);\n}, ua:function(a) {\n  a.G && 0 < a.G.length && (pa(L(a.G, 0)), a.G = []);\n}, Wb:function() {\n  return {tc:25856, vc:5, sc:191, uc:35387, rc:[3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]};\n}, Xb:function() {\n  return 0;\n}, Yb:function() {\n  return [24, 80];\n},}, lb = {Qa:function(a, b) {\n  null === b || 10 === b ? (qa(L(a.G, 0)), a.G = []) : 0 != b && a.G.push(b);\n}, ua:function(a) {\n  a.G && 0 < a.G.length && (qa(L(a.G, 0)), a.G = []);\n},};\nfunction mb(a, b) {\n  var c = a.j ? a.j.length : 0;\n  c >= b || (b = Math.max(b, c * (1048576 > c ? 2.0 : 1.125) >>> 0), 0 != c && (b = Math.max(b, 256)), c = a.j, a.j = new Uint8Array(b), 0 < a.v && a.j.set(c.subarray(0, a.v), 0));\n}\nvar N = {O:null, U() {\n  return N.createNode(null, \"/\", 16895, 0);\n}, createNode(a, b, c, d) {\n  if (24576 === (c & 61440) || 4096 === (c & 61440)) {\n    throw new M(63);\n  }\n  N.O || (N.O = {dir:{node:{Y:N.l.Y, P:N.l.P, ma:N.l.ma, za:N.l.za, rb:N.l.rb, wb:N.l.wb, sb:N.l.sb, pb:N.l.pb, Fa:N.l.Fa}, stream:{ba:N.m.ba}}, file:{node:{Y:N.l.Y, P:N.l.P}, stream:{ba:N.m.ba, read:N.m.read, write:N.m.write, ta:N.m.ta, hb:N.m.hb, jb:N.m.jb}}, link:{node:{Y:N.l.Y, P:N.l.P, na:N.l.na}, stream:{}}, Xa:{node:{Y:N.l.Y, P:N.l.P}, stream:nb}});\n  c = ob(a, b, c, d);\n  16384 === (c.mode & 61440) ? (c.l = N.O.dir.node, c.m = N.O.dir.stream, c.j = {}) : 32768 === (c.mode & 61440) ? (c.l = N.O.file.node, c.m = N.O.file.stream, c.v = 0, c.j = null) : 40960 === (c.mode & 61440) ? (c.l = N.O.link.node, c.m = N.O.link.stream) : 8192 === (c.mode & 61440) && (c.l = N.O.Xa.node, c.m = N.O.Xa.stream);\n  c.timestamp = Date.now();\n  a && (a.j[b] = c, a.timestamp = c.timestamp);\n  return c;\n}, Ac(a) {\n  return a.j ? a.j.subarray ? a.j.subarray(0, a.v) : new Uint8Array(a.j) : new Uint8Array(0);\n}, l:{Y(a) {\n  var b = {};\n  b.yc = 8192 === (a.mode & 61440) ? a.id : 1;\n  b.Cc = a.id;\n  b.mode = a.mode;\n  b.Kc = 1;\n  b.uid = 0;\n  b.Bc = 0;\n  b.Ca = a.Ca;\n  16384 === (a.mode & 61440) ? b.size = 4096 : 32768 === (a.mode & 61440) ? b.size = a.v : 40960 === (a.mode & 61440) ? b.size = a.link.length : b.size = 0;\n  b.pc = new Date(a.timestamp);\n  b.Ic = new Date(a.timestamp);\n  b.wc = new Date(a.timestamp);\n  b.Eb = 4096;\n  b.qc = Math.ceil(b.size / b.Eb);\n  return b;\n}, P(a, b) {\n  void 0 !== b.mode && (a.mode = b.mode);\n  void 0 !== b.timestamp && (a.timestamp = b.timestamp);\n  if (void 0 !== b.size && (b = b.size, a.v != b)) {\n    if (0 == b) {\n      a.j = null, a.v = 0;\n    } else {\n      var c = a.j;\n      a.j = new Uint8Array(b);\n      c && a.j.set(c.subarray(0, Math.min(b, a.v)));\n      a.v = b;\n    }\n  }\n}, ma() {\n  throw pb[44];\n}, za(a, b, c, d) {\n  return N.createNode(a, b, c, d);\n}, rb(a, b, c) {\n  if (16384 === (a.mode & 61440)) {\n    try {\n      var d = qb(b, c);\n    } catch (f) {\n    }\n    if (d) {\n      for (var e in d.j) {\n        throw new M(55);\n      }\n    }\n  }\n  delete a.parent.j[a.name];\n  a.parent.timestamp = Date.now();\n  a.name = c;\n  b.j[c] = a;\n  b.timestamp = a.parent.timestamp;\n  a.parent = b;\n}, wb(a, b) {\n  delete a.j[b];\n  a.timestamp = Date.now();\n}, sb(a, b) {\n  var c = qb(a, b), d;\n  for (d in c.j) {\n    throw new M(55);\n  }\n  delete a.j[b];\n  a.timestamp = Date.now();\n}, pb(a) {\n  var b = [\".\", \"..\"], c;\n  for (c in a.j) {\n    a.j.hasOwnProperty(c) && b.push(c);\n  }\n  return b;\n}, Fa(a, b, c) {\n  a = N.createNode(a, b, 41471, 0);\n  a.link = c;\n  return a;\n}, na(a) {\n  if (40960 !== (a.mode & 61440)) {\n    throw new M(28);\n  }\n  return a.link;\n},}, m:{read(a, b, c, d, e) {\n  var f = a.node.j;\n  if (e >= a.node.v) {\n    return 0;\n  }\n  a = Math.min(a.node.v - e, d);\n  if (8 < a && f.subarray) {\n    b.set(f.subarray(e, e + a), c);\n  } else {\n    for (d = 0; d < a; d++) {\n      b[c + d] = f[e + d];\n    }\n  }\n  return a;\n}, write(a, b, c, d, e, f) {\n  b.buffer === D.buffer && (f = !1);\n  if (!d) {\n    return 0;\n  }\n  a = a.node;\n  a.timestamp = Date.now();\n  if (b.subarray && (!a.j || a.j.subarray)) {\n    if (f) {\n      return a.j = b.subarray(c, c + d), a.v = d;\n    }\n    if (0 === a.v && 0 === e) {\n      return a.j = b.slice(c, c + d), a.v = d;\n    }\n    if (e + d <= a.v) {\n      return a.j.set(b.subarray(c, c + d), e), d;\n    }\n  }\n  mb(a, e + d);\n  if (a.j.subarray && b.subarray) {\n    a.j.set(b.subarray(c, c + d), e);\n  } else {\n    for (f = 0; f < d; f++) {\n      a.j[e + f] = b[c + f];\n    }\n  }\n  a.v = Math.max(a.v, e + d);\n  return d;\n}, ba(a, b, c) {\n  1 === c ? b += a.position : 2 === c && 32768 === (a.node.mode & 61440) && (b += a.node.v);\n  if (0 > b) {\n    throw new M(28);\n  }\n  return b;\n}, ta(a, b, c) {\n  mb(a.node, b + c);\n  a.node.v = Math.max(a.node.v, b + c);\n}, hb(a, b, c, d, e) {\n  if (32768 !== (a.node.mode & 61440)) {\n    throw new M(43);\n  }\n  a = a.node.j;\n  if (e & 2 || a.buffer !== D.buffer) {\n    if (0 < c || c + b < a.length) {\n      a.subarray ? a = a.subarray(c, c + b) : a = Array.prototype.slice.call(a, c, c + b);\n    }\n    c = !0;\n    sa();\n    b = void 0;\n    if (!b) {\n      throw new M(48);\n    }\n    D.set(a, b);\n  } else {\n    c = !1, b = a.byteOffset;\n  }\n  return {o:b, M:c};\n}, jb(a, b, c, d) {\n  N.m.write(a, b, 0, d, c, !1);\n  return 0;\n},},};\nfunction sb(a, b) {\n  var c = 0;\n  a && (c |= 365);\n  b && (c |= 146);\n  return c;\n}\nvar tb = null, ub = {}, vb = [], wb = 1, xb = null, yb = !0, M = null, pb = {}, Ab = (a, b = {}) => {\n  a = ab(a);\n  if (!a) {\n    return {path:\"\", node:null};\n  }\n  b = Object.assign({cb:!0, Sa:0}, b);\n  if (8 < b.Sa) {\n    throw new M(32);\n  }\n  a = a.split(\"/\").filter(g => !!g);\n  for (var c = tb, d = \"/\", e = 0; e < a.length; e++) {\n    var f = e === a.length - 1;\n    if (f && b.parent) {\n      break;\n    }\n    c = qb(c, a[e]);\n    d = Wa(d + \"/\" + a[e]);\n    c.Aa && (!f || f && b.cb) && (c = c.Aa.root);\n    if (!f || b.bb) {\n      for (f = 0; 40960 === (c.mode & 61440);) {\n        if (c = zb(d), d = ab(Xa(d), c), c = Ab(d, {Sa:b.Sa + 1}).node, 40 < f++) {\n          throw new M(32);\n        }\n      }\n    }\n  }\n  return {path:d, node:c};\n}, Bb = a => {\n  for (var b;;) {\n    if (a === a.parent) {\n      return a = a.U.ib, b ? \"/\" !== a[a.length - 1] ? `${a}/${b}` : a + b : a;\n    }\n    b = b ? `${a.name}/${b}` : a.name;\n    a = a.parent;\n  }\n}, Cb = (a, b) => {\n  for (var c = 0, d = 0; d < b.length; d++) {\n    c = (c << 5) - c + b.charCodeAt(d) | 0;\n  }\n  return (a + c >>> 0) % xb.length;\n}, qb = (a, b) => {\n  var c;\n  if (c = (c = Db(a, \"x\")) ? c : a.l.ma ? 0 : 2) {\n    throw new M(c, a);\n  }\n  for (c = xb[Cb(a.id, b)]; c; c = c.ac) {\n    var d = c.name;\n    if (c.parent.id === a.id && d === b) {\n      return c;\n    }\n  }\n  return a.l.ma(a, b);\n}, ob = (a, b, c, d) => {\n  a = new Eb(a, b, c, d);\n  b = Cb(a.parent.id, a.name);\n  a.ac = xb[b];\n  return xb[b] = a;\n}, Fb = a => {\n  var b = [\"r\", \"w\", \"rw\"][a & 3];\n  a & 512 && (b += \"w\");\n  return b;\n}, Db = (a, b) => {\n  if (yb) {\n    return 0;\n  }\n  if (!b.includes(\"r\") || a.mode & 292) {\n    if (b.includes(\"w\") && !(a.mode & 146) || b.includes(\"x\") && !(a.mode & 73)) {\n      return 2;\n    }\n  } else {\n    return 2;\n  }\n  return 0;\n}, Gb = (a, b) => {\n  try {\n    return qb(a, b), 20;\n  } catch (c) {\n  }\n  return Db(a, \"wx\");\n}, Hb = () => {\n  for (var a = 0; 4096 >= a; a++) {\n    if (!vb[a]) {\n      return a;\n    }\n  }\n  throw new M(33);\n}, Ib = a => {\n  a = vb[a];\n  if (!a) {\n    throw new M(8);\n  }\n  return a;\n}, Kb = (a, b = -1) => {\n  Jb || (Jb = function() {\n    this.h = {};\n  }, Jb.prototype = {}, Object.defineProperties(Jb.prototype, {object:{get() {\n    return this.node;\n  }, set(c) {\n    this.node = c;\n  }}, flags:{get() {\n    return this.h.flags;\n  }, set(c) {\n    this.h.flags = c;\n  },}, position:{get() {\n    return this.h.position;\n  }, set(c) {\n    this.h.position = c;\n  },},}));\n  a = Object.assign(new Jb(), a);\n  -1 == b && (b = Hb());\n  a.X = b;\n  return vb[b] = a;\n}, nb = {open:a => {\n  a.m = ub[a.node.Ca].m;\n  a.m.open && a.m.open(a);\n}, ba:() => {\n  throw new M(70);\n},}, ib = (a, b) => {\n  ub[a] = {m:b};\n}, Lb = (a, b) => {\n  var c = \"/\" === b, d = !b;\n  if (c && tb) {\n    throw new M(10);\n  }\n  if (!c && !d) {\n    var e = Ab(b, {cb:!1});\n    b = e.path;\n    e = e.node;\n    if (e.Aa) {\n      throw new M(10);\n    }\n    if (16384 !== (e.mode & 61440)) {\n      throw new M(54);\n    }\n  }\n  b = {type:a, Mc:{}, ib:b, $b:[]};\n  a = a.U(b);\n  a.U = b;\n  b.root = a;\n  c ? tb = a : e && (e.Aa = b, e.U && e.U.$b.push(b));\n}, O = (a, b, c) => {\n  var d = Ab(a, {parent:!0}).node;\n  a = Ya(a);\n  if (!a || \".\" === a || \"..\" === a) {\n    throw new M(28);\n  }\n  var e = Gb(d, a);\n  if (e) {\n    throw new M(e);\n  }\n  if (!d.l.za) {\n    throw new M(63);\n  }\n  return d.l.za(d, a, b, c);\n}, Mb = (a, b, c) => {\n  \"undefined\" == typeof c && (c = b, b = 438);\n  O(a, b | 8192, c);\n}, Nb = (a, b) => {\n  if (!ab(a)) {\n    throw new M(44);\n  }\n  var c = Ab(b, {parent:!0}).node;\n  if (!c) {\n    throw new M(44);\n  }\n  b = Ya(b);\n  var d = Gb(c, b);\n  if (d) {\n    throw new M(d);\n  }\n  if (!c.l.Fa) {\n    throw new M(63);\n  }\n  c.l.Fa(c, b, a);\n}, zb = a => {\n  a = Ab(a).node;\n  if (!a) {\n    throw new M(44);\n  }\n  if (!a.l.na) {\n    throw new M(28);\n  }\n  return ab(Bb(a.parent), a.l.na(a));\n}, Pb = (a, b, c) => {\n  if (\"\" === a) {\n    throw new M(44);\n  }\n  if (\"string\" == typeof b) {\n    var d = {r:0, \"r+\":2, w:577, \"w+\":578, a:1089, \"a+\":1090,}[b];\n    if (\"undefined\" == typeof d) {\n      throw Error(`Unknown file open mode: ${b}`);\n    }\n    b = d;\n  }\n  c = b & 64 ? (\"undefined\" == typeof c ? 438 : c) & 4095 | 32768 : 0;\n  if (\"object\" == typeof a) {\n    var e = a;\n  } else {\n    a = Wa(a);\n    try {\n      e = Ab(a, {bb:!(b & 131072)}).node;\n    } catch (f) {\n    }\n  }\n  d = !1;\n  if (b & 64) {\n    if (e) {\n      if (b & 128) {\n        throw new M(20);\n      }\n    } else {\n      e = O(a, c, 0), d = !0;\n    }\n  }\n  if (!e) {\n    throw new M(44);\n  }\n  8192 === (e.mode & 61440) && (b &= -513);\n  if (b & 65536 && 16384 !== (e.mode & 61440)) {\n    throw new M(54);\n  }\n  if (!d && (c = e ? 40960 === (e.mode & 61440) ? 32 : 16384 === (e.mode & 61440) && (\"r\" !== Fb(b) || b & 512) ? 31 : Db(e, Fb(b)) : 44)) {\n    throw new M(c);\n  }\n  if (b & 512 && !d) {\n    c = e;\n    c = \"string\" == typeof c ? Ab(c, {bb:!0}).node : c;\n    if (!c.l.P) {\n      throw new M(63);\n    }\n    if (16384 === (c.mode & 61440)) {\n      throw new M(31);\n    }\n    if (32768 !== (c.mode & 61440)) {\n      throw new M(28);\n    }\n    if (d = Db(c, \"w\")) {\n      throw new M(d);\n    }\n    c.l.P(c, {size:0, timestamp:Date.now()});\n  }\n  b &= -131713;\n  e = Kb({node:e, path:Bb(e), flags:b, seekable:!0, position:0, m:e.m, oc:[], error:!1});\n  e.m.open && e.m.open(e);\n  !m.logReadFiles || b & 1 || (Ob || (Ob = {}), a in Ob || (Ob[a] = 1));\n  return e;\n}, Qb = (a, b, c) => {\n  if (null === a.X) {\n    throw new M(8);\n  }\n  if (!a.seekable || !a.m.ba) {\n    throw new M(70);\n  }\n  if (0 != c && 1 != c && 2 != c) {\n    throw new M(28);\n  }\n  a.position = a.m.ba(a, b, c);\n  a.oc = [];\n}, Rb = () => {\n  M || (M = function(a, b) {\n    this.name = \"ErrnoError\";\n    this.node = b;\n    this.dc = function(c) {\n      this.aa = c;\n    };\n    this.dc(a);\n    this.message = \"FS error\";\n  }, M.prototype = Error(), M.prototype.constructor = M, [44].forEach(a => {\n    pb[a] = new M(a);\n    pb[a].stack = \"<generic error, no stack>\";\n  }));\n}, Sb, Ub = (a, b, c) => {\n  a = Wa(\"/dev/\" + a);\n  var d = sb(!!b, !!c);\n  Tb || (Tb = 64);\n  var e = Tb++ << 8 | 0;\n  ib(e, {open:f => {\n    f.seekable = !1;\n  }, close:() => {\n    c && c.buffer && c.buffer.length && c(10);\n  }, read:(f, g, n, p) => {\n    for (var l = 0, t = 0; t < p; t++) {\n      try {\n        var u = b();\n      } catch (x) {\n        throw new M(29);\n      }\n      if (void 0 === u && 0 === l) {\n        throw new M(6);\n      }\n      if (null === u || void 0 === u) {\n        break;\n      }\n      l++;\n      g[n + t] = u;\n    }\n    l && (f.node.timestamp = Date.now());\n    return l;\n  }, write:(f, g, n, p) => {\n    for (var l = 0; l < p; l++) {\n      try {\n        c(g[n + l]);\n      } catch (t) {\n        throw new M(29);\n      }\n    }\n    p && (f.node.timestamp = Date.now());\n    return l;\n  }});\n  Mb(a, d, e);\n}, Tb, Vb = {}, Jb, Ob, Wb = void 0;\nfunction Xb() {\n  Wb += 4;\n  return J[Wb - 4 >> 2];\n}\nfunction Yb(a) {\n  if (void 0 === a) {\n    return \"_unknown\";\n  }\n  a = a.replace(/[^a-zA-Z0-9_]/g, \"$\");\n  var b = a.charCodeAt(0);\n  return 48 <= b && 57 >= b ? `_${a}` : a;\n}\nfunction Zb(a, b) {\n  a = Yb(a);\n  return {[a]:function() {\n    return b.apply(this, arguments);\n  }}[a];\n}\nfunction $b() {\n  this.M = [void 0];\n  this.eb = [];\n}\nvar P = new $b(), ac = void 0;\nfunction Q(a) {\n  throw new ac(a);\n}\nvar R = a => {\n  a || Q(\"Cannot use deleted val. handle = \" + a);\n  return P.get(a).value;\n}, bc = a => {\n  switch(a) {\n    case void 0:\n      return 1;\n    case null:\n      return 2;\n    case !0:\n      return 3;\n    case !1:\n      return 4;\n    default:\n      return P.ta({qb:1, value:a});\n  }\n};\nfunction cc(a) {\n  var b = Error, c = Zb(a, function(d) {\n    this.name = a;\n    this.message = d;\n    d = Error(d).stack;\n    void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n  });\n  c.prototype = Object.create(b.prototype);\n  c.prototype.constructor = c;\n  c.prototype.toString = function() {\n    return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n  };\n  return c;\n}\nvar dc = void 0, ec = void 0;\nfunction S(a) {\n  for (var b = \"\"; G[a];) {\n    b += ec[G[a++]];\n  }\n  return b;\n}\nvar fc = [];\nfunction gc() {\n  for (; fc.length;) {\n    var a = fc.pop();\n    a.g.ha = !1;\n    a[\"delete\"]();\n  }\n}\nvar hc = void 0, ic = {};\nfunction jc(a, b) {\n  for (void 0 === b && Q(\"ptr should not be undefined\"); a.A;) {\n    b = a.pa(b), a = a.A;\n  }\n  return b;\n}\nvar kc = {};\nfunction lc(a) {\n  a = mc(a);\n  var b = S(a);\n  nc(a);\n  return b;\n}\nfunction oc(a, b) {\n  var c = kc[a];\n  void 0 === c && Q(b + \" has unknown type \" + lc(a));\n  return c;\n}\nfunction pc() {\n}\nvar qc = !1;\nfunction rc(a) {\n  --a.count.value;\n  0 === a.count.value && (a.H ? a.L.W(a.H) : a.u.i.W(a.o));\n}\nfunction sc(a, b, c) {\n  if (b === c) {\n    return a;\n  }\n  if (void 0 === c.A) {\n    return null;\n  }\n  a = sc(a, b, c.A);\n  return null === a ? null : c.Ib(a);\n}\nvar tc = {};\nfunction uc(a, b) {\n  b = jc(a, b);\n  return ic[b];\n}\nvar vc = void 0;\nfunction wc(a) {\n  throw new vc(a);\n}\nfunction xc(a, b) {\n  b.u && b.o || wc(\"makeClassHandle requires ptr and ptrType\");\n  !!b.L !== !!b.H && wc(\"Both smartPtrType and smartPtr must be specified\");\n  b.count = {value:1};\n  return yc(Object.create(a, {g:{value:b,},}));\n}\nfunction yc(a) {\n  if (\"undefined\" === typeof FinalizationRegistry) {\n    return yc = b => b, a;\n  }\n  qc = new FinalizationRegistry(b => {\n    rc(b.g);\n  });\n  yc = b => {\n    var c = b.g;\n    c.H && qc.register(b, {g:c}, b);\n    return b;\n  };\n  pc = b => {\n    qc.unregister(b);\n  };\n  return yc(a);\n}\nvar zc = {};\nfunction Ac(a) {\n  for (; a.length;) {\n    var b = a.pop();\n    a.pop()(b);\n  }\n}\nfunction Bc(a) {\n  return this.fromWireType(J[a >> 2]);\n}\nvar Cc = {}, Dc = {};\nfunction T(a, b, c) {\n  function d(n) {\n    n = c(n);\n    n.length !== a.length && wc(\"Mismatched type converter count\");\n    for (var p = 0; p < a.length; ++p) {\n      U(a[p], n[p]);\n    }\n  }\n  a.forEach(function(n) {\n    Dc[n] = b;\n  });\n  var e = Array(b.length), f = [], g = 0;\n  b.forEach((n, p) => {\n    kc.hasOwnProperty(n) ? e[p] = kc[n] : (f.push(n), Cc.hasOwnProperty(n) || (Cc[n] = []), Cc[n].push(() => {\n      e[p] = kc[n];\n      ++g;\n      g === f.length && d(e);\n    }));\n  });\n  0 === f.length && d(e);\n}\nfunction Ec(a) {\n  switch(a) {\n    case 1:\n      return 0;\n    case 2:\n      return 1;\n    case 4:\n      return 2;\n    case 8:\n      return 3;\n    default:\n      throw new TypeError(`Unknown type size: ${a}`);\n  }\n}\nfunction Fc(a, b, c = {}) {\n  var d = b.name;\n  a || Q(`type \"${d}\" must have a positive integer typeid pointer`);\n  if (kc.hasOwnProperty(a)) {\n    if (c.Tb) {\n      return;\n    }\n    Q(`Cannot register type '${d}' twice`);\n  }\n  kc[a] = b;\n  delete Dc[a];\n  Cc.hasOwnProperty(a) && (b = Cc[a], delete Cc[a], b.forEach(e => e()));\n}\nfunction U(a, b, c = {}) {\n  if (!(\"argPackAdvance\" in b)) {\n    throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n  }\n  Fc(a, b, c);\n}\nfunction Gc(a) {\n  Q(a.g.u.i.name + \" instance already deleted\");\n}\nfunction Hc() {\n}\nfunction Ic(a, b, c) {\n  if (void 0 === a[b].B) {\n    var d = a[b];\n    a[b] = function() {\n      a[b].B.hasOwnProperty(arguments.length) || Q(`Function '${c}' called with an invalid number of arguments (${arguments.length}) - expects one of (${a[b].B})!`);\n      return a[b].B[arguments.length].apply(this, arguments);\n    };\n    a[b].B = [];\n    a[b].B[d.ga] = d;\n  }\n}\nfunction Jc(a, b, c) {\n  m.hasOwnProperty(a) ? ((void 0 === c || void 0 !== m[a].B && void 0 !== m[a].B[c]) && Q(`Cannot register public name '${a}' twice`), Ic(m, a, a), m.hasOwnProperty(c) && Q(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`), m[a].B[c] = b) : (m[a] = b, void 0 !== c && (m[a].Lc = c));\n}\nfunction Kc(a, b, c, d, e, f, g, n) {\n  this.name = a;\n  this.constructor = b;\n  this.N = c;\n  this.W = d;\n  this.A = e;\n  this.Nb = f;\n  this.pa = g;\n  this.Ib = n;\n  this.mb = [];\n}\nfunction Lc(a, b, c) {\n  for (; b !== c;) {\n    b.pa || Q(`Expected null or instance of ${c.name}, got an instance of ${b.name}`), a = b.pa(a), b = b.A;\n  }\n  return a;\n}\nfunction Mc(a, b) {\n  if (null === b) {\n    return this.Pa && Q(`null is not a valid ${this.name}`), 0;\n  }\n  b.g || Q(`Cannot pass \"${Nc(b)}\" as a ${this.name}`);\n  b.g.o || Q(`Cannot pass deleted object as a pointer of type ${this.name}`);\n  return Lc(b.g.o, b.g.u.i, this.i);\n}\nfunction Oc(a, b) {\n  if (null === b) {\n    this.Pa && Q(`null is not a valid ${this.name}`);\n    if (this.ya) {\n      var c = this.Ra();\n      null !== a && a.push(this.W, c);\n      return c;\n    }\n    return 0;\n  }\n  b.g || Q(`Cannot pass \"${Nc(b)}\" as a ${this.name}`);\n  b.g.o || Q(`Cannot pass deleted object as a pointer of type ${this.name}`);\n  !this.xa && b.g.u.xa && Q(`Cannot convert argument of type ${b.g.L ? b.g.L.name : b.g.u.name} to parameter type ${this.name}`);\n  c = Lc(b.g.o, b.g.u.i, this.i);\n  if (this.ya) {\n    switch(void 0 === b.g.H && Q(\"Passing raw pointer to smart pointer is illegal\"), this.ic) {\n      case 0:\n        b.g.L === this ? c = b.g.H : Q(`Cannot convert argument of type ${b.g.L ? b.g.L.name : b.g.u.name} to parameter type ${this.name}`);\n        break;\n      case 1:\n        c = b.g.H;\n        break;\n      case 2:\n        if (b.g.L === this) {\n          c = b.g.H;\n        } else {\n          var d = b.clone();\n          c = this.cc(c, bc(function() {\n            d[\"delete\"]();\n          }));\n          null !== a && a.push(this.W, c);\n        }\n        break;\n      default:\n        Q(\"Unsupporting sharing policy\");\n    }\n  }\n  return c;\n}\nfunction Pc(a, b) {\n  if (null === b) {\n    return this.Pa && Q(`null is not a valid ${this.name}`), 0;\n  }\n  b.g || Q(`Cannot pass \"${Nc(b)}\" as a ${this.name}`);\n  b.g.o || Q(`Cannot pass deleted object as a pointer of type ${this.name}`);\n  b.g.u.xa && Q(`Cannot convert argument of type ${b.g.u.name} to parameter type ${this.name}`);\n  return Lc(b.g.o, b.g.u.i, this.i);\n}\nfunction Qc(a, b, c, d) {\n  this.name = a;\n  this.i = b;\n  this.Pa = c;\n  this.xa = d;\n  this.ya = !1;\n  this.W = this.cc = this.Ra = this.ob = this.ic = this.bc = void 0;\n  void 0 !== b.A ? this.toWireType = Oc : (this.toWireType = d ? Mc : Pc, this.K = null);\n}\nfunction Rc(a, b, c) {\n  m.hasOwnProperty(a) || wc(\"Replacing nonexistant public symbol\");\n  void 0 !== m[a].B && void 0 !== c ? m[a].B[c] = b : (m[a] = b, m[a].ga = c);\n}\nvar Sc = [], Tc = a => {\n  var b = Sc[a];\n  b || (a >= Sc.length && (Sc.length = a + 1), Sc[a] = b = za.get(a));\n  return b;\n}, Uc = (a, b) => {\n  var c = [];\n  return function() {\n    c.length = 0;\n    Object.assign(c, arguments);\n    if (a.includes(\"j\")) {\n      var d = m[\"dynCall_\" + a];\n      d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);\n    } else {\n      d = Tc(b).apply(null, c);\n    }\n    return d;\n  };\n};\nfunction V(a, b) {\n  a = S(a);\n  var c = a.includes(\"j\") ? Uc(a, b) : Tc(b);\n  \"function\" != typeof c && Q(`unknown function pointer with signature ${a}: ${b}`);\n  return c;\n}\nvar Vc = void 0;\nfunction Wc(a, b) {\n  function c(f) {\n    e[f] || kc[f] || (Dc[f] ? Dc[f].forEach(c) : (d.push(f), e[f] = !0));\n  }\n  var d = [], e = {};\n  b.forEach(c);\n  throw new Vc(`${a}: ` + d.map(lc).join([\", \"]));\n}\nfunction Xc(a, b, c, d, e) {\n  var f = b.length;\n  2 > f && Q(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n  var g = null !== b[1] && null !== c, n = !1;\n  for (c = 1; c < b.length; ++c) {\n    if (null !== b[c] && void 0 === b[c].K) {\n      n = !0;\n      break;\n    }\n  }\n  var p = \"void\" !== b[0].name, l = f - 2, t = Array(l), u = [], x = [];\n  return function() {\n    arguments.length !== l && Q(`function ${a} called with ${arguments.length} arguments, expected ${l} args!`);\n    x.length = 0;\n    u.length = g ? 2 : 1;\n    u[0] = e;\n    if (g) {\n      var k = b[1].toWireType(x, this);\n      u[1] = k;\n    }\n    for (var q = 0; q < l; ++q) {\n      t[q] = b[q + 2].toWireType(x, arguments[q]), u.push(t[q]);\n    }\n    q = d.apply(null, u);\n    if (n) {\n      Ac(x);\n    } else {\n      for (var v = g ? 1 : 2; v < b.length; v++) {\n        var y = 1 === v ? k : t[v - 2];\n        null !== b[v].K && b[v].K(y);\n      }\n    }\n    k = p ? b[0].fromWireType(q) : void 0;\n    return k;\n  };\n}\nfunction Yc(a, b) {\n  for (var c = [], d = 0; d < a; d++) {\n    c.push(K[b + 4 * d >> 2]);\n  }\n  return c;\n}\nfunction Zc(a, b, c) {\n  a instanceof Object || Q(`${c} with invalid \"this\": ${a}`);\n  a instanceof b.i.constructor || Q(`${c} incompatible with \"this\" of type ${a.constructor.name}`);\n  a.g.o || Q(`cannot call emscripten binding method ${c} on deleted object`);\n  return Lc(a.g.o, a.g.u.i, b.i);\n}\nfunction $c(a) {\n  a >= P.h && 0 === --P.get(a).qb && P.Sb(a);\n}\nfunction ad(a, b, c) {\n  switch(b) {\n    case 0:\n      return function(d) {\n        return this.fromWireType((c ? D : G)[d]);\n      };\n    case 1:\n      return function(d) {\n        return this.fromWireType((c ? I : va)[d >> 1]);\n      };\n    case 2:\n      return function(d) {\n        return this.fromWireType((c ? J : K)[d >> 2]);\n      };\n    default:\n      throw new TypeError(\"Unknown integer type: \" + a);\n  }\n}\nfunction Nc(a) {\n  if (null === a) {\n    return \"null\";\n  }\n  var b = typeof a;\n  return \"object\" === b || \"array\" === b || \"function\" === b ? a.toString() : \"\" + a;\n}\nfunction bd(a, b) {\n  switch(b) {\n    case 2:\n      return function(c) {\n        return this.fromWireType(wa[c >> 2]);\n      };\n    case 3:\n      return function(c) {\n        return this.fromWireType(xa[c >> 3]);\n      };\n    default:\n      throw new TypeError(\"Unknown float type: \" + a);\n  }\n}\nfunction cd(a, b, c) {\n  switch(b) {\n    case 0:\n      return c ? function(d) {\n        return D[d];\n      } : function(d) {\n        return G[d];\n      };\n    case 1:\n      return c ? function(d) {\n        return I[d >> 1];\n      } : function(d) {\n        return va[d >> 1];\n      };\n    case 2:\n      return c ? function(d) {\n        return J[d >> 2];\n      } : function(d) {\n        return K[d >> 2];\n      };\n    default:\n      throw new TypeError(\"Unknown integer type: \" + a);\n  }\n}\nvar dd = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, ed = (a, b) => {\n  var c = a >> 1;\n  for (var d = c + b / 2; !(c >= d) && va[c];) {\n    ++c;\n  }\n  c <<= 1;\n  if (32 < c - a && dd) {\n    return dd.decode(G.subarray(a, c));\n  }\n  c = \"\";\n  for (d = 0; !(d >= b / 2); ++d) {\n    var e = I[a + 2 * d >> 1];\n    if (0 == e) {\n      break;\n    }\n    c += String.fromCharCode(e);\n  }\n  return c;\n}, fd = (a, b, c) => {\n  void 0 === c && (c = 2147483647);\n  if (2 > c) {\n    return 0;\n  }\n  c -= 2;\n  var d = b;\n  c = c < 2 * a.length ? c / 2 : a.length;\n  for (var e = 0; e < c; ++e) {\n    I[b >> 1] = a.charCodeAt(e), b += 2;\n  }\n  I[b >> 1] = 0;\n  return b - d;\n}, gd = a => 2 * a.length, hd = (a, b) => {\n  for (var c = 0, d = \"\"; !(c >= b / 4);) {\n    var e = J[a + 4 * c >> 2];\n    if (0 == e) {\n      break;\n    }\n    ++c;\n    65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n  }\n  return d;\n}, jd = (a, b, c) => {\n  void 0 === c && (c = 2147483647);\n  if (4 > c) {\n    return 0;\n  }\n  var d = b;\n  c = d + c - 4;\n  for (var e = 0; e < a.length; ++e) {\n    var f = a.charCodeAt(e);\n    if (55296 <= f && 57343 >= f) {\n      var g = a.charCodeAt(++e);\n      f = 65536 + ((f & 1023) << 10) | g & 1023;\n    }\n    J[b >> 2] = f;\n    b += 4;\n    if (b + 4 > c) {\n      break;\n    }\n  }\n  J[b >> 2] = 0;\n  return b - d;\n}, kd = a => {\n  for (var b = 0, c = 0; c < a.length; ++c) {\n    var d = a.charCodeAt(c);\n    55296 <= d && 57343 >= d && ++c;\n    b += 4;\n  }\n  return b;\n}, ld = {};\nfunction md(a) {\n  var b = ld[a];\n  return void 0 === b ? S(a) : b;\n}\nvar nd = [];\nfunction od(a) {\n  var b = nd.length;\n  nd.push(a);\n  return b;\n}\nfunction pd(a, b) {\n  for (var c = Array(a), d = 0; d < a; ++d) {\n    c[d] = oc(K[b + 4 * d >> 2], \"parameter \" + d);\n  }\n  return c;\n}\nvar qd = [], rd = [];\nfunction sd(a) {\n  a.zc = a.getExtension(\"WEBGL_draw_instanced_base_vertex_base_instance\");\n}\nfunction td(a) {\n  a.Hc = a.getExtension(\"WEBGL_multi_draw_instanced_base_vertex_base_instance\");\n}\nvar ud = 1, vd = [], W = [], wd = [], xd = [], yd = [], zd = [], Ad = [], w = [], Bd = {};\nfunction X(a) {\n  Cd || (Cd = a);\n}\nfunction Dd(a) {\n  for (var b = ud++, c = a.length; c < b; c++) {\n    a[c] = null;\n  }\n  return b;\n}\nfunction ha(a, b) {\n  var c = Dd(w), d = {handle:c, attributes:b, version:b.Dc, D:a};\n  a.canvas && (a.canvas.zb = d);\n  w[c] = d;\n  (\"undefined\" == typeof b.Jb || b.Jb) && Ed(d);\n  return c;\n}\nfunction ia(a) {\n  r = w[a];\n  m.xc = Y = r && r.D;\n  return !(a && !Y);\n}\nfunction Ed(a) {\n  a || (a = r);\n  if (!a.Ub) {\n    a.Ub = !0;\n    var b = a.D;\n    sd(b);\n    td(b);\n    2 <= a.version && (b.$a = b.getExtension(\"EXT_disjoint_timer_query_webgl2\"));\n    if (2 > a.version || !b.$a) {\n      b.$a = b.getExtension(\"EXT_disjoint_timer_query\");\n    }\n    Fd(b);\n    (b.getSupportedExtensions() || []).forEach(function(c) {\n      c.includes(\"lose_context\") || c.includes(\"debug\") || b.getExtension(c);\n    });\n  }\n}\nvar Cd, r;\nfunction Fd(a) {\n  a.Jc = a.getExtension(\"WEBGL_multi_draw\");\n}\nvar Gd = {}, Id = () => {\n  if (!Hd) {\n    var a = {USER:\"web_user\", LOGNAME:\"web_user\", PATH:\"/\", PWD:\"/\", HOME:\"/home/web_user\", LANG:(\"object\" == typeof navigator && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", _:ka || \"./this.program\"}, b;\n    for (b in Gd) {\n      void 0 === Gd[b] ? delete a[b] : a[b] = Gd[b];\n    }\n    var c = [];\n    for (b in a) {\n      c.push(`${b}=${a[b]}`);\n    }\n    Hd = c;\n  }\n  return Hd;\n}, Hd, Jd = [];\nfunction Kd(a, b, c, d) {\n  for (var e = 0; e < a; e++) {\n    var f = Y[c](), g = f && Dd(d);\n    f ? (f.name = g, d[g] = f) : X(1282);\n    J[b + 4 * e >> 2] = g;\n  }\n}\nfunction Ld(a, b) {\n  if (b) {\n    var c = void 0;\n    switch(a) {\n      case 36346:\n        c = 1;\n        break;\n      case 36344:\n        return;\n      case 34814:\n      case 36345:\n        c = 0;\n        break;\n      case 34466:\n        var d = Y.getParameter(34467);\n        c = d ? d.length : 0;\n        break;\n      case 33309:\n        if (2 > r.version) {\n          X(1282);\n          return;\n        }\n        c = 2 * (Y.getSupportedExtensions() || []).length;\n        break;\n      case 33307:\n      case 33308:\n        if (2 > r.version) {\n          X(1280);\n          return;\n        }\n        c = 33307 == a ? 3 : 0;\n    }\n    if (void 0 === c) {\n      switch(d = Y.getParameter(a), typeof d) {\n        case \"number\":\n          c = d;\n          break;\n        case \"boolean\":\n          c = d ? 1 : 0;\n          break;\n        case \"string\":\n          X(1280);\n          return;\n        case \"object\":\n          if (null === d) {\n            switch(a) {\n              case 34964:\n              case 35725:\n              case 34965:\n              case 36006:\n              case 36007:\n              case 32873:\n              case 34229:\n              case 36662:\n              case 36663:\n              case 35053:\n              case 35055:\n              case 36010:\n              case 35097:\n              case 35869:\n              case 32874:\n              case 36389:\n              case 35983:\n              case 35368:\n              case 34068:\n                c = 0;\n                break;\n              default:\n                X(1280);\n                return;\n            }\n          } else {\n            if (d instanceof Float32Array || d instanceof Uint32Array || d instanceof Int32Array || d instanceof Array) {\n              for (a = 0; a < d.length; ++a) {\n                J[b + 4 * a >> 2] = d[a];\n              }\n              return;\n            }\n            try {\n              c = d.name | 0;\n            } catch (e) {\n              X(1280);\n              qa(\"GL_INVALID_ENUM in glGet0v: Unknown object returned from WebGL getParameter(\" + a + \")! (error: \" + e + \")\");\n              return;\n            }\n          }\n          break;\n        default:\n          X(1280);\n          qa(\"GL_INVALID_ENUM in glGet0v: Native code calling glGet0v(\" + a + \") and it returns \" + d + \" of type \" + typeof d + \"!\");\n          return;\n      }\n    }\n    J[b >> 2] = c;\n  } else {\n    X(1281);\n  }\n}\nvar Nd = a => {\n  var b = db(a) + 1, c = Md(b);\n  c && eb(a, G, c, b);\n  return c;\n};\nfunction Od(a) {\n  return \"]\" == a.slice(-1) && a.lastIndexOf(\"[\");\n}\nvar Pd = a => 0 === a % 4 && (0 !== a % 100 || 0 === a % 400), Qd = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Rd = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Sd = (a, b, c, d) => {\n  function e(k, q, v) {\n    for (k = \"number\" == typeof k ? k.toString() : k || \"\"; k.length < q;) {\n      k = v[0] + k;\n    }\n    return k;\n  }\n  function f(k, q) {\n    return e(k, q, \"0\");\n  }\n  function g(k, q) {\n    function v(C) {\n      return 0 > C ? -1 : 0 < C ? 1 : 0;\n    }\n    var y;\n    0 === (y = v(k.getFullYear() - q.getFullYear())) && 0 === (y = v(k.getMonth() - q.getMonth())) && (y = v(k.getDate() - q.getDate()));\n    return y;\n  }\n  function n(k) {\n    switch(k.getDay()) {\n      case 0:\n        return new Date(k.getFullYear() - 1, 11, 29);\n      case 1:\n        return k;\n      case 2:\n        return new Date(k.getFullYear(), 0, 3);\n      case 3:\n        return new Date(k.getFullYear(), 0, 2);\n      case 4:\n        return new Date(k.getFullYear(), 0, 1);\n      case 5:\n        return new Date(k.getFullYear() - 1, 11, 31);\n      case 6:\n        return new Date(k.getFullYear() - 1, 11, 30);\n    }\n  }\n  function p(k) {\n    var q = k.ca;\n    for (k = new Date((new Date(k.da + 1900, 0, 1)).getTime()); 0 < q;) {\n      var v = k.getMonth(), y = (Pd(k.getFullYear()) ? Qd : Rd)[v];\n      if (q > y - k.getDate()) {\n        q -= y - k.getDate() + 1, k.setDate(1), 11 > v ? k.setMonth(v + 1) : (k.setMonth(0), k.setFullYear(k.getFullYear() + 1));\n      } else {\n        k.setDate(k.getDate() + q);\n        break;\n      }\n    }\n    v = new Date(k.getFullYear() + 1, 0, 4);\n    q = n(new Date(k.getFullYear(), 0, 4));\n    v = n(v);\n    return 0 >= g(q, k) ? 0 >= g(v, k) ? k.getFullYear() + 1 : k.getFullYear() : k.getFullYear() - 1;\n  }\n  var l = J[d + 40 >> 2];\n  d = {lc:J[d >> 2], kc:J[d + 4 >> 2], Ga:J[d + 8 >> 2], Ta:J[d + 12 >> 2], Ha:J[d + 16 >> 2], da:J[d + 20 >> 2], R:J[d + 24 >> 2], ca:J[d + 28 >> 2], Oc:J[d + 32 >> 2], jc:J[d + 36 >> 2], mc:l ? l ? L(G, l) : \"\" : \"\"};\n  c = c ? L(G, c) : \"\";\n  l = {\"%c\":\"%a %b %d %H:%M:%S %Y\", \"%D\":\"%m/%d/%y\", \"%F\":\"%Y-%m-%d\", \"%h\":\"%b\", \"%r\":\"%I:%M:%S %p\", \"%R\":\"%H:%M\", \"%T\":\"%H:%M:%S\", \"%x\":\"%m/%d/%y\", \"%X\":\"%H:%M:%S\", \"%Ec\":\"%c\", \"%EC\":\"%C\", \"%Ex\":\"%m/%d/%y\", \"%EX\":\"%H:%M:%S\", \"%Ey\":\"%y\", \"%EY\":\"%Y\", \"%Od\":\"%d\", \"%Oe\":\"%e\", \"%OH\":\"%H\", \"%OI\":\"%I\", \"%Om\":\"%m\", \"%OM\":\"%M\", \"%OS\":\"%S\", \"%Ou\":\"%u\", \"%OU\":\"%U\", \"%OV\":\"%V\", \"%Ow\":\"%w\", \"%OW\":\"%W\", \"%Oy\":\"%y\",};\n  for (var t in l) {\n    c = c.replace(new RegExp(t, \"g\"), l[t]);\n  }\n  var u = \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"), x = \"January February March April May June July August September October November December\".split(\" \");\n  l = {\"%a\":k => u[k.R].substring(0, 3), \"%A\":k => u[k.R], \"%b\":k => x[k.Ha].substring(0, 3), \"%B\":k => x[k.Ha], \"%C\":k => f((k.da + 1900) / 100 | 0, 2), \"%d\":k => f(k.Ta, 2), \"%e\":k => e(k.Ta, 2, \" \"), \"%g\":k => p(k).toString().substring(2), \"%G\":k => p(k), \"%H\":k => f(k.Ga, 2), \"%I\":k => {\n    k = k.Ga;\n    0 == k ? k = 12 : 12 < k && (k -= 12);\n    return f(k, 2);\n  }, \"%j\":k => {\n    for (var q = 0, v = 0; v <= k.Ha - 1; q += (Pd(k.da + 1900) ? Qd : Rd)[v++]) {\n    }\n    return f(k.Ta + q, 3);\n  }, \"%m\":k => f(k.Ha + 1, 2), \"%M\":k => f(k.kc, 2), \"%n\":() => \"\\n\", \"%p\":k => 0 <= k.Ga && 12 > k.Ga ? \"AM\" : \"PM\", \"%S\":k => f(k.lc, 2), \"%t\":() => \"\\t\", \"%u\":k => k.R || 7, \"%U\":k => f(Math.floor((k.ca + 7 - k.R) / 7), 2), \"%V\":k => {\n    var q = Math.floor((k.ca + 7 - (k.R + 6) % 7) / 7);\n    2 >= (k.R + 371 - k.ca - 2) % 7 && q++;\n    if (q) {\n      53 == q && (v = (k.R + 371 - k.ca) % 7, 4 == v || 3 == v && Pd(k.da) || (q = 1));\n    } else {\n      q = 52;\n      var v = (k.R + 7 - k.ca - 1) % 7;\n      (4 == v || 5 == v && Pd(k.da % 400 - 1)) && q++;\n    }\n    return f(q, 2);\n  }, \"%w\":k => k.R, \"%W\":k => f(Math.floor((k.ca + 7 - (k.R + 6) % 7) / 7), 2), \"%y\":k => (k.da + 1900).toString().substring(2), \"%Y\":k => k.da + 1900, \"%z\":k => {\n    k = k.jc;\n    var q = 0 <= k;\n    k = Math.abs(k) / 60;\n    return (q ? \"+\" : \"-\") + String(\"0000\" + (k / 60 * 100 + k % 60)).slice(-4);\n  }, \"%Z\":k => k.mc, \"%%\":() => \"%\"};\n  c = c.replace(/%%/g, \"\\x00\\x00\");\n  for (t in l) {\n    c.includes(t) && (c = c.replace(new RegExp(t, \"g\"), l[t](d)));\n  }\n  c = c.replace(/\\0\\0/g, \"%\");\n  t = fb(c, !1);\n  if (t.length > b) {\n    return 0;\n  }\n  D.set(t, a);\n  return t.length - 1;\n};\nfunction Eb(a, b, c, d) {\n  a || (a = this);\n  this.parent = a;\n  this.U = a.U;\n  this.Aa = null;\n  this.id = wb++;\n  this.name = b;\n  this.mode = c;\n  this.l = {};\n  this.m = {};\n  this.Ca = d;\n}\nObject.defineProperties(Eb.prototype, {read:{get:function() {\n  return 365 === (this.mode & 365);\n}, set:function(a) {\n  a ? this.mode |= 365 : this.mode &= -366;\n}}, write:{get:function() {\n  return 146 === (this.mode & 146);\n}, set:function(a) {\n  a ? this.mode |= 146 : this.mode &= -147;\n}}});\nRb();\nxb = Array(4096);\nLb(N, \"/\");\nO(\"/tmp\", 16895, 0);\nO(\"/home\", 16895, 0);\nO(\"/home/web_user\", 16895, 0);\n(() => {\n  O(\"/dev\", 16895, 0);\n  ib(259, {read:() => 0, write:(d, e, f, g) => g,});\n  Mb(\"/dev/null\", 259);\n  hb(1280, kb);\n  hb(1536, lb);\n  Mb(\"/dev/tty\", 1280);\n  Mb(\"/dev/tty1\", 1536);\n  var a = new Uint8Array(1024), b = 0, c = () => {\n    0 === b && (b = $a(a).byteLength);\n    return a[--b];\n  };\n  Ub(\"random\", c);\n  Ub(\"urandom\", c);\n  O(\"/dev/shm\", 16895, 0);\n  O(\"/dev/shm/tmp\", 16895, 0);\n})();\n(() => {\n  O(\"/proc\", 16895, 0);\n  var a = O(\"/proc/self\", 16895, 0);\n  O(\"/proc/self/fd\", 16895, 0);\n  Lb({U:() => {\n    var b = ob(a, \"fd\", 16895, 73);\n    b.l = {ma:(c, d) => {\n      var e = Ib(+d);\n      c = {parent:null, U:{ib:\"fake\"}, l:{na:() => e.path},};\n      return c.parent = c;\n    }};\n    return b;\n  }}, \"/proc/self/fd\");\n})();\nObject.assign($b.prototype, {get(a) {\n  return this.M[a];\n}, has(a) {\n  return void 0 !== this.M[a];\n}, ta(a) {\n  var b = this.eb.pop() || this.M.length;\n  this.M[b] = a;\n  return b;\n}, Sb(a) {\n  this.M[a] = void 0;\n  this.eb.push(a);\n}});\nac = m.BindingError = class extends Error {\n  constructor(a) {\n    super(a);\n    this.name = \"BindingError\";\n  }\n};\nP.M.push({value:void 0}, {value:null}, {value:!0}, {value:!1},);\nP.h = P.M.length;\nm.count_emval_handles = function() {\n  for (var a = 0, b = P.h; b < P.M.length; ++b) {\n    void 0 !== P.M[b] && ++a;\n  }\n  return a;\n};\ndc = m.PureVirtualError = cc(\"PureVirtualError\");\nfor (var Td = Array(256), Ud = 0; 256 > Ud; ++Ud) {\n  Td[Ud] = String.fromCharCode(Ud);\n}\nec = Td;\nm.getInheritedInstanceCount = function() {\n  return Object.keys(ic).length;\n};\nm.getLiveInheritedInstances = function() {\n  var a = [], b;\n  for (b in ic) {\n    ic.hasOwnProperty(b) && a.push(ic[b]);\n  }\n  return a;\n};\nm.flushPendingDeletes = gc;\nm.setDelayFunction = function(a) {\n  hc = a;\n  fc.length && hc && hc(gc);\n};\nvc = m.InternalError = class extends Error {\n  constructor(a) {\n    super(a);\n    this.name = \"InternalError\";\n  }\n};\nHc.prototype.isAliasOf = function(a) {\n  if (!(this instanceof Hc && a instanceof Hc)) {\n    return !1;\n  }\n  var b = this.g.u.i, c = this.g.o, d = a.g.u.i;\n  for (a = a.g.o; b.A;) {\n    c = b.pa(c), b = b.A;\n  }\n  for (; d.A;) {\n    a = d.pa(a), d = d.A;\n  }\n  return b === d && c === a;\n};\nHc.prototype.clone = function() {\n  this.g.o || Gc(this);\n  if (this.g.ka) {\n    return this.g.count.value += 1, this;\n  }\n  var a = yc, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.g;\n  a = a(c.call(b, d, {g:{value:{count:e.count, ha:e.ha, ka:e.ka, o:e.o, u:e.u, H:e.H, L:e.L,},}}));\n  a.g.count.value += 1;\n  a.g.ha = !1;\n  return a;\n};\nHc.prototype[\"delete\"] = function() {\n  this.g.o || Gc(this);\n  this.g.ha && !this.g.ka && Q(\"Object already scheduled for deletion\");\n  pc(this);\n  rc(this.g);\n  this.g.ka || (this.g.H = void 0, this.g.o = void 0);\n};\nHc.prototype.isDeleted = function() {\n  return !this.g.o;\n};\nHc.prototype.deleteLater = function() {\n  this.g.o || Gc(this);\n  this.g.ha && !this.g.ka && Q(\"Object already scheduled for deletion\");\n  fc.push(this);\n  1 === fc.length && hc && hc(gc);\n  this.g.ha = !0;\n  return this;\n};\nQc.prototype.Ob = function(a) {\n  this.ob && (a = this.ob(a));\n  return a;\n};\nQc.prototype.Za = function(a) {\n  this.W && this.W(a);\n};\nQc.prototype.argPackAdvance = 8;\nQc.prototype.readValueFromPointer = Bc;\nQc.prototype.deleteObject = function(a) {\n  if (null !== a) {\n    a[\"delete\"]();\n  }\n};\nQc.prototype.fromWireType = function(a) {\n  function b() {\n    return this.ya ? xc(this.i.N, {u:this.bc, o:c, L:this, H:a,}) : xc(this.i.N, {u:this, o:a,});\n  }\n  var c = this.Ob(a);\n  if (!c) {\n    return this.Za(a), null;\n  }\n  var d = uc(this.i, c);\n  if (void 0 !== d) {\n    if (0 === d.g.count.value) {\n      return d.g.o = c, d.g.H = a, d.clone();\n    }\n    d = d.clone();\n    this.Za(a);\n    return d;\n  }\n  d = this.i.Nb(c);\n  d = tc[d];\n  if (!d) {\n    return b.call(this);\n  }\n  d = this.xa ? d.Fb : d.pointerType;\n  var e = sc(c, this.i, d.i);\n  return null === e ? b.call(this) : this.ya ? xc(d.i.N, {u:d, o:e, L:this, H:a,}) : xc(d.i.N, {u:d, o:e,});\n};\nVc = m.UnboundTypeError = cc(\"UnboundTypeError\");\nfor (var Y, Vd = 0; 32 > Vd; ++Vd) {\n  Jd.push(Array(Vd));\n}\nvar Xd = {__syscall_fcntl64:function(a, b, c) {\n  Wb = c;\n  try {\n    var d = Ib(a);\n    switch(b) {\n      case 0:\n        var e = Xb();\n        return 0 > e ? -28 : Kb(d, e).X;\n      case 1:\n      case 2:\n        return 0;\n      case 3:\n        return d.flags;\n      case 4:\n        return e = Xb(), d.flags |= e, 0;\n      case 5:\n        return e = Xb(), I[e + 0 >> 1] = 2, 0;\n      case 6:\n      case 7:\n        return 0;\n      case 16:\n      case 8:\n        return -28;\n      case 9:\n        return J[Wd() >> 2] = 28, -1;\n      default:\n        return -28;\n    }\n  } catch (f) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== f.name) {\n      throw f;\n    }\n    return -f.aa;\n  }\n}, __syscall_ioctl:function(a, b, c) {\n  Wb = c;\n  try {\n    var d = Ib(a);\n    switch(b) {\n      case 21509:\n        return d.s ? 0 : -59;\n      case 21505:\n        if (!d.s) {\n          return -59;\n        }\n        if (d.s.V.Wb) {\n          b = [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,];\n          var e = Xb();\n          J[e >> 2] = 25856;\n          J[e + 4 >> 2] = 5;\n          J[e + 8 >> 2] = 191;\n          J[e + 12 >> 2] = 35387;\n          for (var f = 0; 32 > f; f++) {\n            D[e + f + 17 >> 0] = b[f] || 0;\n          }\n        }\n        return 0;\n      case 21510:\n      case 21511:\n      case 21512:\n        return d.s ? 0 : -59;\n      case 21506:\n      case 21507:\n      case 21508:\n        if (!d.s) {\n          return -59;\n        }\n        if (d.s.V.Xb) {\n          for (e = Xb(), b = [], f = 0; 32 > f; f++) {\n            b.push(D[e + f + 17 >> 0]);\n          }\n        }\n        return 0;\n      case 21519:\n        if (!d.s) {\n          return -59;\n        }\n        e = Xb();\n        return J[e >> 2] = 0;\n      case 21520:\n        return d.s ? -28 : -59;\n      case 21531:\n        e = Xb();\n        if (!d.m.Vb) {\n          throw new M(59);\n        }\n        return d.m.Vb(d, b, e);\n      case 21523:\n        if (!d.s) {\n          return -59;\n        }\n        d.s.V.Yb && (f = [24, 80], e = Xb(), I[e >> 1] = f[0], I[e + 2 >> 1] = f[1]);\n        return 0;\n      case 21524:\n        return d.s ? 0 : -59;\n      case 21515:\n        return d.s ? 0 : -59;\n      default:\n        return -28;\n    }\n  } catch (g) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== g.name) {\n      throw g;\n    }\n    return -g.aa;\n  }\n}, __syscall_openat:function(a, b, c, d) {\n  Wb = d;\n  try {\n    b = b ? L(G, b) : \"\";\n    var e = b;\n    if (\"/\" === e.charAt(0)) {\n      b = e;\n    } else {\n      var f = -100 === a ? \"/\" : Ib(a).path;\n      if (0 == e.length) {\n        throw new M(44);\n      }\n      b = Wa(f + \"/\" + e);\n    }\n    var g = d ? Xb() : 0;\n    return Pb(b, c, g).X;\n  } catch (n) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== n.name) {\n      throw n;\n    }\n    return -n.aa;\n  }\n}, _embind_create_inheriting_constructor:function(a, b, c) {\n  a = S(a);\n  b = oc(b, \"wrapper\");\n  c = R(c);\n  var d = [].slice, e = b.i, f = e.N, g = e.A.N, n = e.A.constructor;\n  a = Zb(a, function() {\n    e.A.mb.forEach(function(l) {\n      if (this[l] === g[l]) {\n        throw new dc(`Pure virtual function ${l} must be implemented in JavaScript`);\n      }\n    }.bind(this));\n    Object.defineProperty(this, \"__parent\", {value:f});\n    this.__construct.apply(this, d.call(arguments));\n  });\n  f.__construct = function() {\n    this === f && Q(\"Pass correct 'this' to __construct\");\n    var l = n.implement.apply(void 0, [this].concat(d.call(arguments)));\n    pc(l);\n    var t = l.g;\n    l.notifyOnDestruction();\n    t.ka = !0;\n    Object.defineProperties(this, {g:{value:t}});\n    yc(this);\n    l = t.o;\n    l = jc(e, l);\n    ic.hasOwnProperty(l) ? Q(`Tried to register registered instance: ${l}`) : ic[l] = this;\n  };\n  f.__destruct = function() {\n    this === f && Q(\"Pass correct 'this' to __destruct\");\n    pc(this);\n    var l = this.g.o;\n    l = jc(e, l);\n    ic.hasOwnProperty(l) ? delete ic[l] : Q(`Tried to unregister unregistered instance: ${l}`);\n  };\n  a.prototype = Object.create(f);\n  for (var p in c) {\n    a.prototype[p] = c[p];\n  }\n  return bc(a);\n}, _embind_finalize_value_object:function(a) {\n  var b = zc[a];\n  delete zc[a];\n  var c = b.Ra, d = b.W, e = b.ab, f = e.map(g => g.Rb).concat(e.map(g => g.fc));\n  T([a], f, g => {\n    var n = {};\n    e.forEach((p, l) => {\n      var t = g[l], u = p.Pb, x = p.Qb, k = g[l + e.length], q = p.ec, v = p.hc;\n      n[p.Lb] = {read:y => t.fromWireType(u(x, y)), write:(y, C) => {\n        var z = [];\n        q(v, y, k.toWireType(z, C));\n        Ac(z);\n      }};\n    });\n    return [{name:b.name, fromWireType:function(p) {\n      var l = {}, t;\n      for (t in n) {\n        l[t] = n[t].read(p);\n      }\n      d(p);\n      return l;\n    }, toWireType:function(p, l) {\n      for (var t in n) {\n        if (!(t in l)) {\n          throw new TypeError(`Missing field: \"${t}\"`);\n        }\n      }\n      var u = c();\n      for (t in n) {\n        n[t].write(u, l[t]);\n      }\n      null !== p && p.push(d, u);\n      return u;\n    }, argPackAdvance:8, readValueFromPointer:Bc, K:d,}];\n  });\n}, _embind_register_bigint:function() {\n}, _embind_register_bool:function(a, b, c, d, e) {\n  var f = Ec(c);\n  b = S(b);\n  U(a, {name:b, fromWireType:function(g) {\n    return !!g;\n  }, toWireType:function(g, n) {\n    return n ? d : e;\n  }, argPackAdvance:8, readValueFromPointer:function(g) {\n    if (1 === c) {\n      var n = D;\n    } else if (2 === c) {\n      n = I;\n    } else if (4 === c) {\n      n = J;\n    } else {\n      throw new TypeError(\"Unknown boolean type size: \" + b);\n    }\n    return this.fromWireType(n[g >> f]);\n  }, K:null,});\n}, _embind_register_class:function(a, b, c, d, e, f, g, n, p, l, t, u, x) {\n  t = S(t);\n  f = V(e, f);\n  n && (n = V(g, n));\n  l && (l = V(p, l));\n  x = V(u, x);\n  var k = Yb(t);\n  Jc(k, function() {\n    Wc(`Cannot construct ${t} due to unbound types`, [d]);\n  });\n  T([a, b, c], d ? [d] : [], function(q) {\n    q = q[0];\n    if (d) {\n      var v = q.i;\n      var y = v.N;\n    } else {\n      y = Hc.prototype;\n    }\n    q = Zb(k, function() {\n      if (Object.getPrototypeOf(this) !== C) {\n        throw new ac(\"Use 'new' to construct \" + t);\n      }\n      if (void 0 === z.$) {\n        throw new ac(t + \" has no accessible constructor\");\n      }\n      var H = z.$[arguments.length];\n      if (void 0 === H) {\n        throw new ac(`Tried to invoke ctor of ${t} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(z.$).toString()}) parameters instead!`);\n      }\n      return H.apply(this, arguments);\n    });\n    var C = Object.create(y, {constructor:{value:q},});\n    q.prototype = C;\n    var z = new Kc(t, q, C, x, v, f, n, l);\n    z.A && (void 0 === z.A.qa && (z.A.qa = []), z.A.qa.push(z));\n    v = new Qc(t, z, !0, !1);\n    y = new Qc(t + \"*\", z, !1, !1);\n    var E = new Qc(t + \" const*\", z, !1, !0);\n    tc[a] = {pointerType:y, Fb:E};\n    Rc(k, q);\n    return [v, y, E];\n  });\n}, _embind_register_class_class_function:function(a, b, c, d, e, f, g) {\n  var n = Yc(c, d);\n  b = S(b);\n  f = V(e, f);\n  T([], [a], function(p) {\n    function l() {\n      Wc(`Cannot call ${t} due to unbound types`, n);\n    }\n    p = p[0];\n    var t = `${p.name}.${b}`;\n    b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n    var u = p.i.constructor;\n    void 0 === u[b] ? (l.ga = c - 1, u[b] = l) : (Ic(u, b, t), u[b].B[c - 1] = l);\n    T([], n, function(x) {\n      x = Xc(t, [x[0], null].concat(x.slice(1)), null, f, g);\n      void 0 === u[b].B ? (x.ga = c - 1, u[b] = x) : u[b].B[c - 1] = x;\n      if (p.i.qa) {\n        for (const k of p.i.qa) {\n          k.constructor.hasOwnProperty(b) || (k.constructor[b] = x);\n        }\n      }\n      return [];\n    });\n    return [];\n  });\n}, _embind_register_class_class_property:function(a, b, c, d, e, f, g, n) {\n  b = S(b);\n  f = V(e, f);\n  T([], [a], function(p) {\n    p = p[0];\n    var l = `${p.name}.${b}`, t = {get() {\n      Wc(`Cannot access ${l} due to unbound types`, [c]);\n    }, enumerable:!0, configurable:!0};\n    t.set = n ? () => {\n      Wc(`Cannot access ${l} due to unbound types`, [c]);\n    } : () => {\n      Q(`${l} is a read-only property`);\n    };\n    Object.defineProperty(p.i.constructor, b, t);\n    T([], [c], function(u) {\n      u = u[0];\n      var x = {get() {\n        return u.fromWireType(f(d));\n      }, enumerable:!0};\n      n && (n = V(g, n), x.set = k => {\n        var q = [];\n        n(d, u.toWireType(q, k));\n        Ac(q);\n      });\n      Object.defineProperty(p.i.constructor, b, x);\n      return [];\n    });\n    return [];\n  });\n}, _embind_register_class_constructor:function(a, b, c, d, e, f) {\n  var g = Yc(b, c);\n  e = V(d, e);\n  T([], [a], function(n) {\n    n = n[0];\n    var p = `constructor ${n.name}`;\n    void 0 === n.i.$ && (n.i.$ = []);\n    if (void 0 !== n.i.$[b - 1]) {\n      throw new ac(`Cannot register multiple constructors with identical number of parameters (${b - 1}) for class '${n.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n    }\n    n.i.$[b - 1] = () => {\n      Wc(`Cannot construct ${n.name} due to unbound types`, g);\n    };\n    T([], g, function(l) {\n      l.splice(1, 0, null);\n      n.i.$[b - 1] = Xc(p, l, null, e, f);\n      return [];\n    });\n    return [];\n  });\n}, _embind_register_class_function:function(a, b, c, d, e, f, g, n) {\n  var p = Yc(c, d);\n  b = S(b);\n  f = V(e, f);\n  T([], [a], function(l) {\n    function t() {\n      Wc(`Cannot call ${u} due to unbound types`, p);\n    }\n    l = l[0];\n    var u = `${l.name}.${b}`;\n    b.startsWith(\"@@\") && (b = Symbol[b.substring(2)]);\n    n && l.i.mb.push(b);\n    var x = l.i.N, k = x[b];\n    void 0 === k || void 0 === k.B && k.className !== l.name && k.ga === c - 2 ? (t.ga = c - 2, t.className = l.name, x[b] = t) : (Ic(x, b, u), x[b].B[c - 2] = t);\n    T([], p, function(q) {\n      q = Xc(u, q, l, f, g);\n      void 0 === x[b].B ? (q.ga = c - 2, x[b] = q) : x[b].B[c - 2] = q;\n      return [];\n    });\n    return [];\n  });\n}, _embind_register_class_property:function(a, b, c, d, e, f, g, n, p, l) {\n  b = S(b);\n  e = V(d, e);\n  T([], [a], function(t) {\n    t = t[0];\n    var u = `${t.name}.${b}`, x = {get() {\n      Wc(`Cannot access ${u} due to unbound types`, [c, g]);\n    }, enumerable:!0, configurable:!0};\n    x.set = p ? () => {\n      Wc(`Cannot access ${u} due to unbound types`, [c, g]);\n    } : () => {\n      Q(u + \" is a read-only property\");\n    };\n    Object.defineProperty(t.i.N, b, x);\n    T([], p ? [c, g] : [c], function(k) {\n      var q = k[0], v = {get() {\n        var C = Zc(this, t, u + \" getter\");\n        return q.fromWireType(e(f, C));\n      }, enumerable:!0};\n      if (p) {\n        p = V(n, p);\n        var y = k[1];\n        v.set = function(C) {\n          var z = Zc(this, t, u + \" setter\"), E = [];\n          p(l, z, y.toWireType(E, C));\n          Ac(E);\n        };\n      }\n      Object.defineProperty(t.i.N, b, v);\n      return [];\n    });\n    return [];\n  });\n}, _embind_register_emval:function(a, b) {\n  b = S(b);\n  U(a, {name:b, fromWireType:function(c) {\n    var d = R(c);\n    $c(c);\n    return d;\n  }, toWireType:function(c, d) {\n    return bc(d);\n  }, argPackAdvance:8, readValueFromPointer:Bc, K:null,});\n}, _embind_register_enum:function(a, b, c, d) {\n  function e() {\n  }\n  c = Ec(c);\n  b = S(b);\n  e.values = {};\n  U(a, {name:b, constructor:e, fromWireType:function(f) {\n    return this.constructor.values[f];\n  }, toWireType:function(f, g) {\n    return g.value;\n  }, argPackAdvance:8, readValueFromPointer:ad(b, c, d), K:null,});\n  Jc(b, e);\n}, _embind_register_enum_value:function(a, b, c) {\n  var d = oc(a, \"enum\");\n  b = S(b);\n  a = d.constructor;\n  d = Object.create(d.constructor.prototype, {value:{value:c}, constructor:{value:Zb(`${d.name}_${b}`, function() {\n  })},});\n  a.values[c] = d;\n  a[b] = d;\n}, _embind_register_float:function(a, b, c) {\n  c = Ec(c);\n  b = S(b);\n  U(a, {name:b, fromWireType:function(d) {\n    return d;\n  }, toWireType:function(d, e) {\n    return e;\n  }, argPackAdvance:8, readValueFromPointer:bd(b, c), K:null,});\n}, _embind_register_function:function(a, b, c, d, e, f) {\n  var g = Yc(b, c);\n  a = S(a);\n  e = V(d, e);\n  Jc(a, function() {\n    Wc(`Cannot call ${a} due to unbound types`, g);\n  }, b - 1);\n  T([], g, function(n) {\n    Rc(a, Xc(a, [n[0], null].concat(n.slice(1)), null, e, f), b - 1);\n    return [];\n  });\n}, _embind_register_integer:function(a, b, c, d, e) {\n  b = S(b);\n  -1 === e && (e = 4294967295);\n  e = Ec(c);\n  var f = n => n;\n  if (0 === d) {\n    var g = 32 - 8 * c;\n    f = n => n << g >>> g;\n  }\n  c = b.includes(\"unsigned\") ? function(n, p) {\n    return p >>> 0;\n  } : function(n, p) {\n    return p;\n  };\n  U(a, {name:b, fromWireType:f, toWireType:c, argPackAdvance:8, readValueFromPointer:cd(b, e, 0 !== d), K:null,});\n}, _embind_register_memory_view:function(a, b, c) {\n  function d(f) {\n    f >>= 2;\n    var g = K;\n    return new e(g.buffer, g[f + 1], g[f]);\n  }\n  var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array,][b];\n  c = S(c);\n  U(a, {name:c, fromWireType:d, argPackAdvance:8, readValueFromPointer:d,}, {Tb:!0,});\n}, _embind_register_std_string:function(a, b) {\n  b = S(b);\n  var c = \"std::string\" === b;\n  U(a, {name:b, fromWireType:function(d) {\n    var e = K[d >> 2], f = d + 4;\n    if (c) {\n      for (var g = f, n = 0; n <= e; ++n) {\n        var p = f + n;\n        if (n == e || 0 == G[p]) {\n          g = g ? L(G, g, p - g) : \"\";\n          if (void 0 === l) {\n            var l = g;\n          } else {\n            l += String.fromCharCode(0), l += g;\n          }\n          g = p + 1;\n        }\n      }\n    } else {\n      l = Array(e);\n      for (n = 0; n < e; ++n) {\n        l[n] = String.fromCharCode(G[f + n]);\n      }\n      l = l.join(\"\");\n    }\n    nc(d);\n    return l;\n  }, toWireType:function(d, e) {\n    e instanceof ArrayBuffer && (e = new Uint8Array(e));\n    var f = \"string\" == typeof e;\n    f || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array || Q(\"Cannot pass non-string to std::string\");\n    var g = c && f ? db(e) : e.length;\n    var n = Md(4 + g + 1), p = n + 4;\n    K[n >> 2] = g;\n    if (c && f) {\n      eb(e, G, p, g + 1);\n    } else {\n      if (f) {\n        for (f = 0; f < g; ++f) {\n          var l = e.charCodeAt(f);\n          255 < l && (nc(p), Q(\"String has UTF-16 code units that do not fit in 8 bits\"));\n          G[p + f] = l;\n        }\n      } else {\n        for (f = 0; f < g; ++f) {\n          G[p + f] = e[f];\n        }\n      }\n    }\n    null !== d && d.push(nc, n);\n    return n;\n  }, argPackAdvance:8, readValueFromPointer:Bc, K:function(d) {\n    nc(d);\n  },});\n}, _embind_register_std_wstring:function(a, b, c) {\n  c = S(c);\n  if (2 === b) {\n    var d = ed;\n    var e = fd;\n    var f = gd;\n    var g = () => va;\n    var n = 1;\n  } else {\n    4 === b && (d = hd, e = jd, f = kd, g = () => K, n = 2);\n  }\n  U(a, {name:c, fromWireType:function(p) {\n    for (var l = K[p >> 2], t = g(), u, x = p + 4, k = 0; k <= l; ++k) {\n      var q = p + 4 + k * b;\n      if (k == l || 0 == t[q >> n]) {\n        x = d(x, q - x), void 0 === u ? u = x : (u += String.fromCharCode(0), u += x), x = q + b;\n      }\n    }\n    nc(p);\n    return u;\n  }, toWireType:function(p, l) {\n    \"string\" != typeof l && Q(`Cannot pass non-string to C++ string type ${c}`);\n    var t = f(l), u = Md(4 + t + b);\n    K[u >> 2] = t >> n;\n    e(l, u + 4, t + b);\n    null !== p && p.push(nc, u);\n    return u;\n  }, argPackAdvance:8, readValueFromPointer:Bc, K:function(p) {\n    nc(p);\n  },});\n}, _embind_register_value_object:function(a, b, c, d, e, f) {\n  zc[a] = {name:S(b), Ra:V(c, d), W:V(e, f), ab:[],};\n}, _embind_register_value_object_field:function(a, b, c, d, e, f, g, n, p, l) {\n  zc[a].ab.push({Lb:S(b), Rb:c, Pb:V(d, e), Qb:f, fc:g, ec:V(n, p), hc:l,});\n}, _embind_register_void:function(a, b) {\n  b = S(b);\n  U(a, {Zb:!0, name:b, argPackAdvance:0, fromWireType:function() {\n  }, toWireType:function() {\n  },});\n}, _emscripten_get_now_is_monotonic:() => !0, _emval_as:function(a, b, c) {\n  a = R(a);\n  b = oc(b, \"emval::as\");\n  var d = [], e = bc(d);\n  K[c >> 2] = e;\n  return b.toWireType(d, a);\n}, _emval_call_method:function(a, b, c, d, e) {\n  a = nd[a];\n  b = R(b);\n  c = md(c);\n  var f = [];\n  K[d >> 2] = bc(f);\n  return a(b, c, f, e);\n}, _emval_call_void_method:function(a, b, c, d) {\n  a = nd[a];\n  b = R(b);\n  c = md(c);\n  a(b, c, null, d);\n}, _emval_decref:$c, _emval_get_method_caller:function(a, b) {\n  var c = pd(a, b), d = c[0];\n  b = d.name + \"_$\" + c.slice(1).map(function(g) {\n    return g.name;\n  }).join(\"_\") + \"$\";\n  var e = qd[b];\n  if (void 0 !== e) {\n    return e;\n  }\n  var f = Array(a - 1);\n  e = od((g, n, p, l) => {\n    for (var t = 0, u = 0; u < a - 1; ++u) {\n      f[u] = c[u + 1].readValueFromPointer(l + t), t += c[u + 1].argPackAdvance;\n    }\n    g = g[n].apply(g, f);\n    for (u = 0; u < a - 1; ++u) {\n      c[u + 1].Hb && c[u + 1].Hb(f[u]);\n    }\n    if (!d.Zb) {\n      return d.toWireType(p, g);\n    }\n  });\n  return qd[b] = e;\n}, _emval_get_property:function(a, b) {\n  a = R(a);\n  b = R(b);\n  return bc(a[b]);\n}, _emval_incref:function(a) {\n  4 < a && (P.get(a).qb += 1);\n}, _emval_new_cstring:function(a) {\n  return bc(md(a));\n}, _emval_new_object:function() {\n  return bc({});\n}, _emval_run_destructors:function(a) {\n  var b = R(a);\n  Ac(b);\n  $c(a);\n}, _emval_set_property:function(a, b, c) {\n  a = R(a);\n  b = R(b);\n  c = R(c);\n  a[b] = c;\n}, _emval_take_value:function(a, b) {\n  a = oc(a, \"_emval_take_value\");\n  a = a.readValueFromPointer(b);\n  return bc(a);\n}, abort:() => {\n  sa(\"\");\n}, beginPixelLocalStorageWEBGL:function(a, b, c) {\n  (a = w[a].D.ja) && a.beginPixelLocalStorageWEBGL(m.HEAPU32.subarray(c, c + b));\n}, decode_image:function(a, b, c) {\n  var d = m.images;\n  d || (d = new Map(), m.images = d);\n  var e = new Image();\n  d.set(a, e);\n  b = m.HEAP8.subarray(b, b + c);\n  c = new Uint8Array(c);\n  c.set(b);\n  e.src = URL.createObjectURL(new Blob([c], {type:\"image/png\"}));\n  e.onload = function() {\n    m._setWebImage(a, e.width, e.height);\n  };\n}, delete_image:function(a) {\n  var b = m.images;\n  b && b.get(a) && b.delete(a);\n}, emscripten_asm_const_int:(a, b, c) => {\n  rd.length = 0;\n  var d;\n  for (c >>= 2; d = G[b++];) {\n    c += 105 != d & c, rd.push(105 == d ? J[c] : xa[c++ >> 1]), ++c;\n  }\n  return Ta[a].apply(null, rd);\n}, emscripten_date_now:function() {\n  return Date.now();\n}, emscripten_get_now:() => performance.now(), emscripten_memcpy_big:(a, b, c) => G.copyWithin(a, b, b + c), emscripten_resize_heap:a => {\n  var b = G.length;\n  a >>>= 0;\n  if (2147483648 < a) {\n    return !1;\n  }\n  for (var c = 1; 4 >= c; c *= 2) {\n    var d = b * (1 + 0.2 / c);\n    d = Math.min(d, a + 100663296);\n    var e = Math;\n    d = Math.max(a, d);\n    a: {\n      e = e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - ta.buffer.byteLength + 65535 >>> 16;\n      try {\n        ta.grow(e);\n        ya();\n        var f = 1;\n        break a;\n      } catch (g) {\n      }\n      f = void 0;\n    }\n    if (f) {\n      return !0;\n    }\n  }\n  return !1;\n}, emscripten_webgl_enable_extension:function(a, b) {\n  a = w[a];\n  b = b ? L(G, b) : \"\";\n  b.startsWith(\"GL_\") && (b = b.substr(3));\n  \"WEBGL_draw_instanced_base_vertex_base_instance\" == b && sd(Y);\n  \"WEBGL_multi_draw_instanced_base_vertex_base_instance\" == b && td(Y);\n  \"WEBGL_multi_draw\" == b && Fd(Y);\n  return !!a.D.getExtension(b);\n}, emscripten_webgl_get_current_context:function() {\n  return r ? r.handle : 0;\n}, emscripten_webgl_make_context_current:function(a) {\n  return ia(a) ? 0 : -5;\n}, enable_WEBGL_provoking_vertex:function(a) {\n  a = w[a].D;\n  a.nb = a.getExtension(\"WEBGL_provoking_vertex\");\n  return !!a.nb;\n}, enable_WEBGL_shader_pixel_local_storage_coherent:function(a) {\n  a = w[a].D;\n  a.ja = a.getExtension(\"WEBGL_shader_pixel_local_storage\");\n  return !(!a.ja || !a.ja.isCoherent());\n}, endPixelLocalStorageWEBGL:function(a, b, c) {\n  (a = w[a].D.ja) && a.endPixelLocalStorageWEBGL(m.HEAPU32.subarray(c, c + b));\n}, environ_get:(a, b) => {\n  var c = 0;\n  Id().forEach(function(d, e) {\n    var f = b + c;\n    e = K[a + 4 * e >> 2] = f;\n    for (f = 0; f < d.length; ++f) {\n      D[e++ >> 0] = d.charCodeAt(f);\n    }\n    D[e >> 0] = 0;\n    c += d.length + 1;\n  });\n  return 0;\n}, environ_sizes_get:(a, b) => {\n  var c = Id();\n  K[a >> 2] = c.length;\n  var d = 0;\n  c.forEach(function(e) {\n    d += e.length + 1;\n  });\n  K[b >> 2] = d;\n  return 0;\n}, fd_close:function(a) {\n  try {\n    var b = Ib(a);\n    if (null === b.X) {\n      throw new M(8);\n    }\n    b.Oa && (b.Oa = null);\n    try {\n      b.m.close && b.m.close(b);\n    } catch (c) {\n      throw c;\n    } finally {\n      vb[b.X] = null;\n    }\n    b.X = null;\n    return 0;\n  } catch (c) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== c.name) {\n      throw c;\n    }\n    return c.aa;\n  }\n}, fd_read:function(a, b, c, d) {\n  try {\n    a: {\n      var e = Ib(a);\n      a = b;\n      for (var f, g = b = 0; g < c; g++) {\n        var n = K[a >> 2], p = K[a + 4 >> 2];\n        a += 8;\n        var l = e, t = n, u = p, x = f, k = D;\n        if (0 > u || 0 > x) {\n          throw new M(28);\n        }\n        if (null === l.X) {\n          throw new M(8);\n        }\n        if (1 === (l.flags & 2097155)) {\n          throw new M(8);\n        }\n        if (16384 === (l.node.mode & 61440)) {\n          throw new M(31);\n        }\n        if (!l.m.read) {\n          throw new M(28);\n        }\n        var q = \"undefined\" != typeof x;\n        if (!q) {\n          x = l.position;\n        } else if (!l.seekable) {\n          throw new M(70);\n        }\n        var v = l.m.read(l, k, t, u, x);\n        q || (l.position += v);\n        var y = v;\n        if (0 > y) {\n          var C = -1;\n          break a;\n        }\n        b += y;\n        if (y < p) {\n          break;\n        }\n        \"undefined\" !== typeof f && (f += y);\n      }\n      C = b;\n    }\n    K[d >> 2] = C;\n    return 0;\n  } catch (z) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== z.name) {\n      throw z;\n    }\n    return z.aa;\n  }\n}, fd_seek:function(a, b, c, d, e) {\n  b = c + 2097152 >>> 0 < 4194305 - !!b ? (b >>> 0) + 4294967296 * c : NaN;\n  try {\n    if (isNaN(b)) {\n      return 61;\n    }\n    var f = Ib(a);\n    Qb(f, b, d);\n    Pa = [f.position >>> 0, (Oa = f.position, 1.0 <= +Math.abs(Oa) ? 0.0 < Oa ? +Math.floor(Oa / 4294967296.0) >>> 0 : ~~+Math.ceil((Oa - +(~~Oa >>> 0)) / 4294967296.0) >>> 0 : 0)];\n    J[e >> 2] = Pa[0];\n    J[e + 4 >> 2] = Pa[1];\n    f.Oa && 0 === b && 0 === d && (f.Oa = null);\n    return 0;\n  } catch (g) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== g.name) {\n      throw g;\n    }\n    return g.aa;\n  }\n}, fd_write:function(a, b, c, d) {\n  try {\n    a: {\n      var e = Ib(a);\n      a = b;\n      for (var f, g = b = 0; g < c; g++) {\n        var n = K[a >> 2], p = K[a + 4 >> 2];\n        a += 8;\n        var l = e, t = n, u = p, x = f, k = D;\n        if (0 > u || 0 > x) {\n          throw new M(28);\n        }\n        if (null === l.X) {\n          throw new M(8);\n        }\n        if (0 === (l.flags & 2097155)) {\n          throw new M(8);\n        }\n        if (16384 === (l.node.mode & 61440)) {\n          throw new M(31);\n        }\n        if (!l.m.write) {\n          throw new M(28);\n        }\n        l.seekable && l.flags & 1024 && Qb(l, 0, 2);\n        var q = \"undefined\" != typeof x;\n        if (!q) {\n          x = l.position;\n        } else if (!l.seekable) {\n          throw new M(70);\n        }\n        var v = l.m.write(l, k, t, u, x, void 0);\n        q || (l.position += v);\n        var y = v;\n        if (0 > y) {\n          var C = -1;\n          break a;\n        }\n        b += y;\n        \"undefined\" !== typeof f && (f += y);\n      }\n      C = b;\n    }\n    K[d >> 2] = C;\n    return 0;\n  } catch (z) {\n    if (\"undefined\" == typeof Vb || \"ErrnoError\" !== z.name) {\n      throw z;\n    }\n    return z.aa;\n  }\n}, framebufferPixelLocalClearValuefvWEBGL:function(a, b, c, d, e, f) {\n  (a = w[a].D.ja) && a.framebufferPixelLocalClearValuefvWEBGL(b, [c, d, e, f]);\n}, framebufferTexturePixelLocalStorageWEBGL:function(a, b, c, d, e) {\n  (a = w[a].D.ja) && a.framebufferTexturePixelLocalStorageWEBGL(b, yd[c], d, e);\n}, glActiveTexture:function(a) {\n  Y.activeTexture(a);\n}, glAttachShader:function(a, b) {\n  Y.attachShader(W[a], zd[b]);\n}, glBindBuffer:function(a, b) {\n  35051 == a ? Y.Ya = b : 35052 == a && (Y.Ma = b);\n  Y.bindBuffer(a, vd[b]);\n}, glBindBufferRange:function(a, b, c, d, e) {\n  Y.bindBufferRange(a, b, vd[c], d, e);\n}, glBindFramebuffer:function(a, b) {\n  Y.bindFramebuffer(a, wd[b]);\n}, glBindRenderbuffer:function(a, b) {\n  Y.bindRenderbuffer(a, xd[b]);\n}, glBindTexture:function(a, b) {\n  Y.bindTexture(a, yd[b]);\n}, glBindVertexArray:function(a) {\n  Y.bindVertexArray(Ad[a]);\n}, glBlendEquation:function(a) {\n  Y.blendEquation(a);\n}, glBlendFunc:function(a, b) {\n  Y.blendFunc(a, b);\n}, glBlitFramebuffer:function(a, b, c, d, e, f, g, n, p, l) {\n  Y.blitFramebuffer(a, b, c, d, e, f, g, n, p, l);\n}, glBufferData:function(a, b, c, d) {\n  c && b ? Y.bufferData(a, G, d, c, b) : Y.bufferData(a, b, d);\n}, glBufferSubData:function(a, b, c, d) {\n  c && Y.bufferSubData(a, b, G, d, c);\n}, glClear:function(a) {\n  Y.clear(a);\n}, glClearColor:function(a, b, c, d) {\n  Y.clearColor(a, b, c, d);\n}, glClearDepthf:function(a) {\n  Y.clearDepth(a);\n}, glClearStencil:function(a) {\n  Y.clearStencil(a);\n}, glColorMask:function(a, b, c, d) {\n  Y.colorMask(!!a, !!b, !!c, !!d);\n}, glCompileShader:function(a) {\n  Y.compileShader(zd[a]);\n}, glCreateProgram:function() {\n  var a = Dd(W), b = Y.createProgram();\n  b.name = a;\n  b.Gc = b.Ec = b.Fc = 0;\n  b.Ua = 1;\n  W[a] = b;\n  return a;\n}, glCreateShader:function(a) {\n  var b = Dd(zd);\n  zd[b] = Y.createShader(a);\n  return b;\n}, glCullFace:function(a) {\n  Y.cullFace(a);\n}, glDeleteBuffers:function(a, b) {\n  for (var c = 0; c < a; c++) {\n    var d = J[b + 4 * c >> 2], e = vd[d];\n    e && (Y.deleteBuffer(e), e.name = 0, vd[d] = null, d == Y.Ya && (Y.Ya = 0), d == Y.Ma && (Y.Ma = 0));\n  }\n}, glDeleteFramebuffers:function(a, b) {\n  for (var c = 0; c < a; ++c) {\n    var d = J[b + 4 * c >> 2], e = wd[d];\n    e && (Y.deleteFramebuffer(e), e.name = 0, wd[d] = null);\n  }\n}, glDeleteProgram:function(a) {\n  if (a) {\n    var b = W[a];\n    b ? (Y.deleteProgram(b), b.name = 0, W[a] = null) : X(1281);\n  }\n}, glDeleteRenderbuffers:function(a, b) {\n  for (var c = 0; c < a; c++) {\n    var d = J[b + 4 * c >> 2], e = xd[d];\n    e && (Y.deleteRenderbuffer(e), e.name = 0, xd[d] = null);\n  }\n}, glDeleteShader:function(a) {\n  if (a) {\n    var b = zd[a];\n    b ? (Y.deleteShader(b), zd[a] = null) : X(1281);\n  }\n}, glDeleteTextures:function(a, b) {\n  for (var c = 0; c < a; c++) {\n    var d = J[b + 4 * c >> 2], e = yd[d];\n    e && (Y.deleteTexture(e), e.name = 0, yd[d] = null);\n  }\n}, glDeleteVertexArrays:function(a, b) {\n  for (var c = 0; c < a; c++) {\n    var d = J[b + 4 * c >> 2];\n    Y.deleteVertexArray(Ad[d]);\n    Ad[d] = null;\n  }\n}, glDepthFunc:function(a) {\n  Y.depthFunc(a);\n}, glDepthMask:function(a) {\n  Y.depthMask(!!a);\n}, glDepthRangef:function(a, b) {\n  Y.depthRange(a, b);\n}, glDisable:function(a) {\n  Y.disable(a);\n}, glDrawArrays:function(a, b, c) {\n  Y.drawArrays(a, b, c);\n}, glDrawArraysInstanced:function(a, b, c, d) {\n  Y.drawArraysInstanced(a, b, c, d);\n}, glDrawBuffers:function(a, b) {\n  for (var c = Jd[a], d = 0; d < a; d++) {\n    c[d] = J[b + 4 * d >> 2];\n  }\n  Y.drawBuffers(c);\n}, glDrawElements:function(a, b, c, d) {\n  Y.drawElements(a, b, c, d);\n}, glDrawElementsInstanced:function(a, b, c, d, e) {\n  Y.drawElementsInstanced(a, b, c, d, e);\n}, glEnable:function(a) {\n  Y.enable(a);\n}, glEnableVertexAttribArray:function(a) {\n  Y.enableVertexAttribArray(a);\n}, glFlush:function() {\n  Y.flush();\n}, glFramebufferRenderbuffer:function(a, b, c, d) {\n  Y.framebufferRenderbuffer(a, b, c, xd[d]);\n}, glFramebufferTexture2D:function(a, b, c, d, e) {\n  Y.framebufferTexture2D(a, b, c, yd[d], e);\n}, glFrontFace:function(a) {\n  Y.frontFace(a);\n}, glGenBuffers:function(a, b) {\n  Kd(a, b, \"createBuffer\", vd);\n}, glGenFramebuffers:function(a, b) {\n  Kd(a, b, \"createFramebuffer\", wd);\n}, glGenRenderbuffers:function(a, b) {\n  Kd(a, b, \"createRenderbuffer\", xd);\n}, glGenTextures:function(a, b) {\n  Kd(a, b, \"createTexture\", yd);\n}, glGenVertexArrays:function(a, b) {\n  Kd(a, b, \"createVertexArray\", Ad);\n}, glGenerateMipmap:function(a) {\n  Y.generateMipmap(a);\n}, glGetIntegerv:function(a, b) {\n  Ld(a, b);\n}, glGetString:function(a) {\n  var b = Bd[a];\n  if (!b) {\n    switch(a) {\n      case 7939:\n        b = Y.getSupportedExtensions() || [];\n        b = b.concat(b.map(function(d) {\n          return \"GL_\" + d;\n        }));\n        b = Nd(b.join(\" \"));\n        break;\n      case 7936:\n      case 7937:\n      case 37445:\n      case 37446:\n        (b = Y.getParameter(a)) || X(1280);\n        b = b && Nd(b);\n        break;\n      case 7938:\n        b = Nd(\"OpenGL ES 3.0 (\" + Y.getParameter(7938) + \")\");\n        break;\n      case 35724:\n        b = Y.getParameter(35724);\n        var c = b.match(/^WebGL GLSL ES ([0-9]\\.[0-9][0-9]?)(?:$| .*)/);\n        null !== c && (3 == c[1].length && (c[1] += \"0\"), b = \"OpenGL ES GLSL ES \" + c[1] + \" (\" + b + \")\");\n        b = Nd(b);\n        break;\n      default:\n        X(1280);\n    }\n    Bd[a] = b;\n  }\n  return b;\n}, glGetUniformBlockIndex:function(a, b) {\n  return Y.getUniformBlockIndex(W[a], b ? L(G, b) : \"\");\n}, glGetUniformLocation:function(a, b) {\n  b = b ? L(G, b) : \"\";\n  if (a = W[a]) {\n    var c = a, d = c.oa, e = c.vb, f;\n    if (!d) {\n      for (c.oa = d = {}, c.ub = {}, f = 0; f < Y.getProgramParameter(c, 35718); ++f) {\n        var g = Y.getActiveUniform(c, f);\n        var n = g.name;\n        g = g.size;\n        var p = Od(n);\n        p = 0 < p ? n.slice(0, p) : n;\n        var l = c.Ua;\n        c.Ua += g;\n        e[p] = [g, l];\n        for (n = 0; n < g; ++n) {\n          d[l] = n, c.ub[l++] = p;\n        }\n      }\n    }\n    c = a.oa;\n    d = 0;\n    e = b;\n    f = Od(b);\n    0 < f && (d = parseInt(b.slice(f + 1)) >>> 0, e = b.slice(0, f));\n    if ((e = a.vb[e]) && d < e[0] && (d += e[1], c[d] = c[d] || Y.getUniformLocation(a, b))) {\n      return d;\n    }\n  } else {\n    X(1281);\n  }\n  return -1;\n}, glInvalidateFramebuffer:function(a, b, c) {\n  for (var d = Jd[b], e = 0; e < b; e++) {\n    d[e] = J[c + 4 * e >> 2];\n  }\n  Y.invalidateFramebuffer(a, d);\n}, glLinkProgram:function(a) {\n  a = W[a];\n  Y.linkProgram(a);\n  a.oa = 0;\n  a.vb = {};\n}, glPixelStorei:function(a, b) {\n  Y.pixelStorei(a, b);\n}, glRenderbufferStorageMultisample:function(a, b, c, d, e) {\n  Y.renderbufferStorageMultisample(a, b, c, d, e);\n}, glScissor:function(a, b, c, d) {\n  Y.scissor(a, b, c, d);\n}, glShaderSource:function(a, b, c, d) {\n  for (var e = \"\", f = 0; f < b; ++f) {\n    var g = d ? J[d + 4 * f >> 2] : -1, n = J[c + 4 * f >> 2];\n    g = n ? L(G, n, 0 > g ? void 0 : g) : \"\";\n    e += g;\n  }\n  Y.shaderSource(zd[a], e);\n}, glStencilFunc:function(a, b, c) {\n  Y.stencilFunc(a, b, c);\n}, glStencilFuncSeparate:function(a, b, c, d) {\n  Y.stencilFuncSeparate(a, b, c, d);\n}, glStencilMask:function(a) {\n  Y.stencilMask(a);\n}, glStencilOp:function(a, b, c) {\n  Y.stencilOp(a, b, c);\n}, glStencilOpSeparate:function(a, b, c, d) {\n  Y.stencilOpSeparate(a, b, c, d);\n}, glTexParameteri:function(a, b, c) {\n  Y.texParameteri(a, b, c);\n}, glTexStorage2D:function(a, b, c, d, e) {\n  Y.texStorage2D(a, b, c, d, e);\n}, glTexSubImage2D:function(a, b, c, d, e, f, g, n, p) {\n  if (Y.Ma) {\n    Y.texSubImage2D(a, b, c, d, e, f, g, n, p);\n  } else if (p) {\n    var l = n - 5120;\n    l = 0 == l ? D : 1 == l ? G : 2 == l ? I : 4 == l ? J : 6 == l ? wa : 5 == l || 28922 == l || 28520 == l || 30779 == l || 30782 == l ? K : va;\n    Y.texSubImage2D(a, b, c, d, e, f, g, n, l, p >> 31 - Math.clz32(l.BYTES_PER_ELEMENT));\n  } else {\n    Y.texSubImage2D(a, b, c, d, e, f, g, n, null);\n  }\n}, glUniform1i:function(a, b) {\n  var c = Y, d = c.uniform1i;\n  var e = Y.Gb;\n  if (e) {\n    var f = e.oa[a];\n    \"number\" == typeof f && (e.oa[a] = f = Y.getUniformLocation(e, e.ub[a] + (0 < f ? \"[\" + f + \"]\" : \"\")));\n    a = f;\n  } else {\n    X(1282), a = void 0;\n  }\n  d.call(c, a, b);\n}, glUniformBlockBinding:function(a, b, c) {\n  a = W[a];\n  Y.uniformBlockBinding(a, b, c);\n}, glUseProgram:function(a) {\n  a = W[a];\n  Y.useProgram(a);\n  Y.Gb = a;\n}, glVertexAttribDivisor:function(a, b) {\n  Y.vertexAttribDivisor(a, b);\n}, glVertexAttribIPointer:function(a, b, c, d, e) {\n  Y.vertexAttribIPointer(a, b, c, d, e);\n}, glVertexAttribPointer:function(a, b, c, d, e, f) {\n  Y.vertexAttribPointer(a, b, c, !!d, e, f);\n}, glViewport:function(a, b, c, d) {\n  Y.viewport(a, b, c, d);\n}, provokingVertexWEBGL:function(a, b) {\n  (a = w[a].D.nb) && a.provokingVertexWEBGL(b);\n}, strftime_l:(a, b, c, d) => Sd(a, b, c, d), upload_image:function(a, b) {\n  var c = m.images;\n  c && (b = c.get(b)) && (a = w[a].D, a.texImage2D(a.TEXTURE_2D, 0, a.RGBA, a.RGBA, a.UNSIGNED_BYTE, b));\n}};\n(function() {\n  function a(c) {\n    B = c = c.exports;\n    ta = B.memory;\n    ya();\n    za = B.__indirect_function_table;\n    Ba.unshift(B.__wasm_call_ctors);\n    Ea--;\n    m.monitorRunDependencies && m.monitorRunDependencies(Ea);\n    if (0 == Ea && (null !== Fa && (clearInterval(Fa), Fa = null), Ga)) {\n      var d = Ga;\n      Ga = null;\n      d();\n    }\n    return c;\n  }\n  var b = {env:Xd, wasi_snapshot_preview1:Xd,};\n  Ea++;\n  m.monitorRunDependencies && m.monitorRunDependencies(Ea);\n  if (m.instantiateWasm) {\n    try {\n      return m.instantiateWasm(b, a);\n    } catch (c) {\n      qa(\"Module.instantiateWasm callback failed with error: \" + c), ba(c);\n    }\n  }\n  Na(b, function(c) {\n    a(c.instance);\n  }).catch(ba);\n  return {};\n})();\nvar nc = a => (nc = B.free)(a), Md = a => (Md = B.malloc)(a);\nm._setWebImage = (a, b, c) => (m._setWebImage = B.setWebImage)(a, b, c);\nvar Qa = m._ma_device__on_notification_unlocked = a => (Qa = m._ma_device__on_notification_unlocked = B.ma_device__on_notification_unlocked)(a);\nm._ma_malloc_emscripten = (a, b) => (m._ma_malloc_emscripten = B.ma_malloc_emscripten)(a, b);\nm._ma_free_emscripten = (a, b) => (m._ma_free_emscripten = B.ma_free_emscripten)(a, b);\nvar Ra = m._ma_device_process_pcm_frames_capture__webaudio = (a, b, c) => (Ra = m._ma_device_process_pcm_frames_capture__webaudio = B.ma_device_process_pcm_frames_capture__webaudio)(a, b, c), Sa = m._ma_device_process_pcm_frames_playback__webaudio = (a, b, c) => (Sa = m._ma_device_process_pcm_frames_playback__webaudio = B.ma_device_process_pcm_frames_playback__webaudio)(a, b, c), Wd = () => (Wd = B.__errno_location)(), mc = a => (mc = B.__getTypeName)(a);\nm.__embind_initialize_bindings = () => (m.__embind_initialize_bindings = B._embind_initialize_bindings)();\nm.dynCall_iiji = (a, b, c, d, e) => (m.dynCall_iiji = B.dynCall_iiji)(a, b, c, d, e);\nm.dynCall_iiiji = (a, b, c, d, e, f) => (m.dynCall_iiiji = B.dynCall_iiiji)(a, b, c, d, e, f);\nm.dynCall_iij = (a, b, c, d) => (m.dynCall_iij = B.dynCall_iij)(a, b, c, d);\nm.dynCall_jii = (a, b, c) => (m.dynCall_jii = B.dynCall_jii)(a, b, c);\nm.dynCall_jiji = (a, b, c, d, e) => (m.dynCall_jiji = B.dynCall_jiji)(a, b, c, d, e);\nm.dynCall_viijii = (a, b, c, d, e, f, g) => (m.dynCall_viijii = B.dynCall_viijii)(a, b, c, d, e, f, g);\nm.dynCall_iiiiij = (a, b, c, d, e, f, g) => (m.dynCall_iiiiij = B.dynCall_iiiiij)(a, b, c, d, e, f, g);\nm.dynCall_iiiiijj = (a, b, c, d, e, f, g, n, p) => (m.dynCall_iiiiijj = B.dynCall_iiiiijj)(a, b, c, d, e, f, g, n, p);\nm.dynCall_iiiiiijj = (a, b, c, d, e, f, g, n, p, l) => (m.dynCall_iiiiiijj = B.dynCall_iiiiiijj)(a, b, c, d, e, f, g, n, p, l);\nm.___start_em_js = 502940;\nm.___stop_em_js = 505374;\nvar Yd;\nGa = function Zd() {\n  Yd || $d();\n  Yd || (Ga = Zd);\n};\nfunction $d() {\n  function a() {\n    if (!Yd && (Yd = !0, m.calledRun = !0, !ua)) {\n      m.noFSInit || Sb || (Sb = !0, Rb(), m.stdin = m.stdin, m.stdout = m.stdout, m.stderr = m.stderr, m.stdin ? Ub(\"stdin\", m.stdin) : Nb(\"/dev/tty\", \"/dev/stdin\"), m.stdout ? Ub(\"stdout\", null, m.stdout) : Nb(\"/dev/tty\", \"/dev/stdout\"), m.stderr ? Ub(\"stderr\", null, m.stderr) : Nb(\"/dev/tty1\", \"/dev/stderr\"), Pb(\"/dev/stdin\", 0), Pb(\"/dev/stdout\", 1), Pb(\"/dev/stderr\", 1));\n      yb = !1;\n      Ua(Ba);\n      aa(m);\n      if (m.onRuntimeInitialized) {\n        m.onRuntimeInitialized();\n      }\n      if (m.postRun) {\n        for (\"function\" == typeof m.postRun && (m.postRun = [m.postRun]); m.postRun.length;) {\n          var b = m.postRun.shift();\n          Ca.unshift(b);\n        }\n      }\n      Ua(Ca);\n    }\n  }\n  if (!(0 < Ea)) {\n    if (m.preRun) {\n      for (\"function\" == typeof m.preRun && (m.preRun = [m.preRun]); m.preRun.length;) {\n        Da();\n      }\n    }\n    Ua(Aa);\n    0 < Ea || (m.setStatus ? (m.setStatus(\"Running...\"), setTimeout(function() {\n      setTimeout(function() {\n        m.setStatus(\"\");\n      }, 1);\n      a();\n    }, 1)) : a());\n  }\n}\nif (m.preInit) {\n  for (\"function\" == typeof m.preInit && (m.preInit = [m.preInit]); 0 < m.preInit.length;) {\n    m.preInit.pop()();\n  }\n}\n$d();\n\n\n\n  return moduleArg.ready\n}\n\n);\n})();\nexport default Rive;","import type {\n  LinearAnimationInstance,\n  LinearAnimation,\n  Artboard,\n  RiveCanvas,\n} from \"./../rive_advanced.mjs\";\n\n/**\n * Represents an animation that can be played on an Artboard. \n * Wraps animations and instances from the runtime and keeps track of playback state.\n *\n * The `Animation` class manages the state and behavior of a single animation instance,\n * including its current time, loop count, and ability to scrub to a specific time.\n *\n * The class provides methods to advance the animation, apply its interpolated keyframe\n * values to the Artboard, and clean up the underlying animation instance when the\n * animation is no longer needed.\n */\nexport class Animation {\n  public loopCount = 0;\n  public readonly instance: LinearAnimationInstance;\n\n  /**\n   * The time to which the animation should move to on the next render.\n   * If not null, the animation will scrub to this time instead of advancing by the given time.\n   */\n  public scrubTo: number | null = null;\n\n  /**\n   * Constructs a new animation\n   * @constructor\n   * @param {any} animation: runtime animation object\n   * @param {any} instance: runtime animation instance object\n   */\n  constructor(\n    private animation: LinearAnimation,\n    private artboard: Artboard,\n    runtime: RiveCanvas,\n    public playing: boolean\n  ) {\n    this.instance = new runtime.LinearAnimationInstance(animation, artboard);\n  }\n\n  /**\n   * Returns the animation's name\n   */\n  public get name(): string {\n    return this.animation.name;\n  }\n\n  /**\n   * Returns the animation's name\n   */\n  public get time(): number {\n    return this.instance.time;\n  }\n\n  /**\n   * Sets the animation's current time\n   */\n  public set time(value: number) {\n    this.instance.time = value;\n  }\n\n  /**\n   * Returns the animation's loop type\n   */\n  public get loopValue(): number {\n    return this.animation.loopValue;\n  }\n\n  /**\n   * Indicates whether the animation needs to be scrubbed.\n   * @returns `true` if the animation needs to be scrubbed, `false` otherwise.\n   */\n  public get needsScrub(): boolean {\n    return this.scrubTo !== null;\n  }\n\n  /**\n   * Advances the animation by the give time. If the animation needs scrubbing,\n   * time is ignored and the stored scrub value is used.\n   * @param time the time to advance the animation by if no scrubbing required\n   */\n  public advance(time: number) {\n    if (this.scrubTo === null) {\n      this.instance.advance(time);\n    } else {\n      this.instance.time = 0;\n      this.instance.advance(this.scrubTo);\n      this.scrubTo = null;\n    }\n  }\n\n  /**\n   * Apply interpolated keyframe values to the artboard. This should be called after calling\n   * .advance() on an animation instance so that new values are applied to properties.\n   *\n   * Note: This does not advance the artboard, which updates all objects on the artboard\n   * @param mix - Mix value for the animation from 0 to 1\n   */\n  public apply(mix: number) {\n    this.instance.apply(mix);\n  }\n\n  /**\n   * Deletes the backing Wasm animation instance; once this is called, this\n   * animation is no more.\n   */\n  public cleanup() {\n    this.instance.delete();\n  }\n}\n","import * as rc from \"../rive_advanced.mjs\";\n\nexport interface TouchInteractionsParams {\n  canvas: HTMLCanvasElement | OffscreenCanvas;\n  artboard: rc.Artboard;\n  stateMachines: rc.StateMachineInstance[];\n  renderer: rc.Renderer;\n  rive: rc.RiveCanvas;\n  fit: rc.Fit;\n  alignment: rc.Alignment;\n  isTouchScrollEnabled?: boolean;\n  layoutScaleFactor?: number;\n}\n\ninterface ClientCoordinates {\n  clientX: number;\n  clientY: number;\n}\n\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nconst getClientCoordinates = (\n  event: MouseEvent | TouchEvent,\n  isTouchScrollEnabled: boolean,\n): ClientCoordinates => {\n  if (\n    [\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n    (event as TouchEvent).touches?.length\n  ) {\n    // This flag, if false, prevents touch events on the canvas default behavior\n    // which may prevent scrolling if a drag motion on the canvas is performed\n    if (!isTouchScrollEnabled) {\n      event.preventDefault();\n    }\n    return {\n      clientX: (event as TouchEvent).touches[0].clientX,\n      clientY: (event as TouchEvent).touches[0].clientY,\n    };\n  } else if (\n    event.type === \"touchend\" &&\n    (event as TouchEvent).changedTouches?.length\n  ) {\n    return {\n      clientX: (event as TouchEvent).changedTouches[0].clientX,\n      clientY: (event as TouchEvent).changedTouches[0].clientY,\n    };\n  } else {\n    return {\n      clientX: (event as MouseEvent).clientX,\n      clientY: (event as MouseEvent).clientY,\n    };\n  }\n};\n\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nexport const registerTouchInteractions = ({\n  canvas,\n  artboard,\n  stateMachines = [],\n  renderer,\n  rive,\n  fit,\n  alignment,\n  isTouchScrollEnabled = false,\n  layoutScaleFactor = 1.0,\n}: TouchInteractionsParams) => {\n  if (\n    !canvas ||\n    !stateMachines.length ||\n    !renderer ||\n    !rive ||\n    !artboard ||\n    typeof window === \"undefined\"\n  ) {\n    return null;\n  }\n  /**\n   * After a touchend event, some browsers may fire synthetic mouse events\n   * (mouseover, mousedown, mousemove, mouseup) if the touch interaction did not cause\n   * any default action (such as scrolling).\n   *\n   * This is done to simulate the behavior of a mouse for applications that do not support\n   * touch events.\n   *\n   * We're keeping track of the previous event to not send the synthetic mouse events if the\n   * touch event was a click (touchstart -> touchend).\n   *\n   * This is only needed when `isTouchScrollEnabled` is false\n   * When true, `preventDefault()` is called which prevents this behaviour.\n   **/\n  let _prevEventType: string | null = null;\n  let _syntheticEventsActive = false;\n\n  const processEventCallback = (event: MouseEvent | TouchEvent) => {\n    // Exit early out of all synthetic mouse events\n    // https://stackoverflow.com/questions/9656990/how-to-prevent-simulated-mouse-events-in-mobile-browsers\n    // https://stackoverflow.com/questions/25572070/javascript-touchend-versus-click-dilemma\n    if (_syntheticEventsActive && event instanceof MouseEvent) {\n      // Synthetic event finished\n      if (event.type == \"mouseup\") {\n        _syntheticEventsActive = false;\n      }\n\n      return;\n    }\n\n    // Test if it's a \"touch click\". This could cause the browser to send\n    // synthetic mouse events.\n    _syntheticEventsActive =\n      isTouchScrollEnabled &&\n      event.type === \"touchend\" &&\n      _prevEventType === \"touchstart\";\n\n    _prevEventType = event.type;\n\n    const boundingRect = (\n      event.currentTarget as HTMLCanvasElement\n    ).getBoundingClientRect();\n\n    const { clientX, clientY } = getClientCoordinates(\n      event,\n      isTouchScrollEnabled,\n    );\n    if (!clientX && !clientY) {\n      return;\n    }\n    const canvasX = clientX - boundingRect.left;\n    const canvasY = clientY - boundingRect.top;\n    const forwardMatrix = rive.computeAlignment(\n      fit,\n      alignment,\n      {\n        minX: 0,\n        minY: 0,\n        maxX: boundingRect.width,\n        maxY: boundingRect.height,\n      },\n      artboard.bounds,\n      layoutScaleFactor,\n    );\n    const invertedMatrix = new rive.Mat2D();\n    forwardMatrix.invert(invertedMatrix);\n    const canvasCoordinatesVector = new rive.Vec2D(canvasX, canvasY);\n    const transformedVector = rive.mapXY(\n      invertedMatrix,\n      canvasCoordinatesVector,\n    );\n    const transformedX = transformedVector.x();\n    const transformedY = transformedVector.y();\n\n    transformedVector.delete();\n    invertedMatrix.delete();\n    canvasCoordinatesVector.delete();\n    forwardMatrix.delete();\n\n    switch (event.type) {\n      /**\n       * There's a 2px buffer for a hitRadius when translating the pointer coordinates\n       * down to the state machine. In cases where the hitbox is about that much away\n       * from the Artboard border, we don't have exact precision on determining pointer\n       * exit. We're therefore adding to the translated coordinates on mouseout of a canvas\n       * to ensure that we report the mouse has truly exited the hitarea.\n       * https://github.com/rive-app/rive-cpp/blob/master/src/animation/state_machine_instance.cpp#L336\n       *\n       * We add/subtract 10000 to account for when the graphic goes beyond the canvas bound\n       * due to for example, a fit: 'cover'. Not perfect, but helps reliably (for now) ensure\n       * we report going out of bounds when the mouse is out of the canvas\n       */\n      case \"mouseout\":\n        for (const stateMachine of stateMachines) {\n          stateMachine.pointerMove(transformedX, transformedY);\n        }\n        break;\n\n      // Pointer moving/hovering on the canvas\n      case \"touchmove\":\n      case \"mouseover\":\n      case \"mousemove\": {\n        for (const stateMachine of stateMachines) {\n          stateMachine.pointerMove(transformedX, transformedY);\n        }\n        break;\n      }\n      // Pointer click initiated but not released yet on the canvas\n      case \"touchstart\":\n      case \"mousedown\": {\n        for (const stateMachine of stateMachines) {\n          stateMachine.pointerDown(transformedX, transformedY);\n        }\n        break;\n      }\n      // Pointer click released on the canvas\n      case \"touchend\":\n      case \"mouseup\": {\n        for (const stateMachine of stateMachines) {\n          stateMachine.pointerUp(transformedX, transformedY);\n        }\n        break;\n      }\n      default:\n    }\n  };\n  const callback = processEventCallback.bind(this);\n  canvas.addEventListener(\"mouseover\", callback);\n  canvas.addEventListener(\"mouseout\", callback);\n  canvas.addEventListener(\"mousemove\", callback);\n  canvas.addEventListener(\"mousedown\", callback);\n  canvas.addEventListener(\"mouseup\", callback);\n  canvas.addEventListener(\"touchmove\", callback, {\n    passive: isTouchScrollEnabled,\n  });\n  canvas.addEventListener(\"touchstart\", callback, {\n    passive: isTouchScrollEnabled,\n  });\n  canvas.addEventListener(\"touchend\", callback);\n  return () => {\n    canvas.removeEventListener(\"mouseover\", callback);\n    canvas.removeEventListener(\"mouseout\", callback);\n    canvas.removeEventListener(\"mousemove\", callback);\n    canvas.removeEventListener(\"mousedown\", callback);\n    canvas.removeEventListener(\"mouseup\", callback);\n    canvas.removeEventListener(\"touchmove\", callback);\n    canvas.removeEventListener(\"touchstart\", callback);\n    canvas.removeEventListener(\"touchend\", callback);\n  };\n};\n","// Reference: https://github.com/braintree/sanitize-url/tree/main\nconst invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nconst htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nconst htmlCtrlEntityRegex = /&(newline|tab);/gi;\nconst ctrlCharactersRegex =\n  /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nconst urlSchemeRegex = /^.+(:|&colon;)/gim;\nconst relativeFirstCharacters = [\".\", \"/\"];\nexport const BLANK_URL = \"about:blank\";\n\nfunction isRelativeUrlWithoutProtocol(url: string): boolean {\n  return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str: string) {\n  const removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n  return removedNullByte.replace(htmlEntitiesRegex, (match, dec) => {\n    return String.fromCharCode(dec);\n  });\n}\n\nexport function sanitizeUrl(url?: string): string {\n  if (!url) {\n    return BLANK_URL;\n  }\n\n  const sanitizedUrl = decodeHtmlCharacters(url)\n    .replace(htmlCtrlEntityRegex, \"\")\n    .replace(ctrlCharactersRegex, \"\")\n    .trim();\n\n  if (!sanitizedUrl) {\n    return BLANK_URL;\n  }\n\n  if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n    return sanitizedUrl;\n  }\n\n  const urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n  if (!urlSchemeParseResults) {\n    return sanitizedUrl;\n  }\n\n  const urlScheme = urlSchemeParseResults[0];\n\n  if (invalidProtocolRegex.test(urlScheme)) {\n    return BLANK_URL;\n  }\n\n  return sanitizedUrl;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n",null,null,null,"import * as rc from \"./rive_advanced.mjs\";\nimport packageData from \"package.json\";\nimport { Animation } from \"./animation\";\nimport { registerTouchInteractions, sanitizeUrl, BLANK_URL } from \"./utils\";\n\nclass RiveError extends Error {\n  public isHandledError = true;\n}\n\n// Note: Re-exporting a few types from rive_advanced.mjs to expose for high-level\n// API usage without re-defining their type definition here. May want to revisit\n// and see if we want to expose both types from rive.ts and rive_advanced.mjs in\n// the future\nexport type {\n  FileAsset,\n  AudioAsset,\n  FontAsset,\n  ImageAsset,\n} from \"./rive_advanced.mjs\";\n\n/**\n * Generic type for a parameterless void callback\n */\nexport type VoidCallback = () => void;\nexport type AssetLoadCallback = (\n  asset: rc.FileAsset,\n  bytes: Uint8Array,\n) => Boolean;\n\ninterface SetupRiveListenersOptions {\n  isTouchScrollEnabled?: boolean;\n}\n\n/**\n * Type for artboard bounds\n */\nexport type Bounds = rc.AABB;\n\n// #regions helpers\nconst resolveErrorMessage = (error: any): string =>\n  error && error.isHandledError\n    ? error.message\n    : \"Problem loading file; may be corrupt!\";\n\n// #region layout\n\n// Fit options for the canvas\nexport enum Fit {\n  Cover = \"cover\",\n  Contain = \"contain\",\n  Fill = \"fill\",\n  FitWidth = \"fitWidth\",\n  FitHeight = \"fitHeight\",\n  None = \"none\",\n  ScaleDown = \"scaleDown\",\n  Layout = \"layout\",\n}\n\n// Alignment options for the canvas\nexport enum Alignment {\n  Center = \"center\",\n  TopLeft = \"topLeft\",\n  TopCenter = \"topCenter\",\n  TopRight = \"topRight\",\n  CenterLeft = \"centerLeft\",\n  CenterRight = \"centerRight\",\n  BottomLeft = \"bottomLeft\",\n  BottomCenter = \"bottomCenter\",\n  BottomRight = \"bottomRight\",\n}\n\n// Interface for the Layout static method contructor\nexport interface LayoutParameters {\n  fit?: Fit;\n  alignment?: Alignment;\n  layoutScaleFactor?: number;\n  minX?: number;\n  minY?: number;\n  maxX?: number;\n  maxY?: number;\n}\n\n// Alignment options for Rive animations in a HTML canvas\nexport class Layout {\n  // Runtime fit and alignment are accessed every frame, so we cache their\n  // values to save cycles\n  private cachedRuntimeFit: rc.Fit;\n  private cachedRuntimeAlignment: rc.Alignment;\n\n  public readonly fit: Fit;\n  public readonly alignment: Alignment;\n  public readonly layoutScaleFactor: number;\n  public readonly minX: number;\n  public readonly minY: number;\n  public readonly maxX: number;\n  public readonly maxY: number;\n\n  constructor(params?: LayoutParameters) {\n    this.fit = params?.fit ?? Fit.Contain;\n    this.alignment = params?.alignment ?? Alignment.Center;\n    this.layoutScaleFactor = params?.layoutScaleFactor ?? 1;\n    this.minX = params?.minX ?? 0;\n    this.minY = params?.minY ?? 0;\n    this.maxX = params?.maxX ?? 0;\n    this.maxY = params?.maxY ?? 0;\n  }\n\n  // Alternative constructor to build a Layout from an interface/object\n  static new({\n    fit,\n    alignment,\n    minX,\n    minY,\n    maxX,\n    maxY,\n  }: LayoutParameters): Layout {\n    console.warn(\n      \"This function is deprecated: please use `new Layout({})` instead\",\n    );\n    return new Layout({ fit, alignment, minX, minY, maxX, maxY });\n  }\n\n  /**\n   * Makes a copy of the layout, replacing any specified parameters\n   */\n  public copyWith({\n    fit,\n    alignment,\n    layoutScaleFactor,\n    minX,\n    minY,\n    maxX,\n    maxY,\n  }: LayoutParameters): Layout {\n    return new Layout({\n      fit: fit ?? this.fit,\n      alignment: alignment ?? this.alignment,\n      layoutScaleFactor: layoutScaleFactor ?? this.layoutScaleFactor,\n      minX: minX ?? this.minX,\n      minY: minY ?? this.minY,\n      maxX: maxX ?? this.maxX,\n      maxY: maxY ?? this.maxY,\n    });\n  }\n\n  // Returns fit for the Wasm runtime format\n  public runtimeFit(rive: rc.RiveCanvas): rc.Fit {\n    if (this.cachedRuntimeFit) return this.cachedRuntimeFit;\n\n    let fit;\n    if (this.fit === Fit.Cover) fit = rive.Fit.cover;\n    else if (this.fit === Fit.Contain) fit = rive.Fit.contain;\n    else if (this.fit === Fit.Fill) fit = rive.Fit.fill;\n    else if (this.fit === Fit.FitWidth) fit = rive.Fit.fitWidth;\n    else if (this.fit === Fit.FitHeight) fit = rive.Fit.fitHeight;\n    else if (this.fit === Fit.ScaleDown) fit = rive.Fit.scaleDown;\n    else if (this.fit === Fit.Layout) fit = rive.Fit.layout;\n    else fit = rive.Fit.none;\n\n    this.cachedRuntimeFit = fit;\n    return fit;\n  }\n\n  // Returns alignment for the Wasm runtime format\n  public runtimeAlignment(rive: rc.RiveCanvas): rc.Alignment {\n    if (this.cachedRuntimeAlignment) return this.cachedRuntimeAlignment;\n\n    let alignment;\n    if (this.alignment === Alignment.TopLeft)\n      alignment = rive.Alignment.topLeft;\n    else if (this.alignment === Alignment.TopCenter)\n      alignment = rive.Alignment.topCenter;\n    else if (this.alignment === Alignment.TopRight)\n      alignment = rive.Alignment.topRight;\n    else if (this.alignment === Alignment.CenterLeft)\n      alignment = rive.Alignment.centerLeft;\n    else if (this.alignment === Alignment.CenterRight)\n      alignment = rive.Alignment.centerRight;\n    else if (this.alignment === Alignment.BottomLeft)\n      alignment = rive.Alignment.bottomLeft;\n    else if (this.alignment === Alignment.BottomCenter)\n      alignment = rive.Alignment.bottomCenter;\n    else if (this.alignment === Alignment.BottomRight)\n      alignment = rive.Alignment.bottomRight;\n    else alignment = rive.Alignment.center;\n\n    this.cachedRuntimeAlignment = alignment;\n    return alignment;\n  }\n}\n\n// #endregion\n\n// #region runtime\n\n// Callback type when looking for a runtime instance\nexport type RuntimeCallback = (rive: rc.RiveCanvas) => void;\n\n// Runtime singleton; use getInstance to provide a callback that returns the\n// Rive runtime\nexport class RuntimeLoader {\n  // Singleton helpers\n  private static runtime: rc.RiveCanvas;\n  // Flag to indicate that loading has started/completed\n  private static isLoading = false;\n  // List of callbacks for the runtime that come in while loading\n  private static callBackQueue: RuntimeCallback[] = [];\n  // Instance of the Rive runtime\n  private static rive: rc.RiveCanvas;\n  // Path to the Wasm file; default path works for testing only;\n  // if embedded wasm is used then this is never used.\n  private static wasmURL = `https://unpkg.com/${packageData.name}@${packageData.version}/rive.wasm`;\n\n  // Class is never instantiated\n  private constructor() {}\n\n  // Loads the runtime\n  private static loadRuntime(): void {\n    rc.default({\n      // Loads Wasm bundle\n      locateFile: () => RuntimeLoader.wasmURL,\n    })\n      .then((rive: rc.RiveCanvas) => {\n        RuntimeLoader.runtime = rive;\n        // Fire all the callbacks\n        while (RuntimeLoader.callBackQueue.length > 0) {\n          RuntimeLoader.callBackQueue.shift()?.(RuntimeLoader.runtime);\n        }\n      })\n      .catch((error) => {\n        // Capture specific error details\n        const errorDetails = {\n          message: error?.message || \"Unknown error\",\n          type: error?.name || \"Error\",\n          // Some browsers may provide additional WebAssembly-specific details\n          wasmError:\n            error instanceof WebAssembly.CompileError ||\n            error instanceof WebAssembly.RuntimeError,\n          originalError: error,\n        };\n\n        // Log detailed error for debugging\n        console.debug(\"Rive WASM load error details:\", errorDetails);\n\n        // In case unpkg fails, or the wasm was not supported, we try to load the fallback module from jsdelivr.\n        // This `rive_fallback.wasm` is compiled to support older architecture.\n        // TODO: (Gordon): preemptively test browser support and load the correct wasm file. Then use jsdelvr only if unpkg fails.\n        const backupJsdelivrUrl = `https://cdn.jsdelivr.net/npm/${packageData.name}@${packageData.version}/rive_fallback.wasm`;\n        if (RuntimeLoader.wasmURL.toLowerCase() !== backupJsdelivrUrl) {\n          console.warn(\n            `Failed to load WASM from ${RuntimeLoader.wasmURL} (${errorDetails.message}), trying jsdelivr as a backup`,\n          );\n          RuntimeLoader.setWasmUrl(backupJsdelivrUrl);\n          RuntimeLoader.loadRuntime();\n        } else {\n          const errorMessage = [\n            `Could not load Rive WASM file from ${RuntimeLoader.wasmURL} or ${backupJsdelivrUrl}.`,\n            \"Possible reasons:\",\n            \"- Network connection is down\",\n            \"- WebAssembly is not supported in this environment\",\n            \"- The WASM file is corrupted or incompatible\",\n            \"\\nError details:\",\n            `- Type: ${errorDetails.type}`,\n            `- Message: ${errorDetails.message}`,\n            `- WebAssembly-specific error: ${errorDetails.wasmError}`,\n            \"\\nTo resolve, you may need to:\",\n            \"1. Check your network connection\",\n            \"2. Set a new WASM source via RuntimeLoader.setWasmUrl()\",\n            \"3. Call RuntimeLoader.loadRuntime() again\",\n          ].join(\"\\n\");\n\n          console.error(errorMessage);\n        }\n      });\n  }\n\n  // Provides a runtime instance via a callback\n  public static getInstance(callback: RuntimeCallback): void {\n    // If it's not loading, start loading runtime\n    if (!RuntimeLoader.isLoading) {\n      RuntimeLoader.isLoading = true;\n      RuntimeLoader.loadRuntime();\n    }\n    if (!RuntimeLoader.runtime) {\n      RuntimeLoader.callBackQueue.push(callback);\n    } else {\n      callback(RuntimeLoader.runtime);\n    }\n  }\n\n  // Provides a runtime instance via a promise\n  public static awaitInstance(): Promise<rc.RiveCanvas> {\n    return new Promise<rc.RiveCanvas>((resolve) =>\n      RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => resolve(rive)),\n    );\n  }\n\n  // Manually sets the wasm url\n  public static setWasmUrl(url: string): void {\n    RuntimeLoader.wasmURL = url;\n  }\n\n  // Gets the current wasm url\n  public static getWasmUrl(): string {\n    return RuntimeLoader.wasmURL;\n  }\n}\n\n// #endregion\n\n// #region state machines\n\nexport enum StateMachineInputType {\n  Number = 56,\n  Trigger = 58,\n  Boolean = 59,\n}\n\n/**\n * An input for a state machine\n */\nexport class StateMachineInput {\n  constructor(\n    public readonly type: StateMachineInputType,\n    private runtimeInput: rc.SMIInput,\n  ) {}\n\n  /**\n   * Returns the name of the input\n   */\n  public get name(): string {\n    return this.runtimeInput.name;\n  }\n\n  /**\n   * Returns the current value of the input\n   */\n  public get value(): number | boolean {\n    return this.runtimeInput.value;\n  }\n\n  /**\n   * Sets the value of the input\n   */\n  public set value(value: number | boolean) {\n    this.runtimeInput.value = value;\n  }\n\n  /**\n   * Fires a trigger; does nothing on Number or Boolean input types\n   */\n  public fire(): void {\n    if (this.type === StateMachineInputType.Trigger) {\n      this.runtimeInput.fire();\n    }\n  }\n\n  /**\n   * Deletes the input\n   */\n  public delete(): void {\n    this.runtimeInput = null;\n  }\n}\n\nexport enum RiveEventType {\n  General = 128,\n  OpenUrl = 131,\n}\n\nclass StateMachine {\n  /**\n   * Caches the inputs from the runtime\n   */\n  public readonly inputs: StateMachineInput[] = [];\n\n  /**\n   * Runtime state machine instance\n   */\n  public readonly instance: rc.StateMachineInstance;\n\n  /**\n   * @constructor\n   * @param stateMachine runtime state machine object\n   * @param instance runtime state machine instance object\n   */\n  constructor(\n    private stateMachine: rc.StateMachine,\n    runtime: rc.RiveCanvas,\n    public playing: boolean,\n    private artboard: rc.Artboard,\n  ) {\n    this.instance = new runtime.StateMachineInstance(stateMachine, artboard);\n    this.initInputs(runtime);\n  }\n\n  public get name(): string {\n    return this.stateMachine.name;\n  }\n\n  /**\n   * Returns a list of state names that have changed on this frame\n   */\n  public get statesChanged(): string[] {\n    const names: string[] = [];\n    for (let i = 0; i < this.instance.stateChangedCount(); i++) {\n      names.push(this.instance.stateChangedNameByIndex(i));\n    }\n    return names;\n  }\n\n  /**\n   * Advances the state machine instance by a given time.\n   * @param time - the time to advance the animation by in seconds\n   */\n  public advance(time: number) {\n    this.instance.advance(time);\n  }\n\n  /**\n   * Advances the state machine instance by a given time and apply changes to artboard.\n   * @param time - the time to advance the animation by in seconds\n   */\n  public advanceAndApply(time: number) {\n    this.instance.advanceAndApply(time);\n  }\n\n  /**\n   * Returns the number of events reported from the last advance call\n   * @returns Number of events reported\n   */\n  public reportedEventCount(): number {\n    return this.instance.reportedEventCount();\n  }\n\n  /**\n   * Returns a RiveEvent object emitted from the last advance call at the given index\n   * of a list of potentially multiple events. If an event at the index is not found,\n   * undefined is returned.\n   * @param i index of the event reported in a list of potentially multiple events\n   * @returns RiveEvent or extended RiveEvent object returned, or undefined\n   */\n  reportedEventAt(i: number): rc.OpenUrlEvent | rc.RiveEvent | undefined {\n    return this.instance.reportedEventAt(i);\n  }\n\n  /**\n   * Fetches references to the state machine's inputs and caches them\n   * @param runtime an instance of the runtime; needed for the SMIInput types\n   */\n  private initInputs(runtime: rc.RiveCanvas): void {\n    // Fetch the inputs from the runtime if we don't have them\n    for (let i = 0; i < this.instance.inputCount(); i++) {\n      const input = this.instance.input(i);\n      this.inputs.push(this.mapRuntimeInput(input, runtime));\n    }\n  }\n\n  /**\n   * Maps a runtime input to it's appropriate type\n   * @param input\n   */\n  private mapRuntimeInput(\n    input: rc.SMIInput,\n    runtime: rc.RiveCanvas,\n  ): StateMachineInput {\n    if (input.type === runtime.SMIInput.bool) {\n      return new StateMachineInput(\n        StateMachineInputType.Boolean,\n        input.asBool(),\n      );\n    } else if (input.type === runtime.SMIInput.number) {\n      return new StateMachineInput(\n        StateMachineInputType.Number,\n        input.asNumber(),\n      );\n    } else if (input.type === runtime.SMIInput.trigger) {\n      return new StateMachineInput(\n        StateMachineInputType.Trigger,\n        input.asTrigger(),\n      );\n    }\n  }\n\n  /**\n   * Deletes the backing Wasm state machine instance; once this is called, this\n   * state machine is no more.\n   */\n  public cleanup() {\n    this.inputs.forEach((input) => {\n      input.delete();\n    });\n    this.inputs.length = 0;\n    this.instance.delete();\n  }\n}\n\n// #endregion\n\n// #region animator\n\n/**\n * Manages animation\n */\nclass Animator {\n  /**\n   * Constructs a new animator\n   * @constructor\n   * @param runtime Rive runtime; needed to instance animations & state machines\n   * @param artboard the artboard that holds all animations and state machines\n   * @param animations optional list of animations\n   * @param stateMachines optional list of state machines\n   */\n  constructor(\n    private runtime: rc.RiveCanvas,\n    private artboard: rc.Artboard,\n    private eventManager: EventManager,\n    public readonly animations: Animation[] = [],\n    public readonly stateMachines: StateMachine[] = [],\n  ) {}\n\n  /**\n   * Adds animations and state machines by their names. If names are shared\n   * between animations & state machines, then the first one found will be\n   * created. Best not to use the same names for these in your Rive file.\n   * @param animatable the name(s) of animations and state machines to add\n   * @returns a list of names of the playing animations and state machines\n   */\n  public add(\n    animatables: string | string[],\n    playing: boolean,\n    fireEvent = true,\n  ): string[] {\n    animatables = mapToStringArray(animatables);\n    // If animatables is empty, play or pause everything\n    if (animatables.length === 0) {\n      this.animations.forEach((a) => (a.playing = playing));\n      this.stateMachines.forEach((m) => (m.playing = playing));\n    } else {\n      // Play/pause already instanced items, or create new instances\n      const instancedAnimationNames = this.animations.map((a) => a.name);\n      const instancedMachineNames = this.stateMachines.map((m) => m.name);\n      for (let i = 0; i < animatables.length; i++) {\n        const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n        const mIndex = instancedMachineNames.indexOf(animatables[i]);\n        if (aIndex >= 0 || mIndex >= 0) {\n          if (aIndex >= 0) {\n            // Animation is instanced, play/pause it\n            this.animations[aIndex].playing = playing;\n          } else {\n            // State machine is instanced, play/pause it\n            this.stateMachines[mIndex].playing = playing;\n          }\n        } else {\n          // Try to create a new animation instance\n          const anim = this.artboard.animationByName(animatables[i]);\n          if (anim) {\n            const newAnimation = new Animation(\n              anim,\n              this.artboard,\n              this.runtime,\n              playing,\n            );\n            // Display the first frame of the specified animation\n            newAnimation.advance(0);\n            newAnimation.apply(1.0);\n            this.animations.push(newAnimation);\n          } else {\n            // Try to create a new state machine instance\n            const sm = this.artboard.stateMachineByName(animatables[i]);\n            if (sm) {\n              const newStateMachine = new StateMachine(\n                sm,\n                this.runtime,\n                playing,\n                this.artboard,\n              );\n              this.stateMachines.push(newStateMachine);\n            }\n          }\n        }\n      }\n    }\n    // Fire play/paused events for animations\n    if (fireEvent) {\n      if (playing) {\n        this.eventManager.fire({\n          type: EventType.Play,\n          data: this.playing,\n        });\n      } else {\n        this.eventManager.fire({\n          type: EventType.Pause,\n          data: this.paused,\n        });\n      }\n    }\n\n    return playing ? this.playing : this.paused;\n  }\n\n  /**\n   * Adds linear animations by their names.\n   * @param animatables the name(s) of animations to add\n   * @param playing whether animations should play on instantiation\n   */\n  public initLinearAnimations(animatables: string[], playing: boolean) {\n    // Play/pause already instanced items, or create new instances\n    // This validation is kept to maintain compatibility with current behavior.\n    // But given that it this is called during artboard initialization\n    // it should probably be safe to remove.\n    const instancedAnimationNames = this.animations.map((a) => a.name);\n    for (let i = 0; i < animatables.length; i++) {\n      const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n      if (aIndex >= 0) {\n        this.animations[aIndex].playing = playing;\n      } else {\n        // Try to create a new animation instance\n        const anim = this.artboard.animationByName(animatables[i]);\n        if (anim) {\n          const newAnimation = new Animation(\n            anim,\n            this.artboard,\n            this.runtime,\n            playing,\n          );\n          // Display the first frame of the specified animation\n          newAnimation.advance(0);\n          newAnimation.apply(1.0);\n          this.animations.push(newAnimation);\n        }\n      }\n    }\n  }\n\n  /**\n   * Adds state machines by their names.\n   * @param animatables the name(s) of state machines to add\n   * @param playing whether state machines should play on instantiation\n   */\n  public initStateMachines(animatables: string[], playing: boolean) {\n    // Play/pause already instanced items, or create new instances\n    // This validation is kept to maintain compatibility with current behavior.\n    // But given that it this is called during artboard initialization\n    // it should probably be safe to remove.\n    const instancedStateMachineNames = this.stateMachines.map((a) => a.name);\n    for (let i = 0; i < animatables.length; i++) {\n      const aIndex = instancedStateMachineNames.indexOf(animatables[i]);\n      if (aIndex >= 0) {\n        this.stateMachines[aIndex].playing = playing;\n      } else {\n        // Try to create a new state machine instance\n        const sm = this.artboard.stateMachineByName(animatables[i]);\n        if (sm) {\n          const newStateMachine = new StateMachine(\n            sm,\n            this.runtime,\n            playing,\n            this.artboard,\n          );\n          this.stateMachines.push(newStateMachine);\n        } else {\n          // In order to maintain compatibility with current behavior, if a state machine is not found\n          // we look for an animation with the same name\n          this.initLinearAnimations([animatables[i]], playing);\n        }\n      }\n    }\n  }\n\n  /**\n   * Play the named animations/state machines\n   * @param animatables the names of the animations/machines to play; plays all if empty\n   * @returns a list of the playing items\n   */\n  public play(animatables: string | string[]): string[] {\n    return this.add(animatables, true);\n  }\n\n  /**\n   * Pauses named animations and state machines, or everything if nothing is\n   * specified\n   * @param animatables names of the animations and state machines to pause\n   * @returns a list of names of the animations and state machines paused\n   */\n  public pause(animatables: string[]): string[] {\n    return this.add(animatables, false);\n  }\n\n  /**\n   * Set time of named animations\n   * @param animations names of the animations to scrub\n   * @param value time scrub value, a floating point number to which the playhead is jumped\n   * @returns a list of names of the animations that were scrubbed\n   */\n  public scrub(animatables: string[], value: number): string[] {\n    const forScrubbing = this.animations.filter((a) =>\n      animatables.includes(a.name),\n    );\n    forScrubbing.forEach((a) => (a.scrubTo = value));\n    return forScrubbing.map((a) => a.name);\n  }\n\n  /**\n   * Returns a list of names of all animations and state machines currently\n   * playing\n   */\n  public get playing(): string[] {\n    return this.animations\n      .filter((a) => a.playing)\n      .map((a) => a.name)\n      .concat(this.stateMachines.filter((m) => m.playing).map((m) => m.name));\n  }\n\n  /**\n   * Returns a list of names of all animations and state machines currently\n   * paused\n   */\n  public get paused(): string[] {\n    return this.animations\n      .filter((a) => !a.playing)\n      .map((a) => a.name)\n      .concat(this.stateMachines.filter((m) => !m.playing).map((m) => m.name));\n  }\n\n  /**\n   * Stops and removes all named animations and state machines\n   * @param animatables animations and state machines to remove\n   * @returns a list of names of removed items\n   */\n  public stop(animatables?: string[] | string): string[] {\n    animatables = mapToStringArray(animatables);\n\n    // If nothing's specified, wipe them out, all of them\n    let removedNames: string[] = [];\n    // Stop everything\n    if (animatables.length === 0) {\n      removedNames = this.animations\n        .map((a) => a.name)\n        .concat(this.stateMachines.map((m) => m.name));\n      // Clean up before emptying the arrays\n      this.animations.forEach((a) => a.cleanup());\n      this.stateMachines.forEach((m) => m.cleanup());\n      // Empty out the arrays\n      this.animations.splice(0, this.animations.length);\n      this.stateMachines.splice(0, this.stateMachines.length);\n    } else {\n      // Remove only the named animations/state machines\n      const animationsToRemove = this.animations.filter((a) =>\n        animatables.includes(a.name),\n      );\n\n      animationsToRemove.forEach((a) => {\n        a.cleanup();\n        this.animations.splice(this.animations.indexOf(a), 1);\n      });\n      const machinesToRemove = this.stateMachines.filter((m) =>\n        animatables.includes(m.name),\n      );\n      machinesToRemove.forEach((m) => {\n        m.cleanup();\n        this.stateMachines.splice(this.stateMachines.indexOf(m), 1);\n      });\n      removedNames = animationsToRemove\n        .map((a) => a.name)\n        .concat(machinesToRemove.map((m) => m.name));\n    }\n\n    this.eventManager.fire({\n      type: EventType.Stop,\n      data: removedNames,\n    });\n\n    // Return the list of animations removed\n    return removedNames;\n  }\n\n  /**\n   * Returns true if at least one animation is active\n   */\n  public get isPlaying(): boolean {\n    return (\n      this.animations.reduce((acc, curr) => acc || curr.playing, false) ||\n      this.stateMachines.reduce((acc, curr) => acc || curr.playing, false)\n    );\n  }\n\n  /**\n   * Returns true if all animations are paused and there's at least one animation\n   */\n  public get isPaused(): boolean {\n    return (\n      !this.isPlaying &&\n      (this.animations.length > 0 || this.stateMachines.length > 0)\n    );\n  }\n\n  /**\n   * Returns true if there are no playing or paused animations/state machines\n   */\n  public get isStopped(): boolean {\n    return this.animations.length === 0 && this.stateMachines.length === 0;\n  }\n\n  /**\n   * If there are no animations or state machines, add the first one found\n   * @returns the name of the animation or state machine instanced\n   */\n  public atLeastOne(playing: boolean, fireEvent = true): string {\n    let instancedName: string;\n    if (this.animations.length === 0 && this.stateMachines.length === 0) {\n      if (this.artboard.animationCount() > 0) {\n        // Add the first animation\n        this.add(\n          [(instancedName = this.artboard.animationByIndex(0).name)],\n          playing,\n          fireEvent,\n        );\n      } else if (this.artboard.stateMachineCount() > 0) {\n        // Add the first state machine\n        this.add(\n          [(instancedName = this.artboard.stateMachineByIndex(0).name)],\n          playing,\n          fireEvent,\n        );\n      }\n    }\n    return instancedName;\n  }\n\n  /**\n   * Checks if any animations have looped and if so, fire the appropriate event\n   */\n  public handleLooping() {\n    for (const animation of this.animations.filter((a) => a.playing)) {\n      // Emit if the animation looped\n      if (animation.loopValue === 0 && animation.loopCount) {\n        animation.loopCount = 0;\n        // This is a one-shot; if it has ended, delete the instance\n        this.stop(animation.name);\n      } else if (animation.loopValue === 1 && animation.loopCount) {\n        this.eventManager.fire({\n          type: EventType.Loop,\n          data: { animation: animation.name, type: LoopType.Loop },\n        });\n        animation.loopCount = 0;\n      }\n      // Wasm indicates a loop at each time the animation\n      // changes direction, so a full loop/lap occurs every\n      // two loop counts\n      else if (animation.loopValue === 2 && animation.loopCount > 1) {\n        this.eventManager.fire({\n          type: EventType.Loop,\n          data: { animation: animation.name, type: LoopType.PingPong },\n        });\n        animation.loopCount = 0;\n      }\n    }\n  }\n\n  /**\n   * Checks if states have changed in state machines and fires a statechange\n   * event\n   */\n  public handleStateChanges() {\n    const statesChanged: string[] = [];\n    for (const stateMachine of this.stateMachines.filter((sm) => sm.playing)) {\n      statesChanged.push(...stateMachine.statesChanged);\n    }\n    if (statesChanged.length > 0) {\n      this.eventManager.fire({\n        type: EventType.StateChange,\n        data: statesChanged,\n      });\n    }\n  }\n\n  public handleAdvancing(time: number) {\n    this.eventManager.fire({\n      type: EventType.Advance,\n      data: time,\n    });\n  }\n}\n\n// #endregion\n\n// #region events\n\n/**\n * Supported event types triggered in Rive\n */\nexport enum EventType {\n  Load = \"load\",\n  LoadError = \"loaderror\",\n  Play = \"play\",\n  Pause = \"pause\",\n  Stop = \"stop\",\n  Loop = \"loop\",\n  Draw = \"draw\",\n  Advance = \"advance\",\n  StateChange = \"statechange\",\n  RiveEvent = \"riveevent\",\n  AudioStatusChange = \"audiostatuschange\", // internal event. TODO: split\n}\n\nexport type RiveEventPayload = rc.RiveEvent | rc.OpenUrlEvent;\n\n// Event reported by Rive for significant events during animation playback (i.e. play, pause, stop, etc.),\n// as well as for custom Rive events reported from the state machine defined at design-time.\nexport interface Event {\n  type: EventType;\n  data?: string | string[] | LoopEvent | number | RiveEventPayload | RiveFile;\n}\n\n/**\n * Looping types: one-shot, loop, and ping-pong\n */\nexport enum LoopType {\n  OneShot = \"oneshot\", // has value 0 in runtime\n  Loop = \"loop\", // has value 1 in runtime\n  PingPong = \"pingpong\", // has value 2 in runtime\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport interface LoopEvent {\n  animation: string;\n  type: LoopType;\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport type EventCallback = (event: Event) => void;\n\n/**\n * Event listeners registered with the event manager\n */\nexport interface EventListener {\n  type: EventType;\n  callback: EventCallback;\n}\n\n/**\n * FPS Reporting through callbacks sent to the WASM runtime\n */\nexport type FPSCallback = (fps: number) => void;\n\n// Manages Rive events and listeners\nclass EventManager {\n  constructor(private listeners: EventListener[] = []) {}\n\n  // Gets listeners of specified type\n  private getListeners(type: EventType): EventListener[] {\n    return this.listeners.filter((e) => e.type === type);\n  }\n\n  // Adds a listener\n  public add(listener: EventListener): void {\n    if (!this.listeners.includes(listener)) {\n      this.listeners.push(listener);\n    }\n  }\n\n  /**\n   * Removes a listener\n   * @param listener the listener with the callback to be removed\n   */\n  public remove(listener: EventListener): void {\n    // We can't simply look for the listener as it'll be a different instance to\n    // one originally subscribed. Find all the listeners of the right type and\n    // then check their callbacks which should match.\n    for (let i = 0; i < this.listeners.length; i++) {\n      const currentListener = this.listeners[i];\n      if (currentListener.type === listener.type) {\n        if (currentListener.callback === listener.callback) {\n          this.listeners.splice(i, 1);\n          break;\n        }\n      }\n    }\n  }\n\n  /**\n   * Clears all listeners of specified type, or every listener if no type is\n   * specified\n   * @param type the type of listeners to clear, or all listeners if not\n   * specified\n   */\n  public removeAll(type?: EventType) {\n    if (!type) {\n      this.listeners.splice(0, this.listeners.length);\n    } else {\n      this.listeners\n        .filter((l) => l.type === type)\n        .forEach((l) => this.remove(l));\n    }\n  }\n\n  // Fires an event\n  public fire(event: Event): void {\n    const eventListeners = this.getListeners(event.type);\n    eventListeners.forEach((listener) => listener.callback(event));\n  }\n}\n\n// #endregion\n\n// #region Manages a queue of tasks\n\n// A task in the queue; will fire the action when the queue is processed; will\n// also optionally fire an event.\nexport interface Task {\n  action?: VoidCallback;\n  event?: Event;\n}\n\n// Manages a queue of tasks\nclass TaskQueueManager {\n  private queue: Task[] = [];\n\n  constructor(private eventManager: EventManager) {}\n\n  // Adds a task top the queue\n  public add(task: Task): void {\n    this.queue.push(task);\n  }\n\n  // Processes all tasks in the queue\n  public process(): void {\n    while (this.queue.length > 0) {\n      const task = this.queue.shift();\n      if (task?.action) {\n        task.action();\n      }\n      if (task?.event) {\n        this.eventManager.fire(task.event);\n      }\n    }\n  }\n}\n\n// #endregion\n\n// #region Audio\n\nenum SystemAudioStatus {\n  AVAILABLE,\n  UNAVAILABLE,\n}\n\n// Class to handle audio context availability and status changes\nclass AudioManager extends EventManager {\n  private _started: boolean = false;\n  private _enabled: boolean = false;\n\n  private _status: SystemAudioStatus = SystemAudioStatus.UNAVAILABLE;\n  private _audioContext: AudioContext;\n\n  private async delay(time: number) {\n    return new Promise((resolve) => setTimeout(resolve, time));\n  }\n\n  private async timeout() {\n    return new Promise((_, reject) => setTimeout(reject, 50));\n  }\n\n  // Alerts animations on status changes and removes the listeners to avoid alerting twice.\n  private reportToListeners() {\n    this.fire({ type: EventType.AudioStatusChange });\n    this.removeAll();\n  }\n\n  /**\n   * The audio context has been resolved.\n   * Alert any listeners that we can now play audio.\n   * Rive will now play audio at the configured volume.\n   */\n  private async enableAudio() {\n    if (!this._enabled) {\n      this._enabled = true;\n      this._status = SystemAudioStatus.AVAILABLE;\n      this.reportToListeners();\n    }\n  }\n\n  /**\n   * Check if we are able to play audio.\n   *\n   * We currently check the audio context, when resume() returns before a timeout we know that the\n   * audio context is running and we can enable audio.\n   */\n  private async testAudio() {\n    if (\n      this._status === SystemAudioStatus.UNAVAILABLE &&\n      this._audioContext !== null\n    ) {\n      // if the audio context is not available, it will never resume,\n      // so the timeout will throw after 50ms and a new cycle will start\n      try {\n        await Promise.race([this._audioContext.resume(), this.timeout()]);\n        this.enableAudio();\n      } catch {\n        // we expect the promise race to timeout, which we ignore.\n      }\n    }\n  }\n\n  /**\n   * Establish audio for use with rive.\n   * We both test if we can use audio intermittently and listen for user interaction.\n   * The aim is to enable audio playback as soon as the browser allows this.\n   */\n  private async _establishAudio() {\n    if (!this._started) {\n      this._started = true;\n      // If window doesn't exist we assume they are not in a browser context\n      // so audio will not be blocked\n      if (typeof window == \"undefined\") {\n        this.enableAudio();\n      } else {\n        this._audioContext = new AudioContext();\n        this.listenForUserAction();\n        while (this._status === SystemAudioStatus.UNAVAILABLE) {\n          await this.testAudio();\n          await this.delay(1000);\n        }\n      }\n    }\n  }\n\n  private listenForUserAction() {\n    // NOTE: AudioContexts are ready immediately if requested in a ui callback\n    // we *could* re request one in this listener.\n    const _clickListener = async () => {\n      // note this has \"better\" results than calling `await this.testAudio()`\n      // as we force audio to be enabled in the current thread, rather than chancing\n      // the thread to be passed over for some other async context\n\n      this.enableAudio();\n    };\n    // NOTE: we should test this on mobile/pads\n    document.addEventListener(\"pointerdown\", _clickListener, {\n      once: true,\n    });\n  }\n\n  /**\n   * Establish the audio context for rive, this lets rive know that we can play audio.\n   */\n  public async establishAudio() {\n    this._establishAudio();\n  }\n\n  public get systemVolume() {\n    if (this._status === SystemAudioStatus.UNAVAILABLE) {\n      // We do an immediate test to avoid depending on the delay of the running test\n      this.testAudio();\n      return 0;\n    }\n    return 1;\n  }\n\n  public get status(): SystemAudioStatus {\n    return this._status;\n  }\n}\n\nconst audioManager = new AudioManager();\n\n// #endregion\n\n// #region Observers\n\ntype ObservedObject = {\n  onResize: Function;\n  element: HTMLCanvasElement;\n};\n\ntype MyResizeObserverType = {\n  observe: Function;\n  unobserve: Function;\n  disconnect: Function;\n};\n\nclass FakeResizeObserver {\n  observe() {}\n  unobserve() {}\n  disconnect() {}\n}\n\nconst MyResizeObserver = globalThis.ResizeObserver || FakeResizeObserver;\n\n/**\n * This class takes care of any observers that will be attached to an animation.\n * It should be treated as a singleton because observers are much more performant\n * when used for observing multiple elements by a single instance.\n */\n\nclass ObjectObservers {\n  private _elementsMap: Map<HTMLCanvasElement, ObservedObject> = new Map();\n\n  private _resizeObserver: MyResizeObserverType;\n\n  constructor() {\n    this._resizeObserver = new MyResizeObserver(this._onObserved);\n  }\n\n  /**\n   * Resize observers trigger both when the element changes its size and also when the\n   * element is added or removed from the document.\n   */\n  private _onObservedEntry = (entry: ResizeObserverEntry) => {\n    const observed = this._elementsMap.get(entry.target as HTMLCanvasElement);\n    if (observed !== null) {\n      observed.onResize(\n        entry.target.clientWidth == 0 || entry.target.clientHeight == 0,\n      );\n    } else {\n      this._resizeObserver.unobserve(entry.target);\n    }\n  };\n\n  private _onObserved = (entries: ResizeObserverEntry[]) => {\n    entries.forEach(this._onObservedEntry);\n  };\n\n  // Adds an observable element\n  public add(element: HTMLCanvasElement, onResize: Function) {\n    let observed: ObservedObject = {\n      onResize,\n      element,\n    };\n    this._elementsMap.set(element, observed);\n    this._resizeObserver.observe(element);\n    return observed;\n  }\n\n  // Removes an observable element\n  public remove(observed: ObservedObject) {\n    this._resizeObserver.unobserve(observed.element);\n    this._elementsMap.delete(observed.element);\n  }\n}\n\nconst observers = new ObjectObservers();\n\n// #endregion\n\n// #region Rive\n\n// Interface for the Rive static method contructor\nexport interface RiveParameters {\n  canvas: HTMLCanvasElement | OffscreenCanvas; // canvas is required\n  src?: string; // one of src or buffer or file is required\n  buffer?: ArrayBuffer; // one of src or buffer or file is required\n  riveFile?: RiveFile;\n  artboard?: string;\n  animations?: string | string[];\n  stateMachines?: string | string[];\n  layout?: Layout;\n  autoplay?: boolean;\n  useOffscreenRenderer?: boolean;\n  /**\n   * Allow the runtime to automatically load assets hosted in Rive's CDN.\n   * enabled by default.\n   */\n  enableRiveAssetCDN?: boolean;\n  /**\n   * Turn off Rive Listeners. This means state machines that have Listeners\n   * will not be invoked, and also, no event listeners pertaining to Listeners\n   * will be attached to the <canvas> element\n   */\n  shouldDisableRiveListeners?: boolean;\n  /**\n   * For Rive Listeners, allows scrolling behavior to still occur on canvas elements\n   * when a touch/drag action is performed on touch-enabled devices. Otherwise,\n   * scroll behavior may be prevented on touch/drag actions on the canvas by default.\n   */\n  isTouchScrollEnabled?: boolean;\n  /**\n   * Enable Rive Events to be handled by the runtime. This means any special Rive Event may have\n   * a side effect that takes place implicitly.\n   *\n   * For example, if during the render loop an OpenUrlEvent is detected, the\n   * browser may try to open the specified URL in the payload.\n   *\n   * This flag is false by default to prevent any unwanted behaviors from taking place.\n   * This means any special Rive Event will have to be handled manually by subscribing to\n   * EventType.RiveEvent\n   */\n  automaticallyHandleEvents?: boolean;\n  onLoad?: EventCallback;\n  onLoadError?: EventCallback;\n  onPlay?: EventCallback;\n  onPause?: EventCallback;\n  onStop?: EventCallback;\n  onLoop?: EventCallback;\n  onStateChange?: EventCallback;\n  onAdvance?: EventCallback;\n  assetLoader?: AssetLoadCallback;\n  /**\n   * @deprecated Use `onLoad()` instead\n   */\n  onload?: EventCallback;\n  /**\n   * @deprecated Use `onLoadError()` instead\n   */\n  onloaderror?: EventCallback;\n  /**\n   * @deprecated Use `onPoad()` instead\n   */\n  onplay?: EventCallback;\n  /**\n   * @deprecated Use `onPause()` instead\n   */\n  onpause?: EventCallback;\n  /**\n   * @deprecated Use `onStop()` instead\n   */\n  onstop?: EventCallback;\n  /**\n   * @deprecated Use `onLoop()` instead\n   */\n  onloop?: EventCallback;\n  /**\n   * @deprecated Use `onStateChange()` instead\n   */\n  onstatechange?: EventCallback;\n}\n\n// Interface to Rive.load function\nexport interface RiveLoadParameters {\n  src?: string;\n  buffer?: ArrayBuffer;\n  riveFile?: RiveFile;\n  autoplay?: boolean;\n  artboard?: string;\n  animations?: string | string[];\n  stateMachines?: string | string[];\n  useOffscreenRenderer?: boolean;\n  shouldDisableRiveListeners?: boolean;\n}\n\n// Interface ot Rive.reset function\nexport interface RiveResetParameters {\n  artboard?: string;\n  animations?: string | string[];\n  stateMachines?: string | string[];\n  autoplay?: boolean;\n}\n// Interface to RiveFile.load function\nexport interface RiveFileParameters {\n  src?: string;\n  buffer?: ArrayBuffer;\n  assetLoader?: AssetLoadCallback;\n  enableRiveAssetCDN?: boolean;\n  onLoad?: EventCallback;\n  onLoadError?: EventCallback;\n}\n\nexport class RiveFile {\n  // Error message for missing source or buffer\n  private static readonly missingErrorMessage: string =\n    \"Rive source file or data buffer required\";\n\n  // Error message for file load error\n  private static readonly fileLoadErrorMessage: string =\n    \"The file failed to load\";\n\n  // A url to a Rive file; may be undefined if a buffer is specified\n  private src: string;\n\n  // Raw Rive file data; may be undefined if a src is specified\n  private buffer: ArrayBuffer;\n\n  // Wasm runtime\n  private runtime: rc.RiveCanvas;\n\n  // Runtime file\n  private file: rc.File;\n\n  // AssetLoadCallback: allows customizing asset loading for images and fonts.\n  private assetLoader: AssetLoadCallback;\n\n  // Allow the runtime to automatically load assets hosted in Rive's runtime.\n  private enableRiveAssetCDN: boolean = true;\n\n  // Holds event listeners\n  private eventManager: EventManager;\n\n  private referenceCount: number = 0;\n\n  private destroyed: boolean = false;\n\n  constructor(params: RiveFileParameters) {\n    this.src = params.src;\n    this.buffer = params.buffer;\n\n    if (params.assetLoader) this.assetLoader = params.assetLoader;\n    this.enableRiveAssetCDN =\n      typeof params.enableRiveAssetCDN == \"boolean\"\n        ? params.enableRiveAssetCDN\n        : true;\n\n    // New event management system\n    this.eventManager = new EventManager();\n    if (params.onLoad) this.on(EventType.Load, params.onLoad);\n    if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n  }\n\n  private async initData() {\n    if (this.src) {\n      this.buffer = await loadRiveFile(this.src);\n    }\n    if (this.destroyed) {\n      return;\n    }\n    let loader;\n    if (this.assetLoader) {\n      loader = new this.runtime.CustomFileAssetLoader({\n        loadContents: this.assetLoader,\n      });\n    }\n    // Load the Rive file\n    this.file = await this.runtime.load(\n      new Uint8Array(this.buffer),\n      loader,\n      this.enableRiveAssetCDN,\n    );\n    if (this.destroyed) {\n      this.file?.delete();\n      this.file = null;\n      return;\n    }\n    if (this.file !== null) {\n      this.eventManager.fire({\n        type: EventType.Load,\n        data: this,\n      });\n    } else {\n      this.eventManager.fire({\n        type: EventType.LoadError,\n        data: null,\n      });\n      throw new Error(RiveFile.fileLoadErrorMessage);\n    }\n  }\n\n  public async init() {\n    // If no source file url specified, it's a bust\n    if (!this.src && !this.buffer) {\n      throw new Error(RiveFile.missingErrorMessage);\n    }\n    this.runtime = await RuntimeLoader.awaitInstance();\n\n    if (this.destroyed) {\n      return;\n    }\n    await this.initData();\n  }\n\n  /**\n   * Subscribe to Rive-generated events\n   * @param type the type of event to subscribe to\n   * @param callback callback to fire when the event occurs\n   */\n  public on(type: EventType, callback: EventCallback) {\n    this.eventManager.add({\n      type: type,\n      callback: callback,\n    });\n  }\n\n  /**\n   * Unsubscribes from a Rive-generated event\n   * @param type the type of event to unsubscribe from\n   * @param callback the callback to unsubscribe\n   */\n  public off(type: EventType, callback: EventCallback) {\n    this.eventManager.remove({\n      type: type,\n      callback: callback,\n    });\n  }\n\n  public cleanup() {\n    this.referenceCount -= 1;\n    if (this.referenceCount <= 0) {\n      this.removeAllRiveEventListeners();\n      this.file?.delete();\n      this.file = null;\n      this.destroyed = true;\n    }\n  }\n\n  /**\n   * Unsubscribes all Rive listeners from an event type, or everything if no type is\n   * given\n   * @param type the type of event to unsubscribe from, or all types if\n   * undefined\n   */\n  public removeAllRiveEventListeners(type?: EventType) {\n    this.eventManager.removeAll(type);\n  }\n\n  public getInstance(): rc.File {\n    if (this.file !== null) {\n      this.referenceCount += 1;\n      return this.file;\n    }\n  }\n}\n\nexport class Rive {\n  // Canvas in which to render the artboard\n  private readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n\n  // A url to a Rive file; may be undefined if a buffer is specified\n  private src: string;\n\n  // Raw Rive file data; may be undefined if a src is specified\n  private buffer: ArrayBuffer;\n\n  // The layout for rendering in the canvas\n  private _layout: Layout;\n\n  // The runtime renderer\n  private renderer: rc.WrappedRenderer;\n\n  // Tracks if a Rive file is loaded\n  private loaded = false;\n\n  // Tracks if a Rive file is destroyed\n  private destroyed = false;\n\n  // Reference of an object that handles any observers for the animation\n  private _observed: ObservedObject | null = null;\n\n  /**\n   * Tracks if a Rive file is loaded; we need this in addition to loaded as some\n   * commands (e.g. contents) can be called as soon as the file is loaded.\n   * However, playback commands need to be queued and run in order once initial\n   * animations and autoplay has been sorted out. This applies to play, pause,\n   * and start.\n   */\n  private readyForPlaying = false;\n\n  // Wasm runtime\n  private runtime: rc.RiveCanvas;\n\n  // Runtime artboard\n  private artboard: rc.Artboard | null = null;\n\n  // place to clear up event listeners\n  private eventCleanup: VoidCallback | null = null;\n\n  // Runtime file\n  private file: rc.File;\n\n  // Rive file instance\n  private riveFile: RiveFile;\n\n  // Holds event listeners\n  private eventManager: EventManager;\n\n  // Manages the loading task queue\n  private taskQueue: TaskQueueManager;\n\n  // Animator: manages animations and state machines\n  private animator: Animator;\n\n  // AssetLoadCallback: allows customizing asset loading for images and fonts.\n  private assetLoader: AssetLoadCallback;\n\n  // Error message for missing source or buffer\n  private static readonly missingErrorMessage: string =\n    \"Rive source file or data buffer required\";\n\n  // Error message for removed rive file\n  private static readonly cleanupErrorMessage: string =\n    \"Attempt to use file after calling cleanup.\";\n\n  private shouldDisableRiveListeners = false;\n\n  private automaticallyHandleEvents = false;\n\n  // Allow the runtime to automatically load assets hosted in Rive's runtime.\n  private enableRiveAssetCDN = true;\n\n  // Keep a local value of the set volume to update it asynchronously\n  private _volume = 1;\n\n  // Keep a local value of the set width to update it asynchronously\n  private _artboardWidth: number | undefined = undefined;\n\n  // Keep a local value of the set height to update it asynchronously\n  private _artboardHeight: number | undefined = undefined;\n\n  // Keep a local value of the device pixel ratio used in rendering and canvas/artboard resizing\n  private _devicePixelRatioUsed = 1;\n\n  // Whether the canvas element's size is 0\n  private _hasZeroSize = false;\n\n  // Audio event listener\n  private _audioEventListener: EventListener | null = null;\n\n  // draw method bound to the class\n  private _boundDraw: (t: number) => void | null = null;\n\n  // Durations to generate a frame for the last second. Used for performance profiling.\n  public durations: number[] = [];\n  public frameTimes: number[] = [];\n  public frameCount = 0;\n  public isTouchScrollEnabled = false;\n\n  constructor(params: RiveParameters) {\n    this._boundDraw = this.draw.bind(this);\n    this.canvas = params.canvas;\n    if (params.canvas.constructor === HTMLCanvasElement) {\n      this._observed = observers.add(\n        this.canvas as HTMLCanvasElement,\n        this.onCanvasResize,\n      );\n    }\n    this.src = params.src;\n    this.buffer = params.buffer;\n    this.riveFile = params.riveFile;\n    this.layout = params.layout ?? new Layout();\n    this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\n    this.isTouchScrollEnabled = !!params.isTouchScrollEnabled;\n    this.automaticallyHandleEvents = !!params.automaticallyHandleEvents;\n    this.enableRiveAssetCDN =\n      params.enableRiveAssetCDN === undefined\n        ? true\n        : params.enableRiveAssetCDN;\n\n    // New event management system\n    this.eventManager = new EventManager();\n    if (params.onLoad) this.on(EventType.Load, params.onLoad);\n    if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n    if (params.onPlay) this.on(EventType.Play, params.onPlay);\n    if (params.onPause) this.on(EventType.Pause, params.onPause);\n    if (params.onStop) this.on(EventType.Stop, params.onStop);\n    if (params.onLoop) this.on(EventType.Loop, params.onLoop);\n    if (params.onStateChange)\n      this.on(EventType.StateChange, params.onStateChange);\n    if (params.onAdvance) this.on(EventType.Advance, params.onAdvance);\n\n    /**\n     * @deprecated Use camelCase'd versions instead.\n     */\n    if (params.onload && !params.onLoad) this.on(EventType.Load, params.onload);\n    if (params.onloaderror && !params.onLoadError)\n      this.on(EventType.LoadError, params.onloaderror);\n    if (params.onplay && !params.onPlay) this.on(EventType.Play, params.onplay);\n    if (params.onpause && !params.onPause)\n      this.on(EventType.Pause, params.onpause);\n    if (params.onstop && !params.onStop) this.on(EventType.Stop, params.onstop);\n    if (params.onloop && !params.onLoop) this.on(EventType.Loop, params.onloop);\n    if (params.onstatechange && !params.onStateChange)\n      this.on(EventType.StateChange, params.onstatechange);\n\n    /**\n     * Asset loading\n     */\n    if (params.assetLoader) this.assetLoader = params.assetLoader;\n\n    // Hook up the task queue\n    this.taskQueue = new TaskQueueManager(this.eventManager);\n\n    this.init({\n      src: this.src,\n      buffer: this.buffer,\n      riveFile: this.riveFile,\n      autoplay: params.autoplay,\n      animations: params.animations,\n      stateMachines: params.stateMachines,\n      artboard: params.artboard,\n      useOffscreenRenderer: params.useOffscreenRenderer,\n    });\n  }\n\n  // Alternative constructor to build a Rive instance from an interface/object\n  public static new(params: RiveParameters): Rive {\n    console.warn(\n      \"This function is deprecated: please use `new Rive({})` instead\",\n    );\n    return new Rive(params);\n  }\n\n  // Event handler for when audio context becomes available\n  private onSystemAudioChanged() {\n    this.volume = this._volume;\n  }\n\n  private onCanvasResize = (hasZeroSize: boolean) => {\n    const toggledDisplay = this._hasZeroSize !== hasZeroSize;\n    this._hasZeroSize = hasZeroSize;\n    if (!hasZeroSize) {\n      if (toggledDisplay) {\n        this.resizeDrawingSurfaceToCanvas();\n      }\n    } else if (!this._layout.maxX || !this._layout.maxY) {\n      this.resizeToCanvas();\n    }\n  };\n\n  // Initializes the Rive object either from constructor or load()\n  private init({\n    src,\n    buffer,\n    riveFile,\n    animations,\n    stateMachines,\n    artboard,\n    autoplay = false,\n    useOffscreenRenderer = false,\n  }: RiveLoadParameters): void {\n    if (this.destroyed) {\n      return;\n    }\n    this.src = src;\n    this.buffer = buffer;\n    this.riveFile = riveFile;\n\n    // If no source file url specified, it's a bust\n    if (!this.src && !this.buffer && !this.riveFile) {\n      throw new RiveError(Rive.missingErrorMessage);\n    }\n\n    // List of animations that should be initialized.\n    const startingAnimationNames = mapToStringArray(animations);\n\n    // List of state machines that should be initialized\n    const startingStateMachineNames = mapToStringArray(stateMachines);\n\n    // Ensure loaded is marked as false if loading new file\n    this.loaded = false;\n    this.readyForPlaying = false;\n\n    // Ensure the runtime is loaded\n    RuntimeLoader.awaitInstance()\n      .then((runtime) => {\n        if (this.destroyed) {\n          return;\n        }\n        this.runtime = runtime;\n\n        this.removeRiveListeners();\n        this.deleteRiveRenderer();\n\n        // Get the canvas where you want to render the animation and create a renderer\n        this.renderer = this.runtime.makeRenderer(\n          this.canvas,\n          useOffscreenRenderer,\n        );\n\n        // Initial size adjustment based on devicePixelRatio if no width/height are\n        // specified explicitly\n        if (!(this.canvas.width || this.canvas.height)) {\n          this.resizeDrawingSurfaceToCanvas();\n        }\n\n        // Load Rive data from a source uri or a data buffer\n        this.initData(\n          artboard,\n          startingAnimationNames,\n          startingStateMachineNames,\n          autoplay,\n        )\n          .then(() => this.setupRiveListeners())\n          .catch((e) => {\n            console.error(e);\n          });\n      })\n      .catch((e) => {\n        console.error(e);\n      });\n  }\n\n  /**\n   * Setup Rive Listeners on the canvas\n   * @param riveListenerOptions - Enables TouchEvent events on the canvas. Set to true to allow\n   * touch scrolling on the canvas element on touch-enabled devices\n   * i.e. { isTouchScrollEnabled: true }\n   */\n  public setupRiveListeners(\n    riveListenerOptions?: SetupRiveListenersOptions,\n  ): void {\n    if (this.eventCleanup) {\n      this.eventCleanup();\n    }\n    if (!this.shouldDisableRiveListeners) {\n      const activeStateMachines = (this.animator.stateMachines || [])\n        .filter((sm) => sm.playing && this.runtime.hasListeners(sm.instance))\n        .map((sm) => sm.instance);\n      let touchScrollEnabledOption = this.isTouchScrollEnabled;\n      if (\n        riveListenerOptions &&\n        \"isTouchScrollEnabled\" in riveListenerOptions\n      ) {\n        touchScrollEnabledOption = riveListenerOptions.isTouchScrollEnabled;\n      }\n      this.eventCleanup = registerTouchInteractions({\n        canvas: this.canvas,\n        artboard: this.artboard,\n        stateMachines: activeStateMachines,\n        renderer: this.renderer,\n        rive: this.runtime,\n        fit: this._layout.runtimeFit(this.runtime),\n        alignment: this._layout.runtimeAlignment(this.runtime),\n        isTouchScrollEnabled: touchScrollEnabledOption,\n        layoutScaleFactor: this._layout.layoutScaleFactor,\n      });\n    }\n  }\n\n  /**\n   * Remove Rive Listeners setup on the canvas\n   */\n  public removeRiveListeners(): void {\n    if (this.eventCleanup) {\n      this.eventCleanup();\n      this.eventCleanup = null;\n    }\n  }\n\n  /**\n   * If the instance has audio and the system audio is not ready\n   * we hook the instance to the audio manager\n   */\n  private initializeAudio() {\n    // Initialize audio if needed\n    if (audioManager.status == SystemAudioStatus.UNAVAILABLE) {\n      if (this.artboard?.hasAudio && this._audioEventListener === null) {\n        this._audioEventListener = {\n          type: EventType.AudioStatusChange,\n          callback: () => this.onSystemAudioChanged(),\n        };\n        audioManager.add(this._audioEventListener);\n        audioManager.establishAudio();\n      }\n    }\n  }\n\n  private initArtboardSize() {\n    if (!this.artboard) return;\n\n    // Use preset values if they are not undefined\n    this._artboardWidth = this.artboard.width =\n      this._artboardWidth || this.artboard.width;\n    this._artboardHeight = this.artboard.height =\n      this._artboardHeight || this.artboard.height;\n  }\n\n  // Initializes runtime with Rive data and preps for playing\n  private async initData(\n    artboardName: string,\n    animationNames: string[],\n    stateMachineNames: string[],\n    autoplay: boolean,\n  ): Promise<void> {\n    try {\n      if (this.riveFile == null) {\n        this.riveFile = new RiveFile({\n          src: this.src,\n          buffer: this.buffer,\n          enableRiveAssetCDN: this.enableRiveAssetCDN,\n          assetLoader: this.assetLoader,\n        });\n        await this.riveFile.init();\n      }\n      // Check for riveFile in case it has been cleaned up while initializing;\n      if (!this.riveFile) {\n        throw new RiveError(Rive.cleanupErrorMessage);\n      }\n      this.file = this.riveFile.getInstance();\n      // Initialize and draw frame\n      this.initArtboard(\n        artboardName,\n        animationNames,\n        stateMachineNames,\n        autoplay,\n      );\n\n      // Initialize the artboard size\n      this.initArtboardSize();\n\n      // Check for audio\n      this.initializeAudio();\n\n      // Everything's set up, emit a load event\n      this.loaded = true;\n      this.eventManager.fire({\n        type: EventType.Load,\n        data: this.src ?? \"buffer\",\n      });\n\n      // Flag ready for playback commands and clear the task queue; this order\n      // is important or it may infinitely recurse\n      this.readyForPlaying = true;\n      this.taskQueue.process();\n\n      this.drawFrame();\n\n      return Promise.resolve();\n    } catch (error) {\n      const msg = resolveErrorMessage(error);\n      console.warn(msg);\n      this.eventManager.fire({ type: EventType.LoadError, data: msg });\n      return Promise.reject(msg);\n    }\n  }\n\n  // Initialize for playback\n  private initArtboard(\n    artboardName: string,\n    animationNames: string[],\n    stateMachineNames: string[],\n    autoplay: boolean,\n  ): void {\n    if (!this.file) {\n      return;\n    }\n    // Fetch the artboard\n    const rootArtboard = artboardName\n      ? this.file.artboardByName(artboardName)\n      : this.file.defaultArtboard();\n\n    // Check we have a working artboard\n    if (!rootArtboard) {\n      const msg = \"Invalid artboard name or no default artboard\";\n      console.warn(msg);\n      this.eventManager.fire({ type: EventType.LoadError, data: msg });\n      return;\n    }\n\n    this.artboard = rootArtboard;\n    rootArtboard.volume = this._volume * audioManager.systemVolume;\n\n    // Check that the artboard has at least 1 animation\n    if (this.artboard.animationCount() < 1) {\n      const msg = \"Artboard has no animations\";\n      this.eventManager.fire({ type: EventType.LoadError, data: msg });\n      throw msg;\n    }\n\n    // Initialize the animator\n    this.animator = new Animator(\n      this.runtime,\n      this.artboard,\n      this.eventManager,\n    );\n\n    // Initialize the animations; as loaded hasn't happened yet, we need to\n    // suppress firing the play/pause events until the load event has fired. To\n    // do this we tell the animator to suppress firing events, and add event\n    // firing to the task queue.\n    let instanceNames: string[];\n    if (animationNames.length > 0 || stateMachineNames.length > 0) {\n      instanceNames = animationNames.concat(stateMachineNames);\n      this.animator.initLinearAnimations(animationNames, autoplay);\n      this.animator.initStateMachines(stateMachineNames, autoplay);\n    } else {\n      instanceNames = [this.animator.atLeastOne(autoplay, false)];\n    }\n    // Queue up firing the playback events\n    this.taskQueue.add({\n      event: {\n        type: autoplay ? EventType.Play : EventType.Pause,\n        data: instanceNames,\n      },\n    });\n  }\n\n  // Draws the current artboard frame\n  public drawFrame() {\n    if (document?.timeline?.currentTime) {\n      if (this.loaded && this.artboard && !this.frameRequestId) {\n        this._boundDraw(document!.timeline!.currentTime as number);\n      }\n    } else {\n      this.startRendering();\n    }\n  }\n\n  // Tracks the last timestamp at which the animation was rendered. Used only in\n  // draw().\n  private lastRenderTime: number;\n\n  // Tracks the current animation frame request\n  private frameRequestId: number | null;\n\n  /**\n   * Used be draw to track when a second of active rendering time has passed.\n   * Used for debugging purposes\n   */\n  private renderSecondTimer = 0;\n\n  /**\n   * Draw rendering loop; renders animation frames at the correct time interval.\n   * @param time the time at which to render a frame\n   */\n  private draw(time: number, onSecond?: VoidCallback): void {\n    // Clear the frameRequestId, as we're now rendering a fresh frame\n    this.frameRequestId = null;\n\n    const before = performance.now();\n\n    // On the first pass, make sure lastTime has a valid value\n    if (!this.lastRenderTime) {\n      this.lastRenderTime = time;\n    }\n\n    // Handle the onSecond callback\n    this.renderSecondTimer += time - this.lastRenderTime;\n    if (this.renderSecondTimer > 5000) {\n      this.renderSecondTimer = 0;\n      onSecond?.();\n    }\n\n    // Calculate the elapsed time between frames in seconds\n    const elapsedTime = (time - this.lastRenderTime) / 1000;\n    this.lastRenderTime = time;\n\n    // - Advance non-paused animations by the elapsed number of seconds\n    // - Advance any animations that require scrubbing\n    // - Advance to the first frame even when autoplay is false\n    const activeAnimations = this.animator.animations\n      .filter((a) => a.playing || a.needsScrub)\n      // The scrubbed animations must be applied first to prevent weird artifacts\n      // if the playing animations conflict with the scrubbed animating attribuates.\n      .sort((first) => (first.needsScrub ? -1 : 1));\n    for (const animation of activeAnimations) {\n      animation.advance(elapsedTime);\n      if (animation.instance.didLoop) {\n        animation.loopCount += 1;\n      }\n      animation.apply(1.0);\n    }\n\n    // - Advance non-paused state machines by the elapsed number of seconds\n    // - Advance to the first frame even when autoplay is false\n    const activeStateMachines = this.animator.stateMachines.filter(\n      (a) => a.playing,\n    );\n    for (const stateMachine of activeStateMachines) {\n      // Check for events before the current frame's state machine advance\n      const numEventsReported = stateMachine.reportedEventCount();\n      if (numEventsReported) {\n        for (let i = 0; i < numEventsReported; i++) {\n          const event = stateMachine.reportedEventAt(i);\n\n          if (event) {\n            if (event.type === RiveEventType.OpenUrl) {\n              this.eventManager.fire({\n                type: EventType.RiveEvent,\n                data: event as rc.OpenUrlEvent,\n              });\n              // Handle the event side effect if explicitly enabled\n              if (this.automaticallyHandleEvents) {\n                const newAnchorTag = document.createElement(\"a\");\n                const { url, target } = event as rc.OpenUrlEvent;\n\n                const sanitizedUrl = sanitizeUrl(url);\n                url && newAnchorTag.setAttribute(\"href\", sanitizedUrl);\n                target && newAnchorTag.setAttribute(\"target\", target);\n                if (sanitizedUrl && sanitizedUrl !== BLANK_URL) {\n                  newAnchorTag.click();\n                }\n              }\n            } else {\n              this.eventManager.fire({\n                type: EventType.RiveEvent,\n                data: event as rc.RiveEvent,\n              });\n            }\n          }\n        }\n      }\n      stateMachine.advanceAndApply(elapsedTime);\n      // stateMachine.instance.apply(this.artboard);\n    }\n\n    // Once the animations have been applied to the artboard, advance it\n    // by the elapsed time.\n    if (this.animator.stateMachines.length == 0) {\n      this.artboard.advance(elapsedTime);\n    }\n\n    const { renderer } = this;\n    // Canvas must be wiped to prevent artifacts\n    renderer.clear();\n    renderer.save();\n\n    // Update the renderer alignment if necessary\n    this.alignRenderer();\n\n    // Do not draw on 0 canvas size\n    if (!this._hasZeroSize) {\n      this.artboard.draw(renderer);\n    }\n\n    renderer.restore();\n    renderer.flush();\n\n    // Check for any animations that looped\n    this.animator.handleLooping();\n\n    // Check for any state machines that had a state change\n    this.animator.handleStateChanges();\n\n    // Report advanced time\n    this.animator.handleAdvancing(elapsedTime);\n\n    // Add duration to create frame to durations array\n    this.frameCount++;\n    const after = performance.now();\n    this.frameTimes.push(after);\n    this.durations.push(after - before);\n    while (this.frameTimes[0] <= after - 1000) {\n      this.frameTimes.shift();\n      this.durations.shift();\n    }\n\n    // Calling requestAnimationFrame will rerun draw() at the correct rate:\n    // https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations\n    if (this.animator.isPlaying) {\n      // Request a new rendering frame\n      this.startRendering();\n    } else if (this.animator.isPaused) {\n      // Reset the end time so on playback it starts at the correct frame\n      this.lastRenderTime = 0;\n    } else if (this.animator.isStopped) {\n      // Reset animation instances, artboard and time\n      // TODO: implement this properly when we have instancing\n      // this.initArtboard();\n      // this.drawFrame();\n      this.lastRenderTime = 0;\n    }\n  }\n\n  /**\n   * Align the renderer\n   */\n  private alignRenderer(): void {\n    const { renderer, runtime, _layout, artboard } = this;\n    // Align things up safe in the knowledge we can restore if changed\n    renderer.align(\n      _layout.runtimeFit(runtime),\n      _layout.runtimeAlignment(runtime),\n      {\n        minX: _layout.minX,\n        minY: _layout.minY,\n        maxX: _layout.maxX,\n        maxY: _layout.maxY,\n      },\n      artboard.bounds,\n      this._devicePixelRatioUsed * _layout.layoutScaleFactor,\n    );\n  }\n\n  public get fps() {\n    return this.durations.length;\n  }\n\n  public get frameTime() {\n    if (this.durations.length === 0) {\n      return 0;\n    }\n    return (\n      this.durations.reduce((a, b) => a + b, 0) / this.durations.length\n    ).toFixed(4);\n  }\n\n  /**\n   * Cleans up all Wasm-generated objects that need to be manually destroyed:\n   * artboard instances, animation instances, state machine instances,\n   * renderer instance, file and runtime.\n   *\n   * Once this is called, you will need to initialise a new instance of the\n   * Rive class\n   */\n  public cleanup() {\n    this.destroyed = true;\n    // Stop the renderer if it hasn't already been stopped.\n    this.stopRendering();\n    // Clean up any artboard, animation or state machine instances.\n    this.cleanupInstances();\n    // Remove from observer\n    if (this._observed !== null) {\n      observers.remove(this._observed);\n    }\n    this.removeRiveListeners();\n    if (this.file) {\n      this.riveFile?.cleanup();\n      this.file = null;\n    }\n    this.riveFile = null;\n    this.deleteRiveRenderer();\n    if (this._audioEventListener !== null) {\n      audioManager.remove(this._audioEventListener);\n      this._audioEventListener = null;\n    }\n  }\n\n  /**\n   * Cleans up the Renderer object. Only call this API if you no longer\n   * need to render Rive content in your session.\n   */\n  public deleteRiveRenderer() {\n    this.renderer?.delete();\n    this.renderer = null;\n  }\n\n  /**\n   * Cleans up any Wasm-generated objects that need to be manually destroyed:\n   * artboard instances, animation instances, state machine instances.\n   *\n   * Once this is called, things will need to be reinitialized or bad things\n   * might happen.\n   */\n  public cleanupInstances() {\n    if (this.eventCleanup !== null) {\n      this.eventCleanup();\n    }\n    // Delete all animation and state machine instances\n    this.stop();\n    if (this.artboard) {\n      this.artboard.delete();\n      this.artboard = null;\n    }\n  }\n\n  /**\n   * Tries to query the setup Artboard for a text run node with the given name.\n   *\n   * @param textRunName - Name of the text run node associated with a text object\n   * @returns - TextValueRun node or undefined if the text run cannot be queried\n   */\n  private retrieveTextRun(textRunName: string): rc.TextValueRun | undefined {\n    if (!textRunName) {\n      console.warn(\"No text run name provided\");\n      return;\n    }\n    if (!this.artboard) {\n      console.warn(\"Tried to access text run, but the Artboard is null\");\n      return;\n    }\n    const textRun: rc.TextValueRun = this.artboard.textRun(textRunName);\n    if (!textRun) {\n      console.warn(\n        `Could not access a text run with name '${textRunName}' in the '${this.artboard?.name}' Artboard. Note that you must rename a text run node in the Rive editor to make it queryable at runtime.`,\n      );\n      return;\n    }\n    return textRun;\n  }\n\n  /**\n   * Returns a string from a given text run node name, or undefined if the text run\n   * cannot be queried.\n   *\n   * @param textRunName - Name of the text run node associated with a text object\n   * @returns - String value of the text run node or undefined\n   */\n  public getTextRunValue(textRunName: string): string | undefined {\n    const textRun = this.retrieveTextRun(textRunName);\n    return textRun ? textRun.text : undefined;\n  }\n\n  /**\n   * Sets a text value for a given text run node name if possible\n   *\n   * @param textRunName - Name of the text run node associated with a text object\n   * @param textRunValue - String value to set on the text run node\n   */\n  public setTextRunValue(textRunName: string, textRunValue: string): void {\n    const textRun = this.retrieveTextRun(textRunName);\n    if (textRun) {\n      textRun.text = textRunValue;\n    }\n  }\n\n  // Plays specified animations; if none specified, it unpauses everything.\n  public play(animationNames?: string | string[], autoplay?: true): void {\n    animationNames = mapToStringArray(animationNames);\n\n    // If the file's not loaded, queue up the play\n    if (!this.readyForPlaying) {\n      this.taskQueue.add({\n        action: () => this.play(animationNames, autoplay),\n      });\n      return;\n    }\n    this.animator.play(animationNames);\n    if (this.eventCleanup) {\n      this.eventCleanup();\n    }\n    this.setupRiveListeners();\n    this.startRendering();\n  }\n\n  // Pauses specified animations; if none specified, pauses all.\n  public pause(animationNames?: string | string[]): void {\n    animationNames = mapToStringArray(animationNames);\n\n    // If the file's not loaded, early out, nothing to pause\n    if (!this.readyForPlaying) {\n      this.taskQueue.add({\n        action: () => this.pause(animationNames),\n      });\n      return;\n    }\n    if (this.eventCleanup) {\n      this.eventCleanup();\n    }\n    this.animator.pause(animationNames);\n  }\n\n  public scrub(animationNames?: string | string[], value?: number): void {\n    animationNames = mapToStringArray(animationNames);\n\n    // If the file's not loaded, early out, nothing to pause\n    if (!this.readyForPlaying) {\n      this.taskQueue.add({\n        action: () => this.scrub(animationNames, value),\n      });\n      return;\n    }\n\n    // Scrub the animation time; we draw a single frame here so that if\n    // nothing's currently playing, the scrubbed animation is still rendered/\n    this.animator.scrub(animationNames, value || 0);\n    this.drawFrame();\n  }\n\n  // Stops specified animations; if none specifies, stops them all.\n  public stop(animationNames?: string | string[] | undefined): void {\n    animationNames = mapToStringArray(animationNames);\n    // If the file's not loaded, early out, nothing to pause\n    if (!this.readyForPlaying) {\n      this.taskQueue.add({\n        action: () => this.stop(animationNames),\n      });\n      return;\n    }\n    // If there is no artboard, this.animator will be undefined\n    if (this.animator) {\n      this.animator.stop(animationNames);\n    }\n    if (this.eventCleanup) {\n      this.eventCleanup();\n    }\n  }\n\n  /**\n   * Resets the animation\n   * @param artboard the name of the artboard, or default if none given\n   * @param animations the names of animations for playback\n   * @param stateMachines the names of state machines for playback\n   * @param autoplay whether to autoplay when reset, defaults to false\n   *\n   */\n  public reset(params?: RiveResetParameters): void {\n    // Get the current artboard, animations, state machines, and playback states\n    const artBoardName = params?.artboard;\n    const animationNames = mapToStringArray(params?.animations);\n    const stateMachineNames = mapToStringArray(params?.stateMachines);\n    const autoplay = params?.autoplay ?? false;\n\n    // Stop everything and clean up\n    this.cleanupInstances();\n\n    // Reinitialize an artboard instance with the state\n    this.initArtboard(\n      artBoardName,\n      animationNames,\n      stateMachineNames,\n      autoplay,\n    );\n    this.taskQueue.process();\n  }\n\n  // Loads a new Rive file, keeping listeners in place\n  public load(params: RiveLoadParameters): void {\n    this.file = null;\n    // Stop all animations\n    this.stop();\n    // Reinitialize\n    this.init(params);\n  }\n\n  // Sets a new layout\n  public set layout(layout: Layout) {\n    this._layout = layout;\n    // If the maxX or maxY are 0, then set them to the canvas width and height\n    if (!layout.maxX || !layout.maxY) {\n      this.resizeToCanvas();\n    }\n    if (this.loaded && !this.animator.isPlaying) {\n      this.drawFrame();\n    }\n  }\n\n  /**\n   * Returns the current layout. Note that layout should be treated as\n   * immutable. If you want to change the layout, create a new one use the\n   * layout setter\n   */\n  public get layout() {\n    return this._layout;\n  }\n\n  /**\n   * Sets the layout bounds to the current canvas size; this is typically called\n   * when the canvas is resized\n   */\n  public resizeToCanvas() {\n    this._layout = this.layout.copyWith({\n      minX: 0,\n      minY: 0,\n      maxX: this.canvas.width,\n      maxY: this.canvas.height,\n    });\n  }\n\n  /**\n   * Accounts for devicePixelRatio as a multiplier to render the size of the canvas drawing surface.\n   * Uses the size of the backing canvas to set new width/height attributes. Need to re-render\n   * and resize the layout to match the new drawing surface afterwards.\n   * Useful function for consumers to include in a window resize listener.\n   *\n   * This method will set the {@link devicePixelRatioUsed} property.\n   *\n   * Optionally, you can provide a {@link customDevicePixelRatio} to provide a\n   * custom value.\n   */\n  public resizeDrawingSurfaceToCanvas(customDevicePixelRatio?: number) {\n    if (this.canvas instanceof HTMLCanvasElement && !!window) {\n      const { width, height } = this.canvas.getBoundingClientRect();\n      const dpr = customDevicePixelRatio || window.devicePixelRatio || 1;\n      this.devicePixelRatioUsed = dpr;\n      this.canvas.width = dpr * width;\n      this.canvas.height = dpr * height;\n      this.resizeToCanvas();\n      this.drawFrame();\n\n      if (this.layout.fit === Fit.Layout) {\n        const scaleFactor = this._layout.layoutScaleFactor;\n        this.artboard.width = width / scaleFactor;\n        this.artboard.height = height / scaleFactor;\n      }\n    }\n  }\n\n  // Returns the animation source, which may be undefined\n  public get source(): string {\n    return this.src;\n  }\n\n  /**\n   * Returns the name of the active artboard\n   */\n  public get activeArtboard(): string {\n    return this.artboard ? this.artboard.name : \"\";\n  }\n\n  // Returns a list of animation names on the chosen artboard\n  public get animationNames(): string[] {\n    // If the file's not loaded, we got nothing to return\n    if (!this.loaded || !this.artboard) {\n      return [];\n    }\n    const animationNames: string[] = [];\n    for (let i = 0; i < this.artboard.animationCount(); i++) {\n      animationNames.push(this.artboard.animationByIndex(i).name);\n    }\n    return animationNames;\n  }\n\n  /**\n   * Returns a list of state machine names from the current artboard\n   */\n  public get stateMachineNames(): string[] {\n    // If the file's not loaded, we got nothing to return\n    if (!this.loaded || !this.artboard) {\n      return [];\n    }\n    const stateMachineNames: string[] = [];\n    for (let i = 0; i < this.artboard.stateMachineCount(); i++) {\n      stateMachineNames.push(this.artboard.stateMachineByIndex(i).name);\n    }\n    return stateMachineNames;\n  }\n\n  /**\n   * Returns the inputs for the specified instanced state machine, or an empty\n   * list if the name is invalid or the state machine is not instanced\n   * @param name the state machine name\n   * @returns the inputs for the named state machine\n   */\n  public stateMachineInputs(name: string): StateMachineInput[] {\n    // If the file's not loaded, early out, nothing to pause\n    if (!this.loaded) {\n      return;\n    }\n    const stateMachine = this.animator.stateMachines.find(\n      (m) => m.name === name,\n    );\n    return stateMachine?.inputs;\n  }\n\n  // Returns the input with the provided name at the given path\n  private retrieveInputAtPath(\n    name: string,\n    path: string,\n  ): rc.SMIInput | undefined {\n    if (!name) {\n      console.warn(`No input name provided for path '${path}'`);\n      return;\n    }\n    if (!this.artboard) {\n      console.warn(\n        `Tried to access input: '${name}', at path: '${path}', but the Artboard is null`,\n      );\n      return;\n    }\n    const input: rc.SMIInput = this.artboard.inputByPath(name, path);\n\n    if (!input) {\n      console.warn(\n        `Could not access an input with name: '${name}', at path:'${path}'`,\n      );\n      return;\n    }\n    return input;\n  }\n\n  /**\n   * Set the boolean input with the provided name at the given path with value\n   * @param input the state machine input name\n   * @param value the value to set the input to\n   * @param path the path the input is located at an artboard level\n   */\n  public setBooleanStateAtPath(\n    inputName: string,\n    value: boolean,\n    path: string,\n  ) {\n    const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n    if (!input) return;\n\n    if (input.type === StateMachineInputType.Boolean) {\n      input.asBool().value = value;\n    } else {\n      console.warn(\n        `Input with name: '${inputName}', at path:'${path}' is not a boolean`,\n      );\n    }\n  }\n\n  /**\n   * Set the number input with the provided name at the given path with value\n   * @param input the state machine input name\n   * @param value the value to set the input to\n   * @param path the path the input is located at an artboard level\n   */\n  public setNumberStateAtPath(inputName: string, value: number, path: string) {\n    const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n    if (!input) return;\n\n    if (input.type === StateMachineInputType.Number) {\n      input.asNumber().value = value;\n    } else {\n      console.warn(\n        `Input with name: '${inputName}', at path:'${path}' is not a number`,\n      );\n    }\n  }\n\n  /**\n   * Fire the trigger with the provided name at the given path\n   * @param input the state machine input name\n   * @param path the path the input is located at an artboard level\n   */\n  public fireStateAtPath(inputName: string, path: string) {\n    const input: rc.SMIInput = this.retrieveInputAtPath(inputName, path);\n    if (!input) return;\n\n    if (input.type === StateMachineInputType.Trigger) {\n      input.asTrigger().fire();\n    } else {\n      console.warn(\n        `Input with name: '${inputName}', at path:'${path}' is not a trigger`,\n      );\n    }\n  }\n\n  // Returns the TextValueRun object for the provided name at the given path\n  private retrieveTextAtPath(\n    name: string,\n    path: string,\n  ): rc.TextValueRun | undefined {\n    if (!name) {\n      console.warn(`No text name provided for path '${path}'`);\n      return;\n    }\n    if (!path) {\n      console.warn(`No path provided for text '${name}'`);\n      return;\n    }\n    if (!this.artboard) {\n      console.warn(\n        `Tried to access text: '${name}', at path: '${path}', but the Artboard is null`,\n      );\n      return;\n    }\n    const text: rc.TextValueRun = this.artboard.textByPath(name, path);\n    if (!text) {\n      console.warn(\n        `Could not access text with name: '${name}', at path:'${path}'`,\n      );\n      return;\n    }\n    return text;\n  }\n\n  /**\n   * Retrieves the text value for a specified text run at a given path\n   * @param textName The name of the text run\n   * @param path The path to the text run within the artboard\n   * @returns The text value of the text run, or undefined if not found\n   *\n   * @example\n   * // Get the text value for a text run named \"title\" at one nested artboard deep\n   * const titleText = riveInstance.getTextRunValueAtPath(\"title\", \"artboard1\");\n   *\n   * @example\n   * // Get the text value for a text run named \"subtitle\" within a nested group two artboards deep\n   * const subtitleText = riveInstance.getTextRunValueAtPath(\"subtitle\", \"group/nestedGroup\");\n   *\n   * @remarks\n   * If the text run cannot be found at the specified path, a warning will be logged to the console.\n   */\n  public getTextRunValueAtPath(\n    textName: string,\n    path: string,\n  ): string | undefined {\n    const run: rc.TextValueRun = this.retrieveTextAtPath(textName, path);\n    if (!run) {\n      console.warn(\n        `Could not get text with name: '${textName}', at path:'${path}'`,\n      );\n      return;\n    }\n    return run.text;\n  }\n\n  /**\n   * Sets the text value for a specified text run at a given path\n   * @param textName The name of the text run\n   * @param value The new text value to set\n   * @param path The path to the text run within the artboard\n   * @returns void\n   *\n   * @example\n   * // Set the text value for a text run named \"title\" at one nested artboard deep\n   * riveInstance.setTextRunValueAtPath(\"title\", \"New Title\", \"artboard1\");\n   *\n   * @example\n   * // Set the text value for a text run named \"subtitle\" within a nested group two artboards deep\n   * riveInstance.setTextRunValueAtPath(\"subtitle\", \"New Subtitle\", \"group/nestedGroup\");\n   *\n   * @remarks\n   * If the text run cannot be found at the specified path, a warning will be logged to the console.\n   */\n  public setTextRunValueAtPath(textName: string, value: string, path: string) {\n    const run: rc.TextValueRun = this.retrieveTextAtPath(textName, path);\n    if (!run) {\n      console.warn(\n        `Could not set text with name: '${textName}', at path:'${path}'`,\n      );\n      return;\n    }\n    run.text = value;\n  }\n\n  // Returns a list of playing machine names\n  public get playingStateMachineNames(): string[] {\n    // If the file's not loaded, we got nothing to return\n    if (!this.loaded) {\n      return [];\n    }\n    return this.animator.stateMachines\n      .filter((m) => m.playing)\n      .map((m) => m.name);\n  }\n\n  // Returns a list of playing animation names\n  public get playingAnimationNames(): string[] {\n    // If the file's not loaded, we got nothing to return\n    if (!this.loaded) {\n      return [];\n    }\n    return this.animator.animations.filter((a) => a.playing).map((a) => a.name);\n  }\n\n  // Returns a list of paused animation names\n  public get pausedAnimationNames(): string[] {\n    // If the file's not loaded, we got nothing to return\n    if (!this.loaded) {\n      return [];\n    }\n    return this.animator.animations\n      .filter((a) => !a.playing)\n      .map((a) => a.name);\n  }\n\n  /**\n   *  Returns a list of paused machine names\n   * @returns a list of state machine names that are paused\n   */\n  public get pausedStateMachineNames(): string[] {\n    // If the file's not loaded, we got nothing to return\n    if (!this.loaded) {\n      return [];\n    }\n    return this.animator.stateMachines\n      .filter((m) => !m.playing)\n      .map((m) => m.name);\n  }\n\n  /**\n   * @returns true if any animation is playing\n   */\n  public get isPlaying(): boolean {\n    return this.animator.isPlaying;\n  }\n\n  /**\n   * @returns true if all instanced animations are paused\n   */\n  public get isPaused(): boolean {\n    return this.animator.isPaused;\n  }\n\n  /**\n   * @returns true if no animations are playing or paused\n   */\n  public get isStopped(): boolean {\n    return this.animator.isStopped;\n  }\n\n  /**\n   * @returns the bounds of the current artboard, or undefined if the artboard\n   * isn't loaded yet.\n   */\n  public get bounds(): Bounds {\n    return this.artboard ? this.artboard.bounds : undefined;\n  }\n\n  /**\n   * Subscribe to Rive-generated events\n   * @param type the type of event to subscribe to\n   * @param callback callback to fire when the event occurs\n   */\n  public on(type: EventType, callback: EventCallback) {\n    this.eventManager.add({\n      type: type,\n      callback: callback,\n    });\n  }\n\n  /**\n   * Unsubscribes from a Rive-generated event\n   * @param type the type of event to unsubscribe from\n   * @param callback the callback to unsubscribe\n   */\n  public off(type: EventType, callback: EventCallback) {\n    this.eventManager.remove({\n      type: type,\n      callback: callback,\n    });\n  }\n\n  /**\n   * Unsubscribes from a Rive-generated event\n   * @deprecated\n   * @param callback the callback to unsubscribe from\n   */\n  public unsubscribe(type: EventType, callback: EventCallback) {\n    console.warn(\"This function is deprecated: please use `off()` instead.\");\n    this.off(type, callback);\n  }\n\n  /**\n   * Unsubscribes all Rive listeners from an event type, or everything if no type is\n   * given\n   * @param type the type of event to unsubscribe from, or all types if\n   * undefined\n   */\n  public removeAllRiveEventListeners(type?: EventType) {\n    this.eventManager.removeAll(type);\n  }\n\n  /**\n   * Unsubscribes all listeners from an event type, or everything if no type is\n   * given\n   * @deprecated\n   * @param type the type of event to unsubscribe from, or all types if\n   * undefined\n   */\n  public unsubscribeAll(type?: EventType) {\n    console.warn(\n      \"This function is deprecated: please use `removeAllRiveEventListeners()` instead.\",\n    );\n    this.removeAllRiveEventListeners(type);\n  }\n\n  /**\n   * Stops the rendering loop; this is different from pausing in that it doesn't\n   * change the state of any animation. It stops rendering from occurring. This\n   * is designed for situations such as when Rive isn't visible.\n   *\n   * The only way to start rendering again is to call `startRendering`.\n   * Animations that are marked as playing will start from the position that\n   * they would have been at if rendering had not been stopped.\n   */\n  public stopRendering() {\n    if (this.loaded && this.frameRequestId) {\n      if (this.runtime.cancelAnimationFrame) {\n        this.runtime.cancelAnimationFrame(this.frameRequestId);\n      } else {\n        cancelAnimationFrame(this.frameRequestId);\n      }\n      this.frameRequestId = null;\n    }\n  }\n\n  /**\n   * Starts the rendering loop if it has been previously stopped. If the\n   * renderer is already active, then this will have zero effect.\n   */\n  public startRendering() {\n    if (this.loaded && this.artboard && !this.frameRequestId) {\n      if (this.runtime.requestAnimationFrame) {\n        this.frameRequestId = this.runtime.requestAnimationFrame(\n          this._boundDraw,\n        );\n      } else {\n        this.frameRequestId = requestAnimationFrame(this._boundDraw);\n      }\n    }\n  }\n\n  /**\n   * Enables frames-per-second (FPS) reporting for the runtime\n   * If no callback is provided, Rive will append a fixed-position div at the top-right corner of\n   * the page with the FPS reading\n   * @param fpsCallback - Callback from the runtime during the RAF loop that supplies the FPS value\n   */\n  public enableFPSCounter(fpsCallback?: FPSCallback) {\n    this.runtime.enableFPSCounter(fpsCallback);\n  }\n\n  /**\n   * Disables frames-per-second (FPS) reporting for the runtime\n   */\n  public disableFPSCounter() {\n    this.runtime.disableFPSCounter();\n  }\n\n  /**\n   * Returns the contents of a Rive file: the artboards, animations, and state machines\n   */\n  public get contents(): RiveFileContents {\n    if (!this.loaded) {\n      return undefined;\n    }\n    const riveContents: RiveFileContents = {\n      artboards: [],\n    };\n    for (let i = 0; i < this.file.artboardCount(); i++) {\n      const artboard = this.file.artboardByIndex(i);\n      const artboardContents: ArtboardContents = {\n        name: artboard.name,\n        animations: [],\n        stateMachines: [],\n      };\n      for (let j = 0; j < artboard.animationCount(); j++) {\n        const animation = artboard.animationByIndex(j);\n        artboardContents.animations.push(animation.name);\n      }\n      for (let k = 0; k < artboard.stateMachineCount(); k++) {\n        const stateMachine = artboard.stateMachineByIndex(k);\n        const name = stateMachine.name;\n        const instance = new this.runtime.StateMachineInstance(\n          stateMachine,\n          artboard,\n        );\n        const inputContents: StateMachineInputContents[] = [];\n        for (let l = 0; l < instance.inputCount(); l++) {\n          const input = instance.input(l);\n          inputContents.push({ name: input.name, type: input.type });\n        }\n        artboardContents.stateMachines.push({\n          name: name,\n          inputs: inputContents,\n        });\n      }\n      riveContents.artboards.push(artboardContents);\n    }\n    return riveContents;\n  }\n\n  /**\n   * Getter / Setter for the volume of the artboard\n   */\n  public get volume(): number {\n    if (this.artboard && this.artboard.volume !== this._volume) {\n      this._volume = this.artboard.volume;\n    }\n    return this._volume;\n  }\n\n  public set volume(value: number) {\n    this._volume = value;\n    if (this.artboard) {\n      this.artboard.volume = value * audioManager.systemVolume;\n    }\n  }\n\n  /**\n   * The width of the artboard.\n   *\n   * This will return 0 if the artboard is not loaded yet and a custom\n   * width has not been set.\n   *\n   * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n   * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard width is\n   * automatically set.\n   */\n  public get artboardWidth(): number {\n    if (this.artboard) {\n      return this.artboard.width;\n    }\n    return this._artboardWidth ?? 0;\n  }\n\n  public set artboardWidth(value: number) {\n    this._artboardWidth = value;\n    if (this.artboard) {\n      this.artboard.width = value;\n    }\n  }\n\n  /**\n   * The height of the artboard.\n   *\n   * This will return 0 if the artboard is not loaded yet and a custom\n   * height has not been set.\n   *\n   * Do not set this value manually when using {@link resizeDrawingSurfaceToCanvas}\n   * with a {@link Layout.fit} of {@link Fit.Layout}, as the artboard height is\n   * automatically set.\n   */\n  public get artboardHeight(): number {\n    if (this.artboard) {\n      return this.artboard.height;\n    }\n    return this._artboardHeight ?? 0;\n  }\n\n  public set artboardHeight(value: number) {\n    this._artboardHeight = value;\n\n    if (this.artboard) {\n      this.artboard.height = value;\n    }\n  }\n\n  /**\n   * Reset the artboard size to its original values.\n   */\n  public resetArtboardSize() {\n    if (this.artboard) {\n      this.artboard.resetArtboardSize();\n      this._artboardWidth = this.artboard.width;\n      this._artboardHeight = this.artboard.height;\n    } else {\n      // If the artboard isn't loaded, we need to reset the custom width and height\n      this._artboardWidth = undefined;\n      this._artboardHeight = undefined;\n    }\n  }\n\n  /**\n   * The device pixel ratio used in rendering and canvas/artboard resizing.\n   *\n   * This value will be overidden by the device pixel ratio used in\n   * {@link resizeDrawingSurfaceToCanvas}. If you use that method, do not set this value.\n   */\n  public get devicePixelRatioUsed(): number {\n    return this._devicePixelRatioUsed;\n  }\n\n  public set devicePixelRatioUsed(value: number) {\n    this._devicePixelRatioUsed = value;\n  }\n}\n\n/**\n * Contents of a state machine input\n */\ninterface StateMachineInputContents {\n  name: string;\n  type: StateMachineInputType;\n  initialValue?: boolean | number;\n}\n\n/**\n * Contents of a state machine\n */\ninterface StateMachineContents {\n  name: string;\n  inputs: StateMachineInputContents[];\n}\n\n/**\n * Contents of an artboard\n */\ninterface ArtboardContents {\n  animations: string[];\n  stateMachines: StateMachineContents[];\n  name: string;\n}\n\n/**\n * contents of a Rive file\n */\ninterface RiveFileContents {\n  artboards?: ArtboardContents[];\n}\n\n// Loads Rive data from a URI via fetch.\nconst loadRiveFile = async (src: string): Promise<ArrayBuffer> => {\n  const req = new Request(src);\n  const res = await fetch(req);\n  const buffer = await res.arrayBuffer();\n  return buffer;\n};\n\n// #endregion\n\n// #region utility functions\n\n/*\n * Utility function to ensure an object is a string array\n */\nconst mapToStringArray = (obj?: string[] | string | undefined): string[] => {\n  if (typeof obj === \"string\") {\n    return [obj];\n  } else if (obj instanceof Array) {\n    return obj;\n  }\n  // If obj is undefined, return empty array\n  return [];\n};\n\n// #endregion\n\n// #region testing utilities\n\n// Exports to only be used for tests\nexport const Testing = {\n  EventManager: EventManager,\n  TaskQueueManager: TaskQueueManager,\n};\n\n// #endregion\n\n// #region asset loaders\n\n/**\n * Decodes bytes into an audio asset.\n *\n * Be sure to call `.unref()` on the audio once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeAudio = (bytes: Uint8Array): Promise<rc.Audio> => {\n  return new Promise<rc.Audio>((resolve) =>\n    RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n      rive.decodeAudio(bytes, resolve);\n    }),\n  );\n};\n\n/**\n * Decodes bytes into an image.\n *\n * Be sure to call `.unref()` on the image once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeImage = (bytes: Uint8Array): Promise<rc.Image> => {\n  return new Promise<rc.Image>((resolve) =>\n    RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n      rive.decodeImage(bytes, resolve);\n    }),\n  );\n};\n\n/**\n * Decodes bytes into a font.\n *\n * Be sure to call `.unref()` on the font once it is no longer needed. This\n * allows the engine to clean it up when it is not used by any more animations.\n */\nexport const decodeFont = (bytes: Uint8Array): Promise<rc.Font> => {\n  return new Promise<rc.Font>((resolve) =>\n    RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => {\n      rive.decodeFont(bytes, resolve);\n    }),\n  );\n};\n\n// #endregion\n"]}