@needle-tools/engine 3.7.3-alpha.2 → 3.7.4-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3842,7 +3842,7 @@ outputColor=vec4(color,inputColor.a);}`,lb=class extends vo{constructor({blendFu
3842
3842
  irradiance += 0.;
3843
3843
  #else
3844
3844
  irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
3845
- #endif`),zA.lightmap.lightmapScaleOffset={value:new Ie(1,1,0,0)};const vZ=CA("debugplayerview");var QC=(t=>(t.Browser="browser",t.Headset="headset",t.Handheld="handheld",t))(QC||{});class bb{constructor(A,e){r(this,"userId"),r(this,"context"),r(this,"viewDevice","browser"),r(this,"removed",!1),r(this,"_object"),this.userId=A,this.context=e}get currentObject(){return this._object}set currentObject(A){this._object=A}get isConnected(){return this.context.connection.userIsInRoom(this.userId)}}class Lb{constructor(A){r(this,"context"),r(this,"playerViews",new Map),this.context=A}setPlayerView(A,e,g){let i=this.playerViews.get(A);i||(i=new bb(A,this.context),this.playerViews.set(A,i)),i.viewDevice=g,i.currentObject=e,i.removed=!1}getPlayerView(A){if(!!A){if(!this.context.connection.userIsInRoom(A)){this.playerViews.delete(A);return}return this.playerViews.get(A)}}removePlayerView(A,e){const g=this.playerViews.get(A);g?.viewDevice===e&&(vZ&&console.log("REMOVE",A),g.removed=!0,this.playerViews.delete(A))}}const sQ=CA("debugcontext"),bZ=CA("stats"),LZ=CA("debugactive"),xZ=CA("debugframerate"),YZ=CA("debugcoroutine"),HZ={};class TZ{constructor(A){r(this,"name"),r(this,"alias"),r(this,"domElement"),r(this,"renderer"),r(this,"hash"),this.domElement=A??document.body}}var MI=(t=>(t[t.EarlyUpdate=0]="EarlyUpdate",t[t.Update=1]="Update",t[t.LateUpdate=2]="LateUpdate",t[t.OnBeforeRender=3]="OnBeforeRender",t[t.OnAfterRender=4]="OnAfterRender",t[t.PrePhysicsStep=9]="PrePhysicsStep",t[t.PostPhysicsStep=10]="PostPhysicsStep",t[t.Undefined=-1]="Undefined",t))(MI||{}),Bc=(t=>(t.ImmersiveVR="immersive-vr",t.ImmersiveAR="immersive-ar",t))(Bc||{});function hD(t,A){if(!t)return;const e=A?.new_scripts??be.Current.new_scripts;e.includes(t)||e.push(t)}const Eg=class{constructor(t){r(this,"name"),r(this,"alias"),r(this,"isManagedExternally",!1),r(this,"isPaused",!1),r(this,"runInBackground",!1),r(this,"targetFrameRate"),r(this,"hash"),r(this,"domElement"),r(this,"_resolutionScaleFactor",1),r(this,"_boundingClientRectFrame",-1),r(this,"_boundingClientRect",null),r(this,"_domX"),r(this,"_domY"),r(this,"xrSessionMode"),r(this,"_xrFrame",null),r(this,"_currentFrameEvent",-1),r(this,"scene"),r(this,"renderer"),r(this,"composer",null),r(this,"scripts",[]),r(this,"scripts_pausedChanged",[]),r(this,"scripts_earlyUpdate",[]),r(this,"scripts_update",[]),r(this,"scripts_lateUpdate",[]),r(this,"scripts_onBeforeRender",[]),r(this,"scripts_onAfterRender",[]),r(this,"scripts_WithCorroutines",[]),r(this,"coroutines",{}),r(this,"mainCameraComponent"),r(this,"post_setup_callbacks",[]),r(this,"pre_update_callbacks",[]),r(this,"pre_render_callbacks",[]),r(this,"post_render_callbacks",[]),r(this,"new_scripts",[]),r(this,"new_script_start",[]),r(this,"new_scripts_pre_setup_callbacks",[]),r(this,"new_scripts_post_setup_callbacks",[]),r(this,"application"),r(this,"time"),r(this,"input"),r(this,"physics"),r(this,"connection"),r(this,"assets"),r(this,"mainLight",null),r(this,"sceneLighting"),r(this,"addressables"),r(this,"lightmaps"),r(this,"players"),r(this,"_sizeChanged",!1),r(this,"_isCreated",!1),r(this,"_isCreating",!1),r(this,"_isVisible",!1),r(this,"_stats",bZ?uZ():null),r(this,"_intersectionObserver",null),r(this,"_disposeCallbacks",[]),r(this,"_cameraStack",[]),r(this,"_onBeforeRenderListeners",new Map),r(this,"_onAfterRenderListeners",new Map),r(this,"_requireDepthTexture",!1),r(this,"_requireColorTexture",!1),r(this,"_renderTarget"),r(this,"_isRendering",!1),r(this,"_accumulatedTime",0),r(this,"_framerateClock",new tu),r(this,"_dispatchReadyAfterFrame",!1),r(this,"_wasPaused",!1),this.name=t?.name||"",this.alias=t?.alias,this.domElement=t?.domElement||document.body,this.hash=t?.hash,t!=null&&t.renderer?(this.renderer=t.renderer,this.isManagedExternally=!0):this.createRenderer(),this.scene=new gI,mt.register(this),this.application=new Jb(this),this.time=new LJ,this.input=new yJ(this),this.physics=new vJ(this),this.connection=new sv(this),this.assets=new Fv,this.sceneLighting=new Nb(this),this.addressables=new Ub(this),this.lightmaps=new qZ(this),this.players=new Lb(this);const A=()=>this._sizeChanged=!0;window.addEventListener("resize",A),this._disposeCallbacks.push(()=>window.removeEventListener("resize",A));const e=new ResizeObserver(g=>this._sizeChanged=!0);e.observe(this.domElement),this._disposeCallbacks.push(()=>e.disconnect()),this._intersectionObserver=new IntersectionObserver(g=>{this._isVisible=g[0].isIntersecting}),this._disposeCallbacks.push(()=>{var g;return(g=this._intersectionObserver)==null?void 0:g.disconnect()})}static get DefaultTargetFrameRate(){return Eg._defaultTargetFramerate.value}static set DefaultTargetFrameRate(t){Eg._defaultTargetFramerate.value=t}get version(){return Tu}static get Current(){return mt.Current}static set Current(t){mt.Current=t}appendHTMLElement(t){return this.domElement.shadowRoot?this.domElement.shadowRoot.appendChild(t):this.domElement.appendChild(t)}get resolutionScaleFactor(){return this._resolutionScaleFactor}set resolutionScaleFactor(t){if(t!==this._resolutionScaleFactor&&typeof t=="number"){if(t<=0){console.error("Invalid resolution scale factor",t);return}this._resolutionScaleFactor=t,this.updateSize()}}calculateBoundingClientRect(){if(this.isInAR){this._domX=0,this._domY=0;return}this._boundingClientRectFrame!==this.time.frame&&(this._boundingClientRectFrame=this.time.frame,this._boundingClientRect=this.domElement.getBoundingClientRect(),this._domX=this._boundingClientRect.x,this._domY=this._boundingClientRect.y)}get domWidth(){return this.isInAR?window.innerWidth:this.domElement.clientWidth}get domHeight(){return this.isInAR?window.innerHeight:this.domElement.clientHeight}get domX(){return this.calculateBoundingClientRect(),this._domX}get domY(){return this.calculateBoundingClientRect(),this._domY}get isInXR(){var t;return((t=this.renderer.xr)==null?void 0:t.isPresenting)||!1}get isInVR(){return this.xrSessionMode==="immersive-vr"}get isInAR(){return this.xrSessionMode==="immersive-ar"}get xrSession(){var t;return(t=this.renderer.xr)==null?void 0:t.getSession()}get xrFrame(){return this._xrFrame}get arOverlayElement(){const t=this.domElement;return typeof t.getAROverlayContainer=="function"?t.getAROverlayContainer():this.domElement}get currentFrameEvent(){return this._currentFrameEvent}get mainCamera(){if(this.mainCameraComponent){const t=this.mainCameraComponent;return t.cam||t.buildCamera(),t.cam}return null}get rendererData(){return this.sceneLighting}get isCreated(){return this._isCreated}createRenderer(){var t,A,e;(t=this.renderer)==null||t.dispose();const g={antialias:!0},i=(e=(A=this.domElement)==null?void 0:A.shadowRoot)==null?void 0:e.querySelector("canvas");i&&(g.canvas=i),this.renderer=new LB(g),this.renderer.toneMappingExposure=1,this.renderer.toneMapping=Ki,this.renderer.setClearColor(new SA("lightgrey"),0),this.renderer.antialias=!0,this.renderer.alpha=!1,this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=TS,this.renderer.setSize(this.domWidth,this.domHeight),this.renderer.outputEncoding=ue,this.renderer.physicallyCorrectLights=!0}internalOnUpdateVisible(){var t,A;(t=this._intersectionObserver)==null||t.disconnect(),(A=this._intersectionObserver)==null||A.observe(this.domElement)}updateSize(){var t,A,e;if(!this.isManagedExternally&&((t=this.renderer.xr)==null?void 0:t.isPresenting)===!1){this._sizeChanged=!1;const g=this.resolutionScaleFactor,i=this.domWidth*g,I=this.domHeight*g,o=this.mainCamera;this.updateAspect(o),this.renderer.setSize(i,I),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.style.width="100%",this.renderer.domElement.style.height="100%",this.composer&&((A=this.composer.setSize)==null||A.call(this.composer,i,I),"setPixelRatio"in this.composer&&typeof this.composer.setPixelRatio=="function"&&((e=this.composer.setPixelRatio)==null||e.call(this.composer,window.devicePixelRatio)))}}updateAspect(t,A,e){if(!t)return;A===void 0&&(A=this.domWidth),e===void 0&&(e=this.domHeight);const g=t.aspect;t.aspect=A/e,g!==t.aspect&&t.updateProjectionMatrix()}async onCreate(t,A){try{return this._isCreating=!0,await this.internalOnCreate(t,A)}finally{this._isCreating=!1}}clear(){var t,A,e,g;mt.dispatchCallback(Qi.ContextClearing,this),ds(this.scene,!0,!0),this.scene=new gI,(t=this.addressables)==null||t.dispose(),(A=this.lightmaps)==null||A.clear(),(g=(e=this.physics)==null?void 0:e.engine)==null||g.clearCaches(),this.isManagedExternally||(this.renderer.renderLists.dispose(),this.renderer.state.reset(),this.renderer.resetState()),mt.dispatchCallback(Qi.ContextCleared,this)}dispose(){this.internalOnDestroy()}onDestroy(){this.internalOnDestroy()}internalOnDestroy(){var t,A;this.clear(),(t=this.renderer)==null||t.setAnimationLoop(null),this.renderer&&(this.renderer.setClearAlpha(0),this.renderer.clear()),this.isManagedExternally||this.renderer.dispose(),this.scene=null,this.renderer=null,this.input.dispose();for(const e of this._disposeCallbacks)try{e()}catch(g){console.error("Error in on dispose callback:",g,e)}(A=this.domElement)!=null&&A.parentElement&&this.domElement.parentElement.removeChild(this.domElement),mt.dispatchCallback(Qi.ContextDestroyed,this),mt.unregister(this)}registerCoroutineUpdate(t,A,e){return this.coroutines[e]||(this.coroutines[e]=[]),this.coroutines[e].push({comp:t,main:A}),A}unregisterCoroutineUpdate(t,A){if(!this.coroutines[A])return;const e=this.coroutines[A].findIndex(g=>g.main===t);e>=0&&this.coroutines[A].splice(e,1)}stopAllCoroutinesFrom(t){for(const A in this.coroutines){const e=this.coroutines[A];for(let g=e.length-1;g>=0;g--)e[g].comp===t&&e.splice(g,1)}}setCurrentCamera(t){var A;if(!t)return;if(t.cam||t.buildCamera(),!t.cam){console.warn("Camera component is missing camera",t);return}const e=this._cameraStack.indexOf(t);e>=0&&this._cameraStack.splice(e,1),this._cameraStack.push(t),this.mainCameraComponent=t;const g=t.cam;g.isPerspectiveCamera&&this.updateAspect(g),(A=this.mainCameraComponent)==null||A.applyClearFlagsIfIsActiveCamera()}removeCamera(t){if(!t)return;const A=this._cameraStack.indexOf(t);if(A>=0&&this._cameraStack.splice(A,1),this.mainCameraComponent===t&&(this.mainCameraComponent=void 0,this._cameraStack.length>0)){const e=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(e)}}addBeforeRenderListener(t,A){var e;this._onBeforeRenderListeners.has(t.uuid)||(this._onBeforeRenderListeners.set(t.uuid,[]),t.onBeforeRender=this._createRenderCallbackWrapper(t,this._onBeforeRenderListeners)),(e=this._onBeforeRenderListeners.get(t.uuid))==null||e.push(A)}removeBeforeRenderListener(t,A){if(this._onBeforeRenderListeners.has(t.uuid)){const e=this._onBeforeRenderListeners.get(t.uuid),g=e.indexOf(A);g>=0&&e.splice(g,1)}}addAfterRenderListener(t,A){var e;this._onAfterRenderListeners.has(t.uuid)||(this._onAfterRenderListeners.set(t.uuid,[]),t.onAfterRender=this._createRenderCallbackWrapper(t,this._onAfterRenderListeners)),(e=this._onAfterRenderListeners.get(t.uuid))==null||e.push(A)}removeAfterRenderListener(t,A){if(this._onAfterRenderListeners.has(t.uuid)){const e=this._onAfterRenderListeners.get(t.uuid),g=e.indexOf(A);g>=0&&e.splice(g,1)}}_createRenderCallbackWrapper(t,A){return(e,g,i,I,o,C)=>{const s=A.get(t.uuid);if(s)for(let a=0;a<s.length;a++){const n=s[a];n(e,g,i,I,o,C)}}}get isRendering(){return this._isRendering}setRequireDepth(t){this._requireDepthTexture=t}setRequireColor(t){this._requireColorTexture=t}get depthTexture(){var t;return((t=this._renderTarget)==null?void 0:t.depthTexture)||null}get opaqueColorTexture(){var t;return((t=this._renderTarget)==null?void 0:t.texture)||null}get isVisibleToUser(){if(this.isInXR)return!0;if(!this._isVisible)return!1;const t=getComputedStyle(this.domElement);return t.visibility!=="hidden"&&t.display!=="none"&&t.opacity!=="0"}async internalOnCreate(t,A){var e,g;this.clear(),(e=this.renderer)==null||e.setAnimationLoop(null),await XE(1),Eg.Current=this,await mt.dispatchCallback(Qi.ContextCreationStart,this);let i=!0,I;try{Eg.Current=this,t&&(I=await t(this,A))}catch(o){console.error(o),i=!1}if(!i)return!1;if(this.internalOnUpdateVisible(),!this.renderer)return sQ&&console.warn("Context has no renderer (perhaps it was disconnected?",this.domElement.isConnected),!1;!this.isManagedExternally&&!this.domElement.shadowRoot&&this.domElement.prepend(this.renderer.domElement),Eg.Current=this,Eg.Current=this;for(let o=0;o<this.new_scripts.length;o++){const C=this.new_scripts[o];if(C.gameObject!==void 0&&C.gameObject!==null){C.gameObject.userData===void 0&&(C.gameObject.userData={}),C.gameObject.userData.components===void 0&&(C.gameObject.userData.components=[]);const s=C.gameObject.userData.components;s.includes(C)||s.push(C)}}if(this.post_setup_callbacks)for(let o=0;o<this.post_setup_callbacks.length;o++)Eg.Current=this,await this.post_setup_callbacks[o](this);if(!this.mainCamera){Eg.Current=this;let o=null;lr(this.scene,C=>{const s=C;if(s!=null&&s.isCamera){if(Cc(s.gameObject),!s.activeAndEnabled)return;if(s.tag==="MainCamera")return o=s,!0;o=s}}),o?this.setCurrentCamera(o):!mt.dispatchCallback(Qi.MissingCamera,this)&&!this.mainCamera&&!this.isManagedExternally&&console.warn("Missing camera in main scene",this)}if(Eg.Current=this,eD(this),!this.isManagedExternally&&this.composer&&this.mainCamera){const o=new aD(this.scene,this.mainCamera);this.renderer.setSize(this.domWidth,this.domHeight),this.composer.addPass(o),this.composer.setSize(this.domWidth,this.domHeight)}return this._sizeChanged=!0,this._stats&&(this._stats.showPanel(0),(g=this.domElement.shadowRoot)==null||g.appendChild(this._stats.dom)),sQ&&uu(this.scene,!0),this.targetFrameRate===void 0?(sQ&&console.warn("No target framerate set, using default",Eg.DefaultTargetFrameRate),this.targetFrameRate=Eg._defaultTargetFramerate):sQ&&console.log("Target framerate set to",this.targetFrameRate),this._isCreating=!1,this.restartRenderLoop(),this._dispatchReadyAfterFrame=!0,mt.dispatchCallback(Qi.ContextCreated,this,{files:I})}restartRenderLoop(){if(!this.renderer)return console.error("Can not start render loop without renderer"),!1;if(this._isCreating)return console.warn("Can not start render loop while creating context"),!1;const t=this.render.bind(this);return this.renderer.setAnimationLoop(t),!0}render(t,A){if(pi()||sQ||dz())try{this.internalRender(t,A)}catch(e){(pi()||sQ)&&e instanceof Error&&Qg("Exception during render-loop.<br/>See console for details.",ko.Error),console.error(e),console.warn("Stopping render loop due to error"),this.renderer.setAnimationLoop(null),this.domElement.dispatchEvent(new CustomEvent("error",{detail:e}))}else this.internalRender(t,A)}internalRender(t,A){var e,g;if(this._xrFrame=A,this._currentFrameEvent=-1,this.isInXR===!1&&this.targetFrameRate!==void 0){this._accumulatedTime+=this._framerateClock.getDelta();let i=this.targetFrameRate;if(typeof i=="object"&&(i=i.value),this._accumulatedTime<1/(i+1))return;this._accumulatedTime=0}if((e=this._stats)==null||e.begin(),Eg.Current=this,!this.onHandlePaused()){for(Eg.Current=this,this.time.update(),xZ&&console.log("FPS",this.time.smoothedFps.toFixed(0)),eD(this),tD(this.scene),jv(this);this._cameraStack.length>0&&(!this.mainCameraComponent||this.mainCameraComponent.destroyed);){this._cameraStack.splice(this._cameraStack.length-1,1);const i=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(i)}if(this.pre_update_callbacks)for(const i in this.pre_update_callbacks)this.pre_update_callbacks[i]();this._currentFrameEvent=0;for(let i=0;i<this.scripts_earlyUpdate.length;i++){const I=this.scripts_earlyUpdate[i];I.activeAndEnabled&&I.earlyUpdate!==void 0&&(Eg.Current=this,I.earlyUpdate())}if(this.executeCoroutines(0),!this.onHandlePaused()){this._currentFrameEvent=1;for(let i=0;i<this.scripts_update.length;i++){const I=this.scripts_update[i];I.activeAndEnabled&&I.update!==void 0&&(Eg.Current=this,I.update())}if(this.executeCoroutines(1),!this.onHandlePaused()){this._currentFrameEvent=2;for(let i=0;i<this.scripts_lateUpdate.length;i++){const I=this.scripts_lateUpdate[i];I.activeAndEnabled&&I.lateUpdate!==void 0&&(Eg.Current=this,I.lateUpdate())}if(this.executeCoroutines(2),!this.onHandlePaused()){if(this.physics.engine){const i=this.time.deltaTime/1;for(let I=0;I<1;I++)this._currentFrameEvent=9,this.executeCoroutines(9),this.physics.engine.step(i),this._currentFrameEvent=10,this.executeCoroutines(10);this.physics.engine.postStep()}if(!this.onHandlePaused()){if(this.isVisibleToUser){this._currentFrameEvent=3;for(let i=0;i<this.scripts_onBeforeRender.length;i++){const I=this.scripts_onBeforeRender[i];I.activeAndEnabled&&I.onBeforeRender!==void 0&&(Eg.Current=this,I.onBeforeRender(A))}if(this.executeCoroutines(3),this._sizeChanged&&this.updateSize(),this.pre_render_callbacks)for(const i in this.pre_render_callbacks)this.pre_render_callbacks[i]();this.isManagedExternally||(Dz(this),this._currentFrameEvent=-1,this.renderNow(),this._currentFrameEvent=4);for(let i=0;i<this.scripts_onAfterRender.length;i++){const I=this.scripts_onAfterRender[i];I.activeAndEnabled&&I.onAfterRender!==void 0&&(Eg.Current=this,I.onAfterRender())}if(this.executeCoroutines(4),this.post_render_callbacks)for(const i in this.post_render_callbacks)this.post_render_callbacks[i]()}this._currentFrameEvent=-1,this.connection.sendBufferedMessagesNow(),(g=this._stats)==null||g.end(),this._dispatchReadyAfterFrame&&(this._dispatchReadyAfterFrame=!1,this.domElement.dispatchEvent(new CustomEvent("ready")))}}}}}}renderNow(t){return!t&&(t=this.mainCamera,!t)?!1:(this._isRendering=!0,this.renderRequiredTextures(),this.composer&&!this.isInXR?this.composer.render(this.time.deltaTime):t&&this.renderer.render(this.scene,t),this._isRendering=!1,!0)}onHandlePaused(){const t=this.evaluatePaused();if(this._wasPaused!==t){LZ&&console.log("Paused?",t,"context:"+this.alias);for(let A=0;A<this.scripts_pausedChanged.length;A++){const e=this.scripts_pausedChanged[A];e.activeAndEnabled&&e.onPausedChanged!==void 0&&(Eg.Current=this,e.onPausedChanged(t,this._wasPaused))}}return this._wasPaused=t,t}evaluatePaused(){return this.isInXR?!1:this.isPaused?!0:this.runInBackground?!1:!this.isVisibleToUser}renderRequiredTextures(){if(!this.mainCamera||!this._requireDepthTexture&&!this._requireColorTexture)return;if(!this._renderTarget){if(this._renderTarget=new gt(this.domWidth,this.domHeight),this._requireDepthTexture){const e=new Mp(this.domWidth,this.domHeight);this._renderTarget.depthTexture=e}this._requireColorTexture&&(this._renderTarget.texture=new Le,this._renderTarget.texture.generateMipmaps=!1,this._renderTarget.texture.minFilter=Ve,this._renderTarget.texture.magFilter=Ve,this._renderTarget.texture.format=Mt)}const t=this._renderTarget;t.texture&&(t.texture.encoding=this.renderer.outputEncoding);const A=this.renderer.getRenderTarget();this.renderer.setRenderTarget(t),this.renderer.render(this.scene,this.mainCamera),this.renderer.setRenderTarget(A)}executeCoroutines(t){if(this.coroutines[t]){const e=this.coroutines[t];for(let g=0;g<e.length;g++)try{const i=e[g];if(!i.comp||i.comp.destroyed||!i.main||i.comp.enabled===!1){YZ&&console.log("Removing coroutine",i.comp,i.comp.enabled),e.splice(g,1),--g;continue}const I=i.chained;if(I&&I.length>0){const s=I[I.length-1].next();if(s.done&&I.pop(),A(s)&&(i.chained||(i.chained=[]),i.chained.push(s.value)),!s.done)continue}const o=i.main.next();if(o.done===!0){e.splice(g,1),--g;continue}const C=o.value;if(A(C)){if(C.next().done)continue;i.chained||(i.chained=[]),i.chained.push(C)}}catch(i){console.error(i)}}function A(e){return!!(e&&e.next&&e.return)}}};let be=Eg;r(be,"_defaultTargetFramerate",{value:60});const La=CA("debugaroverlay"),pr="ar",xb="quit-ar";class OZ{constructor(){r(this,"arContainer",null),r(this,"closeARCallback"),r(this,"currentSession",null),r(this,"registeredCloseEventElements",[]),r(this,"_createdAROnlyElements",[]),r(this,"_reparentedObjects",[]),this.closeARCallback=this.onRequestedEndAR.bind(this)}get ARContainer(){return this.arContainer}requestEndAR(){this.onRequestedEndAR()}onBegin(A,e,g){this.currentSession=g,this.arContainer=e,A.domElement.shadowRoot.querySelectorAll(`.${pr}`).forEach(I=>{var o;I&&I!==this.arContainer&&(this._reparentedObjects.push({el:I,previousParent:I.parentElement}),(o=this.arContainer)==null||o.appendChild(I))});const i=e.getElementsByClassName(xb);if(!i||i.length<=0)console.warn(`Missing quit AR elements, creating fallback X button. Use class name '${xb}' to override.`),this.createFallbackCloseARButton(this.arContainer);else for(let I=0;I<i.length;I++){const o=i[I];o&&(o.addEventListener("click",this.closeARCallback),this.registeredCloseEventElements.push(o))}}onEnd(A){var e;for(const g of this._createdAROnlyElements)g.remove&&g.remove();for(const g of this._reparentedObjects){const i=g.el;(e=g.previousParent)==null||e.appendChild(i)}this._reparentedObjects.length=0,JS()&&setTimeout(()=>{var g;const i=A.renderer.domElement;i&&((g=A.domElement.shadowRoot)==null||g.prepend(i));const I=document.querySelectorAll("*");for(var o=0;o<I.length;o++){const C=I[o];C&&C._displayChanged!==void 0&&C._displayWas!==void 0&&(C.style.display=C._displayWas)}},10)}findOrCreateARContainer(A){if(La&&console.log("findOrCreateARContainer"),A.classList.contains(pr))return La&&console.log("Found overlay container in needle-engine element"),A;if(A.shadowRoot){const i=A.shadowRoot.querySelector(`.${pr}`);if(i)return La&&console.log("Found overlay container in needle-engine element"),i}const e=document.getElementsByClassName(pr);if(e&&e.length>0)return La&&console.log("Found overlay container in document"),e[0];La&&console.log("No overlay container found in document - generating new ony");const g=document.createElement("div");return g.classList.add(pr),g.style.cssText=`
3845
+ #endif`),zA.lightmap.lightmapScaleOffset={value:new Ie(1,1,0,0)};const vZ=CA("debugplayerview");var QC=(t=>(t.Browser="browser",t.Headset="headset",t.Handheld="handheld",t))(QC||{});class bb{constructor(A,e){r(this,"userId"),r(this,"context"),r(this,"viewDevice","browser"),r(this,"removed",!1),r(this,"_object"),this.userId=A,this.context=e}get currentObject(){return this._object}set currentObject(A){this._object=A}get isConnected(){return this.context.connection.userIsInRoom(this.userId)}}class Lb{constructor(A){r(this,"context"),r(this,"playerViews",new Map),this.context=A}setPlayerView(A,e,g){let i=this.playerViews.get(A);i||(i=new bb(A,this.context),this.playerViews.set(A,i)),i.viewDevice=g,i.currentObject=e,i.removed=!1}getPlayerView(A){if(!!A){if(!this.context.connection.userIsInRoom(A)){this.playerViews.delete(A);return}return this.playerViews.get(A)}}removePlayerView(A,e){const g=this.playerViews.get(A);g?.viewDevice===e&&(vZ&&console.log("REMOVE",A),g.removed=!0,this.playerViews.delete(A))}}const sQ=CA("debugcontext"),bZ=CA("stats"),LZ=CA("debugactive"),xZ=CA("debugframerate"),YZ=CA("debugcoroutine"),HZ={};class TZ{constructor(A){r(this,"name"),r(this,"alias"),r(this,"domElement"),r(this,"renderer"),r(this,"hash"),this.domElement=A??document.body}}var MI=(t=>(t[t.EarlyUpdate=0]="EarlyUpdate",t[t.Update=1]="Update",t[t.LateUpdate=2]="LateUpdate",t[t.OnBeforeRender=3]="OnBeforeRender",t[t.OnAfterRender=4]="OnAfterRender",t[t.PrePhysicsStep=9]="PrePhysicsStep",t[t.PostPhysicsStep=10]="PostPhysicsStep",t[t.Undefined=-1]="Undefined",t))(MI||{}),Bc=(t=>(t.ImmersiveVR="immersive-vr",t.ImmersiveAR="immersive-ar",t))(Bc||{});function hD(t,A){if(!t)return;const e=A?.new_scripts??be.Current.new_scripts;e.includes(t)||e.push(t)}const Eg=class{constructor(t){r(this,"name"),r(this,"alias"),r(this,"isManagedExternally",!1),r(this,"isPaused",!1),r(this,"runInBackground",!1),r(this,"targetFrameRate"),r(this,"hash"),r(this,"domElement"),r(this,"_resolutionScaleFactor",1),r(this,"_boundingClientRectFrame",-1),r(this,"_boundingClientRect",null),r(this,"_domX"),r(this,"_domY"),r(this,"xrSessionMode"),r(this,"_xrFrame",null),r(this,"_currentFrameEvent",-1),r(this,"scene"),r(this,"renderer"),r(this,"composer",null),r(this,"scripts",[]),r(this,"scripts_pausedChanged",[]),r(this,"scripts_earlyUpdate",[]),r(this,"scripts_update",[]),r(this,"scripts_lateUpdate",[]),r(this,"scripts_onBeforeRender",[]),r(this,"scripts_onAfterRender",[]),r(this,"scripts_WithCorroutines",[]),r(this,"coroutines",{}),r(this,"mainCameraComponent"),r(this,"post_setup_callbacks",[]),r(this,"pre_update_callbacks",[]),r(this,"pre_render_callbacks",[]),r(this,"post_render_callbacks",[]),r(this,"new_scripts",[]),r(this,"new_script_start",[]),r(this,"new_scripts_pre_setup_callbacks",[]),r(this,"new_scripts_post_setup_callbacks",[]),r(this,"application"),r(this,"time"),r(this,"input"),r(this,"physics"),r(this,"connection"),r(this,"assets"),r(this,"mainLight",null),r(this,"sceneLighting"),r(this,"addressables"),r(this,"lightmaps"),r(this,"players"),r(this,"_sizeChanged",!1),r(this,"_isCreated",!1),r(this,"_isCreating",!1),r(this,"_isVisible",!1),r(this,"_stats",bZ?uZ():null),r(this,"_intersectionObserver",null),r(this,"_disposeCallbacks",[]),r(this,"_cameraStack",[]),r(this,"_onBeforeRenderListeners",new Map),r(this,"_onAfterRenderListeners",new Map),r(this,"_requireDepthTexture",!1),r(this,"_requireColorTexture",!1),r(this,"_renderTarget"),r(this,"_isRendering",!1),r(this,"_accumulatedTime",0),r(this,"_framerateClock",new tu),r(this,"_dispatchReadyAfterFrame",!1),r(this,"_lastTimestamp",0),r(this,"_wasPaused",!1),this.name=t?.name||"",this.alias=t?.alias,this.domElement=t?.domElement||document.body,this.hash=t?.hash,t!=null&&t.renderer?(this.renderer=t.renderer,this.isManagedExternally=!0):this.createRenderer(),this.scene=new gI,mt.register(this),this.application=new Jb(this),this.time=new LJ,this.input=new yJ(this),this.physics=new vJ(this),this.connection=new sv(this),this.assets=new Fv,this.sceneLighting=new Nb(this),this.addressables=new Ub(this),this.lightmaps=new qZ(this),this.players=new Lb(this);const A=()=>this._sizeChanged=!0;window.addEventListener("resize",A),this._disposeCallbacks.push(()=>window.removeEventListener("resize",A));const e=new ResizeObserver(g=>this._sizeChanged=!0);e.observe(this.domElement),this._disposeCallbacks.push(()=>e.disconnect()),this._intersectionObserver=new IntersectionObserver(g=>{this._isVisible=g[0].isIntersecting}),this._disposeCallbacks.push(()=>{var g;return(g=this._intersectionObserver)==null?void 0:g.disconnect()})}static get DefaultTargetFrameRate(){return Eg._defaultTargetFramerate.value}static set DefaultTargetFrameRate(t){Eg._defaultTargetFramerate.value=t}get version(){return Tu}static get Current(){return mt.Current}static set Current(t){mt.Current=t}appendHTMLElement(t){return this.domElement.shadowRoot?this.domElement.shadowRoot.appendChild(t):this.domElement.appendChild(t)}get resolutionScaleFactor(){return this._resolutionScaleFactor}set resolutionScaleFactor(t){if(t!==this._resolutionScaleFactor&&typeof t=="number"){if(t<=0){console.error("Invalid resolution scale factor",t);return}this._resolutionScaleFactor=t,this.updateSize()}}calculateBoundingClientRect(){if(this.isInAR){this._domX=0,this._domY=0;return}this._boundingClientRectFrame!==this.time.frame&&(this._boundingClientRectFrame=this.time.frame,this._boundingClientRect=this.domElement.getBoundingClientRect(),this._domX=this._boundingClientRect.x,this._domY=this._boundingClientRect.y)}get domWidth(){return this.isInAR?window.innerWidth:this.domElement.clientWidth}get domHeight(){return this.isInAR?window.innerHeight:this.domElement.clientHeight}get domX(){return this.calculateBoundingClientRect(),this._domX}get domY(){return this.calculateBoundingClientRect(),this._domY}get isInXR(){var t;return((t=this.renderer.xr)==null?void 0:t.isPresenting)||!1}get isInVR(){return this.xrSessionMode==="immersive-vr"}get isInAR(){return this.xrSessionMode==="immersive-ar"}get xrSession(){var t;return(t=this.renderer.xr)==null?void 0:t.getSession()}get xrFrame(){return this._xrFrame}get arOverlayElement(){const t=this.domElement;return typeof t.getAROverlayContainer=="function"?t.getAROverlayContainer():this.domElement}get currentFrameEvent(){return this._currentFrameEvent}get mainCamera(){if(this.mainCameraComponent){const t=this.mainCameraComponent;return t.cam||t.buildCamera(),t.cam}return null}get rendererData(){return this.sceneLighting}get isCreated(){return this._isCreated}createRenderer(){var t,A,e;(t=this.renderer)==null||t.dispose();const g={antialias:!0},i=(e=(A=this.domElement)==null?void 0:A.shadowRoot)==null?void 0:e.querySelector("canvas");i&&(g.canvas=i),this.renderer=new LB(g),this.renderer.toneMappingExposure=1,this.renderer.toneMapping=Ki,this.renderer.setClearColor(new SA("lightgrey"),0),this.renderer.antialias=!0,this.renderer.alpha=!1,this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=TS,this.renderer.setSize(this.domWidth,this.domHeight),this.renderer.outputEncoding=ue,this.renderer.physicallyCorrectLights=!0}internalOnUpdateVisible(){var t,A;(t=this._intersectionObserver)==null||t.disconnect(),(A=this._intersectionObserver)==null||A.observe(this.domElement)}updateSize(){var t,A,e;if(!this.isManagedExternally&&((t=this.renderer.xr)==null?void 0:t.isPresenting)===!1){this._sizeChanged=!1;const g=this.resolutionScaleFactor,i=this.domWidth*g,I=this.domHeight*g,o=this.mainCamera;this.updateAspect(o),this.renderer.setSize(i,I),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.style.width="100%",this.renderer.domElement.style.height="100%",this.composer&&((A=this.composer.setSize)==null||A.call(this.composer,i,I),"setPixelRatio"in this.composer&&typeof this.composer.setPixelRatio=="function"&&((e=this.composer.setPixelRatio)==null||e.call(this.composer,window.devicePixelRatio)))}}updateAspect(t,A,e){if(!t)return;A===void 0&&(A=this.domWidth),e===void 0&&(e=this.domHeight);const g=t.aspect;t.aspect=A/e,g!==t.aspect&&t.updateProjectionMatrix()}async onCreate(t,A){try{return this._isCreating=!0,await this.internalOnCreate(t,A)}finally{this._isCreating=!1}}clear(){var t,A,e,g;mt.dispatchCallback(Qi.ContextClearing,this),ds(this.scene,!0,!0),this.scene=new gI,(t=this.addressables)==null||t.dispose(),(A=this.lightmaps)==null||A.clear(),(g=(e=this.physics)==null?void 0:e.engine)==null||g.clearCaches(),this.isManagedExternally||(this.renderer.renderLists.dispose(),this.renderer.state.reset(),this.renderer.resetState()),mt.dispatchCallback(Qi.ContextCleared,this)}dispose(){this.internalOnDestroy()}onDestroy(){this.internalOnDestroy()}internalOnDestroy(){var t,A;this.clear(),(t=this.renderer)==null||t.setAnimationLoop(null),this.renderer&&(this.renderer.setClearAlpha(0),this.renderer.clear()),this.isManagedExternally||this.renderer.dispose(),this.scene=null,this.renderer=null,this.input.dispose();for(const e of this._disposeCallbacks)try{e()}catch(g){console.error("Error in on dispose callback:",g,e)}(A=this.domElement)!=null&&A.parentElement&&this.domElement.parentElement.removeChild(this.domElement),mt.dispatchCallback(Qi.ContextDestroyed,this),mt.unregister(this)}registerCoroutineUpdate(t,A,e){return this.coroutines[e]||(this.coroutines[e]=[]),this.coroutines[e].push({comp:t,main:A}),A}unregisterCoroutineUpdate(t,A){if(!this.coroutines[A])return;const e=this.coroutines[A].findIndex(g=>g.main===t);e>=0&&this.coroutines[A].splice(e,1)}stopAllCoroutinesFrom(t){for(const A in this.coroutines){const e=this.coroutines[A];for(let g=e.length-1;g>=0;g--)e[g].comp===t&&e.splice(g,1)}}setCurrentCamera(t){var A;if(!t)return;if(t.cam||t.buildCamera(),!t.cam){console.warn("Camera component is missing camera",t);return}const e=this._cameraStack.indexOf(t);e>=0&&this._cameraStack.splice(e,1),this._cameraStack.push(t),this.mainCameraComponent=t;const g=t.cam;g.isPerspectiveCamera&&this.updateAspect(g),(A=this.mainCameraComponent)==null||A.applyClearFlagsIfIsActiveCamera()}removeCamera(t){if(!t)return;const A=this._cameraStack.indexOf(t);if(A>=0&&this._cameraStack.splice(A,1),this.mainCameraComponent===t&&(this.mainCameraComponent=void 0,this._cameraStack.length>0)){const e=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(e)}}addBeforeRenderListener(t,A){var e;this._onBeforeRenderListeners.has(t.uuid)||(this._onBeforeRenderListeners.set(t.uuid,[]),t.onBeforeRender=this._createRenderCallbackWrapper(t,this._onBeforeRenderListeners)),(e=this._onBeforeRenderListeners.get(t.uuid))==null||e.push(A)}removeBeforeRenderListener(t,A){if(this._onBeforeRenderListeners.has(t.uuid)){const e=this._onBeforeRenderListeners.get(t.uuid),g=e.indexOf(A);g>=0&&e.splice(g,1)}}addAfterRenderListener(t,A){var e;this._onAfterRenderListeners.has(t.uuid)||(this._onAfterRenderListeners.set(t.uuid,[]),t.onAfterRender=this._createRenderCallbackWrapper(t,this._onAfterRenderListeners)),(e=this._onAfterRenderListeners.get(t.uuid))==null||e.push(A)}removeAfterRenderListener(t,A){if(this._onAfterRenderListeners.has(t.uuid)){const e=this._onAfterRenderListeners.get(t.uuid),g=e.indexOf(A);g>=0&&e.splice(g,1)}}_createRenderCallbackWrapper(t,A){return(e,g,i,I,o,C)=>{const s=A.get(t.uuid);if(s)for(let a=0;a<s.length;a++){const n=s[a];n(e,g,i,I,o,C)}}}get isRendering(){return this._isRendering}setRequireDepth(t){this._requireDepthTexture=t}setRequireColor(t){this._requireColorTexture=t}get depthTexture(){var t;return((t=this._renderTarget)==null?void 0:t.depthTexture)||null}get opaqueColorTexture(){var t;return((t=this._renderTarget)==null?void 0:t.texture)||null}get isVisibleToUser(){if(this.isInXR)return!0;if(!this._isVisible)return!1;const t=getComputedStyle(this.domElement);return t.visibility!=="hidden"&&t.display!=="none"&&t.opacity!=="0"}async internalOnCreate(t,A){var e,g;this.clear(),(e=this.renderer)==null||e.setAnimationLoop(null),await XE(1),Eg.Current=this,await mt.dispatchCallback(Qi.ContextCreationStart,this);let i=!0,I;try{Eg.Current=this,t&&(I=await t(this,A))}catch(o){console.error(o),i=!1}if(!i)return!1;if(this.internalOnUpdateVisible(),!this.renderer)return sQ&&console.warn("Context has no renderer (perhaps it was disconnected?",this.domElement.isConnected),!1;!this.isManagedExternally&&!this.domElement.shadowRoot&&this.domElement.prepend(this.renderer.domElement),Eg.Current=this,Eg.Current=this;for(let o=0;o<this.new_scripts.length;o++){const C=this.new_scripts[o];if(C.gameObject!==void 0&&C.gameObject!==null){C.gameObject.userData===void 0&&(C.gameObject.userData={}),C.gameObject.userData.components===void 0&&(C.gameObject.userData.components=[]);const s=C.gameObject.userData.components;s.includes(C)||s.push(C)}}if(this.post_setup_callbacks)for(let o=0;o<this.post_setup_callbacks.length;o++)Eg.Current=this,await this.post_setup_callbacks[o](this);if(!this.mainCamera){Eg.Current=this;let o=null;lr(this.scene,C=>{const s=C;if(s!=null&&s.isCamera){if(Cc(s.gameObject),!s.activeAndEnabled)return;if(s.tag==="MainCamera")return o=s,!0;o=s}}),o?this.setCurrentCamera(o):!mt.dispatchCallback(Qi.MissingCamera,this)&&!this.mainCamera&&!this.isManagedExternally&&console.warn("Missing camera in main scene",this)}if(Eg.Current=this,eD(this),!this.isManagedExternally&&this.composer&&this.mainCamera){const o=new aD(this.scene,this.mainCamera);this.renderer.setSize(this.domWidth,this.domHeight),this.composer.addPass(o),this.composer.setSize(this.domWidth,this.domHeight)}return this._sizeChanged=!0,this._stats&&(this._stats.showPanel(0),(g=this.domElement.shadowRoot)==null||g.appendChild(this._stats.dom)),sQ&&uu(this.scene,!0),this.targetFrameRate===void 0?(sQ&&console.warn("No target framerate set, using default",Eg.DefaultTargetFrameRate),this.targetFrameRate=Eg._defaultTargetFramerate):sQ&&console.log("Target framerate set to",this.targetFrameRate),this._isCreating=!1,this.restartRenderLoop(),this._dispatchReadyAfterFrame=!0,mt.dispatchCallback(Qi.ContextCreated,this,{files:I})}restartRenderLoop(){if(!this.renderer)return console.error("Can not start render loop without renderer"),!1;if(this._isCreating)return console.warn("Can not start render loop while creating context"),!1;const t=this.render.bind(this);return this.renderer.setAnimationLoop(t),!0}render(t,A){if(pi()||sQ||dz())try{this.internalRender(t,A)}catch(e){(pi()||sQ)&&e instanceof Error&&Qg("Exception during render-loop.<br/>See console for details.",ko.Error),console.error(e),console.warn("Stopping render loop due to error"),this.renderer.setAnimationLoop(null),this.domElement.dispatchEvent(new CustomEvent("error",{detail:e}))}else this.internalRender(t,A)}internalRender(t,A){var e,g;if(this._xrFrame=A,this._currentFrameEvent=-1,this.isInXR===!1&&this.targetFrameRate!==void 0){this._lastTimestamp===0&&(this._lastTimestamp=t),this._accumulatedTime+=(t-this._lastTimestamp)/1e3,this._lastTimestamp=t;let i=this.targetFrameRate;if(typeof i=="object"&&(i=i.value),this._accumulatedTime<1/(i+1))return;this._accumulatedTime=0}if((e=this._stats)==null||e.begin(),Eg.Current=this,!this.onHandlePaused()){for(Eg.Current=this,this.time.update(),xZ&&console.log("FPS",this.time.smoothedFps.toFixed(0)),eD(this),tD(this.scene),jv(this);this._cameraStack.length>0&&(!this.mainCameraComponent||this.mainCameraComponent.destroyed);){this._cameraStack.splice(this._cameraStack.length-1,1);const i=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(i)}if(this.pre_update_callbacks)for(const i in this.pre_update_callbacks)this.pre_update_callbacks[i]();this._currentFrameEvent=0;for(let i=0;i<this.scripts_earlyUpdate.length;i++){const I=this.scripts_earlyUpdate[i];I.activeAndEnabled&&I.earlyUpdate!==void 0&&(Eg.Current=this,I.earlyUpdate())}if(this.executeCoroutines(0),!this.onHandlePaused()){this._currentFrameEvent=1;for(let i=0;i<this.scripts_update.length;i++){const I=this.scripts_update[i];I.activeAndEnabled&&I.update!==void 0&&(Eg.Current=this,I.update())}if(this.executeCoroutines(1),!this.onHandlePaused()){this._currentFrameEvent=2;for(let i=0;i<this.scripts_lateUpdate.length;i++){const I=this.scripts_lateUpdate[i];I.activeAndEnabled&&I.lateUpdate!==void 0&&(Eg.Current=this,I.lateUpdate())}if(this.executeCoroutines(2),!this.onHandlePaused()){if(this.physics.engine){const i=this.time.deltaTime/1;for(let I=0;I<1;I++)this._currentFrameEvent=9,this.executeCoroutines(9),this.physics.engine.step(i),this._currentFrameEvent=10,this.executeCoroutines(10);this.physics.engine.postStep()}if(!this.onHandlePaused()){if(this.isVisibleToUser){this._currentFrameEvent=3;for(let i=0;i<this.scripts_onBeforeRender.length;i++){const I=this.scripts_onBeforeRender[i];I.activeAndEnabled&&I.onBeforeRender!==void 0&&(Eg.Current=this,I.onBeforeRender(A))}if(this.executeCoroutines(3),this._sizeChanged&&this.updateSize(),this.pre_render_callbacks)for(const i in this.pre_render_callbacks)this.pre_render_callbacks[i]();this.isManagedExternally||(Dz(this),this._currentFrameEvent=-1,this.renderNow(),this._currentFrameEvent=4);for(let i=0;i<this.scripts_onAfterRender.length;i++){const I=this.scripts_onAfterRender[i];I.activeAndEnabled&&I.onAfterRender!==void 0&&(Eg.Current=this,I.onAfterRender())}if(this.executeCoroutines(4),this.post_render_callbacks)for(const i in this.post_render_callbacks)this.post_render_callbacks[i]()}this._currentFrameEvent=-1,this.connection.sendBufferedMessagesNow(),(g=this._stats)==null||g.end(),this._dispatchReadyAfterFrame&&(this._dispatchReadyAfterFrame=!1,this.domElement.dispatchEvent(new CustomEvent("ready")))}}}}}}renderNow(t){return!t&&(t=this.mainCamera,!t)?!1:(this._isRendering=!0,this.renderRequiredTextures(),this.composer&&!this.isInXR?this.composer.render(this.time.deltaTime):t&&this.renderer.render(this.scene,t),this._isRendering=!1,!0)}onHandlePaused(){const t=this.evaluatePaused();if(this._wasPaused!==t){LZ&&console.log("Paused?",t,"context:"+this.alias);for(let A=0;A<this.scripts_pausedChanged.length;A++){const e=this.scripts_pausedChanged[A];e.activeAndEnabled&&e.onPausedChanged!==void 0&&(Eg.Current=this,e.onPausedChanged(t,this._wasPaused))}}return this._wasPaused=t,t}evaluatePaused(){return this.isInXR?!1:this.isPaused?!0:this.runInBackground?!1:!this.isVisibleToUser}renderRequiredTextures(){if(!this.mainCamera||!this._requireDepthTexture&&!this._requireColorTexture)return;if(!this._renderTarget){if(this._renderTarget=new gt(this.domWidth,this.domHeight),this._requireDepthTexture){const e=new Mp(this.domWidth,this.domHeight);this._renderTarget.depthTexture=e}this._requireColorTexture&&(this._renderTarget.texture=new Le,this._renderTarget.texture.generateMipmaps=!1,this._renderTarget.texture.minFilter=Ve,this._renderTarget.texture.magFilter=Ve,this._renderTarget.texture.format=Mt)}const t=this._renderTarget;t.texture&&(t.texture.encoding=this.renderer.outputEncoding);const A=this.renderer.getRenderTarget();this.renderer.setRenderTarget(t),this.renderer.render(this.scene,this.mainCamera),this.renderer.setRenderTarget(A)}executeCoroutines(t){if(this.coroutines[t]){const e=this.coroutines[t];for(let g=0;g<e.length;g++)try{const i=e[g];if(!i.comp||i.comp.destroyed||!i.main||i.comp.enabled===!1){YZ&&console.log("Removing coroutine",i.comp,i.comp.enabled),e.splice(g,1),--g;continue}const I=i.chained;if(I&&I.length>0){const s=I[I.length-1].next();if(s.done&&I.pop(),A(s)&&(i.chained||(i.chained=[]),i.chained.push(s.value)),!s.done)continue}const o=i.main.next();if(o.done===!0){e.splice(g,1),--g;continue}const C=o.value;if(A(C)){if(C.next().done)continue;i.chained||(i.chained=[]),i.chained.push(C)}}catch(i){console.error(i)}}function A(e){return!!(e&&e.next&&e.return)}}};let be=Eg;r(be,"_defaultTargetFramerate",{value:60});const La=CA("debugaroverlay"),pr="ar",xb="quit-ar";class OZ{constructor(){r(this,"arContainer",null),r(this,"closeARCallback"),r(this,"currentSession",null),r(this,"registeredCloseEventElements",[]),r(this,"_createdAROnlyElements",[]),r(this,"_reparentedObjects",[]),this.closeARCallback=this.onRequestedEndAR.bind(this)}get ARContainer(){return this.arContainer}requestEndAR(){this.onRequestedEndAR()}onBegin(A,e,g){this.currentSession=g,this.arContainer=e,A.domElement.shadowRoot.querySelectorAll(`.${pr}`).forEach(I=>{var o;I&&I!==this.arContainer&&(this._reparentedObjects.push({el:I,previousParent:I.parentElement}),(o=this.arContainer)==null||o.appendChild(I))});const i=e.getElementsByClassName(xb);if(!i||i.length<=0)console.warn(`Missing quit AR elements, creating fallback X button. Use class name '${xb}' to override.`),this.createFallbackCloseARButton(this.arContainer);else for(let I=0;I<i.length;I++){const o=i[I];o&&(o.addEventListener("click",this.closeARCallback),this.registeredCloseEventElements.push(o))}}onEnd(A){var e;for(const g of this._createdAROnlyElements)g.remove&&g.remove();for(const g of this._reparentedObjects){const i=g.el;(e=g.previousParent)==null||e.appendChild(i)}this._reparentedObjects.length=0,JS()&&setTimeout(()=>{var g;const i=A.renderer.domElement;i&&((g=A.domElement.shadowRoot)==null||g.prepend(i));const I=document.querySelectorAll("*");for(var o=0;o<I.length;o++){const C=I[o];C&&C._displayChanged!==void 0&&C._displayWas!==void 0&&(C.style.display=C._displayWas)}},10)}findOrCreateARContainer(A){if(La&&console.log("findOrCreateARContainer"),A.classList.contains(pr))return La&&console.log("Found overlay container in needle-engine element"),A;if(A.shadowRoot){const i=A.shadowRoot.querySelector(`.${pr}`);if(i)return La&&console.log("Found overlay container in needle-engine element"),i}const e=document.getElementsByClassName(pr);if(e&&e.length>0)return La&&console.log("Found overlay container in document"),e[0];La&&console.log("No overlay container found in document - generating new ony");const g=document.createElement("div");return g.classList.add(pr),g.style.cssText=`
3846
3846
  position: fixed;
3847
3847
  top: 0;
3848
3848
  left: 0;
@@ -3853,7 +3853,7 @@ irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
3853
3853
  z-index: 9999;
3854
3854
  pointer-events: none;
3855
3855
  // background: rgba(0,0,0,1);
3856
- `,La&&this.createFallbackCloseARButton(A),this.appendElement(g,A)}onRequestedEndAR(){if(this.currentSession){this.currentSession.end(),this.currentSession=null;for(const A of this.registeredCloseEventElements)A.removeEventListener("click",this.closeARCallback);this.registeredCloseEventElements.length=0}}createFallbackCloseARButton(A){const e=document.createElement("slot");e.setAttribute("name","quit-ar"),this.appendElement(e,A),La&&e.addEventListener("click",()=>console.log("Clicked fallback close button")),e.addEventListener("click",this.closeARCallback),this._createdAROnlyElements.push(e),e.style.pointerEvents="auto";var g=document.createElementNS("http://www.w3.org/2000/svg","svg");g.classList.add("quit-ar-button"),g.setAttribute("width","38px"),g.setAttribute("height","38px"),e.appendChild(g);var i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d","M 12,12 L 28,28 M 28,12 12,28"),i.setAttribute("stroke","#ddd"),i.setAttribute("stroke-width","3px"),g.appendChild(i),La&&console.log("Created fallback close button",g,A)}appendElement(A,e){return e.shadowRoot?e.shadowRoot.appendChild(A):e.appendChild(A)}}class eA extends UA{constructor(){super(...arguments),r(this,"guid")}static isDestroyed(A){return Jk(A)}static setActive(A,e,g=!0){A&&(ic(A,e),tD(A),e&&g&&jv(be.Current,A))}static isActiveSelf(A){return gQ(A)}static isActiveInHierarchy(A){return Lv(A)}static markAsInstancedRendered(A,e){xv(A,e)}static isUsingInstancing(A){return AD(A)}static foreachComponent(A,e,g=!0){return lr(A,e,g)}static instantiateSynced(A,e){return A?Mk(A,e):null}static instantiate(A,e=null){return oc(A,e)}static destroySynced(A,e,g=!0){if(!A)return;const i=A;e=e??be.Current,_u(i,e.connection,g)}static destroy(A,e=!0,g=!0){return ds(A,e,g)}static add(A,e,g){if(!(!A||!e)){if(A===e){console.warn("Can not add object to self",A);return}g||(g=be.Current),e.add(A),ic(A,!0),tD(A),g?eA.foreachComponent(A,i=>{vk(i,g),!i.__internalDidAwakeAndStart&&g.new_script_start.includes(i)===!1&&g.new_script_start.push(i)},!0):console.warn("Missing context")}}static remove(A){var e;A&&((e=A.parent)==null||e.remove(A),ic(A,!1),tD(A),eA.foreachComponent(A,g=>{pz(g)},!0))}static invokeOnChildren(A,e,...g){this.invoke(A,e,!0,g)}static invoke(A,e,g=!1,...i){A&&this.foreachComponent(A,I=>{const o=I[e];o&&typeof o=="function"&&o?.call(I,...i)},g)}static addNewComponent(A,e,g=!0){const i=new e;return cr(A,i,g),i}static addComponent(A,e){return this.moveComponent(A,e)}static moveComponent(A,e){return Fk(A,e)}static removeComponent(A){return Uk(A.gameObject,A),A}static getOrAddComponent(A,e){return ju(A,e)}static getComponent(A,e){return A===null?null:eQ(A,e)}static getComponents(A,e,g=null){return A===null?g??[]:Zh(A,e,g)}static findByGuid(A,e){return Ic(A,e)}static findObjectOfType(A,e,g=!0){return Gv(A,e??be.Current,g)}static findObjectsOfType(A,e){const g=[];return mv(A,g,e),g}static getComponentInChildren(A,e){return Xh(A,e)}static getComponentsInChildren(A,e,g=null){return $h(A,e,g??void 0)}static getComponentInParent(A,e){return Ac(A,e)}static getComponentsInParent(A,e,g=null){return Wu(A,e,g)}static getAllComponents(A){var e;return[...(e=A.userData)==null?void 0:e.components]}static*iterateComponents(A){var e;const g=(e=A?.userData)==null?void 0:e.components;if(g&&Array.isArray(g))for(let i=0;i<g.length;i++)yield g[i]}}var hg;let xa=(hg=class{constructor(){r(this,"__context"),r(this,"__name"),r(this,"gameObject"),r(this,"guid","invalid"),r(this,"sourceId"),r(this,"__didAwake",!1),r(this,"__didStart",!1),r(this,"__didEnable",!1),r(this,"__isEnabled"),r(this,"__destroyed",!1),r(this,"_worldPosition"),r(this,"_worldQuaternion"),r(this,"_worldEuler"),r(this,"_worldRotation"),r(this,"_eventListeners",new Map),this.__internalNewInstanceCreated()}get isComponent(){return!0}get context(){return this.__context??be.Current}set context(t){this.__context=t}get scene(){return this.context.scene}get layer(){var t,A;return(A=(t=this.gameObject)==null?void 0:t.userData)==null?void 0:A.layer}get name(){var t,A;return(t=this.gameObject)!=null&&t.name?this.gameObject.name:(A=this.gameObject)==null?void 0:A.userData.name}set name(t){this.gameObject?(this.gameObject.userData||(this.gameObject.userData={}),this.gameObject.userData.name=t,this.__name=t):this.__name=t}get tag(){var t;return(t=this.gameObject)==null?void 0:t.userData.tag}set tag(t){this.gameObject&&(this.gameObject.userData.tag=t)}get static(){var t;return(t=this.gameObject)==null?void 0:t.userData.static}get hideFlags(){var t;return(t=this.gameObject)==null?void 0:t.userData.hideFlags}get activeAndEnabled(){return!(this.destroyed||this.__isEnabled===!1||!this.__isActiveInHierarchy)}get __isActive(){return this.gameObject.visible}get __isActiveInHierarchy(){if(!this.gameObject)return!1;const t=this.gameObject[ls];return t===void 0?!0:t}set __isActiveInHierarchy(t){this.gameObject&&(this.gameObject[ls]=t)}awake(){}onEnable(){}onDisable(){}onDestroy(){this.__destroyed=!0}startCoroutine(t,A=MI.Update){return this.context.registerCoroutineUpdate(this,t,A)}stopCoroutine(t,A=MI.Update){this.context.unregisterCoroutineUpdate(t,A)}get destroyed(){return this.__destroyed}destroy(){this.__destroyed||this.__internalDestroy()}get __internalDidAwakeAndStart(){return this.__didAwake&&this.__didStart}__internalNewInstanceCreated(){this.__didAwake=!1,this.__didStart=!1,this.__didEnable=!1,this.__isEnabled=void 0,this.__destroyed=!1}__internalAwake(){this.__didAwake||(this.__didAwake=!0,this.awake())}__internalStart(){this.__didStart||(this.__didStart=!0,this.start&&this.start())}__internalEnable(t){return this.__destroyed?(pi()&&console.warn("[Needle Engine Dev] Trying to enable destroyed component"),!1):this.__didAwake?this.__didEnable?(t!==!0&&(this.__isEnabled=!0),!1):(this.__didEnable=!0,this.__isEnabled=!0,this.onEnable(),!0):!1}__internalDisable(t){if(this.__didAwake){if(!this.__didEnable){t!==!0&&(this.__isEnabled=!1);return}this.__didEnable=!1,this.__isEnabled=!1,this.onDisable()}}__internalDestroy(){var t;this.__destroyed||(this.__destroyed=!0,(t=this.destroy)==null||t.call(this),this.dispatchEvent(new CustomEvent("destroyed",{detail:this})),Sv(this))}get enabled(){return typeof this.__isEnabled=="boolean"?this.__isEnabled:!0}set enabled(t){if(this.__destroyed){pi()&&console.warn(`[Needle Engine Dev] Trying to ${t?"enable":"disable"} destroyed component`);return}if(typeof t=="number"&&(t>=.5?t=!0:t=!1),!this.__didAwake){this.__isEnabled=t;return}t?this.__internalEnable():this.__internalDisable()}get worldPosition(){return this._worldPosition||(this._worldPosition=new f),we(this.gameObject,this._worldPosition),this._worldPosition}set worldPosition(t){gg(this.gameObject,t)}setWorldPosition(t,A,e){hg._worldPositionBuffer.set(t,A,e),this.worldPosition=hg._worldPositionBuffer}get worldQuaternion(){return this._worldQuaternion||(this._worldQuaternion=new mA),qg(this.gameObject,this._worldQuaternion)}set worldQuaternion(t){iI(this.gameObject,t)}setWorldQuaternion(t,A,e,g){hg._worldQuaternionBuffer.set(t,A,e,g),this.worldQuaternion=hg._worldQuaternionBuffer}get worldEuler(){return this._worldEuler||(this._worldEuler=new mg),this._worldEuler.setFromQuaternion(this.worldQuaternion),this._worldEuler}set worldEuler(t){var A;this._worldQuaternion||(this._worldQuaternion=new mA),(A=this._worldQuaternion)==null||A.setFromEuler(t),this.worldQuaternion=this._worldQuaternion}get worldRotation(){const t=this.worldEuler;this._worldRotation||(this._worldRotation=new f);const A=this._worldRotation;return A.set(t.x,t.y,t.z),A.x=$A.toDegrees(A.x),A.y=$A.toDegrees(A.y),A.z=$A.toDegrees(A.z),A}set worldRotation(t){this.setWorldRotation(t.x,t.y,t.z,!0)}setWorldRotation(t,A,e,g=!0){g&&(t=$A.toRadians(t),A=$A.toRadians(A),e=$A.toRadians(e)),hg._worldEulerBuffer.set(t,A,e),hg._worldQuaternionBuffer.setFromEuler(hg._worldEulerBuffer),this.worldQuaternion=hg._worldQuaternionBuffer}get forward(){return hg._forward.set(0,0,-1).applyQuaternion(this.worldQuaternion)}get right(){return hg._right.set(1,0,0).applyQuaternion(this.worldQuaternion)}get up(){return hg._up.set(0,1,0).applyQuaternion(this.worldQuaternion)}addEventListener(t,A){this._eventListeners[t]=this._eventListeners[t]||[],this._eventListeners[t].push(A)}removeEventListener(t,A){if(!this._eventListeners[t])return;const e=this._eventListeners[t].indexOf(A);e>=0&&this._eventListeners[t].splice(e,1)}dispatchEvent(t){if(!this._eventListeners[t.type])return!1;const A=this._eventListeners[t.type];for(let e=0;e<A.length;e++)A[e](t);return!1}},r(hg,"_worldPositionBuffer",new f),r(hg,"_worldQuaternionBuffer",new mA),r(hg,"_worldEulerBuffer",new mg),r(hg,"_tempQuaternionBuffer2",new mA),r(hg,"_forward",new f),r(hg,"_right",new f),r(hg,"_up",new f),hg);class RA extends xa{}const _Z=Object.freeze(Object.defineProperty({__proto__:null,Behaviour:RA,Component:xa,GameObject:eA},Symbol.toStringTag,{value:"Module"})),PZ='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>',jZ=new Blob([PZ],{type:"image/svg+xml;charset=utf-8"}),WZ=URL.createObjectURL(jZ),Yb=WZ,ys=CA("debuglicense");let aQ="basic";ys&&console.log("License Type: "+aQ);function nQ(){switch(aQ){case"pro":case"enterprise":return!0}return!1}function Hb(){switch(aQ){case"indie":return!0}return!1}function Qc(){return nQ()||Hb()}mt.registerCallback(Qi.ContextRegistered,t=>{zZ(t.context),e9()});let Tb;async function VZ(){if(aQ==="basic")try{const t=await fetch("https://engine.needle.tools/licensing/check");if(ys){const A=await t.text();console.log('"'+A+`"
3856
+ `,La&&this.createFallbackCloseARButton(A),this.appendElement(g,A)}onRequestedEndAR(){if(this.currentSession){this.currentSession.end(),this.currentSession=null;for(const A of this.registeredCloseEventElements)A.removeEventListener("click",this.closeARCallback);this.registeredCloseEventElements.length=0}}createFallbackCloseARButton(A){const e=document.createElement("slot");e.setAttribute("name","quit-ar"),this.appendElement(e,A),La&&e.addEventListener("click",()=>console.log("Clicked fallback close button")),e.addEventListener("click",this.closeARCallback),this._createdAROnlyElements.push(e),e.style.pointerEvents="auto";var g=document.createElementNS("http://www.w3.org/2000/svg","svg");g.classList.add("quit-ar-button"),g.setAttribute("width","38px"),g.setAttribute("height","38px"),e.appendChild(g);var i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d","M 12,12 L 28,28 M 28,12 12,28"),i.setAttribute("stroke","#ddd"),i.setAttribute("stroke-width","3px"),g.appendChild(i),La&&console.log("Created fallback close button",g,A)}appendElement(A,e){return e.shadowRoot?e.shadowRoot.appendChild(A):e.appendChild(A)}}class eA extends UA{constructor(){super(...arguments),r(this,"guid")}static isDestroyed(A){return Jk(A)}static setActive(A,e,g=!0){A&&(ic(A,e),tD(A),e&&g&&jv(be.Current,A))}static isActiveSelf(A){return gQ(A)}static isActiveInHierarchy(A){return Lv(A)}static markAsInstancedRendered(A,e){xv(A,e)}static isUsingInstancing(A){return AD(A)}static foreachComponent(A,e,g=!0){return lr(A,e,g)}static instantiateSynced(A,e){return A?Mk(A,e):null}static instantiate(A,e=null){return oc(A,e)}static destroySynced(A,e,g=!0){if(!A)return;const i=A;e=e??be.Current,_u(i,e.connection,g)}static destroy(A,e=!0,g=!0){return ds(A,e,g)}static add(A,e,g){if(!(!A||!e)){if(A===e){console.warn("Can not add object to self",A);return}g||(g=be.Current),e.add(A),ic(A,!0),tD(A),g?eA.foreachComponent(A,i=>{vk(i,g),!i.__internalDidAwakeAndStart&&g.new_script_start.includes(i)===!1&&g.new_script_start.push(i)},!0):console.warn("Missing context")}}static remove(A){var e;A&&((e=A.parent)==null||e.remove(A),ic(A,!1),tD(A),eA.foreachComponent(A,g=>{pz(g)},!0))}static invokeOnChildren(A,e,...g){this.invoke(A,e,!0,g)}static invoke(A,e,g=!1,...i){A&&this.foreachComponent(A,I=>{const o=I[e];o&&typeof o=="function"&&o?.call(I,...i)},g)}static addNewComponent(A,e,g=!0){const i=new e;return cr(A,i,g),i}static addComponent(A,e){return this.moveComponent(A,e)}static moveComponent(A,e){return Fk(A,e)}static removeComponent(A){return Uk(A.gameObject,A),A}static getOrAddComponent(A,e){return ju(A,e)}static getComponent(A,e){return A===null?null:eQ(A,e)}static getComponents(A,e,g=null){return A===null?g??[]:Zh(A,e,g)}static findByGuid(A,e){return Ic(A,e)}static findObjectOfType(A,e,g=!0){return Gv(A,e??be.Current,g)}static findObjectsOfType(A,e){const g=[];return mv(A,g,e),g}static getComponentInChildren(A,e){return Xh(A,e)}static getComponentsInChildren(A,e,g=null){return $h(A,e,g??void 0)}static getComponentInParent(A,e){return Ac(A,e)}static getComponentsInParent(A,e,g=null){return Wu(A,e,g)}static getAllComponents(A){var e;return[...(e=A.userData)==null?void 0:e.components]}static*iterateComponents(A){var e;const g=(e=A?.userData)==null?void 0:e.components;if(g&&Array.isArray(g))for(let i=0;i<g.length;i++)yield g[i]}}var hg;let xa=(hg=class{constructor(){r(this,"__context"),r(this,"__name"),r(this,"gameObject"),r(this,"guid","invalid"),r(this,"sourceId"),r(this,"__didAwake",!1),r(this,"__didStart",!1),r(this,"__didEnable",!1),r(this,"__isEnabled"),r(this,"__destroyed",!1),r(this,"_worldPosition"),r(this,"_worldQuaternion"),r(this,"_worldEuler"),r(this,"_worldRotation"),r(this,"_eventListeners",new Map),this.__internalNewInstanceCreated()}get isComponent(){return!0}get context(){return this.__context??be.Current}set context(t){this.__context=t}get scene(){return this.context.scene}get layer(){var t,A;return(A=(t=this.gameObject)==null?void 0:t.userData)==null?void 0:A.layer}get name(){var t,A;return(t=this.gameObject)!=null&&t.name?this.gameObject.name:(A=this.gameObject)==null?void 0:A.userData.name}set name(t){this.gameObject?(this.gameObject.userData||(this.gameObject.userData={}),this.gameObject.userData.name=t,this.__name=t):this.__name=t}get tag(){var t;return(t=this.gameObject)==null?void 0:t.userData.tag}set tag(t){this.gameObject&&(this.gameObject.userData||(this.gameObject.userData={}),this.gameObject.userData.tag=t)}get static(){var t;return(t=this.gameObject)==null?void 0:t.userData.static}get hideFlags(){var t;return(t=this.gameObject)==null?void 0:t.userData.hideFlags}get activeAndEnabled(){return!(this.destroyed||this.__isEnabled===!1||!this.__isActiveInHierarchy)}get __isActive(){return this.gameObject.visible}get __isActiveInHierarchy(){if(!this.gameObject)return!1;const t=this.gameObject[ls];return t===void 0?!0:t}set __isActiveInHierarchy(t){this.gameObject&&(this.gameObject[ls]=t)}awake(){}onEnable(){}onDisable(){}onDestroy(){this.__destroyed=!0}startCoroutine(t,A=MI.Update){return this.context.registerCoroutineUpdate(this,t,A)}stopCoroutine(t,A=MI.Update){this.context.unregisterCoroutineUpdate(t,A)}get destroyed(){return this.__destroyed}destroy(){this.__destroyed||this.__internalDestroy()}get __internalDidAwakeAndStart(){return this.__didAwake&&this.__didStart}__internalNewInstanceCreated(){this.__didAwake=!1,this.__didStart=!1,this.__didEnable=!1,this.__isEnabled=void 0,this.__destroyed=!1}__internalAwake(){this.__didAwake||(this.__didAwake=!0,this.awake())}__internalStart(){this.__didStart||(this.__didStart=!0,this.start&&this.start())}__internalEnable(t){return this.__destroyed?(pi()&&console.warn("[Needle Engine Dev] Trying to enable destroyed component"),!1):this.__didAwake?this.__didEnable?(t!==!0&&(this.__isEnabled=!0),!1):(this.__didEnable=!0,this.__isEnabled=!0,this.onEnable(),!0):!1}__internalDisable(t){if(this.__didAwake){if(!this.__didEnable){t!==!0&&(this.__isEnabled=!1);return}this.__didEnable=!1,this.__isEnabled=!1,this.onDisable()}}__internalDestroy(){var t;this.__destroyed||(this.__destroyed=!0,(t=this.destroy)==null||t.call(this),this.dispatchEvent(new CustomEvent("destroyed",{detail:this})),Sv(this))}get enabled(){return typeof this.__isEnabled=="boolean"?this.__isEnabled:!0}set enabled(t){if(this.__destroyed){pi()&&console.warn(`[Needle Engine Dev] Trying to ${t?"enable":"disable"} destroyed component`);return}if(typeof t=="number"&&(t>=.5?t=!0:t=!1),!this.__didAwake){this.__isEnabled=t;return}t?this.__internalEnable():this.__internalDisable()}get worldPosition(){return this._worldPosition||(this._worldPosition=new f),we(this.gameObject,this._worldPosition),this._worldPosition}set worldPosition(t){gg(this.gameObject,t)}setWorldPosition(t,A,e){hg._worldPositionBuffer.set(t,A,e),this.worldPosition=hg._worldPositionBuffer}get worldQuaternion(){return this._worldQuaternion||(this._worldQuaternion=new mA),qg(this.gameObject,this._worldQuaternion)}set worldQuaternion(t){iI(this.gameObject,t)}setWorldQuaternion(t,A,e,g){hg._worldQuaternionBuffer.set(t,A,e,g),this.worldQuaternion=hg._worldQuaternionBuffer}get worldEuler(){return this._worldEuler||(this._worldEuler=new mg),this._worldEuler.setFromQuaternion(this.worldQuaternion),this._worldEuler}set worldEuler(t){var A;this._worldQuaternion||(this._worldQuaternion=new mA),(A=this._worldQuaternion)==null||A.setFromEuler(t),this.worldQuaternion=this._worldQuaternion}get worldRotation(){const t=this.worldEuler;this._worldRotation||(this._worldRotation=new f);const A=this._worldRotation;return A.set(t.x,t.y,t.z),A.x=$A.toDegrees(A.x),A.y=$A.toDegrees(A.y),A.z=$A.toDegrees(A.z),A}set worldRotation(t){this.setWorldRotation(t.x,t.y,t.z,!0)}setWorldRotation(t,A,e,g=!0){g&&(t=$A.toRadians(t),A=$A.toRadians(A),e=$A.toRadians(e)),hg._worldEulerBuffer.set(t,A,e),hg._worldQuaternionBuffer.setFromEuler(hg._worldEulerBuffer),this.worldQuaternion=hg._worldQuaternionBuffer}get forward(){return hg._forward.set(0,0,-1).applyQuaternion(this.worldQuaternion)}get right(){return hg._right.set(1,0,0).applyQuaternion(this.worldQuaternion)}get up(){return hg._up.set(0,1,0).applyQuaternion(this.worldQuaternion)}addEventListener(t,A){this._eventListeners[t]=this._eventListeners[t]||[],this._eventListeners[t].push(A)}removeEventListener(t,A){if(!this._eventListeners[t])return;const e=this._eventListeners[t].indexOf(A);e>=0&&this._eventListeners[t].splice(e,1)}dispatchEvent(t){if(!this._eventListeners[t.type])return!1;const A=this._eventListeners[t.type];for(let e=0;e<A.length;e++)A[e](t);return!1}},r(hg,"_worldPositionBuffer",new f),r(hg,"_worldQuaternionBuffer",new mA),r(hg,"_worldEulerBuffer",new mg),r(hg,"_tempQuaternionBuffer2",new mA),r(hg,"_forward",new f),r(hg,"_right",new f),r(hg,"_up",new f),hg);class RA extends xa{}const _Z=Object.freeze(Object.defineProperty({__proto__:null,Behaviour:RA,Component:xa,GameObject:eA},Symbol.toStringTag,{value:"Module"})),PZ='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>',jZ=new Blob([PZ],{type:"image/svg+xml;charset=utf-8"}),WZ=URL.createObjectURL(jZ),Yb=WZ,ys=CA("debuglicense");let aQ="basic";ys&&console.log("License Type: "+aQ);function nQ(){switch(aQ){case"pro":case"enterprise":return!0}return!1}function Hb(){switch(aQ){case"indie":return!0}return!1}function Qc(){return nQ()||Hb()}mt.registerCallback(Qi.ContextRegistered,t=>{zZ(t.context),e9()});let Tb;async function VZ(){if(aQ==="basic")try{const t=await fetch("https://engine.needle.tools/licensing/check");if(ys){const A=await t.text();console.log('"'+A+`"
3857
3857
  `,t)}t.status===200&&(aQ="pro")}catch(t){ys&&console.error("License check failed",t)}}Tb=VZ();async function zZ(t){try{if(Qc()!==!0)return iG(t)}catch(A){return ys&&console.log("License check failed",A),iG(t)}ys&&iG(t)}const Ob="needle-license-element",tG=5e3,gG=200;async function iG(t){await Tb,!Qc()&&(XZ(),t.domElement.addEventListener("ready",()=>{setTimeout(()=>{ZZ(t)},1e3)}))}function ZZ(t){const A=$Z(),e=A9(),g=setInterval(()=>{if(!A)return;const s=t.domElement.shadowRoot||t.domElement;A.parentNode!==s&&(s.appendChild(A),e&&s.appendChild(e))},100);let i=`<img class="logo" src="${Yb}" style="width: 40px; height: 40px; margin-right: 2px; vertical-align: middle; margin-bottom: 2px;"/>`;const I=document.createElement("div");I.innerHTML=i,I.classList.add("logo"),A.appendChild(I);const o=document.createElement("div");o.classList.add("text"),A.appendChild(o),A.title="Needle Engine",Qc()||(A.title+=" No active license found - Non Commercial Use"),A.addEventListener("click",()=>{globalThis.open("https://needle.tools","_blank")});const C=tG+gG;setTimeout(()=>{clearInterval(g),A?.remove(),e?.remove()},C)}let _b=0;async function XZ(t){const A=Date.now();if(A-_b<2e3)return;_b=A,console.log("%c Needle Engine \u2014 No license active, commercial use is not allowed. Visit https://needle.tools/pricing for more information and licensing options.",`
3858
3858
  position: relative;
3859
3859
  display: block;
@@ -3842,7 +3842,7 @@ outputColor=vec4(color,inputColor.a);}`,IY=class extends cC{constructor({blendFu
3842
3842
  irradiance += 0.;
3843
3843
  #else
3844
3844
  irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
3845
- #endif`);ZA.lightmap.lightmapScaleOffset={value:new se(1,1,0,0)};const T5=nA("debugplayerview");var _C=(i=>(i.Browser="browser",i.Headset="headset",i.Handheld="handheld",i))(_C||{});class uY{constructor(A,e){r(this,"userId");r(this,"context");r(this,"viewDevice","browser");r(this,"removed",!1);r(this,"_object");this.userId=A,this.context=e}get currentObject(){return this._object}set currentObject(A){this._object=A}get isConnected(){return this.context.connection.userIsInRoom(this.userId)}}class pY{constructor(A){r(this,"context");r(this,"playerViews",new Map);this.context=A}setPlayerView(A,e,t){let g=this.playerViews.get(A);g||(g=new uY(A,this.context),this.playerViews.set(A,g)),g.viewDevice=t,g.currentObject=e,g.removed=!1}getPlayerView(A){if(!A)return;if(!this.context.connection.userIsInRoom(A)){this.playerViews.delete(A);return}return this.playerViews.get(A)}removePlayerView(A,e){const t=this.playerViews.get(A);(t==null?void 0:t.viewDevice)===e&&(T5&&console.log("REMOVE",A),t.removed=!0,this.playerViews.delete(A))}}const jB=nA("debugcontext"),H5=nA("stats"),_5=nA("debugactive"),O5=nA("debugframerate"),P5=nA("debugcoroutine"),W5={};class V5{constructor(A){r(this,"name");r(this,"alias");r(this,"domElement");r(this,"renderer");r(this,"hash");this.domElement=A??document.body}}var ZI=(i=>(i[i.EarlyUpdate=0]="EarlyUpdate",i[i.Update=1]="Update",i[i.LateUpdate=2]="LateUpdate",i[i.OnBeforeRender=3]="OnBeforeRender",i[i.OnAfterRender=4]="OnAfterRender",i[i.PrePhysicsStep=9]="PrePhysicsStep",i[i.PostPhysicsStep=10]="PostPhysicsStep",i[i.Undefined=-1]="Undefined",i))(ZI||{}),Il=(i=>(i.ImmersiveVR="immersive-vr",i.ImmersiveAR="immersive-ar",i))(Il||{});function Nw(i,A){if(!i)return;const e=(A==null?void 0:A.new_scripts)??qe.Current.new_scripts;e.includes(i)||e.push(i)}const ri=class{constructor(A){r(this,"name");r(this,"alias");r(this,"isManagedExternally",!1);r(this,"isPaused",!1);r(this,"runInBackground",!1);r(this,"targetFrameRate");r(this,"hash");r(this,"domElement");r(this,"_resolutionScaleFactor",1);r(this,"_boundingClientRectFrame",-1);r(this,"_boundingClientRect",null);r(this,"_domX");r(this,"_domY");r(this,"xrSessionMode");r(this,"_xrFrame",null);r(this,"_currentFrameEvent",-1);r(this,"scene");r(this,"renderer");r(this,"composer",null);r(this,"scripts",[]);r(this,"scripts_pausedChanged",[]);r(this,"scripts_earlyUpdate",[]);r(this,"scripts_update",[]);r(this,"scripts_lateUpdate",[]);r(this,"scripts_onBeforeRender",[]);r(this,"scripts_onAfterRender",[]);r(this,"scripts_WithCorroutines",[]);r(this,"coroutines",{});r(this,"mainCameraComponent");r(this,"post_setup_callbacks",[]);r(this,"pre_update_callbacks",[]);r(this,"pre_render_callbacks",[]);r(this,"post_render_callbacks",[]);r(this,"new_scripts",[]);r(this,"new_script_start",[]);r(this,"new_scripts_pre_setup_callbacks",[]);r(this,"new_scripts_post_setup_callbacks",[]);r(this,"application");r(this,"time");r(this,"input");r(this,"physics");r(this,"connection");r(this,"assets");r(this,"mainLight",null);r(this,"sceneLighting");r(this,"addressables");r(this,"lightmaps");r(this,"players");r(this,"_sizeChanged",!1);r(this,"_isCreated",!1);r(this,"_isCreating",!1);r(this,"_isVisible",!1);r(this,"_stats",H5?S5():null);r(this,"_intersectionObserver",null);r(this,"_disposeCallbacks",[]);r(this,"_cameraStack",[]);r(this,"_onBeforeRenderListeners",new Map);r(this,"_onAfterRenderListeners",new Map);r(this,"_requireDepthTexture",!1);r(this,"_requireColorTexture",!1);r(this,"_renderTarget");r(this,"_isRendering",!1);r(this,"_accumulatedTime",0);r(this,"_framerateClock",new Cw);r(this,"_dispatchReadyAfterFrame",!1);r(this,"_wasPaused",!1);this.name=(A==null?void 0:A.name)||"",this.alias=A==null?void 0:A.alias,this.domElement=(A==null?void 0:A.domElement)||document.body,this.hash=A==null?void 0:A.hash,A!=null&&A.renderer?(this.renderer=A.renderer,this.isManagedExternally=!0):this.createRenderer(),this.scene=new GI,qt.register(this),this.application=new dY(this),this.time=new Ev,this.input=new gv(this),this.physics=new Qv(this),this.connection=new ax(this),this.assets=new Mx,this.sceneLighting=new hY(this),this.addressables=new EY(this),this.lightmaps=new Y5(this),this.players=new pY(this);const e=()=>this._sizeChanged=!0;window.addEventListener("resize",e),this._disposeCallbacks.push(()=>window.removeEventListener("resize",e));const t=new ResizeObserver(g=>this._sizeChanged=!0);t.observe(this.domElement),this._disposeCallbacks.push(()=>t.disconnect()),this._intersectionObserver=new IntersectionObserver(g=>{this._isVisible=g[0].isIntersecting}),this._disposeCallbacks.push(()=>{var g;return(g=this._intersectionObserver)==null?void 0:g.disconnect()})}static get DefaultTargetFrameRate(){return ri._defaultTargetFramerate.value}static set DefaultTargetFrameRate(A){ri._defaultTargetFramerate.value=A}get version(){return ww}static get Current(){return qt.Current}static set Current(A){qt.Current=A}appendHTMLElement(A){return this.domElement.shadowRoot?this.domElement.shadowRoot.appendChild(A):this.domElement.appendChild(A)}get resolutionScaleFactor(){return this._resolutionScaleFactor}set resolutionScaleFactor(A){if(A!==this._resolutionScaleFactor&&typeof A=="number"){if(A<=0){console.error("Invalid resolution scale factor",A);return}this._resolutionScaleFactor=A,this.updateSize()}}calculateBoundingClientRect(){if(this.isInAR){this._domX=0,this._domY=0;return}this._boundingClientRectFrame!==this.time.frame&&(this._boundingClientRectFrame=this.time.frame,this._boundingClientRect=this.domElement.getBoundingClientRect(),this._domX=this._boundingClientRect.x,this._domY=this._boundingClientRect.y)}get domWidth(){return this.isInAR?window.innerWidth:this.domElement.clientWidth}get domHeight(){return this.isInAR?window.innerHeight:this.domElement.clientHeight}get domX(){return this.calculateBoundingClientRect(),this._domX}get domY(){return this.calculateBoundingClientRect(),this._domY}get isInXR(){var A;return((A=this.renderer.xr)==null?void 0:A.isPresenting)||!1}get isInVR(){return this.xrSessionMode==="immersive-vr"}get isInAR(){return this.xrSessionMode==="immersive-ar"}get xrSession(){var A;return(A=this.renderer.xr)==null?void 0:A.getSession()}get xrFrame(){return this._xrFrame}get arOverlayElement(){const A=this.domElement;return typeof A.getAROverlayContainer=="function"?A.getAROverlayContainer():this.domElement}get currentFrameEvent(){return this._currentFrameEvent}get mainCamera(){if(this.mainCameraComponent){const A=this.mainCameraComponent;return A.cam||A.buildCamera(),A.cam}return null}get rendererData(){return this.sceneLighting}get isCreated(){return this._isCreated}createRenderer(){var t,g,I;(t=this.renderer)==null||t.dispose();const A={antialias:!0},e=(I=(g=this.domElement)==null?void 0:g.shadowRoot)==null?void 0:I.querySelector("canvas");e&&(A.canvas=e),this.renderer=new BE(A),this.renderer.toneMappingExposure=1,this.renderer.toneMapping=$g,this.renderer.setClearColor(new wA("lightgrey"),0),this.renderer.antialias=!0,this.renderer.alpha=!1,this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=gM,this.renderer.setSize(this.domWidth,this.domHeight),this.renderer.outputEncoding=pe,this.renderer.physicallyCorrectLights=!0}internalOnUpdateVisible(){var A,e;(A=this._intersectionObserver)==null||A.disconnect(),(e=this._intersectionObserver)==null||e.observe(this.domElement)}updateSize(){var A,e,t;if(!this.isManagedExternally&&((A=this.renderer.xr)==null?void 0:A.isPresenting)===!1){this._sizeChanged=!1;const g=this.resolutionScaleFactor,I=this.domWidth*g,o=this.domHeight*g,C=this.mainCamera;this.updateAspect(C),this.renderer.setSize(I,o),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.style.width="100%",this.renderer.domElement.style.height="100%",this.composer&&((e=this.composer.setSize)==null||e.call(this.composer,I,o),"setPixelRatio"in this.composer&&typeof this.composer.setPixelRatio=="function"&&((t=this.composer.setPixelRatio)==null||t.call(this.composer,window.devicePixelRatio)))}}updateAspect(A,e,t){if(!A)return;e===void 0&&(e=this.domWidth),t===void 0&&(t=this.domHeight);const g=A.aspect;A.aspect=e/t,g!==A.aspect&&A.updateProjectionMatrix()}async onCreate(A,e){try{return this._isCreating=!0,await this.internalOnCreate(A,e)}finally{this._isCreating=!1}}clear(){var A,e,t,g;qt.dispatchCallback(Ng.ContextClearing,this),tn(this.scene,!0,!0),this.scene=new GI,(A=this.addressables)==null||A.dispose(),(e=this.lightmaps)==null||e.clear(),(g=(t=this.physics)==null?void 0:t.engine)==null||g.clearCaches(),this.isManagedExternally||(this.renderer.renderLists.dispose(),this.renderer.state.reset(),this.renderer.resetState()),qt.dispatchCallback(Ng.ContextCleared,this)}dispose(){this.internalOnDestroy()}onDestroy(){this.internalOnDestroy()}internalOnDestroy(){var A,e;this.clear(),(A=this.renderer)==null||A.setAnimationLoop(null),this.renderer&&(this.renderer.setClearAlpha(0),this.renderer.clear()),this.isManagedExternally||this.renderer.dispose(),this.scene=null,this.renderer=null,this.input.dispose();for(const t of this._disposeCallbacks)try{t()}catch(g){console.error("Error in on dispose callback:",g,t)}(e=this.domElement)!=null&&e.parentElement&&this.domElement.parentElement.removeChild(this.domElement),qt.dispatchCallback(Ng.ContextDestroyed,this),qt.unregister(this)}registerCoroutineUpdate(A,e,t){return this.coroutines[t]||(this.coroutines[t]=[]),this.coroutines[t].push({comp:A,main:e}),e}unregisterCoroutineUpdate(A,e){if(!this.coroutines[e])return;const t=this.coroutines[e].findIndex(g=>g.main===A);t>=0&&this.coroutines[e].splice(t,1)}stopAllCoroutinesFrom(A){for(const e in this.coroutines){const t=this.coroutines[e];for(let g=t.length-1;g>=0;g--)t[g].comp===A&&t.splice(g,1)}}setCurrentCamera(A){var g;if(!A)return;if(A.cam||A.buildCamera(),!A.cam){console.warn("Camera component is missing camera",A);return}const e=this._cameraStack.indexOf(A);e>=0&&this._cameraStack.splice(e,1),this._cameraStack.push(A),this.mainCameraComponent=A;const t=A.cam;t.isPerspectiveCamera&&this.updateAspect(t),(g=this.mainCameraComponent)==null||g.applyClearFlagsIfIsActiveCamera()}removeCamera(A){if(!A)return;const e=this._cameraStack.indexOf(A);if(e>=0&&this._cameraStack.splice(e,1),this.mainCameraComponent===A&&(this.mainCameraComponent=void 0,this._cameraStack.length>0)){const t=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(t)}}addBeforeRenderListener(A,e){var t;this._onBeforeRenderListeners.has(A.uuid)||(this._onBeforeRenderListeners.set(A.uuid,[]),A.onBeforeRender=this._createRenderCallbackWrapper(A,this._onBeforeRenderListeners)),(t=this._onBeforeRenderListeners.get(A.uuid))==null||t.push(e)}removeBeforeRenderListener(A,e){if(this._onBeforeRenderListeners.has(A.uuid)){const t=this._onBeforeRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}addAfterRenderListener(A,e){var t;this._onAfterRenderListeners.has(A.uuid)||(this._onAfterRenderListeners.set(A.uuid,[]),A.onAfterRender=this._createRenderCallbackWrapper(A,this._onAfterRenderListeners)),(t=this._onAfterRenderListeners.get(A.uuid))==null||t.push(e)}removeAfterRenderListener(A,e){if(this._onAfterRenderListeners.has(A.uuid)){const t=this._onAfterRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}_createRenderCallbackWrapper(A,e){return(t,g,I,o,C,s)=>{const n=e.get(A.uuid);if(n)for(let a=0;a<n.length;a++){const B=n[a];B(t,g,I,o,C,s)}}}get isRendering(){return this._isRendering}setRequireDepth(A){this._requireDepthTexture=A}setRequireColor(A){this._requireColorTexture=A}get depthTexture(){var A;return((A=this._renderTarget)==null?void 0:A.depthTexture)||null}get opaqueColorTexture(){var A;return((A=this._renderTarget)==null?void 0:A.texture)||null}get isVisibleToUser(){if(this.isInXR)return!0;if(!this._isVisible)return!1;const A=getComputedStyle(this.domElement);return A.visibility!=="hidden"&&A.display!=="none"&&A.opacity!=="0"}async internalOnCreate(A,e){var I,o;this.clear(),(I=this.renderer)==null||I.setAnimationLoop(null),await bl(1),ri.Current=this,await qt.dispatchCallback(Ng.ContextCreationStart,this);let t=!0,g;try{ri.Current=this,A&&(g=await A(this,e))}catch(C){console.error(C),t=!1}if(!t)return!1;if(this.internalOnUpdateVisible(),!this.renderer)return jB&&console.warn("Context has no renderer (perhaps it was disconnected?",this.domElement.isConnected),!1;!this.isManagedExternally&&!this.domElement.shadowRoot&&this.domElement.prepend(this.renderer.domElement),ri.Current=this,ri.Current=this;for(let C=0;C<this.new_scripts.length;C++){const s=this.new_scripts[C];if(s.gameObject!==void 0&&s.gameObject!==null){s.gameObject.userData===void 0&&(s.gameObject.userData={}),s.gameObject.userData.components===void 0&&(s.gameObject.userData.components=[]);const n=s.gameObject.userData.components;n.includes(s)||n.push(s)}}if(this.post_setup_callbacks)for(let C=0;C<this.post_setup_callbacks.length;C++)ri.Current=this,await this.post_setup_callbacks[C](this);if(!this.mainCamera){ri.Current=this;let C=null;Or(this.scene,s=>{const n=s;if(n!=null&&n.isCamera){if(ph(n.gameObject),!n.activeAndEnabled)return;if(n.tag==="MainCamera")return C=n,!0;C=n}}),C?this.setCurrentCamera(C):!qt.dispatchCallback(Ng.MissingCamera,this)&&!this.mainCamera&&!this.isManagedExternally&&console.warn("Missing camera in main scene",this)}if(ri.Current=this,PD(this),!this.isManagedExternally&&this.composer&&this.mainCamera){const C=new Fw(this.scene,this.mainCamera);this.renderer.setSize(this.domWidth,this.domHeight),this.composer.addPass(C),this.composer.setSize(this.domWidth,this.domHeight)}return this._sizeChanged=!0,this._stats&&(this._stats.showPanel(0),(o=this.domElement.shadowRoot)==null||o.appendChild(this._stats.dom)),jB&&YD(this.scene,!0),this.targetFrameRate===void 0?(jB&&console.warn("No target framerate set, using default",ri.DefaultTargetFrameRate),this.targetFrameRate=ri._defaultTargetFramerate):jB&&console.log("Target framerate set to",this.targetFrameRate),this._isCreating=!1,this.restartRenderLoop(),this._dispatchReadyAfterFrame=!0,qt.dispatchCallback(Ng.ContextCreated,this,{files:g})}restartRenderLoop(){if(!this.renderer)return console.error("Can not start render loop without renderer"),!1;if(this._isCreating)return console.warn("Can not start render loop while creating context"),!1;const A=this.render.bind(this);return this.renderer.setAnimationLoop(A),!0}render(A,e){if(qg()||jB||wz())try{this.internalRender(A,e)}catch(t){(qg()||jB)&&t instanceof Error&&mi("Exception during render-loop.<br/>See console for details.",oC.Error),console.error(t),console.warn("Stopping render loop due to error"),this.renderer.setAnimationLoop(null),this.domElement.dispatchEvent(new CustomEvent("error",{detail:t}))}else this.internalRender(A,e)}internalRender(A,e){var t,g;if(this._xrFrame=e,this._currentFrameEvent=-1,this.isInXR===!1&&this.targetFrameRate!==void 0){this._accumulatedTime+=this._framerateClock.getDelta();let I=this.targetFrameRate;if(typeof I=="object"&&(I=I.value),this._accumulatedTime<1/(I+1))return;this._accumulatedTime=0}if((t=this._stats)==null||t.begin(),ri.Current=this,!this.onHandlePaused()){for(ri.Current=this,this.time.update(),O5&&console.log("FPS",this.time.smoothedFps.toFixed(0)),PD(this),zp(this.scene),Tx(this);this._cameraStack.length>0&&(!this.mainCameraComponent||this.mainCameraComponent.destroyed);){this._cameraStack.splice(this._cameraStack.length-1,1);const I=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(I)}if(this.pre_update_callbacks)for(const I in this.pre_update_callbacks)this.pre_update_callbacks[I]();this._currentFrameEvent=0;for(let I=0;I<this.scripts_earlyUpdate.length;I++){const o=this.scripts_earlyUpdate[I];o.activeAndEnabled&&o.earlyUpdate!==void 0&&(ri.Current=this,o.earlyUpdate())}if(this.executeCoroutines(0),!this.onHandlePaused()){this._currentFrameEvent=1;for(let I=0;I<this.scripts_update.length;I++){const o=this.scripts_update[I];o.activeAndEnabled&&o.update!==void 0&&(ri.Current=this,o.update())}if(this.executeCoroutines(1),!this.onHandlePaused()){this._currentFrameEvent=2;for(let I=0;I<this.scripts_lateUpdate.length;I++){const o=this.scripts_lateUpdate[I];o.activeAndEnabled&&o.lateUpdate!==void 0&&(ri.Current=this,o.lateUpdate())}if(this.executeCoroutines(2),!this.onHandlePaused()){if(this.physics.engine){const o=this.time.deltaTime/1;for(let C=0;C<1;C++)this._currentFrameEvent=9,this.executeCoroutines(9),this.physics.engine.step(o),this._currentFrameEvent=10,this.executeCoroutines(10);this.physics.engine.postStep()}if(!this.onHandlePaused()){if(this.isVisibleToUser){this._currentFrameEvent=3;for(let I=0;I<this.scripts_onBeforeRender.length;I++){const o=this.scripts_onBeforeRender[I];o.activeAndEnabled&&o.onBeforeRender!==void 0&&(ri.Current=this,o.onBeforeRender(e))}if(this.executeCoroutines(3),this._sizeChanged&&this.updateSize(),this.pre_render_callbacks)for(const I in this.pre_render_callbacks)this.pre_render_callbacks[I]();this.isManagedExternally||(kz(this),this._currentFrameEvent=-1,this.renderNow(),this._currentFrameEvent=4);for(let I=0;I<this.scripts_onAfterRender.length;I++){const o=this.scripts_onAfterRender[I];o.activeAndEnabled&&o.onAfterRender!==void 0&&(ri.Current=this,o.onAfterRender())}if(this.executeCoroutines(4),this.post_render_callbacks)for(const I in this.post_render_callbacks)this.post_render_callbacks[I]()}this._currentFrameEvent=-1,this.connection.sendBufferedMessagesNow(),(g=this._stats)==null||g.end(),this._dispatchReadyAfterFrame&&(this._dispatchReadyAfterFrame=!1,this.domElement.dispatchEvent(new CustomEvent("ready")))}}}}}}renderNow(A){return!A&&(A=this.mainCamera,!A)?!1:(this._isRendering=!0,this.renderRequiredTextures(),this.composer&&!this.isInXR?this.composer.render(this.time.deltaTime):A&&this.renderer.render(this.scene,A),this._isRendering=!1,!0)}onHandlePaused(){const A=this.evaluatePaused();if(this._wasPaused!==A){_5&&console.log("Paused?",A,"context:"+this.alias);for(let e=0;e<this.scripts_pausedChanged.length;e++){const t=this.scripts_pausedChanged[e];t.activeAndEnabled&&t.onPausedChanged!==void 0&&(ri.Current=this,t.onPausedChanged(A,this._wasPaused))}}return this._wasPaused=A,A}evaluatePaused(){return this.isInXR?!1:this.isPaused?!0:this.runInBackground?!1:!this.isVisibleToUser}renderRequiredTextures(){if(!this.mainCamera||!this._requireDepthTexture&&!this._requireColorTexture)return;if(!this._renderTarget){if(this._renderTarget=new Ct(this.domWidth,this.domHeight),this._requireDepthTexture){const t=new Vf(this.domWidth,this.domHeight);this._renderTarget.depthTexture=t}this._requireColorTexture&&(this._renderTarget.texture=new Te,this._renderTarget.texture.generateMipmaps=!1,this._renderTarget.texture.minFilter=$e,this._renderTarget.texture.magFilter=$e,this._renderTarget.texture.format=bt)}const A=this._renderTarget;A.texture&&(A.texture.encoding=this.renderer.outputEncoding);const e=this.renderer.getRenderTarget();this.renderer.setRenderTarget(A),this.renderer.render(this.scene,this.mainCamera),this.renderer.setRenderTarget(e)}executeCoroutines(A){if(this.coroutines[A]){const t=this.coroutines[A];for(let g=0;g<t.length;g++)try{const I=t[g];if(!I.comp||I.comp.destroyed||!I.main||I.comp.enabled===!1){P5&&console.log("Removing coroutine",I.comp,I.comp.enabled),t.splice(g,1),--g;continue}const C=I.chained;if(C&&C.length>0){const B=C[C.length-1].next();if(B.done&&C.pop(),e(B)&&(I.chained||(I.chained=[]),I.chained.push(B.value)),!B.done)continue}const s=I.main.next();if(s.done===!0){t.splice(g,1),--g;continue}const n=s.value;if(e(n)){if(n.next().done)continue;I.chained||(I.chained=[]),I.chained.push(n)}}catch(I){console.error(I)}}function e(t){return!!(t&&t.next&&t.return)}}};let qe=ri;r(qe,"_defaultTargetFramerate",{value:60});const xn=nA("debugaroverlay"),ur="ar",KK="quit-ar";class j5{constructor(){r(this,"arContainer",null);r(this,"closeARCallback");r(this,"currentSession",null);r(this,"registeredCloseEventElements",[]);r(this,"_createdAROnlyElements",[]);r(this,"_reparentedObjects",[]);this.closeARCallback=this.onRequestedEndAR.bind(this)}get ARContainer(){return this.arContainer}requestEndAR(){this.onRequestedEndAR()}onBegin(A,e,t){this.currentSession=t,this.arContainer=e,A.domElement.shadowRoot.querySelectorAll(`.${ur}`).forEach(o=>{var C;o&&o!==this.arContainer&&(this._reparentedObjects.push({el:o,previousParent:o.parentElement}),(C=this.arContainer)==null||C.appendChild(o))});const I=e.getElementsByClassName(KK);if(!I||I.length<=0)console.warn(`Missing quit AR elements, creating fallback X button. Use class name '${KK}' to override.`),this.createFallbackCloseARButton(this.arContainer);else for(let o=0;o<I.length;o++){const C=I[o];C&&(C.addEventListener("click",this.closeARCallback),this.registeredCloseEventElements.push(C))}}onEnd(A){var e;for(const t of this._createdAROnlyElements)t.remove&&t.remove();for(const t of this._reparentedObjects){const g=t.el;(e=t.previousParent)==null||e.appendChild(g)}this._reparentedObjects.length=0,eM()&&setTimeout(()=>{var o;const t=A.renderer.domElement;t&&((o=A.domElement.shadowRoot)==null||o.prepend(t));const g=document.querySelectorAll("*");for(var I=0;I<g.length;I++){const C=g[I];C&&C._displayChanged!==void 0&&C._displayWas!==void 0&&(C.style.display=C._displayWas)}},10)}findOrCreateARContainer(A){if(xn&&console.log("findOrCreateARContainer"),A.classList.contains(ur))return xn&&console.log("Found overlay container in needle-engine element"),A;if(A.shadowRoot){const g=A.shadowRoot.querySelector(`.${ur}`);if(g)return xn&&console.log("Found overlay container in needle-engine element"),g}const e=document.getElementsByClassName(ur);if(e&&e.length>0)return xn&&console.log("Found overlay container in document"),e[0];xn&&console.log("No overlay container found in document - generating new ony");const t=document.createElement("div");return t.classList.add(ur),t.style.cssText=`
3845
+ #endif`);ZA.lightmap.lightmapScaleOffset={value:new se(1,1,0,0)};const T5=nA("debugplayerview");var _C=(i=>(i.Browser="browser",i.Headset="headset",i.Handheld="handheld",i))(_C||{});class uY{constructor(A,e){r(this,"userId");r(this,"context");r(this,"viewDevice","browser");r(this,"removed",!1);r(this,"_object");this.userId=A,this.context=e}get currentObject(){return this._object}set currentObject(A){this._object=A}get isConnected(){return this.context.connection.userIsInRoom(this.userId)}}class pY{constructor(A){r(this,"context");r(this,"playerViews",new Map);this.context=A}setPlayerView(A,e,t){let g=this.playerViews.get(A);g||(g=new uY(A,this.context),this.playerViews.set(A,g)),g.viewDevice=t,g.currentObject=e,g.removed=!1}getPlayerView(A){if(!A)return;if(!this.context.connection.userIsInRoom(A)){this.playerViews.delete(A);return}return this.playerViews.get(A)}removePlayerView(A,e){const t=this.playerViews.get(A);(t==null?void 0:t.viewDevice)===e&&(T5&&console.log("REMOVE",A),t.removed=!0,this.playerViews.delete(A))}}const jB=nA("debugcontext"),H5=nA("stats"),_5=nA("debugactive"),O5=nA("debugframerate"),P5=nA("debugcoroutine"),W5={};class V5{constructor(A){r(this,"name");r(this,"alias");r(this,"domElement");r(this,"renderer");r(this,"hash");this.domElement=A??document.body}}var ZI=(i=>(i[i.EarlyUpdate=0]="EarlyUpdate",i[i.Update=1]="Update",i[i.LateUpdate=2]="LateUpdate",i[i.OnBeforeRender=3]="OnBeforeRender",i[i.OnAfterRender=4]="OnAfterRender",i[i.PrePhysicsStep=9]="PrePhysicsStep",i[i.PostPhysicsStep=10]="PostPhysicsStep",i[i.Undefined=-1]="Undefined",i))(ZI||{}),Il=(i=>(i.ImmersiveVR="immersive-vr",i.ImmersiveAR="immersive-ar",i))(Il||{});function Nw(i,A){if(!i)return;const e=(A==null?void 0:A.new_scripts)??qe.Current.new_scripts;e.includes(i)||e.push(i)}const ri=class{constructor(A){r(this,"name");r(this,"alias");r(this,"isManagedExternally",!1);r(this,"isPaused",!1);r(this,"runInBackground",!1);r(this,"targetFrameRate");r(this,"hash");r(this,"domElement");r(this,"_resolutionScaleFactor",1);r(this,"_boundingClientRectFrame",-1);r(this,"_boundingClientRect",null);r(this,"_domX");r(this,"_domY");r(this,"xrSessionMode");r(this,"_xrFrame",null);r(this,"_currentFrameEvent",-1);r(this,"scene");r(this,"renderer");r(this,"composer",null);r(this,"scripts",[]);r(this,"scripts_pausedChanged",[]);r(this,"scripts_earlyUpdate",[]);r(this,"scripts_update",[]);r(this,"scripts_lateUpdate",[]);r(this,"scripts_onBeforeRender",[]);r(this,"scripts_onAfterRender",[]);r(this,"scripts_WithCorroutines",[]);r(this,"coroutines",{});r(this,"mainCameraComponent");r(this,"post_setup_callbacks",[]);r(this,"pre_update_callbacks",[]);r(this,"pre_render_callbacks",[]);r(this,"post_render_callbacks",[]);r(this,"new_scripts",[]);r(this,"new_script_start",[]);r(this,"new_scripts_pre_setup_callbacks",[]);r(this,"new_scripts_post_setup_callbacks",[]);r(this,"application");r(this,"time");r(this,"input");r(this,"physics");r(this,"connection");r(this,"assets");r(this,"mainLight",null);r(this,"sceneLighting");r(this,"addressables");r(this,"lightmaps");r(this,"players");r(this,"_sizeChanged",!1);r(this,"_isCreated",!1);r(this,"_isCreating",!1);r(this,"_isVisible",!1);r(this,"_stats",H5?S5():null);r(this,"_intersectionObserver",null);r(this,"_disposeCallbacks",[]);r(this,"_cameraStack",[]);r(this,"_onBeforeRenderListeners",new Map);r(this,"_onAfterRenderListeners",new Map);r(this,"_requireDepthTexture",!1);r(this,"_requireColorTexture",!1);r(this,"_renderTarget");r(this,"_isRendering",!1);r(this,"_accumulatedTime",0);r(this,"_framerateClock",new Cw);r(this,"_dispatchReadyAfterFrame",!1);r(this,"_lastTimestamp",0);r(this,"_wasPaused",!1);this.name=(A==null?void 0:A.name)||"",this.alias=A==null?void 0:A.alias,this.domElement=(A==null?void 0:A.domElement)||document.body,this.hash=A==null?void 0:A.hash,A!=null&&A.renderer?(this.renderer=A.renderer,this.isManagedExternally=!0):this.createRenderer(),this.scene=new GI,qt.register(this),this.application=new dY(this),this.time=new Ev,this.input=new gv(this),this.physics=new Qv(this),this.connection=new ax(this),this.assets=new Mx,this.sceneLighting=new hY(this),this.addressables=new EY(this),this.lightmaps=new Y5(this),this.players=new pY(this);const e=()=>this._sizeChanged=!0;window.addEventListener("resize",e),this._disposeCallbacks.push(()=>window.removeEventListener("resize",e));const t=new ResizeObserver(g=>this._sizeChanged=!0);t.observe(this.domElement),this._disposeCallbacks.push(()=>t.disconnect()),this._intersectionObserver=new IntersectionObserver(g=>{this._isVisible=g[0].isIntersecting}),this._disposeCallbacks.push(()=>{var g;return(g=this._intersectionObserver)==null?void 0:g.disconnect()})}static get DefaultTargetFrameRate(){return ri._defaultTargetFramerate.value}static set DefaultTargetFrameRate(A){ri._defaultTargetFramerate.value=A}get version(){return ww}static get Current(){return qt.Current}static set Current(A){qt.Current=A}appendHTMLElement(A){return this.domElement.shadowRoot?this.domElement.shadowRoot.appendChild(A):this.domElement.appendChild(A)}get resolutionScaleFactor(){return this._resolutionScaleFactor}set resolutionScaleFactor(A){if(A!==this._resolutionScaleFactor&&typeof A=="number"){if(A<=0){console.error("Invalid resolution scale factor",A);return}this._resolutionScaleFactor=A,this.updateSize()}}calculateBoundingClientRect(){if(this.isInAR){this._domX=0,this._domY=0;return}this._boundingClientRectFrame!==this.time.frame&&(this._boundingClientRectFrame=this.time.frame,this._boundingClientRect=this.domElement.getBoundingClientRect(),this._domX=this._boundingClientRect.x,this._domY=this._boundingClientRect.y)}get domWidth(){return this.isInAR?window.innerWidth:this.domElement.clientWidth}get domHeight(){return this.isInAR?window.innerHeight:this.domElement.clientHeight}get domX(){return this.calculateBoundingClientRect(),this._domX}get domY(){return this.calculateBoundingClientRect(),this._domY}get isInXR(){var A;return((A=this.renderer.xr)==null?void 0:A.isPresenting)||!1}get isInVR(){return this.xrSessionMode==="immersive-vr"}get isInAR(){return this.xrSessionMode==="immersive-ar"}get xrSession(){var A;return(A=this.renderer.xr)==null?void 0:A.getSession()}get xrFrame(){return this._xrFrame}get arOverlayElement(){const A=this.domElement;return typeof A.getAROverlayContainer=="function"?A.getAROverlayContainer():this.domElement}get currentFrameEvent(){return this._currentFrameEvent}get mainCamera(){if(this.mainCameraComponent){const A=this.mainCameraComponent;return A.cam||A.buildCamera(),A.cam}return null}get rendererData(){return this.sceneLighting}get isCreated(){return this._isCreated}createRenderer(){var t,g,I;(t=this.renderer)==null||t.dispose();const A={antialias:!0},e=(I=(g=this.domElement)==null?void 0:g.shadowRoot)==null?void 0:I.querySelector("canvas");e&&(A.canvas=e),this.renderer=new BE(A),this.renderer.toneMappingExposure=1,this.renderer.toneMapping=$g,this.renderer.setClearColor(new wA("lightgrey"),0),this.renderer.antialias=!0,this.renderer.alpha=!1,this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=gM,this.renderer.setSize(this.domWidth,this.domHeight),this.renderer.outputEncoding=pe,this.renderer.physicallyCorrectLights=!0}internalOnUpdateVisible(){var A,e;(A=this._intersectionObserver)==null||A.disconnect(),(e=this._intersectionObserver)==null||e.observe(this.domElement)}updateSize(){var A,e,t;if(!this.isManagedExternally&&((A=this.renderer.xr)==null?void 0:A.isPresenting)===!1){this._sizeChanged=!1;const g=this.resolutionScaleFactor,I=this.domWidth*g,o=this.domHeight*g,C=this.mainCamera;this.updateAspect(C),this.renderer.setSize(I,o),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.domElement.style.width="100%",this.renderer.domElement.style.height="100%",this.composer&&((e=this.composer.setSize)==null||e.call(this.composer,I,o),"setPixelRatio"in this.composer&&typeof this.composer.setPixelRatio=="function"&&((t=this.composer.setPixelRatio)==null||t.call(this.composer,window.devicePixelRatio)))}}updateAspect(A,e,t){if(!A)return;e===void 0&&(e=this.domWidth),t===void 0&&(t=this.domHeight);const g=A.aspect;A.aspect=e/t,g!==A.aspect&&A.updateProjectionMatrix()}async onCreate(A,e){try{return this._isCreating=!0,await this.internalOnCreate(A,e)}finally{this._isCreating=!1}}clear(){var A,e,t,g;qt.dispatchCallback(Ng.ContextClearing,this),tn(this.scene,!0,!0),this.scene=new GI,(A=this.addressables)==null||A.dispose(),(e=this.lightmaps)==null||e.clear(),(g=(t=this.physics)==null?void 0:t.engine)==null||g.clearCaches(),this.isManagedExternally||(this.renderer.renderLists.dispose(),this.renderer.state.reset(),this.renderer.resetState()),qt.dispatchCallback(Ng.ContextCleared,this)}dispose(){this.internalOnDestroy()}onDestroy(){this.internalOnDestroy()}internalOnDestroy(){var A,e;this.clear(),(A=this.renderer)==null||A.setAnimationLoop(null),this.renderer&&(this.renderer.setClearAlpha(0),this.renderer.clear()),this.isManagedExternally||this.renderer.dispose(),this.scene=null,this.renderer=null,this.input.dispose();for(const t of this._disposeCallbacks)try{t()}catch(g){console.error("Error in on dispose callback:",g,t)}(e=this.domElement)!=null&&e.parentElement&&this.domElement.parentElement.removeChild(this.domElement),qt.dispatchCallback(Ng.ContextDestroyed,this),qt.unregister(this)}registerCoroutineUpdate(A,e,t){return this.coroutines[t]||(this.coroutines[t]=[]),this.coroutines[t].push({comp:A,main:e}),e}unregisterCoroutineUpdate(A,e){if(!this.coroutines[e])return;const t=this.coroutines[e].findIndex(g=>g.main===A);t>=0&&this.coroutines[e].splice(t,1)}stopAllCoroutinesFrom(A){for(const e in this.coroutines){const t=this.coroutines[e];for(let g=t.length-1;g>=0;g--)t[g].comp===A&&t.splice(g,1)}}setCurrentCamera(A){var g;if(!A)return;if(A.cam||A.buildCamera(),!A.cam){console.warn("Camera component is missing camera",A);return}const e=this._cameraStack.indexOf(A);e>=0&&this._cameraStack.splice(e,1),this._cameraStack.push(A),this.mainCameraComponent=A;const t=A.cam;t.isPerspectiveCamera&&this.updateAspect(t),(g=this.mainCameraComponent)==null||g.applyClearFlagsIfIsActiveCamera()}removeCamera(A){if(!A)return;const e=this._cameraStack.indexOf(A);if(e>=0&&this._cameraStack.splice(e,1),this.mainCameraComponent===A&&(this.mainCameraComponent=void 0,this._cameraStack.length>0)){const t=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(t)}}addBeforeRenderListener(A,e){var t;this._onBeforeRenderListeners.has(A.uuid)||(this._onBeforeRenderListeners.set(A.uuid,[]),A.onBeforeRender=this._createRenderCallbackWrapper(A,this._onBeforeRenderListeners)),(t=this._onBeforeRenderListeners.get(A.uuid))==null||t.push(e)}removeBeforeRenderListener(A,e){if(this._onBeforeRenderListeners.has(A.uuid)){const t=this._onBeforeRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}addAfterRenderListener(A,e){var t;this._onAfterRenderListeners.has(A.uuid)||(this._onAfterRenderListeners.set(A.uuid,[]),A.onAfterRender=this._createRenderCallbackWrapper(A,this._onAfterRenderListeners)),(t=this._onAfterRenderListeners.get(A.uuid))==null||t.push(e)}removeAfterRenderListener(A,e){if(this._onAfterRenderListeners.has(A.uuid)){const t=this._onAfterRenderListeners.get(A.uuid),g=t.indexOf(e);g>=0&&t.splice(g,1)}}_createRenderCallbackWrapper(A,e){return(t,g,I,o,C,s)=>{const n=e.get(A.uuid);if(n)for(let a=0;a<n.length;a++){const B=n[a];B(t,g,I,o,C,s)}}}get isRendering(){return this._isRendering}setRequireDepth(A){this._requireDepthTexture=A}setRequireColor(A){this._requireColorTexture=A}get depthTexture(){var A;return((A=this._renderTarget)==null?void 0:A.depthTexture)||null}get opaqueColorTexture(){var A;return((A=this._renderTarget)==null?void 0:A.texture)||null}get isVisibleToUser(){if(this.isInXR)return!0;if(!this._isVisible)return!1;const A=getComputedStyle(this.domElement);return A.visibility!=="hidden"&&A.display!=="none"&&A.opacity!=="0"}async internalOnCreate(A,e){var I,o;this.clear(),(I=this.renderer)==null||I.setAnimationLoop(null),await bl(1),ri.Current=this,await qt.dispatchCallback(Ng.ContextCreationStart,this);let t=!0,g;try{ri.Current=this,A&&(g=await A(this,e))}catch(C){console.error(C),t=!1}if(!t)return!1;if(this.internalOnUpdateVisible(),!this.renderer)return jB&&console.warn("Context has no renderer (perhaps it was disconnected?",this.domElement.isConnected),!1;!this.isManagedExternally&&!this.domElement.shadowRoot&&this.domElement.prepend(this.renderer.domElement),ri.Current=this,ri.Current=this;for(let C=0;C<this.new_scripts.length;C++){const s=this.new_scripts[C];if(s.gameObject!==void 0&&s.gameObject!==null){s.gameObject.userData===void 0&&(s.gameObject.userData={}),s.gameObject.userData.components===void 0&&(s.gameObject.userData.components=[]);const n=s.gameObject.userData.components;n.includes(s)||n.push(s)}}if(this.post_setup_callbacks)for(let C=0;C<this.post_setup_callbacks.length;C++)ri.Current=this,await this.post_setup_callbacks[C](this);if(!this.mainCamera){ri.Current=this;let C=null;Or(this.scene,s=>{const n=s;if(n!=null&&n.isCamera){if(ph(n.gameObject),!n.activeAndEnabled)return;if(n.tag==="MainCamera")return C=n,!0;C=n}}),C?this.setCurrentCamera(C):!qt.dispatchCallback(Ng.MissingCamera,this)&&!this.mainCamera&&!this.isManagedExternally&&console.warn("Missing camera in main scene",this)}if(ri.Current=this,PD(this),!this.isManagedExternally&&this.composer&&this.mainCamera){const C=new Fw(this.scene,this.mainCamera);this.renderer.setSize(this.domWidth,this.domHeight),this.composer.addPass(C),this.composer.setSize(this.domWidth,this.domHeight)}return this._sizeChanged=!0,this._stats&&(this._stats.showPanel(0),(o=this.domElement.shadowRoot)==null||o.appendChild(this._stats.dom)),jB&&YD(this.scene,!0),this.targetFrameRate===void 0?(jB&&console.warn("No target framerate set, using default",ri.DefaultTargetFrameRate),this.targetFrameRate=ri._defaultTargetFramerate):jB&&console.log("Target framerate set to",this.targetFrameRate),this._isCreating=!1,this.restartRenderLoop(),this._dispatchReadyAfterFrame=!0,qt.dispatchCallback(Ng.ContextCreated,this,{files:g})}restartRenderLoop(){if(!this.renderer)return console.error("Can not start render loop without renderer"),!1;if(this._isCreating)return console.warn("Can not start render loop while creating context"),!1;const A=this.render.bind(this);return this.renderer.setAnimationLoop(A),!0}render(A,e){if(qg()||jB||wz())try{this.internalRender(A,e)}catch(t){(qg()||jB)&&t instanceof Error&&mi("Exception during render-loop.<br/>See console for details.",oC.Error),console.error(t),console.warn("Stopping render loop due to error"),this.renderer.setAnimationLoop(null),this.domElement.dispatchEvent(new CustomEvent("error",{detail:t}))}else this.internalRender(A,e)}internalRender(A,e){var t,g;if(this._xrFrame=e,this._currentFrameEvent=-1,this.isInXR===!1&&this.targetFrameRate!==void 0){this._lastTimestamp===0&&(this._lastTimestamp=A),this._accumulatedTime+=(A-this._lastTimestamp)/1e3,this._lastTimestamp=A;let I=this.targetFrameRate;if(typeof I=="object"&&(I=I.value),this._accumulatedTime<1/(I+1))return;this._accumulatedTime=0}if((t=this._stats)==null||t.begin(),ri.Current=this,!this.onHandlePaused()){for(ri.Current=this,this.time.update(),O5&&console.log("FPS",this.time.smoothedFps.toFixed(0)),PD(this),zp(this.scene),Tx(this);this._cameraStack.length>0&&(!this.mainCameraComponent||this.mainCameraComponent.destroyed);){this._cameraStack.splice(this._cameraStack.length-1,1);const I=this._cameraStack[this._cameraStack.length-1];this.setCurrentCamera(I)}if(this.pre_update_callbacks)for(const I in this.pre_update_callbacks)this.pre_update_callbacks[I]();this._currentFrameEvent=0;for(let I=0;I<this.scripts_earlyUpdate.length;I++){const o=this.scripts_earlyUpdate[I];o.activeAndEnabled&&o.earlyUpdate!==void 0&&(ri.Current=this,o.earlyUpdate())}if(this.executeCoroutines(0),!this.onHandlePaused()){this._currentFrameEvent=1;for(let I=0;I<this.scripts_update.length;I++){const o=this.scripts_update[I];o.activeAndEnabled&&o.update!==void 0&&(ri.Current=this,o.update())}if(this.executeCoroutines(1),!this.onHandlePaused()){this._currentFrameEvent=2;for(let I=0;I<this.scripts_lateUpdate.length;I++){const o=this.scripts_lateUpdate[I];o.activeAndEnabled&&o.lateUpdate!==void 0&&(ri.Current=this,o.lateUpdate())}if(this.executeCoroutines(2),!this.onHandlePaused()){if(this.physics.engine){const o=this.time.deltaTime/1;for(let C=0;C<1;C++)this._currentFrameEvent=9,this.executeCoroutines(9),this.physics.engine.step(o),this._currentFrameEvent=10,this.executeCoroutines(10);this.physics.engine.postStep()}if(!this.onHandlePaused()){if(this.isVisibleToUser){this._currentFrameEvent=3;for(let I=0;I<this.scripts_onBeforeRender.length;I++){const o=this.scripts_onBeforeRender[I];o.activeAndEnabled&&o.onBeforeRender!==void 0&&(ri.Current=this,o.onBeforeRender(e))}if(this.executeCoroutines(3),this._sizeChanged&&this.updateSize(),this.pre_render_callbacks)for(const I in this.pre_render_callbacks)this.pre_render_callbacks[I]();this.isManagedExternally||(kz(this),this._currentFrameEvent=-1,this.renderNow(),this._currentFrameEvent=4);for(let I=0;I<this.scripts_onAfterRender.length;I++){const o=this.scripts_onAfterRender[I];o.activeAndEnabled&&o.onAfterRender!==void 0&&(ri.Current=this,o.onAfterRender())}if(this.executeCoroutines(4),this.post_render_callbacks)for(const I in this.post_render_callbacks)this.post_render_callbacks[I]()}this._currentFrameEvent=-1,this.connection.sendBufferedMessagesNow(),(g=this._stats)==null||g.end(),this._dispatchReadyAfterFrame&&(this._dispatchReadyAfterFrame=!1,this.domElement.dispatchEvent(new CustomEvent("ready")))}}}}}}renderNow(A){return!A&&(A=this.mainCamera,!A)?!1:(this._isRendering=!0,this.renderRequiredTextures(),this.composer&&!this.isInXR?this.composer.render(this.time.deltaTime):A&&this.renderer.render(this.scene,A),this._isRendering=!1,!0)}onHandlePaused(){const A=this.evaluatePaused();if(this._wasPaused!==A){_5&&console.log("Paused?",A,"context:"+this.alias);for(let e=0;e<this.scripts_pausedChanged.length;e++){const t=this.scripts_pausedChanged[e];t.activeAndEnabled&&t.onPausedChanged!==void 0&&(ri.Current=this,t.onPausedChanged(A,this._wasPaused))}}return this._wasPaused=A,A}evaluatePaused(){return this.isInXR?!1:this.isPaused?!0:this.runInBackground?!1:!this.isVisibleToUser}renderRequiredTextures(){if(!this.mainCamera||!this._requireDepthTexture&&!this._requireColorTexture)return;if(!this._renderTarget){if(this._renderTarget=new Ct(this.domWidth,this.domHeight),this._requireDepthTexture){const t=new Vf(this.domWidth,this.domHeight);this._renderTarget.depthTexture=t}this._requireColorTexture&&(this._renderTarget.texture=new Te,this._renderTarget.texture.generateMipmaps=!1,this._renderTarget.texture.minFilter=$e,this._renderTarget.texture.magFilter=$e,this._renderTarget.texture.format=bt)}const A=this._renderTarget;A.texture&&(A.texture.encoding=this.renderer.outputEncoding);const e=this.renderer.getRenderTarget();this.renderer.setRenderTarget(A),this.renderer.render(this.scene,this.mainCamera),this.renderer.setRenderTarget(e)}executeCoroutines(A){if(this.coroutines[A]){const t=this.coroutines[A];for(let g=0;g<t.length;g++)try{const I=t[g];if(!I.comp||I.comp.destroyed||!I.main||I.comp.enabled===!1){P5&&console.log("Removing coroutine",I.comp,I.comp.enabled),t.splice(g,1),--g;continue}const C=I.chained;if(C&&C.length>0){const B=C[C.length-1].next();if(B.done&&C.pop(),e(B)&&(I.chained||(I.chained=[]),I.chained.push(B.value)),!B.done)continue}const s=I.main.next();if(s.done===!0){t.splice(g,1),--g;continue}const n=s.value;if(e(n)){if(n.next().done)continue;I.chained||(I.chained=[]),I.chained.push(n)}}catch(I){console.error(I)}}function e(t){return!!(t&&t.next&&t.return)}}};let qe=ri;r(qe,"_defaultTargetFramerate",{value:60});const xn=nA("debugaroverlay"),ur="ar",KK="quit-ar";class j5{constructor(){r(this,"arContainer",null);r(this,"closeARCallback");r(this,"currentSession",null);r(this,"registeredCloseEventElements",[]);r(this,"_createdAROnlyElements",[]);r(this,"_reparentedObjects",[]);this.closeARCallback=this.onRequestedEndAR.bind(this)}get ARContainer(){return this.arContainer}requestEndAR(){this.onRequestedEndAR()}onBegin(A,e,t){this.currentSession=t,this.arContainer=e,A.domElement.shadowRoot.querySelectorAll(`.${ur}`).forEach(o=>{var C;o&&o!==this.arContainer&&(this._reparentedObjects.push({el:o,previousParent:o.parentElement}),(C=this.arContainer)==null||C.appendChild(o))});const I=e.getElementsByClassName(KK);if(!I||I.length<=0)console.warn(`Missing quit AR elements, creating fallback X button. Use class name '${KK}' to override.`),this.createFallbackCloseARButton(this.arContainer);else for(let o=0;o<I.length;o++){const C=I[o];C&&(C.addEventListener("click",this.closeARCallback),this.registeredCloseEventElements.push(C))}}onEnd(A){var e;for(const t of this._createdAROnlyElements)t.remove&&t.remove();for(const t of this._reparentedObjects){const g=t.el;(e=t.previousParent)==null||e.appendChild(g)}this._reparentedObjects.length=0,eM()&&setTimeout(()=>{var o;const t=A.renderer.domElement;t&&((o=A.domElement.shadowRoot)==null||o.prepend(t));const g=document.querySelectorAll("*");for(var I=0;I<g.length;I++){const C=g[I];C&&C._displayChanged!==void 0&&C._displayWas!==void 0&&(C.style.display=C._displayWas)}},10)}findOrCreateARContainer(A){if(xn&&console.log("findOrCreateARContainer"),A.classList.contains(ur))return xn&&console.log("Found overlay container in needle-engine element"),A;if(A.shadowRoot){const g=A.shadowRoot.querySelector(`.${ur}`);if(g)return xn&&console.log("Found overlay container in needle-engine element"),g}const e=document.getElementsByClassName(ur);if(e&&e.length>0)return xn&&console.log("Found overlay container in document"),e[0];xn&&console.log("No overlay container found in document - generating new ony");const t=document.createElement("div");return t.classList.add(ur),t.style.cssText=`
3846
3846
  position: fixed;
3847
3847
  top: 0;
3848
3848
  left: 0;
@@ -3853,7 +3853,7 @@ irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );
3853
3853
  z-index: 9999;
3854
3854
  pointer-events: none;
3855
3855
  // background: rgba(0,0,0,1);
3856
- `,xn&&this.createFallbackCloseARButton(A),this.appendElement(t,A)}onRequestedEndAR(){if(this.currentSession){this.currentSession.end(),this.currentSession=null;for(const A of this.registeredCloseEventElements)A.removeEventListener("click",this.closeARCallback);this.registeredCloseEventElements.length=0}}createFallbackCloseARButton(A){const e=document.createElement("slot");e.setAttribute("name","quit-ar"),this.appendElement(e,A),xn&&e.addEventListener("click",()=>console.log("Clicked fallback close button")),e.addEventListener("click",this.closeARCallback),this._createdAROnlyElements.push(e),e.style.pointerEvents="auto";var t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.classList.add("quit-ar-button"),t.setAttribute("width","38px"),t.setAttribute("height","38px"),e.appendChild(t);var g=document.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("d","M 12,12 L 28,28 M 28,12 12,28"),g.setAttribute("stroke","#ddd"),g.setAttribute("stroke-width","3px"),t.appendChild(g),xn&&console.log("Created fallback close button",t,A)}appendElement(A,e){return e.shadowRoot?e.shadowRoot.appendChild(A):e.appendChild(A)}}class AA extends UA{constructor(){super(...arguments);r(this,"guid")}static isDestroyed(e){return Bm(e)}static setActive(e,t,g=!0){e&&(uh(e,t),zp(e),t&&g&&Tx(qe.Current,e))}static isActiveSelf(e){return yE(e)}static isActiveInHierarchy(e){return Jx(e)}static markAsInstancedRendered(e,t){qx(e,t)}static isUsingInstancing(e){return mw(e)}static foreachComponent(e,t,g=!0){return Or(e,t,g)}static instantiateSynced(e,t){return e?Cm(e,t):null}static instantiate(e,t=null){return ad(e,t)}static destroySynced(e,t,g=!0){if(!e)return;const I=e;t=t??qe.Current,yw(I,t.connection,g)}static destroy(e,t=!0,g=!0){return tn(e,t,g)}static add(e,t,g){if(!(!e||!t)){if(e===t){console.warn("Can not add object to self",e);return}g||(g=qe.Current),t.add(e),uh(e,!0),zp(e),g?AA.foreachComponent(e,I=>{Em(I,g),!I.__internalDidAwakeAndStart&&g.new_script_start.includes(I)===!1&&g.new_script_start.push(I)},!0):console.warn("Missing context")}}static remove(e){var t;e&&((t=e.parent)==null||t.remove(e),uh(e,!1),zp(e),AA.foreachComponent(e,g=>{yz(g)},!0))}static invokeOnChildren(e,t,...g){this.invoke(e,t,!0,g)}static invoke(e,t,g=!1,...I){e&&this.foreachComponent(e,o=>{const C=o[t];C&&typeof C=="function"&&(C==null||C.call(o,...I))},g)}static addNewComponent(e,t,g=!0){const I=new t;return iB(e,I,g),I}static addComponent(e,t){return this.moveComponent(e,t)}static moveComponent(e,t){return nm(e,t)}static removeComponent(e){return sm(e.gameObject,e),e}static getOrAddComponent(e,t){return kw(e,t)}static getComponent(e,t){return e===null?null:wE(e,t)}static getComponents(e,t,g=null){return e===null?g??[]:od(e,t,g)}static findByGuid(e,t){return nd(e,t)}static findObjectOfType(e,t,g=!0){return Sx(e,t??qe.Current,g)}static findObjectsOfType(e,t){const g=[];return kx(e,g,t),g}static getComponentInChildren(e,t){return Cd(e,t)}static getComponentsInChildren(e,t,g=null){return sd(e,t,g??void 0)}static getComponentInParent(e,t){return il(e,t)}static getComponentsInParent(e,t,g=null){return Gw(e,t,g)}static getAllComponents(e){var I;return[...(I=e.userData)==null?void 0:I.components]}static*iterateComponents(e){var g;const t=(g=e==null?void 0:e.userData)==null?void 0:g.components;if(t&&Array.isArray(t))for(let I=0;I<t.length;I++)yield t[I]}}var gi;let Na=(gi=class{constructor(){r(this,"__context");r(this,"__name");r(this,"gameObject");r(this,"guid","invalid");r(this,"sourceId");r(this,"__didAwake",!1);r(this,"__didStart",!1);r(this,"__didEnable",!1);r(this,"__isEnabled");r(this,"__destroyed",!1);r(this,"_worldPosition");r(this,"_worldQuaternion");r(this,"_worldEuler");r(this,"_worldRotation");r(this,"_eventListeners",new Map);this.__internalNewInstanceCreated()}get isComponent(){return!0}get context(){return this.__context??qe.Current}set context(A){this.__context=A}get scene(){return this.context.scene}get layer(){var A,e;return(e=(A=this.gameObject)==null?void 0:A.userData)==null?void 0:e.layer}get name(){var A,e;return(A=this.gameObject)!=null&&A.name?this.gameObject.name:(e=this.gameObject)==null?void 0:e.userData.name}set name(A){this.gameObject?(this.gameObject.userData||(this.gameObject.userData={}),this.gameObject.userData.name=A,this.__name=A):this.__name=A}get tag(){var A;return(A=this.gameObject)==null?void 0:A.userData.tag}set tag(A){this.gameObject&&(this.gameObject.userData.tag=A)}get static(){var A;return(A=this.gameObject)==null?void 0:A.userData.static}get hideFlags(){var A;return(A=this.gameObject)==null?void 0:A.userData.hideFlags}get activeAndEnabled(){return!(this.destroyed||this.__isEnabled===!1||!this.__isActiveInHierarchy)}get __isActive(){return this.gameObject.visible}get __isActiveInHierarchy(){if(!this.gameObject)return!1;const A=this.gameObject[Vs];return A===void 0?!0:A}set __isActiveInHierarchy(A){this.gameObject&&(this.gameObject[Vs]=A)}awake(){}onEnable(){}onDisable(){}onDestroy(){this.__destroyed=!0}startCoroutine(A,e=ZI.Update){return this.context.registerCoroutineUpdate(this,A,e)}stopCoroutine(A,e=ZI.Update){this.context.unregisterCoroutineUpdate(A,e)}get destroyed(){return this.__destroyed}destroy(){this.__destroyed||this.__internalDestroy()}get __internalDidAwakeAndStart(){return this.__didAwake&&this.__didStart}__internalNewInstanceCreated(){this.__didAwake=!1,this.__didStart=!1,this.__didEnable=!1,this.__isEnabled=void 0,this.__destroyed=!1}__internalAwake(){this.__didAwake||(this.__didAwake=!0,this.awake())}__internalStart(){this.__didStart||(this.__didStart=!0,this.start&&this.start())}__internalEnable(A){return this.__destroyed?(qg()&&console.warn("[Needle Engine Dev] Trying to enable destroyed component"),!1):this.__didAwake?this.__didEnable?(A!==!0&&(this.__isEnabled=!0),!1):(this.__didEnable=!0,this.__isEnabled=!0,this.onEnable(),!0):!1}__internalDisable(A){if(this.__didAwake){if(!this.__didEnable){A!==!0&&(this.__isEnabled=!1);return}this.__didEnable=!1,this.__isEnabled=!1,this.onDisable()}}__internalDestroy(){var A;this.__destroyed||(this.__destroyed=!0,(A=this.destroy)==null||A.call(this),this.dispatchEvent(new CustomEvent("destroyed",{detail:this})),wx(this))}get enabled(){return typeof this.__isEnabled=="boolean"?this.__isEnabled:!0}set enabled(A){if(this.__destroyed){qg()&&console.warn(`[Needle Engine Dev] Trying to ${A?"enable":"disable"} destroyed component`);return}if(typeof A=="number"&&(A>=.5?A=!0:A=!1),!this.__didAwake){this.__isEnabled=A;return}A?this.__internalEnable():this.__internalDisable()}get worldPosition(){return this._worldPosition||(this._worldPosition=new S),ye(this.gameObject,this._worldPosition),this._worldPosition}set worldPosition(A){di(this.gameObject,A)}setWorldPosition(A,e,t){gi._worldPositionBuffer.set(A,e,t),this.worldPosition=gi._worldPositionBuffer}get worldQuaternion(){return this._worldQuaternion||(this._worldQuaternion=new kA),Pi(this.gameObject,this._worldQuaternion)}set worldQuaternion(A){MI(this.gameObject,A)}setWorldQuaternion(A,e,t,g){gi._worldQuaternionBuffer.set(A,e,t,g),this.worldQuaternion=gi._worldQuaternionBuffer}get worldEuler(){return this._worldEuler||(this._worldEuler=new Fi),this._worldEuler.setFromQuaternion(this.worldQuaternion),this._worldEuler}set worldEuler(A){var e;this._worldQuaternion||(this._worldQuaternion=new kA),(e=this._worldQuaternion)==null||e.setFromEuler(A),this.worldQuaternion=this._worldQuaternion}get worldRotation(){const A=this.worldEuler;this._worldRotation||(this._worldRotation=new S);const e=this._worldRotation;return e.set(A.x,A.y,A.z),e.x=ee.toDegrees(e.x),e.y=ee.toDegrees(e.y),e.z=ee.toDegrees(e.z),e}set worldRotation(A){this.setWorldRotation(A.x,A.y,A.z,!0)}setWorldRotation(A,e,t,g=!0){g&&(A=ee.toRadians(A),e=ee.toRadians(e),t=ee.toRadians(t)),gi._worldEulerBuffer.set(A,e,t),gi._worldQuaternionBuffer.setFromEuler(gi._worldEulerBuffer),this.worldQuaternion=gi._worldQuaternionBuffer}get forward(){return gi._forward.set(0,0,-1).applyQuaternion(this.worldQuaternion)}get right(){return gi._right.set(1,0,0).applyQuaternion(this.worldQuaternion)}get up(){return gi._up.set(0,1,0).applyQuaternion(this.worldQuaternion)}addEventListener(A,e){this._eventListeners[A]=this._eventListeners[A]||[],this._eventListeners[A].push(e)}removeEventListener(A,e){if(!this._eventListeners[A])return;const t=this._eventListeners[A].indexOf(e);t>=0&&this._eventListeners[A].splice(t,1)}dispatchEvent(A){if(!this._eventListeners[A.type])return!1;const e=this._eventListeners[A.type];for(let t=0;t<e.length;t++)e[t](A);return!1}},r(gi,"_worldPositionBuffer",new S),r(gi,"_worldQuaternionBuffer",new kA),r(gi,"_worldEulerBuffer",new Fi),r(gi,"_tempQuaternionBuffer2",new kA),r(gi,"_forward",new S),r(gi,"_right",new S),r(gi,"_up",new S),gi);class MA extends Na{}const z5=Object.freeze(Object.defineProperty({__proto__:null,Behaviour:MA,Component:Na,GameObject:AA},Symbol.toStringTag,{value:"Module"})),Z5='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>',X5=new Blob([Z5],{type:"image/svg+xml;charset=utf-8"}),$5=URL.createObjectURL(X5),DY=$5,_s=nA("debuglicense");let ZQ="basic";_s&&console.log("License Type: "+ZQ);function FQ(){switch(ZQ){case"pro":case"enterprise":return!0}return!1}function fY(){switch(ZQ){case"indie":return!0}return!1}function Bd(){return FQ()||fY()}qt.registerCallback(Ng.ContextRegistered,i=>{e9(i.context),o9()});let wY;async function A9(){if(ZQ==="basic")try{const A=await fetch("https://engine.needle.tools/licensing/check");if(_s){const e=await A.text();console.log('"'+e+`"
3856
+ `,xn&&this.createFallbackCloseARButton(A),this.appendElement(t,A)}onRequestedEndAR(){if(this.currentSession){this.currentSession.end(),this.currentSession=null;for(const A of this.registeredCloseEventElements)A.removeEventListener("click",this.closeARCallback);this.registeredCloseEventElements.length=0}}createFallbackCloseARButton(A){const e=document.createElement("slot");e.setAttribute("name","quit-ar"),this.appendElement(e,A),xn&&e.addEventListener("click",()=>console.log("Clicked fallback close button")),e.addEventListener("click",this.closeARCallback),this._createdAROnlyElements.push(e),e.style.pointerEvents="auto";var t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.classList.add("quit-ar-button"),t.setAttribute("width","38px"),t.setAttribute("height","38px"),e.appendChild(t);var g=document.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("d","M 12,12 L 28,28 M 28,12 12,28"),g.setAttribute("stroke","#ddd"),g.setAttribute("stroke-width","3px"),t.appendChild(g),xn&&console.log("Created fallback close button",t,A)}appendElement(A,e){return e.shadowRoot?e.shadowRoot.appendChild(A):e.appendChild(A)}}class AA extends UA{constructor(){super(...arguments);r(this,"guid")}static isDestroyed(e){return Bm(e)}static setActive(e,t,g=!0){e&&(uh(e,t),zp(e),t&&g&&Tx(qe.Current,e))}static isActiveSelf(e){return yE(e)}static isActiveInHierarchy(e){return Jx(e)}static markAsInstancedRendered(e,t){qx(e,t)}static isUsingInstancing(e){return mw(e)}static foreachComponent(e,t,g=!0){return Or(e,t,g)}static instantiateSynced(e,t){return e?Cm(e,t):null}static instantiate(e,t=null){return ad(e,t)}static destroySynced(e,t,g=!0){if(!e)return;const I=e;t=t??qe.Current,yw(I,t.connection,g)}static destroy(e,t=!0,g=!0){return tn(e,t,g)}static add(e,t,g){if(!(!e||!t)){if(e===t){console.warn("Can not add object to self",e);return}g||(g=qe.Current),t.add(e),uh(e,!0),zp(e),g?AA.foreachComponent(e,I=>{Em(I,g),!I.__internalDidAwakeAndStart&&g.new_script_start.includes(I)===!1&&g.new_script_start.push(I)},!0):console.warn("Missing context")}}static remove(e){var t;e&&((t=e.parent)==null||t.remove(e),uh(e,!1),zp(e),AA.foreachComponent(e,g=>{yz(g)},!0))}static invokeOnChildren(e,t,...g){this.invoke(e,t,!0,g)}static invoke(e,t,g=!1,...I){e&&this.foreachComponent(e,o=>{const C=o[t];C&&typeof C=="function"&&(C==null||C.call(o,...I))},g)}static addNewComponent(e,t,g=!0){const I=new t;return iB(e,I,g),I}static addComponent(e,t){return this.moveComponent(e,t)}static moveComponent(e,t){return nm(e,t)}static removeComponent(e){return sm(e.gameObject,e),e}static getOrAddComponent(e,t){return kw(e,t)}static getComponent(e,t){return e===null?null:wE(e,t)}static getComponents(e,t,g=null){return e===null?g??[]:od(e,t,g)}static findByGuid(e,t){return nd(e,t)}static findObjectOfType(e,t,g=!0){return Sx(e,t??qe.Current,g)}static findObjectsOfType(e,t){const g=[];return kx(e,g,t),g}static getComponentInChildren(e,t){return Cd(e,t)}static getComponentsInChildren(e,t,g=null){return sd(e,t,g??void 0)}static getComponentInParent(e,t){return il(e,t)}static getComponentsInParent(e,t,g=null){return Gw(e,t,g)}static getAllComponents(e){var I;return[...(I=e.userData)==null?void 0:I.components]}static*iterateComponents(e){var g;const t=(g=e==null?void 0:e.userData)==null?void 0:g.components;if(t&&Array.isArray(t))for(let I=0;I<t.length;I++)yield t[I]}}var gi;let Na=(gi=class{constructor(){r(this,"__context");r(this,"__name");r(this,"gameObject");r(this,"guid","invalid");r(this,"sourceId");r(this,"__didAwake",!1);r(this,"__didStart",!1);r(this,"__didEnable",!1);r(this,"__isEnabled");r(this,"__destroyed",!1);r(this,"_worldPosition");r(this,"_worldQuaternion");r(this,"_worldEuler");r(this,"_worldRotation");r(this,"_eventListeners",new Map);this.__internalNewInstanceCreated()}get isComponent(){return!0}get context(){return this.__context??qe.Current}set context(A){this.__context=A}get scene(){return this.context.scene}get layer(){var A,e;return(e=(A=this.gameObject)==null?void 0:A.userData)==null?void 0:e.layer}get name(){var A,e;return(A=this.gameObject)!=null&&A.name?this.gameObject.name:(e=this.gameObject)==null?void 0:e.userData.name}set name(A){this.gameObject?(this.gameObject.userData||(this.gameObject.userData={}),this.gameObject.userData.name=A,this.__name=A):this.__name=A}get tag(){var A;return(A=this.gameObject)==null?void 0:A.userData.tag}set tag(A){this.gameObject&&(this.gameObject.userData||(this.gameObject.userData={}),this.gameObject.userData.tag=A)}get static(){var A;return(A=this.gameObject)==null?void 0:A.userData.static}get hideFlags(){var A;return(A=this.gameObject)==null?void 0:A.userData.hideFlags}get activeAndEnabled(){return!(this.destroyed||this.__isEnabled===!1||!this.__isActiveInHierarchy)}get __isActive(){return this.gameObject.visible}get __isActiveInHierarchy(){if(!this.gameObject)return!1;const A=this.gameObject[Vs];return A===void 0?!0:A}set __isActiveInHierarchy(A){this.gameObject&&(this.gameObject[Vs]=A)}awake(){}onEnable(){}onDisable(){}onDestroy(){this.__destroyed=!0}startCoroutine(A,e=ZI.Update){return this.context.registerCoroutineUpdate(this,A,e)}stopCoroutine(A,e=ZI.Update){this.context.unregisterCoroutineUpdate(A,e)}get destroyed(){return this.__destroyed}destroy(){this.__destroyed||this.__internalDestroy()}get __internalDidAwakeAndStart(){return this.__didAwake&&this.__didStart}__internalNewInstanceCreated(){this.__didAwake=!1,this.__didStart=!1,this.__didEnable=!1,this.__isEnabled=void 0,this.__destroyed=!1}__internalAwake(){this.__didAwake||(this.__didAwake=!0,this.awake())}__internalStart(){this.__didStart||(this.__didStart=!0,this.start&&this.start())}__internalEnable(A){return this.__destroyed?(qg()&&console.warn("[Needle Engine Dev] Trying to enable destroyed component"),!1):this.__didAwake?this.__didEnable?(A!==!0&&(this.__isEnabled=!0),!1):(this.__didEnable=!0,this.__isEnabled=!0,this.onEnable(),!0):!1}__internalDisable(A){if(this.__didAwake){if(!this.__didEnable){A!==!0&&(this.__isEnabled=!1);return}this.__didEnable=!1,this.__isEnabled=!1,this.onDisable()}}__internalDestroy(){var A;this.__destroyed||(this.__destroyed=!0,(A=this.destroy)==null||A.call(this),this.dispatchEvent(new CustomEvent("destroyed",{detail:this})),wx(this))}get enabled(){return typeof this.__isEnabled=="boolean"?this.__isEnabled:!0}set enabled(A){if(this.__destroyed){qg()&&console.warn(`[Needle Engine Dev] Trying to ${A?"enable":"disable"} destroyed component`);return}if(typeof A=="number"&&(A>=.5?A=!0:A=!1),!this.__didAwake){this.__isEnabled=A;return}A?this.__internalEnable():this.__internalDisable()}get worldPosition(){return this._worldPosition||(this._worldPosition=new S),ye(this.gameObject,this._worldPosition),this._worldPosition}set worldPosition(A){di(this.gameObject,A)}setWorldPosition(A,e,t){gi._worldPositionBuffer.set(A,e,t),this.worldPosition=gi._worldPositionBuffer}get worldQuaternion(){return this._worldQuaternion||(this._worldQuaternion=new kA),Pi(this.gameObject,this._worldQuaternion)}set worldQuaternion(A){MI(this.gameObject,A)}setWorldQuaternion(A,e,t,g){gi._worldQuaternionBuffer.set(A,e,t,g),this.worldQuaternion=gi._worldQuaternionBuffer}get worldEuler(){return this._worldEuler||(this._worldEuler=new Fi),this._worldEuler.setFromQuaternion(this.worldQuaternion),this._worldEuler}set worldEuler(A){var e;this._worldQuaternion||(this._worldQuaternion=new kA),(e=this._worldQuaternion)==null||e.setFromEuler(A),this.worldQuaternion=this._worldQuaternion}get worldRotation(){const A=this.worldEuler;this._worldRotation||(this._worldRotation=new S);const e=this._worldRotation;return e.set(A.x,A.y,A.z),e.x=ee.toDegrees(e.x),e.y=ee.toDegrees(e.y),e.z=ee.toDegrees(e.z),e}set worldRotation(A){this.setWorldRotation(A.x,A.y,A.z,!0)}setWorldRotation(A,e,t,g=!0){g&&(A=ee.toRadians(A),e=ee.toRadians(e),t=ee.toRadians(t)),gi._worldEulerBuffer.set(A,e,t),gi._worldQuaternionBuffer.setFromEuler(gi._worldEulerBuffer),this.worldQuaternion=gi._worldQuaternionBuffer}get forward(){return gi._forward.set(0,0,-1).applyQuaternion(this.worldQuaternion)}get right(){return gi._right.set(1,0,0).applyQuaternion(this.worldQuaternion)}get up(){return gi._up.set(0,1,0).applyQuaternion(this.worldQuaternion)}addEventListener(A,e){this._eventListeners[A]=this._eventListeners[A]||[],this._eventListeners[A].push(e)}removeEventListener(A,e){if(!this._eventListeners[A])return;const t=this._eventListeners[A].indexOf(e);t>=0&&this._eventListeners[A].splice(t,1)}dispatchEvent(A){if(!this._eventListeners[A.type])return!1;const e=this._eventListeners[A.type];for(let t=0;t<e.length;t++)e[t](A);return!1}},r(gi,"_worldPositionBuffer",new S),r(gi,"_worldQuaternionBuffer",new kA),r(gi,"_worldEulerBuffer",new Fi),r(gi,"_tempQuaternionBuffer2",new kA),r(gi,"_forward",new S),r(gi,"_right",new S),r(gi,"_up",new S),gi);class MA extends Na{}const z5=Object.freeze(Object.defineProperty({__proto__:null,Behaviour:MA,Component:Na,GameObject:AA},Symbol.toStringTag,{value:"Module"})),Z5='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 187.74"><defs><linearGradient id="a" x1="89.64" y1="184.81" x2="90.48" y2="21.85" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#62d399"/><stop offset=".51" stop-color="#acd842"/><stop offset=".9" stop-color="#d7db0a"/></linearGradient><linearGradient id="b" x1="69.68" y1="178.9" x2="68.08" y2="16.77" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0ba398"/><stop offset=".5" stop-color="#4ca352"/><stop offset="1" stop-color="#76a30a"/></linearGradient><linearGradient id="c" x1="36.6" y1="152.17" x2="34.7" y2="84.19" gradientUnits="userSpaceOnUse"><stop offset=".19" stop-color="#36a382"/><stop offset=".54" stop-color="#49a459"/><stop offset="1" stop-color="#76a30b"/></linearGradient><linearGradient id="d" x1="15.82" y1="153.24" x2="18" y2="90.86" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#267880"/><stop offset=".51" stop-color="#457a5c"/><stop offset="1" stop-color="#717516"/></linearGradient><linearGradient id="e" x1="135.08" y1="135.43" x2="148.93" y2="63.47" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b0d939"/><stop offset="1" stop-color="#eadb04"/></linearGradient><linearGradient id="f" x1="-4163.25" y1="2285.12" x2="-4160.81" y2="2215.34" gradientTransform="rotate(20 4088.49 13316.712)" gradientUnits="userSpaceOnUse"><stop offset=".17" stop-color="#74af52"/><stop offset=".48" stop-color="#99be32"/><stop offset="1" stop-color="#c0c40a"/></linearGradient><symbol id="g" viewBox="0 0 160 187.74"><path style="fill:url(#a)" d="M79.32 36.98v150.76L95 174.54l6.59-156.31-22.27 18.75z"/><path style="fill:url(#b)" d="M79.32 36.98 57.05 18.23l6.59 156.31 15.68 13.2V36.98z"/><path style="fill:url(#c)" d="m25.19 104.83 8.63 49.04 12.5-14.95-2.46-56.42-18.67 22.33z"/><path style="fill:url(#d)" d="M25.19 104.83 0 90.24l16.97 53.86 16.85 9.77-8.63-49.04z"/><path style="fill:#9c3" d="M43.86 82.5 18.69 67.98 0 90.24l25.18 14.59L43.86 82.5z"/><path style="fill:url(#e)" d="m134.82 78.69-9.97 56.5 15.58-9.04L160 64.1l-25.18 14.59z"/><path style="fill:url(#f)" d="m134.82 78.69-18.68-22.33-2.86 65 11.57 13.83 9.97-56.5z"/><path style="fill:#ffe113" d="m160 64.1-18.69-22.26-25.17 14.52 18.67 22.33L160 64.1z"/><path style="fill:#f3e600" d="M101.59 18.23 79.32 0 57.05 18.23l22.27 18.75 22.27-18.75z"/></symbol></defs><use width="160" height="187.74" xlink:href="#g"/></svg>',X5=new Blob([Z5],{type:"image/svg+xml;charset=utf-8"}),$5=URL.createObjectURL(X5),DY=$5,_s=nA("debuglicense");let ZQ="basic";_s&&console.log("License Type: "+ZQ);function FQ(){switch(ZQ){case"pro":case"enterprise":return!0}return!1}function fY(){switch(ZQ){case"indie":return!0}return!1}function Bd(){return FQ()||fY()}qt.registerCallback(Ng.ContextRegistered,i=>{e9(i.context),o9()});let wY;async function A9(){if(ZQ==="basic")try{const A=await fetch("https://engine.needle.tools/licensing/check");if(_s){const e=await A.text();console.log('"'+e+`"
3857
3857
  `,A)}A.status===200&&(ZQ="pro")}catch(i){_s&&console.error("License check failed",i)}}wY=A9();async function e9(i){try{if(Bd()!==!0)return $S(i)}catch(A){return _s&&console.log("License check failed",A),$S(i)}_s&&$S(i)}const yY="needle-license-element",BG=5e3,QG=200;async function $S(i){await wY,!Bd()&&(i9(),i.domElement.addEventListener("ready",()=>{setTimeout(()=>{t9(i)},1e3)}))}function t9(i){const A=g9(),e=I9(),t=setInterval(()=>{if(!A)return;const s=i.domElement.shadowRoot||i.domElement;A.parentNode!==s&&(s.appendChild(A),e&&s.appendChild(e))},100);let g=`<img class="logo" src="${DY}" style="width: 40px; height: 40px; margin-right: 2px; vertical-align: middle; margin-bottom: 2px;"/>`;const I=document.createElement("div");I.innerHTML=g,I.classList.add("logo"),A.appendChild(I);const o=document.createElement("div");o.classList.add("text"),A.appendChild(o),A.title="Needle Engine",Bd()||(A.title+=" No active license found - Non Commercial Use"),A.addEventListener("click",()=>{globalThis.open("https://needle.tools","_blank")});const C=BG+QG;setTimeout(()=>{clearInterval(t),A==null||A.remove(),e==null||e.remove()},C)}let JK=0;async function i9(i){const A=Date.now();if(A-JK<2e3)return;JK=A;const t=`
3858
3858
  position: relative;
3859
3859
  display: block;
@@ -201,6 +201,7 @@ export declare class Context implements IContext {
201
201
  **/
202
202
  restartRenderLoop(): boolean;
203
203
  private render;
204
+ private _lastTimestamp;
204
205
  private internalRender;
205
206
  renderNow(camera?: Camera): boolean;
206
207
  /** returns true if we should return out of the frame loop */
@@ -688,15 +688,19 @@ export class Context {
688
688
  this.internalRender(_, frame);
689
689
  }
690
690
  }
691
- internalRender(_, frame) {
691
+ _lastTimestamp = 0;
692
+ internalRender(timestamp, frame) {
692
693
  this._xrFrame = frame;
693
694
  this._currentFrameEvent = FrameEvent.Undefined;
694
695
  if (this.isInXR === false && this.targetFrameRate !== undefined) {
695
- this._accumulatedTime += this._framerateClock.getDelta();
696
+ if (this._lastTimestamp === 0)
697
+ this._lastTimestamp = timestamp;
698
+ this._accumulatedTime += (timestamp - this._lastTimestamp) / 1000;
699
+ this._lastTimestamp = timestamp;
696
700
  let targetFrameRate = this.targetFrameRate;
697
701
  if (typeof targetFrameRate === "object")
698
702
  targetFrameRate = targetFrameRate.value;
699
- // if(debug) console.log(targetFrameRate)
703
+ // if(debug) console.log(this._accumulatedTime, (1 / (targetFrameRate)))
700
704
  if (this._accumulatedTime < (1 / (targetFrameRate + 1))) {
701
705
  return;
702
706
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine_context.js","sourceRoot":"","sources":["../../src/engine/engine_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_context.js","sourceRoot":"","sources":["../../src/engine/engine_context.ts"],"names":[],"mappings":"AAAA,OAAO,EACyB,KAAK,EAAE,KAAK,EAAE,YAAY,EAC/C,aAAa,EAAE,aAAa,EAAY,gBAAgB,EAC/C,UAAU,EAAE,KAAK,EAAE,YAAY,EAClD,OAAO,EAAE,aAAa,EAA2B,iBAAiB,EAClE,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAkB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGxE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAExD,sEAAsE;AACtE,sFAAsF;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAA4D,EAAE,CAAC;AAYjG,MAAM,OAAO,WAAW;IACvB,IAAI,CAAU;IACd,KAAK,CAAU;IACf,UAAU,CAAqB;IAC/B,QAAQ,GAAmB,SAAS,CAAC;IACrC,IAAI,CAAU;IAEd,YAAY,UAA8B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC;IAC/C,CAAC;CACD;AAED,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACrB,yDAAe,CAAA;IACf,+CAAU,CAAA;IACV,uDAAc,CAAA;IACd,+DAAkB,CAAA;IAClB,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,kEAAoB,CAAA;IACpB,sDAAc,CAAA;AACf,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACxB,6CAA4B,CAAA;IAC5B,6CAA4B,CAAA;AAC7B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAKD,MAAM,UAAU,iBAAiB,CAAC,MAAkB,EAAE,OAAiB;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;IACxE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAClC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzB;AACF,CAAC;AAED,MAAM,OAAO,OAAO;IAEX,MAAM,CAAC,uBAAuB,GAAuB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAC1E,uFAAuF;IACvF,MAAM,KAAK,sBAAsB;QAChC,OAAO,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC;IAC9C,CAAC;IACD,uFAAuF;IACvF,MAAM,KAAK,sBAAsB,CAAC,GAAuB;QACxD,OAAO,CAAC,uBAAuB,CAAC,KAAK,GAAG,GAAG,CAAC;IAC7C,CAAC;IAED,gCAAgC;IAChC,IAAI,OAAO;QACV,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,qEAAqE;IACrE,MAAM,KAAK,OAAO;QACjB,OAAO,eAAe,CAAC,OAAkB,CAAC;IAC3C,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,OAAO,CAAC,OAAgB;QAClC,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,IAAI,CAAS;IACb,KAAK,CAA4B;IACjC,wGAAwG;IAC/F,mBAAmB,GAAY,KAAK,CAAC;IAC9C;iEAC6D;IAC7D,QAAQ,GAAY,KAAK,CAAC;IAC1B,0EAA0E;IAC1E,eAAe,GAAY,KAAK,CAAC;IACjC;;;OAGG;IACH,eAAe,CAA+B;IAE9C,sCAAsC;IACtC,IAAI,CAAU;IAEd,uCAAuC;IACvC,UAAU,CAAc;IAExB,iBAAiB,CAAC,OAAoB;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;;YACnD,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,qBAAqB,KAAK,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACnE,2EAA2E;IAC3E,IAAI,qBAAqB,CAAC,GAAW;QACpC,IAAI,GAAG,KAAK,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAChD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,GAAG,IAAI,CAAC,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO;SACP;QACD,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IACO,sBAAsB,GAAW,CAAC,CAAC;IAE3C,4DAA4D;IACpD,wBAAwB,GAAW,CAAC,CAAC,CAAC;IACtC,mBAAmB,GAAmB,IAAI,CAAC;IAC3C,KAAK,CAAC;IAAS,KAAK,CAAC;IACrB,2BAA2B;QAClC,sCAAsC;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,OAAO;SACP;QACD,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAC9D,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACnE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ;QACX,iBAAiB;QACjB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,UAAU,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IACpC,CAAC;IACD,IAAI,SAAS;QACZ,iBAAiB;QACjB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,WAAW,CAAC;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IACrC,CAAC;IACD,IAAI,IAAI;QACP,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,IAAI,IAAI;QACP,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC;IAChE,aAAa,GAA8B,SAAS,CAAC;IACrD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAC;IAC9B,QAAQ,GAAmB,IAAI,CAAC;IACxC,IAAI,gBAAgB;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAiB,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC,qBAAqB,KAAK,UAAU;YACjD,OAAO,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,wCAAwC;IACxC,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IACO,kBAAkB,GAAe,UAAU,CAAC,SAAS,CAAC;IAE9D,KAAK,CAAQ;IACb,QAAQ,CAAiB;IACzB,QAAQ,GAA0B,IAAI,CAAC;IAEvC,cAAc;IACd,OAAO,GAAiB,EAAE,CAAC;IAC3B,qBAAqB,GAAiB,EAAE,CAAC;IACzC,4BAA4B;IAC5B,mBAAmB,GAAiB,EAAE,CAAC;IACvC,cAAc,GAAiB,EAAE,CAAC;IAClC,kBAAkB,GAAiB,EAAE,CAAC;IACtC,sBAAsB,GAAiB,EAAE,CAAC;IAC1C,qBAAqB,GAAiB,EAAE,CAAC;IACzC,uBAAuB,GAAiB,EAAE,CAAC;IAC3C,UAAU,GAAmD,EAAE,CAAA;IAE/D,IAAI,UAAU;QACb,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAA8B,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,GAAG;gBACX,GAAG,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,GAAG,CAAC;SACf;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,mBAAmB,CAAsB;IAEzC,oBAAoB,GAAe,EAAE,CAAC;IACtC,oBAAoB,GAAe,EAAE,CAAC;IACtC,oBAAoB,GAAe,EAAE,CAAC;IACtC,qBAAqB,GAAe,EAAE,CAAC;IAEvC,WAAW,GAAiB,EAAE,CAAC;IAC/B,gBAAgB,GAAiB,EAAE,CAAC;IACpC,+BAA+B,GAAe,EAAE,CAAC;IACjD,gCAAgC,GAAe,EAAE,CAAC;IAElD,WAAW,CAAc;IACzB,IAAI,CAAO;IACX,KAAK,CAAQ;IACb,OAAO,CAAU;IACjB,UAAU,CAAoB;IAC9B;;OAEG;IACH,MAAM,CAAgB;IACtB,SAAS,GAAkB,IAAI,CAAC;IAChC,oCAAoC;IACpC,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;IAChD,aAAa,CAAgB;IAC7B,YAAY,CAAe;IAC3B,SAAS,CAAqB;IAC9B,OAAO,CAAoB;IAE3B,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnC,YAAY,GAAY,KAAK,CAAC;IAC9B,UAAU,GAAY,KAAK,CAAC;IAC5B,WAAW,GAAY,KAAK,CAAC;IAC7B,UAAU,GAAY,KAAK,CAAC;IAE5B,MAAM,GAAyB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtE,YAAY,IAAkB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACvB,IAAI,IAAI,EAAE,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SAChC;aACI;YACJ,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAEzB,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;QAExF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QACzE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE;YAC/D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,MAAM,GAA4B;YACvC,SAAS,EAAE,IAAI;SACf,CAAC;QAEF,mEAAmE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAEnC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAE1C,8FAA8F;QAC9F,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,+CAA+C;QACtF,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,6DAA6D;QAExG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,aAAa;QACb,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QAC/B,aAAa;QACb,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,YAAY,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAC9C,CAAC;IAGO,qBAAqB,GAAgC,IAAI,CAAC;IAC1D,uBAAuB;QAC9B,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAEO,iBAAiB,GAAe,EAAE,CAAC;IAE3C,gDAAgD;IAEhD,UAAU;QACT,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,KAAK,KAAK,EAAE;YAC1E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,UAA+B,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACrD,wEAAwE;YACxE,wCAAwC;YACxC,kEAAkE;YAClE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC1D,IAAI,eAAe,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,UAAU;oBACxF,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC3E;SACD;IACF,CAAC;IAED,YAAY,CAAC,MAAyB,EAAE,KAAc,EAAE,MAAe;QACtE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,KAAK,KAAK,SAAS;YACtB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YACvB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QAC/B,IAAI,EAAE,KAAK,MAAM,CAAC,MAAM;YACvB,MAAM,CAAC,sBAAsB,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAiF,EAAE,IAAqB;QACtH,IAAI;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC;SACX;gBACO;YACP,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SACzB;IACF,CAAC;IAED;OACG;IACH,KAAK;QACJ,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACrE,+DAA+D;QAC/D,4EAA4E;QAC5E,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC3B;QACD,yJAAyJ;QACzJ,gGAAgG;QAChG,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,gCAAgC;IAChC,SAAS,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACjC,iBAAiB;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACxB;QACD,IAAI,CAAC,KAAK,GAAG,IAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAK,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI;gBACH,EAAE,EAAE,CAAC;aACL;YACD,OAAO,CAAC,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACtD;SACD;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3D;QACD,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACtE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,MAAkB,EAAE,SAAoB,EAAE,GAAe;QAChF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,yBAAyB,CAAC,SAAoB,EAAE,GAAe;QAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACtE,IAAI,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAC,MAAkB;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;YAClC,MAAM,IAAI,GAAoB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;oBACtB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IAEO,YAAY,GAAc,EAAE,CAAC;IAErC,gBAAgB,CAAC,GAAY;QAC5B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG;YAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,oBAAoB;QACrD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;YACvD,OAAO;SACP;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAwB,CAAC;QAC5C,IAAI,MAAM,CAAC,mBAAmB;YAC7B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,mBAA+B,EAAE,+BAA+B,EAAE,CAAC;IAC1E,CAAC;IAED,YAAY,CAAC,GAAoB;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,mBAAmB,KAAK,GAAG,EAAE;YACrC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YAErC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC5B;SACD;IACF,CAAC;IAIO,wBAAwB,GAAG,IAAI,GAAG,EAA8B,CAAC;IACjE,uBAAuB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAExE,wEAAwE;IACxE,uBAAuB,CAAC,MAAgB,EAAE,QAA0B;QACnE,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACjG;QACD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IACD,0BAA0B,CAAC,MAAgB,EAAE,QAA0B;QACtE,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACjC;IACF,CAAC;IAED,uEAAuE;IACvE,sBAAsB,CAAC,MAAgB,EAAE,QAA0B;QAClE,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAC/F;QACD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IACD,yBAAyB,CAAC,MAAgB,EAAE,QAA0B;QACrE,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACjC;IACF,CAAC;IAGO,4BAA4B,CAAC,MAAgB,EAAE,KAAsC;QAC5F,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;aACvD;QACF,CAAC,CAAA;IACF,CAAC;IAIO,oBAAoB,GAAY,KAAK,CAAC;IACtC,oBAAoB,GAAY,KAAK,CAAC;IACtC,aAAa,CAAqB;IAClC,YAAY,GAAY,KAAK,CAAC;IAEtC,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/C,eAAe,CAAC,GAAY;QAC3B,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,GAAY;QAC3B,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;IACjC,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,2DAA2D;IAC3D,IAAI,eAAe;QAClB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC;IAC3F,CAAC;IAGO,KAAK,CAAC,gBAAgB,CAAC,UAAgF,EAAE,IAAqB;QAErI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,yDAAyD;QACzD,kFAAkF;QAClF,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QAEf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,MAAM,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAEhF,wBAAwB;QACxB,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,IAAI,WAAW,GAA8B,SAAS,CAAC;QACvD,IAAI;YACH,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,IAAI,UAAU;gBACb,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC5C;QACD,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,iBAAiB,GAAG,KAAK,CAAC;SAC1B;QACD,IAAI,CAAC,iBAAiB;YAAE,OAAO,KAAK,CAAC;QAErC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAG,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7G,OAAO,KAAK,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC7D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAClD;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAEvB,8CAA8C;QAC9C,2CAA2C;QAE3C,QAAQ;QACR,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE;gBAClE,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS;oBAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;gBAC9E,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;oBAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;gBACpG,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5C;YACD,+EAA+E;YAC/E,gDAAgD;YAChD,IAAI;SACJ;QAED,wDAAwD;QACxD,sDAAsD;QACtD,uCAAuC;QACvC,mDAAmD;QACnD,qDAAqD;QACrD,2BAA2B;QAC3B,uCAAuC;QACvC,4CAA4C;QAC5C,IAAI;QAEJ,qGAAqG;QACrG,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACzC;SACD;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,IAAI,MAAM,GAAmB,IAAI,CAAC;YAClC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBACnC,MAAM,GAAG,GAAG,IAAe,CAAC;gBAC5B,IAAI,GAAG,EAAE,QAAQ,EAAE;oBAClB,SAAS,CAAC,uCAAuC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAClE,IAAI,CAAC,GAAG,CAAC,gBAAgB;wBAAE,OAAO,SAAS,CAAC;oBAC5C,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,EAAE;wBAC7B,MAAM,GAAG,GAAG,CAAC;wBACb,OAAO,IAAI,CAAC;qBACZ;;wBACI,MAAM,GAAG,GAAG,CAAC;iBAClB;gBACD,OAAO,SAAS,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,EAAE;gBACX,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aAC9B;iBACI;gBACJ,MAAM,GAAG,GAAG,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBACxD,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;aACpD;SACD;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAElC,sDAAsD;QACtD,iBAAiB;QACjB,8CAA8C;QAC9C,IAAI;QAEJ,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YAClE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzD;QAED,IAAI,KAAK;YACR,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhC,oDAAoD;QACpD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACvC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAClG,2HAA2H;YAC3H,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;SACvD;aACI,IAAG,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5E,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,OAAO,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACpG,CAAC;IAEO,gBAAgB,GAAG,CAAC,CAAC;IACrB,eAAe,GAAG,IAAI,KAAK,EAAE,CAAC;IAC9B,wBAAwB,GAAG,KAAK,CAAC;IAEzC;;QAEI;IACG,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;SACb;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC;SACb;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,CAAC,EAAE,KAAqB;QACtC,IAAI,gBAAgB,EAAE,IAAI,KAAK,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE;YAC7D,IAAI;gBACH,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,EAAE;gBACX,IAAI,CAAC,gBAAgB,EAAE,IAAI,KAAK,CAAC,IAAI,GAAG,YAAY,KAAK;oBACxD,kBAAkB,CAAC,4DAA4D,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;gBACjD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;aACzE;SACD;aACI;YACJ,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAC9B;IACF,CAAC;IAEO,cAAc,GAAG,CAAC,CAAC;IACnB,cAAc,CAAC,SAA+B,EAAE,KAAqB;QAC5E,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC;QAE/C,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YAChE,IAAG,IAAI,CAAC,cAAc,KAAK,CAAC;gBAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAC9D,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAE,IAAI,CAAC;YACjE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,IAAI,OAAO,eAAe,KAAK,QAAQ;gBAAE,eAAe,GAAG,eAAe,CAAC,KAAM,CAAC;YAClF,wEAAwE;YACxE,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE;gBACxD,OAAO;aACP;YACD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAErB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAElC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,cAAc;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAGxD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;YACzG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC1C,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/B;SACD;QAED,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,WAAW,CAAC;QAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAAE,SAAS;YACvC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;gBACrC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM,CAAC,WAAW,EAAE,CAAC;aACrB;SACD;QACD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAElC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAAE,SAAS;YACvC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;gBAChC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM,CAAC,MAAM,EAAE,CAAC;aAChB;SACD;QACD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAElC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAAE,SAAS;YACvC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;gBACpC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM,CAAC,UAAU,EAAE,CAAC;aACpB;SACD;QAED,yBAAyB;QACzB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACxB,MAAM,YAAY,GAAG,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,cAAc,CAAC;gBACpD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,eAAe,CAAC;gBACrD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;aACnD;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAElC,IAAI,IAAI,CAAC,eAAe,EAAE;YAEzB,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,cAAc,CAAC;YAEpD,6EAA6E;YAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBAAE,SAAS;gBACvC,oDAAoD;gBACpD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;oBACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBACvB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;iBAC7B;aACD;YAED,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAElD,IAAI,IAAI,CAAC,YAAY;gBACpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAEnB,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;oBAC1C,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/B;aACD;YAGD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC9B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC;aACnD;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBAAE,SAAS;gBACvC,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;oBACvC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBACvB,MAAM,CAAC,aAAa,EAAE,CAAC;iBACvB;aACD;YAED,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChC;aACD;SACD;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;SACxD;IACF,CAAC;IAED,SAAS,CAAC,MAAe;QACxB,IAAI,CAAC,MAAM,EAAE;YACZ,MAAM,GAAG,IAAI,CAAC,UAAoB,CAAC;YACnC,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;SAC1B;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,kDAAkD;QAClD,iDAAiD;QAEjD,KAAK;QACL,IAAI;QACJ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1C;aACI,IAAI,MAAM,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACzC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6DAA6D;IACrD,UAAU,GAAY,KAAK,CAAC;IAC5B,cAAc;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC/B,IAAI,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBAAE,SAAS;gBACvC,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE;oBACzC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBACvB,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;iBAChD;aACD;SACD;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,cAAc;QACrB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC/B,gGAAgG;QAChG,IAAI,IAAI,CAAC,eAAe,EAAE;YACzB,OAAO,KAAK,CAAC;SACb;QACD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QACrC,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,sBAAsB;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAA,CAAC;gBAC5D,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,EAAE,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;gBACnD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;aAC/C;SACD;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,IAAI,EAAE,CAAC,OAAO,EAAE;YACf,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;SACnD;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEO,iBAAiB,CAAC,GAAe;QACxC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,8FAA8F;oBAC9F,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;oBAC7F,IAAI,MAAM,EAAE;wBACX,IAAI,cAAc;4BAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;wBACpF,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAClB,EAAE,CAAC,CAAC;wBACJ,SAAS;qBACT;oBACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;oBACzB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,MAAM,IAAI,GAAc,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;wBACxB,IAAI,GAAG,CAAC,IAAI,EAAE;4BACb,IAAI,CAAC,GAAG,EAAE,CAAC;yBACX;wBACD,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;4BACrB,IAAI,CAAC,GAAG,CAAC,OAAO;gCAAE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;4BACnC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;yBAC5B;wBACD,IAAI,CAAC,GAAG,CAAC,IAAI;4BAAE,SAAS;qBACxB;oBAED,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE;wBACtB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAClB,EAAE,CAAC,CAAC;wBACJ,SAAS;qBACT;oBACD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;oBACtB,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;wBACrB,iCAAiC;wBACjC,yDAAyD;wBACzD,2BAA2B;wBAC3B,MAAM,GAAG,GAAG,GAAgB,CAAC;wBAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;wBACvB,IAAI,GAAG,CAAC,IAAI;4BAAE,SAAS;wBACvB,IAAI,CAAC,GAAG,CAAC,OAAO;4BAAE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;wBACnC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAgB,CAAC,CAAC;qBACnC;iBACD;gBACD,OAAO,CAAC,EAAE;oBACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACjB;aACD;SACD;QAED,SAAS,WAAW,CAAC,GAAQ;YAC5B,IAAI,GAAG,EAAE;gBACR,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE;oBAC3B,OAAO,IAAI,CAAC;iBACZ;aACD;YACD,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;;AAKF,6BAA6B;AAC7B,gDAAgD;AAChD,2DAA2D;AAC3D,2EAA2E;AAE3E,oDAAoD;AACpD,6BAA6B;AAC7B,0BAA0B;AAC1B,qCAAqC;AACrC,8CAA8C;AAC9C,2DAA2D;AAC3D,0CAA0C;AAC1C,2CAA2C;AAC3C,kDAAkD;AAElD,sDAAsD;AACtD,qBAAqB;AACrB,qCAAqC;AACrC,QAAQ;AACR,qBAAqB;AACrB,qBAAqB;AACrB,mBAAmB;AACnB,0BAA0B;AAC1B,6BAA6B;AAC7B,sCAAsC;AACtC,KAAK;AAEL,qEAAqE;AACrE,mCAAmC;AAEnC,mCAAmC;AACnC,oCAAoC;AAEpC,0BAA0B;AAC1B,+CAA+C;AAC/C,8CAA8C;AAE9C,WAAW;AACX,iCAAiC;AACjC,mBAAmB;AACnB,yEAAyE;AACzE,iBAAiB;AACjB,4BAA4B;AAC5B,4BAA4B;AAC5B,4BAA4B;AAC5B,IAAI"}
@@ -273,8 +273,11 @@ export class Component {
273
273
  return this.gameObject?.userData.tag;
274
274
  }
275
275
  set tag(str) {
276
- if (this.gameObject)
276
+ if (this.gameObject) {
277
+ if (!this.gameObject.userData)
278
+ this.gameObject.userData = {};
277
279
  this.gameObject.userData.tag = str;
280
+ }
278
281
  }
279
282
  get static() {
280
283
  return this.gameObject?.userData.static;