1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[96812],{3140:(e,t,n)=>{e.exports=n(48558)},16574:(e,t,n)=>{e.exports=n(92597)},20785:(e,t,n)=>{n.d(t,{DY:()=>a,IU:()=>s,uv:()=>l});let r=[];function o(e,t,n=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let r=e.length;if(t.length!==r)return!1;for(let o=0;o<r;o++)if(!n(e[o],t[o]))return!1;return!0}function i(e,t=null,n=!1,a={}){for(let i of(null===t&&(t=[e]),r))if(o(t,i.keys,i.equal)){if(n)return;if(Object.prototype.hasOwnProperty.call(i,"error"))throw i.error;if(Object.prototype.hasOwnProperty.call(i,"response"))return a.lifespan&&a.lifespan>0&&(i.timeout&&clearTimeout(i.timeout),i.timeout=setTimeout(i.remove,a.lifespan)),i.response;if(!n)throw i.promise}let l={keys:t,equal:a.equal,remove:()=>{let e=r.indexOf(l);-1!==e&&r.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{l.response=e,a.lifespan&&a.lifespan>0&&(l.timeout=setTimeout(l.remove,a.lifespan))}).catch(e=>l.error=e)};if(r.push(l),!n)throw l.promise}let a=(e,t,n)=>i(e,t,!1,n),l=(e,t,n)=>void i(e,t,!0,n),s=e=>{if(void 0===e||0===e.length)r.splice(0,r.length);else{let t=r.find(t=>o(e,t.keys,t.equal));t&&t.remove()}}},21353:(e,t,n)=>{n.d(t,{A:()=>r});function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}},26822:(e,t,n)=>{let r,o;n.d(t,{E:()=>y});var i=n(21353),a=n(7620),l=n(82748),s=n(66339),c=n(34704);let u=new s.Pq0,d=new s.Pq0,f=new s.Pq0,m=new s.I9Y;function h(e,t,n){let r=u.setFromMatrixPosition(e.matrixWorld);r.project(t);let o=n.width/2,i=n.height/2;return[r.x*o+o,-(r.y*i)+i]}let p=e=>1e-10>Math.abs(e)?0:e;function b(e,t,n=""){let r="matrix3d(";for(let n=0;16!==n;n++)r+=p(t[n]*e.elements[n])+(15!==n?",":")");return n+r}let v=(r=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>b(e,r)),g=(o=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)=>b(e,o(t),"translate(-50%,-50%)")),y=a.forwardRef(({children:e,eps:t=.001,style:n,className:r,prepend:o,center:b,fullscreen:y,portal:E,distanceFactor:w,sprite:x=!1,transform:P=!1,occlude:j,onOcclude:O,castShadow:M,receiveShadow:T,material:L,geometry:S,zIndexRange:k=[0x1000037,0],calculatePosition:A=h,as:I="div",wrapperClass:R,pointerEvents:z="auto",...C},_)=>{let{gl:N,camera:Y,scene:D,size:H,raycaster:F,events:W,viewport:q}=(0,c.C)(),[U]=a.useState(()=>document.createElement(I)),V=a.useRef(null),X=a.useRef(null),Z=a.useRef(0),$=a.useRef([0,0]),B=a.useRef(null),K=a.useRef(null),G=(null==E?void 0:E.current)||W.connected||N.domElement.parentNode,Q=a.useRef(null),J=a.useRef(!1),ee=a.useMemo(()=>{var e;return j&&"blending"!==j||Array.isArray(j)&&j.length&&(e=j[0])&&"object"==typeof e&&"current"in e},[j]);a.useLayoutEffect(()=>{let e=N.domElement;j&&"blending"===j?(e.style.zIndex=`${Math.floor(k[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[j]),a.useLayoutEffect(()=>{if(X.current){let e=V.current=l.createRoot(U);if(D.updateMatrixWorld(),P)U.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=A(X.current,Y,H);U.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return G&&(o?G.prepend(U):G.appendChild(U)),()=>{G&&G.removeChild(U),e.unmount()}}},[G,P]),a.useLayoutEffect(()=>{R&&(U.className=R)},[R]);let et=a.useMemo(()=>P?{position:"absolute",top:0,left:0,width:H.width,height:H.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:b?"translate3d(-50%,-50%,0)":"none",...y&&{top:-H.height/2,left:-H.width/2,width:H.width,height:H.height},...n},[n,b,y,H,P]),en=a.useMemo(()=>({position:"absolute",pointerEvents:z}),[z]);a.useLayoutEffect(()=>{var t,o;J.current=!1,P?null==(t=V.current)||t.render(a.createElement("div",{ref:B,style:et},a.createElement("div",{ref:K,style:en},a.createElement("div",{ref:_,className:r,style:n,children:e})))):null==(o=V.current)||o.render(a.createElement("div",{ref:_,style:et,className:r,children:e}))});let er=a.useRef(!0);(0,c.D)(e=>{if(X.current){Y.updateMatrixWorld(),X.current.updateWorldMatrix(!0,!1);let e=P?$.current:A(X.current,Y,H);if(P||Math.abs(Z.current-Y.zoom)>t||Math.abs($.current[0]-e[0])>t||Math.abs($.current[1]-e[1])>t){var n;let t,r,o,i,a=(n=X.current,t=u.setFromMatrixPosition(n.matrixWorld),r=d.setFromMatrixPosition(Y.matrixWorld),o=t.sub(r),i=Y.getWorldDirection(f),o.angleTo(i)>Math.PI/2),l=!1;ee&&(Array.isArray(j)?l=j.map(e=>e.current):"blending"!==j&&(l=[D]));let c=er.current;l?er.current=function(e,t,n,r){let o=u.setFromMatrixPosition(e.matrixWorld),i=o.clone();i.project(t),m.set(i.x,i.y),n.setFromCamera(m,t);let a=n.intersectObjects(r,!0);if(a.length){let e=a[0].distance;return o.distanceTo(n.ray.origin)<e}return!0}(X.current,Y,F,l)&&!a:er.current=!a,c!==er.current&&(O?O(!er.current):U.style.display=er.current?"block":"none");let h=Math.floor(k[0]/2),b=j?ee?[k[0],h]:[h-1,0]:k;if(U.style.zIndex=`${function(e,t,n){if(t instanceof s.ubm||t instanceof s.qUd){let r=u.setFromMatrixPosition(e.matrixWorld),o=d.setFromMatrixPosition(t.matrixWorld),i=r.distanceTo(o),a=(n[1]-n[0])/(t.far-t.near),l=n[1]-a
1*t.far;return Math.round(a*i+l)}}(X.current,Y,b)}`,P){let[e,t]=[H.width/2,H.height/2],n=Y.projectionMatrix.elements[5]*t,{isOrthographicCamera:r,top:o,left:i,bottom:a,right:l}=Y,s=v(Y.matrixWorldInverse),c=r?`scale(${n})translate(${p(-(l+i)/2)}px,${p((o+a)/2)}px)`:`translateZ(${n}px)`,u=X.current.matrixWorld;x&&((u=Y.matrixWorldInverse.clone().transpose().copyPosition(u).scale(X.current.scale)).elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),U.style.width=H.width+"px",U.style.height=H.height+"px",U.style.perspective=r?"":`${n}px`,B.current&&K.current&&(B.current.style.transform=`${c}${s}translate(${e}px,${t}px)`,K.current.style.transform=g(u,1/((w||10)/400)))}else{let t=void 0===w?1:function(e,t){if(t instanceof s.qUd)return t.zoom;if(!(t instanceof s.ubm))return 1;{let n=u.setFromMatrixPosition(e.matrixWorld),r=d.setFromMatrixPosition(t.matrixWorld);return 1/(2*Math.tan(t.fov*Math.PI/180/2)*n.distanceTo(r))}}(X.current,Y)*w;U.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}$.current=e,Z.current=Y.zoom}}if(!ee&&Q.current&&!J.current)if(P){if(B.current){let e=B.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){let{isOrthographicCamera:t}=Y;if(t||S)C.scale&&(Array.isArray(C.scale)?C.scale instanceof s.Pq0?Q.current.scale.copy(C.scale.clone().divideScalar(1)):Q.current.scale.set(1/C.scale[0],1/C.scale[1],1/C.scale[2]):Q.current.scale.setScalar(1/C.scale));else{let t=(w||10)/400,n=e.clientWidth*t,r=e.clientHeight*t;Q.current.scale.set(n,r,1)}J.current=!0}}}else{let t=U.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){let e=1/q.factor,n=t.clientWidth*e,r=t.clientHeight*e;Q.current.scale.set(n,r,1),J.current=!0}Q.current.lookAt(e.camera.position)}});let eo=a.useMemo(()=>({vertexShader:P?void 0:` 2 /* 3 This shader is from the THREE's SpriteMaterial. 4 We need to turn the backing plane into a Sprite 5 (make it always face the camera) if "transfrom" 6 is false. 7 */ 8 #include <common> 9 10 void main() { 11 vec2 center = vec2(0., 1.); 12 float rotation = 0.0; 13 14 // This is somewhat arbitrary, but it seems to work well 15 // Need to figure out how to derive this dynamically if it even matters 16 float size = 0.03; 17 18 vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); 19 vec2 scale; 20 scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); 21 scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); 22 23 bool isPerspective = isPerspectiveMatrix( projectionMatrix ); 24 if ( isPerspective ) scale *= - mvPosition.z; 25 26 vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; 27 vec2 rotatedPosition; 28 rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; 29 rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; 30 mvPosition.xy += rotatedPosition; 31 32 gl_Position = projectionMatrix * mvPosition; 33 } 34 `,fragmentShader:` 35 void main() { 36 gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); 37 } 38 `}),[P]);return a.createElement("group",(0,i.A)({},C,{ref:X}),j&&!ee&&a.createElement("mesh",{castShadow:M,receiveShadow:T,ref:Q},S||a.createElement("planeGeometry",null),L||a.createElement("shaderMaterial",{side:s.$EB,vertexShader:eo.vertexShader,fragmentShader:eo.fragmentShader})))})},32620:(e,t,n)=>{n.d(t,{N:()=>b});var r=n(21353),o=n(34704),i=n(7620),a=n(66339),l=Object.defineProperty;class s{constructor(){((e,t,n)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?l(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n})(this,"_listeners")}addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let n=this._listeners[e];if(void 0!==n){let e=n.indexOf(t);-1!==e&&n.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 n=t.slice(0);for(let t=0,r=n.length;t<r;t++)n[t].call(this,e);e.target=null}}}
38var c=Object.defineProperty,u=(e,t,n)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?c(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,n};let d=new a.RlV,f=new a.Zcv,m=Math.cos(Math.PI/180*70),h=(e,t)=>(e%t+t)%t;class p extends s{constructor(e,t){super(),u(this,"object"),u(this,"domElement"),u(this,"enabled",!0),u(this,"target",new a.Pq0),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:a.kBv.ROTATE,MIDDLE:a.kBv.DOLLY,RIGHT:a.kBv.PAN}),u(this,"touches",{ONE:a.wtR.ROTATE,TWO:a.wtR.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=()=>p.phi,this.getAzimuthalAngle=()=>p.theta,this.setPolarAngle=e=>{let t=h(e,2*Math.PI),r=p.phi;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let o=Math.abs(t-r);2*Math.PI-o<o&&(t<r?t+=2*Math.PI:r+=2*Math.PI),b.phi=t-r,n.update()},this.setAzimuthalAngle=e=>{let t=h(e,2*Math.PI),r=p.theta;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let o=Math.abs(t-r);2*Math.PI-o<o&&(t<r?t+=2*Math.PI:r+=2*Math.PI),b.theta=t-r,n.update()},this.getDistance=()=>n.object.position.distanceTo(n.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",ee),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",ee),this._domElementKeyEvents=null},this.saveState=()=>{n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=()=>{n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(r),n.update(),s=l.NONE},this.update=(()=>{let t=new a.Pq0,o=new a.Pq0(0,1,0),i=new a.PTz().setFromUnitVectors(e.up,o),u=i.clone().invert(),h=new a.Pq0,y=new a.PTz,E=2*Math.PI;return function(){let w=n.object.position;i.setFromUnitVectors(e.up,o),u.copy(i).invert(),t.copy(w).sub(n.target),t.applyQuaternion(i),p.setFromVector3(t),n.autoRotate&&s===l.NONE&&z(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping?(p.theta+=b.theta*n.dampingFactor,p.phi+=b.phi*n.dampingFactor):(p.theta+=b.theta,p.phi+=b.phi);let x=n.minAzimuthAngle,P=n.maxAzimuthAngle;isFinite(x)&&isFinite(P)&&(x<-Math.PI?x+=E:x>Math.PI&&(x-=E),P<-Math.PI?P+=E:P>Math.PI&&(P-=E),x<=P?p.theta=Math.max(x,Math.min(P,p.theta)):p.theta=p.theta>(x+P)/2?Math.max(x,p.theta):Math.min(P,p.theta)),p.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,p.phi)),p.makeSafe(),!0===n.enableDamping?n.target.addScaledVector(g,n.dampingFactor):n.target.add(g),n.zoomToCursor&&k||n.object.isOrthographicCamera?p.radius=F(p.radius):p.radius=F(p.radius*v),t.setFromSpherical(p),t.applyQuaternion(u),w.copy(n.target).add(t),n.object.matrixAutoUpdate||n.object.updateMatrix(),n.object.lookAt(n.target),!0===n.enableDamping?(b.theta*=1-n.dampingFactor,b.phi*=1-n.dampingFactor,g.multiplyScalar(1-n.dampingFactor)):(b.set(0,0,0),g.set(0,0,0));let j=!1;if(n.zoomToCursor&&k){let r=null;if(n.object instanceof a.ubm&&n.object.isPerspectiveCamera){let e=t.length();r=F(e*v);let o=e-r;n.object.position.addScaledVector(L,o),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){let e=new a.Pq0(S.x,S.y,0);e.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/v)),n.object.updateProjectionMatrix(),j=!0;let o=new a.Pq0(S.x,S.y,0);o.unproject(n.object),n.object.position.sub(o).add(e),n.object.updateMatrixWorld(),r=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;null!==r&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(r).add(n.object.position):(d.origin.copy(n.object.position),d.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(d.direction))<m?e.lookAt(n.target):(f.setFromNormalAndCoplanarPoint(n.object.up,n.target),d.intersectPlane(f,n.target))))}else n.object instanceof a.qUd&&n.object.isOrthographicCamera&&(j=1!==v)&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/v)),n.object.updateProjectionMatrix());return v=1,k=!1,!!(j||h.distanceToSquared(n.object.position)>c||8*(1-y.dot(n.object.quaternion))>c)&&(n.dispatchEvent(r),h.copy(n.object.position),y.copy(n.object.quaternion),j=!1,!0)}})(),this.connect=e=>{n.domElement=e,n.domElement.style.touchAction="none",n.domElement.addEventListener("contextmenu",et),n.domElement.addEventListener("pointerdown",K),n.domElement.addEventListener("pointercancel",Q),n.domElement.addEventListener("wheel",J)},this.dispose=()=>{var e,t,r,o,i,a;n.domElement&&(n.domElement.style.touchAction="auto"),null==(e=n.domElement)||e.removeEventListener("contextmenu",et),null==(t=n.domElement)||t.removeEventListener("pointerdown",K),null==(r=n.domElement)||r.removeEventListener("pointercancel",Q),null==(o=n.domElement)||o.removeEventListener("wheel",J),null==(i=n.domElement)||i.ownerDocument.removeEventListener("pointermove",G),null==(a=n.domElement)||a.ownerDocument.removeEventListener("pointerup",Q),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener("keydown",ee)};const n=this,r={type:"change"},o={type:"start"},i={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};let s=l.NONE;const c=1e-6,p=new a.YHV,b=new a.YHV;let v=1;const g=new a.Pq0,y=new a.I9Y,E=new a.I9Y,w=new a.I9Y,x=new a.I9Y,P=new a.I9Y,j=new a.I9Y,O=new a.I9Y,M=new a.I9Y,T=new a.I9Y,L=new a.Pq0,S=new a.I9Y;let k=!1;const A=[],I={};function R(){return Math.pow(.95,n.zoomSpeed)}function z(e){n.reverseOrbit||n.reverseHorizontalOrbit?b.theta+=e:b.theta-=e}function C(e){n.reverseOrbit||n.reverseVerticalOrbit?b.phi+=e:b.phi-=e}const _=(()=>{let e=new a.Pq0;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),g.add(e)}})(),N=(()=>{let e=new a.Pq0;return function(t,r){!0===n.screenSpacePanning?e.setFromMatrixColumn(r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),g.add(e)}})(),Y=(()=>{let e=new a.Pq0;return function(t,r){let o=n.domElement;if(o&&n.object instanceof a.ubm&&n.object.isPerspectiveCamera){let i=n.object.position;e.copy(i).sub(n.target);let a=e.length();
38_(2*t*(a*=Math.tan(n.object.fov/2*Math.PI/180))/o.clientHeight,n.object.matrix),N(2*r*a/o.clientHeight,n.object.matrix)}else o&&n.object instanceof a.qUd&&n.object.isOrthographicCamera?(_(t*(n.object.right-n.object.left)/n.object.zoom/o.clientWidth,n.object.matrix),N(r*(n.object.top-n.object.bottom)/n.object.zoom/o.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}})();function D(e){n.object instanceof a.ubm&&n.object.isPerspectiveCamera||n.object instanceof a.qUd&&n.object.isOrthographicCamera?v=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function H(e){if(!n.zoomToCursor||!n.domElement)return;k=!0;let t=n.domElement.getBoundingClientRect(),r=e.clientX-t.left,o=e.clientY-t.top,i=t.width,a=t.height;S.x=r/i*2-1,S.y=-(o/a*2)+1,L.set(S.x,S.y,1).unproject(n.object).sub(n.object.position).normalize()}function F(e){return Math.max(n.minDistance,Math.min(n.maxDistance,e))}function W(e){y.set(e.clientX,e.clientY)}function q(e){x.set(e.clientX,e.clientY)}function U(){if(1==A.length)y.set(A[0].pageX,A[0].pageY);else{let e=.5*(A[0].pageX+A[1].pageX),t=.5*(A[0].pageY+A[1].pageY);y.set(e,t)}}function V(){if(1==A.length)x.set(A[0].pageX,A[0].pageY);else{let e=.5*(A[0].pageX+A[1].pageX),t=.5*(A[0].pageY+A[1].pageY);x.set(e,t)}}function X(){let e=A[0].pageX-A[1].pageX,t=A[0].pageY-A[1].pageY,n=Math.sqrt(e*e+t*t);O.set(0,n)}function Z(e){if(1==A.length)E.set(e.pageX,e.pageY);else{let t=er(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);E.set(n,r)}w.subVectors(E,y).multiplyScalar(n.rotateSpeed);let t=n.domElement;t&&(z(2*Math.PI*w.x/t.clientHeight),C(2*Math.PI*w.y/t.clientHeight)),y.copy(E)}function $(e){if(1==A.length)P.set(e.pageX,e.pageY);else{let t=er(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);P.set(n,r)}j.subVectors(P,x).multiplyScalar(n.panSpeed),Y(j.x,j.y),x.copy(P)}function B(e){var t;let r=er(e),o=e.pageX-r.x,i=e.pageY-r.y,a=Math.sqrt(o*o+i*i);M.set(0,a),T.set(0,Math.pow(M.y/O.y,n.zoomSpeed)),t=T.y,D(v/t),O.copy(M)}function K(e){var t,r,i;!1!==n.enabled&&(0===A.length&&(null==(t=n.domElement)||t.ownerDocument.addEventListener("pointermove",G),null==(r=n.domElement)||r.ownerDocument.addEventListener("pointerup",Q)),i=e,A.push(i),"touch"===e.pointerType?function(e){switch(en(e),A.length){case 1:switch(n.touches.ONE){case a.wtR.ROTATE:if(!1===n.enableRotate)return;U(),s=l.TOUCH_ROTATE;break;case a.wtR.PAN:if(!1===n.enablePan)return;V(),s=l.TOUCH_PAN;break;default:s=l.NONE}break;case 2:switch(n.touches.TWO){case a.wtR.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&X(),n.enablePan&&V(),s=l.TOUCH_DOLLY_PAN;break;case a.wtR.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&X(),n.enableRotate&&U(),s=l.TOUCH_DOLLY_ROTATE;break;default:s=l.NONE}break;default:s=l.NONE}s!==l.NONE&&n.dispatchEvent(o)}(e):function(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case a.kBv.DOLLY:if(!1===n.enableZoom)return;H(e),O.set(e.clientX,e.clientY),s=l.DOLLY;break;case a.kBv.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enablePan)return;q(e),s=l.PAN}else{if(!1===n.enableRotate)return;W(e),s=l.ROTATE}break;case a.kBv.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enableRotate)return;W(e),s=l.ROTATE}else{if(!1===n.enablePan)return;q(e),s=l.PAN}break;default:s=l.NONE}s!==l.NONE&&n.dispatchEvent(o)}(e))}function G(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(en(e),s){case l.TOUCH_ROTATE:if(!1===n.enableRotate)return;Z(e),n.update();break;case l.TOUCH_PAN:if(!1===n.enablePan)return;$(e),n.update();break;case l.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&B(e),n.enablePan&&$(e),n.update();break;case l.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&B(e),n.enableRotate&&Z(e),n.update();break;default:s=l.NONE}}(e):function(e){if(!1!==n.enabled)switch(s){case l.ROTATE:let t;if(!1===n.enableRotate)return;E.set(e.clientX,e.clientY),w.subVectors(E,y).multiplyScalar(n.rotateSpeed),(t=n.domElement)&&(z(2*Math.PI*w.x/t.clientHeight),C(2*Math.PI*w.y/t.clientHeight)),y.copy(E),n.update();break;case l.DOLLY:var r,o;
38if(!1===n.enableZoom)return;(M.set(e.clientX,e.clientY),T.subVectors(M,O),T.y>0)?(r=R(),D(v/r)):T.y<0&&(o=R(),D(v*o)),O.copy(M),n.update();break;case l.PAN:if(!1===n.enablePan)return;P.set(e.clientX,e.clientY),j.subVectors(P,x).multiplyScalar(n.panSpeed),Y(j.x,j.y),x.copy(P),n.update()}}(e))}function Q(e){var t,r,o;(function(e){delete I[e.pointerId];for(let t=0;t<A.length;t++)if(A[t].pointerId==e.pointerId)return void A.splice(t,1)})(e),0===A.length&&(null==(t=n.domElement)||t.releasePointerCapture(e.pointerId),null==(r=n.domElement)||r.ownerDocument.removeEventListener("pointermove",G),null==(o=n.domElement)||o.ownerDocument.removeEventListener("pointerup",Q)),n.dispatchEvent(i),s=l.NONE}function J(e){if(!1!==n.enabled&&!1!==n.enableZoom&&(s===l.NONE||s===l.ROTATE)){var t,r;e.preventDefault(),n.dispatchEvent(o),(H(e),e.deltaY<0)?(t=R(),D(v*t)):e.deltaY>0&&(r=R(),D(v/r)),n.update(),n.dispatchEvent(i)}}function ee(e){if(!1!==n.enabled&&!1!==n.enablePan){let t=!1;switch(e.code){case n.keys.UP:Y(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:Y(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:Y(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:Y(-n.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),n.update())}}function et(e){!1!==n.enabled&&e.preventDefault()}function en(e){let t=I[e.pointerId];void 0===t&&(t=new a.I9Y,I[e.pointerId]=t),t.set(e.pageX,e.pageY)}function er(e){return I[(e.pointerId===A[0].pointerId?A[1]:A[0]).pointerId]}this.dollyIn=(e=R())=>{D(v*e),n.update()},this.dollyOut=(e=R())=>{D(v/e),n.update()},this.getScale=()=>v,this.setScale=e=>{D(e),n.update()},this.getZoomScale=()=>R(),void 0!==t&&this.connect(t),this.update()}}let b=i.forwardRef(({makeDefault:e,camera:t,regress:n,domElement:a,enableDamping:l=!0,keyEvents:s=!1,onChange:c,onStart:u,onEnd:d,...f},m)=>{let h=(0,o.C)(e=>e.invalidate),b=(0,o.C)(e=>e.camera),v=(0,o.C)(e=>e.gl),g=(0,o.C)(e=>e.events),y=(0,o.C)(e=>e.setEvents),E=(0,o.C)(e=>e.set),w=(0,o.C)(e=>e.get),x=(0,o.C)(e=>e.performance),P=t||b,j=a||g.connected||v.domElement,O=i.useMemo(()=>new p(P),[P]);return(0,o.D)(()=>{O.enabled&&O.update()},-1),i.useEffect(()=>(s&&O.connect(!0===s?j:s),O.connect(j),()=>void O.dispose()),[s,j,n,O,h]),i.useEffect(()=>{let e=e=>{h(),n&&x.regress(),c&&c(e)},t=e=>{u&&u(e)},r=e=>{d&&d(e)};return O.addEventListener("change",e),O.addEventListener("start",t),O.addEventListener("end",r),()=>{O.removeEventListener("start",t),O.removeEventListener("end",r),O.removeEventListener("change",e)}},[c,u,d,O,h,y]),i.useEffect(()=>{if(e){let e=w().controls;return E({controls:O}),()=>E({controls:e})}},[e,O]),i.createElement("primitive",(0,r.A)({ref:m,object:O,enableDamping:l},f))})},37479:(e,t,n)=>{n.d(t,{Af:()=>c,Nz:()=>a,u5:()=>u,y3:()=>m});var r,o,i=n(7620);function a(e,t,n){if(!e)return;if(!0===n(e))return e;let r=t?e.return:e.child;for(;r;){let e=a(r,t,n);if(e)return e;r=t?null:r.sibling}}function l(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}"undefined"!=typeof window&&((null==(r=window.document)?void 0:r.createElement)||(null==(o=window.navigator)?void 0:o.product)==="ReactNative")?i.useLayoutEffect:i.useEffect;let s=l(i.createContext(null));class c extends i.Component{render(){return i.createElement(s.Provider,{value:this._reactInternals},this.props.children)}}function u(){let e=i.useContext(s);if(null===e)throw Error("its-fine: useFiber must be called within a <FiberProvider />!");let t=i.useId();return i.useMemo(()=>{for(let n of[e,null==e?void 0:e.alternate]){if(!n)continue;let e=a(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}let d=Symbol.for("react.context"),f=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===d;function m(){let e=function(){let e=u(),[t]=i.useState(()=>new Map);t.clear();let n=e;for(;n;){let e=n.type;f(e)&&e!==s&&!t.has(e)&&t.set(e,i.use(l(e))),n=n.return}return t}();return i.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>r=>i.createElement(t,null,i.createElement(n.Provider,{...r,value:e.get(n)})),e=>i.createElement(c,{...e})),[e])}},37995:(e,t)=>{function n(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,o=e[r];if(0<i(o,t))e[r]=t,e[n]=o,n=r;else break}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,o=e.length,a=o>>>1;r<a;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>i(s,n))c<o&&0>i(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else if(c<o&&0>i(u,n))e[r]=u,e[c]=n,r=c;else break}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var a,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,m=null,h=3,p=!1,b=!1,v=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,E="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=r(d);null!==t;){if(null===t.callback)o(d);else if(t.startTime<=e)o(d),t.sortIndex=t.expirationTime,n(u,t);else break;t=r(d)}}function P(e){if(v=!1,x(e),!b)if(null!==r(u))b=!0,j||(j=!0,a());else{var t=r(d);null!==t&&I(P,t.startTime-e)}}var j=!1,O=-1,M=5,T=-1;function L(){return!!g||!(t.unstable_now()-T<M)}function S(){if(g=!1,j){var e=t.unstable_now();T=e;var n=!0;try{e:{b=!1,v&&(v=!1,E(O),O=-1),p=!0;var i=h;try{t:{for(x(e),m=r(u);null!==m&&!(m.expirationTime>e&&L());){var l=m.callback;if("function"==typeof l){m.callback=null,h=m.priorityLevel;var s=l(m.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){m.callback=s,x(e),n=!0;break t}m===r(u)&&o(u),x(e)}else o(u);m=r(u)}if(null!==m)n=!0;else{var c=r(d);null!==c&&I(P,c.startTime-e),n=!1}}break e}finally{m=null,h=i,p=!1}}}finally{n?a():j=!1}}}if("function"==typeof w)a=function(){w(S)};else if("undefined"!=typeof MessageChannel){var k=new MessageChannel,A=k.port2;k.port1.onmessage=S,a=function(){A.postMessage(null)}}else a=function(){y(S,0)};function I(e,n){O=y(function(){e(t.unstable_now())},n)}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_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"):M=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var n=h;h=t;try{return e()}finally{h=n}},t.unstable_requestPaint=function(){g=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=h;h=e;try{return t()}finally{h=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch(i="object"==typeof i&&null!==i&&"number"==typeof(i=i.delay)&&0<i?l+i:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=i+s,e={id:f++,callback:o,priorityLevel:e,startTime:i,expirationTime:s,sortIndex:-1},i>l?(e.sortIndex=i,n(d,e),null===r(u)&&e===r(d)&&(v?(E(O),O=-1):v=!0,I(P,i-l))):(e.sortIndex=s,n(u,e),b||p||(b=!0,j||(j=!0,a()))),e},t.unstable_shouldYield=L,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},46546:(e,t,n)=>{n.d(t,{Hl:()=>d});var r=n(34704),o=n(7620),i=n(21572);function a(e,t){let n;return(...r)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...r),t)}}let l=["x","y","top","bottom","left","right","width","height"];var s=n(37479),c=n(54568);function u({ref:e,children:t,fallback:n,resize:s,style:u,gl:d,events:f=r.f,eventSource:m,eventPrefix:h,shadows:p,linear:b,flat:v,legacy:g,orthographic:y,frameloop:E,dpr:w,performance:x,raycaster:P,camera:j,scene:O,onPointerMissed:M,onCreated:T,...L}){o.useMemo(()=>(0,r.e)(i),[]);let S=(0,r.u)(),[k,A]=function({debounce:e,scroll:t,polyfill:n,offsetSize:r}={debounce:0,scroll:!1,offsetSize:!1}){var i,s,c;let u=n||("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,o.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}
38),m=(0,o.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:d,orientationHandler:null}),h=e?"number"==typeof e?e:e.scroll:null,p=e?"number"==typeof e?e:e.resize:null,b=(0,o.useRef)(!1);(0,o.useEffect)(()=>(b.current=!0,()=>void(b.current=!1)));let[v,g,y]=(0,o.useMemo)(()=>{let e=()=>{let e,t;if(!m.current.element)return;let{left:n,top:o,width:i,height:a,bottom:s,right:c,x:u,y:d}=m.current.element.getBoundingClientRect(),h={left:n,top:o,width:i,height:a,bottom:s,right:c,x:u,y:d};m.current.element instanceof HTMLElement&&r&&(h.height=m.current.element.offsetHeight,h.width=m.current.element.offsetWidth),Object.freeze(h),b.current&&(e=m.current.lastBounds,t=h,!l.every(n=>e[n]===t[n]))&&f(m.current.lastBounds=h)};return[e,p?a(e,p):e,h?a(e,h):e]},[f,r,h,p]);function E(){m.current.scrollContainers&&(m.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",y,!0)),m.current.scrollContainers=null),m.current.resizeObserver&&(m.current.resizeObserver.disconnect(),m.current.resizeObserver=null),m.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",m.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",m.current.orientationHandler))}function w(){m.current.element&&(m.current.resizeObserver=new u(y),m.current.resizeObserver.observe(m.current.element),t&&m.current.scrollContainers&&m.current.scrollContainers.forEach(e=>e.addEventListener("scroll",y,{capture:!0,passive:!0})),m.current.orientationHandler=()=>{y()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",m.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",m.current.orientationHandler))}return i=y,s=!!t,(0,o.useEffect)(()=>{if(s)return window.addEventListener("scroll",i,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",i,!0)},[i,s]),c=g,(0,o.useEffect)(()=>(window.addEventListener("resize",c),()=>void window.removeEventListener("resize",c)),[c]),(0,o.useEffect)(()=>{E(),w()},[t,y,g]),(0,o.useEffect)(()=>E,[]),[e=>{e&&e!==m.current.element&&(E(),m.current.element=e,m.current.scrollContainers=function e(t){let n=[];if(!t||t===document.body)return n;let{overflow:r,overflowX:o,overflowY:i}=window.getComputedStyle(t);return[r,o,i].some(e=>"auto"===e||"scroll"===e)&&n.push(t),[...n,...e(t.parentElement)]}(e),w())},d,v]}({scroll:!0,debounce:{scroll:50,resize:0},...s}),I=o.useRef(null),R=o.useRef(null);o.useImperativeHandle(e,()=>I.current);let z=(0,r.a)(M),[C,_]=o.useState(!1),[N,Y]=o.useState(!1);if(C)throw C;if(N)throw N;let D=o.useRef(null);(0,r.b)(()=>{let e=I.current;A.width>0&&A.height>0&&e&&(D.current||(D.current=(0,r.c)(e)),async function(){await D.current.configure({gl:d,scene:O,events:f,shadows:p,linear:b,flat:v,legacy:g,orthographic:y,frameloop:E,dpr:w,performance:x,raycaster:P,camera:j,size:A,onPointerMissed:(...e)=>null==z.current?void 0:z.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(m?(0,r.i)(m)?m.current:m:R.current),h&&e.setEvents({compute:(e,t)=>{let n=e[h+"X"],r=e[h+"Y"];t.pointer.set(n/t.size.width*2-1,-(2*(r/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==T||T(e)}}),D.current.render((0,c.jsx)(S,{children:(0,c.jsx)(r.E,{set:Y,children:(0,c.jsx)(o.Suspense,{fallback:(0,c.jsx)(r.B,{set:_}),children:null!=t?t:null})})}))}())}),o.useEffect(()=>{let e=I.current;if(e)return()=>(0,r.d)(e)},[]);let H=m?"none":"auto";return(0,c.jsx)("div",{ref:R,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:H,...u},...L,children:(0,c.jsx)("div",{ref:k,style:{width:"100%",height:"100%"},children:(0,c.jsx)("canvas",{ref:I,style:{display:"block"},children:n})})})}function d(e){return(0,c.jsx)(s.Af,{children:(0,c.jsx)(u,{...e})})}n(94594)},48558:(e,t,n)=>{var r=n(7620),o=n(16574),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=o.useSyncExternalStore,l=r.useRef,s=r.useEffect,c=r.useMemo,u=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var m=a(e,(d=c(function(){function e(e){if(!s){if(s=!0,a=e,e=r(e),void 0!==o&&f.hasValue){var t=f.value;if(o(t,e))return l=t}return l=e}if(t=l,i(a,e))return t;var n=r(e);return void 0!==o&&o(t,n)?(a=e,t):(a=e,l=n)}var a,l,s=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]}
38,[t,n,r,o]))[0],d[1]);return s(function(){f.hasValue=!0,f.value=m},[m]),u(m),m}},62447:(e,t,n)=>{n.d(t,{h:()=>s});var r=n(7620),o=n(3140);let i=e=>{let t,n=new Set,r=(e,r)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},o=()=>t,i={setState:r,getState:o,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e))},a=t=e(r,o,i);return i},{useSyncExternalStoreWithSelector:a}=o,l=(e,t)=>{let n=e?i(e):i,o=(e,o=t)=>(function(e,t=e=>e,n){let o=a(e.subscribe,e.getState,e.getInitialState,t,n);return r.useDebugValue(o),o})(n,e,o);return Object.assign(o,n),o},s=(e,t)=>e?l(e,t):l},92597:(e,t,n)=>{var r=n(7620),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useState,a=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return l(function(){o.value=n,o.getSnapshot=t,c(o)&&u({inst:o})},[e,n,t]),a(function(){return c(o)&&u({inst:o}),e(function(){c(o)&&u({inst:o})})},[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},94594:(e,t,n)=>{e.exports=n(37995)}}]);
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.