@needle-tools/engine 4.4.6-beta.3 → 4.4.6-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{needle-engine.bundle-f0647c82.light.min.js → needle-engine.bundle-31635606.light.min.js} +2 -2
- package/dist/{needle-engine.bundle-7eb03151.js → needle-engine.bundle-3bb06cd4.js} +6 -6
- package/dist/{needle-engine.bundle-15fcb9de.umd.cjs → needle-engine.bundle-5ab7d96c.umd.cjs} +4 -4
- package/dist/{needle-engine.bundle-ba08e5c4.light.js → needle-engine.bundle-7eb45123.light.js} +6 -6
- package/dist/{needle-engine.bundle-97466c30.min.js → needle-engine.bundle-80e04e68.min.js} +2 -2
- package/dist/{needle-engine.bundle-158ad918.light.umd.cjs → needle-engine.bundle-da8d5d1e.light.umd.cjs} +4 -4
- package/dist/needle-engine.js +2 -2
- package/dist/needle-engine.light.js +2 -2
- package/dist/needle-engine.light.min.js +1 -1
- package/dist/needle-engine.light.umd.cjs +1 -1
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/package.json +1 -1
|
@@ -130,7 +130,7 @@ Open this page to get the console: `+t.toString())}const n=Q.isMobileDevice()||Q
|
|
|
130
130
|
#__vconsole .vc-mask {
|
|
131
131
|
overflow: hidden;
|
|
132
132
|
}
|
|
133
|
-
`,Gi?.prepend(s),n===!0&&Lm()<=0&&rb(),console.log("\u{1F335} Debug console has loaded")}},t.onerror=()=>{console.warn("\u{1F335} Debug console failed to load."+(window.crossOriginIsolated?"This page is using cross-origin isolation, so external scripts can't be loaded.":"")),oc=!1,ri=null},t.src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js",document.body.appendChild(t)}function CP(){if(!globalThis.VConsole)return;const n=new VConsole.VConsolePlugin("needle-console","\u{1F335} Inspect glTF"),t=()=>document.querySelector("#__vc_plug_"+n._id+" iframe");return n.on("renderTab",function(i){const s=globalThis["needle:codegen_files"];if(!s||s.length===0)return;let o=globalThis["needle:codegen_files"][0];const r=o.indexOf("?");r>-1&&(o=o.substring(0,r));const l=location.protocol+"//"+location.host+location.pathname+"/"+o,c=encodeURIComponent(l);n.fullUrl="https://viewer.needle.tools?inspect&file="+c;var h='<iframe src="" style="width: 100%; height: 99%; border: none;"></iframe>';i(h)}),n.on("show",function(){const i=t();i&&i.src!==n.fullUrl&&(i.src=n.fullUrl)}),n.on("hide",function(){const i=t();i&&(i.src="")}),n.on("addTopBar",function(i){var s=new Array;s.push({name:"Open in new window \u2197",onClick:function(o){window.open(n.fullUrl,"_blank"),ri?.hide()}}),s.push({name:"Reload",onClick:function(o){const r=t();r&&(r.src=n.fullUrl)}}),s.push({name:"Fullscreen",onClick:function(o){const r=t();r.requestFullscreen?r.requestFullscreen():r.webkitRequestFullscreen instanceof Function&&r.webkitRequestFullscreen()}}),i(s)}),n}function OP(){return document.querySelector("#__vconsole .vc-switch")||null}function PP(){return document.querySelector("#__vconsole")||null}const hb=C("debugdefines");go('if(!globalThis[""4.4.6-beta.
|
|
133
|
+
`,Gi?.prepend(s),n===!0&&Lm()<=0&&rb(),console.log("\u{1F335} Debug console has loaded")}},t.onerror=()=>{console.warn("\u{1F335} Debug console failed to load."+(window.crossOriginIsolated?"This page is using cross-origin isolation, so external scripts can't be loaded.":"")),oc=!1,ri=null},t.src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js",document.body.appendChild(t)}function CP(){if(!globalThis.VConsole)return;const n=new VConsole.VConsolePlugin("needle-console","\u{1F335} Inspect glTF"),t=()=>document.querySelector("#__vc_plug_"+n._id+" iframe");return n.on("renderTab",function(i){const s=globalThis["needle:codegen_files"];if(!s||s.length===0)return;let o=globalThis["needle:codegen_files"][0];const r=o.indexOf("?");r>-1&&(o=o.substring(0,r));const l=location.protocol+"//"+location.host+location.pathname+"/"+o,c=encodeURIComponent(l);n.fullUrl="https://viewer.needle.tools?inspect&file="+c;var h='<iframe src="" style="width: 100%; height: 99%; border: none;"></iframe>';i(h)}),n.on("show",function(){const i=t();i&&i.src!==n.fullUrl&&(i.src=n.fullUrl)}),n.on("hide",function(){const i=t();i&&(i.src="")}),n.on("addTopBar",function(i){var s=new Array;s.push({name:"Open in new window \u2197",onClick:function(o){window.open(n.fullUrl,"_blank"),ri?.hide()}}),s.push({name:"Reload",onClick:function(o){const r=t();r&&(r.src=n.fullUrl)}}),s.push({name:"Fullscreen",onClick:function(o){const r=t();r.requestFullscreen?r.requestFullscreen():r.webkitRequestFullscreen instanceof Function&&r.webkitRequestFullscreen()}}),i(s)}),n}function OP(){return document.querySelector("#__vconsole .vc-switch")||null}function PP(){return document.querySelector("#__vconsole")||null}const hb=C("debugdefines");go('if(!globalThis[""4.4.6-beta.4""]) globalThis[""4.4.6-beta.4""] = "0.0.0";'),go('if(!globalThis[""undefined""]) globalThis[""undefined""] = "unknown";'),go('if(!globalThis[""Mon May 05 2025 19:28:07 GMT+0700 (Indochina Time)""]) globalThis[""Mon May 05 2025 19:28:07 GMT+0700 (Indochina Time)""] = "unknown";'),go('if(!globalThis[""npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd""]) globalThis[""npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd""] = "unknown";'),go('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.4.6-beta.4";'),go('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";'),go('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon May 05 2025 19:28:07 GMT+0700 (Indochina Time)";'),go('globalThis["__NEEDLE_PUBLIC_KEY__"] = "npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd";');const _n="4.4.6-beta.4",Pd="undefined",eg="Mon May 05 2025 19:28:07 GMT+0700 (Indochina Time)";hb&&console.log(`Engine version: ${_n} (generator: ${Pd})
|
|
134
134
|
Project built at ${eg}`);const ac="npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd",Ss="needle_isActiveInHierarchy",pr="builtin_components",lc="needle_editor_guid";function go(n){try{(0,eval)(n)}catch(t){hb&&console.error(t)}}const kP='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>',MP=btoa(kP),RP="data:image/svg+xml;base64,"+MP,TP=RP,EP=`<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> <svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" version="1.1" viewBox="0 0 1014 282" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m665.95 132.73v44.88l-10.56-8.4c-0.8-0.64-1.2-1.44-1.2-2.4v-32.4c0-6.48-4.12-9.72-12.36-9.72-2.16 0-4.18 0.4-6.06 1.2s-3.54 1.8-4.98 3-2.56 2.5-3.36 3.9-1.2 2.7-1.2 3.9v40.92l-10.68-8.4c-0.72-0.64-1.08-1.44-1.08-2.4v-53.76l10.92 8.52c0.32 0.24 0.56 0.44 0.72 0.6s0.36 0.32 0.6 0.48c0.96-1.2 2.14-2.28 3.54-3.24s2.92-1.76 4.56-2.4 3.34-1.14 5.1-1.5 3.44-0.54 5.04-0.54c1.44 0 2.92 0.04 4.44 0.12s2.84 0.28 3.96 0.6c4.56 1.12 7.8 3.12 9.72 6s2.88 6.56 2.88 11.04z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m732.38 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m795.93 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m858.57 97.21c0.64 0.48 0.96 1.16 0.96 2.04v74.88c-0.08 1.04-0.12 2.12-0.12 3.24-1.84-1.52-3.56-2.92-5.16-4.2-1.36-1.12-2.66-2.18-3.9-3.18s-2.06-1.66-2.46-1.98c-1.76 2.48-4.26 4.44-7.5 5.88s-7.02 2.16-11.34 2.16c-3.84 0-7.4-0.7-10.68-2.1s-6.14-3.44-8.58-6.12-4.34-5.94-5.7-9.78-2.04-8.16-2.04-12.96c0-4.32 0.78-8.34 2.34-12.06s3.6-6.92 6.12-9.6 5.38-4.78 8.58-6.3 6.48-2.28 9.84-2.28c2.56 0 4.82 0.22 6.78 0.66s3.68 1.06 5.16 1.86 2.78 1.74 3.9 2.82 2.16 2.22 3.12 3.42v-35.04l10.68 8.64zm-27.96 67.92c3.6 0 6.52-0.68 8.76-2.04s3.98-3.06 5.22-5.1 2.1-4.22 2.58-6.54 0.72-4.44 0.72-6.36v-1.2c0-1.12-0.22-2.7-0.66-4.74s-1.28-4.06-2.52-6.06-3-3.7-5.28-5.1-5.22-2.02-8.82-1.86c-3.44 0-6.26 0.74-8.46 2.22s-3.96 3.26-5.28 5.34-2.24 4.2-2.76 6.36-0.78 3.92-0.78 5.28c0 1.84 0.24 3.92 0.72 6.24s1.36 4.48 2.64 6.48 3.04 3.68 5.28 5.04 5.12 2.04 8.64 2.04z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m882.81 97.09c0.64 0.48 0.96 1.12 0.96 1.92l-0.12 41.04v37.08l-10.56-8.4c-0.72-0.64-1.08-1.44-1.08-2.4v-77.88l10.8 8.64z" fill-rule="nonzero"/> </g> <g transform="matrix(1.008 0 0 1.008 -2.239 .61874)"> <path d="m950.36 146.05c0 0.88 0.02 1.5 0.06 1.86s-0.02 0.98-0.18 1.86h-7.08c-2.08 0-4.44-0.02-7.08-0.06s-5.36-0.06-8.16-0.06h-22.08c0 2.88 0.56 5.36 1.68 7.44s2.6 3.8 4.44 5.16 3.94 2.36 6.3 3 4.74 0.96 7.14 0.96c3.04 0 5.9-0.76 8.58-2.28s4.94-3.52 6.78-6c0.64 0.56 1.54 1.48 2.7 2.76s2.94 3.2 5.34 5.76c-2.8 3.36-6.22 6.02-10.26 7.98s-8.42 2.94-13.14 2.94-8.92-0.64-12.84-1.92-7.32-3.24-10.2-5.88-5.12-5.98-6.72-10.02-2.4-8.82-2.4-14.34c0-4.96 0.66-9.42 1.98-13.38s3.22-7.32 5.7-10.08 5.44-4.9 8.88-6.42 7.32-2.28 11.64-2.28c5.76 0 10.52 0.88 14.28 2.64s6.72 4.16 8.88 7.2 3.66 6.54 4.5 10.5 1.26 8.18 1.26 12.66zm-29.4-22.8c-2.16 0.16-4.16 0.72-6 1.68s-3.42 2.2-4.74 3.72-2.36 3.28-3.12 5.28-1.14 4.12-1.14 6.36h33.12c0-2-0.22-4.06-0.66-6.18s-1.3-4.02-2.58-5.7-3.1-3.02-5.46-4.02-5.5-1.38-9.42-1.14z" fill-rule="nonzero"/> </g> <g transform="matrix(1.8559 0 0 .7642 45.348 36.475)"> <g transform="translate(2.7114)"> <path d="m3.935 173.02c-0.331 0-0.497-0.402-0.497-1.207v-51.002c0-0.738 0.138-1.107 0.414-1.107h1.781c0.277 0 0.415 0.335 0.415 1.006v5.935c0 0.336 0.027 0.553 0.083 0.654 0.055 0.101 0.151-0.017 0.289-0.352 0.912-1.744 1.754-3.236 2.527-4.477 0.773-1.24 1.554-2.179 2.341-2.816s1.65-0.956 2.588-0.956c1.685 0 3.011 0.922 3.977 2.766 0.967 1.845 1.602 3.84 1.905 5.986 0.056 0.268 0.139 0.369 0.249 0.302s0.221-0.235 0.331-0.503c0.939-1.811 1.802-3.353 2.589-4.628 0.787-1.274 1.581-2.246 2.382-2.917s1.671-1.006 2.61-1.006c2.016 0 3.569 1.392 4.66 4.175 1.09 2.783 1.636 6.421 1.636 10.915v37.925c0 0.871-0.18 1.307-0.539 1.307h-1.739c-0.138 0-0.249-0.1-0.332-0.301-0.083-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.338-6.321-1.015-8.3-0.676-1.978-1.76-2.967-3.251-2.967-0.884 0-1.726 0.386-2.527 1.157s-1.519 1.727-2.154 2.867-1.201 2.213-1.699 3.219c-0.248 0.469-0.421 0.905-0.517 1.308-0.097 0.402-0.145 0.972-0.145 1.71v37.221c0 0.871-0.166 1.307-0.497 1.307h-1.74c-0.166 0-0.29-0.1-0.373-0.301-0.083-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.332-6.321-0.994-8.3-0.663-1.978-1.754-2.967-3.273-2.967-1.242 0-2.375 0.704-3.396 2.112-1.022 1.409-2.223 3.555-3.604 6.439v39.031c0 0.805-0.18 1.207-0.539 1.207h-1.698z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m53.642 166.28c-1.077 2.549-2.237 4.477-3.479 5.785-1.243 1.307-2.61 1.961-4.101 1.961-2.154 0-3.853-1.324-5.095-3.973-1.243-2.649-1.864-6.187-1.864-10.613 0-3.488 0.4-6.489 1.201-9.004s1.988-4.51 3.562-5.985c1.574-1.476 3.521-2.414 5.841-2.817l3.686-0.704c0.221-0.067 0.394-0.218 0.518-0.453 0.124-0.234 0.187-0.587 0.187-1.056v-2.917c0-3.89-0.504-6.975-1.512-9.255s-2.354-3.42-4.039-3.42c-1.298 0-2.472 0.72-3.521 2.162s-2.002 3.572-2.858 6.388c-0.083 0.268-0.159 0.453-0.228 0.554-0.069 0.1-0.172 0.083-0.311-0.051l-1.698-1.71c-0.083-0.134-0.138-0.285-0.166-0.453-0.027-0.167 0.014-0.452 0.125-0.855 0.856-3.353 2.009-6.052 3.459-8.098 1.449-2.045 3.224-3.068 5.322-3.068 1.74 0 3.211 0.687 4.412 2.062s2.112 3.37 2.734 5.986c0.621 2.615 0.932 5.7 0.932 9.255v35.712c0 0.536-0.035 0.888-0.104 1.056s-0.2 0.251-0.393 0.251h-1.533c-0.166 0-0.29-0.117-0.373-0.352-0.083-0.234-0.124-0.553-0.124-0.955l-0.083-5.231c-0.055-0.939-0.221-1.006-0.497-0.202zm0.456-19.314c0-1.14-0.194-1.643-0.58-1.509l-3.107 0.603c-1.436 0.202-2.686 0.638-3.749 1.308-1.063 0.671-1.953 1.543-2.671 2.616s-1.257 2.33-1.616 3.772-0.538 3.102-0.538 4.98c0 3.152 0.455 5.616 1.367 7.393 0.911 1.778 2.14 2.666 3.686 2.666 0.939 0 1.85-0.419 2.734-1.257s1.671-1.895 2.361-3.169c0.663-1.408 1.181-2.85 1.553-4.326 0.373-1.475 0.56-2.883 0.56-4.225v-8.852z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m79.034 173.02c-0.166 0-0.297-0.117-0.394-0.352-0.096-0.234-0.145-0.553-0.145-0.955v-4.628c0-0.536-0.041-0.838-0.124-0.905s-0.207 0.1-0.373 0.503c-0.276 0.67-0.69 1.593-1.242 2.766-0.553 1.174-1.271 2.23-2.154 3.169-0.884 0.939-1.961 1.408-3.231 1.408-1.74 0-3.314-0.989-4.722-2.967-1.409-1.979-2.534-4.963-3.376-8.953-0.843-3.991-1.264-8.937-1.264-14.838 0-5.701 0.415-10.68 1.243-14.939s1.988-7.595 3.479-10.009c1.492-2.415 3.204-3.622 5.137-3.622 1.436 0 2.616 0.57 3.541 1.71 0.926 1.14 1.719 2.381 2.382 3.722 0.249 0.47 0.414 0.637 0.497 0.503s0.125-0.536 0.125-1.207v-23.841c0-0.805 0.151-1.208 0.455-1.208h1.864c0.276 0 0.414 0.369 0.414 1.107v72.128c0 0.537-0.041 0.905-0.124 1.107-0.083 0.201-0.235 0.301-0.455 0.301h-1.533zm-0.621-42.049c-0.939-2.213-1.885-3.94-2.838-5.181s-2.009-1.861-3.169-1.861c-1.463 0-2.768 0.889-3.914 2.666s-2.044 4.376-2.693 7.796-0.973 7.578-0.973 12.474c0 5.097 0.338 9.272 1.015 12.524 0.676 3.253 1.567 5.651 2.672 7.193 1.104 1.543 2.305 2.314 3.603 2.314 1.188 0 2.258-0.704 3.211-2.113 0.952-1.408 1.705-3.118 2.257-5.13s0.829-3.957 0.829-5.835v-24.847z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m89.514 149.38c0 3.42 0.345 6.606 1.035 9.557 0.691 2.951 1.609 5.315 2.755 7.092s2.437 2.666 3.873 2.666c1.519 0 2.837-0.738 3.956-2.213 1.118-1.476 2.064-3.655 2.837-6.539 0.083-0.336 0.166-0.52 0.249-0.554 0.083-0.033 0.179 0.017 0.29 0.151l1.408 1.912c0.221 0.268 0.235 0.67 0.041 1.207-0.69 2.548-1.47 4.661-2.34 6.337-0.87 1.677-1.857 2.935-2.962 3.773-1.104 0.838-2.319 1.257-3.645 1.257-2.043 0-3.838-1.14-5.385-3.42-1.546-2.28-2.761-5.482-3.645-9.607-0.884-4.124-1.325-8.836-1.325-14.134 0-5.901 0.455-10.931 1.367-15.089 0.911-4.158 2.14-7.377 3.686-9.658 1.547-2.28 3.3-3.42 5.261-3.42 1.988 0 3.714 1.073 5.178 3.219 1.463 2.146 2.595 5.231 3.396 9.255s1.201 8.886 1.201 14.587c0 0.469-0.02 0.939-0.062 1.408-0.041 0.469-0.214 0.704-0.517 0.704h-16.362c-0.083 0-0.152 0.151-0.207 0.453-0.056 0.302-0.083 0.654-0.083 1.056zm13.752-6.237c0.304 0 0.497-0.1 0.58-0.302 0.083-0.201 0.124-0.57 0.124-1.106 0-3.219-0.283-6.187-0.849-8.903s-1.367-4.896-2.402-6.539c-1.036-1.643-2.272-2.464-3.708-2.464-1.629 0-2.996 0.955-4.101 2.867-1.104 1.911-1.94 4.342-2.506 7.293s-0.849 6.002-0.849 9.154h13.711z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m148.54 119.7c0.165 0 0.283 0.117 0.352 0.352s0.076 0.52 0.02 0.855l-6.254 50.902c-0.028 0.47-0.104 0.788-0.228 0.956s-0.297 0.251-0.518 0.251h-1.615c-0.442 0-0.718-0.402-0.829-1.207l-5.26-40.138c-0.111-0.604-0.201-0.905-0.27-0.905s-0.131 0.301-0.186 0.905l-5.012 40.138c-0.028 0.47-0.097 0.788-0.207 0.956-0.111 0.168-0.277 0.251-0.497 0.251h-1.74c-0.442 0-0.718-0.402-0.829-1.207l-6.503-50.801c-0.055-0.403-0.048-0.721 0.021-0.956s0.2-0.352 0.393-0.352h1.823c0.166 0 0.297 0.067 0.393 0.201 0.097 0.134 0.159 0.403 0.187 0.805l5.302 41.848c0.083 0.671 0.179 0.989 0.29 0.956 0.11-0.034 0.207-0.386 0.29-1.056l5.219-41.949c0.055-0.268 0.124-0.47 0.207-0.604s0.193-0.201 0.331-0.201h1.533c0.138 0 0.262 0.067 0.373 0.201 0.11 0.134 0.179 0.403 0.207 0.805l5.468 41.848c0.083 0.671 0.179 0.989 0.29 0.956 0.11-0.034 0.207-0.386 0.29-1.056l5.053-41.849c0.055-0.335 0.138-0.57 0.249-0.704 0.11-0.134 0.234-0.201 0.373-0.201h1.284z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m156.49 171.51c0 0.604-0.042 1.006-0.125 1.208-0.082 0.201-0.262 0.301-0.538 0.301h-1.533c-0.221 0-0.366-0.083-0.435-0.251s-0.103-0.486-0.103-0.956v-50.902c0-0.805 0.152-1.207 0.456-1.207h1.822c0.304 0 0.456 0.402 0.456 1.207v50.6zm0.165-63.979c0 1.207-0.207 1.811-0.621 1.811h-1.905c-0.221 0-0.366-0.135-0.435-0.403s-0.104-0.67-0.104-1.207v-7.847c0-1.006 0.18-1.509 0.539-1.509h1.988c0.359 0 0.538 0.47 0.538 1.409v7.746z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m168.3 124.83c-0.221 0-0.331 0.269-0.331 0.805v33.801c0 3.42 0.221 5.667 0.663 6.74 0.441 1.073 1.09 1.609 1.946 1.609h3.024c0.138 0 0.242 0.084 0.311 0.252 0.069 0.167 0.103 0.419 0.103 0.754v2.716c0 0.537-0.138 0.906-0.414 1.107-0.248 0.067-0.614 0.134-1.098 0.201-0.483 0.067-0.959 0.118-1.429 0.151-0.469 0.034-0.828 0.05-1.077 0.05-1.712 0-2.934-0.955-3.665-2.867-0.732-1.911-1.098-5.013-1.098-9.305v-35.108c0-0.604-0.124-0.906-0.373-0.906h-3.521c-0.248 0-0.373-0.268-0.373-0.804v-3.521c0-0.537 0.111-0.805 0.332-0.805h3.686c0.166 0 0.263-0.268 0.29-0.805l0.415-16.095c0-0.805 0.124-1.207 0.372-1.207h1.492c0.303 0 0.455 0.436 0.455 1.307v15.995c0 0.537 0.097 0.805 0.29 0.805h5.468c0.221 0 0.331 0.268 0.331 0.805v3.521c0 0.536-0.124 0.804-0.373 0.804h-5.426z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> <g transform="translate(2.7114)"> <path d="m179.4 173.02c-0.331 0-0.497-0.402-0.497-1.207v-72.329c0-0.738 0.138-1.107 0.414-1.107h1.782c0.276 0 0.414 0.336 0.414 1.006v27.162c0 0.335 0.034 0.536 0.103 0.603s0.159-0.033 0.27-0.302c0.994-1.81 1.898-3.319 2.713-4.526 0.814-1.208 1.629-2.113 2.444-2.717 0.814-0.603 1.691-0.905 2.63-0.905 2.182 0 3.839 1.375 4.971 4.125 1.132 2.749 1.698 6.404 1.698 10.965v37.925c0 0.871-0.166 1.307-0.497 1.307h-1.74c-0.165 0-0.29-0.1-0.373-0.301-0.082-0.202-0.124-0.503-0.124-0.906v-36.315c0-3.555-0.366-6.321-1.097-8.3-0.732-1.978-1.899-2.967-3.501-2.967-0.883 0-1.705 0.318-2.464 0.956-0.76 0.637-1.526 1.576-2.299 2.816-0.773 1.241-1.643 2.834-2.61 4.779v39.031c0 0.805-0.179 1.207-0.538 1.207h-1.699z" fill-rule="nonzero" stroke="#000" stroke-width=".7px"/> </g> </g> <g transform="matrix(.80638 0 0 .80638 452.53 65.421)" fill-rule="nonzero"> <path d="m79.32 36.98v150.76l15.68-13.2 6.59-156.31-22.27 18.75z" fill="url(#f)"/> <path d="m79.32 36.98-22.27-18.75 6.59 156.31 15.68 13.2v-150.76z" fill="url(#e)"/> <path d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z" fill="url(#d)"/> <path d="m25.19 104.83-25.19-14.59 16.97 53.86 16.85 9.77-8.63-49.04z" fill="url(#c)"/> <path d="M43.86,82.5L18.69,67.98L0,90.24L25.18,104.83L43.86,82.5Z" fill="#9c3"/> <path d="m134.82 78.69-9.97 56.5 15.58-9.04 19.57-62.05-25.18 14.59z" fill="url(#b)"/> <path d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z" fill="url(#a)"/> <path d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33 25.19-14.59z" fill="#ffe113"/> <path d="M101.59,18.23L79.32,0L57.05,18.23L79.32,36.98L101.59,18.23Z" fill="#f3e600"/> </g> <defs> <linearGradient id="f" x2="1" gradientTransform="matrix(.84 -162.96 162.96 .84 89.64 184.81)" gradientUnits="userSpaceOnUse"><stop stop-color="#62d399" offset="0"/><stop stop-color="#acd842" offset=".51"/><stop stop-color="#d7db0a" offset=".9"/><stop stop-color="#d7db0a" offset="1"/></linearGradient> <linearGradient id="e" x2="1" gradientTransform="matrix(-1.6,-162.13,162.13,-1.6,69.68,178.9)" gradientUnits="userSpaceOnUse"><stop stop-color="#0ba398" offset="0"/><stop stop-color="#4ca352" offset=".5"/><stop stop-color="#76a30a" offset="1"/></linearGradient> <linearGradient id="d" x2="1" gradientTransform="matrix(-1.9,-67.98,67.98,-1.9,36.6,152.17)" gradientUnits="userSpaceOnUse"><stop stop-color="#36a382" offset="0"/><stop stop-color="#36a382" offset=".19"/><stop stop-color="#49a459" offset=".54"/><stop stop-color="#76a30b" offset="1"/></linearGradient> <linearGradient id="c" x2="1" gradientTransform="matrix(2.18,-62.38,62.38,2.18,15.82,153.24)" gradientUnits="userSpaceOnUse"><stop stop-color="#267880" offset="0"/><stop stop-color="#457a5c" offset=".51"/><stop stop-color="#717516" offset="1"/></linearGradient> <linearGradient id="b" x2="1" gradientTransform="matrix(13.85,-71.96,71.96,13.85,135.08,135.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#b0d939" offset="0"/><stop stop-color="#eadb04" offset="1"/></linearGradient> <linearGradient id="a" x2="1" gradientTransform="matrix(26.159 -64.737 64.737 26.159 107.42 128.14)" gradientUnits="userSpaceOnUse"><stop stop-color="#74af52" offset="0"/><stop stop-color="#74af52" offset=".17"/><stop stop-color="#99be32" offset=".48"/><stop stop-color="#c0c40a" offset="1"/></linearGradient> </defs> </svg>`;btoa(EP);const AP='<svg viewBox="0 0 509 154" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M665.95 132.73v44.88l-10.56-8.4c-.8-.64-1.2-1.44-1.2-2.4v-32.4c0-6.48-4.12-9.72-12.36-9.72-2.16 0-4.18.4-6.06 1.2-1.88.8-3.54 1.8-4.98 3-1.44 1.2-2.56 2.5-3.36 3.9-.8 1.4-1.2 2.7-1.2 3.9v40.92l-10.68-8.4c-.72-.64-1.08-1.44-1.08-2.4v-53.76l10.92 8.52c.32.24.56.44.72.6.16.16.36.32.6.48.96-1.2 2.14-2.28 3.54-3.24 1.4-.96 2.92-1.76 4.56-2.4 1.64-.64 3.34-1.14 5.1-1.5 1.76-.36 3.44-.54 5.04-.54 1.44 0 2.92.04 4.44.12 1.52.08 2.84.28 3.96.6 4.56 1.12 7.8 3.12 9.72 6 1.92 2.88 2.88 6.56 2.88 11.04ZM732.38 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14ZM795.93 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14ZM858.57 97.21c.64.48.96 1.16.96 2.04v74.88c-.08 1.04-.12 2.12-.12 3.24-1.84-1.52-3.56-2.92-5.16-4.2-1.36-1.12-2.66-2.18-3.9-3.18-1.24-1-2.06-1.66-2.46-1.98-1.76 2.48-4.26 4.44-7.5 5.88-3.24 1.44-7.02 2.16-11.34 2.16-3.84 0-7.4-.7-10.68-2.1-3.28-1.4-6.14-3.44-8.58-6.12-2.44-2.68-4.34-5.94-5.7-9.78-1.36-3.84-2.04-8.16-2.04-12.96 0-4.32.78-8.34 2.34-12.06 1.56-3.72 3.6-6.92 6.12-9.6 2.52-2.68 5.38-4.78 8.58-6.3 3.2-1.52 6.48-2.28 9.84-2.28 2.56 0 4.82.22 6.78.66 1.96.44 3.68 1.06 5.16 1.86s2.78 1.74 3.9 2.82a35.92 35.92 0 0 1 3.12 3.42V88.57l10.68 8.64Zm-27.96 67.92c3.6 0 6.52-.68 8.76-2.04 2.24-1.36 3.98-3.06 5.22-5.1a20.5 20.5 0 0 0 2.58-6.54c.48-2.32.72-4.44.72-6.36v-1.2c0-1.12-.22-2.7-.66-4.74-.44-2.04-1.28-4.06-2.52-6.06s-3-3.7-5.28-5.1c-2.28-1.4-5.22-2.02-8.82-1.86-3.44 0-6.26.74-8.46 2.22-2.2 1.48-3.96 3.26-5.28 5.34-1.32 2.08-2.24 4.2-2.76 6.36-.52 2.16-.78 3.92-.78 5.28 0 1.84.24 3.92.72 6.24.48 2.32 1.36 4.48 2.64 6.48s3.04 3.68 5.28 5.04c2.24 1.36 5.12 2.04 8.64 2.04ZM882.81 97.09c.64.48.96 1.12.96 1.92l-.12 41.04v37.08l-10.56-8.4c-.72-.64-1.08-1.44-1.08-2.4V88.45l10.8 8.64ZM950.36 146.05c0 .88.02 1.5.06 1.86.04.36-.02.98-.18 1.86h-7.08c-2.08 0-4.44-.02-7.08-.06-2.64-.04-5.36-.06-8.16-.06h-22.08c0 2.88.56 5.36 1.68 7.44 1.12 2.08 2.6 3.8 4.44 5.16 1.84 1.36 3.94 2.36 6.3 3 2.36.64 4.74.96 7.14.96 3.04 0 5.9-.76 8.58-2.28 2.68-1.52 4.94-3.52 6.78-6 .64.56 1.54 1.48 2.7 2.76 1.16 1.28 2.94 3.2 5.34 5.76-2.8 3.36-6.22 6.02-10.26 7.98-4.04 1.96-8.42 2.94-13.14 2.94-4.72 0-8.92-.64-12.84-1.92-3.92-1.28-7.32-3.24-10.2-5.88-2.88-2.64-5.12-5.98-6.72-10.02-1.6-4.04-2.4-8.82-2.4-14.34 0-4.96.66-9.42 1.98-13.38 1.32-3.96 3.22-7.32 5.7-10.08s5.44-4.9 8.88-6.42c3.44-1.52 7.32-2.28 11.64-2.28 5.76 0 10.52.88 14.28 2.64 3.76 1.76 6.72 4.16 8.88 7.2 2.16 3.04 3.66 6.54 4.5 10.5.84 3.96 1.26 8.18 1.26 12.66Zm-29.4-22.8c-2.16.16-4.16.72-6 1.68-1.84.96-3.42 2.2-4.74 3.72-1.32 1.52-2.36 3.28-3.12 5.28-.76 2-1.14 4.12-1.14 6.36h33.12c0-2-.22-4.06-.66-6.18-.44-2.12-1.3-4.02-2.58-5.7-1.28-1.68-3.1-3.02-5.46-4.02-2.36-1-5.5-1.38-9.42-1.14Z" style="fill-rule:nonzero" transform="translate(-452.406 -63.709) scale(1.00797)"/><path d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75Z" style="fill:url(#a);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98Z" style="fill:url(#b);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33Z" style="fill:url(#c);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04Z" style="fill:url(#d);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5Z" style="fill:#9c3;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59Z" style="fill:url(#e);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5Z" style="fill:url(#f);fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1Z" style="fill:#ffe113;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><path d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75Z" style="fill:#f3e600;fill-rule:nonzero" transform="matrix(.80638 0 0 .80638 2.361 1.094)"/><defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(.84 -162.96 162.96 .84 89.64 184.81)"><stop offset="0" style="stop-color:#62d399;stop-opacity:1"/><stop offset=".51" style="stop-color:#acd842;stop-opacity:1"/><stop offset=".9" style="stop-color:#d7db0a;stop-opacity:1"/><stop offset="1" style="stop-color:#d7db0a;stop-opacity:1"/></linearGradient><linearGradient id="b" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-90.565 123.412 54.953) scale(162.14)"><stop offset="0" style="stop-color:#0ba398;stop-opacity:1"/><stop offset=".5" style="stop-color:#4ca352;stop-opacity:1"/><stop offset="1" style="stop-color:#76a30a;stop-opacity:1"/></linearGradient><linearGradient id="c" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="scale(-68) rotate(88.4 .881 -1.396)"><stop offset="0" style="stop-color:#36a382;stop-opacity:1"/><stop offset=".19" style="stop-color:#36a382;stop-opacity:1"/><stop offset=".54" style="stop-color:#49a459;stop-opacity:1"/><stop offset="1" style="stop-color:#76a30b;stop-opacity:1"/></linearGradient><linearGradient id="d" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-88 87.255 68.431) scale(62.42)"><stop offset="0" style="stop-color:#267880;stop-opacity:1"/><stop offset=".51" style="stop-color:#457a5c;stop-opacity:1"/><stop offset="1" style="stop-color:#717516;stop-opacity:1"/></linearGradient><linearGradient id="e" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-79.1 149.53 -14.065) scale(73.28)"><stop offset="0" style="stop-color:#b0d939;stop-opacity:1"/><stop offset="1" style="stop-color:#eadb04;stop-opacity:1"/></linearGradient><linearGradient id="f" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-67.997 148.705 -15.558) scale(69.8226)"><stop offset="0" style="stop-color:#74af52;stop-opacity:1"/><stop offset=".17" style="stop-color:#74af52;stop-opacity:1"/><stop offset=".48" style="stop-color:#99be32;stop-opacity:1"/><stop offset="1" style="stop-color:#c0c40a;stop-opacity:1"/></linearGradient></defs></svg>',IP=btoa(AP),jP="data:image/svg+xml;charset=utf-8;base64,"+IP,LP=jP,ki=Symbol("shadowDomOwner"),DP=C("debugpatch");function kd(n,t,i,s){const o=DP===t;if(!i&&!s)return;const r=t+"___needle";FP(n,t,i,s);const l=Object.getOwnPropertyDescriptor(n,t),c=n[t];o&&console.log("Patch",n.constructor.name,t,l,c),l?(o&&console.log("Apply patch with existing descriptor",n.constructor.name,t,l),typeof l.value=="function"&&(n[t]=ub(l.value,n,t))):(o&&console.log("Create patch with new property",n.constructor.name,t,l),Object.defineProperty(n,t,{set:function(h){if(typeof h=="function")this[r]=ub(h,n,t);else{const d=this[r];pb(n,t,this,d,h),this[r]=h,mb(n,t,this,d,h)}},get:function(){const h=this[r];return typeof h=="function"&&h[r]?h[r]:h}}))}function BP(n,t,i){const s=ig(n,t);if(s)for(let o=s.length-1;o>=0;o--){const r=s[o];r.prefix===i&&(r.prefix=null),r.postfix===i&&(r.postfix=null),!r.prefix&&!r.postfix&&s.splice(o,1)}}const db=Symbol("Needle:Patches:WrappedFunction");function ub(n,t,i){if(n[db])return n;const s=function(...o){pb(t,i,this,...o);const r=n.apply(this,o);return mb(t,i,this,r,...o),r};return s[db]=!0,s}const Md="Needle:Patches";function tg(){return globalThis[Md]||(globalThis[Md]=new WeakMap),globalThis[Md]}function ig(n,t){const i=tg().get(n);return i?i.get(t):null}function FP(n,t,i,s){let o=tg().get(n);o||(o=new Map,tg().set(n,o));let r=o.get(t);r||(r=[],o.set(t,r)),r.push({prefix:i,postfix:s})}function pb(n,t,i,...s){var o;if(!i)return;const r=ig(n,t);if(r)for(const l of r)(o=l.prefix)==null||o.call(i,...s)}function mb(n,t,i,s,...o){var r;if(!i)return;const l=ig(n,t);if(l)for(const c of l)(r=c.postfix)==null||r.call(i,s,...o)}const Sa=[];function Rd(n){Sa.indexOf(n)===-1&&Sa.push(n)}function zP(n){const t=Sa.indexOf(n);t!==-1&&Sa.splice(t,1)}const Ca=[];function ng(n){Ca.indexOf(n)===-1&&Ca.push(n)}function UP(n){const t=Ca.indexOf(n);t!==-1&&Ca.splice(t,1)}function gb(n){globalThis.dispatchEvent(new CustomEvent("needle-xrsession-start",{detail:n}));for(let t=0;t<Sa.length;t++)Sa[t](n)}function fb(n){globalThis.dispatchEvent(new CustomEvent("needle-xrsession-end",{detail:n}));for(let t=0;t<Ca.length;t++)Ca[t](n)}const dt=C("debuginput");var Td=(n=>(n.Mouse="mouse",n.Touch="touch",n.Controller="controller",n.Hand="hand",n))(Td||{}),Fe=(n=>(n.PointerDown="pointerdown",n.PointerUp="pointerup",n.PointerMove="pointermove",n.KeyDown="keydown",n.KeyUp="keyup",n.KeyPressed="keypress",n))(Fe||{});class Cs extends PointerEvent{constructor(t,i,s){super(t,s),a(this,"clientZ"),a(this,"deviceIndex"),a(this,"origin"),a(this,"source"),a(this,"mode"),a(this,"_ray"),a(this,"space"),a(this,"isClick",!1),a(this,"isDoubleClick",!1),a(this,"_used",!1),a(this,"_pointerid"),a(this,"_pointerType"),a(this,"_type"),a(this,"metadata",{}),a(this,"intersections",new Array),a(this,"_immediatePropagationStopped",!1),a(this,"_propagationStopped",!1),this.clientZ=s.clientZ,this._pointerid=s.pointerId,this._pointerType=s.pointerType,this._type=t,this.deviceIndex=s.deviceIndex,this.origin=s.origin,this.source=i,this.mode=s.mode,this._ray=s.ray,this.space=s.device}get isSpatial(){return this.mode!="screen"}get ray(){return this._ray||(this._ray=new lo(this.space.worldPosition.clone(),this.space.worldForward.clone())),this._ray}set ray(t){this._ray=t}get hasRay(){return this._ray!==void 0}get used(){return this._used}use(){this._used=!0}get pointerId(){return this._pointerid}get pointerType(){return this._pointerType}get type(){return this._type}get immediatePropagationStopped(){return this._immediatePropagationStopped}get propagationStopped(){return this._immediatePropagationStopped||this._propagationStopped}stopImmediatePropagation(){var t;this._immediatePropagationStopped=!0,super.stopImmediatePropagation(),(t=this.source)==null||t.stopImmediatePropagation()}stopPropagation(){var t;this._propagationStopped=!0,super.stopPropagation(),(t=this.source)==null||t.stopPropagation(),dt&&console.warn("Stop propagation...",this.pointerId,this.pointerType)}}class cc extends KeyboardEvent{constructor(t,i,s){super(t,s),a(this,"source"),this.source=i}stopImmediatePropagation(){var t;super.stopImmediatePropagation(),(t=this.source)==null||t.stopImmediatePropagation()}}class NP{constructor(t){a(this,"key"),a(this,"keyType"),a(this,"source"),this.key=t.key,this.keyType=t.type,this.source=t}}var ai=(n=>(n[n.Early=-100]="Early",n[n.Default=0]="Default",n[n.Late=100]="Late",n))(ai||{});class yb{constructor(t){a(this,"_eventListeners",{}),a(this,"_doubleClickTimeThreshold",.2),a(this,"_longPressTimeThreshold",1),a(this,"_setCursorTypes",[]),a(this,"context"),a(this,"_pointerDown",[!1]),a(this,"_pointerUp",[!1]),a(this,"_pointerClick",[!1]),a(this,"_pointerDoubleClick",[!1]),a(this,"_pointerPressed",[!1]),a(this,"_pointerPositions",[new re]),a(this,"_pointerPositionsLastFrame",[new re]),a(this,"_pointerPositionsDelta",[new re]),a(this,"_pointerPositionsRC",[new re]),a(this,"_pointerPositionDown",[new x]),a(this,"_pointerDownTime",[]),a(this,"_pointerUpTime",[]),a(this,"_pointerUpTimestamp",[]),a(this,"_pointerIds",[]),a(this,"_pointerTypes",[""]),a(this,"_mouseWheelChanged",[!1]),a(this,"_mouseWheelDeltaY",[0]),a(this,"_pointerEvent",[]),a(this,"_pointerEventsPressed",[]),a(this,"_pointerSpace",[]),a(this,"_pressedStack",new Map),a(this,"_htmlEventSource"),a(this,"onLostFocus",()=>{for(const i in this.keysPressed)this.keysPressed[i].pressed=!1}),a(this,"_receivedPointerMoveEventsThisFrame",new Array),a(this,"onEndOfFrame",()=>{this._receivedPointerMoveEventsThisFrame.length=0;for(let i=0;i<this._pointerUp.length;i++)this._pointerUp[i]=!1;for(let i=0;i<this._pointerDown.length;i++)this._pointerDown[i]=!1;for(let i=0;i<this._pointerClick.length;i++)this._pointerClick[i]=!1;for(let i=0;i<this._pointerDoubleClick.length;i++)this._pointerDoubleClick[i]=!1;for(const i of this._pointerPositionsDelta)i.set(0,0);for(let i=0;i<this._mouseWheelChanged.length;i++)this._mouseWheelChanged[i]=!1;for(let i=0;i<this._mouseWheelDeltaY.length;i++)this._mouseWheelDeltaY[i]=0}),a(this,"onContextMenu",i=>{this.canReceiveInput(i)!==!1&&i instanceof PointerEvent&&i.pointerType}),a(this,"keysPressed",{}),a(this,"onKeyDown",i=>{if(dt&&console.log(`key down ${i.code}, ${this.context.application.hasFocus}`,i),!this.context.application.hasFocus)return;const s=this.keysPressed[i.code];if(s&&s.pressed)return;this.keysPressed[i.code]={pressed:!0,frame:this.context.time.frameCount+1,startFrame:this.context.time.frameCount+1,key:i.key,code:i.code};const o=new cc("keydown",i,i);this.onDispatchEvent(o)}),a(this,"onKeyPressed",i=>{if(!this.context.application.hasFocus)return;const s=this.keysPressed[i.code];if(!s)return;s.pressed=!0,s.frame=this.context.time.frameCount+1;const o=new cc("keypress",i,i);this.onDispatchEvent(o)}),a(this,"onKeyUp",i=>{if(!this.context.application.hasFocus)return;const s=this.keysPressed[i.code];if(!s)return;s.pressed=!1,s.frame=this.context.time.frameCount+1;const o=new cc("keyup",i,i);this.onDispatchEvent(o)}),a(this,"onWheelWindow",i=>{document.pointerLockElement&&this.onMouseWheel(i)}),a(this,"onMouseWheel",i=>{if(this.canReceiveInput(i)===!1)return;this._mouseWheelDeltaY.length<=0&&this._mouseWheelDeltaY.push(0),this._mouseWheelChanged.length<=0&&this._mouseWheelChanged.push(!1),this._mouseWheelChanged[0]=!0;const s=this._mouseWheelDeltaY[0];this._mouseWheelDeltaY[0]=s+i.deltaY}),a(this,"onPointerDown",i=>{if(this.context.isInAR||this.canReceiveInput(i)===!1)return;i.target instanceof HTMLElement&&i.target.setPointerCapture(i.pointerId);const s=this.getPointerId(i);dt&&Be(`pointer down #${s}, identifier:${i.pointerId}`);const o=this.getAndUpdateSpatialObjectForScreenPosition(s,i.clientX,i.clientY),r=new Cs("pointerdown",i,{origin:this,mode:"screen",deviceIndex:0,pointerId:s,button:i.button,clientX:i.clientX,clientY:i.clientY,pointerType:i.pointerType,buttonName:this.getButtonName(i),device:o,pressure:i.pressure});this.onDown(r)}),a(this,"onPointerMove",i=>{if(this.context.isInAR||this._receivedPointerMoveEventsThisFrame.includes(i.pointerId))return;this._receivedPointerMoveEventsThisFrame.push(i.pointerId);let s=i.button;i.pointerType==="mouse"&&(s=this.getFirstPressedButtonForPointer(0)??0);const o=this.getPointerId(i,s);s===-1&&(s=o);const r=this.getAndUpdateSpatialObjectForScreenPosition(o,i.clientX,i.clientY),l=new Cs("pointermove",i,{origin:this,mode:"screen",deviceIndex:0,pointerId:o,button:s,clientX:i.clientX,clientY:i.clientY,pointerType:i.pointerType,buttonName:this.getButtonName(i),device:r,pressure:i.pressure});this.onMove(l)}),a(this,"onPointerCancel",i=>{this.context.isInAR||(dt&&console.log("Pointer cancel",i),this.onPointerUp(i))}),a(this,"onPointerUp",i=>{if(this.context.isInAR)return;i.target instanceof HTMLElement&&i.target.releasePointerCapture(i.pointerId);const s=this.getPointerId(i),o=new Cs("pointerup",i,{origin:this,mode:"screen",deviceIndex:0,pointerId:s,button:i.button,clientX:i.clientX,clientY:i.clientY,pointerType:i.pointerType,buttonName:this.getButtonName(i),device:this.getAndUpdateSpatialObjectForScreenPosition(s,i.clientX,i.clientY),pressure:i.pressure});this.onUp(o),this._pointerIds[s]=-1,dt&&console.log("ID="+s,"PointerId="+i.pointerId,"ALL:",[...this._pointerIds])}),a(this,"onTouchStart",i=>{if(this.context.isInAR)for(let s=0;s<i.changedTouches.length;s++){const o=i.changedTouches[s],r=this.getPointerIndex(o.identifier),l=this.getAndUpdateSpatialObjectForScreenPosition(r,o.clientX,o.clientY),c=new Cs("pointerdown",i,{origin:this,mode:"screen",deviceIndex:0,pointerId:r,button:0,clientX:o.clientX,clientY:o.clientY,pointerType:"touch",buttonName:"unknown",device:l,pressure:o.force});this.onDown(c)}}),a(this,"onTouchMove",i=>{if(this.context.isInAR)for(let s=0;s<i.changedTouches.length;s++){const o=i.changedTouches[s],r=this.getPointerIndex(o.identifier),l=this.getAndUpdateSpatialObjectForScreenPosition(r,o.clientX,o.clientY),c=new Cs("pointermove",i,{origin:this,mode:"screen",deviceIndex:0,pointerId:r,button:0,clientX:o.clientX,clientY:o.clientY,pointerType:"touch",buttonName:"unknown",device:l,pressure:o.force});this.onMove(c)}}),a(this,"onTouchEnd",i=>{if(this.context.isInAR)for(let s=0;s<i.changedTouches.length;s++){const o=i.changedTouches[s],r=this.getPointerIndex(o.identifier),l=new Cs("pointerup",i,{origin:this,mode:"screen",deviceIndex:0,pointerId:r,button:0,clientX:o.clientX,clientY:o.clientY,pointerType:"touch",buttonName:"unknown",device:this.getAndUpdateSpatialObjectForScreenPosition(r,o.clientX,o.clientY),pressure:o.force});this.onUp(l),this._pointerIds[r]=-1}}),a(this,"tempNearPlaneVector",new x),a(this,"tempFarPlaneVector",new x),a(this,"tempLookMatrix",new se),this.context=t,this.context.post_render_callbacks.push(this.onEndOfFrame)}addEventListener(t,i,s){if(this._eventListeners[t]||(this._eventListeners[t]=[]),!i||typeof i!="function"){console.error("Invalid call to addEventListener: callback is required and must be a function!");return}s?s={...s}:s={};let o=0;s?.queue!=null&&(o=s.queue);const r=this._eventListeners[t],l=r.find(c=>c.priority===o);l?l.listeners.push({callback:i,options:s}):(r.push({priority:o,listeners:[{callback:i,options:s}]}),r.sort((c,h)=>c.priority-h.priority))}removeEventListener(t,i,s){if(!this._eventListeners[t]||!i)return;const o=this._eventListeners[t];if(s?.queue!=null){const r=o.find(c=>c.priority===s.queue);if(!r)return;const l=r.listeners.findIndex(c=>c.callback===i);l>=0&&r.listeners.splice(l,1)}else for(const r of o){const l=r.listeners.findIndex(c=>c.callback===i);l>=0&&r.listeners.splice(l,1)}}dispatchEvent(t){var i,s,o,r;let l=!1;if(t instanceof cc){const c=this._eventListeners[t.type];if(c)for(const h of c)for(let d=0;d<h.listeners.length;d++){const u=h.listeners[d];if((s=(i=u.options)==null?void 0:i.signal)!=null&&s.aborted){h.listeners.splice(d,1),d--;continue}u.options.once&&(h.listeners.splice(d,1),d--),u.callback(t)}}if(t instanceof Cs){const c=this._eventListeners[t.type];if(c)for(const h of c){if(l)break;for(let d=0;d<h.listeners.length;d++){const u=h.listeners[d];if((r=(o=u.options)==null?void 0:o.signal)!=null&&r.aborted){h.listeners.splice(d,1),d--;continue}if(t.immediatePropagationStopped){l=!0,dt&&console.log("immediatePropagationStopped",t.type);break}else t.propagationStopped&&(l=!0,dt&&console.log("propagationStopped",t.type));u.options.once&&(h.listeners.splice(d,1),d--),u.callback(t)}}}}get mousePosition(){return this._pointerPositions[0]}get mousePositionRC(){return this._pointerPositionsRC[0]}get mouseDown(){return this._pointerDown[0]}get mouseUp(){return this._pointerUp[0]}get mouseClick(){return this._pointerClick[0]}get mouseDoubleClick(){return this._pointerDoubleClick[0]}get mousePressed(){return this._pointerPressed[0]}get mouseWheelChanged(){return this.getMouseWheelChanged(0)}get click(){return this._pointerClick[0]}get doubleClick(){return this._pointerDoubleClick[0]}getGamepad(t=0){return typeof navigator<"u"&&"getGamepads"in navigator&&navigator.getGamepads()[t]||null}setCursorPointer(){this.setCursor("pointer")}setCursorNormal(){this.unsetCursor("pointer")}setCursor(t){this._setCursorTypes.push(t),this._setCursorTypes.length>10&&this._setCursorTypes.shift(),this.updateCursor()}unsetCursor(t){for(let i=this._setCursorTypes.length-1;i>=0;i--)if(this._setCursorTypes[i]===t){this._setCursorTypes.splice(i,1),this.updateCursor();break}}updateCursor(){var t;((t=this._setCursorTypes)==null?void 0:t.length)==0?this.context.domElement.style.cursor="default":this.context.domElement.style.cursor=this._setCursorTypes[this._setCursorTypes.length-1]}getIsPointerIdInUse(t){for(const i of this._pointerEventsPressed)if(i.pointerId===t&&i.used)return!0;return!1}getPointerPressedCount(){let t=0;for(let i=0;i<this._pointerPressed.length;i++)this._pointerPressed[i]&&t++;return t}getPointerPosition(t){return t>=this._pointerPositions.length?null:this._pointerPositions[t]}getPointerPositionLastFrame(t){return t>=this._pointerPositionsLastFrame.length?null:this._pointerPositionsLastFrame[t]}getPointerPositionDelta(t){return t>=this._pointerPositionsDelta.length?null:this._pointerPositionsDelta[t]}getPointerPositionRC(t){return t>=this._pointerPositionsRC.length?null:this._pointerPositionsRC[t]}getPointerDown(t){return t>=this._pointerDown.length?!1:this._pointerDown[t]}getPointerUp(t){return t>=this._pointerUp.length?!1:this._pointerUp[t]}getPointerPressed(t){return t>=this._pointerPressed.length?!1:this._pointerPressed[t]}getPointerClicked(t){return t>=this._pointerClick.length?!1:this._pointerClick[t]}getPointerDoubleClicked(t){return t>=this._pointerDoubleClick.length?!1:this._pointerDoubleClick[t]}getPointerDownTime(t){return t>=this._pointerDownTime.length?-1:this._pointerDownTime[t]}getPointerUpTime(t){return t>=this._pointerUpTime.length?-1:this._pointerUpTime[t]}getPointerLongPress(t){return t>=this._pointerDownTime.length?!1:this.getPointerPressed(t)&&this.context.time.time-this._pointerDownTime[t]>this._longPressTimeThreshold}getIsMouse(t){return t<0||t>=this._pointerTypes.length?!1:this._pointerTypes[t]==="mouse"}getIsTouch(t){return t<0||t>=this._pointerTypes.length?!1:this._pointerTypes[t]==="touch"}getTouchesPressedCount(){let t=0;for(let i=0;i<this._pointerPressed.length;i++)this._pointerPressed[i]&&this.getIsTouch(i)&&t++;return t}getMouseWheelChanged(t=0){return t>=this._mouseWheelChanged.length?!1:this._mouseWheelChanged[t]}getMouseWheelDeltaY(t=0){return t>=this._mouseWheelDeltaY.length?0:this._mouseWheelDeltaY[t]}getPointerEvent(t){if(!(t>=this._pointerEvent.length))return this._pointerEvent[t]??void 0}*foreachPointerId(t){for(let i=0;i<this._pointerTypes.length;i++)if(this._pointerIsActive(i)){if(t!==void 0){const s=this._pointerTypes[i];if(Array.isArray(t)){let o=!1;for(const r of t)if(s===r){o=!0;break}if(!o)continue}else if(t!==s)continue}yield i}}*foreachTouchId(){for(let t=0;t<this._pointerTypes.length;t++)this._pointerTypes[t]==="touch"&&this._pointerIsActive[t]&&(yield t)}_pointerIsActive(t){return t<0?!1:this._pointerPressed[t]||this._pointerDown[t]||this._pointerUp[t]}onDownButton(t,i){let s=this._pressedStack.get(t);s||(s=[],this._pressedStack.set(t,s)),s.push(i)}onReleaseButton(t,i){const s=this._pressedStack.get(t);if(!s)return;const o=s.indexOf(i);o>=0&&s.splice(o,1)}getFirstPressedButtonForPointer(t){const i=this._pressedStack.get(t);if(i)return i[0]}getLatestPressedButtonForPointer(t){const i=this._pressedStack.get(t);if(i)return i[i.length-1]}getKeyDown(t){if(t!==void 0)return this.isKeyDown(t);for(const i in this.keysPressed){const s=this.keysPressed[i];if(s.startFrame===this.context.time.frameCount)return s.key}return null}getKeyPressed(t){if(t!==void 0)return this.isKeyPressed(t);for(const i in this.keysPressed){const s=this.keysPressed[i];if(s.pressed)return s.key}return null}getKeyUp(t){if(t!==void 0)return this.isKeyUp(t);for(const i in this.keysPressed){const s=this.keysPressed[i];return s.pressed===!1&&s.frame===this.context.time.frameCount}return null}isKeyDown(t){if(!this.context.application.isVisible||!this.context.application.hasFocus)return!1;const i=this.getCodeForCommonKeyName(t);if(i!==null){for(const o of i)if(this.isKeyDown(o))return!0;return!1}const s=this.keysPressed[t];return s?s.startFrame===this.context.time.frameCount&&s.pressed:!1}isKeyUp(t){if(!this.context.application.isVisible||!this.context.application.hasFocus)return!1;const i=this.getCodeForCommonKeyName(t);if(i!==null){for(const o of i)if(this.isKeyUp(o))return!0;return!1}const s=this.keysPressed[t];return s?s.frame===this.context.time.frameCount&&s.pressed===!1:!1}isKeyPressed(t){if(!this.context.application.isVisible||!this.context.application.hasFocus)return!1;const i=this.getCodeForCommonKeyName(t);if(i!==null){for(const o of i)if(this.isKeyPressed(o))return!0;return!1}const s=this.keysPressed[t];return s&&s.pressed||!1}getCodeForCommonKeyName(t){if(t.length===1){if(t>="0"&&t<="9")return["Digit"+t];if(t>="a"&&t<="z")return["Key"+t.toUpperCase()];if(t==" ")return["Space"]}switch(t){case"shift":case"Shift":return["ShiftLeft","ShiftRight"];case"control":case"Control":return["ControlLeft","ControlRight"];case"alt":case"Alt":return["AltLeft","AltRight"]}return null}createInputEvent(t){switch(t.type){case"pointerdown":dt&&Be("Create Pointer down"),this.onDownButton(t.deviceIndex,t.button),this.onDown(t);break;case"pointermove":dt&&Be("Create Pointer move"),this.onMove(t);break;case"pointerup":dt&&Be("Create Pointer up"),this.onUp(t),this.onReleaseButton(t.deviceIndex,t.button);break}}convertScreenspaceToRaycastSpace(t){return t.x=(t.x-this.context.domX)/this.context.domWidth*2-1,t.y=-((t.y-this.context.domY)/this.context.domHeight)*2+1,t}bindEvents(){this.unbindEvents(),this._htmlEventSource=this.context.renderer.domElement,window.addEventListener("contextmenu",this.onContextMenu),this._htmlEventSource.addEventListener("pointerdown",this.onPointerDown,{passive:!0}),window.addEventListener("pointermove",this.onPointerMove,{passive:!0,capture:!0}),window.addEventListener("pointerup",this.onPointerUp,{passive:!0}),window.addEventListener("pointercancel",this.onPointerCancel,{passive:!0}),window.addEventListener("touchstart",this.onTouchStart,{passive:!0}),window.addEventListener("touchmove",this.onTouchMove,{passive:!0}),window.addEventListener("touchend",this.onTouchEnd,{passive:!0}),this._htmlEventSource.addEventListener("wheel",this.onMouseWheel,{passive:!0}),window.addEventListener("wheel",this.onWheelWindow,{passive:!0}),window.addEventListener("keydown",this.onKeyDown,!1),window.addEventListener("keypress",this.onKeyPressed,!1),window.addEventListener("keyup",this.onKeyUp,!1),window.addEventListener("blur",this.onLostFocus)}unbindEvents(){var t,i;window.removeEventListener("contextmenu",this.onContextMenu),(t=this._htmlEventSource)==null||t.removeEventListener("pointerdown",this.onPointerDown),window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("pointercancel",this.onPointerCancel),window.removeEventListener("touchstart",this.onTouchStart),window.removeEventListener("touchmove",this.onTouchMove),window.removeEventListener("touchend",this.onTouchEnd),(i=this._htmlEventSource)==null||i.removeEventListener("wheel",this.onMouseWheel,!1),window.removeEventListener("wheel",this.onWheelWindow,!1),window.removeEventListener("keydown",this.onKeyDown,!1),window.removeEventListener("keypress",this.onKeyPressed,!1),window.removeEventListener("keyup",this.onKeyUp,!1),window.removeEventListener("blur",this.onLostFocus)}dispose(){const t=this.context.post_render_callbacks.indexOf(this.onEndOfFrame);t>=0&&this.context.post_render_callbacks.splice(t,1),this.unbindEvents()}canReceiveInput(t){var i;return t.target===((i=this.context.renderer)==null?void 0:i.domElement)||t.target===this.context.domElement||this.context.isInAR||this.context.isInAR&&t.target===document.body&&Q.isMozillaXR()?!0:(dt&&console.warn("CanReceiveInput:False for",t.target),!1)}getPointerId(t,i){return t.pointerType==="mouse"?0+(i??t.button):this.getPointerIndex(t.pointerId)}getButtonName(t){const i=t.button;if(t.pointerType==="mouse")switch(i){case 0:return"left";case 1:return"middle";case 2:return"right"}return"unknown"}getAndUpdateSpatialObjectForScreenPosition(t,i,s){let o=this._pointerSpace[t];o||(o=new I,this._pointerSpace[t]=o),this._pointerSpace[t]=o;const r=this.context.mainCamera;if(r){const l=this.tempNearPlaneVector.set(i,s,-1);this.convertScreenspaceToRaycastSpace(l);const c=this.tempFarPlaneVector.set(l.x,l.y,1);l.unproject(r),c.unproject(r);const h=r.worldUp||q(0,1,0).applyQuaternion(Ce(r));this.tempLookMatrix.lookAt(c,l,h),o.position.set(l.x,l.y,l.z),o.quaternion.setFromRotationMatrix(this.tempLookMatrix)}return o}isInRect(t){if(this.context.isInXR)return!0;const i=this.context.domElement.getBoundingClientRect(),s=t.clientX,o=t.clientY,r=s>=i.x&&s<=i.right&&o>=i.y&&o<=i.bottom;return dt&&!r&&console.log("Not in rect",i,s,o),r}onDown(t){const i=t.pointerId;if(this.getPointerPressed(i)&&console.warn(`Received pointerDown for pointerId that is already pressed: ${i}`,dt?t:""),dt&&console.log(t.pointerType,"DOWN",i),!!this.isInRect(t)){for(this.setPointerState(i,this._pointerPressed,!0),this.setPointerState(i,this._pointerDown,!0),this.setPointerStateT(i,this._pointerEvent,t.source);i>=this._pointerTypes.length;)this._pointerTypes.push(t.pointerType);for(this._pointerTypes[i]=t.pointerType;i>=this._pointerPositionDown.length;)this._pointerPositionDown.push(new x);for(this._pointerPositionDown[i].set(t.clientX,t.clientY,t.clientZ??0);i>=this._pointerPositions.length;)this._pointerPositions.push(new re);this._pointerPositions[i].set(t.clientX,t.clientY),i>=this._pointerDownTime.length&&this._pointerDownTime.push(0),this._pointerDownTime[i]=this.context.time.realtimeSinceStartup,this.updatePointerPosition(t),this._pointerEventsPressed.push(t),this.onDispatchEvent(t)}}onMove(t){const i=t.pointerId,s=this.getPointerPressed(i);s===!1&&!this.isInRect(t)||t.pointerType==="touch"&&!s||(this.updatePointerPosition(t),this.setPointerStateT(i,this._pointerEvent,t.source),this.onDispatchEvent(t))}onUp(t){const i=t.pointerId;if(!this.getPointerPressed(i)){dt&&console.log(t.pointerType,"UP",i,"was not down");return}dt&&console.log(t.pointerType,"UP",i),this.setPointerState(i,this._pointerPressed,!1),this.setPointerStateT(i,this._pointerEvent,t.source),this.setPointerState(i,this._pointerUp,!0),this.updatePointerPosition(t);for(let c=this._pointerEventsPressed.length-1;c>=0;c--)if(this._pointerEventsPressed[c].pointerId===i){this._pointerEventsPressed.splice(c,1);break}if(!this._pointerPositionDown[i]){dt&&_e("Received pointer up event without matching down event for button: "+i),console.warn("Received pointer up event without matching down event for button: "+i);return}const s=this._pointerUpTime[i],o=this._pointerDownTime[i],r=this.context.time.realtimeSinceStartup,l=r-o;if(i>=this._pointerUpTime.length&&this._pointerUpTime.push(-99),this._pointerUpTime[i]=r,l<1){let c=t.clientX-this._pointerPositionDown[i].x,h=t.clientY-this._pointerPositionDown[i].y,d=0;if(t.isSpatial&&t.clientZ!=null&&(d=t.clientZ-this._pointerPositionDown[i].z,c*=200,h*=200,d*=200),Math.abs(c)<5&&Math.abs(h)<5&&Math.abs(d)<5){this.setPointerState(i,this._pointerClick,!0),t.isClick=!0;const u=r-s;dt&&console.log("CLICK",i,c,h,d,u),u<this._doubleClickTimeThreshold&&u>0&&(this.setPointerState(i,this._pointerDoubleClick,!0),t.isDoubleClick=!0)}}this.onDispatchEvent(t)}updatePointerPosition(t){const i=t.pointerId;for(;i>=this._pointerPositions.length;)this._pointerPositions.push(new re);for(;i>=this._pointerPositionsLastFrame.length;)this._pointerPositionsLastFrame.push(new re);for(;i>=this._pointerPositionsDelta.length;)this._pointerPositionsDelta.push(new re);const s=this._pointerPositionsLastFrame[i];s.copy(this._pointerPositions[i]);const o=this._pointerPositionsDelta[i];let r=t.clientX-s.x,l=t.clientY-s.y;if(t.source instanceof MouseEvent||t.source instanceof TouchEvent){const u=t.source;r===0&&u.movementX!==0&&(r=u.movementX||0),l===0&&u.movementY!==0&&(l=u.movementY||0)}o.x+=r,o.y+=l,this._pointerPositions[i].x=t.clientX,this._pointerPositions[i].y=t.clientY;const c=t.clientX,h=t.clientY;for(;i>=this._pointerPositionsRC.length;)this._pointerPositionsRC.push(new re);const d=this._pointerPositionsRC[i];d.set(c,h),this.convertScreenspaceToRaycastSpace(d)}getPointerIndex(t){let i=-1;for(let s=0;s<this._pointerIds.length;s++){if(this._pointerIds[s]===t)return s;i===-1&&this._pointerIds[s]===-1&&(i=s)}return i!==-1?(this._pointerIds[i]=t,i):(dt&&console.log("PUSH pointerId:",t),this._pointerIds.push(t),this._pointerIds.length-1)}setPointerState(t,i,s){i[t]=s}setPointerStateT(t,i,s){return i[t]=s,s}onDispatchEvent(t){const i=ee.Current;try{ee.Current=this.context,this.dispatchEvent(t)}finally{ee.Current=i}}}const Oa=new se().makeRotationY(Math.PI),qi=new V().setFromAxisAngle(new x(0,1,0),Math.PI),WP=C("debugwebxr");class VP{constructor(){if(a(this,"priority",-1e5),a(this,"gameObject"),this.gameObject=new I,this.gameObject.name="Implicit XR Rig",WP){const t=vg(16733661);t.position.y+=.5,this.gameObject.add(t)}}isXRRig(){return!0}get isActive(){return this.gameObject.visible}}const Os=C("debugwebxr"),Ed=C("debugcustomgesture"),HP="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",$P="generic-trigger",GP=new V().setFromEuler(new Ft(gs.degToRad(0),gs.degToRad(-90),gs.degToRad(-90))),qP=new x(.04,-.04,0);class sg{constructor(t,i,s){a(this,"xr"),a(this,"inputSource"),a(this,"index",0),a(this,"emitEvents",!0),a(this,"_connected",!0),a(this,"_isTracking",!1),a(this,"__gamepad"),a(this,"__hand"),a(this,"__side"),a(this,"_hitTestSource"),a(this,"_hasSelectEvent",!1),a(this,"_isMxInk",!1),a(this,"_isMetaQuestTouchController",!1),a(this,"_handJointPoses",new Map),a(this,"_gripMatrix",new se),a(this,"_gripPosition",new x),a(this,"_gripQuaternion",new V),a(this,"_linearVelocity",new x),a(this,"_rayPositionRaw",new x),a(this,"_rayRotationRaw",new V),a(this,"_rayMatrix",new se),a(this,"_rayPosition",new x),a(this,"_rayQuaternion",new V),a(this,"_gripWorldPosition",new x),a(this,"_gripWorldQuaternion",new V),a(this,"_rayWorldPosition",new x),a(this,"_rayWorldQuaternion",new V),a(this,"_pinchPosition",new x),a(this,"_ray"),a(this,"_hand_wristDotUp"),a(this,"_object"),a(this,"_gripSpaceObject"),a(this,"_raySpaceObject"),a(this,"model",null),a(this,"_debugAxesHelper",new Si(.15)),a(this,"_debugGripAxesHelper",new Si(.07)),a(this,"_debugRayAxesHelper",new Si(.07)),a(this,"_hitTestSourcePromise",null),a(this,"onPointerHits",o=>{}),a(this,"_needleGamepadButtons",{}),a(this,"_buttonMap",new Map),a(this,"_motioncontroller"),a(this,"_layout"),a(this,"getMotionController"),a(this,"emitPointerDownEvent",!0),a(this,"emitPointerUpEvent",!0),a(this,"emitPointerMoveEvent",!0),a(this,"pointerMoveDistanceThreshold",.03),a(this,"pointerMoveAngleThreshold",.05),a(this,"_selectButtonIndex"),a(this,"_squeezeButtonIndex"),a(this,"onSelectStart",o=>{var r,l,c,h;if(!this.emitPointerDownEvent||this.inputSource!==o.inputSource)return;this.onUpdateFrame(o.frame),this._hasSelectEvent=!0;const d=(r=this._layout)==null?void 0:r.selectComponentId,u=(h=(c=(l=this._layout)==null?void 0:l.components[d])==null?void 0:c.gamepadIndices)==null?void 0:h.button;u!==void 0&&(this._selectButtonIndex=u),!Ed&&(Os&&$.DrawDirection(this.rayWorldPosition,q(0,.01,1).applyQuaternion(this.rayWorldQuaternion),16711680,10),this.emitPointerEvent(Fe.PointerDown,this._selectButtonIndex||0,"xr-standard-trigger",!0,o))}),a(this,"onSelectEnd",o=>{this.emitPointerUpEvent&&(Ed||this.inputSource===o.inputSource&&this.emitPointerEvent(Fe.PointerUp,this._selectButtonIndex||0,"xr-standard-trigger",!0,o))}),a(this,"onSequeezeStart",o=>{var r,l,c;this.emitPointerDownEvent&&this.inputSource===o.inputSource&&(this._squeezeButtonIndex=(c=(l=(r=this._layout)==null?void 0:r.components["xr-standard-squeeze"])==null?void 0:l.gamepadIndices)==null?void 0:c.button,this._squeezeButtonIndex!==void 0&&(Os&&$.DrawDirection(this.rayWorldPosition,q(0,.01,1).applyQuaternion(this.rayWorldQuaternion),255,10),this.emitPointerEvent(Fe.PointerDown,this._squeezeButtonIndex||0,"xr-standard-squeeze",!0,o)))}),a(this,"onSequeezeEnd",o=>{this.emitPointerUpEvent&&this.inputSource===o.inputSource&&this._squeezeButtonIndex!==void 0&&this.emitPointerEvent(Fe.PointerUp,this._squeezeButtonIndex||0,"xr-standard-squeeze",!0,o)}),a(this,"states",{}),a(this,"_didMoveLastFrame",!1),a(this,"_lastPointerMovePosition",new x),a(this,"_lastPointerMoveQuaternion",new V),a(this,"pointerInit"),this.xr=t,this.inputSource=i,this.index=s,this._object=new I,this._object.name=`NeedleXRController_${s}`,Os&&(this._object.add(this._debugAxesHelper),this._gripSpaceObject=new I,this._raySpaceObject=new I,this._gripSpaceObject.name=`NeedleXRController_${s}_gripSpace`,this._raySpaceObject.name=`NeedleXRController_${s}_raySpace`,this._gripSpaceObject.add(this._debugGripAxesHelper),this._raySpaceObject.add(this._debugRayAxesHelper),this.xr.context.scene.add(this._gripSpaceObject),this.xr.context.scene.add(this._raySpaceObject)),this.xr.context.scene.add(this._object),this._ray=new lo,this.pointerInit={origin:this,pointerType:this.hand?"hand":"controller",deviceIndex:this.index,pointerId:-1,mode:this.inputSource.targetRayMode,ray:this._ray,device:this._object,buttonName:"none"},this.initialize(),this.subscribeEvents()}get context(){return this.xr.context}get connected(){return this._connected}get isTracking(){return this._isTracking}get gamepad(){return this.__gamepad??(this.__gamepad=this.inputSource.gamepad)}get isHand(){return this.hand!=null}get hand(){return this.__hand??(this.__hand=this.inputSource.hand)}get handObject(){return this.context.renderer.xr.getHand(this.index)}get profiles(){return this.inputSource.profiles}get layout(){return this._layout}get targetRayMode(){return this.inputSource.targetRayMode}get targetRaySpace(){return this.inputSource.targetRaySpace}get gripSpace(){return this.inputSource.gripSpace}get side(){return this.__side??(this.__side=this.inputSource.handedness)}get isRight(){return this.side==="right"}get isLeft(){return this.side==="left"}get isStylus(){return this._isMxInk}getHitTestSource(){return this._hitTestSource||this._requestHitTestSource(),this._hitTestSource}get hasHitTestSource(){return this._hitTestSource}cancelHitTestSource(){this._hitTestSource&&(this._hitTestSource.cancel(),this._hitTestSource=void 0)}get hasSelectEvent(){return this._hasSelectEvent}getHitTest(){return this.xr.getHitTest(this)}getHandJointPose(t,i){var s;if(i=i||this.xr.frame,!this.hand||!(i!=null&&i.getJointPose)||!this.xr.referenceSpace)return null;let o=(s=this._handJointPoses)==null?void 0:s.get(t);return o||(o=i.getJointPose(t,this.xr.referenceSpace),o&&this._handJointPoses.set(t,o),o)}get gripPosition(){return q(this._gripPosition)}get gripQuaternion(){return vn(this._gripQuaternion)}get gripMatrix(){return this._gripMatrix}get gripLinearVelocity(){return q(this._linearVelocity).applyQuaternion(qi)}get rayPosition(){return q(this._rayPosition)}get rayQuaternion(){return vn(this._rayQuaternion)}get gripWorldPosition(){return q(this._gripWorldPosition)}get gripWorldQuaternion(){return vn(this._gripWorldQuaternion)}get rayWorldPosition(){return q(this._rayWorldPosition)}updateRayWorldPosition(){var t;const i=(t=this.xr.context.mainCamera)==null?void 0:t.parent;this._rayWorldPosition.copy(this._rayPositionRaw),i&&this._rayWorldPosition.applyMatrix4(i.matrixWorld)}get rayWorldQuaternion(){return vn(this._rayWorldQuaternion)}get pinchPosition(){return q(this._pinchPosition)}updateRayWorldQuaternion(){var t;const i=(t=this.xr.context.mainCamera)==null?void 0:t.parent,s=i?Ce(i):void 0;this._rayWorldQuaternion.copy(this._rayRotationRaw).multiply(qi),s&&this._rayWorldQuaternion.premultiply(s)}get ray(){return this._ray.origin.copy(this.rayWorldPosition),this._ray.direction.copy(q(0,0,1).applyQuaternion(this.rayWorldQuaternion)),this._ray}get handWristDotUp(){var t;if(this._hand_wristDotUp!==void 0)return this._hand_wristDotUp;const i=(t=this.handObject)==null?void 0:t.joints.wrist;if(i){const s=q(0,1,0).applyQuaternion(i.quaternion),o=q(0,1,0).dot(s);return this._hand_wristDotUp=o}}get isHandUpsideDown(){return this.handWristDotUp!==void 0?this.handWristDotUp<-.7:!1}get isTeleportGesture(){var t;return this.isHandUpsideDown&&((t=this.getGesture("pinch"))==null?void 0:t.isDown)}get object(){return this._object}async getModelUrl(){var t;return(t=this.getMotionController)==null?void 0:t.then(i=>i?.assetUrl||null)}_requestHitTestSource(){var t;return this._hitTestSourcePromise?this._hitTestSourcePromise:this.xr.mode==="immersive-ar"&&this.inputSource.targetRayMode==="tracked-pointer"&&this.xr.session.requestHitTestSourceForTransientInput?this._hitTestSourcePromise=((t=this.xr.session.requestHitTestSourceForTransientInput({profile:this.inputSource.profiles[0],offsetRay:new XRRay}))==null?void 0:t.then(i=>(this._hitTestSourcePromise=null,this.connected?this._hitTestSource=i:(i.cancel(),null))))??null:null}onUpdate(t){this.onUpdateFrame(t),this.updateInputEvents(),this.onUpdateMove()}onRenderDebug(){var t;$.DrawSphere(this.rayWorldPosition,.003),$.DrawDirection(this.rayWorldPosition,q(0,0,10).applyQuaternion(this.rayWorldQuaternion));const i=(this.inputSource.gripSpace?this.gripWorldPosition:this.object.worldPosition).sub(this.object.worldForward.multiplyScalar(.1)),s=this.inputSource.profiles.join(`
|
|
135
135
|
`);let o=`Controller[${this.index}] (${this.inputSource.targetRayMode}, ${this.side})
|
|
136
136
|
C:${this.connected?"x":"-"} T:${this.isTracking?"x":"-"} Hand:${this.inputSource.hand?"x":"-"} Pen: ${this._isMxInk?"x":"-"}`;if(this.inputSource.hand&&(o+=`
|
|
@@ -1549,4 +1549,4 @@ Error:`,l),null}}updateColliderCollisionGroups(n){const t=n[ni],i=n.membership;l
|
|
|
1549
1549
|
justify-content: center;
|
|
1550
1550
|
gap: .5rem;
|
|
1551
1551
|
}
|
|
1552
|
-
`),ge(this,ha).innerHTML=ge(this,_i).innerHTML,ge(this,ha).style.cssText="display: flex; align-items: center; justify-content: center;",ge(this,_i).innerHTML=ge(this,ha).outerHTML,ge(this,ca).innerHTML=ge(this,_i).outerHTML,ge(this,ca).prepend(ge(this,da)),mu(tf,{element:ge(this,ca)}),(t=ge(this,Nl))==null||t.disconnect(),ge(this,Nl)??Bn(this,Nl,new MutationObserver(()=>od(this,Ny,cS).call(this))),ge(this,Nl).observe(ge(this,_i),{attributes:!0}),zy&&console.log("Needle Button updated")},Ny=new WeakSet,cS=function(){ge(this,_i)&&(ge(this,_i).style.display==="none"?this.style.display="none":this.style.display==="none"&&(this.style.display=""))},sm=new WeakMap,a(Wy,"observedAttributes",["ar","vr","quicklook"]),typeof window<"u"&&!window.customElements.get(aS)&&window.customElements.define(aS,Wy);const id=C("debugavatar");class Vy{constructor(t,i,s,o){a(this,"root"),a(this,"head"),a(this,"leftHand"),a(this,"rigthHand");var r;this.root=t,this.head=i,this.leftHand=s,this.rigthHand=o,(r=this.root)==null||r.traverse(l=>l.layers.set(2))}get isValid(){return this.head!==null&&this.head!==void 0}}class hS{constructor(){a(this,"avatarRegistryUrl",null)}async getOrCreateNewAvatarInstance(t,i){if(!i)return console.error("Can not create avatar: failed to provide id or root object"),null;let s=null;if(typeof i=="string"){if(s=await this.loadAvatar(t,i),!s){const r=new Dn;s=O.instantiate(_a(i,t.scene),r)}}else s=i;if(!s)return null;const o=this.findAvatar(s);return o.isValid?(id&&console.log("[Custom Avatar] valid config",i,id?o:""),o):(console.warn("[Custom Avatar] config isn't valid",i,id?o:""),null)}async loadAvatar(t,i){if(console.assert(i!=null&&typeof i=="string","Avatar id must not be null"),i.length<=0||!i)return null;if(id&&console.log("[Custom Avatar] "+i+", loading..."),i.endsWith(".glb")||(i+=".glb"),this.avatarRegistryUrl===null){const o=await fetch("./"+i);let r=null;if(o.ok){const c=await o.blob();c&&(r=await c.arrayBuffer())}if(!r)return null;const l=await fn().parseSync(t,r,null,0);return l?.scene??null}const s=new lr;return _u(s,t),new Promise((o,r)=>{const l=this.avatarRegistryUrl+"/"+i;s.load(l,async c=>{await fn().createBuiltinComponents(t,l,c,null,void 0),o(c.scene)},c=>{id&&console.log("[Custom Avatar] "+c.loaded/c.total*100+"% loaded of "+c.total/1024+"kB")},c=>{console.error("[Custom Avatar] Error when loading: "+c),o(null)})})}cacheModel(t,i){}findAvatar(t){const i=t;let s=i;s.children.length==1&&(s=t.children[0]);let o=this.findAvatarPart(s,["head"]);const r=this.findAvatarPart(s,["left","hand"]),l=this.findAvatarPart(s,["right","hand"]);if(!o){o=i;const c=new x;new xi().setFromObject(o).getSize(c);const h=Math.max(c.x,c.y,c.z);console.warn("[Custom Avatar] Normalizing head scale, it's too big: "+h+" meters! Should be < 0.3m"),h>.3&&o.scale.multiplyScalar(1/h*.3)}return new Vy(i,o,r,l)}findAvatarPart(t,i){const s=t.name.toLowerCase();let o=!0;for(const r of i){if(!o)break;s.indexOf(r)===-1&&(o=!1)}if(o)return t;if(t.children)for(const r of t.children){const l=this.findAvatarPart(r,i);if(l)return l}return null}handleCustomAvatarErrors(t){if(!t.ok)throw Error(t.statusText);return t}}class dS{get extensionName(){return"DocumentExtension"}onAfterBuildDocument(t){}}class uS{}const eL=Object.freeze(Object.defineProperty({__proto__:null,ActionBuilder:be,ActionCollection:Ux,ActionModel:tn,AlignmentConstraint:jc,Animation:Nt,AnimationCurve:kl,AnimationExtension:rp,AnimationTrackHandler:Gp,Animator:Pt,AnimatorController:cn,Antialiasing:Ph,AudioExtension:ua,AudioListener:js,AudioSource:Ne,AudioTrackHandler:Nh,Avatar:zo,AvatarBlink_Simple:Er,AvatarEyeLook_Rotation:qa,AvatarLoader:hS,AvatarMarker:Rt,AvatarModel:Vy,Avatar_Brain_LookAt:Vc,Avatar_MouthShapes:Gc,Avatar_MustacheShake:Cf,Avatar_POI:Ls,AxesHelper:Xa,BaseUIComponent:an,BasicIKConstraint:Mf,BehaviorExtension:b0,BehaviorModel:Wt,BloomEffect:Zr,BoxCollider:Ya,BoxGizmo:Gr,BoxHelperComponent:Ji,Button:eo,CallInfo:Is,Camera:Oe,CameraTargetReachedEvent:Nc,Canvas:At,CanvasGroup:Vo,CapsuleCollider:Bs,ChangeMaterialOnClick:pl,ChangeTransformOnClick:Br,CharacterController:Ar,CharacterControllerInput:zs,ChromaticAberration:kh,Collider:di,ColorAdjustments:Qo,ColorBySpeedModule:Ml,ColorOverLifetimeModule:Op,ContactShadows:Pn,ControlTrackHandler:qp,CustomBranding:$r,Deletable:If,DeleteBox:Kc,DepthOfField:An,DeviceFlag:zu,DocumentExtension:dS,DragControls:ui,DropListener:Us,Duplicatable:Ja,EffectWrapper:Mh,EmissionModule:Qs,EmphasizeOnClick:fl,EnvironmentScene:Zp,EventList:Se,EventListEvent:Ru,EventSystem:si,EventTrigger:Nu,FieldWithDefault:gx,FixedJoint:F0,Fog:Sl,GltfExport:ih,GltfExportBox:Qf,Gradient:Xr,Graphic:Nr,GraphicRaycaster:Au,GridHelper:Cl,GridLayoutGroup:M0,GroundProjectedEnv:Gn,GroupActionModel:jo,HideOnStart:gl,HingeJoint:bh,HorizontalLayoutGroup:k0,Image:jl,InheritVelocityModule:Yr,InputField:sa,InstanceHandle:Qu,InstancingHandler:sl,Interactable:Af,Keyframe:fi,LODGroup:wh,LODModel:Ol,Light:gi,LimitVelocityOverLifetimeModule:mt,LogStats:Ef,LookAt:oa,LookAtConstraint:Rr,MainModule:$t,MaskableGraphic:yh,MeshCollider:Ao,MeshRenderer:th,MinMaxCurve:K,MinMaxGradient:yi,NeedleMenu:os,NestedGltf:bp,Networking:Pl,NoiseModule:Pe,ObjectRaycaster:Ii,OffsetConstraint:qr,OpenURL:Dl,OrbitControls:we,Outline:xl,Padding:Hr,ParticleBurst:Cp,ParticleSubEmitter:H0,ParticleSystem:lt,ParticleSystemRenderer:sn,PhysicsExtension:_0,PixelationEffect:Rh,PlayAnimationOnClick:zr,PlayAudioOnClick:Do,PlayableDirector:er,PlayerColor:Wl,PointerEventData:nd,PostProcessingHandler:ay,PreliminaryAction:yl,PreliminaryTrigger:oh,RawImage:Yp,Rect:Qx,RectTransform:Vt,ReflectionProbe:nl,RegisteredAnimationInfo:or,RemoteSkybox:hs,Renderer:Ke,RendererLightmap:Yu,Rigidbody:ve,RotationBySpeedModule:nn,RotationOverLifetimeModule:En,SceneSwitcher:ot,ScreenCapture:Ko,ScreenSpaceAmbientOcclusion:Ys,ScreenSpaceAmbientOcclusionN8:In,SetActiveOnClick:Fr,ShadowCatcher:Ih,ShapeModule:et,SharpeningEffect:Eh,SignalAsset:$p,SignalReceiver:Il,SignalReceiverEvent:Fh,SignalTrackHandler:Wh,Size:Xx,SizeBySpeedModule:vi,SizeOverLifetimeModule:Qr,SkinnedMeshRenderer:Xf,SmoothFollow:Zo,SpatialGrabRaycaster:Ha,SpatialHtml:Vh,SpatialTrigger:Bh,SpatialTriggerReceiver:ds,SpectatorCamera:Np,SphereCollider:Qa,Sprite:$s,SpriteData:Bo,SpriteRenderer:mi,SpriteSheet:vl,SubEmitterSystem:Ep,SyncedCamera:Vp,SyncedRoom:jn,SyncedTransform:Xn,TapGestureTrigger:l0,TeleportTarget:up,TestRunner:gy,TestSimulateUserData:fy,Text:Ht,TextBuilder:O0,TextExtension:fp,TextureSheetAnimationModule:Gt,TiltShiftEffect:cs,ToneMappingEffect:Xo,TrailModule:Ge,TransformData:Ze,TransformGizmo:ia,TriggerBuilder:Tt,TriggerModel:Dr,UIRaycastUtils:ff,UIRootComponent:ph,USDZExporter:$e,USDZText:Vr,USDZUIExtension:E0,UsageMarker:Yc,VariantAction:r0,VelocityOverLifetimeModule:tt,VerticalLayoutGroup:P0,VideoPlayer:gt,Vignette:ta,VisibilityAction:rh,Voip:Eo,Volume:Al,VolumeParameter:N,VolumeProfile:Ap,WebARCameraBackground:Gh,WebARSessionRoot:ss,WebXR:Je,WebXRImageTracking:ra,WebXRImageTrackingModel:io,WebXRPlaneTracking:no,WebXRTrackedImage:qh,XRControllerFollow:to,XRControllerModel:rs,XRControllerMovement:Di,XRFlag:ji,XRRig:em,XRState:ci,__Ignore:uS},Symbol.toStringTag,{value:"Module"})),om=C("debugmissingcamera");pe.registerCallback(fe.MissingCamera,n=>{var t,i,s,o;om&&console.warn("Creating missing camera");const r=n.context.scene,l=new xe;l.name="Default Fallback Camera",r.add(l);const c=new Oe;if(c.sourceId=((i=(t=n.files)==null?void 0:t[0])==null?void 0:i.src)??"unknown",c.fieldOfView=35,n.context.domElement.getAttribute("transparent")!=null)c.clearFlags=Mo.Uninitialized;else if((s=n.context.domElement.getAttribute("skybox-image"))!=null&&s.length||(o=n.context.domElement.getAttribute("background-image"))!=null&&o.length||n.context.lightmaps.tryGetSkybox(c.sourceId))c.clearFlags=Mo.Skybox,c.backgroundBlurriness=.2;else{if(c.clearFlags=Mo.SolidColor,!n.context.domElement.getAttribute("background-color")){let u="#efefef";typeof window!==void 0&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(u="#1f1f1f"),r.background=new ce(u)}if(!r.environment){const u=new IC(n.context.renderer),p=new Zp("neutral");r.environment=u.fromScene(p,.025).texture}}const h=vr(l,c,!0);l.position.x=0,l.position.y=1,l.position.z=2;const d=n.context.domElement;return d?.cameraControls!=!1&&pS(n.context,h),h}),pe.registerCallback(fe.ContextCreated,n=>{if(!n.context.mainCamera){om&&console.log("Will not auto-fit because a default camera exists");return}const t=n.context.domElement;if(t?.cameraControls==!0){const i=Nv(n.context.mainCamera);if(i?.isCameraController==!0){om&&console.log("Will not auto-fit because a camera controller exists");return}pS(n.context)}});function pS(n,t){t=t??n.mainCameraComponent;const i=t?.gameObject;if(om&&console.log("Creating default camera controls",t?.name),i){const s=wc(i,we);s.sourceId=t?.sourceId??"unknown";const o=n.domElement.getAttribute("auto-rotate");if(s.autoRotate=o!=null&&o!="0"&&o?.toLowerCase()!="false",s.autoRotateSpeed=.5,s.autoFit=!0,s.autoRotate&&o){const r=parseFloat(o);isNaN(r)||(s.autoRotateSpeed=r)}}else console.warn("Missing camera object, can not add orbit controls")}pe.registerCallback(fe.ContextCreated,n=>{const t=n.context.domElement.getAttribute("autoplay");if(t!==void 0&&(t===""||t==="true"||t==="1")&&n.files)for(const i of n.files)O.foreachComponent(i.file.scene,s=>{if(s.enabled!==!1){if(s instanceof Nt&&s.playAutomatically||s instanceof Pt||s instanceof er&&s.playOnAwake===!0)return!0;if(s instanceof Nt)return s.playAutomatically=!0,!0;if(s instanceof er)return s.playOnAwake=!0,!0}},!0)!==!0&&Fa.assignAnimationsFromFile(i.file,{createAnimationComponent:(s,o)=>Ti(s,Nt)})});class tL extends pO{constructor(){super(new Worker(URL.createObjectURL(new Blob([`importScripts('${new URL("./generateMeshBVH.worker-2bb9524d.js",import.meta.url).toString()}');`],{type:"text/javascript"})),{type:"module"})),this.name="GenerateMeshBVHWorker"}runTask(t,i,s={}){return new Promise((o,r)=>{if(i.getAttribute("position").isInterleavedBufferAttribute||i.index&&i.index.isInterleavedBufferAttribute)throw new Error("GenerateMeshBVHWorker: InterleavedBufferAttribute are not supported for the geometry attributes.");t.onerror=d=>{r(new Error(`[GenerateMeshBVHWorker] ${d.message||"Unknown error. Please check the server console. If you're using vite try adding 'three-mesh-bvh' to 'optimizeDeps.exclude' in your vite.config.js"}`))},t.onmessage=d=>{const{data:u}=d;if(u.error)r(new Error(u.error)),t.onmessage=null;else if(u.serialized){const{serialized:p,position:g}=u,y=mO.deserialize(p,i,{setIndex:!1}),f=Object.assign({setBoundingBox:!0},s);if(i.attributes.position.array=g,p.index)if(i.index)i.index.array=p.index;else{const v=new ft(p.index,1,!1);i.setIndex(v)}f.setBoundingBox&&(i.boundingBox=y.getBoundingBox(new xi)),s.onProgress&&s.onProgress(u.progress),o(y),t.onmessage=null}else s.onProgress&&s.onProgress(u.progress)};const l=i.index?i.index.array:null,c=i.attributes.position.array,h=[c];l&&h.push(l),t.postMessage({index:l,position:c,options:{...s,onProgress:null,includedProgressCallback:!!s.onProgress,groups:[...i.groups]}},h.map(d=>d.buffer).filter(d=>typeof SharedArrayBuffer>"u"||!(d instanceof SharedArrayBuffer)))})}}const iL=Object.freeze(Object.defineProperty({__proto__:null,GenerateMeshBVHWorker:tL},Symbol.toStringTag,{value:"Module"}));export{AM as $physicsKey,be as ActionBuilder,Ux as ActionCollection,tn as ActionModel,F_ as Addressables,jc as AlignmentConstraint,Ua as AmbientMode,Nt as Animation,kl as AnimationCurve,rp as AnimationExtension,Gp as AnimationTrackHandler,Fa as AnimationUtils,Pt as Animator,So as AnimatorConditionMode,cn as AnimatorController,uf as AnimatorControllerParameterType,Lc as AnimatorStateInfo,Ph as Antialiasing,Rs as Application,au as ApplicationEvents,Gb as AssetDatabase,ae as AssetReference,ua as AudioExtension,js as AudioListener,Ne as AudioSource,Nh as AudioTrackHandler,zo as Avatar,Er as AvatarBlink_Simple,qa as AvatarEyeLook_Rotation,hS as AvatarLoader,Rt as AvatarMarker,Vy as AvatarModel,Vc as Avatar_Brain_LookAt,Gc as Avatar_MouthShapes,Cf as Avatar_MustacheShake,Ls as Avatar_POI,Wa as Axes,Xa as AxesHelper,eg as BUILD_TIME,an as BaseUIComponent,Mf as BasicIKConstraint,b0 as BehaviorExtension,Wt as BehaviorModel,xr as BlobStorage,Zr as BloomEffect,Ya as BoxCollider,Gr as BoxGizmo,Ji as BoxHelperComponent,eo as Button,Ts as ButtonsFactory,Nw as CallDirection,Is as CallInfo,Oe as Camera,Nc as CameraTargetReachedEvent,At as Canvas,Vo as CanvasGroup,Bs as CapsuleCollider,pl as ChangeMaterialOnClick,Br as ChangeTransformOnClick,Ar as CharacterController,zs as CharacterControllerInput,kh as ChromaticAberration,Oi as CircularBuffer,Mo as ClearFlags,us as ClipExtrapolation,di as Collider,Fw as Collision,Pu as CollisionDetectionMode,Qo as ColorAdjustments,Ml as ColorBySpeedModule,Op as ColorOverLifetimeModule,Ik as Component,A as Component$1,gc as ComponentLifecycleEvents,eL as Components,Tb as ConnectionEvents,Bw as ContactPoint,Pn as ContactShadows,ee as Context,xk as ContextArgs,fe as ContextEvent,pe as ContextRegistry,qp as ControlTrackHandler,$r as CustomBranding,Mn as CustomShader,uu as DefaultReflectionMode,If as Deletable,Kc as DeleteBox,An as DepthOfField,zu as DeviceFlag,Q as DeviceUtilities,dS as DocumentExtension,ui as DragControls,Lf as DragMode,Us as DropListener,Ja as Duplicatable,Mh as EffectWrapper,Qs as EmissionModule,fl as EmphasizeOnClick,hf as EngineLoadingView,Zp as EnvironmentScene,Se as EventList,Ru as EventListEvent,si as EventSystem,Nu as EventTrigger,gx as FieldWithDefault,ru as FileReference,U_ as FileReferenceSerializer,pR as FileSpawnModel,Zw as File_Event,F0 as FixedJoint,Sl as Fog,Me as FrameEvent,Pd as GENERATOR,O as GameObject,$ as Gizmos,ih as GltfExport,Qf as GltfExportBox,la as GltfLoadEvent,X1 as GltfLoadEventType,Xr as Gradient,Nr as Graphic,Au as GraphicRaycaster,$i as Graphics,Cl as GridHelper,M0 as GridLayoutGroup,Gn as GroundProjectedEnv,jo as GroupActionModel,Du as HideFlags,gl as HideOnStart,bh as HingeJoint,k0 as HorizontalLayoutGroup,P2 as HostData,jl as Image,su as ImageReference,z_ as ImageReferenceSerializer,Yr as InheritVelocityModule,yb as Input,ai as InputEventQueue,Fe as InputEvents,sa as InputField,Qu as InstanceHandle,sl as InstancingHandler,ln as InstancingUtil,o_ as InstantiateEvent,Bt as InstantiateIdProvider,Dn as InstantiateOptions,Af as Interactable,$h as InternalScreenshotUtils,ZP as JoinedRoomResponse,NP as KeyEventArgs,fi as Keyframe,wh as LODGroup,Ol as LODModel,JP as LeftRoomResponse,gi as Light,Y_ as LightData,mt as LimitVelocityOverLifetimeModule,Rk as LoadingElementOptions,Ef as LogStats,Pi as LogType,oa as LookAt,Rr as LookAtConstraint,j as MODULES,$t as MainModule,vy as MarkerType,yh as MaskableGraphic,W as Mathf,Ao as MeshCollider,th as MeshRenderer,K as MinMaxCurve,yi as MinMaxGradient,cc as NEKeyboardEvent,Cs as NEPointerEvent,Wy as NeedleButtonElement,jy as NeedleEngineHTMLElement,Ey as NeedleLoader,os as NeedleMenu,Md as NeedlePatchesKey,sg as NeedleXRController,J as NeedleXRSession,Ib as NeedleXRSync,Ub as NeedleXRUtils,bp as NestedGltf,Ab as NetworkConnection,Yn as NetworkedStreamEvents,sd as NetworkedStreams,Pl as Networking,a_ as NewInstanceModel,Pe as NoiseModule,Ii as ObjectRaycaster,yo as ObjectUtils,qr as OffsetConstraint,bd as OneEuroFilter,zm as OneEuroFilterXYZ,Dl as OpenURL,we as OrbitControls,xl as Outline,Eb as OwnershipEvent,cg as OwnershipModel,ac as PUBLIC_KEY,Hr as Padding,Cp as ParticleBurst,H0 as ParticleSubEmitter,lt as ParticleSystem,qo as ParticleSystemBaseBehaviour,sn as ParticleSystemRenderer,xp as ParticleSystemShapeType,$c as PeerHandle,Mb as PeerNetworking,Dd as Physics,_0 as PhysicsExtension,_t as PhysicsMaterialCombine,Rh as PixelationEffect,zr as PlayAnimationOnClick,Do as PlayAudioOnClick,er as PlayableDirector,Wl as PlayerColor,Li as PlayerState,Gx as PlayerStateEvent,bl as PlayerSync,$_ as PlayerView,G_ as PlayerViewManager,nd as PointerEventData,Td as PointerType,ct as PostProcessingEffect,ay as PostProcessingHandler,yl as PreliminaryAction,oh as PreliminaryTrigger,Io as PreviewHelper,mr as PrimitiveType,he as Progress,Im as PromiseAllWithErrors,Am as PromiseErrorResult,le as RGBAColor,td as RapierPhysics,Yp as RawImage,Wn as RaycastOptions,Qx as Rect,Vt as RectTransform,nl as ReflectionProbe,or as RegisteredAnimationInfo,hs as RemoteSkybox,Na as RenderTexture,Ew as RenderTextureSerializer,Ke as Renderer,Q_ as RendererData,Yu as RendererLightmap,ve as Rigidbody,nt as RigidbodyConstraints,ne as RoomEvents,nn as RotationBySpeedModule,En as RotationOverLifetimeModule,Vu as SceneLightSettings,ot as SceneSwitcher,Ko as ScreenCapture,Ys as ScreenSpaceAmbientOcclusion,In as ScreenSpaceAmbientOcclusionN8,wn as SendQueue,Ug as SerializationContext,Fr as SetActiveOnClick,Ih as ShadowCatcher,et as ShapeModule,Eh as SharpeningEffect,$p as SignalAsset,Il as SignalReceiver,Fh as SignalReceiverEvent,Wh as SignalTrackHandler,Xx as Size,vi as SizeBySpeedModule,Qr as SizeOverLifetimeModule,Xf as SkinnedMeshRenderer,Zo as SmoothFollow,Ha as SpatialGrabRaycaster,Vh as SpatialHtml,Bh as SpatialTrigger,ds as SpatialTriggerReceiver,Np as SpectatorCamera,Qa as SphereCollider,_g as SphereIntersection,zw as SphereOverlapResult,$s as Sprite,Bo as SpriteData,mi as SpriteRenderer,vl as SpriteSheet,Uk as StateMachineBehaviour,xf as StreamEndedEvent,Uw as StreamReceivedEvent,Ep as SubEmitterSystem,Vp as SyncedCamera,jn as SyncedRoom,Xn as SyncedTransform,l0 as TapGestureTrigger,up as TeleportTarget,gy as TestRunner,Xj as TestSceneUtils,fy as TestSimulateUserData,Ht as Text,O0 as TextBuilder,fp as TextExtension,Gt as TextureSheetAnimationModule,cs as TiltShiftEffect,Z_ as Time,Xo as ToneMappingEffect,zh as TrackHandler,Wi as TrackType,Ge as TrailModule,Ze as TransformData,ia as TransformGizmo,Tt as TriggerBuilder,Dr as TriggerModel,k as TypeStore,ff as UIRaycastUtils,ph as UIRootComponent,Yf as USDDocument,Zt as USDObject,wx as USDWriter,$e as USDZExporter,xx as USDZExporter$1,Vr as USDZText,E0 as USDZUIExtension,Aw as UriSerializer,Yc as UsageMarker,e2 as UserJoinedOrLeftRoomModel,_n as VERSION,r0 as VariantAction,tt as VelocityOverLifetimeModule,P0 as VerticalLayoutGroup,gt as VideoPlayer,wo as ViewDevice,ta as Vignette,rh as VisibilityAction,Eo as Voip,Al as Volume,N as VolumeParameter,Ap as VolumeProfile,tk as WaitForFrames,W_ as WaitForPromise,Xg as WaitForSeconds,so as Watch,Gh as WebARCameraBackground,ss as WebARSessionRoot,Je as WebXR,Ur as WebXRButtonFactory,ra as WebXRImageTracking,io as WebXRImageTrackingModel,no as WebXRPlaneTracking,qh as WebXRTrackedImage,to as XRControllerFollow,rs as XRControllerModel,Di as XRControllerMovement,ji as XRFlag,em as XRRig,ci as XRState,Zn as XRStateFlag,uS as __Ignore,Kb as __internalNotifyObjectDestroyed,Ss as activeInHierarchyFieldName,Tv as addAttributeChangeCallback,Ti as addComponent,FR as addCustomExtensionPlugin,Aj as addGltfLoadEventListener,vr as addNewComponent,kd as addPatch,Yd as apply,$j as applyHMRChanges,S_ as applyPrototypeExtensions,r_ as beginListenDestroy,c_ as beginListenInstantiate,rg as binaryIdentifierCasts,wk as build_scene_functions,pr as builtinComponentKeyName,lf as calculateProgress01,GO as clearMessages,lM as colorSerializer,p_ as compareAssociation,Tu as componentSerializer,Jv as copyTexture,Ay as createLoader,xw as createMotion,li as debugNet,hc as debugOwner,kx as decompressGpuTexture,Yl as deepClone,yn as delay,Kl as delayForFrames,Xd as deserializeObject,Ei as destroy,k_ as destroyComponentInstance,Ee as disposeObjectResources,Kn as disposeStream,lc as editorGuidKeyName,ur as enableSpatialConsole,hM as euler,mM as eventListSerializer,Kj as exportAsGLTF,Hg as findByGuid,Oc as findObjectOfType,T_ as findObjectsOfType,Cg as findResourceUsers,tb as fitObjectIntoVolume,wr as foreachComponent,iu as foreachComponentEnumerator,aP as forward,Av as generateQRCode,l_ as generateSeed,oi as getBoundingBox,Nv as getCameraController,br as getComponent,Sc as getComponentInChildren,Cc as getComponentInParent,xc as getComponents,Ia as getComponentsInChildren,Qd as getComponentsInParent,yx as getFormattedDate,Ot as getIconElement,Jg as getIconTexture,BO as getIp,FO as getIpAndLocation,DO as getIpCloudflare,fn as getLoader,wc as getOrAddComponent,C as getParam,hP as getParentHierarchyPath,xO as getPath,XP as getPeerOptions,Pb as getPeerjsInstance,y2 as getResourceUserCount,Hv as getTempColor,vn as getTempQuaternion,q as getTempVector,Xl as getUrlParams,eb as getVisibleInCustomShadowRendering,Xv as getWorldDirection,Gm as getWorldEuler,te as getWorldPosition,Ce as getWorldQuaternion,Sd as getWorldRotation,Ye as getWorldScale,$n as hasCommercialLicense,Tc as hasIndieLicense,Mu as hasPointerEventComponent,Hn as hasProLicense,rb as hideDebugConsole,Mx as imageToCanvas,Da as instantiate,Gf as invokeAfterImportPluginHooks,fb as invokeXRSessionEnd,gb as invokeXRSessionStart,E_ as isActiveInHierarchy,ja as isActiveSelf,MO as isAndroidDevice,Zv as isAnimationAction,Dw as isComponent,vO as isDebugMode,CO as isDesktop,_r as isDestroyed,F as isDevEnvironment,g2 as isDisposed,Qj as isExporting,wv as isHostedOnGlitch,Nj as isHotReloading,PO as isIPad,tw as isIconElement,Qt as isLocalNetwork,TO as isMacOS,OO as isMobileDevice,RO as isMozillaXR,IO as isQuest,Xb as isResourceTrackingEnabled,AO as isSafari,Jd as isUsingInstancing,EO as isiOS,kO as isiPad,jj as loadAsset,Iy as loadSync,Cd as logHierarchy,JO as lookAtInverse,ec as lookAtObject,eP as lookAtScreenPoint,_O as makeId,kv as makeIdFromRandomWords,Rn as makeNameSafe,A_ as markAsInstancedRendered,jO as microphonePermissionsGranted,yO as nameof,Sv as nameofFactory,Tw as objectSerializer,UP as offXRSessionEnd,zP as offXRSessionStart,eM as onAfterRender,Jk as onBeforeRender,Kk as onClear,Zk as onDestroy,Ow as onInitialized,Pw as onStart,kw as onUpdate,ng as onXRSessionEnd,Rd as onXRSessionStart,Y1 as parseSync,ib as placeOnSurface,Qm as postprocessFBXMaterials,iM as prefix,Cv as pushState,wO as randomNumber,ag as registerBinaryType,yu as registerComponent,$u as registerComponentExtension,on as registerCustomEffectType,$f as registerExportExtensions,Gu as registerExtensions,Wj as registerHotReloadType,Pm as registerLoader,d_ as registerPrefabProvider,C_ as registerPrototypeExtensions,E2 as registerType,Rv as relativePathPrefix,Ev as removeAttributeChangeCallback,Vg as removeComponent,zR as removeCustomImportExtensionType,Ij as removeGltfLoadEventListener,BP as removePatch,po as resolveUrl,Mv as sanitizeString,U1 as saveImage,dj as screenshot,Cy as screenshot2,Ig as sendDestroyed,m as serializable,y_ as serializeObject,kr as serializeable,Pc as setActive,Dv as setAllowBalloonMessages,WO as setAllowOverlayMessages,wd as setAutoFitEnabled,Um as setCameraController,j_ as setDestroyed,vP as setDevEnvironment,Sg as setDisposable,La as setDontDestroy,Rm as setOrAddParamsToUrl,bO as setParam,Ql as setParamWithoutReload,QP as setPeerOptions,m2 as setResourceTrackingEnabled,Tm as setState,Xm as setVisibleInCustomShadowRendering,qm as setWorldEuler,ht as setWorldPosition,hr as setWorldPositionXYZ,Hi as setWorldQuaternion,$m as setWorldQuaternionXYZW,Kv as setWorldRotation,tc as setWorldRotationXYZ,xa as setWorldScale,sc as showBalloonError,Be as showBalloonMessage,_e as showBalloonWarning,Jm as showDebugConsole,ZO as slerp,bc as syncDestroy,g0 as syncField,jg as syncInstantiate,dP as textureToCanvas,Cb as tryCastBinary,$1 as tryDetermineFileTypeFromBinary,H1 as tryDetermineFileTypeFromURL,_a as tryFindObject,Ob as tryGetGuid,Vj as unregisterHotReloadType,Em as unwatchWrite,Wv as useForAutoFit,kt as validate,yd as watchWrite};
|
|
1552
|
+
`),ge(this,ha).innerHTML=ge(this,_i).innerHTML,ge(this,ha).style.cssText="display: flex; align-items: center; justify-content: center;",ge(this,_i).innerHTML=ge(this,ha).outerHTML,ge(this,ca).innerHTML=ge(this,_i).outerHTML,ge(this,ca).prepend(ge(this,da)),mu(tf,{element:ge(this,ca)}),(t=ge(this,Nl))==null||t.disconnect(),ge(this,Nl)??Bn(this,Nl,new MutationObserver(()=>od(this,Ny,cS).call(this))),ge(this,Nl).observe(ge(this,_i),{attributes:!0}),zy&&console.log("Needle Button updated")},Ny=new WeakSet,cS=function(){ge(this,_i)&&(ge(this,_i).style.display==="none"?this.style.display="none":this.style.display==="none"&&(this.style.display=""))},sm=new WeakMap,a(Wy,"observedAttributes",["ar","vr","quicklook"]),typeof window<"u"&&!window.customElements.get(aS)&&window.customElements.define(aS,Wy);const id=C("debugavatar");class Vy{constructor(t,i,s,o){a(this,"root"),a(this,"head"),a(this,"leftHand"),a(this,"rigthHand");var r;this.root=t,this.head=i,this.leftHand=s,this.rigthHand=o,(r=this.root)==null||r.traverse(l=>l.layers.set(2))}get isValid(){return this.head!==null&&this.head!==void 0}}class hS{constructor(){a(this,"avatarRegistryUrl",null)}async getOrCreateNewAvatarInstance(t,i){if(!i)return console.error("Can not create avatar: failed to provide id or root object"),null;let s=null;if(typeof i=="string"){if(s=await this.loadAvatar(t,i),!s){const r=new Dn;s=O.instantiate(_a(i,t.scene),r)}}else s=i;if(!s)return null;const o=this.findAvatar(s);return o.isValid?(id&&console.log("[Custom Avatar] valid config",i,id?o:""),o):(console.warn("[Custom Avatar] config isn't valid",i,id?o:""),null)}async loadAvatar(t,i){if(console.assert(i!=null&&typeof i=="string","Avatar id must not be null"),i.length<=0||!i)return null;if(id&&console.log("[Custom Avatar] "+i+", loading..."),i.endsWith(".glb")||(i+=".glb"),this.avatarRegistryUrl===null){const o=await fetch("./"+i);let r=null;if(o.ok){const c=await o.blob();c&&(r=await c.arrayBuffer())}if(!r)return null;const l=await fn().parseSync(t,r,null,0);return l?.scene??null}const s=new lr;return _u(s,t),new Promise((o,r)=>{const l=this.avatarRegistryUrl+"/"+i;s.load(l,async c=>{await fn().createBuiltinComponents(t,l,c,null,void 0),o(c.scene)},c=>{id&&console.log("[Custom Avatar] "+c.loaded/c.total*100+"% loaded of "+c.total/1024+"kB")},c=>{console.error("[Custom Avatar] Error when loading: "+c),o(null)})})}cacheModel(t,i){}findAvatar(t){const i=t;let s=i;s.children.length==1&&(s=t.children[0]);let o=this.findAvatarPart(s,["head"]);const r=this.findAvatarPart(s,["left","hand"]),l=this.findAvatarPart(s,["right","hand"]);if(!o){o=i;const c=new x;new xi().setFromObject(o).getSize(c);const h=Math.max(c.x,c.y,c.z);console.warn("[Custom Avatar] Normalizing head scale, it's too big: "+h+" meters! Should be < 0.3m"),h>.3&&o.scale.multiplyScalar(1/h*.3)}return new Vy(i,o,r,l)}findAvatarPart(t,i){const s=t.name.toLowerCase();let o=!0;for(const r of i){if(!o)break;s.indexOf(r)===-1&&(o=!1)}if(o)return t;if(t.children)for(const r of t.children){const l=this.findAvatarPart(r,i);if(l)return l}return null}handleCustomAvatarErrors(t){if(!t.ok)throw Error(t.statusText);return t}}class dS{get extensionName(){return"DocumentExtension"}onAfterBuildDocument(t){}}class uS{}const eL=Object.freeze(Object.defineProperty({__proto__:null,ActionBuilder:be,ActionCollection:Ux,ActionModel:tn,AlignmentConstraint:jc,Animation:Nt,AnimationCurve:kl,AnimationExtension:rp,AnimationTrackHandler:Gp,Animator:Pt,AnimatorController:cn,Antialiasing:Ph,AudioExtension:ua,AudioListener:js,AudioSource:Ne,AudioTrackHandler:Nh,Avatar:zo,AvatarBlink_Simple:Er,AvatarEyeLook_Rotation:qa,AvatarLoader:hS,AvatarMarker:Rt,AvatarModel:Vy,Avatar_Brain_LookAt:Vc,Avatar_MouthShapes:Gc,Avatar_MustacheShake:Cf,Avatar_POI:Ls,AxesHelper:Xa,BaseUIComponent:an,BasicIKConstraint:Mf,BehaviorExtension:b0,BehaviorModel:Wt,BloomEffect:Zr,BoxCollider:Ya,BoxGizmo:Gr,BoxHelperComponent:Ji,Button:eo,CallInfo:Is,Camera:Oe,CameraTargetReachedEvent:Nc,Canvas:At,CanvasGroup:Vo,CapsuleCollider:Bs,ChangeMaterialOnClick:pl,ChangeTransformOnClick:Br,CharacterController:Ar,CharacterControllerInput:zs,ChromaticAberration:kh,Collider:di,ColorAdjustments:Qo,ColorBySpeedModule:Ml,ColorOverLifetimeModule:Op,ContactShadows:Pn,ControlTrackHandler:qp,CustomBranding:$r,Deletable:If,DeleteBox:Kc,DepthOfField:An,DeviceFlag:zu,DocumentExtension:dS,DragControls:ui,DropListener:Us,Duplicatable:Ja,EffectWrapper:Mh,EmissionModule:Qs,EmphasizeOnClick:fl,EnvironmentScene:Zp,EventList:Se,EventListEvent:Ru,EventSystem:si,EventTrigger:Nu,FieldWithDefault:gx,FixedJoint:F0,Fog:Sl,GltfExport:ih,GltfExportBox:Qf,Gradient:Xr,Graphic:Nr,GraphicRaycaster:Au,GridHelper:Cl,GridLayoutGroup:M0,GroundProjectedEnv:Gn,GroupActionModel:jo,HideOnStart:gl,HingeJoint:bh,HorizontalLayoutGroup:k0,Image:jl,InheritVelocityModule:Yr,InputField:sa,InstanceHandle:Qu,InstancingHandler:sl,Interactable:Af,Keyframe:fi,LODGroup:wh,LODModel:Ol,Light:gi,LimitVelocityOverLifetimeModule:mt,LogStats:Ef,LookAt:oa,LookAtConstraint:Rr,MainModule:$t,MaskableGraphic:yh,MeshCollider:Ao,MeshRenderer:th,MinMaxCurve:K,MinMaxGradient:yi,NeedleMenu:os,NestedGltf:bp,Networking:Pl,NoiseModule:Pe,ObjectRaycaster:Ii,OffsetConstraint:qr,OpenURL:Dl,OrbitControls:we,Outline:xl,Padding:Hr,ParticleBurst:Cp,ParticleSubEmitter:H0,ParticleSystem:lt,ParticleSystemRenderer:sn,PhysicsExtension:_0,PixelationEffect:Rh,PlayAnimationOnClick:zr,PlayAudioOnClick:Do,PlayableDirector:er,PlayerColor:Wl,PointerEventData:nd,PostProcessingHandler:ay,PreliminaryAction:yl,PreliminaryTrigger:oh,RawImage:Yp,Rect:Qx,RectTransform:Vt,ReflectionProbe:nl,RegisteredAnimationInfo:or,RemoteSkybox:hs,Renderer:Ke,RendererLightmap:Yu,Rigidbody:ve,RotationBySpeedModule:nn,RotationOverLifetimeModule:En,SceneSwitcher:ot,ScreenCapture:Ko,ScreenSpaceAmbientOcclusion:Ys,ScreenSpaceAmbientOcclusionN8:In,SetActiveOnClick:Fr,ShadowCatcher:Ih,ShapeModule:et,SharpeningEffect:Eh,SignalAsset:$p,SignalReceiver:Il,SignalReceiverEvent:Fh,SignalTrackHandler:Wh,Size:Xx,SizeBySpeedModule:vi,SizeOverLifetimeModule:Qr,SkinnedMeshRenderer:Xf,SmoothFollow:Zo,SpatialGrabRaycaster:Ha,SpatialHtml:Vh,SpatialTrigger:Bh,SpatialTriggerReceiver:ds,SpectatorCamera:Np,SphereCollider:Qa,Sprite:$s,SpriteData:Bo,SpriteRenderer:mi,SpriteSheet:vl,SubEmitterSystem:Ep,SyncedCamera:Vp,SyncedRoom:jn,SyncedTransform:Xn,TapGestureTrigger:l0,TeleportTarget:up,TestRunner:gy,TestSimulateUserData:fy,Text:Ht,TextBuilder:O0,TextExtension:fp,TextureSheetAnimationModule:Gt,TiltShiftEffect:cs,ToneMappingEffect:Xo,TrailModule:Ge,TransformData:Ze,TransformGizmo:ia,TriggerBuilder:Tt,TriggerModel:Dr,UIRaycastUtils:ff,UIRootComponent:ph,USDZExporter:$e,USDZText:Vr,USDZUIExtension:E0,UsageMarker:Yc,VariantAction:r0,VelocityOverLifetimeModule:tt,VerticalLayoutGroup:P0,VideoPlayer:gt,Vignette:ta,VisibilityAction:rh,Voip:Eo,Volume:Al,VolumeParameter:N,VolumeProfile:Ap,WebARCameraBackground:Gh,WebARSessionRoot:ss,WebXR:Je,WebXRImageTracking:ra,WebXRImageTrackingModel:io,WebXRPlaneTracking:no,WebXRTrackedImage:qh,XRControllerFollow:to,XRControllerModel:rs,XRControllerMovement:Di,XRFlag:ji,XRRig:em,XRState:ci,__Ignore:uS},Symbol.toStringTag,{value:"Module"})),om=C("debugmissingcamera");pe.registerCallback(fe.MissingCamera,n=>{var t,i,s,o;om&&console.warn("Creating missing camera");const r=n.context.scene,l=new xe;l.name="Default Fallback Camera",r.add(l);const c=new Oe;if(c.sourceId=((i=(t=n.files)==null?void 0:t[0])==null?void 0:i.src)??"unknown",c.fieldOfView=35,n.context.domElement.getAttribute("transparent")!=null)c.clearFlags=Mo.Uninitialized;else if((s=n.context.domElement.getAttribute("skybox-image"))!=null&&s.length||(o=n.context.domElement.getAttribute("background-image"))!=null&&o.length||n.context.lightmaps.tryGetSkybox(c.sourceId))c.clearFlags=Mo.Skybox,c.backgroundBlurriness=.2;else{if(c.clearFlags=Mo.SolidColor,!n.context.domElement.getAttribute("background-color")){let u="#efefef";typeof window!==void 0&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(u="#1f1f1f"),r.background=new ce(u)}if(!r.environment){const u=new IC(n.context.renderer),p=new Zp("neutral");r.environment=u.fromScene(p,.025).texture}}const h=vr(l,c,!0);l.position.x=0,l.position.y=1,l.position.z=2;const d=n.context.domElement;return d?.cameraControls!=!1&&pS(n.context,h),h}),pe.registerCallback(fe.ContextCreated,n=>{if(!n.context.mainCamera){om&&console.log("Will not auto-fit because a default camera exists");return}const t=n.context.domElement;if(t?.cameraControls==!0){const i=Nv(n.context.mainCamera);if(i?.isCameraController==!0){om&&console.log("Will not auto-fit because a camera controller exists");return}pS(n.context)}});function pS(n,t){t=t??n.mainCameraComponent;const i=t?.gameObject;if(om&&console.log("Creating default camera controls",t?.name),i){const s=wc(i,we);s.sourceId=t?.sourceId??"unknown";const o=n.domElement.getAttribute("auto-rotate");if(s.autoRotate=o!=null&&o!="0"&&o?.toLowerCase()!="false",s.autoRotateSpeed=.5,s.autoFit=!0,s.autoRotate&&o){const r=parseFloat(o);isNaN(r)||(s.autoRotateSpeed=r)}}else console.warn("Missing camera object, can not add orbit controls")}pe.registerCallback(fe.ContextCreated,n=>{const t=n.context.domElement.getAttribute("autoplay");if(t!==void 0&&(t===""||t==="true"||t==="1")&&n.files)for(const i of n.files)O.foreachComponent(i.file.scene,s=>{if(s.enabled!==!1){if(s instanceof Nt&&s.playAutomatically||s instanceof Pt||s instanceof er&&s.playOnAwake===!0)return!0;if(s instanceof Nt)return s.playAutomatically=!0,!0;if(s instanceof er)return s.playOnAwake=!0,!0}},!0)!==!0&&Fa.assignAnimationsFromFile(i.file,{createAnimationComponent:(s,o)=>Ti(s,Nt)})});class tL extends pO{constructor(){super(new Worker(URL.createObjectURL(new Blob([`import '${new URL("./generateMeshBVH.worker-2bb9524d.js",import.meta.url).toString()}';`],{type:"text/javascript"})),{type:"module"})),this.name="GenerateMeshBVHWorker"}runTask(t,i,s={}){return new Promise((o,r)=>{if(i.getAttribute("position").isInterleavedBufferAttribute||i.index&&i.index.isInterleavedBufferAttribute)throw new Error("GenerateMeshBVHWorker: InterleavedBufferAttribute are not supported for the geometry attributes.");t.onerror=d=>{r(new Error(`[GenerateMeshBVHWorker] ${d.message||"Unknown error. Please check the server console. If you're using vite try adding 'three-mesh-bvh' to 'optimizeDeps.exclude' in your vite.config.js"}`))},t.onmessage=d=>{const{data:u}=d;if(u.error)r(new Error(u.error)),t.onmessage=null;else if(u.serialized){const{serialized:p,position:g}=u,y=mO.deserialize(p,i,{setIndex:!1}),f=Object.assign({setBoundingBox:!0},s);if(i.attributes.position.array=g,p.index)if(i.index)i.index.array=p.index;else{const v=new ft(p.index,1,!1);i.setIndex(v)}f.setBoundingBox&&(i.boundingBox=y.getBoundingBox(new xi)),s.onProgress&&s.onProgress(u.progress),o(y),t.onmessage=null}else s.onProgress&&s.onProgress(u.progress)};const l=i.index?i.index.array:null,c=i.attributes.position.array,h=[c];l&&h.push(l),t.postMessage({index:l,position:c,options:{...s,onProgress:null,includedProgressCallback:!!s.onProgress,groups:[...i.groups]}},h.map(d=>d.buffer).filter(d=>typeof SharedArrayBuffer>"u"||!(d instanceof SharedArrayBuffer)))})}}const iL=Object.freeze(Object.defineProperty({__proto__:null,GenerateMeshBVHWorker:tL},Symbol.toStringTag,{value:"Module"}));export{AM as $physicsKey,be as ActionBuilder,Ux as ActionCollection,tn as ActionModel,F_ as Addressables,jc as AlignmentConstraint,Ua as AmbientMode,Nt as Animation,kl as AnimationCurve,rp as AnimationExtension,Gp as AnimationTrackHandler,Fa as AnimationUtils,Pt as Animator,So as AnimatorConditionMode,cn as AnimatorController,uf as AnimatorControllerParameterType,Lc as AnimatorStateInfo,Ph as Antialiasing,Rs as Application,au as ApplicationEvents,Gb as AssetDatabase,ae as AssetReference,ua as AudioExtension,js as AudioListener,Ne as AudioSource,Nh as AudioTrackHandler,zo as Avatar,Er as AvatarBlink_Simple,qa as AvatarEyeLook_Rotation,hS as AvatarLoader,Rt as AvatarMarker,Vy as AvatarModel,Vc as Avatar_Brain_LookAt,Gc as Avatar_MouthShapes,Cf as Avatar_MustacheShake,Ls as Avatar_POI,Wa as Axes,Xa as AxesHelper,eg as BUILD_TIME,an as BaseUIComponent,Mf as BasicIKConstraint,b0 as BehaviorExtension,Wt as BehaviorModel,xr as BlobStorage,Zr as BloomEffect,Ya as BoxCollider,Gr as BoxGizmo,Ji as BoxHelperComponent,eo as Button,Ts as ButtonsFactory,Nw as CallDirection,Is as CallInfo,Oe as Camera,Nc as CameraTargetReachedEvent,At as Canvas,Vo as CanvasGroup,Bs as CapsuleCollider,pl as ChangeMaterialOnClick,Br as ChangeTransformOnClick,Ar as CharacterController,zs as CharacterControllerInput,kh as ChromaticAberration,Oi as CircularBuffer,Mo as ClearFlags,us as ClipExtrapolation,di as Collider,Fw as Collision,Pu as CollisionDetectionMode,Qo as ColorAdjustments,Ml as ColorBySpeedModule,Op as ColorOverLifetimeModule,Ik as Component,A as Component$1,gc as ComponentLifecycleEvents,eL as Components,Tb as ConnectionEvents,Bw as ContactPoint,Pn as ContactShadows,ee as Context,xk as ContextArgs,fe as ContextEvent,pe as ContextRegistry,qp as ControlTrackHandler,$r as CustomBranding,Mn as CustomShader,uu as DefaultReflectionMode,If as Deletable,Kc as DeleteBox,An as DepthOfField,zu as DeviceFlag,Q as DeviceUtilities,dS as DocumentExtension,ui as DragControls,Lf as DragMode,Us as DropListener,Ja as Duplicatable,Mh as EffectWrapper,Qs as EmissionModule,fl as EmphasizeOnClick,hf as EngineLoadingView,Zp as EnvironmentScene,Se as EventList,Ru as EventListEvent,si as EventSystem,Nu as EventTrigger,gx as FieldWithDefault,ru as FileReference,U_ as FileReferenceSerializer,pR as FileSpawnModel,Zw as File_Event,F0 as FixedJoint,Sl as Fog,Me as FrameEvent,Pd as GENERATOR,O as GameObject,$ as Gizmos,ih as GltfExport,Qf as GltfExportBox,la as GltfLoadEvent,X1 as GltfLoadEventType,Xr as Gradient,Nr as Graphic,Au as GraphicRaycaster,$i as Graphics,Cl as GridHelper,M0 as GridLayoutGroup,Gn as GroundProjectedEnv,jo as GroupActionModel,Du as HideFlags,gl as HideOnStart,bh as HingeJoint,k0 as HorizontalLayoutGroup,P2 as HostData,jl as Image,su as ImageReference,z_ as ImageReferenceSerializer,Yr as InheritVelocityModule,yb as Input,ai as InputEventQueue,Fe as InputEvents,sa as InputField,Qu as InstanceHandle,sl as InstancingHandler,ln as InstancingUtil,o_ as InstantiateEvent,Bt as InstantiateIdProvider,Dn as InstantiateOptions,Af as Interactable,$h as InternalScreenshotUtils,ZP as JoinedRoomResponse,NP as KeyEventArgs,fi as Keyframe,wh as LODGroup,Ol as LODModel,JP as LeftRoomResponse,gi as Light,Y_ as LightData,mt as LimitVelocityOverLifetimeModule,Rk as LoadingElementOptions,Ef as LogStats,Pi as LogType,oa as LookAt,Rr as LookAtConstraint,j as MODULES,$t as MainModule,vy as MarkerType,yh as MaskableGraphic,W as Mathf,Ao as MeshCollider,th as MeshRenderer,K as MinMaxCurve,yi as MinMaxGradient,cc as NEKeyboardEvent,Cs as NEPointerEvent,Wy as NeedleButtonElement,jy as NeedleEngineHTMLElement,Ey as NeedleLoader,os as NeedleMenu,Md as NeedlePatchesKey,sg as NeedleXRController,J as NeedleXRSession,Ib as NeedleXRSync,Ub as NeedleXRUtils,bp as NestedGltf,Ab as NetworkConnection,Yn as NetworkedStreamEvents,sd as NetworkedStreams,Pl as Networking,a_ as NewInstanceModel,Pe as NoiseModule,Ii as ObjectRaycaster,yo as ObjectUtils,qr as OffsetConstraint,bd as OneEuroFilter,zm as OneEuroFilterXYZ,Dl as OpenURL,we as OrbitControls,xl as Outline,Eb as OwnershipEvent,cg as OwnershipModel,ac as PUBLIC_KEY,Hr as Padding,Cp as ParticleBurst,H0 as ParticleSubEmitter,lt as ParticleSystem,qo as ParticleSystemBaseBehaviour,sn as ParticleSystemRenderer,xp as ParticleSystemShapeType,$c as PeerHandle,Mb as PeerNetworking,Dd as Physics,_0 as PhysicsExtension,_t as PhysicsMaterialCombine,Rh as PixelationEffect,zr as PlayAnimationOnClick,Do as PlayAudioOnClick,er as PlayableDirector,Wl as PlayerColor,Li as PlayerState,Gx as PlayerStateEvent,bl as PlayerSync,$_ as PlayerView,G_ as PlayerViewManager,nd as PointerEventData,Td as PointerType,ct as PostProcessingEffect,ay as PostProcessingHandler,yl as PreliminaryAction,oh as PreliminaryTrigger,Io as PreviewHelper,mr as PrimitiveType,he as Progress,Im as PromiseAllWithErrors,Am as PromiseErrorResult,le as RGBAColor,td as RapierPhysics,Yp as RawImage,Wn as RaycastOptions,Qx as Rect,Vt as RectTransform,nl as ReflectionProbe,or as RegisteredAnimationInfo,hs as RemoteSkybox,Na as RenderTexture,Ew as RenderTextureSerializer,Ke as Renderer,Q_ as RendererData,Yu as RendererLightmap,ve as Rigidbody,nt as RigidbodyConstraints,ne as RoomEvents,nn as RotationBySpeedModule,En as RotationOverLifetimeModule,Vu as SceneLightSettings,ot as SceneSwitcher,Ko as ScreenCapture,Ys as ScreenSpaceAmbientOcclusion,In as ScreenSpaceAmbientOcclusionN8,wn as SendQueue,Ug as SerializationContext,Fr as SetActiveOnClick,Ih as ShadowCatcher,et as ShapeModule,Eh as SharpeningEffect,$p as SignalAsset,Il as SignalReceiver,Fh as SignalReceiverEvent,Wh as SignalTrackHandler,Xx as Size,vi as SizeBySpeedModule,Qr as SizeOverLifetimeModule,Xf as SkinnedMeshRenderer,Zo as SmoothFollow,Ha as SpatialGrabRaycaster,Vh as SpatialHtml,Bh as SpatialTrigger,ds as SpatialTriggerReceiver,Np as SpectatorCamera,Qa as SphereCollider,_g as SphereIntersection,zw as SphereOverlapResult,$s as Sprite,Bo as SpriteData,mi as SpriteRenderer,vl as SpriteSheet,Uk as StateMachineBehaviour,xf as StreamEndedEvent,Uw as StreamReceivedEvent,Ep as SubEmitterSystem,Vp as SyncedCamera,jn as SyncedRoom,Xn as SyncedTransform,l0 as TapGestureTrigger,up as TeleportTarget,gy as TestRunner,Xj as TestSceneUtils,fy as TestSimulateUserData,Ht as Text,O0 as TextBuilder,fp as TextExtension,Gt as TextureSheetAnimationModule,cs as TiltShiftEffect,Z_ as Time,Xo as ToneMappingEffect,zh as TrackHandler,Wi as TrackType,Ge as TrailModule,Ze as TransformData,ia as TransformGizmo,Tt as TriggerBuilder,Dr as TriggerModel,k as TypeStore,ff as UIRaycastUtils,ph as UIRootComponent,Yf as USDDocument,Zt as USDObject,wx as USDWriter,$e as USDZExporter,xx as USDZExporter$1,Vr as USDZText,E0 as USDZUIExtension,Aw as UriSerializer,Yc as UsageMarker,e2 as UserJoinedOrLeftRoomModel,_n as VERSION,r0 as VariantAction,tt as VelocityOverLifetimeModule,P0 as VerticalLayoutGroup,gt as VideoPlayer,wo as ViewDevice,ta as Vignette,rh as VisibilityAction,Eo as Voip,Al as Volume,N as VolumeParameter,Ap as VolumeProfile,tk as WaitForFrames,W_ as WaitForPromise,Xg as WaitForSeconds,so as Watch,Gh as WebARCameraBackground,ss as WebARSessionRoot,Je as WebXR,Ur as WebXRButtonFactory,ra as WebXRImageTracking,io as WebXRImageTrackingModel,no as WebXRPlaneTracking,qh as WebXRTrackedImage,to as XRControllerFollow,rs as XRControllerModel,Di as XRControllerMovement,ji as XRFlag,em as XRRig,ci as XRState,Zn as XRStateFlag,uS as __Ignore,Kb as __internalNotifyObjectDestroyed,Ss as activeInHierarchyFieldName,Tv as addAttributeChangeCallback,Ti as addComponent,FR as addCustomExtensionPlugin,Aj as addGltfLoadEventListener,vr as addNewComponent,kd as addPatch,Yd as apply,$j as applyHMRChanges,S_ as applyPrototypeExtensions,r_ as beginListenDestroy,c_ as beginListenInstantiate,rg as binaryIdentifierCasts,wk as build_scene_functions,pr as builtinComponentKeyName,lf as calculateProgress01,GO as clearMessages,lM as colorSerializer,p_ as compareAssociation,Tu as componentSerializer,Jv as copyTexture,Ay as createLoader,xw as createMotion,li as debugNet,hc as debugOwner,kx as decompressGpuTexture,Yl as deepClone,yn as delay,Kl as delayForFrames,Xd as deserializeObject,Ei as destroy,k_ as destroyComponentInstance,Ee as disposeObjectResources,Kn as disposeStream,lc as editorGuidKeyName,ur as enableSpatialConsole,hM as euler,mM as eventListSerializer,Kj as exportAsGLTF,Hg as findByGuid,Oc as findObjectOfType,T_ as findObjectsOfType,Cg as findResourceUsers,tb as fitObjectIntoVolume,wr as foreachComponent,iu as foreachComponentEnumerator,aP as forward,Av as generateQRCode,l_ as generateSeed,oi as getBoundingBox,Nv as getCameraController,br as getComponent,Sc as getComponentInChildren,Cc as getComponentInParent,xc as getComponents,Ia as getComponentsInChildren,Qd as getComponentsInParent,yx as getFormattedDate,Ot as getIconElement,Jg as getIconTexture,BO as getIp,FO as getIpAndLocation,DO as getIpCloudflare,fn as getLoader,wc as getOrAddComponent,C as getParam,hP as getParentHierarchyPath,xO as getPath,XP as getPeerOptions,Pb as getPeerjsInstance,y2 as getResourceUserCount,Hv as getTempColor,vn as getTempQuaternion,q as getTempVector,Xl as getUrlParams,eb as getVisibleInCustomShadowRendering,Xv as getWorldDirection,Gm as getWorldEuler,te as getWorldPosition,Ce as getWorldQuaternion,Sd as getWorldRotation,Ye as getWorldScale,$n as hasCommercialLicense,Tc as hasIndieLicense,Mu as hasPointerEventComponent,Hn as hasProLicense,rb as hideDebugConsole,Mx as imageToCanvas,Da as instantiate,Gf as invokeAfterImportPluginHooks,fb as invokeXRSessionEnd,gb as invokeXRSessionStart,E_ as isActiveInHierarchy,ja as isActiveSelf,MO as isAndroidDevice,Zv as isAnimationAction,Dw as isComponent,vO as isDebugMode,CO as isDesktop,_r as isDestroyed,F as isDevEnvironment,g2 as isDisposed,Qj as isExporting,wv as isHostedOnGlitch,Nj as isHotReloading,PO as isIPad,tw as isIconElement,Qt as isLocalNetwork,TO as isMacOS,OO as isMobileDevice,RO as isMozillaXR,IO as isQuest,Xb as isResourceTrackingEnabled,AO as isSafari,Jd as isUsingInstancing,EO as isiOS,kO as isiPad,jj as loadAsset,Iy as loadSync,Cd as logHierarchy,JO as lookAtInverse,ec as lookAtObject,eP as lookAtScreenPoint,_O as makeId,kv as makeIdFromRandomWords,Rn as makeNameSafe,A_ as markAsInstancedRendered,jO as microphonePermissionsGranted,yO as nameof,Sv as nameofFactory,Tw as objectSerializer,UP as offXRSessionEnd,zP as offXRSessionStart,eM as onAfterRender,Jk as onBeforeRender,Kk as onClear,Zk as onDestroy,Ow as onInitialized,Pw as onStart,kw as onUpdate,ng as onXRSessionEnd,Rd as onXRSessionStart,Y1 as parseSync,ib as placeOnSurface,Qm as postprocessFBXMaterials,iM as prefix,Cv as pushState,wO as randomNumber,ag as registerBinaryType,yu as registerComponent,$u as registerComponentExtension,on as registerCustomEffectType,$f as registerExportExtensions,Gu as registerExtensions,Wj as registerHotReloadType,Pm as registerLoader,d_ as registerPrefabProvider,C_ as registerPrototypeExtensions,E2 as registerType,Rv as relativePathPrefix,Ev as removeAttributeChangeCallback,Vg as removeComponent,zR as removeCustomImportExtensionType,Ij as removeGltfLoadEventListener,BP as removePatch,po as resolveUrl,Mv as sanitizeString,U1 as saveImage,dj as screenshot,Cy as screenshot2,Ig as sendDestroyed,m as serializable,y_ as serializeObject,kr as serializeable,Pc as setActive,Dv as setAllowBalloonMessages,WO as setAllowOverlayMessages,wd as setAutoFitEnabled,Um as setCameraController,j_ as setDestroyed,vP as setDevEnvironment,Sg as setDisposable,La as setDontDestroy,Rm as setOrAddParamsToUrl,bO as setParam,Ql as setParamWithoutReload,QP as setPeerOptions,m2 as setResourceTrackingEnabled,Tm as setState,Xm as setVisibleInCustomShadowRendering,qm as setWorldEuler,ht as setWorldPosition,hr as setWorldPositionXYZ,Hi as setWorldQuaternion,$m as setWorldQuaternionXYZW,Kv as setWorldRotation,tc as setWorldRotationXYZ,xa as setWorldScale,sc as showBalloonError,Be as showBalloonMessage,_e as showBalloonWarning,Jm as showDebugConsole,ZO as slerp,bc as syncDestroy,g0 as syncField,jg as syncInstantiate,dP as textureToCanvas,Cb as tryCastBinary,$1 as tryDetermineFileTypeFromBinary,H1 as tryDetermineFileTypeFromURL,_a as tryFindObject,Ob as tryGetGuid,Vj as unregisterHotReloadType,Em as unwatchWrite,Wv as useForAutoFit,kt as validate,yd as watchWrite};
|
|
@@ -1803,15 +1803,15 @@ function IC() {
|
|
|
1803
1803
|
return s || null;
|
|
1804
1804
|
}
|
|
1805
1805
|
const U0 = x("debugdefines");
|
|
1806
|
-
Mo('if(!globalThis[""4.4.6-beta.
|
|
1806
|
+
Mo('if(!globalThis[""4.4.6-beta.4""]) globalThis[""4.4.6-beta.4""] = "0.0.0";');
|
|
1807
1807
|
Mo('if(!globalThis[""undefined""]) globalThis[""undefined""] = "unknown";');
|
|
1808
|
-
Mo('if(!globalThis[""Mon May 05 2025 19:
|
|
1808
|
+
Mo('if(!globalThis[""Mon May 05 2025 19:27:53 GMT+0700 (Indochina Time)""]) globalThis[""Mon May 05 2025 19:27:53 GMT+0700 (Indochina Time)""] = "unknown";');
|
|
1809
1809
|
Mo('if(!globalThis[""npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd""]) globalThis[""npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd""] = "unknown";');
|
|
1810
|
-
Mo('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.4.6-beta.
|
|
1810
|
+
Mo('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.4.6-beta.4";');
|
|
1811
1811
|
Mo('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";');
|
|
1812
|
-
Mo('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon May 05 2025 19:
|
|
1812
|
+
Mo('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon May 05 2025 19:27:53 GMT+0700 (Indochina Time)";');
|
|
1813
1813
|
Mo('globalThis["__NEEDLE_PUBLIC_KEY__"] = "npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd";');
|
|
1814
|
-
const $n = "4.4.6-beta.
|
|
1814
|
+
const $n = "4.4.6-beta.4", vg = "undefined", N0 = "Mon May 05 2025 19:27:53 GMT+0700 (Indochina Time)";
|
|
1815
1815
|
U0 && console.log(`Engine version: ${$n} (generator: ${vg})
|
|
1816
1816
|
Project built at ${N0}`);
|
|
1817
1817
|
const pd = "npk_ad8e492e31253a2800d563522e42a7311d0d7b766ac4ec1f64d3b425f06eacbd", yo = "needle_isActiveInHierarchy", sa = "builtin_components", md = "needle_editor_guid";
|
|
@@ -43148,7 +43148,7 @@ pe.registerCallback(me.ContextCreated, (s) => {
|
|
|
43148
43148
|
});
|
|
43149
43149
|
class DI extends RS {
|
|
43150
43150
|
constructor() {
|
|
43151
|
-
super(new Worker(URL.createObjectURL(new Blob(["
|
|
43151
|
+
super(new Worker(URL.createObjectURL(new Blob(["import '" + `${new URL('./generateMeshBVH.worker-2bb9524d.js', import.meta.url).toString()}` + "';"], { type: 'text/javascript' })), { type: "module" })), this.name = "GenerateMeshBVHWorker";
|
|
43152
43152
|
}
|
|
43153
43153
|
runTask(t, e, i = {}) {
|
|
43154
43154
|
return new Promise((n, o) => {
|