PageSourceSearch

https://www.zom.ai/_next/static/chunks/802.1c3323d34f26bf40.js

js zom.ai collected 2026-10-05 13:21:45 UTC 209,832 bytes, 783 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[802],{8334:(e,t,r)=>{r.d(t,{y:()=>i});var n=r(10796);function i(...e){let t=n.useRef([]);return t.current=e.map(e=>n.useContext(e)),n.useMemo(()=>({children:r})=>e.reduceRight((e,r,i)=>n.createElement(r.Provider,{value:t.current[i],children:e}),r),[])}},19537:(e,t,r)=>{e.exports=r(76769)},21717:(e,t,r)=>{r.d(t,{A:()=>n});function n(){return function(e){function t(e,t){for(var r,n,i,a,o,l=/([MLQCZ])([^MLQCZ]*)/g;r=l.exec(e);){var s=r[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map(function(e){return parseFloat(e)});switch(r[1]){case"M":a=n=s[0],o=i=s[1];break;case"L":(s[0]!==a||s[1]!==o)&&t("L",a,o,a=s[0],o=s[1]);break;case"Q":t("Q",a,o,a=s[2],o=s[3],s[0],s[1]);break;case"C":t("C",a,o,a=s[4],o=s[5],s[0],s[1],s[2],s[3]);break;case"Z":(a!==n||o!==i)&&t("L",a,o,n,i)}}}function r(e,r,n){void 0===n&&(n=16);var i={x:0,y:0};t(e,function(e,t,a,o,l,s,c,u,d){switch(e){case"L":r(t,a,o,l);break;case"Q":for(var f=t,p=a,h=1;h<n;h++)!function(e,t,r,n,i,a,o,l){var s=1-o;l.x=s*s*e+2*s*o*r+o*o*i,l.y=s*s*t+2*s*o*n+o*o*a}(t,a,s,c,o,l,h/(n-1),i),r(f,p,i.x,i.y),f=i.x,p=i.y;break;case"C":for(var v=t,m=a,g=1;g<n;g++)!function(e,t,r,n,i,a,o,l,s,c){var u=1-s;c.x=u*u*u*e+3*u*u*s*r+3*u*s*s*i+s*s*s*o,c.y=u*u*u*t+3*u*u*s*n+3*u*s*s*a+s*s*s*l}(t,a,s,c,u,d,o,l,g/(n-1),i),r(v,m,i.x,i.y),v=i.x,m=i.y}})}var n="precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}",i=new WeakMap,a={premultipliedAlpha:!1,preserveDrawingBuffer:!0,antialias:!1,depth:!1};function o(e,t){var r=e.getContext?e.getContext("webgl",a):e,n=i.get(r);if(!n){var o="undefined"!=typeof WebGL2RenderingContext&&r instanceof WebGL2RenderingContext,l={},s={},c={},u=-1,d=[];function f(e){var t=l[e];if(!t&&!(t=l[e]=r.getExtension(e)))throw Error(e+" not supported");return t}function p(e,t){var n=r.createShader(t);return r.shaderSource(n,e),r.compileShader(n),n}function h(){l={},s={},c={},u=-1,d.length=0}r.canvas.addEventListener("webglcontextlost",function(e){h(),e.preventDefault()},!1),i.set(r,n={gl:r,isWebGL2:o,getExtension:f,withProgram:function(e,t,n,i){if(!s[e]){var a={},l={},c=r.createProgram();r.attachShader(c,p(t,r.VERTEX_SHADER)),r.attachShader(c,p(n,r.FRAGMENT_SHADER)),r.linkProgram(c),s[e]={program:c,transaction:function(e){r.useProgram(c),e({setUniform:function(e,t){for(var n=[],i=arguments.length-2;i-- >0;)n[i]=arguments[i+2];var a=l[t]||(l[t]=r.getUniformLocation(c,t));r["uniform"+e].apply(r,[a].concat(n))},setAttribute:function(e,t,n,i,l){var s=a[e];s||(s=a[e]={buf:r.createBuffer(),loc:r.getAttribLocation(c,e),data:null}),r.bindBuffer(r.ARRAY_BUFFER,s.buf),r.vertexAttribPointer(s.loc,t,r.FLOAT,!1,0,0),r.enableVertexAttribArray(s.loc),o?r.vertexAttribDivisor(s.loc,i):f("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(s.loc,i),l!==s.data&&(r.bufferData(r.ARRAY_BUFFER,l,n),s.data=l)}})}}}s[e].transaction(i)},withTexture:function(e,t){u++;try{r.activeTexture(r.TEXTURE0+u);var n=c[e];n||(n=c[e]=r.createTexture(),r.bindTexture(r.TEXTURE_2D,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST)),r.bindTexture(r.TEXTURE_2D,n),t(n,u)}finally{u--}},withTextureFramebuffer:function(e,t,n){var i=r.createFramebuffer();d.push(i),r.bindFramebuffer(r.FRAMEBUFFER,i),r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);try{n(i)}finally{r.deleteFramebuffer(i),r.bindFramebuffer(r.FRAMEBUFFER,d[--d.length-1]||null)}},handleContextLoss:h})}t(n)}function l(e,t,r,i,a,l,s,c){void 0===s&&(s=15),void 0===c&&(c=null),o(e,function(e){var o=e.gl,u=e.withProgram;(0,e.withTexture)("copy",function(e,d){o.texImage2D(o.TEXTURE_2D,0,o.RGBA,a,l,0,o.RGBA,o.UNSIGNED_BYTE,t),u("copy",n,"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}",function(e){var t=e.setUniform;(0,e.setAttribute)("aUV",2,o.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),t("1i","image",d),o.bindFramebuffer(o.FRAMEBUFFER,c||null),o.disable(o.BLEND),o.colorMask(8&s,4&s,2&s,1&s),o.viewport(r,i,a,l),o.scissor(r,i,a,l),o.drawArrays(o.TRIANGLES,0,3)})})})}var s=Object.freeze({__proto__:null,withWebGLContext:o,renderImageData:l,resizeWebGLCanvasWithoutClearing:function(e,t,r){var n=e.width,i=e.he
1ight;o(e,function(a){var o=a.gl,s=new Uint8Array(n*i*4);o.readPixels(0,0,n,i,o.RGBA,o.UNSIGNED_BYTE,s),e.width=t,e.height=r,l(o,s,0,0,n,i)})}});function c(e,t,n,i,a,o){void 0===o&&(o=1);var l=new Uint8Array(e*t),s=i[2]-i[0],c=i[3]-i[1],u=[];r(n,function(e,t,r,n){u.push({x1:e,y1:t,x2:r,y2:n,minX:Math.min(e,r),minY:Math.min(t,n),maxX:Math.max(e,r),maxY:Math.max(t,n)})}),u.sort(function(e,t){return e.maxX-t.maxX});for(var d=0;d<e;d++)for(var f=0;f<t;f++){var p=function(e,t){for(var r=1/0,n=1/0,i=u.length;i--;){var a=u[i];if(a.maxX+n<=e)break;if(e+n>a.minX&&t-n<a.maxY&&t+n>a.minY){var o=function(e,t,r,n,i,a){var o=i-r,l=a-n,s=o*o+l*l,c=s?Math.max(0,Math.min(1,((e-r)*o+(t-n)*l)/s)):0,u=e-(r+c*o),d=t-(n+c*l);return u*u+d*d}(e,t,a.x1,a.y1,a.x2,a.y2);o<r&&(n=Math.sqrt(r=o))}}return function(e,t){for(var r=0,n=u.length;n--;){var i=u[n];if(i.maxX<=e)break;i.y1>t!=i.y2>t&&e<(i.x2-i.x1)*(t-i.y1)/(i.y2-i.y1)+i.x1&&(r+=i.y1<i.y2?1:-1)}return 0!==r}(e,t)&&(n=-n),n}(i[0]+s*(d+.5)/e,i[1]+c*(f+.5)/t),h=Math.pow(1-Math.abs(p)/a,o)/2;p<0&&(h=1-h),h=Math.max(0,Math.min(255,Math.round(255*h))),l[f*e+d]=h}return l}function u(e,t,r,n,i,a,o,l,s,c){void 0===a&&(a=1),void 0===l&&(l=0),void 0===s&&(s=0),void 0===c&&(c=0),d(e,t,r,n,i,a,o,null,l,s,c)}function d(e,t,r,n,i,a,o,s,u,d,f){void 0===a&&(a=1),void 0===u&&(u=0),void 0===d&&(d=0),void 0===f&&(f=0);for(var p=c(e,t,r,n,i,a),h=new Uint8Array(4*p.length),v=0;v<p.length;v++)h[4*v+f]=p[v];l(o,h,u,d,e,t,1<<3-f,s)}var f=Object.freeze({__proto__:null,generate:c,generateIntoCanvas:u,generateIntoFramebuffer:d}),p=new Float32Array([0,0,2,0,0,2]),h=null,v=!1,m={},g=new WeakMap;function y(e){if(!v&&!E(e))throw Error("WebGL generation not supported")}function b(e,t,r,n,i,a,l){if(void 0===a&&(a=1),void 0===l&&(l=null),!l&&!(l=h)){var s="function"==typeof OffscreenCanvas?new OffscreenCanvas(1,1):"undefined"!=typeof document?document.createElement("canvas"):null;if(!s)throw Error("OffscreenCanvas or DOM canvas not supported");l=h=s.getContext("webgl",{depth:!1})}y(l);var c=new Uint8Array(e*t*4);o(l,function(o){var l=o.gl,s=o.withTexture,u=o.withTextureFramebuffer;s("readable",function(o,s){l.texImage2D(l.TEXTURE_2D,0,l.RGBA,e,t,0,l.RGBA,l.UNSIGNED_BYTE,null),u(o,s,function(o){x(e,t,r,n,i,a,l,o,0,0,0),l.readPixels(0,0,e,t,l.RGBA,l.UNSIGNED_BYTE,c)})})});for(var u=new Uint8Array(e*t),d=0,f=0;d<c.length;d+=4)u[f++]=c[d];return u}function w(e,t,r,n,i,a,o,l,s,c){void 0===a&&(a=1),void 0===l&&(l=0),void 0===s&&(s=0),void 0===c&&(c=0),x(e,t,r,n,i,a,o,null,l,s,c)}function x(e,t,i,a,l,s,c,u,d,f,h){void 0===s&&(s=1),void 0===d&&(d=0),void 0===f&&(f=0),void 0===h&&(h=0),y(c);var v=[];r(i,function(e,t,r,n){v.push(e,t,r,n)}),v=new Float32Array(v),o(c,function(r){var i=r.gl,o=r.isWebGL2,c=r.getExtension,m=r.withProgram,g=r.withTexture,y=r.withTextureFramebuffer,b=r.handleContextLoss;if(g("rawDistances",function(r,g){(e!==r._lastWidth||t!==r._lastHeight)&&i.texImage2D(i.TEXTURE_2D,0,i.RGBA,r._lastWidth=e,r._lastHeight=t,0,i.RGBA,i.UNSIGNED_BYTE,null),m("main","precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}","precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y>p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y<vLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing&&!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}",function(n){var u=n.setAttribute,d=n.setUniform,f=!o&&c("ANGLE_instanced_arrays"),h=!o&&c("EXT_blend_minmax");u("aUV",2,i.STATIC_DRAW,0,p),u("aLineSegment",4,i.DYNAMIC_DRAW,1,v),d.apply(void 0,["4f","uGlyphBounds"].concat(a)),d("1f","uMaxDistance",l),d("1f","uExponent",s),y(r,g,function(r){i.enable(i.BLEND),i.colorMask(!0,!0,
1!0,!0),i.viewport(0,0,e,t),i.scissor(0,0,e,t),i.blendFunc(i.ONE,i.ONE),i.blendEquationSeparate(i.FUNC_ADD,o?i.MAX:h.MAX_EXT),i.clear(i.COLOR_BUFFER_BIT),o?i.drawArraysInstanced(i.TRIANGLES,0,3,v.length/4):f.drawArraysInstancedANGLE(i.TRIANGLES,0,3,v.length/4)})}),m("post",n,"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}",function(r){r.setAttribute("aUV",2,i.STATIC_DRAW,0,p),r.setUniform("1i","tex",g),i.bindFramebuffer(i.FRAMEBUFFER,u),i.disable(i.BLEND),i.colorMask(0===h,1===h,2===h,3===h),i.viewport(d,f,e,t),i.scissor(d,f,e,t),i.drawArrays(i.TRIANGLES,0,3)})}),i.isContextLost())throw b(),Error("webgl context lost")})}function E(e){var t=e&&e!==h?e.canvas||e:m,r=g.get(t);if(void 0===r){v=!0;var n=null;try{var i=[97,106,97,61,99,137,118,80,80,118,137,99,61,97,106,97],a=b(4,4,"M8,8L16,8L24,24L16,24Z",[0,0,32,32],24,1,e);(r=a&&i.length===a.length&&a.every(function(e,t){return e===i[t]}))||(n="bad trial run results",console.info(i,a))}catch(e){r=!1,n=e.message}n&&console.warn("WebGL SDF generation not supported:",n),v=!1,g.set(t,r)}return r}var M=Object.freeze({__proto__:null,generate:b,generateIntoCanvas:w,generateIntoFramebuffer:x,isSupported:E});return e.forEachPathCommand=t,e.generate=function(e,t,r,n,i,a){void 0===i&&(i=Math.max(n[2]-n[0],n[3]-n[1])/2),void 0===a&&(a=1);try{return b.apply(M,arguments)}catch(e){return console.info("WebGL SDF generation failed, falling back to JS",e),c.apply(f,arguments)}},e.generateIntoCanvas=function(e,t,r,n,i,a,o,l,s,c){void 0===i&&(i=Math.max(n[2]-n[0],n[3]-n[1])/2),void 0===a&&(a=1),void 0===l&&(l=0),void 0===s&&(s=0),void 0===c&&(c=0);try{return w.apply(M,arguments)}catch(e){return console.info("WebGL SDF generation failed, falling back to JS",e),u.apply(f,arguments)}},e.javascript=f,e.pathToLineSegments=r,e.webgl=M,e.webglUtils=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({})}},24611:(e,t,r)=>{r.d(t,{r:()=>n});let n=parseInt(r(41680).REVISION.replace(/\D+/g,""))},25116:(e,t,r)=>{r.d(t,{zo:()=>l});var n=r(10796),i=r(41680),a=r(26465);let o=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function l(e,t){let r=(0,a.C)(e=>e.gl),l=(0,a.G)(i.TextureLoader,o(e)?Object.values(e):e);return(0,n.useLayoutEffect)(()=>{null==t||t(l)},[t]),(0,n.useEffect)(()=>{if("initTexture"in r){let e=[];Array.isArray(l)?e=l:l instanceof i.Texture?e=[l]:o(l)&&(e=Object.values(l)),e.forEach(e=>{e instanceof i.Texture&&r.initTexture(e)})}},[r,l]),(0,n.useMemo)(()=>{if(!o(e))return l;{let t={},r=0;for(let n in e)t[n]=l[r++];return t}},[e,l])}l.preload=e=>a.G.preload(i.TextureLoader,e),l.clear=e=>a.G.clear(i.TextureLoader,e)},26465:(e,t,r)=>{let n,i,a,o,l;r.d(t,{B:()=>T,C:()=>J,D:()=>ee,E:()=>j,G:()=>en,a:()=>A,b:()=>C,c:()=>eM,d:()=>e_,e:()=>es,f:()=>eB,i:()=>S,o:()=>eC,s:()=>W,u:()=>P});var s=r(10796),c=r.t(s,2),u=r(66493),d=r(41680),f=r(19537),p=r(57566);let{useSyncExternalStoreWithSelector:h}=f,v=(e,t)=>{let r=(0,p.y)(e),n=(e,n=t)=>(function(e,t=e=>e,r){let n=h(e.subscribe,e.getState,e.getInitialState,t,r);return s.useDebugValue(n),n})(r,e,n);return Object.assign(n,r),n},m=(e,t)=>e?v(e,t):v;var g=r(86592),y=r(45940),b=r.n(y),w=r(88434),x=r(38144),E=r(91837);function M(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}r(11087),c.act;let S=e=>e&&e.hasOwnProperty("current"),_=e=>null!=e&&("string"==typeof e||"number"==typeof e||e.isColor),C=((e,t)=>"undefined"!=typeof window&&((null==(e=window.document)?void 0:e.createElement)||(null==(t=window.navigator)?void 0:t.product)==="ReactNative"))()?s.useLayoutEffect:s.useEffect;function A(e){let t=s.useRef(e);return C(()=>void(t.current=e),[e]),t}function P(){let e=(0,E.u5)(),t=(0,E.y3)();return s.useMemo(()=>({children:r})=>{let n=(0,E.Nz)(e,!0,e=>e.type===s.StrictMode)?s.StrictMode:s.Fragment;return(0,x.jsx)(n,{children:(0,x.jsx)(t,{children:r})})},[e,t])}function T({set:e}){return C(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}let j=(e=>((e=class extends s.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}).getDerivedStateFromError=()=>({error:!0}),e))();function R(e){var t;let r="undefined"!=typeof window?null!=(t=window.devicePixelRatio)?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],r),e[1]):e}function O(e){var t;return null==(t=e.__r3f)?void 0:t.root.getState()}let D={obj:e=>e===Object(e)&&!D.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,boo:e=>"boolean"==typeof e,und:e=>void 0===e,nul:e=>null===e,arr:e=>Array.isArray(e),equ(e,t,{arrays:r="shallow",objects:n="reference",strict:i=!0}={}){let a;if(typeof e!=typeof t||!!e!=!!t)return!1;if(D.str(e)||D.num(e)||D.boo(e))return e===t;let o=D.obj(e);if(o&&"reference"===n)return e===t;let l=D.arr(e);if(l&&"reference"===r)return e===t;if((l||o)&&e===t)return!0;for(a in e)if(!(a in t))return!1;if(o&&"shallow"===r&&"shallow"===n){for(a in i?t:e)if(!D.equ(e[a],t[a],{strict:i,objects:"reference"}))return!1}else for(a in i?t:e)if(e[a]!==t[a])return!1;if(D.und(a)){if(l&&0===e.length&&0===t.length||o&&0===Object.keys(e).length&&0===Object.keys(t).length)return!0;
1if(e!==t)return!1}return!0}},I=["children","key","ref"];function L(e,t,r,n){let i=null==e?void 0:e.__r3f;return!i&&(i={root:t,type:r,parent:null,children:[],props:function(e){let t={};for(let r in e)I.includes(r)||(t[r]=e[r]);return t}(n),object:e,eventCount:0,handlers:{},isHidden:!1},e&&(e.__r3f=i)),i}function U(e,t){if(!t.includes("-")||t in e)return{root:e,key:t,target:e[t]};let r=e,n=t.split("-");for(let i of n){if("object"!=typeof r||null===r){if(void 0!==r)return{root:r,key:n.slice(n.indexOf(i)).join("-"),target:void 0};return{root:e,key:t,target:void 0}}t=i,e=r,r=r[t]}return{root:e,key:t,target:r}}let k=/-\d+$/;function F(e,t){if(D.str(t.props.attach)){if(k.test(t.props.attach)){let r=t.props.attach.replace(k,""),{root:n,key:i}=U(e.object,r);Array.isArray(n[i])||(n[i]=[])}let{root:r,key:n}=U(e.object,t.props.attach);t.previousAttach=r[n],r[n]=t.object}else D.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function z(e,t){if(D.str(t.props.attach)){let{root:r,key:n}=U(e.object,t.props.attach),i=t.previousAttach;void 0===i?delete r[n]:r[n]=i}else null==t.previousAttach||t.previousAttach(e.object,t.object);delete t.previousAttach}let B=[...I,"args","dispose","attach","object","onUpdate","dispose"],N=new Map,H=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],V=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function W(e,t){var r,n;let i=e.__r3f,a=i&&M(i).getState(),o=null==i?void 0:i.eventCount;for(let r in t){let o=t[r];if(B.includes(r))continue;if(i&&V.test(r)){"function"==typeof o?i.handlers[r]=o:delete i.handlers[r],i.eventCount=Object.keys(i.handlers).length;continue}if(void 0===o)continue;let{root:l,key:s,target:c}=U(e,r);if(void 0===c&&("object"!=typeof l||null===l))throw Error(`R3F: Cannot set "${r}". Ensure it is an object before setting "${s}".`);c instanceof d.Layers&&o instanceof d.Layers?c.mask=o.mask:c instanceof d.Color&&_(o)?c.set(o):null!==c&&"object"==typeof c&&"function"==typeof c.set&&"function"==typeof c.copy&&null!=o&&o.constructor&&c.constructor===o.constructor?c.copy(o):null!==c&&"object"==typeof c&&"function"==typeof c.set&&Array.isArray(o)?"function"==typeof c.fromArray?c.fromArray(o):c.set(...o):null!==c&&"object"==typeof c&&"function"==typeof c.set&&"number"==typeof o?"function"==typeof c.setScalar?c.setScalar(o):c.set(o):(l[s]=o,a&&!a.linear&&H.includes(s)&&null!=(n=l[s])&&n.isTexture&&l[s].format===d.RGBAFormat&&l[s].type===d.UnsignedByteType&&(l[s].colorSpace
1=d.SRGBColorSpace))}if(null!=i&&i.parent&&null!=a&&a.internal&&null!=(r=i.object)&&r.isObject3D&&o!==i.eventCount){let e=i.object,t=a.internal.interaction.indexOf(e);t>-1&&a.internal.interaction.splice(t,1),i.eventCount&&null!==e.raycast&&a.internal.interaction.push(e)}return i&&void 0===i.props.attach&&(i.object.isBufferGeometry?i.props.attach="geometry":i.object.isMaterial&&(i.props.attach="material")),i&&G(i),e}function G(e){var t;if(!e.parent)return;null==e.props.onUpdate||e.props.onUpdate(e.object);let r=null==(t=e.root)||null==t.getState?void 0:t.getState();r&&0===r.internal.frames&&r.invalidate()}function q(e,t){!e.manual&&(e&&e.isOrthographicCamera?(e.left=-(t.width/2),e.right=t.width/2,e.top=t.height/2,e.bottom=-(t.height/2)):e.aspect=t.width/t.height,e.updateProjectionMatrix())}let $=e=>null==e?void 0:e.isObject3D;function Y(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function X(e,t,r,n){let i=r.get(t);i&&(r.delete(t),0===r.size&&(e.delete(n),i.target.releasePointerCapture(n)))}let Z=e=>!!(null!=e&&e.render),K=s.createContext(null);function Q(){let e=s.useContext(K);if(!e)throw Error("R3F: Hooks can only be used within the Canvas component!");return e}function J(e=e=>e,t){return Q()(e,t)}function ee(e,t=0){let r=Q(),n=r.getState().internal.subscribe,i=A(e);return C(()=>n(i,t,r),[t,n,r]),null}let et=new WeakMap;function er(e,t){return function(r,...n){var i;let a;return"function"==typeof r&&(null==r||null==(i=r.prototype)?void 0:i.constructor)===r?(a=et.get(r))||(a=new r,et.set(r,a)):a=r,e&&e(a),Promise.all(n.map(e=>new Promise((r,n)=>a.load(e,e=>{$(null==e?void 0:e.scene)&&Object.assign(e,function(e){let t={nodes:{},materials:{},meshes:{}};return e&&e.traverse(e=>{e.name&&(t.nodes[e.name]=e),e.material&&!t.materials[e.material.name]&&(t.materials[e.material.name]=e.material),e.isMesh&&!t.meshes[e.name]&&(t.meshes[e.name]=e)}),t}(e.scene)),r(e)},t,t=>n(Error(`Could not load ${e}: ${null==t?void 0:t.message}`))))))}}function en(e,t,r,n){let i=Array.isArray(t)?t:[t],a=(0,g.DY)(er(r,n),[e,...i],{equal:D.equ});return Array.isArray(t)?a:a[0]}en.preload=function(e,t,r){let n=Array.isArray(t)?t:[t];return(0,g.uv)(er(r),[e,...n])},en.clear=function(e,t){let r=Array.isArray(t)?t:[t];return(0,g.IU)([e,...r])};let ei={},ea=/^three(?=[A-Z])/,eo=e=>`${e[0].toUpperCase()}${e.slice(1)}`,el=0;function es(e){if("function"==typeof e){let t=`${el++}`;return ei[t]=e,t}Object.assign(ei,e)}function ec(e,t){let r=eo(e),n=ei[r];if("primitive"!==e&&!n)throw Error(`R3F: ${r} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if("primitive"===e&&!t.object)throw Error("R3F: Primitives without 'object' are invalid!");if(void 0!==t.args&&!Array.isArray(t.args))throw Error("R3F: The args prop must be an array!")}function eu(e){if(e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?F(e.parent,e):$(e.object)&&!1!==e.props.visible&&(e.object.visible=!0),e.isHidden=!1,G(e)}}function ed(e,t,r){let n=t.root.getState();if(e.parent||e.object===n.scene){if(!t.object){var i,a;let e=ei[eo(t.type)];t.object=null!=(i=t.props.object)?i:new e(...null!=(a=t.props.args
1)?a:[]),t.object.__r3f=t}if(W(t.object,t.props),t.props.attach)F(e,t);else if($(t.object)&&$(e.object)){let n=e.object.children.indexOf(null==r?void 0:r.object);if(r&&-1!==n){let r=e.object.children.indexOf(t.object);-1!==r?(e.object.children.splice(r,1),e.object.children.splice(r<n?n-1:n,0,t.object)):(t.object.parent=e.object,e.object.children.splice(n,0,t.object),t.object.dispatchEvent({type:"added"}),e.object.dispatchEvent({type:"childadded",child:t.object}))}else e.object.add(t.object)}for(let e of t.children)ed(t,e);G(t)}}function ef(e,t){t&&(t.parent=e,e.children.push(t),ed(e,t))}function ep(e,t,r){if(!t||!r)return;t.parent=e;let n=e.children.indexOf(r);-1!==n?e.children.splice(n,0,t):e.children.push(t),ed(e,t,r)}function eh(e){if("function"==typeof e.dispose){let t=()=>{try{e.dispose()}catch{}};"undefined"!=typeof IS_REACT_ACT_ENVIRONMENT?t():(0,w.unstable_scheduleCallback)(w.unstable_IdlePriority,t)}}function ev(e,t,r){if(!t)return;t.parent=null;let n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1),t.props.attach?z(e,t):$(t.object)&&$(e.object)&&(e.object.remove(t.object),function(e,t){let{internal:r}=e.getState();r.interaction=r.interaction.filter(e=>e!==t),r.initialHits=r.initialHits.filter(e=>e!==t),r.hovered.forEach((e,n)=>{(e.eventObject===t||e.object===t)&&r.hovered.delete(n)}),r.capturedMap.forEach((e,n)=>{X(r.capturedMap,t,e,n)})}(M(t),t.object));let i=null!==t.props.dispose&&!1!==r;for(let e=t.children.length-1;e>=0;e--){let r=t.children[e];ev(t,r,i)}t.children.length=0,delete t.object.__r3f,i&&"primitive"!==t.type&&"Scene"!==t.object.type&&eh(t.object),void 0===r&&G(t)}let em=[],eg=()=>{},ey={},eb=0,ew=function(e){let t=b()(e);return t.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:s.version}),t}({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:function(e,t,r){var n;return ec(e=eo(e)in ei?e:e.replace(ea,""),t),"primitive"===e&&null!=(n=t.object)&&n.__r3f&&delete t.object.__r3f,L(t.object,r,e,t)},removeChild:ev,appendChild:ef,appendInitialChild:ef,insertBefore:ep,appendChildToContainer(e,t){let r=e.getState().scene.__r3f;t&&r&&ef(r,t)},removeChildFromContainer(e,t){let r=e.getState().scene.__r3f;t&&r&&ev(r,t)},insertInContainerBefore(e,t,r){let n=e.getState().scene.__r3f;t&&r&&n&&ep(n,t,r)},getRootHostContext:()=>ey,getChildHostContext:()=>ey,commitUpdate(e,t,r,n,i){var a,o,l;ec(t,n);let s=!1;if("primitive"===e.type&&r.object!==n.object||(null==(a=n.args)?void 0:a.length)!==(null==(o=r.args)?void 0:o.length)?s=!0:null!=(l=n.args)&&l.some((e,t)=>{var n;return e!==(null==(n=r.args)?void 0:n[t])})&&(s=!0),s)em.push([e,{...n},i]);else{let t=function(e,t){let r={};for(let n in t)if(!B.includes(n)&&!D.equ(t[n],e.props[n]))for(let e in r[n]=t[n],t)e.startsWith(`${n}-`)&&(r[e]=t[e]);for(let n in e.props){if(B.includes(n)||t.hasOwnProperty(n))continue;let{root:i,key:a}=U(e.object,n);if(i.constructor&&0===i.constructor.length){let e=function(e){let t=N.get(e.constructor);try{t||(t=new e.constructor,N.set(e.constructor,t))}catch(e){}return t}(i);D.und(e)||(r[a]=e[a])}else r[a]=0}return r}(e,n);Object.keys(t).length&&(Object.assign(e.props,t),W(e.object,t))}(null===i.sibling||(4&i.flags)==0)&&function(){for(let[e]of em){let t=e.parent;if(t)for(let r of(e.props.attach?z(t,e):$(e.object)&&$(t.object)&&t.object.remove(e.object),e.children))r.props.attach?z(e,r):$(r.object)&&$(e.object)&&e.object.remove(r.object);e.isHidden&&eu(e),e.object.__r3f&&delete e.object.__r3f,"primitive"!==e.type&&eh(e.object)}for(let[n,i,a]of em){n.props=i;let o=n.parent;if(o){let i=ei[eo(n.type)];n.object=null!=(e=n.props.object)?e:new i(...null!=(t=n.props.args)?t:[]),n.object.__r3f=n;var e,t,r=n.object;for(let e of[a,a.alternate])if(null!==e)if("function"==typeof e.ref){null==e.refCleanup||e.refCleanup();let t=e.ref(r);"function"==typeof t&&(e.refCleanup=t)}else e.ref&&(e.ref.current=r);for(let e of(W(n.object,n.props),n.props.attach?F(o,n):$(n.object)&&$(o.object)&&o.object.add(n.object),n.children))e.props.attach?F(n,e):$(e.object)&&$(n.object)&&n.object.add(e.object);G(n)}}em.length=0}()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>null==e?void 0:e.object,prepareForCommit:()=>null,preparePortalMount:e=>L(e.getState().scene,e,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:function(e){if(!e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?z(e.parent,e):$(e.object)&&(e.object.visible=!1),e.isHidden=!0,G(e)}},unhideInstance:eu,createTextInstance:eg,hideTextInstance:eg,unhideTextInstance:eg,scheduleTimeout:"function"==typeof setTimeout?setTimeout:void 0,cancelTimeout:"function"==typeof clearTimeout?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){}
1,prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:s.createContext(null),setCurrentUpdatePriority(e){eb=e},getCurrentUpdatePriority:()=>eb,resolveUpdatePriority(){var e;if(0!==eb)return eb;switch("undefined"!=typeof window&&(null==(e=window.event)?void 0:e.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return u.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return u.ContinuousEventPriority;default:return u.DefaultEventPriority}},resetFormInstance(){}}),ex=new Map,eE={objects:"shallow",strict:!1};function eM(e){let t,r,n=ex.get(e),i=null==n?void 0:n.fiber,a=null==n?void 0:n.store;n&&console.warn("R3F.createRoot should only be called once!");let o="function"==typeof reportError?reportError:console.error,l=a||((e,t)=>{let r=m((r,n)=>{let i,a=new d.Vector3,o=new d.Vector3,l=new d.Vector3;function c(e=n().camera,t=o,r=n().size){let{width:i,height:s,top:u,left:d}=r,f=i/s;t.isVector3?l.copy(t):l.set(...t);let p=e.getWorldPosition(a).distanceTo(l);if(e&&e.isOrthographicCamera)return{width:i/e.zoom,height:s/e.zoom,top:u,left:d,factor:1,distance:p,aspect:f};{let t=2*Math.tan(e.fov*Math.PI/180/2)*p,r=i/s*t;return{width:r,height:t,top:u,left:d,factor:i/r,distance:p,aspect:f}}}let u=e=>r(t=>({performance:{...t.performance,current:e}})),f=new d.Vector2;return{set:r,get:n,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(t=1)=>e(n(),t),advance:(e,r)=>t(e,r,n()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new d.Clock,pointer:f,mouse:f,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let e=n();i&&clearTimeout(i),e.performance.current!==e.performance.min&&u(e.performance.min),i=setTimeout(()=>u(n().performance.max),e.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:c},setEvents:e=>r(t=>({...t,events:{...t.events,...e}})),setSize:(e,t,i=0,a=0)=>{let l=n().camera,s={width:e,height:t,top:i,left:a};r(e=>({size:s,viewport:{...e.viewport,...c(l,o,s)}}))},setDpr:e=>r(t=>{let r=R(e);return{viewport:{...t.viewport,dpr:r,initialDpr:t.viewport.initialDpr||r}}}),setFrameloop:(e="always")=>{let t=n().clock;t.stop(),t.elapsedTime=0,"never"!==e&&(t.start(),t.elapsedTime=0),r(()=>({frameloop:e}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:s.createRef(),active:!1,frames:0,priority:0,subscribe:(e,t,r)=>{let i=n().internal;return i.priority=i.priority+ +(t>0),i.subscribers.push({ref:e,priority:t,store:r}),i.subscribers=i.subscribers.sort((e,t)=>e.priority-t.priority),()=>{let r=n().internal;null!=r&&r.subscribers&&(r.priority=r.priority-(t>0),r.subscribers=r.subscribers.filter(t=>t.ref!==e))}}}}}),n=r.getState(),i=n.size,a=n.viewport.dpr,o=n.camera;return r.subscribe(()=>{let{camera:e,size:t,viewport:n,gl:l,set:s}=r.getState();if(t.width!==i.width||t.height!==i.height||n.dpr!==a){i=t,a=n.dpr,q(e,t),n.dpr>0&&l.setPixelRatio(n.dpr);let r="undefined"!=typeof HTMLCanvasElement&&l.domElement instanceof HTMLCanvasElement;l.setSize(t.width,t.height,r)}e!==o&&(o=e,s(t=>({viewport:{...t.viewport,...t.viewport.getCurrentViewport(e)}})))}),r.subscribe(t=>e(t)),r})(ek,eF),c=i||ew.createContainer(l,u.ConcurrentRoot,null,!1,null,"",o,o,o,null);n||ex.set(e,{fiber:c,store:l});let f=!1,p=null;return{async configure(n={}){var i,a;let o;p=new Promise(e=>o=e);let{gl:s,size:c,scene:u,events:h,onCreated:v,shadows:m=!1,linear:g=!1,flat:y=!1,legacy:b=!1,orthographic:w=!1,frameloop:x="always",dpr:E=[1,2],performance:M,raycaster:S,camera:_,onPointerMissed:C}=n,A=l.getState(),P=A.gl;if(!A.gl){let t={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},r="function"==typeof s?await s(t):s;P=Z(r)?r:new d.WebGLRenderer({...t,...s}),A.set({gl:P})}let T=A.raycaster;T||A.set({raycaster:T=new d.Raycaster});let{params:j,...O}=S||{};if(D.equ(O,T,eE)||W(T,{...O}),D.equ(j,T.params,eE)||W(T,{params:{...T.params,...j}}),!A.camera||A.camera===r&&!D.equ(r,_,eE)){r=_;
1let e=null==_?void 0:_.isCamera,t=e?_:w?new d.OrthographicCamera(0,0,0,0,.1,1e3):new d.PerspectiveCamera(75,0,.1,1e3);!e&&(t.position.z=5,_&&(W(t,_),!t.manual&&("aspect"in _||"left"in _||"right"in _||"bottom"in _||"top"in _)&&(t.manual=!0,t.updateProjectionMatrix())),A.camera||null!=_&&_.rotation||t.lookAt(0,0,0)),A.set({camera:t}),T.camera=t}if(!A.scene){let e;null!=u&&u.isScene?L(e=u,l,"",{}):(L(e=new d.Scene,l,"",{}),u&&W(e,u)),A.set({scene:e})}h&&!A.events.handlers&&A.set({events:h(l)});let I=function(e,t){if(!t&&"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&e.parentElement){let{width:t,height:r,top:n,left:i}=e.parentElement.getBoundingClientRect();return{width:t,height:r,top:n,left:i}}return!t&&"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas?{width:e.width,height:e.height,top:0,left:0}:{width:0,height:0,top:0,left:0,...t}}(e,c);if(D.equ(I,A.size,eE)||A.setSize(I.width,I.height,I.top,I.left),E&&A.viewport.dpr!==R(E)&&A.setDpr(E),A.frameloop!==x&&A.setFrameloop(x),A.onPointerMissed||A.set({onPointerMissed:C}),M&&!D.equ(M,A.performance,eE)&&A.set(e=>({performance:{...e.performance,...M}})),!A.xr){let e=(e,t)=>{let r=l.getState();"never"!==r.frameloop&&eF(e,!0,r,t)},t=()=>{let t=l.getState();t.gl.xr.enabled=t.gl.xr.isPresenting,t.gl.xr.setAnimationLoop(t.gl.xr.isPresenting?e:null),t.gl.xr.isPresenting||ek(t)},r={connect(){let e=l.getState().gl;e.xr.addEventListener("sessionstart",t),e.xr.addEventListener("sessionend",t)},disconnect(){let e=l.getState().gl;e.xr.removeEventListener("sessionstart",t),e.xr.removeEventListener("sessionend",t)}};"function"==typeof(null==(i=P.xr)?void 0:i.addEventListener)&&r.connect(),A.set({xr:r})}if(P.shadowMap){let e=P.shadowMap.enabled,t=P.shadowMap.type;if(P.shadowMap.enabled=!!m,D.boo(m))P.shadowMap.type=d.PCFSoftShadowMap;else if(D.str(m)){let e={basic:d.BasicShadowMap,percentage:d.PCFShadowMap,soft:d.PCFSoftShadowMap,variance:d.VSMShadowMap};P.shadowMap.type=null!=(a=e[m])?a:d.PCFSoftShadowMap}else D.obj(m)&&Object.assign(P.shadowMap,m);(e!==P.shadowMap.enabled||t!==P.shadowMap.type)&&(P.shadowMap.needsUpdate=!0)}return d.ColorManagement.enabled=!b,f||(P.outputColorSpace=g?d.LinearSRGBColorSpace:d.SRGBColorSpace,P.toneMapping=y?d.NoToneMapping:d.ACESFilmicToneMapping),A.legacy!==b&&A.set(()=>({legacy:b})),A.linear!==g&&A.set(()=>({linear:g})),A.flat!==y&&A.set(()=>({flat:y})),!s||D.fun(s)||Z(s)||D.equ(s,P,eE)||W(P,s),t=v,f=!0,o(),this},render(r){return f||p||this.configure(),p.then(()=>{ew.updateContainer((0,x.jsx)(eS,{store:l,children:r,onCreated:t,rootElement:e}),c,null,()=>void 0)}),l},unmount(){e_(e)}}}function eS({store:e,children:t,onCreated:r,rootElement:n}){return C(()=>{let t=e.getState();t.set(e=>({internal:{...e.internal,active:!0}})),r&&r(t),e.getState().events.connected||null==t.events.connect||t.events.connect(n)},[]),(0,x.jsx)(K.Provider,{value:e,children:t})}function e_(e,t){let r=ex.get(e),n=null==r?void 0:r.fiber;if(n){let i=null==r?void 0:r.store.getState();i&&(i.internal.active=!1),ew.updateContainer(null,n,null,()=>{i&&setTimeout(()=>{try{null==i.events.disconnect||i.events.disconnect(),null==(r=i.gl)||null==(n=r.renderLists)||null==n.dispose||n.dispose(),null==(a=i.gl)||null==a.forceContextLoss||a.forceContextLoss(),null!=(o=i.gl)&&o.xr&&i.xr.disconnect();var r,n,a,o,l=i.scene;for(let e in"Scene"!==l.type&&(null==l.dispose||l.dispose()),l){let t=l[e];(null==t?void 0:t.type)!=="Scene"&&(null==t||null==t.dispose||t.dispose())}ex.delete(e),t&&t(e)}catch(e){}},500)})}}function eC(e,t,r){return(0,x.jsx)(eA,{children:e,container:t,state:r})}function eA({state:e={},children:t,container:r}){let{events:n,size:i,...a}=e,o=Q(),[l]=s.useState(()=>new d.Raycaster),[c]=s.useState(()=>new d.Vector2),u=A((e,t)=>{let a;if(t.camera&&i){let r=t.camera;a=e.viewport.getCurrentViewport(r,new d.Vector3,i),r!==e.camera&&q(r,i)}return{...e,...t,scene:r,raycaster:l,pointer:c,mouse:c,previousRoot:o,events:{...e.events,...t.events,...n},size:{...e.size,...i},viewport:{...e.viewport,...a},setEvents:e=>t.set(t=>({...t,events:{...t.events,...e}}))}}),f=s.useMemo(()=>{let e=m((e,t)=>
1({...a,set:e,get:t})),t=t=>e.setState(e=>u.current(t,e));return t(o.getState()),o.subscribe(t),e},[o,r]);return(0,x.jsx)(x.Fragment,{children:ew.createPortal((0,x.jsx)(K.Provider,{value:f,children:t}),f,null)})}let eP=new Set,eT=new Set,ej=new Set;function eR(e,t){if(e.size)for(let{callback:r}of e.values())r(t)}function eO(e,t){switch(e){case"before":return eR(eP,t);case"after":return eR(eT,t);case"tail":return eR(ej,t)}}function eD(e,t,r){let a=t.clock.getDelta();"never"===t.frameloop&&"number"==typeof e&&(a=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),n=t.internal.subscribers;for(let e=0;e<n.length;e++)(i=n[e]).ref.current(i.store.getState(),a,r);return!t.internal.priority&&t.gl.render&&t.gl.render(t.scene,t.camera),t.internal.frames=Math.max(0,t.internal.frames-1),"always"===t.frameloop?1:t.internal.frames}let eI=!1,eL=!1;function eU(e){for(let r of(o=requestAnimationFrame(eU),eI=!0,a=0,eO("before",e),eL=!0,ex.values())){var t;(l=r.store.getState()).internal.active&&("always"===l.frameloop||l.internal.frames>0)&&!(null!=(t=l.gl.xr)&&t.isPresenting)&&(a+=eD(e,l))}if(eL=!1,eO("after",e),0===a)return eO("tail",e),eI=!1,cancelAnimationFrame(o)}function ek(e,t=1){var r;if(!e)return ex.forEach(e=>ek(e.store.getState(),t));(null==(r=e.gl.xr)||!r.isPresenting)&&e.internal.active&&"never"!==e.frameloop&&(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):eL?e.internal.frames=2:e.internal.frames=1,eI||(eI=!0,requestAnimationFrame(eU)))}function eF(e,t=!0,r,n){if(t&&eO("before",e),r)eD(e,r,n);else for(let t of ex.values())eD(e,t.store.getState());t&&eO("after",e)}let ez={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function eB(e){let{handlePointer:t}=function(e){function t(e){return e.filter(e=>["Move","Over","Enter","Out","Leave"].some(t=>{var r;return null==(r=e.__r3f)?void 0:r.handlers["onPointer"+t]}))}function r(t){let{internal:r}=e.getState();for(let e of r.hovered.values())if(!t.length||!t.find(t=>t.object===e.object&&t.index===e.index&&t.instanceId===e.instanceId)){let n=e.eventObject.__r3f;if(r.hovered.delete(Y(e)),null!=n&&n.eventCount){let r=n.handlers,i={...e,intersections:t};null==r.onPointerOut||r.onPointerOut(i),null==r.onPointerLeave||r.onPointerLeave(i)}}}function n(e,t){for(let r=0;r<t.length;r++){let n=t[r].__r3f;null==n||null==n.handlers.onPointerMissed||n.handlers.onPointerMissed(e)}}return{handlePointer:function(i){switch(i){case"onPointerLeave":case"onPointerCancel":return()=>r([]);case"onLostPointerCapture":return t=>{let{internal:n}=e.getState();"pointerId"in t&&n.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{n.capturedMap.has(t.pointerId)&&(n.capturedMap.delete(t.pointerId),r([]))})}}return function(a){let{onPointerMissed:o,internal:l}=e.getState();l.lastEvent.current=a;let s="onPointerMove"===i,c="onClick"===i||"onContextMenu"===i||"onDoubleClick"===i,u=function(t,r){let n=e.getState(),i=new Set,a=[],o=r?r(n.internal.interaction):n.internal.interaction;for(let e=0;e<o.length;e++){let t=O(o[e]);t&&(t.raycaster.camera=void 0)}n.previousRoot||null==n.events.compute||n.events.compute(t,n);let l=o.flatMap(function(e){let r=O(e);if(!r||!r.events.enabled||null===r.raycaster.camera)return[];if(void 0===r.raycaster.camera){var n;null==r.events.compute||r.events.compute(t,r,null==(n=r.previousRoot)?void 0:n.getState()),void 0===r.raycaster.camera&&(r.raycaster.camera=null)}return r.raycaster.camera?r.raycaster.intersectObject(e,!0):[]}).sort((e,t)=>{let r=O(e.object),n=O(t.object);return r&&n&&n.events.priority-r.events.priority||e.distance-t.distance}).filter(e=>{let t=Y(e);return!i.has(t)&&(i.add(t),!0)});for(let e of(n.events.filter&&(l=n.events.filter(l,n)),l)){let t=e.object;for(;t;){var s;null!=(s=t.__r3f)&&s.eventCount&&a.push({...e,eventObject:t}),t=t.parent}}if("pointerId"in t&&n.internal.capturedMap.has(t.pointerId))for(let e of n.internal.capturedMap.get(t.pointerId).values())i.has(Y(e.intersection))||a.push(e.intersection);return a}(a,s?t:void 0),f=c?function(t){let{internal:r}=e.getState(),n=t.offsetX-r.initialClick[0],i=t.offsetY-r.initialClick[1];return Math.round(Math.sqrt(n*n+i*i))}(a):0;"onPointerDown"===i&&(l.initialClick=[a.offsetX,a.offsetY],l.initialHits=u.map(e=>e.eventObject)),c&&!u.length&&f<=2&&(n(a,l.interaction),o&&o(a)),s&&r(u),!function(e,t,n,i){if(e.length){let a={stopped:!1};for(let o of e){let l=O(o.object);if(l||o.object.traverseAncestors(e=>{let t=O(e);if(t)return l=t,!1}),l){let{raycaster:s,pointer:c,camera:u,internal:f}=l,p=new d.Vector3(c.x,c.y,0).unproject(u),h=e=>{var t,r;return null!=(t=null==(r=f.capturedMap.get(e))?void 0:r.has(o.eventObject))&&t},v=e=>{let r={intersection:o,target:t.target};f.capturedMap.has(e)?f.capturedMap.get(e).set(o.eventObject,r):f.capturedMap.set(e,new Map([[o.eventObject,r]])),t.target.setPointerCapture(e)},m=e=>{let t=f.capturedMap.get(e);t&&X(f.capturedMap,o.eventObject,t,e)},g={};for(let e in t){let r=t[e];"function"!=typeof r&&(g[e]=r)}let y={...o,...g,pointer:c,intersections:e,stopped:a.stopped,delta:n,unprojectedPoint:p,ray:s.ray,camera:u,stopPropagation(){let n="pointerId"in t&&f.capturedMap.get(t.pointerId);(!n||n.has(o.eventObject))&&(y.stopped=a.stopped=!0,f.hovered.size&&Array.from(f.hovered.values()).find(e=>e.eventObject===o.eventObject)&&r([...e.slice(0,e.indexOf(o)),o]))},target:{hasPointerCapture:h,setPointerCapture:v,releasePointerCapture:m},currentTarget:{hasPointerCapture:h,setPointerCapture:v,releasePointerCapture:m},nativeEvent:t};if(i(y),!0===a.stopped)break}}}}(u,a,f,function(e){let t=e.eventObject,r=t.__r3f;if(!(null!=r&&r.eventCount))return;let o=r.handlers;if(s){if(o.onPointerOver||o.onPointerEnter||o.onPointerOut||o.onPointerLeave){let t=Y(e),r=l.hovered.get(t);r?r.stopped&&e.stopPropagation():(l.hovered.set(t,e),null==o.onPointerOver||o.onPointerOver(e),null==o.onPointerEnter||o.onPointerEnter(e))}null==o.onPointerMove||o.onPointerMove(e)}else{let r=o[i];r?(!c||l.initialHits.includes(t))&&(n(a,l.interaction.filter(e=>!l.initialHits.includes(e))),r(e)):c&&l.initialHits.includes(t)&&n(a,l.interaction.filter(e=>!l.initialHits.includes(e)))}})}}}}(e);return{priority:1,enabled:!0,compute(e,t,r){t.pointer.set(e.offsetX/t.size.width*2-1,-(2*(e.offsetY/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)},connected:void 0,handlers:Object.keys(ez).reduce((e,r)=>({...e,[r]:t(r)}),{}),update:()=>{var t;let{events:r,internal:n}=e.getState();null!=(t=n.lastEvent)&&t.current&&r.handlers&&r.handlers.onPointerMove(n.lastEvent.current)},connect:t=>
1{let{set:r,events:n}=e.getState();if(null==n.disconnect||n.disconnect(),r(e=>({events:{...e.events,connected:t}})),n.handlers)for(let e in n.handlers){let r=n.handlers[e],[i,a]=ez[e];t.addEventListener(i,r,{passive:a})}},disconnect:()=>{let{set:t,events:r}=e.getState();if(r.connected){if(r.handlers)for(let e in r.handlers){let t=r.handlers[e],[n]=ez[e];r.connected.removeEventListener(n,t)}t(e=>({events:{...e.events,connected:void 0}}))}}}}},27204:(e,t)=>{t.ConcurrentRoot=1,t.ContinuousEventPriority=8,t.DefaultEventPriority=32,t.DiscreteEventPriority=2},30514:(e,t,r)=>{r.d(t,{E:()=>s});var n=r(88103),i=r(10796),a=r(47074),o=r(26465),l=r(86592);let s=i.forwardRef(({sdfGlyphSize:e=64,anchorX:t="center",anchorY:r="middle",font:s,fontSize:c=1,children:u,characters:d,onSync:f,...p},h)=>{let v=(0,o.C)(({invalidate:e})=>e),[m]=i.useState(()=>new a.EY),[g,y]=i.useMemo(()=>{let e=[],t="";return i.Children.forEach(u,r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)}),[e,t]},[u]);return(0,l.DY)(()=>new Promise(e=>(0,a.PY)({font:s,characters:d}
1,e)),["troika-text",s,d]),i.useLayoutEffect(()=>void m.sync(()=>{v(),f&&f(m)})),i.useEffect(()=>()=>m.dispose(),[m]),i.createElement("primitive",(0,n.A)({object:m,ref:h,font:s,text:y,anchorX:t,anchorY:r,fontSize:c,sdfGlyphSize:e},p),g)})},31069:(e,t,r)=>{r.d(t,{n:()=>o});var n=r(10796),i=r(26465),a=r(41680);let o=n.forwardRef(({children:e,enabled:t=!0,speed:r=1,rotationIntensity:o=1,floatIntensity:l=1,floatingRange:s=[-.1,.1],autoInvalidate:c=!1,...u},d)=>{let f=n.useRef(null);n.useImperativeHandle(d,()=>f.current,[]);let p=n.useRef(1e4*Math.random());return(0,i.D)(e=>{var n,i;if(!t||0===r)return;c&&e.invalidate();let u=p.current+e.clock.elapsedTime;f.current.rotation.x=Math.cos(u/4*r)/8*o,f.current.rotation.y=Math.sin(u/4*r)/8*o,f.current.rotation.z=Math.sin(u/4*r)/20*o;let d=Math.sin(u/4*r)/10;d=a.MathUtils.mapLinear(d,-.1,.1,null!=(n=null==s?void 0:s[0])?n:-.1,null!=(i=null==s?void 0:s[1])?i:.1),f.current.position.y=d*l,f.current.updateMatrix()}),n.createElement("group",u,n.createElement("group",{ref:f,matrixAutoUpdate:!1},e))})},31267:(e,t,r)=>{r.d(t,{Hl:()=>d});var n=r(26465),i=r(10796),a=r(41680);function o(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}let l=["x","y","top","bottom","left","right","width","height"];var s=r(91837),c=r(38144);function u({ref:e,children:t,fallback:r,resize:s,style:u,gl:d,events:f=n.f,eventSource:p,eventPrefix:h,shadows:v,linear:m,flat:g,legacy:y,orthographic:b,frameloop:w,dpr:x,performance:E,raycaster:M,camera:S,scene:_,onPointerMissed:C,onCreated:A,...P}){i.useMemo(()=>(0,n.e)(a),[]);let T=(0,n.u)(),[j,R]=function({debounce:e,scroll:t,polyfill:r,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){var a,s,c;let u=r||("undefined"==typeof window?class{}:window.ResizeObserver);if(!u)throw Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[d,f]=(0,i.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),p=(0,i.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:d,orientationHandler:null}),h=e?"number"==typeof e?e:e.scroll:null,v=e?"number"==typeof e?e:e.resize:null,m=(0,i.useRef)(!1);(0,i.useEffect)(()=>(m.current=!0,()=>void(m.current=!1)));let[g,y,b]=(0,i.useMemo)(()=>{let e=()=>{let e,t;if(!p.current.element)return;let{left:r,top:i,width:a,height:o,bottom:s,right:c,x:u,y:d}=p.current.element.getBoundingClientRect(),h={left:r,top:i,width:a,height:o,bottom:s,right:c,x:u,y:d};p.current.element instanceof HTMLElement&&n&&(h.height=p.current.element.offsetHeight,h.width=p.current.element.offsetWidth),Object.freeze(h),m.current&&(e=p.current.lastBounds,t=h,!l.every(r=>e[r]===t[r]))&&f(p.current.lastBounds=h)};return[e,v?o(e,v):e,h?o(e,h):e]},[f,n,h,v]);function w(){p.current.scrollContainers&&(p.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",b,!0)),p.current.scrollContainers=null),p.current.resizeObserver&&(p.current.resizeObserver.disconnect(),p.current.resizeObserver=null),p.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",p.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",p.current.orientationHandler))}function x(){p.current.element&&(p.current.resizeObserver=new u(b),p.current.resizeObserver.observe(p.current.element),t&&p.current.scrollContainers&&p.current.scrollContainers.forEach(e=>e.addEventListener("scroll",b,{capture:!0,passive:!0})),p.current.orientationHandler=()=>{b()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",p.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",p.current.orientationHandler))}return a=b,s=!!t,(0,i.useEffect)(()=>{if(s)return window.addEventListener("scroll",a,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",a,!0)},[a,s]),c=y,(0,i.useEffect)(()=>(window.addEventListener("resize",c),()=>void window.removeEventListener("resize",c)),[c]),(0,i.useEffect)(()=>{w(),x()},[t,b,y]),(0,i.useEffect)(()=>w,[]),[e=>{e&&e!==p.current.element&&(w(),p.current.element=e,p.current.scrollC
1ontainers=function e(t){let r=[];if(!t||t===document.body)return r;let{overflow:n,overflowX:i,overflowY:a}=window.getComputedStyle(t);return[n,i,a].some(e=>"auto"===e||"scroll"===e)&&r.push(t),[...r,...e(t.parentElement)]}(e),x())},d,g]}({scroll:!0,debounce:{scroll:50,resize:0},...s}),O=i.useRef(null),D=i.useRef(null);i.useImperativeHandle(e,()=>O.current);let I=(0,n.a)(C),[L,U]=i.useState(!1),[k,F]=i.useState(!1);if(L)throw L;if(k)throw k;let z=i.useRef(null);(0,n.b)(()=>{let e=O.current;R.width>0&&R.height>0&&e&&(z.current||(z.current=(0,n.c)(e)),async function(){await z.current.configure({gl:d,scene:_,events:f,shadows:v,linear:m,flat:g,legacy:y,orthographic:b,frameloop:w,dpr:x,performance:E,raycaster:M,camera:S,size:R,onPointerMissed:(...e)=>null==I.current?void 0:I.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(p?(0,n.i)(p)?p.current:p:D.current),h&&e.setEvents({compute:(e,t)=>{let r=e[h+"X"],n=e[h+"Y"];t.pointer.set(r/t.size.width*2-1,-(2*(n/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==A||A(e)}}),z.current.render((0,c.jsx)(T,{children:(0,c.jsx)(n.E,{set:F,children:(0,c.jsx)(i.Suspense,{fallback:(0,c.jsx)(n.B,{set:U}),children:null!=t?t:null})})}))}())}),i.useEffect(()=>{let e=O.current;if(e)return()=>(0,n.d)(e)},[]);let B=p?"none":"auto";return(0,c.jsx)("div",{ref:D,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:B,...u},...P,children:(0,c.jsx)("div",{ref:j,style:{width:"100%",height:"100%"},children:(0,c.jsx)("canvas",{ref:O,style:{display:"block"},children:r})})})}function d(e){return(0,c.jsx)(s.Af,{children:(0,c.jsx)(u,{...e})})}r(66493),r(45940),r(88434)},37179:(e,t)=>{function r(e,t){var r=e.length;for(e.push(t);0<r;){var n=r-1>>>1,i=e[n];if(0<a(i,t))e[n]=t,e[r]=i,r=n;else break}}function n(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],r=e.pop();if(r!==t){e[0]=r;for(var n=0,i=e.length,o=i>>>1;n<o;){var l=2*(n+1)-1,s=e[l],c=l+1,u=e[c];if(0>a(s,r))c<i&&0>a(u,s)?(e[n]=u,e[c]=r,n=c):(e[n]=s,e[l]=r,n=l);else if(c<i&&0>a(u,r))e[n]=u,e[c]=r,n=c;else break}}return t}function a(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}var u=[],d=[],f=1,p=null,h=3,v=!1,m=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=n(d);null!==t;){if(null===t.callback)i(d);else if(t.startTime<=e)i(d),t.sortIndex=t.expirationTime,r(u,t);else break;t=n(d)}}function E(e){if(g=!1,x(e),!m)if(null!==n(u))m=!0,R();else{var t=n(d);null!==t&&O(E,t.startTime-e)}}var M=!1,S=-1,_=5,C=-1;function A(){return!(t.unstable_now()-C<_)}function P(){if(M){var e=t.unstable_now();C=e;var r=!0;try{e:{m=!1,g&&(g=!1,b(S),S=-1),v=!0;var a=h;try{t:{for(x(e),p=n(u);null!==p&&!(p.expirationTime>e&&A());){var l=p.callback;if("function"==typeof l){p.callback=null,h=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,x(e),r=!0;break t}p===n(u)&&i(u),x(e)}else i(u);p=n(u)}if(null!==p)r=!0;else{var c=n(d);null!==c&&O(E,c.startTime-e),r=!1}}break e}finally{p=null,h=a,v=!1}}}finally{r?o():M=!1}}}if("function"==typeof w)o=function(){w(P)};else if("undefined"!=typeof MessageChannel){var T=new MessageChannel,j=T.port2;T.port1.onmessage=P,o=function(){j.postMessage(null)}}else o=function(){y(P,0)};function R(){M||(M=!0,o())}function O(e,r){S=y(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||v||(m=!0,R())},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_getFirstCallbackNode=function(){return n(u)},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}
1var r=h;h=t;try{return e()}finally{h=r}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=h;h=e;try{return t()}finally{h=r}},t.unstable_scheduleCallback=function(e,i,a){var o=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?o+a:o,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=0x3fffffff;break;case 4:l=1e4;break;default:l=5e3}return l=a+l,e={id:f++,callback:i,priorityLevel:e,startTime:a,expirationTime:l,sortIndex:-1},a>o?(e.sortIndex=a,r(d,e),null===n(u)&&e===n(d)&&(g?(b(S),S=-1):g=!0,O(E,a-o))):(e.sortIndex=l,r(u,e),m||v||(m=!0,R())),e},t.unstable_shouldYield=A,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},39459:(e,t,r)=>{r.d(t,{A:()=>n});function n(e,t,r,n,i){var a,o,l=e.children,s=l.length,c=Array(s+1);for(c[0]=o=a=0;a<s;++a)c[a+1]=o+=l[a].value;!function e(t,r,n,i,a,o,s){if(t>=r-1){var u=l[t];u.x0=i,u.y0=a,u.x1=o,u.y1=s;return}for(var d=c[t],f=n/2+d,p=t+1,h=r-1;p<h;){var v=p+h>>>1;c[v]<f?p=v+1:h=v}f-c[p-1]<c[p]-f&&t+1<p&&--p;var m=c[p]-d,g=n-m;if(o-i>s-a){var y=n?(i*g+o*m)/n:o;e(t,p,m,i,a,y,s),e(p,r,g,y,a,o,s)}else{var b=n?(a*g+s*m)/n:s;e(t,p,m,i,a,o,b),e(p,r,g,i,b,o,s)}}(0,s,e.value,t,r,n,i)}},40731:(e,t,r)=>{r.d(t,{A:()=>n});let n=function(){return function(e){var t,r,n,i,a={R:"13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73",EN:"1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9",ES:"17,2,6dp+1,f+1,av,16vr,mx+1,4o,2",ET:"z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj",AN:"16o+5,2j+9,2+1,35,ed,1ff2+9,87+u",CS:"18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b",B:"a,3,f+2,2v,690",S:"9,2,k",WS:"c,k,4f4,1vk+a,u,1j,335",ON:"x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i",BN:"0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1",NSM:"lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n",AL:"16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d",LRO:"6ct",RLO:"6cu",LRE:"6cq",RLE:"6cr",PDF:"6cs",LRI:"6ee",RLI:"6ef",FSI:"6eg",PDI:"6eh"},o={},l={};
1o.L=1,l[1]="L",Object.keys(a).forEach(function(e,t){o[e]=1<<t+1,l[o[e]]=e}),Object.freeze(o);var s=o.LRI|o.RLI|o.FSI,c=o.L|o.R|o.AL,u=o.B|o.S|o.WS|o.ON|o.FSI|o.LRI|o.RLI|o.PDI,d=o.BN|o.RLE|o.LRE|o.RLO|o.LRO|o.PDF,f=o.S|o.WS|o.B|s|o.PDI|d,p=null;function h(e){if(!p){p=new Map;var t=function(e){if(a.hasOwnProperty(e)){var t=0;a[e].split(",").forEach(function(r){var n=r.split("+"),i=n[0],a=n[1];i=parseInt(i,36),a=a?parseInt(a,36):0,p.set(t+=i,o[e]);for(var l=0;l<a;l++)p.set(++t,o[e])})}};for(var r in a)t(r)}return p.get(e.codePointAt(0))||o.L}function v(e,t){var r,n=0,i=new Map,a=t&&new Map;return e.split(",").forEach(function e(o){if(-1!==o.indexOf("+"))for(var l=+o;l--;)e(r);else{r=o;var s=o.split(">"),c=s[0],u=s[1];c=String.fromCodePoint(n+=parseInt(c,36)),u=String.fromCodePoint(n+=parseInt(u,36)),i.set(c,u),t&&a.set(u,c)}}),{map:i,reverseMap:a}}function m(){if(!t){var e=v("14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",!0),i=e.map,a=e.reverseMap;t=i,r=a,n=v("6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye",!1).map}}function g(e){return m(),t.get(e)||null}function y(e){return m(),r.get(e)||null}function b(e){return m(),n.get(e)||null}var w=o.L,x=o.R,E=o.EN,M=o.ES,S=o.ET,_=o.AN,C=o.CS,A=o.B,P=o.S,T=o.ON,j=o.BN,R=o.NSM,O=o.AL,D=o.LRO,I=o.RLO,L=o.LRE,U=o.RLE,k=o.PDF,F=o.LRI,z=o.RLI,B=o.FSI,N=o.PDI;function H(e){if(!i){var t=v("14>1,j>2,t>2,u>2,1a>g,2v3>
11,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1",!0),r=t.map;t.reverseMap.forEach(function(e,t){r.set(t,e)}),i=r}return i.get(e)||null}function V(e,t,r,n){var i=e.length;r=Math.max(0,null==r?0:+r),n=Math.min(i-1,null==n?i-1:+n);var a=[];return t.paragraphs.forEach(function(i){var o=Math.max(r,i.start),l=Math.min(n,i.end);if(o<l){for(var s=t.levels.slice(o,l+1),c=l;c>=o&&h(e[c])&f;c--)s[c]=i.level;for(var u=i.level,d=1/0,p=0;p<s.length;p++){var v=s[p];v>u&&(u=v),v<d&&(d=1|v)}for(var m=u;m>=d;m--)for(var g=0;g<s.length;g++)if(s[g]>=m){for(var y=g;g+1<s.length&&s[g+1]>=m;)g++;g>y&&a.push([y+o,g+o])}}}),a}function W(e,t,r,n){for(var i=V(e,t,r,n),a=[],o=0;o<e.length;o++)a[o]=o;return i.forEach(function(e){for(var t=e[0],r=e[1],n=a.slice(t,r+1),i=n.length;i--;)a[r-i]=n[i]}),a}return e.closingToOpeningBracket=y,e.getBidiCharType=h,e.getBidiCharTypeName=function(e){return l[h(e)]},e.getCanonicalBracket=b,e.getEmbeddingLevels=function(e,t){for(var r=new Uint32Array(e.length),n=0;n<e.length;n++)r[n]=h(e[n]);var i=new Map;function a(e,t){var n=r[e];r[e]=t,i.set(n,i.get(n)-1),n&u&&i.set(u,i.get(u)-1),i.set(t,(i.get(t)||0)+1),t&u&&i.set(u,(i.get(u)||0)+1)}for(var o=new Uint8Array(e.length),l=new Map,p=[],v=null,m=0;m<e.length;m++)v||p.push(v={start:m,end:e.length-1,level:"rtl"===t?1:"ltr"===t?0:tj(m,!1)}),r[m]&A&&(v.end=m,v=null);for(var H=U|L|I|D|s|N|k|A,V=function(e){return e+(1&e?1:2)},W=function(e){return e+(1&e?2:1)},G=0;G<p.length;G++){var q=[{_level:(v=p[G]).level,_override:0,_isolate:0}],$=void 0,Y=0,X=0,Z=0;i.clear();for(var K=v.start;K<=v.end;K++){var Q=r[K];if($=q[q.length-1],i.set(Q,(i.get(Q)||0)+1),Q&u&&i.set(u,(i.get(u)||0)+1),Q&H)if(Q&(U|L)){o[K]=$._level;var J=(Q===U?W:V)($._level);!(J<=125)||Y||X?!Y&&X++:q.push({_level:J,_override:0,_isolate:0})}else if(Q&(I|D)){o[K]=$._level;var ee=(Q===I?W:V)($._level);!(ee<=125)||Y||X?!Y&&X++:q.push({_level:ee,_override:Q&I?x:w,_isolate:0})}else if(Q&s){Q&B&&(Q=1===tj(K+1,!0)?z:F),o[K]=$._level,$._override&&a(K,$._override);var et=(Q===z?W:V)($._level);et<=125&&0===Y&&0===X?(Z++,q.push({_level:et,_override:0,_isolate:1,_isolInitIndex:K})):Y++}else if(Q&N){if(Y>0)Y--;else if(Z>0){for(X=0;!q[q.length-1]._isolate;)q.pop();var er=q[q.length-1]._isolInitIndex;null!=er&&(l.set(er,K),l.set(K,er)),q.pop(),Z--}$=q[q.length-1],o[K]=$._level,$._override&&a(K,$._override)}else Q&k?(0===Y&&(X>0?X--:!$._isolate&&q.length>1&&(q.pop(),$=q[q.length-1])),o[K]=$._level):Q&A&&(o[K]=v.level);else o[K]=$._level,$._override&&Q!==j&&a(K,$._override)}for(var en=[],ei=null,ea=v.start;ea<=v.end;ea++){var eo=r[ea];if(!(eo&d)){var el=o[ea],es=eo&s,ec=eo===N;ei&&el===ei._level?(ei._end=ea,ei._endsWithIsolInit=es):en.push(ei={_start:ea,_end:ea,_level:el,_startsWithPDI:ec,_endsWithIsolInit:es})}}for(var eu=[],ed=0;ed<en.length;ed++){var ef=en[ed];if(!ef._startsWithPDI||ef._startsWithPDI&&!l.has(ef._start)){for(var ep=[ei=ef],eh=void 0;ei&&ei._endsWithIsolInit&&null!=(eh=l.get(ei._end));)for(var ev=ed+1;ev<en.length;ev++)if(en[ev]._start===eh){ep.push(ei=en[ev]);break}for(var em=[],eg=0;eg<ep.length;eg++)for(var ey=ep[eg],eb=ey._start;eb<=ey._end;eb++)em.push(eb);for(var ew=o[em[0]],ex=v.level,eE=em[0]-1;eE>=0;eE--)if(!(r[eE]&d)){ex=o[eE];break}var eM=em[em.length-1],eS=o[eM],e_=v.level;if(!(r[eM]&s)){for(var eC=eM+1;eC<=v.end;eC++)if(!(r[eC]&d)){e_=o[eC];break}}eu.push({_seqIndices:em,_sosType:Math.max(ex,ew)%2?x:w,_eosType:Math.max(e_,eS)%2?x:w})}}for(var eA=0;eA<eu.length;eA++){var eP=eu[eA],eT=eP._seqIndices,ej=eP._sosType,eR=eP._eosType,eO=1&o[eT[0]]?x:w;if(i.get(R))for(var eD=0;eD<eT.length;eD++){var eI=eT[eD];if(r[eI]&R){for(var eL=ej,eU=eD-1;eU>=0;eU--)if(!(r[eT[eU]]&d)){eL=r[eT[eU]];break}a(eI,eL&(s|N)?T:eL)}}if(i.get(E))for(var ek=0;ek<eT.length;ek++){var eF=eT[ek];if(r[eF]&E)for(var ez=ek-1;ez>=-1;ez--){var eB=-1===ez?ej:r[eT[ez]];if(eB&c){eB===O&&a(eF,_);break}}}if(i.get(O))for(var eN=0;eN<eT.length;eN++){var eH=eT[eN];r[eH]&O&&a(eH,x)}if(i.get(M)||i.get(C))for(var eV=1;eV<eT.length-1;eV++){var eW=eT[eV];if(r[eW]&(M|C)){for(var eG=0,eq=0,e$=eV-1;e$>=0&&(eG=r[eT[e$]])&d;e$--);for(var eY=eV+1;eY<eT.length&&(eq=r[eT[eY]])&d;eY++);eG===eq&&(r[eW]===M?eG===E:eG&(E|_))&&a(eW,eG)}}if(i.get(E)){for(var eX=0;eX<eT.length;eX++)if(r[eT[eX]]&E){for(var eZ=eX-1;eZ>=0&&r[eT[eZ]]&(S|d);eZ--)a(eT[eZ],E);for(eX++;eX<eT.length&&r[eT[eX]]&(S|d|E);eX++)r[eT[eX]]!==E&&a(eT[eX],E)}}if(i.get(S)||i.get(M)||i.get(C))for(var eK=0;eK<eT.length;eK++){var eQ=eT[eK];if(r[eQ]&(S|M|C)){a(eQ,T);for(var eJ=eK-1;eJ>=0&&r[eT[eJ]]&d;eJ--)a(eT[eJ],T);for(var e1=eK+1;e1<eT.length&&r[eT[e1]]&d;e1++)a(eT[e1],T)}}if(i.get(E))for(var e0=0,e2=ej;e0<eT.length;e0++){var e3=eT[e0],e4=r[e3];e4&E?e2===w&&a(e3,w):e4&c&&(e2=e4)}if(i.get(u)){for(var e5=x|E|_,e6=e5|w,e8=[],e7=[],e9=0;e9<eT.length;e9++)if(r[eT[e9]]&u){var te=e[eT[e9]],tt=void 0;
1if(null!==g(te))if(e7.length<63)e7.push({char:te,seqIndex:e9});else break;else if(null!==(tt=y(te)))for(var tr=e7.length-1;tr>=0;tr--){var tn=e7[tr].char;if(tn===tt||tn===y(b(te))||g(b(tn))===te){e8.push([e7[tr].seqIndex,e9]),e7.length=tr;break}}}e8.sort(function(e,t){return e[0]-t[0]});for(var ti=0;ti<e8.length;ti++){for(var ta=e8[ti],to=ta[0],tl=ta[1],ts=!1,tc=0,tu=to+1;tu<tl;tu++){var td=eT[tu];if(r[td]&e6){ts=!0;var tf=r[td]&e5?x:w;if(tf===eO){tc=tf;break}}}if(ts&&!tc){tc=ej;for(var tp=to-1;tp>=0;tp--){var th=eT[tp];if(r[th]&e6){var tv=r[th]&e5?x:w;tc=tv!==eO?tv:eO;break}}}if(tc){if(r[eT[to]]=r[eT[tl]]=tc,tc!==eO){for(var tm=to+1;tm<eT.length;tm++)if(!(r[eT[tm]]&d)){h(e[eT[tm]])&R&&(r[eT[tm]]=tc);break}}if(tc!==eO){for(var tg=tl+1;tg<eT.length;tg++)if(!(r[eT[tg]]&d)){h(e[eT[tg]])&R&&(r[eT[tg]]=tc);break}}}}for(var ty=0;ty<eT.length;ty++)if(r[eT[ty]]&u){for(var tb=ty,tw=ty,tx=ej,tE=ty-1;tE>=0;tE--)if(r[eT[tE]]&d)tb=tE;else{tx=r[eT[tE]]&e5?x:w;break}for(var tM=eR,tS=ty+1;tS<eT.length;tS++)if(r[eT[tS]]&(u|d))tw=tS;else{tM=r[eT[tS]]&e5?x:w;break}for(var t_=tb;t_<=tw;t_++)r[eT[t_]]=tx===tM?tx:eO;ty=tw}}}for(var tC=v.start;tC<=v.end;tC++){var tA=o[tC],tP=r[tC];if(1&tA?tP&(w|E|_)&&o[tC]++:tP&x?o[tC]++:tP&(_|E)&&(o[tC]+=2),tP&d&&(o[tC]=0===tC?v.level:o[tC-1]),tC===v.end||h(e[tC])&(P|A))for(var tT=tC;tT>=0&&h(e[tT])&f;tT--)o[tT]=v.level}}return{levels:o,paragraphs:p};function tj(t,n){for(var i=t;i<e.length;i++){var a=r[i];if(a&(x|O))return 1;if(a&(A|w)||n&&a===N)break;if(a&s){var o=function(t){for(var n=1,i=t+1;i<e.length;i++){var a=r[i];if(a&A)break;if(a&N){if(0==--n)return i}else a&s&&n++}return -1}(i);i=-1===o?e.length:o}}return 0}},e.getMirroredCharacter=H,e.getMirroredCharactersMap=function(e,t,r,n){var i=e.length;r=Math.max(0,null==r?0:+r),n=Math.min(i-1,null==n?i-1:+n);for(var a=new Map,o=r;o<=n;o++)if(1&t[o]){var l=H(e[o]);null!==l&&a.set(o,l)}return a},e.getReorderSegments=V,e.getReorderedIndices=W,e.getReorderedString=function(e,t,r,n){var i=W(e,t,r,n),a=[].concat(e);return i.forEach(function(r,n){a[n]=(1&t.levels[r]?H(e[r]):null)||e[r]}),a.join("")},e.openingToClosingBracket=g,Object.defineProperty(e,"__esModule",{value:!0}),e}({})}},45940:(e,t,r)=>{e.exports=r(16684)},50129:(e,t,r)=>{let n;r.d(t,{OH:()=>eg});var i=r(88103),a=r(10796),o=r(26465),l=r(41680),s=r(24611);class c extends l.Mesh{constructor(e,t){var r,n;let i=(e=>e&&e.isCubeTexture)(e),a=Math.floor(Math.log2((null!=(n=i?null==(r=e.image[0])?void 0:r.width:e.image.width)?n:1024)/4)),o=Math.pow(2,a),c=3*Math.max(o,112),u=`
2        varying vec3 vWorldPosition;
3        void main() 
4        {
5            vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) );
6            vWorldPosition = worldPosition.xyz;
7            
8            gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
9        }
10        `,d=[i?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/c}`,`#define CUBEUV_TEXEL_HEIGHT ${1/(4*o)}`,`#define CUBEUV_MAX_MIP ${a}.0`].join("\n")+`
11        #define ENVMAP_TYPE_CUBE_UV
12        varying vec3 vWorldPosition;
13        uniform float radius;
14        uniform float height;
15        uniform float angle;
16        #ifdef ENVMAP_TYPE_CUBE
17            uniform samplerCube map;
18        #else
19            uniform sampler2D map;
20        #endif
21        // From: https://www.shadertoy.com/view/4tsBD7
22        float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) 
23        {
24            float d = dot ( rd, n );
25            
26            if( d > 0.0 ) { return 1e6; }
27            
28            vec3  o = ro - c;
29            float t = - dot( n, o ) / d;
30            vec3  q = o + rd * t;
31            
32            return ( dot( q, q ) < r * r ) ? t : 1e6;
33        }
34        // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm
35        float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) 
36        {
37            vec3 oc = ro - ce;
38            float b = dot( oc, rd );
39            float c = dot( oc, oc ) - ra * ra;
40            float h = b * b - c;
41            
42            if( h < 0.0 ) { return -1.0; }
43            
44            h = sqrt( h );
45            
46            return - b + h;
47        }
48        vec3 project() 
49        {
50            vec3 p = normalize( vWorldPosition );
51            vec3 camPos = cameraPosition;
52            camPos.y -= height;
53            float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius );
54            if( intersection > 0.0 ) {
55                
56                vec3 h = vec3( 0.0, - height, 0.0 );
57                float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius );
58                p = ( camPos + min( intersection, intersection2 ) * p ) / radius;
59            } else {
60                p = vec3( 0.0, 1.0, 0.0 );
61            }
62            return p;
63        }
64        #include <common>
65        #include <cube_uv_reflection_fragment>
66        void main() 
67        {
68            vec3 projectedWorldPosition = project();
69            
70            #ifdef ENVMAP_TYPE_CUBE
71                vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb;
72            #else
73                vec3 direction = normalize( projectedWorldPosition );
74                vec2 uv = equirectUv( direction );
75                vec3 outcolor = texture2D( map, uv ).rgb;
76            #endif
77            gl_FragColor = vec4( outcolor, 1.0 );
78            #include <tonemapping_fragment>
79            #include <${s.r>
79=154?"colorspace_fragment":"encodings_fragment"}>
80        }
81        `,f={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new l.IcosahedronGeometry(1,16),new l.ShaderMaterial({uniforms:f,fragmentShader:d,vertexShader:u,side:l.DoubleSide}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}class u extends l.DataTextureLoader{constructor(e){super(e),this.type=l.HalfFloatType}parse(e){let t,r,n,i=function(e,t){switch(e){case 1:throw Error("THREE.RGBELoader: Read Error: "+(t||""));case 2:throw Error("THREE.RGBELoader: Write Error: "+(t||""));case 3:throw Error("THREE.RGBELoader: Bad File Format: "+(t||""));default:throw Error("THREE.RGBELoader: Memory Error: "+(t||""))}},a=function(e,t,r){t=t||1024;let n=e.pos,i=-1,a=0,o="",l=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(i=l.indexOf("\n"))&&a<t&&n<e.byteLength;)o+=l,a+=l.length,n+=128,l+=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));return -1<i&&(!1!==r&&(e.pos+=a+i+1),o+l.slice(0,i))},o=new Uint8Array(e);o.pos=0;let s=function(e){let t,r,n=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,o=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,l=/^\s*FORMAT=(\S+)\s*$/,s=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,c={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};for(!(e.pos>=e.byteLength)&&(t=a(e))||i(1,"no header found"),(r=t.match(/^#\?(\S+)/))||i(3,"bad initial token"),c.valid|=1,c.programtype=r[1],c.string+=t+"\n";!1!==(t=a(e));){if(c.string+=t+"\n","#"===t.charAt(0)){c.comments+=t+"\n";continue}if((r=t.match(n))&&(c.gamma=parseFloat(r[1])),(r=t.match(o))&&(c.exposure=parseFloat(r[1])),(r=t.match(l))&&(c.valid|=2,c.format=r[1]),(r=t.match(s))&&(c.valid|=4,c.height=parseInt(r[1],10),c.width=parseInt(r[2],10)),2&c.valid&&4&c.valid)break}return 2&c.valid||i(3,"missing format specifier"),4&c.valid||i(3,"missing image size specifier"),c}(o),c=s.width,u=s.height,d=function(e,t,r){if(t<8||t>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);t!==(e[2]<<8|e[3])&&i(3,"wrong scanline width");let n=new Uint8Array(4*t*r);n.length||i(4,"unable to allocate buffer space");let a=0,o=0,l=4*t,s=new Uint8Array(4),c=new Uint8Array(l),u=r;for(;u>0&&o<e.byteLength;){o+4>e.byteLength&&i(1),s[0]=e[o++],s[1]=e[o++],s[2]=e[o++],s[3]=e[o++],(2!=s[0]||2!=s[1]||(s[2]<<8|s[3])!=t)&&i(3,"bad rgbe scanline format");let r=0,d;for(;r<l&&o<e.byteLength;){let t=(d=e[o++])>128;if(t&&(d-=128),(0===d||r+d>l)&&i(3,"bad scanline data"),t){let t=e[o++];for(let e=0;e<d;e++)c[r++]=t}else c.set(e.subarray(o,o+d),r),r+=d,o+=d}for(let e=0;e<t;e++){let r=0;n[a]=c[e+r],r+=t,n[a+1]=c[e+r],r+=t,n[a+2]=c[e+r],r+=t,n[a+3]=c[e+r],a+=4}u--}return n}(o.subarray(o.pos),c,u);switch(this.type){case l.FloatType:let f=new Float32Array(4*(n=d.length/4));for(let e=0;e<n;e++)!function(e,t,r,n){let i=Math.pow(2,e[t+3]-128)/255;r[n+0]=e[t+0]*i,r[n+1]=e[t+1]*i,r[n+2]=e[t+2]*i,r[n+3]=1}(d,4*e,f,4*e);t=f,r=l.FloatType;break;case l.HalfFloatType:let p=new Uint16Array(4*(n=d.length/4));for(let e=0;e<n;e++)!function(e,t,r,n){let i=Math.pow(2,e[t+3]-128)/255;r[n+0]=l.DataUtils.toHalfFloat(Math.min(e[t+0]*i,65504)),r[n+1]=l.DataUtils.toHalfFloat(Math.min(e[t+1]*i,65504)),r[n+2]=l.DataUtils.toHalfFloat(Math.min(e[t+2]*i,65504)),r[n+3]=l.DataUtils.toHalfFloat(1)}(d,4*e,p,4*e);t=p,r=l.HalfFloatType;break;default:throw Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:c,height:u,data:t,header:s.string,gamma:s.gamma,exposure:s.exposure,type:r}}setDataType(e){return this.type=e,this}load(e,t,r,n){return super.load(e,function(e,r){switch(e.type){case l.FloatType:case l.HalfFloatType:"colorSpace"in e?e.colorSpace="srgb-linear":e.encoding=3e3,e.minFilter=l.LinearFilter,e.magFilter=l.LinearFilter,e.generateMipmaps=!1,e.flipY=!0}t&&t(e,r)},r,n)}}var d=Uint8Array,f=Uint16Array,p=Uint32Array,h=new d([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),v=new d([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),m=new d([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),g=function(e,t){for(var r=new f(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var i=new p(r[30]),n=1;n<30;++n)for(var a=r[n];a<r[n+1];++a)i[a]=a-r[n]<<5|n;return[r,i]},y=g(h,2),b=y[0],w=y[1];b[28]=258,w[258]=28;var x=g(v,0),E=x[0];x[1];for(var M=new f(32768),S=0;S<32768;++S){var _=(43690&S)>>>
811|(21845&S)<<1;_=(61680&(_=(52428&_)>>>2|(13107&_)<<2))>>>4|(3855&_)<<4,M[S]=((65280&_)>>>8|(255&_)<<8)>>>1}for(var C=function(e,t,r){for(var n,i=e.length,a=0,o=new f(t);a<i;++a)++o[e[a]-1];var l=new f(t);for(a=0;a<t;++a)l[a]=l[a-1]+o[a-1]<<1;if(r){n=new f(1<<t);var s=15-t;for(a=0;a<i;++a)if(e[a])for(var c=a<<4|e[a],u=t-e[a],d=l[e[a]-1]++<<u,p=d|(1<<u)-1;d<=p;++d)n[M[d]>>>s]=c}else for(a=0,n=new f(i);a<i;++a)e[a]&&(n[a]=M[l[e[a]-1]++]>>>15-e[a]);return n},A=new d(288),S=0;S<144;++S)A[S]=8;for(var S=144;S<256;++S)A[S]=9;for(var S=256;S<280;++S)A[S]=7;for(var S=280;S<288;++S)A[S]=8;for(var P=new d(32),S=0;S<32;++S)P[S]=5;var T=C(A,9,1),j=C(P,5,1),R=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},O=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},D=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},I=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof f?f:e instanceof p?p:d)(r-t);return n.set(e.subarray(t,r)),n},L=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new d(0);var i=!t||r,a=!r||r.i;r||(r={}),t||(t=new d(3*n));var o=function(e){var r=t.length;if(e>r){var n=new d(Math.max(2*r,e));n.set(t),t=n}},l=r.f||0,s=r.p||0,c=r.b||0,u=r.l,f=r.d,p=r.m,g=r.n,y=8*n;do{if(!u){r.f=l=O(e,s,1);var w=O(e,s+1,3);if(s+=3,w)if(1==w)u=T,f=j,p=9,g=5;else if(2==w){var x=O(e,s,31)+257,M=O(e,s+10,15)+4,S=x+O(e,s+5,31)+1;s+=14;for(var _=new d(S),A=new d(19),P=0;P<M;++P)A[m[P]]=O(e,s+3*P,7);s+=3*M;for(var L=R(A),U=(1<<L)-1,k=C(A,L,1),P=0;P<S;){var F=k[O(e,s,U)];s+=15&F;var z=F>>>4;if(z<16)_[P++]=z;else{var B=0,N=0;for(16==z?(N=3+O(e,s,3),s+=2,B=_[P-1]):17==z?(N=3+O(e,s,7),s+=3):18==z&&(N=11+O(e,s,127),s+=7);N--;)_[P++]=B}}var H=_.subarray(0,x),V=_.subarray(x);p=R(H),g=R(V),u=C(H,p,1),f=C(V,g,1)}else throw"invalid block type";else{var W,z=((W=s)/8|0)+(7&W&&1)+4,G=e[z-4]|e[z-3]<<8,q=z+G;if(q>n){if(a)throw"unexpected EOF";break}i&&o(c+G),t.set(e.subarray(z,q),c),r.b=c+=G,r.p=s=8*q;continue}if(s>y){if(a)throw"unexpected EOF";break}}i&&o(c+131072);for(var $=(1<<p)-1,Y=(1<<g)-1,X=s;;X=s){var B=u[D(e,s)&$],Z=B>>>4;if((s+=15&B)>y){if(a)throw"unexpected EOF";break}if(!B)throw"invalid length/literal";if(Z<256)t[c++]=Z;else if(256==Z){X=s,u=null;break}else{var K=Z-254;if(Z>264){var P=Z-257,Q=h[P];K=O(e,s,(1<<Q)-1)+b[P],s+=Q}var J=f[D(e,s)&Y],ee=J>>>4;if(!J)throw"invalid distance";s+=15&J;var V=E[ee];if(ee>3){var Q=v[ee];V+=D(e,s)&(1<<Q)-1,s+=Q}if(s>y){if(a)throw"unexpected EOF";break}i&&o(c+131072);for(var et=c+K;c<et;c+=4)t[c]=t[c-V],t[c+1]=t[c+1-V],t[c+2]=t[c+2-V],t[c+3]=t[c+3-V];c=et}}r.l=u,r.p=X,r.b=c,u&&(l=1,r.m=p,r.d=f,r.n=g)}while(!l);return c==t.length?t:I(t,0,c)},U=new d(0),k=function(e){if((15&e[0])!=8||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function F(e,t){return L((k(e),e.subarray(2,-4)),t)}var z="undefined"!=typeof TextDecoder&&new TextDecoder;try{z.decode(U,{stream:!0})}catch(e){}let B=s.r>=152;class N extends l.DataTextureLoader{constructor(e){super(e),this.type=l.HalfFloatType}parse(e){let t={l:0,c:0,lc:0};function r(e,r,n,i,a){for(;n<e;)r=r<<8|C(i,a),n+=8;t.l=r>>(n-=e)&(1<<e)-1,t.c=r,t.lc=n}let n=Array(59),i={c:0,lc:0};function a(e,t,r,n){e=e<<8|C(r,n),t+=8,i.c=e,i.lc=t}let o={c:0,lc:0};function s(e,t,r,n,l,s,c,u,d,f){if(e==t){n<8&&(a(r,n,l,c),r=i.c,n=i.lc);var p=r>>(n-=8),p=new Uint8Array([p])[0];if(d.value+p>f)return!1;for(var h=u[d.value-1];p-- >0;)u[d.value++]=h}else{if(!(d.value<f))return!1;u[d.value++]=e}o.c=r,o.lc=n}function c(e){var t=65535&e;return t>32767?t-65536:t}let u={a:0,b:0};function d(e,t){var r=c(e),n=c(t),i=r+(1&n)+(n>>1),a=i-n;u.a=i,u.b=a}function f(e,t){var r=65535&t,n=(65535&e)-(r>>1)&65535;u.a=r+n-32768&65535,u.b=n}function p(e,l,c,u,d,f){var p=c.value,h=_(l,c),v=_(l,c);c.value+=4;var m=_(l,c);if(c.value+=4,h<0||h>=65537||v<0||v>=65537)throw"Something wrong with HUF_ENCSIZE";for(var g=Array(65537),y=Array(16384),b=0;b<16384;b++)y[b]={},y[b].len=0,y[b].lit=0,y[b].p=null;var w=u-(c.value-p);if(!function(e,i,a,o,l,s,c){for(var u=0,d=0;l<=s;l++){if(a.value-a.value>o)return!1;r(6,u,d,e,a);var f=t.l;if(u=t.c,d=t.lc,c[l]=f,63==f){if(a.value-a.value>o)throw"Something wrong with hufUnpackEncTable";r(8,u,d,e,a);var p=t.l+6;if(u=t.c,d=t.lc,l+p>s+1)throw"Something wrong with hufUnpackEncTable";for(;p--;)c[l++]=0;l--}else if(f>=59){var p=f-59+2;if(l+p>s+1)throw"Something wrong with hufUnpackEncTable";for(;p--;)c[l++]=0;l--}}!function(e){for(var t=0;t<=58;++t)n[t]=0;for(var t=0;t<65537;++t)n[e[t]]+=1;for(var r=0,t=58;t>0;--t){var i=r+n[t]>>1;n[t]=r,r=i}for(var t=0;t<65537;++t){var a=e[t];a>0&&(e[t]=a|n[a]++<<6)}}(c)}(e,0,c,w,h,v,g),m>8*(u-(c.value-p)))throw"Something wrong with hufUncompress";!function(e,t,r,n){for(;t<=r;t++){var i=e[t]>>6,a=63&e[t];if(i>>a)throw"Invalid table entry";if(a>14){var o=n[i>>a-14];
81if(o.len)throw"Invalid table entry";if(o.lit++,o.p){var l=o.p;o.p=Array(o.lit);for(var s=0;s<o.lit-1;++s)o.p[s]=l[s]}else o.p=[,];o.p[o.lit-1]=t}else if(a)for(var c=0,s=1<<14-a;s>0;s--){var o=n[(i<<14-a)+c];if(o.len||o.p)throw"Invalid table entry";o.len=a,o.lit=t,c++}}}(g,h,v,y),function(e,t,r,n,l,c,u,d,f,p){for(var h=0,v=0,m=Math.trunc(l.value+(c+7)/8);l.value<m;)for(a(h,v,r,l),h=i.c,v=i.lc;v>=14;){var g=t[h>>v-14&16383];if(g.len)v-=g.len,s(g.lit,u,h,v,r,n,l,f,p,d),h=o.c,v=o.lc;else{if(!g.p)throw"hufDecode issues";for(y=0;y<g.lit;y++){for(var y,b=63&e[g.p[y]];v<b&&l.value<m;)a(h,v,r,l),h=i.c,v=i.lc;if(v>=b&&e[g.p[y]]>>6==(h>>v-b&(1<<b)-1)){v-=b,s(g.p[y],u,h,v,r,n,l,f,p,d),h=o.c,v=o.lc;break}}if(y==g.lit)throw"hufDecode issues"}}var w=8-c&7;for(h>>=w,v-=w;v>0;){var g=t[h<<14-v&16383];if(g.len)v-=g.len,s(g.lit,u,h,v,r,n,l,f,p,d),h=o.c,v=o.lc;else throw"hufDecode issues"}}(g,y,e,l,c,m,v,f,d,{value:0})}function h(e){for(var t=1;t<e.length;t++){var r=e[t-1]+e[t]-128;e[t]=r}}function v(e,t){for(var r=0,n=Math.floor((e.length+1)/2),i=0,a=e.length-1;!(i>a)&&(t[i++]=e[r++],!(i>a));){;t[i++]=e[n++]}}function m(e){for(var t=e.byteLength,r=[],n=0,i=new DataView(e);t>0;){var a=i.getInt8(n++);if(a<0){var o=-a;t-=o+1;for(var l=0;l<o;l++)r.push(i.getUint8(n++))}else{var o=a;t-=2;for(var s=i.getUint8(n++),l=0;l<o+1;l++)r.push(s)}}return r}function g(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function y(e){var t=new Uint8Array(m(e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size))),r=new Uint8Array(t.length);return h(t),v(t,r),new DataView(r.buffer)}function b(e){var t=F(e.array.slice(e.offset.value,e.offset.value+e.size)),r=new Uint8Array(t.length);return h(t),v(t,r),new DataView(r.buffer)}function w(e){for(var t=e.viewer,r={value:e.offset.value},n=new Uint16Array(e.width*e.scanlineBlockSize*(e.channels*e.type)),i=new Uint8Array(8192),a=0,o=Array(e.channels),l=0;l<e.channels;l++)o[l]={},o[l].start=a,o[l].end=o[l].start,o[l].nx=e.width,o[l].ny=e.lines,o[l].size=e.type,a+=o[l].nx*o[l].ny*o[l].size;var s=O(t,r),c=O(t,r);
81if(c>=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(s<=c)for(var l=0;l<c-s+1;l++)i[l+s]=A(t,r);var h=new Uint16Array(65536),v=function(e,t){for(var r=0,n=0;n<65536;++n)(0==n||e[n>>3]&1<<(7&n))&&(t[r++]=n);for(var i=r-1;r<65536;)t[r++]=0;return i}(i,h),m=_(t,r);p(e.array,t,r,m,n,a);for(var l=0;l<e.channels;++l)for(var g=o[l],y=0;y<o[l].size;++y)!function(e,t,r,n,i,a,o){for(var l=o<16384,s=r>i?i:r,c=1;c<=s;)c<<=1;for(c>>=1,p=c,c>>=1;c>=1;){for(var p,h,v,m,g,y=0,b=0+a*(i-p),w=a*c,x=a*p,E=n*c,M=n*p;y<=b;y+=x){for(var S=y,_=y+n*(r-p);S<=_;S+=M){var C=S+E,A=S+w,P=A+E;l?(d(e[S+t],e[A+t]),h=u.a,m=u.b,d(e[C+t],e[P+t]),v=u.a,g=u.b,d(h,v),e[S+t]=u.a,e[C+t]=u.b,d(m,g)):(f(e[S+t],e[A+t]),h=u.a,m=u.b,f(e[C+t],e[P+t]),v=u.a,g=u.b,f(h,v),e[S+t]=u.a,e[C+t]=u.b,f(m,g)),e[A+t]=u.a,e[P+t]=u.b}if(r&c){var A=S+w;l?d(e[S+t],e[A+t]):f(e[S+t],e[A+t]),h=u.a,e[A+t]=u.b,e[S+t]=h}}if(i&c)for(var S=y,_=y+n*(r-p);S<=_;S+=M){var C=S+E;l?d(e[S+t],e[C+t]):f(e[S+t],e[C+t]),h=u.a,e[C+t]=u.b,e[S+t]=h}p=c,c>>=1}}(n,g.start+y,g.nx,g.size,g.ny,g.nx*g.size,v);for(var b=a,w=0;w<b;++w)n[w]=h[n[w]];for(var x=0,E=new Uint8Array(n.buffer.byteLength),M=0;M<e.lines;M++)for(var S=0;S<e.channels;S++){var g=o[S],C=g.nx*g.size,P=new Uint8Array(n.buffer,2*g.end,2*C);E.set(P,x),x+=2*C,g.end+=C}return new DataView(E.buffer)}function x(e){var t=F(e.array.slice(e.offset.value,e.offset.value+e.size));let r=e.lines*e.channels*e.width,n=1==e.type?new Uint16Array(r):new Uint32Array(r),i=0,a=0,o=[,,,,];for(let r=0;r<e.lines;r++)for(let r=0;r<e.channels;r++){let r=0;switch(e.type){case 1:o[0]=i,o[1]=o[0]+e.width,i=o[1]+e.width;for(let i=0;i<e.width;++i)r+=t[o[0]++]<<8|t[o[1]++],n[a]=r,a++;break;case 2:o[0]=i,o[1]=o[0]+e.width,o[2]=o[1]+e.width,i=o[2]+e.width;for(let i=0;i<e.width;++i)r+=t[o[0]++]<<24|t[o[1]++]<<16|t[o[2]++]<<8,n[a]=r,a++}}return new DataView(n.buffer)}function E(e){var t=e.viewer,r={value:e.offset.value},n=new Uint8Array(e.width*e.lines*(e.channels*e.type*2)),i={version:P(t,r),unknownUncompressedSize:P(t,r),unknownCompressedSize:P(t,r),acCompressedSize:P(t,r),dcCompressedSize:P(t,r),rleCompressedSize:P(t,r),rleUncompressedSize:P(t,r),rleRawSize:P(t,r),totalAcUncompressedCount:P(t,r),totalDcUncompressedCount:P(t,r),acCompression:P(t,r)};if(i.version<2)throw"EXRLoader.parse: "+k.compression+" version "+i.version+" is unsupported";for(var a=[],o=O(t,r)-2;o>0;){var s=M(t.buffer,r),c=A(t,r),u=c>>2&3,d=new Int8Array([(c>>4)-1])[0],f=A(t,r);a.push({name:s,index:d,type:f,compression:u}),o-=s.length+3}for(var h=k.channels,v=Array(e.channels),g=0;g<e.channels;++g){var y=v[g]={},w=h[g];y.name=w.name,y.compression=0,y.decoded=!1,y.type=w.pixelType,y.pLinear=w.pLinear,y.width=e.width,y.height=e.lines}for(var x={idx:[,,,]},E=0;E<e.channels;++E)for(var y=v[E],g=0;g<a.length;++g){var S=a[g];y.name==S.name&&(y.compression=S.compression,S.index>=0&&(x.idx[S.index]=E),y.offset=E)}if(i.acCompressedSize>0)switch(i.acCompression){case 0:var _=new Uint16Array(i.totalAcUncompressedCount);p(e.array,t,r,i.acCompressedSize,_,i.totalAcUncompressedCount);break;case 1:var C=e.array.slice(r.value,r.value+i.totalAcUncompressedCount),T=F(C),_=new Uint16Array(T.buffer);r.value+=i.totalAcUncompressedCount}if(i.dcCompressedSize>0){var j=new Uint16Array(b({array:e.array,offset:r,size:i.dcCompressedSize}).buffer);r.value+=i.dcCompressedSize}if(i.rleRawSize>0){var C=e.array.slice(r.value,r.value+i.rleCompressedSize),T=F(C),D=m(T.buffer);r.value+=i.rleCompressedSize}for(var I=0,L=Array(v.length),g=0;g<L.length;++g)L[g]=[];for(var U=0;U<e.lines;++U)for(var z=0;z<v.length;++z)L[z].push(I),I+=v[z].width*e.type*2;!function(e,t,r,n,i,a){var o=new DataView(a.buffer),s=r[e.idx[0]].width,c=r[e.idx[0]].height,u=Math.floor(s/8),d=Math.ceil(s/8),f=Math.ceil(c/8),p=s-(d-1)*8,h=c-(f-1)*8,v={value:0},m=[,,,],g=[,,,],y=[,,,],b=[,,,],w=[,,,];for(let r=0;r<3;++r)w[r]=t[e.idx[r]],m[r]=r<1?0:m[r-1]+d*f,g[r]=new Float32Array(64),y[r]=new Uint16Array(64),b[r]=new Uint16Array(64*d);for(let t=0;t<f;++t){var x,E,M=8;t==f-1&&(M=h);var S=8;for(let e=0;e<d;++e){e==d-1&&(S=p);for(let e=0;e<3;++e){y[e].fill(0),y[e][0]=i[m[e]++],function(e,t,r){for(var n,i=1;i<64;)65280==(n=t[e.value])?i=64:n>>8==255?i+=255&n:(r[i]=n,i++),e.value++}(v,n,y[e]),x=y[e],(E=g[e])[0]=R(x[0]),E[1]=R(x[1]),E[2]=R(x[5]),E[3]=R(x[6]),E[4]=R(x[14]),E[5]=R(x[15]),E[6]=R(x[27]),E[7]=R(x[28]),E[8]=R(x[2]),E[9]=R(x[4]),E[10]=R(x[7]),E[11]=R(x[13]),E[12]=R(x[16]),E[13]=R(x[26]),E[14]=R(x[29]),E[15]=R(x[42]),E[16]=R(x[3]),E[17]=R(x[8]),E[18]=R(x[12]),E[19]=R(x[17]),E[20]=R(x[25]),E[21]=R(x[30]),E[22]=R(x[41]),E[23]=R(x[43]),E[24]=R(x[9]),E[25]=R(x[11]),E[26]=R(x[18]),E[27]=R(x[24]),E[28]=R(x[31]),E[29]=R(x[40]),E[30]=R(x[44]),E[31]=R(x[53]),E[32]=R(x[10]),E[33]=R(x[19]),E[34]=R(x[23]),E[35]=R(x[32]),E[36]=R(x[39]),E[37]=R(x[45]),E[38]=R(x[52]),E[39]=R(x[54]),E[40]=R(x[20]),E[41]=R(x[22]),E[42]=R(x[33]),E[43]=R(x[38]),E[44]=R(x[46]),E[45]=R(x[51]),E[46]=R(x[55]),E[47]=R(x[60]),E[48]=R(x[21]),E[49]=R(x[34]),E[50]=R(x[37]),E[51]=R(x[47]),E[52]=R(x[50]),E[53]=R(x[56]),E[54]=R(x[59]),E[55]=R(x[61]),E[56]=R(x[35]),E[57]=R(x[36]),E[58]=R(x[48]),E[59]=R(x[49]),E[
8160]=R(x[57]),E[61]=R(x[58]),E[62]=R(x[62]),E[63]=R(x[63]),function(e){let t=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),n=.5*Math.cos(3*3.14159/16),i=.5*Math.cos(3*3.14159/8);for(var a=[,,,,],o=[,,,,],l=[,,,,],s=[,,,,],c=0;c<8;++c){var u=8*c;a[0]=r*e[u+2],a[1]=i*e[u+2],a[2]=r*e[u+6],a[3]=i*e[u+6],o[0]=t*e[u+1]+n*e[u+3]+.2777854612564676*e[u+5]+.09754573032714427*e[u+7],o[1]=n*e[u+1]-.09754573032714427*e[u+3]-t*e[u+5]-.2777854612564676*e[u+7],o[2]=.2777854612564676*e[u+1]-t*e[u+3]+.09754573032714427*e[u+5]+n*e[u+7],o[3]=.09754573032714427*e[u+1]-.2777854612564676*e[u+3]+n*e[u+5]-t*e[u+7],l[0]=.35355362513961314*(e[u+0]+e[u+4]),l[3]=.35355362513961314*(e[u+0]-e[u+4]),l[1]=a[0]+a[3],l[2]=a[1]-a[2],s[0]=l[0]+l[1],s[1]=l[3]+l[2],s[2]=l[3]-l[2],s[3]=l[0]-l[1],e[u+0]=s[0]+o[0],e[u+1]=s[1]+o[1],e[u+2]=s[2]+o[2],e[u+3]=s[3]+o[3],e[u+4]=s[3]-o[3],e[u+5]=s[2]-o[2],e[u+6]=s[1]-o[1],e[u+7]=s[0]-o[0]}for(var d=0;d<8;++d)a[0]=r*e[16+d],a[1]=i*e[16+d],a[2]=r*e[48+d],a[3]=i*e[48+d],o[0]=t*e[8+d]+n*e[24+d]+.2777854612564676*e[40+d]+.09754573032714427*e[56+d],o[1]=n*e[8+d]-.09754573032714427*e[24+d]-t*e[40+d]-.2777854612564676*e[56+d],o[2]=.2777854612564676*e[8+d]-t*e[24+d]+.09754573032714427*e[40+d]+n*e[56+d],o[3]=.09754573032714427*e[8+d]-.2777854612564676*e[24+d]+n*e[40+d]-t*e[56+d],l[0]=.35355362513961314*(e[d]+e[32+d]),l[3]=.35355362513961314*(e[d]-e[32+d]),l[1]=a[0]+a[3],l[2]=a[1]-a[2],s[0]=l[0]+l[1],s[1]=l[3]+l[2],s[2]=l[3]-l[2],s[3]=l[0]-l[1],e[0+d]=s[0]+o[0],e[8+d]=s[1]+o[1],e[16+d]=s[2]+o[2],e[24+d]=s[3]+o[3],e[32+d]=s[3]-o[3],e[40+d]=s[2]-o[2],e[48+d]=s[1]-o[1],e[56+d]=s[0]-o[0]}(g[e])}for(var _=g,C=0;C<64;++C){var A=_[0][C],P=_[1][C],T=_[2][C];_[0][C]=A+1.5747*T,_[1][C]=A-.1873*P-.4682*T,_[2][C]=A+1.8556*P}for(let t=0;t<3;++t)!function(e,t,r){for(var n,i=0;i<64;++i){t[r+i]=l.DataUtils.toHalfFloat((n=e[i])<=1?Math.sign(n)*Math.pow(Math.abs(n),2.2):Math.sign(n)*Math.pow(9.025013291561939,Math.abs(n)-1))}}(g[t],b[t],64*e)}let a=0;for(let n=0;n<3;++n){let i=r[e.idx[n]].type;for(let e=8*t;e<8*t+M;++e){a=w[n][e];for(let t=0;t<u;++t){let r=64*t+(7&e)*8;o.setUint16(a+0*i,b[n][r+0],!0),o.setUint16(a+2*i,b[n][r+1],!0),o.setUint16(a+4*i,b[n][r+2],!0),o.setUint16(a+6*i,b[n][r+3],!0),o.setUint16(a+8*i,b[n][r+4],!0),o.setUint16(a+10*i,b[n][r+5],!0),o.setUint16(a+12*i,b[n][r+6],!0),o.setUint16(a+14*i,b[n][r+7],!0),a+=16*i}}if(u!=d)for(let e=8*t;e<8*t+M;++e){let t=w[n][e]+8*u*2*i,r=64*u+(7&e)*8;for(let e=0;e<S;++e)o.setUint16(t+2*e*i,b[n][r+e],!0)}}}for(var j=new Uint16Array(s),o=new DataView(a.buffer),O=0;O<3;++O){r[e.idx[O]].decoded=!0;var D=r[e.idx[O]].type;if(2==r[O].type)for(var I=0;I<c;++I){let e=w[O][I];for(var L=0;L<s;++L)j[L]=o.getUint16(e+2*L*D,!0);for(var L=0;L<s;++L)o.setFloat32(e+2*L*D,R(j[L]),!0)}}}(x,L,v,_,j,n);for(var g=0;g<v.length;++g){var y=v[g];if(!y.decoded)if(2===y.compression)for(var B=0,N=0,U=0;U<e.lines;++U){for(var H=L[g][B],V=0;V<y.width;++V){for(var W=0;W<2*y.type;++W)n[H++]=D[N+W*y.width*y.height];N++}B++}else throw"EXRLoader.parse: unsupported channel compression"}return new DataView(n.buffer)}function M(e,t){for(var r=new Uint8Array(e),n=0;0!=r[t.value+n];)n+=1;var i=new TextDecoder().decode(r.slice(t.value,t.value+n));return t.value=t.value+n+1,i}function S(e,t){var r=e.getInt32(t.value,!0);return t.value=t.value+4,r}function _(e,t){var r=e.getUint32(t.value,!0);return t.value=t.value+4,r}function C(e,t){var r=e[t.value];return t.value=t.value+1,r}function A(e,t){var r=e.getUint8(t.value);return t.value=t.value+1,r}let P=function(e,t){let r;return r="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,r};function T(e,t){var r=e.getFloat32(t.value,!0);return t.value+=4,r}function j(e,t){return l.DataUtils.toHalfFloat(T(e,t))}function R(e){var t=(31744&e)>>10,r=1023&e;return(e>>15?-1:1)*(t?31===t?r?NaN:1/0:Math.pow(2,t-15)*(1+r/1024):r/1024*6103515625e-14)}function O(e,t){var r=e.getUint16(t.value,!0);return t.value+=2,r}function D(e,t){return R(O(e,t))}let I=new DataView(e),L=new Uint8Array(e),U={value:0},k=function(e,t,r){let n={};if(0x1312f76!=e.getUint32(0,!0))throw"THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";n.version=e.getUint8(4);let i=e.getUint8(5);n.spec={singleTile:!!(2&i),longName:!!(4&i),deepFormat:!!(8&i),multiPart:!!(16&i)},r.value=8;for(var a=!0;a;){var o=M(t,r);if(0==o)a=!1;else{var l=M(t,r),s=_(e,r),c=function(e,t,r,n,i){var a,o,l,s,c,u,d;if("string"===n||"stringvector"===n||"iccProfile"===n)return a=new TextDecoder().decode(new Uint8Array(t).slice(r.value,r.value+i)),r.value=r.value+i,a;if("chlist"===n)return function(e,t,r,n){for(var i=r.value,a=[];r.value<i+n-1;){var o=M(t,r),l=S(e,r),s=A(e,r);r.value+=3;var c=S(e,r),u=S(e,r);a.push({name:o,pixelType:l,pLinear:s,xSampling:c,ySampling:u})}return r.value+=1,a}(e,t,r,i);if("chromaticities"===n)return o=T(e,r),l=T(e,r),s=T(e,r),c=T(e,r),u=T(e,r),{redX:o,redY:l,greenX:s,greenY:c,blueX:u,blueY:T(e,r),whiteX:T(e,r),whiteY:T(e,r)};if("compression"===n)return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][A(e,r)];if("box2i"===n)return d=_(e,r),{xMin:d,yMin:_(e,r),xMax:_(e,r),yMax:_(e,r)};else if("lineOrder"===n)return["INCREASING_Y"][A(e,r)];else if("float"===n)return T(e,r);else if("v2f"===n)return[T(e,r),T(e,r)];else if("v3f"===n)return[T(e,r),T(e,r),T(e,r)];else if("int"===n)return S(e,r);else if("rational"===n)return[S(e,r),_(e,r)];else if("timecode"===n)return[_(e,r),_(e,r)];else return"preview"===n?(r.value+=i,"skipped"):(r.value+=i,void 0)}(e,t,r,l,s);void 0===c?console.warn(`EXRLoader.parse: skipped unknown header attribute type '${l}'.`):n[o]=c}}if((-5&i)!=0)throw console.error("EXRHeader:",n),"THREE.EXRLoader: provided file is currently unsupported.";return n}(I,e,U),z=function(e,t,r,n,i){let a={size:0,viewer:t,array:r,offset:n,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,channels:e.channels.length,bytesPer
81Line:null,lines:null,inputSize:null,type:e.channels[0].pixelType,uncompress:null,getter:null,format:null,[B?"colorSpace":"encoding"]:null};switch(e.compression){case"NO_COMPRESSION":a.lines=1,a.uncompress=g;break;case"RLE_COMPRESSION":a.lines=1,a.uncompress=y;break;case"ZIPS_COMPRESSION":a.lines=1,a.uncompress=b;break;case"ZIP_COMPRESSION":a.lines=16,a.uncompress=b;break;case"PIZ_COMPRESSION":a.lines=32,a.uncompress=w;break;case"PXR24_COMPRESSION":a.lines=16,a.uncompress=x;break;case"DWAA_COMPRESSION":a.lines=32,a.uncompress=E;break;case"DWAB_COMPRESSION":a.lines=256,a.uncompress=E;break;default:throw"EXRLoader.parse: "+e.compression+" is unsupported"}if(a.scanlineBlockSize=a.lines,1==a.type)switch(i){case l.FloatType:a.getter=D,a.inputSize=2;break;case l.HalfFloatType:a.getter=O,a.inputSize=2}else if(2==a.type)switch(i){case l.FloatType:a.getter=T,a.inputSize=4;break;case l.HalfFloatType:a.getter=j,a.inputSize=4}else throw"EXRLoader.parse: unsupported pixelType "+a.type+" for "+e.compression+".";a.blockCount=(e.dataWindow.yMax+1)/a.scanlineBlockSize;for(var o=0;o<a.blockCount;o++)P(t,n);a.outputChannels=3==a.channels?4:a.channels;let s=a.width*a.height*a.outputChannels;switch(i){case l.FloatType:a.byteArray=new Float32Array(s),a.channels<a.outputChannels&&a.byteArray.fill(1,0,s);break;case l.HalfFloatType:a.byteArray=new Uint16Array(s),a.channels<a.outputChannels&&a.byteArray.fill(15360,0,s);break;default:console.error("THREE.EXRLoader: unsupported type: ",i)}return a.bytesPerLine=a.width*a.inputSize*a.channels,4==a.outputChannels?a.format=l.RGBAFormat:a.format=l.RedFormat,B?a.colorSpace="srgb-linear":a.encoding=3e3,a}(k,I,L,U,this.type),N={value:0},H={R:0,G:1,B:2,A:3,Y:0};for(let e=0;e<z.height/z.scanlineBlockSize;e++){let t=_(I,U);z.size=_(I,U),z.lines=t+z.scanlineBlockSize>z.height?z.height-t:z.scanlineBlockSize;let r=z.size<z.lines*z.bytesPerLine?z.uncompress(z):g(z);U.value+=z.size;for(let t=0;t<z.scanlineBlockSize;t++){let n=t+e*z.scanlineBlockSize;if(n>=z.height)break;for(let e=0;e<z.channels;e++){let i=H[k.channels[e].name];for(let a=0;a<z.width;a++){N.value=(t*(z.channels*z.width)+e*z.width+a)*z.inputSize;let o=(z.height-1-n)*(z.width*z.outputChannels)+a*z.outputChannels+i;z.byteArray[o]=z.getter(r,N)}}}}return{header:k,width:z.width,height:z.height,data:z.byteArray,format:z.format,[B?"colorSpace":"encoding"]:z[B?"colorSpace":"encoding"],type:this.t
81ype}}setDataType(e){return this.type=e,this}load(e,t,r,n){return super.load(e,function(e,r){B?e.colorSpace=r.colorSpace:e.encoding=r.encoding,e.minFilter=l.LinearFilter,e.magFilter=l.LinearFilter,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,r)},r,n)}}let H=(e,t,r)=>{let n;switch(e){case l.UnsignedByteType:n=new Uint8ClampedArray(t*r*4);break;case l.HalfFloatType:n=new Uint16Array(t*r*4);break;case l.UnsignedIntType:n=new Uint32Array(t*r*4);break;case l.ByteType:n=new Int8Array(t*r*4);break;case l.ShortType:n=new Int16Array(t*r*4);break;case l.IntType:n=new Int32Array(t*r*4);break;case l.FloatType:n=new Float32Array(t*r*4);break;default:throw Error("Unsupported data type")}return n};class V{constructor(e){var t,r,i,a,o,s,c,u,d,f,p,h,v,m,g,y;this._rendererIsDisposable=!1,this._supportsReadPixels=!0,this.render=()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)},this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace
81=e.colorSpace;let b={format:l.RGBAFormat,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:(null==(t=e.renderTargetOptions)?void 0:t.anisotropy)!==void 0?null==(r=e.renderTargetOptions)?void 0:r.anisotropy:1,generateMipmaps:(null==(i=e.renderTargetOptions)?void 0:i.generateMipmaps)!==void 0&&(null==(a=e.renderTargetOptions)?void 0:a.generateMipmaps),magFilter:(null==(o=e.renderTargetOptions)?void 0:o.magFilter)!==void 0?null==(s=e.renderTargetOptions)?void 0:s.magFilter:l.LinearFilter,minFilter:(null==(c=e.renderTargetOptions)?void 0:c.minFilter)!==void 0?null==(u=e.renderTargetOptions)?void 0:u.minFilter:l.LinearFilter,samples:(null==(d=e.renderTargetOptions)?void 0:d.samples)!==void 0?null==(f=e.renderTargetOptions)?void 0:f.samples:void 0,wrapS:(null==(p=e.renderTargetOptions)?void 0:p.wrapS)!==void 0?null==(h=e.renderTargetOptions)?void 0:h.wrapS:l.ClampToEdgeWrapping,wrapT:(null==(v=e.renderTargetOptions)?void 0:v.wrapT)!==void 0?null==(m=e.renderTargetOptions)?void 0:m.wrapT:l.ClampToEdgeWrapping};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=V.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new l.Scene,this._camera=new l.OrthographicCamera,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!((e,t,r,i)=>{if(void 0!==n)return n;let a=new l.WebGLRenderTarget(1,1,i);t.setRenderTarget(a);let o=new l.Mesh(new l.PlaneGeometry,new l.MeshBasicMaterial({color:0xffffff}));t.render(o,r),t.setRenderTarget(null);let s=H(e,a.width,a.height);return t.readRenderTargetPixels(a,0,0,a.width,a.height,s),a.dispose(),o.geometry.dispose(),o.material.dispose(),n=0!==s[0]})(this._type,this._renderer,this._camera,b)){let e;this._type===l.HalfFloatType&&(e=this._renderer.extensions.has("EXT_color_buffer_float")?l.FloatType:void 0),void 0!==e?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${l.FloatType}`),this._type=e):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new l.Mesh(new l.PlaneGeometry,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new l.WebGLRenderTarget(this.width,this.height,b),this._renderTarget.texture.mapping=(null==(g=e.renderTargetOptions)?void 0:g.mapping)!==void 0?null==(y=e.renderTargetOptions)?void 0:y.mapping:l.UVMapping}static instantiateRenderer(){let e=new l.WebGLRenderer;return e.setSize(128,128),e}toArray(){if(!this._supportsReadPixels)throw Error("Can't read pixels in this browser");let e=H(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){let t=new l.DataTexture(this.toArray(),this.width,this.height,l.RGBAFormat,this._type,(null==e?void 0:e.mapping)||l.UVMapping,(null==e?void 0:e.wrapS)||l.ClampToEdgeWrapping,(null==e?void 0:e.wrapT)||l.ClampToEdgeWrapping,(null==e?void 0:e.magFilter)||l.LinearFilter,(null==e?void 0:e.minFilter)||l.LinearFilter,(null==e?void 0:e.anisotropy)||1,l.LinearSRGBColorSpace);return t.generateMipmaps=(null==e?void 0:e.generateMipmaps)!==void 0&&(null==e?void 0:e.generateMipmaps),t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof l.ShaderMaterial&&Object.values(this.material.uniforms).forEach(e=>{e.value instanceof l.Texture&&e.value.dispose()}),Object.values(this.material).forEach(e=>{e instanceof l.Texture&&e.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}let W=`
82varying vec2 vUv;
83
84void main() {
85  vUv = uv;
86  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0
86);
87}
88`,G=`
89// min half float value
90#define HALF_FLOAT_MIN vec3( -65504, -65504, -65504 )
91// max half float value
92#define HALF_FLOAT_MAX vec3( 65504, 65504, 65504 )
93
94uniform sampler2D sdr;
95uniform sampler2D gainMap;
96uniform vec3 gamma;
97uniform vec3 offsetHdr;
98uniform vec3 offsetSdr;
99uniform vec3 gainMapMin;
100uniform vec3 gainMapMax;
101uniform float weightFactor;
102
103varying vec2 vUv;
104
105void main() {
106  vec3 rgb = texture2D( sdr, vUv ).rgb;
107  vec3 recovery = texture2D( gainMap, vUv ).rgb;
108  vec3 logRecovery = pow( recovery, gamma );
109  vec3 logBoost = gainMapMin * ( 1.0 - logRecovery ) + gainMapMax * logRecovery;
110  vec3 hdrColor = (rgb + offsetSdr) * exp2( logBoost * weightFactor ) - offsetHdr;
111  vec3 clampedHdrColor = max( HALF_FLOAT_MIN, min( HALF_FLOAT_MAX, hdrColor ));
112  gl_FragColor = vec4( clampedHdrColor , 1.0 );
113}
114`;class q extends l.ShaderMaterial{constructor({gamma:e,offsetHdr:t,offsetSdr:r,gainMapMin:n,gainMapMax:i,maxDisplayBoost:a,hdrCapacityMin:o,hdrCapacityMax:s,sdr:c,gainMap:u}){super({name:"GainMapDecoderMaterial",vertexShader:W,fragmentShader:G,uniforms:{sdr:{value:c},gainMap:{value:u},gamma:{value:new l.Vector3(1/e[0],1/e[1],1/e[2])},offsetHdr:{value:new l.Vector3().fromArray(t)},offsetSdr:{value:new l.Vector3().fromArray(r)},gainMapMin:{value:new l.Vector3().fromArray(n)},gainMapMax:{value:new l.Vector3().fromArray(i)},weightFactor:{value:(Math.log2(a)-o)/(s-o)}},blending:l.NoBlending,depthTest:!1,depthWrite:!1}),this._maxDisplayBoost=a,this._hdrCapacityMin=o,this._hdrCapacityMax=s,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(e){this.uniforms.sdr.value=e}get gainMap(){return this.uniforms.gainMap.value}set gainMap(e){this.uniforms.gainMap.value=e}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(e){this.uniforms.offsetHdr.value.fromArray(e)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(e){this.uniforms.offsetSdr.value.fromArray(e)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(e){this.uniforms.gainMapMin.value.fromArray(e)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(e){this.uniforms.gainMapMax.value.fromArray(e)}get gamma(){let e=this.uniforms.gamma.value;return[1/e.x,1/e.y,1/e.z]}set gamma(e){let t=this.uniforms.gamma.value;t.x=1/e[0],t.y=1/e[1],t.z=1/e[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(e){this._hdrCapacityMin=e,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(e){this._hdrCapacityMax=e,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(e){this._maxDisplayBoost=Math.max(1,Math.min(65504,e)),this.calculateWeight()}calculateWeight(){let e=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,e))}}class $ extends Error{}class Y extends Error{}let X=(e,t,r)=>{let n=RegExp(`${t}="([^"]*)"`,"i").exec(e);if(n)return n[1];let i=RegExp(`<${t}[^>]*>([\\s\\S]*?)</${t}>`,"i").exec(e);if(i){let e=i[1].match(/<rdf:li>([^<]*)<\/rdf:li>/g);return e&&3===e.length?e.map(e=>e.replace(/<\/?rdf:li>/g,"")):i[1].trim()}if(void 0!==r)return r;throw Error(`Can't find ${t} in gainmap metadata`)};class Z{constructor(e){this.options={debug:!!e&&void 0!==e.debug&&e.debug,extractFII:!e||void 0===e.extractFII||e.extractFII,extractNonFII:!e||void 0===e.extractNonFII||e.extractNonFII}}extract(e){return new Promise((t,r)=>{let n,i=this.options.debug,a=new DataView(e.buffer);if(65496!==a.getUint16(0))return void r(Error("Not a valid jpeg"));let o=a.byteLength,l=2,s=0;for(;l<o;){if(++s>250)return void r(Error(`Found no marker after ${s} loops 😵`));if(255!==a.getUint8(l))return void r(Error(`Not a valid marker at offset 0x${l.toString(16)}, found: 0x${a.getUint8(l).toString(16)}`));if(n=a.getUint8(l+1),i&&console.log(`Marker: ${n.toString(16)}`),226===n){i&&console.log("Found APP2 marker (0xffe2)");let e=l+4;if(0x4d504600===a.getUint32(e)){let n,i=e+4;if(18761===a.getUint16(i))n=!1;else{if(19789!==a.getUint16(i))return void r(Error("No valid endianness marker found in TIFF header"));n=!0}if(42!==a.getUint16(i+2,!n))return void r(Error("Not valid TIFF data! (no 0x002A marker)"));let o=a.getUint32(i+4,!n);if(o<8)return void r(Error("Not valid TIFF data! (First offset less than 8)"));let l=i+o,s=a.getUint16(l,!n),c=l+2,u=0;for(let e=c;e<c+12*s;e+=12)45057===a.getUint16(e,!n)&&(u=a.getUint32(e+8,!n));let d=l+2+12*s+4,f=[];for(let e=d;e<d+16*u;e+=16){let t={MPType:a.getUint32(e,!n),size:a.getUint32(e+4,!n),dataOffset:a.getUint32(e+8,!n),dependantImages:a.getUint32(e+12,!n),start:-1,end:-1,isFII:!1};t.dataOffset?(t.start=i+t.dataOffset,t.isFII=!1):(t.start=0,t.isFII=!0),t.end=t.start+t.size,f.push(t)}if(this.options.extractNonFII&&f.length){let e=new Blob([a]),r=[];for(let t of f){if(t.isFII&&!this.options.extractFII)continue;let n=e.slice(t.start,t.end+1,"image/jpeg");r.push(n)}t(r)}}}l+=2+a.getUint16(l+2)}})}}let K=async e=>{let t=(e=>{let t,r=(t="undefined"!=typeof TextDecoder?new TextDecoder().decode(e):e.toString()).indexOf("<x:xmpmeta");for(;-1!==r;){let e=t.indexOf("x:xmpmeta>",r),n=t.slice(r,e+10);try{let e=X(n,"hdrgm:GainMapMin","0"),t=X(n,"hdrgm:GainMapMax"),r=X(n,"hdrgm:Gamma","1"),i=X(n,"hdrgm:OffsetSDR","0.015625"),a=X(n,"hdrgm:OffsetHDR","0.015625"),o=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(n),l=o?o[1]:"0",s=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(n);if(!s)throw Error("Incomplete gainmap metadata");let c=s[1];return{gainMapMin:Array.isArray(e)?e.map(e=>parseFloat(e)):[parseFloat(e),parseFloat(e),parseFloat(e)],gainMapMax:Array.isArray(t)?t.map(e=>parseFloat(e)):[parseFloat(t),parseFloat(t),parseFloat(t)],gamma:Array.isArray(r)?r.map(e=>parseFloat(e)):[parseFloat(r),parseFloat(r),parseFloat(r)],offsetSdr:Array.isArray(i)?i.map(e=>parseFloat(e)):[parseFloat(i),parseFloat(i),parseFloat(i)],offsetHdr:Array.isArray(a)?a.map(e=>parseFloat(e)):[parseFloat(a),parseFloat(a),parseFloat(a)],hdrCapacityMin:parseFloat(l),hdrCapacityMax:p
114arseFloat(c)}}catch(e){}r=t.indexOf("<x:xmpmeta",e)}})(e);if(!t)throw new Y("Gain map XMP metadata not found");let r=new Z({extractFII:!0,extractNonFII:!0}),n=await r.extract(e);if(2!==n.length)throw new $("Gain map recovery image not found");return{sdr:new Uint8Array(await n[0].arrayBuffer()),gainMap:new Uint8Array(await n[1].arrayBuffer()),metadata:t}},Q=e=>new Promise((t,r)=>{let n=document.createElement("img");n.onload=()=>{t(n)},n.onerror=e=>{r(e)},n.src=URL.createObjectURL(e)});class J extends l.Loader{constructor(e,t){super(t),e&&(this._renderer=e),this._internalLoadingManager=new l.LoadingManager}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: An existing WebGL Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");let e=new q({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new l.Texture,sdr:new l.Texture});return new V({width:16,height:16,type:l.HalfFloatType,colorSpace:l.LinearSRGBColorSpace,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async render(e,t,r,n){let i,a,o=n?new Blob([n],{type:"image/jpeg"}):void 0,s=new Blob([r],{type:"image/jpeg"}),c=!1;if("undefined"==typeof createImageBitmap){let e=await Promise.all([o?Q(o):Promise.resolve(void 0),Q(s)]);a=e[0],i=e[1],c=!0}else{let e=await Promise.all([o?createImageBitmap(o,{imageOrientation:"flipY"}):Promise.resolve(void 0),createImageBitmap(s,{imageOrientation:"flipY"})]);a=e[0],i=e[1]}let u=new l.Texture(a||new ImageData(2,2),l.UVMapping,l.ClampToEdgeWrapping,l.ClampToEdgeWrapping,l.LinearFilter,l.LinearMipMapLinearFilter,l.RGBAFormat,l.UnsignedByteType,1,l.LinearSRGBColorSpace);u.flipY=c,u.needsUpdate=!0;let d=new l.Texture(i,l.UVMapping,l.ClampToEdgeWrapping,l.ClampToEdgeWrapping,l.LinearFilter,l.LinearMipMapLinearFilter,l.RGBAFormat,l.UnsignedByteType,1,l.SRGBColorSpace);d.flipY=c,d.needsUpdate=!0,e.width=i.width,e.height=i.height,e.material.gainMap=u,e.material.sdr=d,e.material.gainMapMin=t.gainMapMin,e.material.gainMapMax=t.gainMapMax,e.material.offsetHdr=t.offsetHdr,e.material.offsetSdr=t.offsetSdr,e.material.gamma=t.gamma,e.material.hdrCapacityMin=t.hdrCapacityMin,e.material.hdrCapacityMax=t.hdrCapacityMax,e.material.maxDisplayBoost=Math.pow(2,t.hdrCapacityMax),e.material.needsUpdate=!0,e.render()}}class ee extends J{load([e,t,r],n,i,a){let o,s,c,u=this.prepareQuadRenderer(),d=async()=>{if(o&&s&&c){try{await this.render(u,c,o,s)}catch(n){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(r),"function"==typeof a&&a(n),u.disposeOnDemandRenderer();return}"function"==typeof n&&n(u),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(r),u.disposeOnDemandRenderer()}},f=!0,p=0,h=0,v=!0,m=0,g=0,y=!0,b=0,w=0,x=()=>{"function"==typeof i&&i(new ProgressEvent("progress",{lengthComputable:f&&v&&y,loaded:h+g+w,total:p+m+b}))};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(r);let E=new l.FileLoader(this._internalLoadingManager);E.setResponseType("arraybuffer"),E.setRequestHeader(this.requestHeader),E.setPath(this.path),E.setWithCredentials(this.withCredentials),E.load(e,async e=>{if("string"==typeof e)throw Error("Invalid sdr buffer");o=e,await d()},e=>{f=e.lengthComputable,h=e.loaded,p=e.total,x()},t=>{this.manager.itemError(e),"function"==typeof a&&a(t)});let M=new l.FileLoader(this._internalLoadingManager);M.setResponseType("arraybuffer"),M.setRequestHeader(this.requestHeader),M.setPath(this.path),M.setWithCredentials(this.withCredentials),M.load(t,async e=>{if("string"==typeof e)throw Error("Invalid gainmap buffer");s=e,await d()},e=>{v=e.lengthComputable,g=e.loaded,m=e.total,x()},e=>{this.manager.itemError(t),"function"==typeof a&&a(e)});let S=new l.FileLoader(this._internalLoadingManager);return S.setRequestHeader(this.requestHeader),S.setPath(this.path),S.setWithCredentials(this.withCredentials),S.load(r,async e=>{if("string"!=typeof e)throw Error("Invalid metadata string");c=JSON.parse(e),await d()},e=>{y=e.lengthComputable,w=e.loaded,b=e.total,x()},e=>{this.manager.itemError(r),"function"==typeof a&&a(e)}),u}}class et extends J{load(e,t,r,n){let i=this.prepareQuadRenderer(),a=new l.FileLoader(this._internalLoadingManager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(this.withCredentials),this.manager.itemStart(e),a.load(e,async r=>{let a,o,l;if("string"==typeof r)throw Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");let s=new Uint8Array(r);try{let e=await K(s);a=e.sdr,o=e.gainMap,l=e.metadata}catch(t){if(t instanceof Y||t instanceof $)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),l={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},a=s;else throw t}try{await this.render(i,l,a,o)}catch(t){this.manager.itemError(e),"function"==typeof n&&n(t),i.disposeOnDemandRenderer();return}"function"==typeof t&&t(i),this.manager.itemEnd(e),i.disposeOnDemandRenderer()},r,t=>{this.manager.itemError(e),"function"==typeof n&&n(t)}),i}}let er={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},en="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",ei=e=>Array.isArray(e),ea=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"];function eo({files:e=ea,path:t="",preset:r,colorSpace:n,extensions:i}={}){r&&(ec(r),e=er[r],t=en);let s=ei(e),{extension:c,isCubemap:u}=eu(e),d=ed(c);if(!d)throw Error("useEnvironment: Unrecognized file extension: "+e);let f=(0,o.C)(e=>e.gl);(0,a.useLayoutEffect)(()=>{("webp"===c||"jpg"===c||"jpeg"===c)&&f.domElement.addEventListener("webglcontextlost",function(){o.G.clear(d,s?[e]:e)},{once:!0})},[e,f.domElement]);let p=(0,o.G)(d,s?[e]:e,e=>{("webp"===c||"jpg"===c||"jpeg"===c)&&e.setRenderer(f),null==e.setPath||e.setPath(t),i&&i(e)}),h=s?p[0]:p;if("jpg"===c||"jpeg"===c||"webp"===c){var v;h=null==(v=h.renderTarget)?void 0:v.texture}return h.mapping=u?l.CubeReflectionMapping:l.EquirectangularReflectionMapping,h.colorSpace
114=null!=n?n:u?"srgb":"srgb-linear",h}let el={files:ea,path:"",preset:void 0,extensions:void 0};eo.preload=e=>{let t={...el,...e},{files:r,path:n=""}=t,{preset:i,extensions:a}=t;i&&(ec(i),r=er[i],n=en);let{extension:l}=eu(r);if("webp"===l||"jpg"===l||"jpeg"===l)throw Error("useEnvironment: Preloading gainmaps is not supported");let s=ed(l);if(!s)throw Error("useEnvironment: Unrecognized file extension: "+r);o.G.preload(s,ei(r)?[r]:r,e=>{null==e.setPath||e.setPath(n),a&&a(e)})};let es={files:ea,preset:void 0};function ec(e){if(!(e in er))throw Error("Preset must be one of: "+Object.keys(er).join(", "))}function eu(e){var t;let r=ei(e)&&6===e.length,n=ei(e)&&3===e.length&&e.some(e=>e.endsWith("json")),i=ei(e)?e[0]:e;return{extension:r?"cube":n?"webp":i.startsWith("data:application/exr")?"exr":i.startsWith("data:application/hdr")?"hdr":i.startsWith("data:image/jpeg")?"jpg":null==(t=i.split(".").pop())||null==(t=t.split("?"))||null==(t=t.shift())?void 0:t.toLowerCase(),isCubemap:r,isGainmap:n}}function ed(e){return"cube"===e?l.CubeTextureLoader:"hdr"===e?u:"exr"===e?N:"jpg"===e||"jpeg"===e?et:"webp"===e?ee:null}function ef(e,t,r,n,i={}){var a,l,s,c;let u,d;i={backgroundBlurriness:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...i};let f=(d=u=t||r).current&&d.current.isScene?u.current:u,p=f.background,h=f.environment,v={backgroundBlurriness:f.backgroundBlurriness,backgroundIntensity:f.backgroundIntensity,backgroundRotation:null!=(a=null==(l=f.backgroundRotation)||null==l.clone?void 0:l.clone())?a:[0,0,0],environmentIntensity:f.environmentIntensity,environmentRotation:null!=(s=null==(c=f.environmentRotation)||null==c.clone?void 0:c.clone())?s:[0,0,0]};return"only"!==e&&(f.environment=n),e&&(f.background=n),(0,o.s)(f,i),()=>{"only"!==e&&(f.environment=h),e&&(f.background=p),(0,o.s)(f,v)}}function ep({scene:e,background:t=!1,map:r,...n}){let i=(0,o.C)(e=>e.scene);return a.useLayoutEffect(()=>{if(r)return ef(t,e,i,r,n)}),null}function eh({background:e=!1,scene:t,blur:r,backgroundBlurriness:n,backgroundIntensity:i,backgroundRotation:l,environmentIntensity:s,environmentRotation:c,...u}){let d=eo(u),f=(0,o.C)(e=>e.scene);return a.useLayoutEffect(()=>ef(e,t,f,d,{backgroundBlurriness:null!=r?r:n,backgroundIntensity:i,backgroundRotation:l,environmentIntensity:s,environmentRotation:c})),a.useEffect(()=>()=>{d.dispose()},[d]),null}function ev({children:e,near:t=.1,far:r=1e3,resolution:n=256,frames:i=1,map:s,background:c=!1,blur:u,backgroundBlurriness:d,backgroundIntensity:f,backgroundRotation:p,environmentIntensity:h,environmentRotation:v,scene:m,files:g,path:y,preset:b,extensions:w}){let x=(0,o.C)(e=>e.gl),E=(0,o.C)(e=>e.scene),M=a.useRef(null),[S]=a.useState(()=>new l.Scene),_=a.useMemo(()=>{let e=new l.WebGLCubeRenderTarget(n);return e.texture.type=l.HalfFloatType,e},[n]);a.useEffect(()=>()=>{_.dispose()},[_]),a.useLayoutEffect(()=>{if(1===i){let e=x.autoClear;x.autoClear=!0,M.current.update(x,S),x.autoClear=e}return ef(c,m,E,_.texture,{backgroundBlurriness:null!=u?u:d,backgroundIntensity:f,backgroundRotation:p,environmentIntensity:h,environmentRotation:v})},[e,S,_.texture,m,E,c,i,x]);let C=1;return(0,o.D)(()=>{if(i===1/0||C<i){let e=x.autoClear;x.autoClear=!0,M.current.update(x,S),x.autoClear=e,C++}}),a.createElement(a.Fragment,null,(0,o.o)(a.createElement(a.Fragment,null,e,a.createElement("cubeCamera",{ref:M,args:[t,r,_]}),g||b?a.createElement(eh,{background:!0,files:g,preset:b,path:y,extensions:w}):s?a.createElement(ep,{background:!0,map:s,extensions:w}):null),S))}function em(e){var t,r,n,l;let s=eo(e),u=e.map||s;a.useMemo(()=>(0,o.e)({GroundProjectedEnvImpl:c}),[]),a.useEffect(()=>()=>{s.dispose()},[s]);let d=a.useMemo(()=>[u],[u]),f=null==(t=e.ground)?void 0:t.height,p=null==(r=e.ground)?void 0:r.radius,h=null!=(n=null==(l=e.ground)?void 0:l.scale)?n:1e3;return a.createElement(a.Fragment,null,a.createElement(ep,(0,i.A)({},e,{map:u})),a.createElement("groundProjectedEnvImpl",{args:d,scale:h,height:f,radius:p}))}function eg(e){return e.ground?a.createElement(em,e):e.map?a.createElement(ep,e):e.children?a.createElement(ev,e):a.createElement(eh,e)}eo.clear=e=>{let t={...es,...e},{files:r}=t,{preset:n}=t;n&&(ec(n),r=er[n]);let{extension:i}=eu(r),a=ed(i);if(!a)throw Error("useEnvironment: Unrecognized file extension: "+r);o.G.clear(a,ei(r)?[r]:r)}},53733:(e,t,r)=>{function n(){var e=Object.create(null);function t(e,t){var r=void 0;self.troikaDefine=function(e){return r=e};var n=URL.createObjectURL(new Blob(["/** "+e.replace(/\*/g,"")+" **/\n\ntroikaDefine(\n"+t+"\n)"],{type:"application/javascript"}));try{importScripts(n)}catch(e){console.error(e)}return URL.revokeObjectURL(n),delete self.troikaDefine,r}self.addEventListener("message",function(r){var n=r.data,i=n.messageId,a=n.action,o=n.data;try{"registerModule"===a&&function r(n,i){var a=n.id,o=n.name,l=n.dependencies;void 0===l&&(l=[]);var s=n.init;void 0===s&&(s=function(){});var c=n.getTransferables;if(void 0===c&&(c=null),!e[a])try{l=l.map(function(t){return t&&t.isWorkerModule&&(r(t,function(e){if(e instanceof Error)throw e}),t=e[t.id].value),t}),s=t("<"+o+">.init",s),c&&(c=t("<"+o+">.getTransferables",c));var u=null;"function"==typeof s?u=s.apply(void 0,l):console.error("worker module init function failed to rehydrate"),e[a]={id:a,value:u,getTransferables:c},i(u)}catch(e){e&&e.noLog||console.error(e),i(e)}}(o,function(e){e instanceof Error?postMessage({messageId:i,success:!1,error:e.message}):postMessage({messageId:i,success:!0,result:{isCallable:"function"==typeof e}})}),"callModule"===a&&function(t,r){var n,i=t.id,a=t.args;e[i]&&"function"==typeof e[i].value||r(Error("Worker module "+i+": n
114ot found or its 'init' did not return a function"));try{var o=(n=e[i]).value.apply(n,a);o&&"function"==typeof o.then?o.then(l,function(e){return r(e instanceof Error?e:Error(""+e))}):l(o)}catch(e){r(e)}function l(t){try{var n=e[i].getTransferables&&e[i].getTransferables(t);n&&Array.isArray(n)&&n.length||(n=void 0),r(t,n)}catch(e){console.error(e),r(e)}}}(o,function(e,t){e instanceof Error?postMessage({messageId:i,success:!1,error:e.message}):postMessage({messageId:i,success:!0,result:e},t||void 0)})}catch(e){postMessage({messageId:i,success:!1,error:e.stack})}})}r.d(t,{Qw:()=>d,kl:()=>function e(t){if((!t||"function"!=typeof t.init)&&!l)throw Error("requires `options.init` function");var r,n=t.dependencies,o=t.init,s=t.getTransferables,u=t.workerId,d=((r=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return r._getInitResult().then(function(t){if("function"==typeof t)return t.apply(void 0,e);throw Error("Worker module function was called but `init` did not return a callable function")})})._getInitResult=function(){var e=t.dependencies,n=t.init,i=Promise.all(e=Array.isArray(e)?e.map(function(e){return e&&(e=e.onMainThread||e)._getInitResult&&(e=e._getInitResult()),e}):[]).then(function(e){return n.apply(null,e)});return r._getInitResult=function(){return i},i},r);null==u&&(u="#default");var h="workerModule"+ ++a,v=t.name||h,m=null;function g(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(!i())return d.apply(void 0,e);if(!m){m=p(u,"registerModule",g.workerModuleData);var r=function(){m=null,c[u].delete(r)};(c[u]||(c[u]=new Set)).add(r)}return m.then(function(t){if(t.isCallable)return p(u,"callModule",{id:h,args:e});throw Error("Worker module function was called but `init` did not return a callable function")})}return n=n&&n.map(function(t){return"function"!=typeof t||t.workerModuleData||(l=!0,t=e({workerId:u,name:"<"+v+"> function dependency: "+t.name,init:"function(){return (\n"+f(t)+"\n)}"}),l=!1),t&&t.workerModuleData&&(t=t.workerModuleData),t}),g.workerModuleData={isWorkerModule:!0,id:h,name:v,dependencies:n,init:f(o),getTransferables:s&&f(s)},g.onMainThread=d,g}}),r(11087);var i=function(){var e=!1;if("undefined"!=typeof window&&void 0!==window.document)try{new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"}))).terminate(),e=!0}catch(e){console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+e.message+"]")}return i=function(){return e},e},a=0,o=0,l=!1,s=Object.create(null),c=Object.create(null),u=Object.create(null);function d(e){c[e]&&c[e].forEach(function(e){e()}),s[e]&&(s[e].terminate(),delete s[e])}function f(e){var t=e.toString();return!/^function/.test(t)&&/^\w+\s*\(/.test(t)&&(t="function "+t),t}function p(e,t,r){return new Promise(function(i,a){var l=++o;u[l]=function(e){e.success?i(e.result):a(Error("Error in worker "+t+" call: "+e.error))},(function(e){var t=s[e];if(!t){var r=f(n);(t=s[e]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+e.replace(/\*/g,"")+" **/\n\n;("+r+")()"],{type:"application/javascript"})))).onmessage=function(e){var t=e.data,r=t.messageId,n=u[r];if(!n)throw Error("WorkerModule response with empty or unknown messageId");delete u[r],n(t)}}return t})(e).postMessage({messageId:l,action:t,data:r})})}},61911:(e,t,r)=>{r.d(t,{N:()=>m});var n=r(88103),i=r(26465),a=r(10796),o=r(41680),l=Object.defineProperty;class s{constructor(){((e,t,r)=>((e,t,r)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r))(this,"_listeners")}addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let r=this._listeners[e];if(void 0!==r){let e=r.indexOf(t);-1!==e&&r.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let r=t.slice(0);for(let t=0,n=r.length;t<n;t++)r[t].call(this,e);e.target=null}}}var c=Object.defineProperty,u=(e,t,r)=>(((e,t,r)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),r);let d=new o.Ray,f=new o.Plane,p=Math.cos(Math.PI/180*70),h=(e,t)=>(e%t+t)%t;class v extends s{constructor(e,t){super(),u(this,"object"),u(this,"domElement"),u(this,"enabled",!0),u(this,"target",new o.Vector3),u(this,"minDistance",0),u(this,"maxDistance",1/0),u(this,"minZoom",0),u(this,"maxZoom",1/0),u(this,"minPolarAngle",0),u(this,"maxPolarAngle",Math.PI),u(this,"minAzimuthAngle",-1/0),u(this,"maxAzimuthAngle",1/0),u(this,"enableDamping",!1),u(this,"dampingFactor",.05),u(this,"enableZoom",!0),u(this,"zoomSpeed",1),u(this,"enableRotate",!0),u(this,"rotateSpeed",1),u(this,"enablePan",!0),u(this,"panSpeed",1),u(this,"screenSpacePanning",!0),u(this,"keyPanSpeed",7),u(this,"zoomToCursor",!1),u(this,"autoRotate",!1),u(this,"autoRotateSpeed",2),u(this,"reverseOrbit",!1),u(this,"reverseHorizontalOrbit",!1),u(this,"reverseVerticalOrbit",!1),u(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),u(this,"mouseButtons",{LEFT:o.MOUSE.ROTATE,MIDDLE:o.MOUSE.DOLLY,RIGHT:o.MOUSE.PAN}),u(this,"touches",{ONE:o.TOUCH.ROTATE,TWO:o.TOUCH.DOLLY_PAN}),u(this,"target0"),u(this,"position0"),u(this,"zoom0"),u(this,"_domElementKeyEvents",null),u(this,"getPolarAngle"),u(this,"getAzimuthalAngle"),u(this,"setPolarAngle"),u(this,"setAzimuthalAngle"),u(this,"getDistance"),u(this,"getZoomScale"),u(this,"listenToKeyEvents"),u(this,"stopListenToKeyEvents"),u(this,"saveState"),u(this,"reset"),u(this,"update"),u(this,"connect"),u(this,"dispose"),u(this,"dollyIn"),u(this,"dollyOut"),u(this,"getScale"),u(this,"setScale"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>v.phi,this.getAzimuthalAngle=()=>v.theta,this.setPolarAngle=e=>{let t=h(e,2*Math.PI),n=v.phi;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-i<i&&(t<n?t+=2*Math.PI:n+=2*Math.PI),m.phi=t-n,r.update(
114)},this.setAzimuthalAngle=e=>{let t=h(e,2*Math.PI),n=v.theta;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-i<i&&(t<n?t+=2*Math.PI:n+=2*Math.PI),m.theta=t-n,r.update()},this.getDistance=()=>r.object.position.distanceTo(r.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",ee),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",ee),this._domElementKeyEvents=null},this.saveState=()=>{r.target0.copy(r.target),r.position0.copy(r.object.position),r.zoom0=r.object.zoom},this.reset=()=>{r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.zoom=r.zoom0,r.object.updateProjectionMatrix(),r.dispatchEvent(n),r.update(),s=l.NONE},this.update=(()=>{let t=new o.Vector3,i=new o.Vector3(0,1,0),a=new o.Quaternion().setFromUnitVectors(e.up,i),u=a.clone().invert(),h=new o.Vector3,b=new o.Quaternion,w=2*Math.PI;return function(){let x=r.object.position;a.setFromUnitVectors(e.up,i),u.copy(a).invert(),t.copy(x).sub(r.target),t.applyQuaternion(a),v.setFromVector3(t),r.autoRotate&&s===l.NONE&&I(2*Math.PI/60/60*r.autoRotateSpeed),r.enableDamping?(v.theta+=m.theta*r.dampingFactor,v.phi+=m.phi*r.dampingFactor):(v.theta+=m.theta,v.phi+=m.phi);let E=r.minAzimuthAngle,M=r.maxAzimuthAngle;isFinite(E)&&isFinite(M)&&(E<-Math.PI?E+=w:E>Math.PI&&(E-=w),M<-Math.PI?M+=w:M>Math.PI&&(M-=w),E<=M?v.theta=Math.max(E,Math.min(M,v.theta)):v.theta=v.theta>(E+M)/2?Math.max(E,v.theta):Math.min(M,v.theta)),v.phi=Math.max(r.minPolarAngle,Math.min(r.maxPolarAngle,v.phi)),v.makeSafe(),!0===r.enableDamping?r.target.addScaledVector(y,r.dampingFactor):r.target.add(y),r.zoomToCursor&&j||r.object.isOrthographicCamera?v.radius=N(v.radius):v.radius=N(v.radius*g),t.setFromSpherical(v),t.applyQuaternion(u),x.copy(r.target).add(t),r.object.matrixAutoUpdate||r.object.updateMatrix(),r.object.lookAt(r.target),!0===r.enableDamping?(m.theta*=1-r.dampingFactor,m.phi*=1-r.dampingFactor,y.multiplyScalar(1-r.dampingFactor)):(m.set(0,0,0),y.set(0,0,0));let S=!1;if(r.zoomToCursor&&j){let n=null;if(r.object instanceof o.PerspectiveCamera&&r.object.isPerspectiveCamera){let e=t.length();n=N(e*g);let i=e-n;r.object.position.addScaledVector(P,i),r.object.updateMatrixWorld()}else if(r.object.isOrthographicCamera){let e=new o.Vector3(T.x,T.y,0);e.unproject(r.object),r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/g)),r.object.updateProjectionMatrix(),S=!0;let i=new o.Vector3(T.x,T.y,0);i.unproject(r.object),r.object.position.sub(i).add(e),r.object.updateMatrixWorld(),n=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),r.zoomToCursor=!1;null!==n&&(r.screenSpacePanning?r.target.set(0,0,-1).transformDirection(r.object.matrix).multiplyScalar(n).add(r.object.position):(d.origin.copy(r.object.position),d.direction.set(0,0,-1).transformDirection(r.object.matrix),Math.abs(r.object.up.dot(d.direction))<p?e.lookAt(r.target):(f.setFromNormalAndCoplanarPoint(r.object.up,r.target),d.intersectPlane(f,r.target))))}else r.object instanceof o.OrthographicCamera&&r.object.isOrthographicCamera&&(S=1!==g)&&(r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/g)),r.object.updateProjectionMatrix());return g=1,j=!1,!!(S||h.distanceToSquared(r.object.position)>c||8*(1-b.dot(r.object.quaternion))>c)&&(r.dispatchEvent(n),h.copy(r.object.position),b.copy(r.object.quaternion),S=!1,!0)}})(),this.connect=e=>{r.domElement=e,r.domElement.style.touchAction="none",r.domElement.addEventListener("contextmenu",et),r.domElement.addEventListener("pointerdown",Z),r.domElement.addEventListener("pointercancel",Q),r.domElement.addEventListener("wheel",J)},this.dispose=()=>{var e,t,n,i,a,o;r.domElement&&(r.domElement.style.touchAction="auto"),null==(e=r.domElement)||e.removeEventListener("contextmenu",et),null==(t=r.domElement)||t.removeEventListener("pointerdown",Z),null==(n=r.domElement)||n.removeEventListener("pointercancel",Q),null==(i=r.domElement)||i.removeEventListener("wheel",J),null==(a=r.domElement)||a.ownerDocument.removeEventListener("pointermove",K),null==(o=r.domElement)||o.ownerDocument.removeEventListener("pointerup",Q),null!==r._domElementKeyEvents&&r._domElementKeyEvents.removeEventListener("keydown",ee)};let r=this,n={type:"change"},i={type:"start"},a={type:"end"},l={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6}
114,s=l.NONE,c=1e-6,v=new o.Spherical,m=new o.Spherical,g=1,y=new o.Vector3,b=new o.Vector2,w=new o.Vector2,x=new o.Vector2,E=new o.Vector2,M=new o.Vector2,S=new o.Vector2,_=new o.Vector2,C=new o.Vector2,A=new o.Vector2,P=new o.Vector3,T=new o.Vector2,j=!1,R=[],O={};function D(){return Math.pow(.95,r.zoomSpeed)}function I(e){r.reverseOrbit||r.reverseHorizontalOrbit?m.theta+=e:m.theta-=e}function L(e){r.reverseOrbit||r.reverseVerticalOrbit?m.phi+=e:m.phi-=e}let U=(()=>{let e=new o.Vector3;return function(t,r){e.setFromMatrixColumn(r,0),e.multiplyScalar(-t),y.add(e)}})(),k=(()=>{let e=new o.Vector3;return function(t,n){!0===r.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(r.object.up,e)),e.multiplyScalar(t),y.add(e)}})(),F=(()=>{let e=new o.Vector3;return function(t,n){let i=r.domElement;if(i&&r.object instanceof o.PerspectiveCamera&&r.object.isPerspectiveCamera){let a=r.object.position;e.copy(a).sub(r.target);let o=e.length();U(2*t*(o*=Math.tan(r.object.fov/2*Math.PI/180))/i.clientHeight,r.object.matrix),k(2*n*o/i.clientHeight,r.object.matrix)}else i&&r.object instanceof o.OrthographicCamera&&r.object.isOrthographicCamera?(U(t*(r.object.right-r.object.left)/r.object.zoom/i.clientWidth,r.object.matrix),k(n*(r.object.top-r.object.bottom)/r.object.zoom/i.clientHeight,r.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}})();function z(e){r.object instanceof o.PerspectiveCamera&&r.object.isPerspectiveCamera||r.object instanceof o.OrthographicCamera&&r.object.isOrthographicCamera?g=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function B(e){if(!r.zoomToCursor||!r.domElement)return;j=!0;let t=r.domElement.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,a=t.width,o=t.height;T.x=n/a*2-1,T.y=-(i/o*2)+1,P.set(T.x,T.y,1).unproject(r.object).sub(r.object.position).normalize()}function N(e){return Math.max(r.minDistance,Math.min(r.maxDistance,e))}function H(e){b.set(e.clientX,e.clientY)}function V(e){E.set(e.clientX,e.clientY)}function W(){if(1==R.length)b.set(R[0].pageX,R[0].pageY);else{let e=.5*(R[0].pageX+R[1].pageX),t=.5*(R[0].pageY+R[1].pageY);b.set(e,t)}}function G(){if(1==R.length)E.set(R[0].pageX,R[0].pageY);else{let e=.5*(R[0].pageX+R[1].pageX),t=.5*(R[0].pageY+R[1].pageY);E.set(e,t)}}function q(){let e=R[0].pageX-R[1].pageX,t=R[0].pageY-R[1].pageY,r=Math.sqrt(e*e+t*t);_.set(0,r)}function $(e){if(1==R.length)w.set(e.pageX,e.pageY);else{let t=en(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);w.set(r,n)}x.subVectors(w,b).multiplyScalar(r.rotateSpeed);let t=r.domElement;t&&(I(2*Math.PI*x.x/t.clientHeight),L(2*Math.PI*x.y/t.clientHeight)),b.copy(w)}function Y(e){if(1==R.length)M.set(e.pageX,e.pageY);else{let t=en(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);M.set(r,n)}S.subVectors(M,E).multiplyScalar(r.panSpeed),F(S.x,S.y),E.copy(M)}function X(e){var t;let n=en(e),i=e.pageX-n.x,a=e.pageY-n.y,o=Math.sqrt(i*i+a*a);C.set(0,o),A.set(0,Math.pow(C.y/_.y,r.zoomSpeed)),t=A.y,z(g/t),_.copy(C)}function Z(e){var t,n,a;!1!==r.enabled&&(0===R.length&&(null==(t=r.domElement)||t.ownerDocument.addEventListener("pointermove",K),null==(n=r.domElement)||n.ownerDocument.addEventListener("pointerup",Q)),a=e,R.push(a),"touch"===e.pointerType?function(e){switch(er(e),R.length){case 1:switch(r.touches.ONE){case o.TOUCH.ROTATE:if(!1===r.enableRotate)return;W(),s=l.TOUCH_ROTATE;break;case o.TOUCH.PAN:if(!1===r.enablePan)return;G(),s=l.TOUCH_PAN;break;default:s=l.NONE}break;case 2:switch(r.touches.TWO){case o.TOUCH.DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&q(),r.enablePan&&G(),s=l.TOUCH_DOLLY_PAN;break;case o.TOUCH.DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&q(),r.enableRotate&&W(),s=l.TOUCH_DOLLY_ROTATE;break;default:s=l.NONE}break;default:s=l.NONE}s!==l.NONE&&r.dispatchEvent(i)}(e):function(e){let t;switch(e.button){case 0:t=r.mouseButtons.LEFT;break;case 1:t=r.mouseButtons.MIDDLE;break;case 2:t=r.mouseButtons.RIGHT;break;default:t=-1}switch(t){case o.MOUSE.DOLLY:if(!1===r.enableZoom)return;B(e),_.set(e.clientX,e.clientY),s=l.DOLLY;break;case o.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enablePan)return;V(e),s=l.PAN}else{if(!1===r.enableRotate)return;H(e),s=l.ROTATE}break;case o.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enableRotate)return;H(e),s=l.ROTATE}else{if(!1===r.enablePan)return;V(e),s=l.PAN}break;default:s=l.NONE}s!==l.NONE&&r.dispatchEvent(i)}(e))}function K(e){!1!==r.enabled&&("touch"===e.pointerType?function(e){switch(er(e),s){case l.TOUCH_ROTATE:if(!1===r.enableRotate)return;
114$(e),r.update();break;case l.TOUCH_PAN:if(!1===r.enablePan)return;Y(e),r.update();break;case l.TOUCH_DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&X(e),r.enablePan&&Y(e),r.update();break;case l.TOUCH_DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&X(e),r.enableRotate&&$(e),r.update();break;default:s=l.NONE}}(e):function(e){if(!1!==r.enabled)switch(s){case l.ROTATE:if(!1===r.enableRotate)return;w.set(e.clientX,e.clientY),x.subVectors(w,b).multiplyScalar(r.rotateSpeed);let t=r.domElement;t&&(I(2*Math.PI*x.x/t.clientHeight),L(2*Math.PI*x.y/t.clientHeight)),b.copy(w),r.update();break;case l.DOLLY:var n,i;if(!1===r.enableZoom)return;(C.set(e.clientX,e.clientY),A.subVectors(C,_),A.y>0)?(n=D(),z(g/n)):A.y<0&&(i=D(),z(g*i)),_.copy(C),r.update();break;case l.PAN:if(!1===r.enablePan)return;M.set(e.clientX,e.clientY),S.subVectors(M,E).multiplyScalar(r.panSpeed),F(S.x,S.y),E.copy(M),r.update()}}(e))}function Q(e){var t,n,i;(function(e){delete O[e.pointerId];for(let t=0;t<R.length;t++)if(R[t].pointerId==e.pointerId)return void R.splice(t,1)})(e),0===R.length&&(null==(t=r.domElement)||t.releasePointerCapture(e.pointerId),null==(n=r.domElement)||n.ownerDocument.removeEventListener("pointermove",K),null==(i=r.domElement)||i.ownerDocument.removeEventListener("pointerup",Q)),r.dispatchEvent(a),s=l.NONE}function J(e){if(!1!==r.enabled&&!1!==r.enableZoom&&(s===l.NONE||s===l.ROTATE)){var t,n;e.preventDefault(),r.dispatchEvent(i),(B(e),e.deltaY<0)?(t=D(),z(g*t)):e.deltaY>0&&(n=D(),z(g/n)),r.update(),r.dispatchEvent(a)}}function ee(e){if(!1!==r.enabled&&!1!==r.enablePan){let t=!1;switch(e.code){case r.keys.UP:F(0,r.keyPanSpeed),t=!0;break;case r.keys.BOTTOM:F(0,-r.keyPanSpeed),t=!0;break;case r.keys.LEFT:F(r.keyPanSpeed,0),t=!0;break;case r.keys.RIGHT:F(-r.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),r.update())}}function et(e){!1!==r.enabled&&e.preventDefault()}function er(e){let t=O[e.pointerId];void 0===t&&(t=new o.Vector2,O[e.pointerId]=t),t.set(e.pageX,e.pageY)}function en(e){return O[(e.pointerId===R[0].pointerId?R[1]:R[0]).pointerId]}this.dollyIn=(e=D())=>{z(g*e),r.update()},this.dollyOut=(e=D())=>{z(g/e),r.update()},this.getScale=()=>g,this.setScale=e=>{z(e),r.update()},this.getZoomScale=()=>D(),void 0!==t&&this.connect(t),this.update()}}let m=a.forwardRef(({makeDefault:e,camera:t,regress:r,domElement:o,enableDamping:l=!0,keyEvents:s=!1,onChange:c,onStart:u,onEnd:d,...f},p)=>{let h=(0,i.C)(e=>e.invalidate),m=(0,i.C)(e=>e.camera),g=(0,i.C)(e=>e.gl),y=(0,i.C)(e=>e.events),b=(0,i.C)(e=>e.setEvents),w=(0,i.C)(e=>e.set),x=(0,i.C)(e=>e.get),E=(0,i.C)(e=>e.performance),M=t||m,S=o||y.connected||g.domElement,_=a.useMemo(()=>new v(M),[M]);return(0,i.D)(()=>{_.enabled&&_.update()},-1),a.useEffect(()=>(s&&_.connect(!0===s?S:s),_.connect(S),()=>void _.dispose()),[s,S,r,_,h]),a.useEffect(()=>{let e=e=>{h(),r&&E.regress(),c&&c(e)},t=e=>{u&&u(e)},n=e=>{d&&d(e)};return _.addEventListener("change",e),_.addEventListener("start",t),_.addEventListener("end",n),()=>{_.removeEventListener("start",t),_.removeEventListener("end",n),_.removeEventListener("change",e)}},[c,u,d,_,h,b]),a.useEffect(()=>{if(e){let e=x().controls;return w({controls:_}),()=>w({controls:e})}},[e,_]),a.createElement("primitive",(0,n.A)({ref:p,object:_,enableDamping:l},f))})},66050:(e,t,r)=>{r.d(t,{wV:()=>$,AQ:()=>z,Ux:()=>Q});var n=r(35633),i=r(26465),a=r(10796),o=r(41680),l=r(86592);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach(function(t){!function(e,t,r){var n;(t="symbol"==typeof(n=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"))?n:n+"")in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEac
114h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let u=new o.Quaternion;new o.Euler;let d=new o.Vector3;new o.Object3D;let f=new o.Matrix4,p=new o.Vector3,h=new o.Quaternion,v=new o.Vector3,m=({x:e,y:t,z:r,w:n})=>u.set(e,t,r,n),g={fixed:1,dynamic:0,kinematicPosition:2,kinematicVelocity:3},y=e=>g[e],b=e=>e?e instanceof o.Quaternion?[e.x,e.y,e.z,e.w]:e instanceof o.Vector3||e instanceof o.Euler?[e.x,e.y,e.z]:Array.isArray(e)?e:[e]:[0];function w(e){let t=(0,a.useRef)(void 0);return void 0===t.current&&(t.current={value:"function"==typeof e?e():e}),t.current.value}let x=({onStep:e,updatePriority:t})=>((0,i.D)((t,r)=>{e(r)},t),null),E=({onStep:e})=>((e=>{let t=(0,a.useRef)(e),r=(0,a.useRef)(0),n=(0,a.useRef)(0);(0,a.useEffect)(()=>{t.current=e},[e]),(0,a.useEffect)(()=>{let e=()=>{let i=performance.now(),a=i-n.current;r.current=requestAnimationFrame(e),t.current(a/1e3),n.current=i};return r.current=requestAnimationFrame(e),()=>cancelAnimationFrame(r.current)},[])})(t=>{e(t)}),null);var M=(0,a.memo)(({onStep:e,type:t,updatePriority:r})=>"independent"===t?a.createElement(E,{onStep:e}):a.createElement(x,{onStep:e,updatePriority:r}));function S(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}let _=["mass","linearDamping","angularDamping","type","onCollisionEnter","onCollisionExit","onIntersectionEnter","onIntersectionExit","onContactForce","children","canSleep","ccd","gravityScale","softCcdPrediction","ref"],C=["shape","args"],A="Please pick ONLY ONE of the `density`, `mass` and `massProperties` options.",P={sensor:(e,t)=>{e.setSensor(t)},collisionGroups:(e,t)=>{e.setCollisionGroups(t)},solverGroups:(e,t)=>{e.setSolverGroups(t)},friction:(e,t)=>{e.setFriction(t)},frictionCombineRule:(e,t)=>{e.setFrictionCombineRule(t)},restitution:(e,t)=>{e.setRestitution(t)},restitutionCombineRule:(e,t)=>{e.setRestitutionCombineRule(t)},activeCollisionTypes:(e,t)=>{e.setActiveCollisionTypes(t)},contactSkin:(e,t)=>{e.setContactSkin(t)},quaternion:()=>{},position:()=>{},rotation:()=>{},scale:()=>{}},T=Object.keys(P),j={cuboid:"cuboid",ball:"ball",hull:"convexHull",trimesh:"trimesh"},R=e=>({collision:!!(null!=e&&e.onCollisionEnter||null!=e&&e.onCollisionExit||null!=e&&e.onIntersectionEnter||null!=e&&e.onIntersectionExit),contactForce:!!(null!=e&&e.onContactForce)}),O=(e={})=>S(e,_),D=()=>{let e=(0,a.useContext)(U);if(!e)throw Error("react-three-rapier: useRapier must be used within <Physics />!");return e},I=(e,t,r=!0)=>{let[n,i]=(0,a.useState)([]);return(0,a.useEffect)(()=>{e.current&&!1!==t.colliders&&i((({object:e,ignoreMeshColliders:t=!0,options:r})=>{let n=[];e.updateWorldMatrix(!0,!1);let i=e.matrixWorld.clone().invert(),a=e=>{if("isMesh"in e){if(t&&(e=>{let t=!1;return e.traverseAncestors(e=>{"MeshCollider"===e.userData.r3RapierType&&(t=!0)}),t})(e))return;let a=e.getWorldScale(v),l=j[r.colliders||"cuboid"];e.updateWorldMatrix(!0,!1),f.copy(e.matrixWorld).premultiply(i).decompose(p,h,v);let s=new o.Euler().setFromQuaternion(h,"XYZ"),{geometry:u}=e,{args:d,offset:m}=((e,t)=>{switch(t){case"cuboid":{e.computeBoundingBox();let{boundingBox:t}=e,r=t.getSize(new o.Vector3);return{args:[r.x/2,r.y/2,r.z/2],offset:t.getCenter(new o.Vector3)}}case"ball":{e.computeBoundingSphere();let{boundingSphere:t}=e;return{args:[t.radius],offset:t.center}}case"trimesh":{var r;let t=e.index?e.clone():function(e,t=1e-4){t=Math.max(t,Number.EPSILON);let r={},n=e.getIndex(),i=e.getAttribute("position"),a=n?n.count:i.count,l=0,s=Object.keys(e.attributes),c={},u={},d=[],f=["getX","getY","getZ","getW"];for(let t=0,r=s.length;t<r;t++){let r=s[t];c[r]=[];let n=e.morphAttributes[r];n&&(u[r]=Array(n.length).fill(0).map(()=>[]))}let p=Math.pow(10,Math.log10(1/t));for(let t=0;t<a;t++){let i=n?n.getX(t):t,a="";for(let t=0,r=s.length;t<r;t++){let r=s[t],n=e.getAttribute(r),o=n.itemSize;
114for(let e=0;e<o;e++)a+=`${~~(n[f[e]](i)*p)},`}if(a in r)d.push(r[a]);else{for(let t=0,r=s.length;t<r;t++){let r=s[t],n=e.getAttribute(r),a=e.morphAttributes[r],o=n.itemSize,l=c[r],d=u[r];for(let e=0;e<o;e++){let t=f[e];if(l.push(n[t](i)),a)for(let e=0,r=a.length;e<r;e++)d[e].push(a[e][t](i))}}r[a]=l,d.push(l),l++}}let h=e.clone();for(let t=0,r=s.length;t<r;t++){let r=s[t],n=e.getAttribute(r),i=new n.array.constructor(c[r]),a=new o.BufferAttribute(i,n.itemSize,n.normalized);if(h.setAttribute(r,a),r in u)for(let t=0;t<u[r].length;t++){let n=e.morphAttributes[r][t],i=new n.array.constructor(u[r][t]),a=new o.BufferAttribute(i,n.itemSize,n.normalized);h.morphAttributes[r][t]=a}}return h.setIndex(d),h}(e);return{args:[t.attributes.position.array,null==(r=t.index)?void 0:r.array],offset:new o.Vector3}}case"hull":return{args:[e.clone().attributes.position.array],offset:new o.Vector3}}return{args:[],offset:new o.Vector3}})(u,r.colliders||"cuboid"),g=c(c({},O(r)),{},{args:d,shape:l,rotation:[s.x,s.y,s.z],position:[p.x+m.x*a.x,p.y+m.y*a.y,p.z+m.z*a.z],scale:[a.x,a.y,a.z]});n.push(g)}};return r.includeInvisible?e.traverse(a):e.traverseVisible(a),n})({object:e.current,options:t,ignoreMeshColliders:r}))},[t.colliders]),n},L=(0,a.memo)(()=>{let{world:e}=D(),t=(0,a.useRef)(null);return(0,i.D)(()=>{let r=t.current;if(!r)return;let n=e.debugRender(),i=new o.BufferGeometry;i.setAttribute("position",new o.BufferAttribute(n.vertices,3)),i.setAttribute("color",new o.BufferAttribute(n.colors,4)),r.geometry.dispose(),r.geometry=i}),a.createElement("group",null,a.createElement("lineSegments",{ref:t,frustumCulled:!1},a.createElement("lineBasicMaterial",{color:0xffffff,vertexColors:!0}),a.createElement("bufferGeometry",null)))}),U=(0,a.createContext)(void 0),k=(e,t)=>{var r,n,i,a,o,l;return{target:{rigidBody:e.rigidBody.object,collider:e.collider.object,colliderObject:null==(r=e.collider.state)?void 0:r.object,rigidBodyObject:null==(n=e.rigidBody.state)?void 0:n.object},other:{rigidBody:t.rigidBody.object,collider:t.collider.object,colliderObject:null==(i=t.collider.state)?void 0:i.object,rigidBodyObject:null==(a=t.rigidBody.state)?void 0:a.object},rigidBody:t.rigidBody.object,collider:t.collider.object,colliderObject:null==(o=t.collider.state)?void 0:o.object,rigidBodyObject:null==(l=t.rigidBody.state)?void 0:l.object}},F=async()=>{let e=await Promise.resolve().then(r.bind(r,35633));return await e.init(),e},z=e=>{let{colliders:t="cuboid",children:r,timeStep:s=1/60,paused:u=!1,interpolate:d=!0,updatePriority:g,updateLoop:y="follow",debug:b=!1,gravity:x=[0,-9.81,0],allowedLinearError:E=.001,predictionDistance:S=.002,numSolverIterations:_=4,numInternalPgsIterations:C=1,minIslandSize:A=128,maxCcdSubsteps:P=1,contactNaturalFrequency:T=30,lengthUnit:j=1}=e,R=(0,l.DY)(F,["@react-thee/rapier",F]),{invalidate:O}=(0,i.C)(),D=w(()=>new Map),I=w(()=>new Map),z=w(()=>new Map),B=w(()=>new Map),N=w(()=>new n.EventQueue(!1)),H=w(()=>new Set),V=w(()=>new Set),W=w(()=>({filterContactPair:(...e)=>{for(let t of H){let r=t.current(...e);if(null!==r)return r}return null},filterIntersectionPair:(...e)=>{for(let t of V)if(!1===t.current(...e))return!1;return!0}})),G=w(()=>new Set),q=w(()=>new Set),{proxy:$,reset:Y,set:X}=w(()=>(e=>{let t;return{proxy:new Proxy({},{get:(r,n)=>(t||(t=e()),Reflect.get(t,n)),set:(r,n,i)=>(t||(t=e()),Reflect.set(t,n,i))}),reset:()=>{t=void 0},set:e=>{t=e}}})(()=>new R.World((e=>{let[t,r,n]=e;return new o.Vector3(t,r,n)})(x))));(0,a.useEffect)(()=>()=>{$.free(),Y()},[]),(0,a.useEffect)(()=>{$.gravity=(e=>Array.isArray(e)?new n.Vector3(e[0],e[1],e[2]):"number"==typeof e?new n.Vector3(e,e,e):new n.Vector3(e.x,e.y,e.z))(x),$.integrationParameters.numSolverIterations=_,$.integrationParameters.numInternalPgsIterations=C,$.integrationParameters.normalizedAllowedLinearError=E,$.integrationParameters.minIslandSize=A,$.integrationParameters.maxCcdSubsteps=P,$.integrationParameters.normalizedPredictionDistance=S,$.lengthUnit=j,$.integrationParameters.contact_natural_frequency=T},[$,...x,_,C,E,A,P,S,j,T]);let Z=(0,a.useCallback)(e=>{var t;let r=$.getCollider(e),n=B.get(e),i=I.get(e),a=null==r||null==(t=r.parent())?void 0:t.handle,o=void 0!==a?$.getRigidBody(a):void 0,l=o&&void 0!==a?z.get(a):void 0;return{collider:{object:r,events:n,state:i}
114,rigidBody:{object:o,events:l,state:void 0!==a?D.get(a):void 0}}},[]),[K]=(0,a.useState)({previousState:{},accumulator:0}),Q=(0,a.useCallback)(e=>{let t="vary"===s,r=o.MathUtils.clamp(e,0,.5),n=e=>{G.forEach(e=>{e.current($)}),$.timestep=e;let t=H.size>0||V.size>0;$.step(N,t?W:void 0),q.forEach(e=>{e.current($)})};if(t)n(r);else for(K.accumulator+=r;K.accumulator>=s;)d&&(K.previousState={},$.forEachRigidBody(e=>{K.previousState[e.handle]={position:e.translation(),rotation:e.rotation()}})),n(s),K.accumulator-=s;let i=t||!d||u?1:K.accumulator/s;D.forEach((e,t)=>{let r=$.getRigidBody(t),n=z.get(t);if(null!=n&&n.onSleep||null!=n&&n.onWake){var a,o;r.isSleeping()&&!e.isSleeping&&(null==n||null==(a=n.onSleep)||a.call(n)),!r.isSleeping()&&e.isSleeping&&(null==n||null==(o=n.onWake)||o.call(n)),e.isSleeping=r.isSleeping()}if(!r||r.isSleeping()&&!("isInstancedMesh"in e.object)||!e.setMatrix)return;let l=r.translation(),s=r.rotation(),c=K.previousState[t];c&&(f.compose(c.position,m(c.rotation),e.scale).premultiply(e.invertedWorldMatrix).decompose(p,h,v),"mesh"==e.meshType&&(e.object.position.copy(p),e.object.quaternion.copy(h))),f.compose(l,m(s),e.scale).premultiply(e.invertedWorldMatrix).decompose(p,h,v),"instancedMesh"==e.meshType?e.setMatrix(f):(e.object.position.lerp(p,i),e.object.quaternion.slerp(h,i))}),N.drainCollisionEvents((e,t,r)=>{var n,i,a,o,l,s,u,d,f,p,h,v,m,g,y,b,w,x,E,M,S,_,C,A;let P=Z(e),T=Z(t);if(!(null!=P&&P.collider.object)||!(null!=T&&T.collider.object))return;let j=k(P,T),R=k(T,P);r?$.contactPair(P.collider.object,T.collider.object,(e,t)=>{var r,n,i,a,o,l,s,u;null==(r=P.rigidBody.events)||null==(n=r.onCollisionEnter)||n.call(r,c(c({},j),{},{manifold:e,flipped:t})),null==(i=T.rigidBody.events)||null==(a=i.onCollisionEnter)||a.call(i,c(c({},R),{},{manifold:e,flipped:t})),null==(o=P.collider.events)||null==(l=o.onCollisionEnter)||l.call(o,c(c({},j),{},{manifold:e,flipped:t})),null==(s=T.collider.events)||null==(u=s.onCollisionEnter)||u.call(s,c(c({},R),{},{manifold:e,flipped:t}))}):(null==(n=P.rigidBody.events)||null==(i=n.onCollisionExit)||i.call(n,j),null==(a=T.rigidBody.events)||null==(o=a.onCollisionExit)||o.call(a,R),null==(l=P.collider.events)||null==(s=l.onCollisionExit)||s.call(l,j),null==(u=T.collider.events)||null==(d=u.onCollisionExit)||d.call(u,R)),r?$.intersectionPair(P.collider.object,T.collider.object)&&(null==(f=P.rigidBody.events)||null==(p=f.onIntersectionEnter)||p.call(f,j),null==(h=T.rigidBody.events)||null==(v=h.onIntersectionEnter)||v.call(h,R),null==(m=P.collider.events)||null==(g=m.onIntersectionEnter)||g.call(m,j),null==(y=T.collider.events)||null==(b=y.onIntersectionEnter)||b.call(y,R)):(null==(w=P.rigidBody.events)||null==(x=w.onIntersectionExit)||x.call(w,j),null==(E=T.rigidBody.events)||null==(M=E.onIntersectionExit)||M.call(E,R),null==(S=P.collider.events)||null==(_=S.onIntersectionExit)||_.call(S,j),null==(C=T.collider.events)||null==(A=C.onIntersectionExit)||A.call(C,R))}),N.drainContactForceEvents(e=>{var t,r,n,i,a,o,l,s;let u=Z(e.collider1()),d=Z(e.collider2());if(!(null!=u&&u.collider.object)||!(null!=d&&d.collider.object))return;let f=k(u,d),p=k(d,u);null==(t=u.rigidBody.events)||null==(r=t.onContactForce)||r.call(t,c(c({},f),{},{totalForce:e.totalForce(),totalForceMagnitude:e.totalForceMagnitude(),maxForceDirection:e.maxForceDirection(),maxForceMagnitude:e.maxForceMagnitude()})),null==(n=d.rigidBody.events)||null==(i=n.onContactForce)||i.call(n,c(c({},p),{},{totalForce:e.totalForce(),totalForceMagnitude:e.totalForceMagnitude(),maxForceDirection:e.maxForceDirection(),maxForceMagnitude:e.maxForceMagnitude()})),null==(a=u.collider.events)||null==(o=a.onContactForce)||o.call(a,c(c({},f),{},{totalForce:e.totalForce(),totalForceMagnitude:e.totalForceMagnitude(),maxForceDirection:e.maxForceDirection(),maxForceMagnitude:e.maxForceMagnitude()})),null==(l=d.collider.events)||null==(s=l.onContactForce)||s.call(l,c(c({},p),{},{totalForce:e.totalForce(),totalForceMagnitude:e.totalForceMagnitude(),maxForceDirection:e.maxForceDirection(),maxForceMagnitude:e.maxForceMagnitude()}))}),$.forEachActiveRigidBody(()=>{O()})},[u,s,d,$]),J=(0,a.useMemo)(()=>({rapier:R,world:$,setWorld:e=>{X(e)},physicsOptions:{colliders:t,gravity:x}
114,rigidBodyStates:D,colliderStates:I,rigidBodyEvents:z,colliderEvents:B,beforeStepCallbacks:G,afterStepCallbacks:q,isPaused:u,isDebug:b,step:Q,filterContactPairHooks:H,filterIntersectionPairHooks:V}),[u,Q,b,t,x]),ee=(0,a.useCallback)(e=>{u||Q(e)},[u,Q]);return a.createElement(U.Provider,{value:J},a.createElement(M,{onStep:ee,type:y,updatePriority:g}),b&&a.createElement(L,null),r)};function B(){return(B=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let N=(e,t=null)=>{let r=(0,a.useRef)(t);return e&&"function"!=typeof e?(e.current||(e.current=r.current),e):r},H=(e,t,r)=>{let n=(0,a.useRef)(void 0),i=(0,a.useCallback)(()=>(n.current||(n.current=e()),n.current),r);return(0,a.useEffect)(()=>{let e=i();return()=>{t(e),n.current=void 0}},[i]),i},V=["args","colliders","canSleep"],W={gravityScale:(e,t)=>{e.setGravityScale(t,!0)},additionalSolverIterations(e,t){e.setAdditionalSolverIterations(t)},linearDamping:(e,t)=>{e.setLinearDamping(t)},angularDamping:(e,t)=>{e.setAngularDamping(t)},dominanceGroup:(e,t)=>{e.setDominanceGroup(t)},enabledRotations:(e,[t,r,n])=>{e.setEnabledRotations(t,r,n,!0)},enabledTranslations:(e,[t,r,n])=>{e.setEnabledTranslations(t,r,n,!0)},lockRotations:(e,t)=>{e.lockRotations(t,!0)},lockTranslations:(e,t)=>{e.lockTranslations(t,!0)},angularVelocity:(e,[t,r,n])=>{e.setAngvel({x:t,y:r,z:n},!0)},linearVelocity:(e,[t,r,n])=>{e.setLinvel({x:t,y:r,z:n},!0)},ccd:(e,t)=>{e.enableCcd(t)},softCcdPrediction:(e,t)=>{e.setSoftCcdPrediction(t)},userData:(e,t)=>{e.userData=t},type(e,t){e.setBodyType(y(t),!0)},position:()=>{},rotation:()=>{},quaternion:()=>{},scale:()=>{}},G=Object.keys(W),q=(0,a.memo)(e=>{let{children:t,position:r,rotation:i,quaternion:l,scale:s,name:u}=e,{world:m,colliderEvents:g,colliderStates:y}=D(),w=K(),x=N(e.ref),E=(0,a.useRef)(null),M=H(()=>{let t=((e,t,r,i)=>{let a=((e,t,r)=>{let n=t.slice();if("heightfield"===e){let e=n[3];return e.x*=r.x,e.x*=r.y,e.x*=r.z,n}if("trimesh"===e||"convexHull"===e)return n[0]=((e,t)=>{let r=Array.from(e);for(let n=0;n<e.length/3;n++)r[3*n]*=t.x,r[3*n+1]*=t.y,r[3*n+2]*=t.z;return r})(n[0],r),n;let i=[r.x,r.y,r.z,r.x,r.x];return n.map((e,t)=>i[t]*e)})(e.shape,e.args,r),o=n.ColliderDesc[e.shape](...a);return t.createCollider(o,null==i?void 0:i())})(e,m,E.current.getWorldScale((({x:e,y:t,z:r}={x:0,y:0,z:0})=>new o.Vector3(e,t,r))()),null==w?void 0:w.getRigidBody);return"function"==typeof e.ref&&e.ref(t),x.current=t,t},e=>{m.getCollider(e.handle)&&m.removeCollider(e,!0)},[...C.flatMap(t=>Array.isArray(e[t])?e[t]:[e[t]]),w]);(0,a.useEffect)(()=>{let e,t=M();return y.set(t.handle,(e=E.current,{collider:t,worldParent:(null==w?void 0:w.ref.current)||void 0,object:e})),()=>{y.delete(t.handle)}},[M]);let S=(0,a.useMemo)(()=>c(c({},O(null==w?void 0:w.options)),e),[e,null==w?void 0:w.options]);return((e,t,r)=>{let n=(0,a.useMemo)(()=>T.flatMap(e=>b(t[e])),[t]);(0,a.useEffect)(()=>{((e,t,r)=>{let n=r.get(e.handle);if(n){var i;let r=n.object.parent.getWorldScale(d),a=null==(i=n.worldParent)?void 0:i.matrixWorld.clone().invert();n.object.updateWorldMatrix(!0,!1),f.copy(n.object.matrixWorld),a&&f.premultiply(a),f.decompose(p,h,v),e.parent()?(e.setTranslationWrtParent({x:p.x*r.x,y:p.y*r.y,z:p.z*r.z}),e.setRotationWrtParent(h)):(e.setTranslation({x:p.x*r.x,y:p.y*r.y,z:p.z*r.z}),e.setRotation(h)),T.forEach(r=>{if(r in t){let n=t[r];P[r](e,n,t)}}),((e,t)=>{if(void 0!==t.density){if(void 0!==t.mass||void 0!==t.massProperties)throw Error(A);e.setDensity(t.density);return}if(void 0!==t.mass){if(void 0!==t.massProperties)throw Error(A);e.setMass(t.mass);return}void 0!==t.massProperties&&e.setMassProperties(t.massProperties.mass,t.massProperties.centerOfMass,t.massProperties.principalAngularInertia,t.massProperties.angularInertiaLocalFrame)})(e,t)}})(e(),t,r)},[...n,e])})(M,S,y),((e,t,r,i={})=>{let{onCollisionEnter:o,onCollisionExit:l,onIntersectionEnter:s,onIntersectionExit:c,onContactForce:u}=t;(0,a.useEffect)(()=>{let a=e();if(a){let{collision:e,contactForce:d}=R(t),f=e||i.collision,p=d||i.contactForce;f&&p?a.setActiveEvents(n.ActiveEvents.COLLISION_EVENTS|n.ActiveEvents.CONTACT_FORCE_EVENTS):f?a.setActiveEvents(n.ActiveEvents.COLLISION_EVENTS):p&&a.setActiveEvents(n.ActiveEvents.CONTACT_FORCE_EVENTS),r.set(a.handle,{onCollisionEnter:o,onCollisionExit:l,onIntersectionEnter:s,onIntersectionExit:c,onContactForce:u})}return()=>{a&&r.delete(a.handle)}},[o,l,s,c,u,i])})(M,S,g,R(null==w?void 0:w.options)),a.createElement("object3D",{position:r,rotation:i,quaternion:l,scale:s,ref:E,name:u},t)});a.forwardRef((e,t)=>
114a.createElement(q,B({},e,{shape:"cuboid",ref:t}))).displayName="CuboidCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"roundCuboid",ref:t}))).displayName="RoundCuboidCollider";let $=a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"ball",ref:t})));$.displayName="BallCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"capsule",ref:t}))).displayName="CapsuleCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"heightfield",ref:t}))).displayName="HeightfieldCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"trimesh",ref:t}))).displayName="TrimeshCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"cone",ref:t}))).displayName="ConeCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"roundCone",ref:t}))).displayName="RoundConeCollider";let Y=a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"cylinder",ref:t})));Y.displayName="CylinderCollider",Y.displayName="RoundCylinderCollider",a.forwardRef((e,t)=>a.createElement(q,B({},e,{shape:"convexHull",ref:t}))).displayName="ConvexHullCollider";let X=["ref","children","type","position","rotation","scale","quaternion","transformState"],Z=(0,a.createContext)(void 0),K=()=>(0,a.useContext)(Z),Q=(0,a.memo)(e=>{let{ref:t,children:r,type:i,position:o,rotation:l,scale:s,quaternion:u,transformState:d}=e,m=S(e,X),g=(0,a.useRef)(null),w=N(t),{world:x,rigidBodyStates:E,physicsOptions:M,rigidBodyEvents:_}=D(),C=(0,a.useMemo)(()=>c(c(c({},M),e),{},{children:void 0}),[M,e]),A=V.flatMap(e=>Array.isArray(C[e])?[...C[e]]:C[e]),P=I(g,C),T=H(()=>{let e=(e=>{var t;let r=y((null==e?void 0:e.type)||"dynamic"),i=new n.RigidBodyDesc(r);return i.canSleep=null==(t=null==e?void 0:e.canSleep)||t,i})(C),r=x.createRigidBody(e);return"function"==typeof t&&t(r),w.current=r,r},e=>{x.getRigidBody(e.handle)&&x.removeRigidBody(e)},A);(0,a.useEffect)(()=>{let t=T(),r=(({rigidBody:e,object:t,setMatrix:r,getMatrix:n,worldScale:i,meshType:a="mesh"})=>{t.updateWorldMatrix(!0,!1);let o=t.parent.matrixWorld.clone().invert();return{object:t,rigidBody:e,invertedWorldMatrix:o,setMatrix:r||(e=>{t.matrix.copy(e)}),getMatrix:n||(e=>e.copy(t.matrix)),scale:i||t.getWorldScale(v).clone(),isSleeping:!1,meshType:a}})({rigidBody:t,object:g.current});return E.set(t.handle,e.transformState?e.transformState(r):r),()=>{E.delete(t.handle)}},[T]),((e,t,r,n=!0)=>{let i=(0,a.useMemo)(()=>G.flatMap(e=>b(t[e])),[t]);(0,a.useEffect)(()=>{((e,t,r,n=!0)=>{if(!e)return;let i=r.get(e.handle);i&&(n&&(i.object.updateWorldMatrix(!0,!1),f.copy(i.object.matrixWorld).decompose(p,h,v),e.setTranslation(p,!1),e.setRotation(h,!1)),G.forEach(r=>{r in t&&W[r](e,t[r])}))})(e(),t,r,n)},i)})(T,C,E),((e,t,r)=>{let{onWake:n,onSleep:i,onCollisionEnter:o,onCollisionExit:l,onIntersectionEnter:s,onIntersectionExit:c,onContactForce:u}=t,d={onWake:n,onSleep:i,onCollisionEnter:o,onCollisionExit:l,onIntersectionEnter:s,onIntersectionExit:c,onContactForce:u};(0,a.useEffect)(()=>{let t=e();return r.set(t.handle,d),()=>{r.delete(t.handle)}},[n,i,o,l,s,c,u])})(T,C,_);let j=(0,a.useMemo)(()=>({ref:g,getRigidBody:T,options:C}),[T]);return a.createElement(Z.Provider,{value:j},a.createElement("object3D",B({ref:g},m,{position:o,rotation:l,quaternion:u,scale:s}),r,P.map((e,t)=>a.createElement(q,B({key:t},e)))))});Q.displayName="RigidBody",(0,a.memo)(e=>{let{children:t,type:r}=e,{physicsOptions:n}=D(),i=(0,a.useRef)(null),{options:o}=K(),l=I(i,(0,a.useMemo)(()=>c(c(c({},n),o),{},{children:void 0,colliders:r}),[n,o]),!1);return a.createElement("object3D",{ref:i,userData:{r3RapierType:"MeshCollider"}},t,l.map((e,t)=>a.createElement(q,B({key:t},e))))}).displayName="MeshCollider";let J=["ref"],ee=["children","instances","colliderNodes","position","rotation","quaternion","scale"];(0,a.memo)(e=>{let{ref:t}=e,r=S(e,J),n=N(t,[]),i=(0,a.useRef)(null),l=(0,a.useRef)(null),{children:s,instances:u,colliderNodes:d=[],position:f,rotation:p,quaternion:h,scale:v}=r,m=S(r,ee),g=I(i,c(c({},r),{},{children:void 0})),y=()=>{let e=l.current.children[0];if(e&&"isInstancedMesh"in e)return e};return(0,a.useEffect)(()=>{let e=y();e?e.instanceMatrix.setUsage(o.DynamicDrawUsage):console.warn("InstancedRigidBodies expects exactly one child, which must be an InstancedMesh")},[]),a.createElement("object3D",B({ref:i},m,{position:f,rotation:p,quaternion:h,scale:v}),a.createElement("object3D",{ref:l},s),null==u?void 0:u.map((e,t)=>a.createElement(Q,B({},m,e,{ref:e=>{n.current[t]=e},transformState:e=>((e,t)=>{let r=y();return r?c(c({},e),{},{getMatrix:e=>(r.getMatrixAt(t,e),e),setMatrix:e=>
114{r.setMatrixAt(t,e),r.instanceMatrix.needsUpdate=!0},meshType:"instancedMesh"}):e})(e,t)}),a.createElement(a.Fragment,null,d.map((e,t)=>a.createElement(a.Fragment,{key:t},e)),g.map((e,t)=>a.createElement(q,B({key:t},e)))))))}).displayName="InstancedRigidBodies"},66070:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(68406),i=r(94825),a=r(27051);let o=function e(t){function r(e,r,o,l,s){if((c=e._squarify)&&c.ratio===t)for(var c,u,d,f,p,h=-1,v=c.length,m=e.value;++h<v;){for(d=(u=c[h]).children,f=u.value=0,p=d.length;f<p;++f)u.value+=d[f].value;u.dice?(0,n.A)(u,r,o,l,m?o+=(s-o)*u.value/m:s):(0,i.A)(u,r,o,m?r+=(l-r)*u.value/m:l,s),m-=u.value}else e._squarify=c=(0,a.AI)(t,e,r,o,l,s),c.ratio=t}return r.ratio=function(t){return e((t*=1)>1?t:1)},r}(a.U1)},66493:(e,t,r)=>{e.exports=r(27204)},69306:(e,t,r)=>{r.d(t,{Do:()=>i,Fh:()=>f});var n=r(41680);let i=/\bvoid\s+main\s*\(\s*\)\s*{/g;function a(e){return e.replace(/^[ \t]*#include +<([\w\d./]+)>/gm,function(e,t){let r=n.ShaderChunk[t];return r?a(r):e})}let o=[];for(let e=0;e<256;e++)o[e]=(e<16?"0":"")+e.toString(16);let l=Object.assign||function(){let e=arguments[0];for(let t=1,r=arguments.length;t<r;t++){let r=arguments[t];if(r)for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},s=Date.now(),c=new WeakMap,u=new Map,d=1e10;function f(e,t){let r=function(e){let t=JSON.stringify(e,h),r=m.get(t);return null==r&&m.set(t,r=++v),r}(t),i=c.get(e);if(i||c.set(e,i=Object.create(null)),i[r])return new i[r];let g=`_onBeforeCompile${r}`,y=function(n,i){e.onBeforeCompile.call(this,n,i);let o=this.customProgramCacheKey()+"|"+n.vertexShader+"|"+n.fragmentShader,c=u[o];if(!c){let e=function(e,{vertexShader:t,fragmentShader:r},n,i){let{vertexDefs:o,vertexMainIntro:l,vertexMainOutro:s,vertexTransform:c,fragmentDefs:u,fragmentMainIntro:d,fragmentMainOutro:f,fragmentColorTransform:h,customRewriter:v,timeUniform:m}=n;if(o=o||"",l=l||"",s=s||"",u=u||"",d=d||"",f=f||"",(c||v)&&(t=a(t)),(h||v)&&(r=a(r=r.replace(/^[ \t]*#include <((?:tonemapping|encodings|colorspace|fog|premultiplied_alpha|dithering)_fragment)>/gm,"\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n"))),v){let e=v({vertexShader:t,fragmentShader:r});t=e.vertexShader,r=e.fragmentShader}if(h){let e=[];r=r.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,t=>(e.push(t),"")),f=`${h}
115${e.join("\n")}
116${f}`}if(m){let e=`
117uniform float ${m};
118`;o=e+o,u=e+u}return c&&(t=`vec3 troika_position_${i};
119vec3 troika_normal_${i};
120vec2 troika_uv_${i};
121${t}
122`,o=`${o}
123void troikaVertexTransform${i}(inout vec3 position, inout vec3 normal, inout vec2 uv) {
124  ${c}
125}
126`,l=`
127troika_position_${i} = vec3(position);
128troika_normal_${i} = vec3(normal);
129troika_uv_${i} = vec2(uv);
130troikaVertexTransform${i}(troika_position_${i}, troika_normal_${i}, troika_uv_${i});
131${l}
132`,t=t.replace(/\b(position|normal|uv)\b/g,(e,t,r,n)=>
132/\battribute\s+vec[23]\s+$/.test(n.substr(0,r))?t:`troika_${t}_${i}`),e.map&&e.map.channel>0||(t=t.replace(/\bMAP_UV\b/g,`troika_uv_${i}`))),{vertexShader:t=p(t,i,o,l,s),fragmentShader:r=p(r,i,u,d,f)}}(this,n,t,r);c=u[o]=e}n.vertexShader=c.vertexShader,n.fragmentShader=c.fragmentShader,l(n.uniforms,this.uniforms),t.timeUniform&&(n.uniforms[t.timeUniform]={get value(){return Date.now()-s}}),this[g]&&this[g](n)},b=function(){return w(t.chained?e:e.clone())},w=function(n){let i=Object.create(n,x);return Object.defineProperty(i,"baseMaterial",{value:e}),Object.defineProperty(i,"id",{value:d++}),i.uuid=function(){let e=0xffffffff*Math.random()|0,t=0xffffffff*Math.random()|0,r=0xffffffff*Math.random()|0,n=0xffffffff*Math.random()|0;return(o[255&e]+o[e>>8&255]+o[e>>16&255]+o[e>>24&255]+"-"+o[255&t]+o[t>>8&255]+"-"+o[t>>16&15|64]+o[t>>24&255]+"-"+o[63&r|128]+o[r>>8&255]+"-"+o[r>>16&255]+o[r>>24&255]+o[255&n]+o[n>>8&255]+o[n>>16&255]+o[n>>24&255]).toUpperCase()}(),i.uniforms=l({},n.uniforms,t.uniforms),i.defines=l({},n.defines,t.defines),i.defines[`TROIKA_DERIVED_MATERIAL_${r}`]="",i.extensions=l({},n.extensions,t.extensions),i._listeners=void 0,i},x={constructor:{value:b},isDerivedMaterial:{value:!0},type:{get:()=>e.type,set:t=>{e.type=t}},isDerivedFrom:{writable:!0,configurable:!0,value:function(e){let t=this.baseMaterial;return e===t||t.isDerivedMaterial&&t.isDerivedFrom(e)||!1}},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return e.customProgramCacheKey()+"|"+r}},onBeforeCompile:{get:()=>y,set(e){this[g]=e}},copy:{writable:!0,configurable:!0,value:function(t){return e.copy.call(this,t),e.isShaderMaterial||e.isDerivedMaterial||(l(this.extensions,t.extensions),l(this.defines,t.defines),l(this.uniforms,n.UniformsUtils.clone(t.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){return w(new e.constructor).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let r=this._depthMaterial;return r||((r=this._depthMaterial=f(e.isDerivedMaterial?e.getDepthMaterial():new n.MeshDepthMaterial({depthPacking:n.RGBADepthPacking}),t)).defines.IS_DEPTH_MATERIAL="",r.uniforms=this.uniforms),r}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let r=this._distanceMaterial;return r||((r=this._distanceMaterial=f(e.isDerivedMaterial?e.getDistanceMaterial():new n.MeshDistanceMaterial,t)).defines.IS_DISTANCE_MATERIAL="",r.uniforms=this.uniforms),r}},dispose:{writable:!0,configurable:!0,value(){let{_depthMaterial:t,_distanceMaterial:r}=this;t&&t.dispose(),r&&r.dispose(),e.dispose.call(this)}}};return i[r]=b,new b}function p(e,t,r,n,a){return(n||a||r)&&(e=e.replace(i,`
133${r}
134void troikaOrigMain${t}() {`)+`
135void main() {
136  ${n}
137  troikaOrigMain${t}();
138  ${a}
139}`),e}function h(e,t){return"uniforms"===e?void 0:"function"==typeof t?t.toString():t}let v=0,m=new Map,g=`
140uniform vec3 pointA;
141uniform vec3 controlA;
142uniform vec3 controlB;
143uniform vec3 pointB;
144uniform float radius;
145varying float bezierT;
146
147vec3 cubicBezier(vec3 p1, vec3 c1, vec3 c2, vec3 p2, float t) {
148  float t2 = 1.0 - t;
149  float b0 = t2 * t2 * t2;
150  float b1 = 3.0 * t * t2 * t2;
151  float b2 = 3.0 * t * t * t2;
152  float b3 = t * t * t;
153  return b0 * p1 + b1 * c1 + b2 * c2 + b3 * p2;
154}
155
156vec3 cubicBezierDerivative(vec3 p1, vec3 c1, vec3 c2, vec3 p2, float t) {
157  float t2 = 1.0 - t;
158  return -3.0 * p1 * t2 * t2 +
159    c1 * (3.0 * t2 * t2 - 6.0 * t2 * t) +
160    c2 * (6.0 * t2 * t - 3.0 * t * t) +
161    3.0 * p2 * t * t;
162}
163`,y=`
164float t = position.y;
165bezierT = t;
166vec3 bezierCenterPos = cubicBezier(pointA, controlA, controlB, pointB, t);
167vec3 bezierDir = normalize(cubicBezierDerivative(pointA, controlA, controlB, pointB, t));
168
169// Make "sideways" always perpendicular to the camera ray; this ensures that any twists
170// in the cylinder occur where you won't see them: 
171vec3 viewDirection = normalMatrix * vec3(0.0, 0.0, 1.0);
172if (bezierDir == viewDirection) {
173  bezierDir = normalize(cubicBezierDerivative(pointA, controlA, controlB, pointB, t == 1.0 ? t - 0.0001 : t + 0.0001));
174}
175vec3 sideways = normalize(cross(bezierDir, viewDirection));
176vec3 upish = normalize(cross(sideways, bezierDir));
177
178// Build a matrix for transforming this disc in the cylinder:
179mat4 discTx;
180discTx[0].xyz = sideways * radius;
181discTx[1].xyz = bezierDir * radius;
182discTx[2].xyz = upish * radius;
183discTx[3].xyz = bezierCenterPos;
184discTx[3][3] = 1.0;
185
186// Apply transform, ignoring original y
187position = (discTx * vec4(position.x, 0.0, position.z, 1.0)).xyz;
188normal = normalize(mat3(discTx) * normal);
189`,b=`
190uniform vec3 dashing;
191varying float bezierT;
192`,w=`
193if (dashing.x + dashing.y > 0.0) {
194  float dashFrac = mod(bezierT - dashing.z, dashing.x + dashing.y);
195  if (dashFrac > dashing.x) {
196    discard;
197  }
198}
199`,x=null,E=new n.MeshStandardMaterial({color:0xffffff,side:n.DoubleSide});class M extends n.Mesh{static getGeometry(){return x||(x=new n.CylinderGeometry(1,1,1,6,64).translate(0,.5,0))}constructor(){super(M.getGeometry(),E),this.pointA=new n.Vector3,this.controlA=new n.Vector3,this.controlB=new n.Vector3,this.pointB=new n.Vector3,this.radius=.01,this.dashArray=new n.Vector2,this.dashOffset=0,this.frustumCulled=!1}get material(){let e=this._derivedMaterial,t=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=E.clone());return e&&e.baseMaterial===t||(e=this._derivedMaterial=f(t,{chained:!0,uniforms:{pointA:{value:new n.Vector3},controlA:{value:new n.Vector3},controlB:{value:new n.Vector3},pointB:{value:new n.Vector3},radius:{value:.01},dashing:{value:new n.Vector3}},vertexDefs:g,vertexTransform:y,fragmentDefs:b,fragmentMainIntro:w}),t.addEventListener("dispose",function r(){t.removeEventListener("dispose",r),e.dispose()})),e}set material(e){this._baseMaterial=e}get customDepthMaterial(){return this.material.getDepthMaterial()}set customDepthMaterial(e){}get customDistanceMaterial(){return this.material.getDistanceMaterial()}set customDistanceMaterial(e){}onBeforeRender(){let{uniforms:e}=this.material,{pointA:t,controlA:r,controlB:n,pointB:i,radius:a,dashArray:o,dashOffset:l}=this;e.pointA.value.copy(t),e.controlA.value.copy(r),e.controlB.value.copy(n),e.pointB.value.copy(i),e.radius.value=a,e.dashing.value.set(o.x,o.y,l||0)}raycast(){}}},76676:(e,t,r)=>{r.d(t,{_:()=>c});var n=r(88103),i=r(10796),a=r(41680),o=r(26465);let l={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:`
200      varying vec2 vUv;
201
202      void main() {
203
204        vUv = uv;
205        gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
206
207      }
208  `,fragmentShader:`
209    uniform sampler2D tDiffuse;
210    uniform float h;
211
212    varying vec2 vUv;
213
214    void main() {
215
216    	vec4 sum = vec4( 0.0 );
217
218    	sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;
219    	sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;
220    	sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;
221    	sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;
222    	sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;
223    	sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;
224    	sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;
225    	sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;
226    	sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;
227
228    	gl_FragColor = sum;
229
230    }
231  `},s={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:`
232    varying vec2 vUv;
233
234    void main() {
235
236      vUv = uv;
237      gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
238
239    }
240  `,fragmentShader:`
241
242  uniform sampler2D tDiffuse;
243  uniform float v;
244
245  varying vec2 vUv;
246
247  void main() {
248
249    vec4 sum = vec4( 0.0 );
250
251    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;
252    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;
253    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;
254    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;
255    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;
256    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;
257    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;
258    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;
259    sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;
260
261    gl_FragColor = sum;
262
263  }
264  `},c=i.forwardRef(({scale:e=10,frames:t=1/0,opacity:r=1,width:c=1,height:u=1,blur:d=1,near:f=0,far:p=10,resolution:h=512,smooth:v=!0,color:m="#000000",depthWrite:g=!1,renderOrder:y,...b},w)=>{let x,E,M=i.useRef(null),S=(0,o.C)(e=>e.scene),_=(0,o.C)(e=>e.gl),C=i.useRef(null);c*=Array.isArray(e)?e[0]:e||1,u*=Array.isArray(e)?e[1]:e||1;let[A,P,T,j,R,O,D]=i.useMemo(()=>{let e=new a.WebGLRenderTarget(h,h),t=new a.WebGLRenderTarget(h,h);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;let r=new a.PlaneGeometry(c,u).rotateX(Math.PI/2),n=new a.Mesh(r),i=new a.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new a.Color(m)}},e.fragmentShader=e.fragmentShader.replace("void main() {",`uniform vec3 ucolor;
265           void main() {
266          `),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};let o=new a.ShaderMaterial(l),d=new a.ShaderMaterial(s);return d.depthTest=o.depthTest=!1,[e,r,i,n,o,d,t]},[h,c,u,e,m]),I=e=>{j.visible=!0,j.material=R,R.uniforms.tDiffuse.value=A.texture,R.uniforms.h.value=e/256,_.setRenderTarget(D),_.render(j,C.current),j.material=O,O.uniforms.tDiffuse.value=D.texture,O.uniforms.v.value=e/256,_.setRenderTarget(A),_.render(j,C.current),j.visible=!1},L=0;return(0,o.D)(()=>{C.current&&(t===1/0||L<t)&&(L++,x=S.background,E=S.overrideMaterial,M.current.visible=!1,S.background=null,S.overrideMaterial=T,_.setRenderTarget(A),_.render(S,C.current),I(d),v&&I(.4*d),_.setRenderTarget(null),M.current.visible=!0,S.overrideMaterial=E,S.background=x)}),i.useImperativeHandle(w,()=>M.current,[]),i.createElement("group",(0,n.A)({"rotation-x":Math.PI/2},b,{ref:M}),i.createElement("mesh",{renderOrder:y,geometry:P,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},i.createElement("meshBasicMaterial",{transparent:!0,map:A.texture,opacity:r,depthWrite:g})),i.createElement("orthographicCamera",{ref:C,args:[-c/2,c/2,u/2,-u/2,f,p]}))})},76769:(e,t,r)=>{var n=r(10796),i=r(10375),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=i.useSyncExternalStore,l=n.useRef,s=n.useEffect,c=n.useMemo,u=n.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var p=o(e,(d=c(function(){function e(e){if(!s){if(s=!0,o=e,e=n(e),void 0!==i&&f.hasValue){var t=f.value;if(i(t,e))return l=t}return l=e}if(t=l,a(o,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(o=e,t):(o=e,l=r)}var o,l,s=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,n,i]))[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}},77656:(e,t,r)=>{let n,i;r.d(t,{l:()=>D});var a=r(88103),o=r(10796),l=r(41680),s=r(26465);let c=new l.Box3,u=new l.Vector3;class d extends l.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry",this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new l.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new l.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){let t=this.attributes.instanceStart,r=this.attributes.instanceEnd;
266return void 0!==t&&(t.applyMatrix4(e),r.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));let r=new l.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new l.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new l.InterleavedBufferAttribute(r,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e,t=3){let r;e instanceof Float32Array?r=e:Array.isArray(e)&&(r=new Float32Array(e));let n=new l.InstancedInterleavedBuffer(r,2*t,1);return this.setAttribute("instanceColorStart",new l.InterleavedBufferAttribute(n,t,0)),this.setAttribute("instanceColorEnd",new l.InterleavedBufferAttribute(n,t,t)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new l.WireframeGeometry(e.geometry)),this}fromLineSegments(e){let t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new l.Box3);let e=this.attributes.instanceStart,t=this.attributes.instanceEnd;void 0!==e&&void 0!==t&&(this.boundingBox.setFromBufferAttribute(e),c.setFromBufferAttribute(t),this.boundingBox.union(c))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new l.Sphere),null===this.boundingBox&&this.computeBoundingBox();let e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){let r=this.boundingSphere.center;this.boundingBox.getCenter(r);let n=0;for(let i=0,a=e.count;i<a;i++)u.fromBufferAttribute(e,i),n=Math.max(n,r.distanceToSquared(u)),u.fromBufferAttribute(t,i),n=Math.max(n,r.distanceToSquared(u));this.boundingSphere.radius=Math.sqrt(n),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}applyMatrix(e){return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."),this.applyMatrix4(e)}}var f=r(24611);class p extends l.ShaderMaterial{constructor(e){super({type:"LineMaterial",uniforms:l.UniformsUtils.clone(l.UniformsUtils.merge([l.UniformsLib.common,l.UniformsLib.fog,{worldUnits:{value:1},linewidth:{value:1},resolution:{value:new l.Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}}])),vertexShader:`
267				#include <common>
268				#include <fog_pars_vertex>
269				#include <logdepthbuf_pars_vertex>
270				#include <clipping_planes_pars_vertex>
271
272				uniform float linewidth;
273				uniform vec2 resolution;
274
275				attribute vec3 instanceStart;
276				attribute vec3 instanceEnd;
277
278				#ifdef USE_COLOR
279					#ifdef USE_LINE_COLOR_ALPHA
280						varying vec4 vLineColor;
281						attribute vec4 instanceColorStart;
282						attribute vec4 instanceColorEnd;
283					#else
284						varying vec3 vLineColor;
285						attribute vec3 instanceColorStart;
286						attribute vec3 instanceColorEnd;
287					#endif
288				#endif
289
290				#ifdef WORLD_UNITS
291
292					varying vec4 worldPos;
293					varying vec3 worldStart;
294					varying vec3 worldEnd;
295
296					#ifdef USE_DASH
297
298						varying vec2 vUv;
299
300					#endif
301
302				#else
303
304					varying vec2 vUv;
305
306				#endif
307
308				#ifdef USE_DASH
309
310					uniform float dashScale;
311					attribute float instanceDistanceStart;
312					attribute float instanceDistanceEnd;
313					varying float vLineDistance;
314
315				#endif
316
317				void trimSegment( const in vec4 start, inout vec4 end ) {
318
319					// trim end segment so it terminates between the camera plane and the near plane
320
321					// conservative estimate of the near plane
322					float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column
323					float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column
324					float nearEstimate = - 0.5 * b / a;
325
326					float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );
327
328					end.xyz = mix( start.xyz, end.xyz, alpha );
329
330				}
331
332				void main() {
333
334					#ifdef USE_COLOR
335
336						vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;
337
338					#endif
339
340					#ifdef USE_DASH
341
342						vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
343						vUv = uv;
344
345					#endif
346
347					float aspect = resolution.x / resolution.y;
348
349					// camera space
350					vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );
351					vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );
352
353					#ifdef WORLD_UNITS
354
355						worldStart = start.xyz;
356						worldEnd = end.xyz;
357
358					#else
359
360						vUv = uv;
361
362					#endif
363
364					// special case for perspective projection, and segments that terminate either in, or behind, the camera plane
365					// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
366					// but we need to perform ndc-space calculations in the shader, so we must address this issue directly
367					// perhaps there is a more elegant solution -- WestLangley
368
369					bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column
370
371					if ( perspective ) {
372
373						if ( start.z < 0.0 && end.z >= 0.0 ) {
374
375							trimSegment( start, end );
376
377						} else if ( end.z < 0.0 && start.z >= 0.0 ) {
378
379							trimSegment( end, start );
380
381						}
382
383					}
384
385					// clip space
386					vec4 clipStart = projectionMatrix * start;
387					vec4 clipEnd = projectionMatrix * end;
388
389					// ndc space
390					vec3 ndcStart = clipStart.xyz / clipStart.w;
391					vec3 ndcEnd = clipEnd.xyz / clipEnd.w;
392
393					// direction
394					vec2 dir = ndcEnd.xy - ndcStart.xy;
395
396					// account for clip-space aspect ratio
397					dir.x *= aspect;
398					dir = normalize( dir );
399
400					#ifdef WORLD_UNITS
401
402						// get the offset direction as perpendicular to the view vector
403						vec3 worldDir = normalize( end.xyz - start.xyz );
404						vec3 offset;
405						if ( position.y < 0.5 ) {
406
407							offset = normalize( cross( start.xyz, worldDir ) );
408
409						} else {
410
411							offset = normalize( cross( end.xyz, worldDir ) );
412
413						}
414
415						// sign flip
416						if ( position.x < 0.0 ) offset *= - 1.0;
417
418						float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );
419
420						// don't extend the line if we're rendering dashes because we
421						// won't be rendering the endcaps
422						#ifndef USE_DASH
423
424							// extend the line bounds to encompass  endcaps
425							start.xyz += - worldDir * linewidth * 0.5;
426							end.xyz += worldDir * linewidth * 0.5;
427
428							// shift the position of the quad so it hugs the forward edge of the line
429							offset.xy -= dir * forwardOffset;
430							offset.z += 0.5;
431
432						#endif
433
434						// endcaps
435						if ( position.y > 1.0 || position.y < 0.0 ) {
436
437							offset.xy += dir * 2.0 * forwardOffset;
438
439						}
440
441						// adjust for linewidth
442						offset *= linewidth * 0.5;
443
444						// set the world position
445						worldPos = ( position.y < 0.5 ) ? start : end;
446						worldPos.xyz += offset;
447
448						// project the worldpos
449						vec4 clip = projectionMatrix * worldPos;
450
451						// shift the depth of the projected points so the line
452						// segments overlap neatly
453						vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;
454						clip.z = clipPose.z * clip.w;
455
456					#else
457
458						vec2 offset = vec2( dir.y, - dir.x );
459						// undo aspect ratio adjustment
460						dir.x /= aspect;
461						offset.x /= aspect;
462
463						// sign flip
464						if ( position.x < 0.0 ) offset *= - 1.0;
465
466						// endcaps
467						if ( position.y < 0.0 ) {
468
469							offset += - dir;
470
471						} else if ( position.y > 1.0 ) {
472
473							offset += dir;
474
475						}
476
477						// adjust for linewidth
478						offset *= linewidth;
479
480						// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...
481						offset /= resolution.y;
482
483						// select end
484						vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;
485
486						// back to clip space
487						offset *= clip.w;
488
489						clip.xy += offset;
490
491					#endif
492
493					gl_Position = clip;
494
495					vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation
496
497					#include <logdepthbuf_vertex>
498					#include <clipping_planes_vertex>
499					#include <fog_vertex>
500
501				}
502			`,fragmentShader:`
503				uniform vec3 diffuse;
504				uniform float opacity;
505				uniform float linewidth;
506
507				#ifdef USE_DASH
508
509					uniform float dashOffset;
510					uniform float dashSize;
511					uniform float gapSize;
512
513				#endif
514
515				varying float vLineDistance;
516
517				#ifdef WORLD_UNITS
518
519					varying vec4 worldPos;
520					varying vec3 worldStart;
521					varying vec3 worldEnd;
522
523					#ifdef USE_DASH
524
525						varying vec2 vUv;
526
527					#endif
528
529				#else
530
531					varying vec2 vUv;
532
533				#endif
534
535				#include <common>
536				#include <fog_pars_fragment>
537				#include <logdepthbuf_pars_fragment>
538				#include <clipping_planes_pars_fragment>
539
540				#ifdef USE_COLOR
541					#ifdef USE_LINE_COLOR_ALPHA
542						varying vec4 vLineColor;
543					#else
544						varying vec3 vLineColor;
545					#endif
546				#endif
547
548				vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {
549
550					float mua;
551					float mub;
552
553					vec3 p13 = p1 - p3;
554					vec3 p43 = p4 - p3;
555
556					vec3 p21 = p2 - p1;
557
558					float d1343 = dot( p13, p43 );
559					float d4321 = dot( p43, p21 );
560					float d1321 = dot( p13, p21 );
561					float d4343 = dot( p43, p43 );
562					float d2121 = dot( p21, p21 );
563
564					float denom = d2121 * d4343 - d4321 * d4321;
565
566					float numer = d1343 * d4321 - d1321 * d4343;
567
568					mua = numer / denom;
569					mua = clamp( mua, 0.0, 1.0 );
570					mub = ( d1343 + d4321 * ( mua ) ) / d4343;
571					mub = clamp( mub, 0.0, 1.0 );
572
573					return vec2( mua, mub );
574
575				}
576
577				void main() {
578
579					#include <clipping_planes_fragment>
580
581					#ifdef USE_DASH
582
583						if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
584
585						if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
586
587					#endif
588
589					float alpha = opacity;
590
591					#ifdef WORLD_UNITS
592
593						// Find the closest points on the view ray and the line segment
594						vec3 rayEnd = normalize( worldPos.xyz ) * 1e5;
595						vec3 lineDir = worldEnd - worldStart;
596						vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );
597
598						vec3 p1 = worldStart + lineDir * params.x;
599						vec3 p2 = rayEnd * params.y;
600						vec3 delta = p1 - p2;
601						float len = length( delta );
602						float norm = len / linewidth;
603
604						#ifndef USE_DASH
605
606							#ifdef USE_ALPHA_TO_COVERAGE
607
608								float dnorm = fwidth( norm );
609								alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );
610
611							#else
612
613								if ( norm > 0.5 ) {
614
615									discard;
616
617								}
618
619							#endif
620
621						#endif
622
623					#else
624
625						#ifdef USE_ALPHA_TO_COVERAGE
626
627							// artifacts appear on some hardware if a derivative is taken within a conditional
628							float a = vUv.x;
629							float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
630							float len2 = a * a + b * b;
631							float dlen = fwidth( len2 );
632
633							if ( abs( vUv.y ) > 1.0 ) {
634
635								alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );
636
637							}
638
639						#else
640
641							if ( abs( vUv.y ) > 1.0 ) {
642
643								float a = vUv.x;
644								float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
645								float len2 = a * a + b * b;
646
647								if ( len2 > 1.0 ) discard;
648
649							}
650
651						#endif
652
653					#endif
654
655					vec4 diffuseColor = vec4( diffuse, alpha );
656					#ifdef USE_COLOR
657						#ifdef USE_LINE_COLOR_ALPHA
658							diffuseColor *= vLineColor;
659						#else
660							diffuseColor.rgb *= vLineColor;
661						#endif
662					#endif
663
664					#include <logdepthbuf_fragment>
665
666					gl_FragColor = diffuseColor;
667
668					#include <tonemapping_fragment>
669					#include <${f.r>=154?"colorspace_fragment":"encodings_fragment"}>
670					#include <fog_fragment>
671					#include <premultiplied_alpha_fragment>
672
673				}
674			`,clipping:!0}),this.isLineMaterial=!0,this.onBeforeCompile=function(){this.transparent?this.defines.USE_LINE_COLOR_ALPHA="1":delete this.defines.USE_LINE_COLOR_ALPHA},Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(e){!0===e?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(e){!!e!="USE_DASH"in this.defines&&(this.needsUpdate=!0),!0===e?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}
674,alphaToCoverage:{enumerable:!0,get:function(){return"USE_ALPHA_TO_COVERAGE"in this.defines},set:function(e){!!e!="USE_ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),!0===e?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}}let h=f.r>=125?"uv1":"uv2",v=new l.Vector4,m=new l.Vector3,g=new l.Vector3,y=new l.Vector4,b=new l.Vector4,w=new l.Vector4,x=new l.Vector3,E=new l.Matrix4,M=new l.Line3,S=new l.Vector3,_=new l.Box3,C=new l.Sphere,A=new l.Vector4;function P(e,t,r){return A.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),A.multiplyScalar(1/A.w),A.x=i/r.width,A.y=i/r.height,A.applyMatrix4(e.projectionMatrixInverse),A.multiplyScalar(1/A.w),Math.abs(Math.max(A.x,A.y))}class T extends l.Mesh{constructor(e=new d,t=new p({color:0xffffff*Math.random()})){super(e,t),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){let e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,n=new Float32Array(2*t.count);for(let e=0,i=0,a=t.count;e<a;e++,i+=2)m.fromBufferAttribute(t,e),g.fromBufferAttribute(r,e),n[i]=0===i?0:n[i-1],n[i+1]=n[i]+m.distanceTo(g);let i=new l.InstancedInterleavedBuffer(n,2,1);return e.setAttribute("instanceDistanceStart",new l.InterleavedBufferAttribute(i,1,0)),e.setAttribute("instanceDistanceEnd",new l.InterleavedBufferAttribute(i,1,1)),this}raycast(e,t){let r,a,o=this.material.worldUnits,s=e.camera;null!==s||o||console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');let c=void 0!==e.params.Line2&&e.params.Line2.threshold||0;n=e.ray;let u=this.matrixWorld,d=this.geometry,f=this.material;if(i=f.linewidth+c,null===d.boundingSphere&&d.computeBoundingSphere(),C.copy(d.boundingSphere).applyMatrix4(u),o)r=.5*i;else{let e=Math.max(s.near,C.distanceToPoint(n.origin));r=P(s,e,f.resolution)}if(C.radius+=r,!1!==n.intersectsSphere(C)){if(null===d.boundingBox&&d.computeBoundingBox(),_.copy(d.boundingBox).applyMatrix4(u),o)a=.5*i;else{let e=Math.max(s.near,_.distanceToPoint(n.origin));a=P(s,e,f.resolution)}_.expandByScalar(a),!1!==n.intersectsBox(_)&&(o?function(e,t){let r=e.matrixWorld,a=e.geometry,o=a.attributes.instanceStart,s=a.attributes.instanceEnd,c=Math.min(a.instanceCount,o.count);for(let a=0;a<c;a++){M.start.fromBufferAttribute(o,a),M.end.fromBufferAttribute(s,a),M.applyMatrix4(r);let c=new l.Vector3,u=new l.Vector3;n.distanceSqToSegment(M.start,M.end,u,c),u.distanceTo(c)<.5*i&&t.push({point:u,pointOnLine:c,distance:n.origin.distanceTo(u),object:e,face:null,faceIndex:a,uv:null,[h]:null})}}(this,t):function(e,t,r){let a=t.projectionMatrix,o=e.material.resolution,s=e.matrixWorld,c=e.geometry,u=c.attributes.instanceStart,d=c.attributes.instanceEnd,f=Math.min(c.instanceCount,u.count),p=-t.near;n.at(1,w),w.w=1,w.applyMatrix4(t.matrixWorldInverse),w.applyMatrix4(a),w.multiplyScalar(1/w.w),w.x*=o.x/2,w.y*=o.y/2,w.z=0,x.copy(w),E.multiplyMatrices(t.matrixWorldInverse,s);for(let t=0;t<f;t++){if(y.fromBufferAttribute(u,t),b.fromBufferAttribute(d,t),y.w=1,b.w=1,y.applyMatrix4(E),b.applyMatrix4(E),y.z>p&&b.z>p)continue;if(y.z>p){let e=y.z-b.z,t=(y.z-p)/e;y.lerp(b,t)}else if(b.z>p){let e=b.z-y.z,t=(b.z-p)/e;b.lerp(y,t)}y.applyMatrix4(a),b.applyMatrix4(a),y.multiplyScalar(1/y.w),b.multiplyScalar(1/b.w),y.x*=o.x/2,y.y*=o.y/2,b.x*=o.x/2,b.y*=o.y/2,M.start.copy(y),M.start.z=0,M.end.copy(b),M.end.z=0;let c=M.closestPointToPointParameter(x,!0);M.at(c,S);let f=l.MathUtils.lerp(y.z,b.z,c),v=f>=-1&&f<=1,m=x.distanceTo(S)<.5*i;if(v&&m){M.start.fromBufferAttribute(u,t),M.end.fromBufferAttribute(d,t),M.start.applyMatrix4(s),M.end.applyMatrix4(s);let i=new l.Vector3,a=new l.Vector3;n.distanceSqToSegment(M.start,M.end,a,i),r.push({point:a,pointOnLine:i,distance:n.origin.distanceTo(a),object:e,face:null,faceIndex:t,uv:null,[h]:null})}}}(this,s,t))}}onBeforeRender(e){let t=this.material.uniforms;t&&t.resolution&&(e.getViewport(v),this.material.uniforms.resolution.value.set(v.z,v.w))}}class j extends d{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){let t=e.length-3,r=new Float32Array(2*t);for(let n=0;n<t;n+=3)r[2*n]=e[n],r[2*n+1]=e[n+1],r[2*n+2]=e[n+2],r[2*n+3]=e[n+3],r[2*n+4]=e[n+4],r[2*n+5]=e[n+5];return super.setPositions(r),this}setColors(e,t=3){let r=e.length-t,n=new Float32Array(2*r);if(3===t)for(let i=0;i<r;i+=t)n[2*i]=e[i],n[2*i+1]=e[i+1],n[2*i+2]=e[i+2],n[2*i+3]=e[i+3],n[2*i+4]=e[i+4],n[2*i+5]=e[i+5];else for(let i=0;i<r;i+=t)n[2*i]=e[i],n[2*i+1]=e[i+1],n[2*i+2]=e[i+2],n[2*i+3]=e[i+3],n[2*i+4]=e[i+4],n[2*i+5]=e[i+5],n[2*i+6]=e[i+6],n[2*i+7]=e[i+7];return super.setColors(n,t),this}fromLine(e){let t=e.geometry;return this.setPositions(t.attributes.position.array),this}}class R extends T{constructor(e=new j,t=new p({color:0xffffff*Math.random()})){super(e,t),this.isLine2=!0,this.type="Line2"}}let O=o.forwardRef(function({points:e,color:t=0xffffff,vertexColors:r,linewidth:n,lineWidth:i,segments:c,dashed:u,...f},h){var v,m;let g=(0,s.C)(e=>e.size),y=o.useMemo(()=>c?new T:new R,[c]),[b]=o.useState(()=>new p),w=(null==r||null==(v=r[0])?void 0:v.length)===4?4:3,x=o.useMemo(()=>{let n=c?new d:new j,i=e.map(e=>{let t=Array.isArray(e);return e instanceof l.Vector3||e instanceof l.Vector4?[e.x,e.y,e.z]:e instanceof l.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e});if(n.setPositions(i.flat()),r){t=0xffffff;let e=r.map(e=>e instanceof l.Color?e.toArray():e);
674n.setColors(e.flat(),w)}return n},[e,c,r,w]);return o.useLayoutEffect(()=>{y.computeLineDistances()},[e,y]),o.useLayoutEffect(()=>{u?b.defines.USE_DASH="":delete b.defines.USE_DASH,b.needsUpdate=!0},[u,b]),o.useEffect(()=>()=>{x.dispose(),b.dispose()},[x]),o.createElement("primitive",(0,a.A)({object:y,ref:h},f),o.createElement("primitive",{object:x,attach:"geometry"}),o.createElement("primitive",(0,a.A)({object:b,attach:"material",color:t,vertexColors:!!r,resolution:[g.width,g.height],linewidth:null!=(m=null!=n?n:i)?m:1,dashed:u,transparent:4===w},f)))}),D=o.forwardRef(({threshold:e=15,geometry:t,...r},n)=>{let i=o.useRef(null);o.useImperativeHandle(n,()=>i.current,[]);let s=o.useMemo(()=>[0,0,0,1,0,0],[]),c=o.useRef(null),u=o.useRef(null);return o.useLayoutEffect(()=>{let r=i.current.parent,n=null!=t?t:null==r?void 0:r.geometry;if(!n||c.current===n&&u.current===e)return;c.current=n,u.current=e;let a=new l.EdgesGeometry(n,e).attributes.position.array;i.current.geometry.setPositions(a),i.current.geometry.attributes.instanceStart.needsUpdate=!0,i.current.geometry.attributes.instanceEnd.needsUpdate=!0,i.current.computeLineDistances()}),o.createElement(O,(0,a.A)({segments:!0,points:s,ref:i,raycast:()=>null},r))})},85374:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(68406),i=r(94825);function a(e,t,r,a,o){(1&e.depth?i.A:n.A)(e,t,r,a,o)}},86592:(e,t,r)=>{r.d(t,{DY:()=>o,IU:()=>s,uv:()=>l});let n=[];function i(e,t,r=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let n=e.length;if(t.length!==n)return!1;for(let i=0;i<n;i++)if(!r(e[i],t[i]))return!1;return!0}function a(e,t=null,r=!1,o={}){for(let a of(null===t&&(t=[e]),n))if(i(t,a.keys,a.equal)){if(r)return;if(Object.prototype.hasOwnProperty.call(a,"error"))throw a.error;if(Object.prototype.hasOwnProperty.call(a,"response"))return o.lifespan&&o.lifespan>0&&(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.remove,o.lifespan)),a.response;if(!r)throw a.promise}let l={keys:t,equal:o.equal,remove:()=>{let e=n.indexOf(l);-1!==e&&n.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{l.response=e,o.lifespan&&o.lifespan>0&&(l.timeout=setTimeout(l.remove,o.lifespan))}).catch(e=>l.error=e)};if(n.push(l),!r)throw l.promise}let o=(e,t,r)=>a(e,t,!1,r),l=(e,t,r)=>void a(e,t,!0,r),s=e=>{if(void 0===e||0===e.length)n.splice(0,n.length);else{let t=n.find(t=>i(e,t.keys,t.equal));t&&t.remove()}}},87261:(e,t,r)=>{let n,i;r.d(t,{E:()=>b});var a=r(88103),o=r(10796),l=r(64548),s=r(41680),c=r(26465);let u=new s.Vector3,d=new s.Vector3,f=new s.Vector3,p=new s.Vector2;function h(e,t,r){let n=u.setFromMatrixPosition(e.matrixWorld);n.project(t);let i=r.width/2,a=r.height/2;return[n.x*i+i,-(n.y*a)+a]}let v=e=>1e-10>Math.abs(e)?0:e;function m(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=v(t[r]*e.elements[r])+(15!==r?",":")");return r+n}let g=(n=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>m(e,n)),y=(i=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>m(e,i(t),"translate(-50%,-50%)")),b=o.forwardRef(({children:e,eps:t=.001,style:r,className:n,prepend:i,center:m,fullscreen:b,portal:w,distanceFactor:x,sprite:E=!1,transform:M=!1,occlude:S,onOcclude:_,castShadow:C,receiveShadow:A,material:P,geometry:T,zIndexRange:j=[0x1000037,0],calculatePosition:R=h,as:O="div",wrapperClass:D,pointerEvents:I="auto",...L},U)=>{let{gl:k,camera:F,scene:z,size:B,raycaster:N,events:H,viewport:V}=(0,c.C)(),[W]=o.useState(()=>document.createElement(O)),G=o.useRef(null),q=o.useRef(null),$=o.useRef(0),Y=o.useRef([0,0]),X=o.useRef(null),Z=o.useRef(null),K=(null==w?void 0:w.current)||H.connected||k.domElement.parentNode,Q=o.useRef(null),J=o.useRef(!1),ee=o.useMemo(()=>S&&"blending"!==S||Array.isArray(S)&&S.length&&function(e){return e&&"object"==typeof e&&"current"in e}(S[0]),[S]);o.useLayoutEffect(()=>{let e=k.domElement;S&&"blending"===S?(e.style.zIndex=`${Math.floor(j[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[S]),o.useLayoutEffect(()=>{if(q.current){let e=G.current=l.createRoot(W);if(z.updateMatrixWorld(),M)W.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=R(q.current,F,B);W.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return K&&(i?K.prepend(W):K.appendChild(W)),()=>{K&&K.removeChild(W),e.unmount()}}},[K,M]),o.useLayoutEffect(()=>{D&&(W.className=D)},[D]);let et=o.useMemo(()=>M?{position:"absolute",top:0,left:0,width:B.width,height:B.height,transformStyle:"preserve-3d",pointerEvents:"none"}
674:{position:"absolute",transform:m?"translate3d(-50%,-50%,0)":"none",...b&&{top:-B.height/2,left:-B.width/2,width:B.width,height:B.height},...r},[r,m,b,B,M]),er=o.useMemo(()=>({position:"absolute",pointerEvents:I}),[I]);o.useLayoutEffect(()=>{var t,i;J.current=!1,M?null==(t=G.current)||t.render(o.createElement("div",{ref:X,style:et},o.createElement("div",{ref:Z,style:er},o.createElement("div",{ref:U,className:n,style:r,children:e})))):null==(i=G.current)||i.render(o.createElement("div",{ref:U,style:et,className:n,children:e}))});let en=o.useRef(!0);(0,c.D)(e=>{if(q.current){F.updateMatrixWorld(),q.current.updateWorldMatrix(!0,!1);let e=M?Y.current:R(q.current,F,B);if(M||Math.abs($.current-F.zoom)>t||Math.abs(Y.current[0]-e[0])>t||Math.abs(Y.current[1]-e[1])>t){let t=function(e,t){let r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),i=r.sub(n),a=t.getWorldDirection(f);return i.angleTo(a)>Math.PI/2}(q.current,F),r=!1;ee&&(Array.isArray(S)?r=S.map(e=>e.current):"blending"!==S&&(r=[z]));let n=en.current;r?en.current=function(e,t,r,n){let i=u.setFromMatrixPosition(e.matrixWorld),a=i.clone();a.project(t),p.set(a.x,a.y),r.setFromCamera(p,t);let o=r.intersectObjects(n,!0);if(o.length){let e=o[0].distance;return i.distanceTo(r.ray.origin)<e}return!0}(q.current,F,N,r)&&!t:en.current=!t,n!==en.current&&(_?_(!en.current):W.style.display=en.current?"block":"none");let i=Math.floor(j[0]/2),a=S?ee?[j[0],i]:[i-1,0]:j;if(W.style.zIndex=`${function(e,t,r){if(t instanceof s.PerspectiveCamera||t instanceof s.Orthogra
674phicCamera){let n=u.setFromMatrixPosition(e.matrixWorld),i=d.setFromMatrixPosition(t.matrixWorld),a=n.distanceTo(i),o=(r[1]-r[0])/(t.far-t.near),l=r[1]-o*t.far;return Math.round(o*a+l)}}(q.current,F,a)}`,M){let[e,t]=[B.width/2,B.height/2],r=F.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:i,left:a,bottom:o,right:l}=F,s=g(F.matrixWorldInverse),c=n?`scale(${r})translate(${v(-(l+a)/2)}px,${v((i+o)/2)}px)`:`translateZ(${r}px)`,u=q.current.matrixWorld;E&&((u=F.matrixWorldInverse.clone().transpose().copyPosition(u).scale(q.current.scale)).elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),W.style.width=B.width+"px",W.style.height=B.height+"px",W.style.perspective=n?"":`${r}px`,X.current&&Z.current&&(X.current.style.transform=`${c}${s}translate(${e}px,${t}px)`,Z.current.style.transform=y(u,1/((x||10)/400)))}else{let t=void 0===x?1:function(e,t){if(t instanceof s.OrthographicCamera)return t.zoom;if(!(t instanceof s.PerspectiveCamera))return 1;{let r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld);return 1/(2*Math.tan(t.fov*Math.PI/180/2)*r.distanceTo(n))}}(q.current,F)*x;W.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}Y.current=e,$.current=F.zoom}}if(!ee&&Q.current&&!J.current)if(M){if(X.current){let e=X.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){let{isOrthographicCamera:t}=F;if(t||T)L.scale&&(Array.isArray(L.scale)?L.scale instanceof s.Vector3?Q.current.scale.copy(L.scale.clone().divideScalar(1)):Q.current.scale.set(1/L.scale[0],1/L.scale[1],1/L.scale[2]):Q.current.scale.setScalar(1/L.scale));else{let t=(x||10)/400,r=e.clientWidth*t,n=e.clientHeight*t;Q.current.scale.set(r,n,1)}J.current=!0}}}else{let t=W.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){let e=1/V.factor,r=t.clientWidth*e,n=t.clientHeight*e;Q.current.scale.set(r,n,1),J.current=!0}Q.current.lookAt(e.camera.position)}});let ei=o.useMemo(()=>({vertexShader:M?void 0:`
675          /*
676            This shader is from the THREE's SpriteMaterial.
677            We need to turn the backing plane into a Sprite
678            (make it always face the camera) if "transfrom"
679            is false.
680          */
681          #include <common>
682
683          void main() {
684            vec2 center = vec2(0., 1.);
685            float rotation = 0.0;
686
687            // This is somewhat arbitrary, but it seems to work well
688            // Need to figure out how to derive this dynamically if it even matters
689            float size = 0.03;
690
691            vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
692            vec2 scale;
693            scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
694            scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
695
696            bool isPerspective = isPerspectiveMatrix( projectionMatrix );
697            if ( isPerspective ) scale *= - mvPosition.z;
698
699            vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;
700            vec2 rotatedPosition;
701            rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
702            rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
703            mvPosition.xy += rotatedPosition;
704
705            gl_Position = projectionMatrix * mvPosition;
706          }
707      `,fragmentShader:`
708        void main() {
709          gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
710        }
711      `}),[M]);return o.createElement("group",(0,a.A)({},L,{ref:q}),S&&!ee&&o.createElement("mesh",{castShadow:C,receiveShadow:A,ref:Q},T||o.createElement("planeGeometry",null),P||o.createElement("shaderMaterial",{side:s.DoubleSide,vertexShader:ei.vertexShader,fragmentShader:ei.fragmentShader})))})},88103:(e,t,r)=>{r.d(t,{A:()=>n});function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}},88434:(e,t,r)=>{e.exports=r(37179)},88462:(e,t,r)=>{r.d(t,{x:()=>c});var n=r(88103),i=r(10796),a=r(41680),o=r(26465);let l=parseInt(a.REVISION.replace(/\D+/g,"")),s=function(e,t,r,n){var i;return(i=class extends a.ShaderMaterial{constructor(n){for(let i in super({vertexShader:t,fragmentShader:r,...n}),e)this.uniforms[i]=new a.Uniform(e[i]),Object.defineProperty(this,i,{get(){return this.uniforms[i].value},set(e){this.uniforms[i].value=e}});this.uniforms=a.UniformsUtils.clone(this.uniforms)}}).key=a.MathUtils.generateUUID(),i}({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,fadeFrom:1,cellThickness:.5,sectionThickness:1,cellColor:new a.Color,sectionColor:new a.Color,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new a.Vector3,worldPlanePosition:new a.Vector3},`
712    varying vec3 localPosition;
713    varying vec4 worldPosition;
714
715    uniform vec3 worldCamProjPosition;
716    uniform vec3 worldPlanePosition;
717    uniform float fadeDistance;
718    uniform bool infiniteGrid;
719    uniform bool followCamera;
720
721    void main() {
722      localPosition = position.xzy;
723      if (infiniteGrid) localPosition *= 1.0 + fadeDistance;
724      
725      worldPosition = modelMatrix * vec4(localPosition, 1.0);
726      if (followCamera) {
727        worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);
728        localPosition = (inverse(modelMatrix) * worldPosition).xyz;
729      }
730
731      gl_Position = projectionMatrix * viewMatrix * worldPosition;
732    }
733  `,`
734    varying vec3 localPosition;
735    varying vec4 worldPosition;
736
737    uniform vec3 worldCamProjPosition;
738    uniform float cellSize;
739    uniform float sectionSize;
740    uniform vec3 cellColor;
741    uniform vec3 sectionColor;
742    uniform float fadeDistance;
743    uniform float fadeStrength;
744    uniform float fadeFrom;
745    uniform float cellThickness;
746    uniform float sectionThickness;
747
748    float getGrid(float size, float thickness) {
749      vec2 r = localPosition.xz / size;
750      vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
751      float line = min(grid.x, grid.y) + 1.0 - thickness;
752      return 1.0 - min(line, 1.0);
753    }
754
755    void main() {
756      float g1 = getGrid(cellSize, cellThickness);
757      float g2 = getGrid(sectionSize, sectionThickness);
758
759      vec3 from = worldCamProjPosition*vec3(fadeFrom);
760      float dist = distance(from, worldPosition.xyz);
761      float d = 1.0 - min(dist / fadeDistance, 1.0);
762      vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));
763
764      gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));
765      gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);
766      if (gl_FragColor.a <= 0.0) discard;
767
768      #include <tonemapping_fragment>
769      #include <${l>=154?"colorspace_fragment":"encodings_fragment"}>
770    }
771  `),c=i.forwardRef(({args:e,cellColor:t="#000000",sectionColor:r="#2080ff",cellSize:l=.5,sectionSize:c=1,followCamera:u=!1,infiniteGrid:d=!1,fadeDistance:f=100,fadeStrength:p=1,fadeFrom:h=1,cellThickness:v=.5,sectionThickness:m=1,side:g=a.BackSide,...y},b)=>{(0,o.e)({GridMaterial:s});let w=i.useRef(null);i.useImperativeHandle(b,()=>w.current,[]);let x=new a.Plane,E=new a.Vector3(0,1,0),M=new a.Vector3(0,0,0);return(0,o.D)(e=>{x.setFromNormalAndCoplanarPoint(E,M).applyMatrix4(w.current.matrixWorld);let t=w.current.material,r=t.uniforms.worldCamProjPosition,n=t.uniforms.worldPlanePosition;x.projectPoint(e.camera.position,r.value),n.value.set(0,0,0).applyMatrix4(w.current.matrixWorld)}),i.createElement("mesh",(0,n.A)({ref:w,frustumCulled:!1},y),i.createElement("gridMaterial",(0,n.A)({transparent:!0,"extensions-derivatives":!0,side:g},{cellSize:l,sectionSize:c,cellColor:t,sectionColor:r,cellThickness:v,sectionThickness:m},{fadeDistance:f,fadeStrength:p,fadeFrom:h,infiniteGrid:d,followCamera:u})),i.createElement("planeGeometry",{args:e}))})},91837:(e,t,r)=>{r.d(t,{Af:()=>l,Nz:()=>i,u5:()=>s,y3:()=>d});var n=r(10796);function i(e,t,r){if(!e)return;if(!0===r(e))return e;let n=t?e.return:e.child;for(;n;){let e=i(n,t,r);if(e)return e;n=t?null:n.sibling}}function a(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}(()=>{var e,t;return"undefined"!=typeof window&&((null==(e=window.document)?void 0:e.createElement)||(null==(t=window.navigator)?void 0:t.product)==="ReactNative")})()?n.useLayoutEffect:n.useEffect;let o=a(n.createContext(null));class l extends n.Component{render(){return n.createElement(o.Provider,{value:this._reactInternals},this.props.children)}}function s(){let e=n.useContext(o);if(null===e)throw Error("its-fine: useFiber must be called within a <FiberProvider />!");let t=n.useId();return n.useMemo(()=>{for(let r of[e,null==e?void 0:e.alternate]){if(!r)continue;let e=i(r,!1,e=>{let r=e.memoizedState;for(;r;){if(r.memoizedState===t)return!0;r=r.next}});if(e)return e}},[e,t])}let c=Symbol.for("react.context"),u=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===c;function d(){let e=function(){let e=s(),[t]=n.useState(()=>new Map);t.clear();let r=e;for(;r;){let e=r.type;u(e)&&e!==o&&!t.has(e)&&t.set(e,n.use(a(e))),r=r.return}return t}();return n.useMemo(()=>Array.from(e.keys()).reduce((t,r)=>i=>n.createElement(t,null,n.createElement(r.Provider,{...i,value:e.get(r)})),e=>n.createElement(l,{...e})),[e])}},94645:(e,t,r)=>{r.d(t,{I:()=>s});var n=r(88103),i=r(10796),a=r(41680),o=r(26465);class l extends a.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`
772      uniform float time;
773      uniform float radius;
774      uniform float distort;
775      #define GLSLIFY 1
776vec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}
776vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}
777      ${e.vertexShader}
778    `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>",`
779        float updateTime = time / 50.0;
780        float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));
781        vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));
782        `)}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}let s=i.forwardRef(({speed:e=1,...t},r)=>{let[a]=i.useState(()=>new l);return(0,o.D)(t=>a&&(a.time=t.clock.elapsedTime*e)),i.createElement("primitive",(0,n.A)({object:a,ref:r,attach:"material"},t))})}}]);
783//# sourceMappingURL=802.1c3323d34f26bf40.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.