@volter/cyclotron 0.5.203 → 0.5.205
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUNDLED_NOTICES +14 -14
- package/README.md +1 -1
- package/dist/.vite/manifest.json +1188 -1188
- package/dist/assets/EntityModelDocument-D9aHujmp.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-B6bc_SC6.js +1 -0
- package/dist/assets/InspectorObjectPreview-Cc8RFAYk.js +1 -0
- package/dist/assets/LiveModuleDocument-CaEynRir.js +2 -0
- package/dist/assets/LutAssetDocument-DcBP5wG4.js +1 -0
- package/dist/assets/ModelAssetDocument-Bcu9B61q.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-BEzllIan.js +1 -0
- package/dist/assets/Object3DDocumentToolbar-DTbn07-C.js +1 -0
- package/dist/assets/Object3DPreview-CIxiGvEF.js +2 -0
- package/dist/assets/QuarksAssetDocument-DVgoms_B.js +2 -0
- package/dist/assets/ShaderAssetDocument--YQqYgnY.js +1 -0
- package/dist/assets/StageHost-Ck5UEaim.js +1179 -0
- package/dist/assets/ToolObject3DPreview-uMyvll3J.js +1 -0
- package/dist/assets/ViewportShadingMenu-B9fDRRap.js +1 -0
- package/dist/assets/animation-mixers.service-DaPx1aOg.js +1 -0
- package/dist/assets/animation-timeline.utility-CXr4OHSc.js +1 -0
- package/dist/assets/asset-preview-Cu0rRM9t.js +4 -0
- package/dist/assets/blender-emscripten-engine-CTeOMKcG.js +2 -0
- package/dist/assets/blender-node-editor.document-DDg5BG01.js +1 -0
- package/dist/assets/blender-properties-model-D9_w-26U.js +1 -0
- package/dist/assets/blender-properties-tab-WGsIFrK-.js +3 -0
- package/dist/assets/blender-runtime-host-BIkeIruy.js +7221 -0
- package/dist/assets/blender-runtime.document-C8d8JIMJ.js +13 -0
- package/dist/assets/blender-screenshot.menu-DUCu7wtc.js +1 -0
- package/dist/assets/blender-timeline.document-BGoVj9Vx.js +1 -0
- package/dist/assets/blender-uv-editor.document-SqfkAaBF.js +1 -0
- package/dist/assets/blender-version.status-DlvM0W80.js +1 -0
- package/dist/assets/blender-wali-engine-kfyCxO_U.js +2 -0
- package/dist/assets/blender.command-7YZapRey.js +1 -0
- package/dist/assets/blender.status-BhrZhADg.js +1 -0
- package/dist/assets/model-inspection-2HdlEuHG.js +1 -0
- package/dist/assets/models.finder-CpxcOLo2.js +1 -0
- package/dist/assets/object3d-document-session-registry-DWnnt4zK.js +2 -0
- package/dist/assets/play-live-B3BoNGuF.js +1 -0
- package/dist/assets/product-27nnPGxW.js +14 -0
- package/dist/assets/properties-bone-constraints.inspector-CQLjNvu6.js +1 -0
- package/dist/assets/properties-bone.inspector-D_UwYB2_.js +1 -0
- package/dist/assets/properties-collection.inspector-C5bs7u3u.js +1 -0
- package/dist/assets/properties-constraints.inspector-DVN0WI1l.js +1 -0
- package/dist/assets/properties-data.inspector-DtWPjXMI.js +1 -0
- package/dist/assets/properties-material.inspector-DRdLjbja.js +1 -0
- package/dist/assets/properties-modifiers.inspector-DHDKAIii.js +1 -0
- package/dist/assets/properties-object.inspector-BwS_TG8r.js +1 -0
- package/dist/assets/properties-output.inspector-B7dNI97C.js +1 -0
- package/dist/assets/properties-particles.inspector-CxTu7DbA.js +1 -0
- package/dist/assets/properties-physics.inspector-BBKtG4BC.js +1 -0
- package/dist/assets/properties-render.inspector-Dw91kd5V.js +1 -0
- package/dist/assets/properties-scene.inspector-_10A_oRo.js +1 -0
- package/dist/assets/properties-texture.inspector-BBjhRAyO.js +1 -0
- package/dist/assets/properties-view-layer.inspector-CPEoD7bp.js +1 -0
- package/dist/assets/properties-world.inspector-BwUSqZTC.js +1 -0
- package/dist/assets/react-18-DZmFYCGH.js +1 -0
- package/dist/assets/session-CvHLFvpx.js +6056 -0
- package/dist/assets/stage-keyboard-B12MYziF.js +1 -0
- package/dist/assets/stage-overlay-set-Pp1JSuMt.js +1 -0
- package/dist/assets/stage-presence-markers-DyLFyFtl.js +1 -0
- package/dist/assets/stage-transform-tools-Djt1RiNF.js +1 -0
- package/dist/assets/standard-viewport-dressing-C4bqsdPo.js +24 -0
- package/dist/assets/three-integration.service-CC3bssCn.js +2 -0
- package/dist/assets/volter-sdk-CQ_hQ_Bw.js +2363 -0
- package/dist/assets/volter-sdk-account-C8EGUXTt.js +1 -0
- package/dist/assets/volter-sdk-client-DVHQ3Z6R.js +1 -0
- package/dist/assets/volter-sdk-contributions-CBUGrdBd.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-DTS_ngK4.js +1 -0
- package/dist/assets/volter-sdk-document-probe-DAxCA4Z3.js +1 -0
- package/dist/assets/volter-sdk-editor-view-BvV_o2yo.js +1 -0
- package/dist/assets/volter-sdk-host-C3hWLDLe.js +1 -0
- package/dist/assets/volter-sdk-http-transport.browser-CkNW7_aY.js +1 -0
- package/dist/assets/volter-sdk-index-DX1MwSVk.js +1 -0
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-DJkeOb8b.js +1 -0
- package/dist/assets/volter-sdk-kit-account-client-CPjF0OZD.js +1 -0
- package/dist/assets/volter-sdk-kit-action-registry-CigLfVgP.js +1 -0
- package/dist/assets/volter-sdk-kit-active-product-BjOsOaSs.js +1 -0
- package/dist/assets/volter-sdk-kit-active-project-_plfNpsB.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-editor-config-vKPescqX.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-module-Di-d-2kp.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-observation-CJv5bdSR.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DtXW2JyX.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-stage-transport-3jB8monf.js +1 -0
- package/dist/assets/volter-sdk-kit-api-assets-Kd1hF9bz.js +1 -0
- package/dist/assets/volter-sdk-kit-api-base-CVCY4Z81.js +1 -0
- package/dist/assets/volter-sdk-kit-api-build-ZcDp8T0d.js +1 -0
- package/dist/assets/volter-sdk-kit-api-logs-BERSbDWJ.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-identity-DDgnVoef.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-open-GN9wBCcv.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-source-BN6u7OGB.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-state-CraBuNjW.js +1 -0
- package/dist/assets/volter-sdk-kit-api-relay-CtqaPrPJ.js +1 -0
- package/dist/assets/volter-sdk-kit-api-settings-FJKzGmWm.js +1 -0
- package/dist/assets/volter-sdk-kit-api-themes-CN65kjlh.js +1 -0
- package/dist/assets/volter-sdk-kit-api-worktrees-D_bgLYdo.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-capabilities-DuaiRTbO.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-compare-core-BIgZf23o.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-editor-context-B6IuU5q4.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-events-ChkfMwfC.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-EwYQUjKk.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-DR_-eOZr.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-VNciqolD.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-thumbnails-CPULTzhy.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-viewers-CwbyEgz3.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-DP3z64Qq.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-DO31fjoE.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-BkRVscGy.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-D3YfB2oT.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-BqoBmneY.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-8GgNZivh.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-A71x90lw.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-CrGcrNE8.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-65xuUQqS.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-BHqEF14D.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-CxJdDlLP.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-G-e6vSpH.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-DukZqI0N.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-mPnQEoXx.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DoHeh-64.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-C7IHnWQo.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-DUPD76GX.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-systems-CGMQ7DgC.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-7dV2jBsz.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-DsUvqS53.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state--CqYXSnd.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-T380YuYN.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-CL4mJTaV.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-DwNzPrNM.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-wsIcnNBy.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-OtlLDsNm.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-BcaPe5AT.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-D2FKFCoH.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-BudrdZ9f.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-DMJbPGA2.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-Dt6CAY-E.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-DtbAGgUx.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-LtkXp9HS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-BGr9gxhw.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-UU_CsJVR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-Dna6KQY0.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-provenance-BdiJIB8g.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-DcnUVc3c.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-0jF96MV6.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-ByoUDfW0.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-CnwL2Fkp.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-DxbRD7FK.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-DB35tnLu.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-siYEqopm.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-three-root-yAMD86wP.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-B9rdTqVx.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BQWCR4zF.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-BMKBcT5E.js +1 -0
- package/dist/assets/volter-sdk-kit-availability-tick-D0LK7jBV.js +1 -0
- package/dist/assets/volter-sdk-kit-bitmap-label-BLW5MRQ_.js +1 -0
- package/dist/assets/volter-sdk-kit-boot-routing-CbFGrwVK.js +1 -0
- package/dist/assets/volter-sdk-kit-breakpoint-state-lpt7gI1D.js +1 -0
- package/dist/assets/volter-sdk-kit-build-identity-CtDVibrs.js +1 -0
- package/dist/assets/volter-sdk-kit-bytes-codec-BJBTD3O5.js +1 -0
- package/dist/assets/volter-sdk-kit-cancellation-reason-d7WA1FVO.js +1 -0
- package/dist/assets/volter-sdk-kit-canvas-frames-ChouhyoE.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-camera-pose-DJzlsEfL.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-size-ZfgvKhon.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-registry-eyqwLNBD.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-DuY9iEA-.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-client-etbDrzOa.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-presence-4YSSLDr7.js +1 -0
- package/dist/assets/volter-sdk-kit-command-dispatch-VR5u-eFG.js +1 -0
- package/dist/assets/volter-sdk-kit-command-listener-CHlJpBHJ.js +1 -0
- package/dist/assets/volter-sdk-kit-command-registry-BP34yxq6.js +1 -0
- package/dist/assets/volter-sdk-kit-component-board-registry-CJ-yIv57.js +1 -0
- package/dist/assets/volter-sdk-kit-component-states-registry-Bk4fK5Zo.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-B93-48CG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-C0BIHop-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-Cr3OiMYQ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-BEA9CFnO.js +1 -0
- package/dist/assets/volter-sdk-kit-components-BoardRulers-DooFYToX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-DNSvGWzn.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-QaRZQnwt.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-mop09kfX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CodeView-BpjDYI-u.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DCs1w34B.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-CumxppRI.js +1 -0
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-Cd4YFpVC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-BrViNJXJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Inspector-BzQzflQv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-Dr3JuqYC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-DG-mVhA8.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-Cnkcd7Hx.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-DpymMSdg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-5iIAgYwg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-B29hENvY.js +1 -0
- package/dist/assets/volter-sdk-kit-components-MediaProperties-kN3_KVBz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CNpJaoHS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-3Pd0OdKT.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-BVvJIgZ6.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-p2cApxPC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SaveStatus-fneTCycz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-C62h4Eyi.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-8oI3Uafw.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-C-jW5ebb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolHost-BUULWQeR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Toolbar-DfQ3W8vH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-TransientHint-Cy3SaluG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-DibOwuzX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-ClNG-cNW.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VolterLogo-0ijnRyEJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-BpuLUFgP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-account-documents-8P0HEjcB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-documents-D4b-hwOG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-e9x1WGyM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-Bk5k7UqD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-DXeAWlMw.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-B5LBvEZm.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-7JA73LaR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-BZoBmtII.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-BFvgM3I_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-DX_wF4E7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-8pCs930G.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-D_f8wd9V.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-DBOQn4FL.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-yYVfk_L5.js +1 -0
- package/dist/assets/volter-sdk-kit-components-board-guides-VrpXFinU.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-D0t7ywfb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BgNHS64v.js +1 -0
- package/dist/assets/volter-sdk-kit-components-core-utilities-CnoSxkm4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-BKFvfU9_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-DtWnyoPb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-selection-BpRIu05A.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-CnBJ_Jzd.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-Cxf096bE.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-jDYiS_Tr.js +1 -0
- package/dist/assets/volter-sdk-kit-components-kind-documents-CA9ZwQYm.js +1 -0
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-sMuhcJ-u.js +1 -0
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-BrAdYd9j.js +1 -0
- package/dist/assets/volter-sdk-kit-components-scene-documents-BCx5FK_F.js +1 -0
- package/dist/assets/volter-sdk-kit-components-status-contributions-D4AlryJ7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-documents-B2Mg51Ki.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-DuywtsWj.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-after-paint-A1uaR4w2.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-K4x_R729.js +1 -0
- package/dist/assets/volter-sdk-kit-components-workspace-history-m_D_ri3M.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-documents-CX_7rVwP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-jN-Asc5B.js +1 -0
- package/dist/assets/volter-sdk-kit-composite-screenshot-D0q45_D-.js +1 -0
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-D-mgeLo-.js +1 -0
- package/dist/assets/volter-sdk-kit-contribution-surfaces-DTDWZiNa.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-Dul4cw4U.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-Dtj1KNWW.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-BAW0NPNo.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-Cb7amVmE.js +1 -0
- package/dist/assets/volter-sdk-kit-creation-site-registry-CCpvR4_u.js +1 -0
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-BX4YVund.js +1 -0
- package/dist/assets/volter-sdk-kit-document-areas-1z5EFlyO.js +1 -0
- package/dist/assets/volter-sdk-kit-document-context-registry-BSrSTGqR.js +1 -0
- package/dist/assets/volter-sdk-kit-document-open-registry-CF7E15H6.js +1 -0
- package/dist/assets/volter-sdk-kit-document-play-extension-Bx5KC1L3.js +1 -0
- package/dist/assets/volter-sdk-kit-document-preview-source-BiQMSyVw.js +1 -0
- package/dist/assets/volter-sdk-kit-document-renderer-session-B2S8eoyi.js +1 -0
- package/dist/assets/volter-sdk-kit-document-stage-sessions-CVx02QYd.js +1 -0
- package/dist/assets/volter-sdk-kit-document-viewports-Ha268zZ8.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-api-Bl7Srpjd.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-D9aqMK5W.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-commands-C1OsXojL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-console-eq14g8jT.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-current-view-ZKhlBhRr.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-document-probe-BBX4QbqP.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-git-client-DYE0uC11.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-hotkeys-D_y-i6f1.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-S17d34mY.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-view-BosaVzAk.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-mode-C--As49l.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-notifications-lH6m2Hmt.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presence-RBVwzJqz.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-Dj7rrijL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-OyIilK5x.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-runtime-DjewImZy.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-server-response-D30A62n1.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-attribution-BjTEc0nE.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-mode-S8yO-0vw.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-state-facets-Dfi7UyE7.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-view-presentation-CYSYEJad.js +1 -0
- package/dist/assets/volter-sdk-kit-environment-images-DxjIYuvo.js +1 -0
- package/dist/assets/volter-sdk-kit-eyedropper-session-lcVUaAqq.js +1 -0
- package/dist/assets/volter-sdk-kit-files-file-provider-pNCskdiT.js +1 -0
- package/dist/assets/volter-sdk-kit-files-project-files-CFrcIf8C.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-index-ByaU5txS.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-wq-97jiH.js +1 -0
- package/dist/assets/volter-sdk-kit-frame-frame-parts-CrKFSrUs.js +1 -0
- package/dist/assets/volter-sdk-kit-framed-document-capture-CWIWyc9n.js +1 -0
- package/dist/assets/volter-sdk-kit-game-surface-defaults-CkJ6cAvE.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-export-state-B2DshvlA.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-replay-BVxdcLAg.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-session-time-FnVcSXbN.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-sessions-DEk1PA46.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-pZYWBw9o.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-internals-jzYS-N3e.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-DtAvkoqV.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-NNL0pnAI.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-DTLPASNb.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-B7Usp6ta.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-projection-DP4BZ82s.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-HccGYE6b.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-DhqpO9_D.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-rows-BD_XSoKi.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-walk-t3aBYJkL.js +1 -0
- package/dist/assets/volter-sdk-kit-history-editor-session-CL_nUg2E.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-commands-CXmLIbqs.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-delegate-BPhsh_Nx.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-Cv5i6ig5.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-service-Czu3JbdR.js +1 -0
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-Cy29xQa0.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-file-history-DFdtbUgw.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-5IlXrPLj.js +1 -0
- package/dist/assets/volter-sdk-kit-history-resource-registry-CumTp8UW.js +1 -0
- package/dist/assets/volter-sdk-kit-history-snapshot-store-BI97MUJM.js +1 -0
- package/dist/assets/volter-sdk-kit-history-source-history-backend-D6qOhtdS.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DUEXTV04.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-OdbEzB8u.js +1 -0
- package/dist/assets/volter-sdk-kit-hotkeys-S6ciFSFh.js +1 -0
- package/dist/assets/volter-sdk-kit-inference-diagnostics-DBo5Neqc.js +1 -0
- package/dist/assets/volter-sdk-kit-initial-project-C5L3A-Xw.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-subject-mD_YskGO.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-surface-DzK7OOsv.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-rSVjbNhz.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-display-SzYApW3y.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-document-subject-D7zbGofo.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-game-subject-CbVhZl2j.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-model-zxOxpMQl.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-node-media-cTqEnA46.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-null-subject-MTOTNc8O.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-serialize-ByhBn2ik.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-CZfCbDeR.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-presentation-B4O2_Ya9.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-me5Cx3r1.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-section-registry-DrwCb_cW.js +1 -0
- package/dist/assets/volter-sdk-kit-instance-source-actions-JuiPuvXK.js +1 -0
- package/dist/assets/volter-sdk-kit-js-heap-g3vAb6U_.js +1 -0
- package/dist/assets/volter-sdk-kit-key-actions-DxJ8LvFK.js +1 -0
- package/dist/assets/volter-sdk-kit-keymap-presets-9MnKFJFU.js +1 -0
- package/dist/assets/volter-sdk-kit-layout-policy-CvdxK7a7.js +1 -0
- package/dist/assets/volter-sdk-kit-light-explorer-model-nBeOKVW6.js +1 -0
- package/dist/assets/volter-sdk-kit-live-canvas-frame-9rjaqbBi.js +1 -0
- package/dist/assets/volter-sdk-kit-live-document-DlU8C_rb.js +1 -0
- package/dist/assets/volter-sdk-kit-live-gesture-lock-BeXX9L67.js +1 -0
- package/dist/assets/volter-sdk-kit-live-seam-evidence-CXvb4j3K.js +1 -0
- package/dist/assets/volter-sdk-kit-live-session-registry-AQmKjBwM.js +1 -0
- package/dist/assets/volter-sdk-kit-live-transition-BoSOR_7X.js +1 -0
- package/dist/assets/volter-sdk-kit-manifest-project-XFNRjdeJ.js +1 -0
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-C9kb9LLB.js +1 -0
- package/dist/assets/volter-sdk-kit-mount-failure-report-BXj55Y39.js +1 -0
- package/dist/assets/volter-sdk-kit-native-selection-style-CwCFzYqP.js +1 -0
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-4Pghgl0N.js +1 -0
- package/dist/assets/volter-sdk-kit-packaged-runtime-DZHfHcCa.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-profiler-BiPpwUne.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-sources-55CwD9lp.js +1 -0
- package/dist/assets/volter-sdk-kit-photograph-notice-DZa2cJxy.js +1 -0
- package/dist/assets/volter-sdk-kit-play-boot-phase-DVJxSqwK.js +1 -0
- package/dist/assets/volter-sdk-kit-play-camera-flight-CLuGQwon.js +1 -0
- package/dist/assets/volter-sdk-kit-presentation-surface-DWJgsRME.js +1 -0
- package/dist/assets/volter-sdk-kit-product-command-6UP1zWwa.js +1 -0
- package/dist/assets/volter-sdk-kit-project-adapter-BavL9xIM.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-refresh-CVPgtGWZ.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-roots-C1uTLFRk.js +1 -0
- package/dist/assets/volter-sdk-kit-project-local-state-DtOsDJrW.js +1 -0
- package/dist/assets/volter-sdk-kit-project-manager-DUnPd0nf.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-changes-BZT5HW8y.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-split-yCqqJ5rh.js +1 -0
- package/dist/assets/volter-sdk-kit-project-provenance-B1pNkLFV.js +1 -0
- package/dist/assets/volter-sdk-kit-project-ready-Bnrr4ZY9.js +1 -0
- package/dist/assets/volter-sdk-kit-project-shape-DBkzD5Ec.js +1 -0
- package/dist/assets/volter-sdk-kit-project-tools-DKGsk9hL.js +1 -0
- package/dist/assets/volter-sdk-kit-readiness-hMTvovv0.js +1 -0
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-Cx_PNUoK.js +1 -0
- package/dist/assets/volter-sdk-kit-reported-play-state-iWSJMHEI.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-CcnY8oYB.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BI8U-QW1.js +1 -0
- package/dist/assets/volter-sdk-kit-retained-document-states-DPOakAa_.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-document-plan-Bxz59B_h.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-live-open-BKW1E2nA.js +1 -0
- package/dist/assets/volter-sdk-kit-scoped-game-css-DT2PSvN6.js +1 -0
- package/dist/assets/volter-sdk-kit-served-url-6l78KNHb.js +1 -0
- package/dist/assets/volter-sdk-kit-session-close-vWwOHYbJ.js +1 -0
- package/dist/assets/volter-sdk-kit-session-tombstone-fXB9Q_yg.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-settings-provider-Bw4T6q6i.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-store-Dbt3hvWo.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-DxmRlnWF.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-door-OglmWQzy.js +1 -0
- package/dist/assets/volter-sdk-kit-source-conflict-fgSR0zbn.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-context-BE0wAYsV.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-invalidation-DWS3DipZ.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-store-registry-CE4DIY7Z.js +1 -0
- package/dist/assets/volter-sdk-kit-startup-failure-DzoYfugP.js +1 -0
- package/dist/assets/volter-sdk-kit-state-report-deferral-D1k91Q1v.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-Cm8u_GQf.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-http-storage-DT81P1Xs.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-index-UeKOmBQs.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-mem-storage-BtTJIJxx.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-path-lock-BathwIYz.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-paths-Bko9UDfO.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-D4KtKhLj.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dq1nB8EP.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-BdXHTGK_.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-CrBEfJDC.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-DWNlP9kt.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-scope-BVF5pt-j.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-capture-MFgaGKJ4.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium--pj6L8Vr.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-discovery-BIfDAvsX.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-CW7jRq-5.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-grouping-Bav0tHMH.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-presentation-Bd9AScYj.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-registry-DtsH1uq7.js +1 -0
- package/dist/assets/volter-sdk-kit-story-document-openers-BQpRfuaa.js +1 -0
- package/dist/assets/volter-sdk-kit-story-thumbnails-AbrsBBdS.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-keyboard-CrMEFsL8.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-state-Dq5ub5Hc.js +1 -0
- package/dist/assets/volter-sdk-kit-system-seam-evidence-BUjKsE7k.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-census-C36wLlSU.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-xkVECT-8.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-library-Dxgbok_U.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-preference-C8CiQDgP.js +1 -0
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-DN0AoArt.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-contribution-play-BLU2vDQy.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-loader-4joZXRls.js +1 -0
- package/dist/assets/volter-sdk-kit-transform-mode-request-DJ2ygYyu.js +1 -0
- package/dist/assets/volter-sdk-kit-transient-hint-F2AAlOgw.js +1 -0
- package/dist/assets/volter-sdk-kit-transport-strip-CXvXgh3v.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-BEfwC2xC.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-inspect-D07gZ4ri.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-B4IvQaAw.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-BEqBpMxQ.js +1 -0
- package/dist/assets/volter-sdk-kit-user-local-state-DgJmVbLW.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-activation-timings--HKXOXNW.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-B8yn1SP0.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-presentation-B698fL8r.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-surface-status-DoEN5Sio.js +1 -0
- package/dist/assets/volter-sdk-kit-wait-until-2LWMP_uP.js +1 -0
- package/dist/assets/volter-sdk-kit-worker-call-metrics-DI-At_Mp.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-areas-DSO22vOa.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-BctG0TZG.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-available-documents-CpjwAHsm.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-DnWAMG9j.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CIN7_AXP.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-registry-DczAFfsi.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-restore-C4nbPktb.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-host-commands-L38Zhbqv.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-BmQJ30oR.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-e95WWf1D.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-presets-Cx6bIALC.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-regions-kCv9-b1p.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-static-panels-l1pOQpjz.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-status-registry-bQJRjzx5.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-storage-85aqPMbn.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-style-DMM9UWdH.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-2PKNxbly.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-DB5oOPJy.js +1 -0
- package/dist/assets/volter-sdk-kit-world-adoption-CxwTYRh-.js +1 -0
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-QDBbZeTR.js +1 -0
- package/dist/assets/volter-sdk-kit-world-document-routing-DB7QhASz.js +1 -0
- package/dist/assets/volter-sdk-kit-world-pan-state-BPS-OzaI.js +1 -0
- package/dist/assets/volter-sdk-kit-write-pipe-DufbkWzZ.js +1 -0
- package/dist/assets/volter-sdk-layout-arrangements-D9ris2cY.js +1 -0
- package/dist/assets/volter-sdk-layouts-4IfPH4dG.js +1 -0
- package/dist/assets/volter-sdk-selection-BVjBFSL-.js +1 -0
- package/dist/assets/volter-sdk-session-command-table-Cq7MkRn3.js +1 -0
- package/dist/assets/volter-sdk-session-editor-brand-4IXX9MlG.js +1 -0
- package/dist/assets/volter-sdk-session-editor-compatibility-haPOFpnc.js +1 -0
- package/dist/assets/volter-sdk-session-editor-control-protocol-g6kD2o_d.js +1 -0
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-C_zWjJFx.js +1 -0
- package/dist/assets/volter-sdk-session-game-css-scope-SCk6cC-b.js +1 -0
- package/dist/assets/volter-sdk-session-project-module-url-su5ZQDPz.js +1 -0
- package/dist/assets/volter-sdk-session-relative-path-guard-CQw_siO6.js +1 -0
- package/dist/assets/volter-sdk-session-tool-contribution-convention-B55YBYvG.js +1 -0
- package/dist/assets/volter-sdk-types-g096WMyG.js +1 -0
- package/dist/assets/volter-sdk-views-Dp18WV7d.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-p8C8p5Qz.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-D6v4x3Ex.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-DTP4TTEm.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BI32z-yb.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-DH1n9ERv.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DGoGeWgX.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-UPleQnax.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-DISSKfe-.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-X7rglfR-.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-DGFGaTXL.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-DjTYXw9I.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-D0kCYaZ8.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-A5mofx1Y.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-ClDWT5wR.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-DhvtoDGg.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-Bnzi6FQe.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-D6RY-8hx.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-DUxjhMIw.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CqdZ2gPa.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-B6rfDOn8.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CrmzdvWH.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-DRLskKy0.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List-DbWBDvTr.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-B-FtnyrV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-DLlTlsXh.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-Da9iZZM4.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CzjhciNz.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-akgXaxnW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-WrgHvBqt.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-JRmeL9rz.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-kv5QCfK9.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-DZI2Ppf4.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-BW_UXZUk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-IUPpVKhS.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Bjh9ZFpF.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DYkVzZTB.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DokZxw4v.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-CCo8sXpC.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-DgbU4c8z.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-C1pmlMc1.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CqNbFgvm.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-5-XthHps.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DyLIkMRz.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D3p_nK4m.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-BklKCMSo.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-DW-3W8UF.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-CrTcmF2_.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Dq439uha.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVc6D81c.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-Oeu5MGfu.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-CccyHUHT.js +1 -0
- package/dist/assets/volter-shared-fontawesome-BoGOOhUZ.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-CCGek-Va.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-D6gGEaXb.js +1 -0
- package/dist/assets/volter-shared-react-DMi8Kkjq.js +1 -0
- package/dist/assets/volter-shared-react-dom-Ddp2cb0L.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-B78jeL8s.js +1 -0
- package/dist/assets/worker-DvJ796ja.js +8 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-sdk.json +462 -462
- package/dist-node/cli.js +559 -239
- package/dist-node/create.js +31 -14
- package/package.json +14 -14
- package/starter/AGENTS.md +6 -0
- package/dist/assets/EntityModelDocument-CTq_jwpe.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-CaSQc1HY.js +0 -1
- package/dist/assets/InspectorObjectPreview-P6pJxnGB.js +0 -1
- package/dist/assets/LiveModuleDocument-B6Iw2YIE.js +0 -2
- package/dist/assets/LutAssetDocument-C7Tc5hRu.js +0 -1
- package/dist/assets/ModelAssetDocument-BUOK0YzX.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-Bbtz8I0R.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-GjvQOSkS.js +0 -1
- package/dist/assets/Object3DPreview-BUogCxPt.js +0 -2
- package/dist/assets/QuarksAssetDocument-Cxg3fT6D.js +0 -2
- package/dist/assets/ShaderAssetDocument-BbXBHSY3.js +0 -1
- package/dist/assets/StageHost-BtQd8CQk.js +0 -1179
- package/dist/assets/ToolObject3DPreview-imwBjs0O.js +0 -1
- package/dist/assets/ViewportShadingMenu-Dx1gY8Op.js +0 -1
- package/dist/assets/animation-mixers.service-fNXcr-Vc.js +0 -1
- package/dist/assets/animation-timeline.utility-Dzab5JgT.js +0 -1
- package/dist/assets/asset-preview-BEzZu4j-.js +0 -4
- package/dist/assets/blender-emscripten-engine-BFUuajuh.js +0 -2
- package/dist/assets/blender-node-editor.document-Cu3LXipe.js +0 -1
- package/dist/assets/blender-properties-model-BrD2rboW.js +0 -1
- package/dist/assets/blender-properties-tab-CkbWamuD.js +0 -3
- package/dist/assets/blender-runtime-host-7Wv16WQe.js +0 -7221
- package/dist/assets/blender-runtime.document-CSHvDIaD.js +0 -13
- package/dist/assets/blender-screenshot.menu-CELFKP08.js +0 -1
- package/dist/assets/blender-timeline.document-BvHkPBTZ.js +0 -1
- package/dist/assets/blender-uv-editor.document-DVsbsG0P.js +0 -1
- package/dist/assets/blender-version.status-D_YQqOVz.js +0 -1
- package/dist/assets/blender-wali-engine-C6WYYJ9a.js +0 -2
- package/dist/assets/blender.command-M9NTZ04b.js +0 -1
- package/dist/assets/blender.status-H7PL8qIV.js +0 -1
- package/dist/assets/model-inspection-DAugZuDb.js +0 -1
- package/dist/assets/models.finder-C37d1CqG.js +0 -1
- package/dist/assets/object3d-document-session-registry-Nly7qqyW.js +0 -2
- package/dist/assets/play-live-nju-LbTd.js +0 -1
- package/dist/assets/product-B76VmSfR.js +0 -14
- package/dist/assets/properties-bone-constraints.inspector-CICws11L.js +0 -1
- package/dist/assets/properties-bone.inspector-BTh8HMja.js +0 -1
- package/dist/assets/properties-collection.inspector-CdxnUdEY.js +0 -1
- package/dist/assets/properties-constraints.inspector-CgLm__aq.js +0 -1
- package/dist/assets/properties-data.inspector-CPGohY4g.js +0 -1
- package/dist/assets/properties-material.inspector-BBmS0pWg.js +0 -1
- package/dist/assets/properties-modifiers.inspector-DmwrZuck.js +0 -1
- package/dist/assets/properties-object.inspector-CcLxRnp2.js +0 -1
- package/dist/assets/properties-output.inspector-B21rsdeE.js +0 -1
- package/dist/assets/properties-particles.inspector-3oYMCgFh.js +0 -1
- package/dist/assets/properties-physics.inspector-CXHZdBQv.js +0 -1
- package/dist/assets/properties-render.inspector-BgQVOySW.js +0 -1
- package/dist/assets/properties-scene.inspector-BvJsraNi.js +0 -1
- package/dist/assets/properties-texture.inspector-DPHw4ryw.js +0 -1
- package/dist/assets/properties-view-layer.inspector-MBifnnqO.js +0 -1
- package/dist/assets/properties-world.inspector-DOOIqcDX.js +0 -1
- package/dist/assets/react-18-Ceee8kSy.js +0 -1
- package/dist/assets/session-B_EkWp0b.js +0 -6047
- package/dist/assets/stage-keyboard-CfcRPwij.js +0 -1
- package/dist/assets/stage-overlay-set-B8PO_8GO.js +0 -1
- package/dist/assets/stage-presence-markers-CheQj0g2.js +0 -1
- package/dist/assets/stage-transform-tools-B3kiH81y.js +0 -1
- package/dist/assets/standard-viewport-dressing-4szt4iVE.js +0 -24
- package/dist/assets/three-integration.service-BRF8px1l.js +0 -2
- package/dist/assets/volter-sdk-BKodmrby.js +0 -2363
- package/dist/assets/volter-sdk-account-LQPzi3UZ.js +0 -1
- package/dist/assets/volter-sdk-client-DgRgxfuo.js +0 -1
- package/dist/assets/volter-sdk-contributions-Di1uSPw_.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-Gy-GyM9Y.js +0 -1
- package/dist/assets/volter-sdk-document-probe-kPNnaNGr.js +0 -1
- package/dist/assets/volter-sdk-editor-view-g0uNyGJC.js +0 -1
- package/dist/assets/volter-sdk-host-CXSewq8M.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-B3TdfhI7.js +0 -1
- package/dist/assets/volter-sdk-index-4Kp3lnTd.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-CjXSPJIo.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-ByTVy6-o.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-D1kqJ80f.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-CEEc_Nk5.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-BrcrV5ab.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-DqJAYMZM.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-module-Cm1FKR3D.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-DNCkd2d_.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-0FXkaCv-.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-C7MuqkhX.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-DC5mYDg9.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-Jd4izSaw.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-CXv7iVa0.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-BJS5qQS0.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-BTbrDP21.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-B2xmn-LQ.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-B8I05SPp.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-b7drJlZm.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-CXoYAGag.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-Ooohukfm.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-DWL43Vk4.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees-36I3L3ep.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-B_JHyPEo.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-k1g4sfK4.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-BtXkPrch.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-DNL9sOD1.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-CIyFU73p.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-YBxUZh2F.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-BP6LhiLy.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-cVPLoYS6.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-D4Nn4_BR.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-BSMDOcaj.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-Ce2VXJ2Z.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-BUyAOAr6.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-BItOpEbd.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-BBeCjirT.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-UfPQty9g.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DDRruLeu.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-T_DLL58P.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BjuMcGvJ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-Ciewiory.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-DNMc3Uhr.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-BTZveIZ2.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-CGdTixEp.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-0cIEsyFV.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-B883NWEX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-udhK_bK8.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-CaV79Zym.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-D-sRD1JD.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-4m95v2b2.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-CHBNmukT.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-Dz5hKatn.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-BHValVeR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-RexSF-J2.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-CbcNeoQ9.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-CnMS-_cD.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-Zg9zdDef.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-DKLgadwc.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-M81xEMIH.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-DIwvGeWZ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-EmOGzQA_.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-DmtPQOEU.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-CEz93V3J.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-mfK9FD-y.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-R2pfEtvy.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-VEFAXYyu.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-B2qmlVET.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-CWNbjFfV.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BkL1OUf3.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-DSJif289.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-DEtWuCdl.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-yrcHmQZ9.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-DVHy1MNQ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-CrTR4pdw.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-CzDJyhVH.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-DGX0pTp1.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-c-RZK1GX.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-Cea2wigf.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-N1az4tj8.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-B-AloCSv.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-D5-Z31T5.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-XVOVyUc_.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-D-KEzzvG.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-D-zdIjo6.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-DVfFaFPs.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-DnCUNdRD.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-BGh2p4Ce.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-WspKGBnF.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-DSdRe3ay.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-D4L_4xEJ.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-Ce1SavKJ.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-BklHxwDT.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-Cbx-Ojaw.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-Dyhs6OSN.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-CHEIOy3c.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-CUKeDb9O.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-BF8BzQDh.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-RkljZ-Lm.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-L-1f9zZf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-BKxEMCFq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-ByYpeg3g.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-AzQ_b4hk.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-Cjeqdfie.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-BOfMdh1M.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-rZGGuOwh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-CYRqS-XZ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-CZ4K-R4r.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-C0Jzb6sx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-vTD-MnSe.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-fQY5p6rX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-Dn7ly9U9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-DlXSsDRU.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-D2fHAo8Q.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-BACKigHR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-C2tFcY5Z.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-CKxWWFgq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-BscOuHaz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-Czgrsno8.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-4JJy007U.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CHXnXf4V.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-CjQh_ckk.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CIhN8hQt.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-Bh2YKApp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-BD-zOD-c.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-BH1PNp8a.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-C4IvdpGQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CtiZX-C_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-DLj25ucp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-DOHf2NES.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-zFA_MLx1.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-C9By_77E.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-vr4do7lA.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-DS8HqAPp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-DIEnM6m4.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-C-kuLuRW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-wvxuPzJN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DRbF9-yC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-D-iE-RCy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-D3TyvHrp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-Dk2jKOhT.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-_nthvrZy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-i-UhuMgF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-CzBAEr0C.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-CyV7UI3C.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-Bd3a2_oA.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-B0oBgcRW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-Ad0PtQNX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-BcRGAaa4.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-DlFbMQZl.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-C-WHgNDO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-CqErnLHB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-B339nXVW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-fv1kHl0P.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-CGouljBF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-svwL5thP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-CXI8Z8PL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-B6n6Cdof.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-C3qg6v_f.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-W8USaiPh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-Dd4u-Wtm.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-DFq82d8o.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-B73lYyVv.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-FTso27Xh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-BbGwfFpc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-BIF8LmJV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-CtKNo2UU.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-G7f6izdS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-B2vo6Xx_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-B5tULKmS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-DDEiWrz7.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-BMOK3iYM.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-B9eUIMgv.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-DC-uHDQg.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-DiRNBVRN.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-Csc86Z_f.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Brd3w7kt.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-BoNy6hEZ.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-CdhSUaPD.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-CHNkXHhB.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-7iD_pTF6.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-6DcBS8uQ.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-CS2V2rTe.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-DyULINB5.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-YxLsIauQ.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-IoKOp6Se.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-DSmPpree.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-CvdifVJF.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-CB1FgcVg.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-B-e-WKT4.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-BYWHMTwS.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-jCw-ErXD.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-CbBqd-eR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-BC-zqNPD.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-BQQFtPz9.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-BzoxjaxK.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-B_3921d6.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-Dwm149iL.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-DOBZoYnf.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-BfExd624.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-DNnOAqPS.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-CFp63FEl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-Df1-39oQ.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-CCziNuJh.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-DJiPWdEl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-qdIqiRBe.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-r0EdgfW4.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-ChaCu38O.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-Dp6RpQY2.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-BUDsa8Yi.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-CuB0NOuY.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-DIDQ2_uI.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-CQvJk0Gq.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-DKfmE3QQ.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-CmiBcR6h.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-Dva44YHz.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-DB3Ncfrz.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-Cj-0v8BH.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-Xf39gCAN.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-F8jJrsPf.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-DTTj1olA.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-CxKyk9Md.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-BabNBUji.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-CoK3Z_Xh.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-Cm6Wsuhy.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DaGff9wa.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BcRUZUvZ.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-BZoc7eJQ.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-CHs2jgL8.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-PFIeRJqY.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-Cw1It5is.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-Dssu1BMj.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-B1L9eTXm.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-BtVV5q7v.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-TABAJNSR.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-DeK2Tm-B.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-BVoYaGBF.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-BHBRoss1.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-n84--IYf.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-CcXjOv2P.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-DTX8q5fG.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-CLkqOjdr.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-DycW6GLB.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-9xMoYlbd.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DmMHpNnB.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-D-TLq4Hc.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-XirVHMg5.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-CXk1gv7L.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-Cbnj6h8K.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-CZRJ1Iol.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-gAahXjP2.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-BBlLRs6P.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-D546j-bp.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-DDqyp_xw.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-sQwCYXs1.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-DC9Hl3cj.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-DjPyEqvx.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-Ct7EGK3P.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-Bq6tap3p.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-C_yp3gfW.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-Di1bDrzW.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-Hrg_OJm5.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-CvrpGvES.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-BCuKBxGf.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-KxSszS6k.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-Wz9BljgB.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-GXj7fO30.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-cFlperJi.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-CkrLkUUZ.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-CIEkO3Ed.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-DhUo-Edg.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-CMfHfSyJ.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-BwAIj8fP.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-DLpuZ5fm.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-CzY_KNsh.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-D966gGPJ.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-BhBAOyzv.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-uZuQLIak.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-DWR8dlSz.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-Bj_jp-7_.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-iG7YMb12.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-CNmFMe3k.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-Dn00aXW5.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-Dfg0UxVZ.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-CXNgzv-J.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-DLwGfpJp.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-cMmRpkGJ.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-Bu6DLKpE.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-BuzQScGI.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-Bap7mqgb.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-By8xlXHl.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-ChdRwLow.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-CLiEnNgu.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-BDpD6OsB.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-CVNdzh8m.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-cp2gtKVj.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-D8V6Kzge.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-CClCrXxY.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-CtP3bOpD.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-D0ouQROM.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-aXKN0rxR.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-C-Mib-ba.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-BM8YcJz7.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-CSTX2j7-.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-QrHnyn4V.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-C9wHG6B7.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-CXb4AskH.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-FdsRmDqV.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-DIf-qLum.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-COfy5ras.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-BitY9Sdx.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-BPuTDIxn.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-BPOsFHZe.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-DwHeZ5nQ.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-BWHcu98B.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-CkxYCMk1.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-CP-upNgr.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-CeDdEl0b.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-B2jyIREA.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-DWjZgwSJ.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-Dzam5Bu-.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-BxTEyrKN.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-T4fMC6Ww.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-C2Gf9k45.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-CcdOLba9.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-r7SjMxYI.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-BWI0b699.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-DPyefE_s.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dz_zorT8.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-VOD4Fih8.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-BbJ4drXs.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-CPPt7sAc.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-CIIL7T3O.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-DMWk2KXY.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-Bx-ygbVe.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-CafUDauh.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-CiCD8tr1.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-BRGub3eG.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-Bt3rB_N9.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-bF3ym9Kn.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-R2-yxXGg.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-CI-p0jom.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-Bclcg_ZX.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-OwSMnQPF.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-mhKxMLF-.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-BkucfkR2.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-xPlJR_Is.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-BmQiddws.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-CY62ohS6.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-C4zfYkP5.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-D-X4TndA.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-Bppn2i0e.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-DVP6KCfG.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-znMlkMOz.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-dGQ-YoNm.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-bA1RQVjN.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-vbzR9DTw.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-jvrPvSXj.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-_aDOX96f.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-C9PMe7ZC.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-Bl8_neTA.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-aUeFDe8t.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-IbDRhAjA.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-B0m0crzV.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-Bby0hAXq.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-JG55IFWY.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-D-wnNrv1.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-iFWD7R5b.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-DEOtsr7U.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-Do_ivM3K.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CekfZZKH.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-CtvIBYpT.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-VAID48D1.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-Ddx5Tgyl.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-CXlifVZM.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-ByGVJzRW.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets-CjP5LvcE.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-iau7y1g3.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-B6jKhrp4.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-g8wytHL5.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-B5hTXq0f.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-LV2J3BUW.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-Ci_KJODl.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-BbjESGwy.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-DQ4KT5o5.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-r5rqWOVZ.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-D-fYy4j5.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-CMG7tsSx.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-DNEDBnz-.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-CHD3ZMFe.js +0 -1
- package/dist/assets/volter-sdk-layouts-CCA7FuOC.js +0 -1
- package/dist/assets/volter-sdk-selection-D0kL_iDi.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-DA_l3-71.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-BF7c04d1.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-DTohfZFv.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-BldcSvMF.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-C5lBU-ru.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-BU2odzp5.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-BXpMu1Rd.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-QB40XSDf.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-B_nVNyey.js +0 -1
- package/dist/assets/volter-sdk-types-CpvyGiQa.js +0 -1
- package/dist/assets/volter-sdk-views-DJ_MnaUh.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-D7xN8pRO.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-Crp-pBLJ.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-MHO-HL-5.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BV2KyS5k.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-Pv9HbBUF.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-vPIEJ2AQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-0kpmltFh.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-C1igd7oH.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-B2hEex_l.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-cyhMzK5L.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-DcQAkx63.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker--uOgL4qW.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DTAtC77d.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-khJ7avew.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-eiGFiwHP.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-Cd-F281s.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C7uJEWC0.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-B5TWzor-.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-DEQKguQB.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-Bl0RzyJQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-UyDjvCxC.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-nF0yD3V1.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-D34mrQDy.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-CLSEwJ2u.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-Bnz6CGdv.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-BGh2nrPU.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-DD17mnjd.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-CCzpKURV.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-rAsZA766.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-B1Ppeaoa.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-CHAXdol_.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CnNtxQXT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Cimr9Mco.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-CT_S601l.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-B8HUvMqd.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-B4XDeGeD.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-Bi7EShmW.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-CKIw0gyB.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Cm3QFgJj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-Bydp9OuQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CCux7aOb.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-CX8Zqrmp.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-9ZuvJNaQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-DQ24NxRN.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-B8ydBBhm.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-DJXfSNS6.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-BzMgToKr.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-RjhVjrNt.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-CaqZYWvq.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-GZiAnowy.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-CvywNZqF.js +0 -1
- package/dist/assets/volter-shared-fontawesome-D0om5i4C.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-Nf2pZiIO.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-mOtwwECE.js +0 -1
- package/dist/assets/volter-shared-react-D-xjcqWm.js +0 -1
- package/dist/assets/volter-shared-react-dom-DdRTSMx8.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-WSvYqY8Z.js +0 -1
- package/dist/assets/worker-CxcSX7C7.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./volter-sdk-CQ_hQ_Bw.js";import{Object3DPreview as d}from"./Object3DPreview-CIxiGvEF.js";import"./three.module-CtVjCPcj.js";import"./OrbitControls-DrHRrSFA.js";import"./asset-preview-Cu0rRM9t.js";import"./output-pass-j4dAGrPY.js";import"./three-integration.service-CC3bssCn.js";import"./object3d-document-session-registry-DWnnt4zK.js";function g({build:r,displayName:e="Object3D preview",height:m=360,background:s,showSkeleton:n=!1,cameraDirection:p,showGrid:c,useDefaultLighting:j,exposure:u,setupPreview:t,active:a=!0}){const i=t!==void 0;return o.jsx("div",{style:{width:"100%",height:m,minHeight:240},children:o.jsx(d,{sourceFactory:r,displayName:e,active:a,showSkeleton:n,background:s,cameraDirection:p,showGrid:c??!i,useDefaultLighting:j??!i,exposure:u,setupPreview:t})})}export{g as ToolObject3DPreview};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as x,j as e,im as g,dN as w,bO as h,bQ as j,t as y,ik as b,eE as m,ct as f,cv as v,B as S}from"./volter-sdk-CQ_hQ_Bw.js";const M=[{mode:"solid",label:"Material",description:"Authored materials and lighting"},{mode:"clay",label:"Solid",description:"Neutral flat-shaded geometry"},{mode:"unlit",label:"Unlit",description:"Base color without scene lighting"},{mode:"wireframe",label:"Wireframe",description:"Renderable triangle edges"},{mode:"matcap",label:"Matcap",description:"Neutral clay sphere — form without color"},{mode:"normals",label:"Normals",description:"Surface-normal direction colors"},{mode:"overdraw",label:"Overdraw",description:"Additive overlap visualization"}],V={preview:"Material Preview",rendered:"Rendered",uv:"UV","vertex-colors":"Vertex Colors"},z=[{mode:"wireframe",glyph:"wireframe",label:"Wireframe"},{mode:"clay",glyph:"sphere",label:"Solid"},{mode:"solid",glyph:"preview",label:"Material"}];function W(r){return[{mode:"wireframe",glyph:"wireframe",label:"Wireframe"},{mode:"solid",glyph:"sphere",label:"Solid"},...r.has("preview")?[{mode:"preview",glyph:"preview",label:"Material Preview"}]:[],...r.has("rendered")?[{mode:"rendered",glyph:"rendered",label:"Rendered"}]:[]]}function k({glyph:r}){return e.jsxs("svg",{viewBox:"0 0 16 16",className:"volter-viewport-shading-glyph","aria-hidden":"true",focusable:"false",children:[r==="sphere"||r==="rendered"?e.jsx("circle",{cx:"8",cy:"8",r:"7.3",fill:"currentColor"}):e.jsx("circle",{cx:"8",cy:"8",r:"7.3",fill:"none",stroke:"currentColor",strokeWidth:"1.05"}),r==="wireframe"?e.jsxs("g",{stroke:"currentColor",strokeWidth:"1.05",children:[e.jsx("line",{x1:"1.7",y1:"5.4",x2:"14.3",y2:"5.4"}),e.jsx("line",{x1:"1.7",y1:"10.6",x2:"14.3",y2:"10.6"}),e.jsx("line",{x1:"5.4",y1:"1.7",x2:"5.4",y2:"14.3"})]}):null,r==="rendered"?e.jsx("circle",{cx:"5.6",cy:"5.6",r:"2.3",fill:"var(--volter-surface-overlay, #ffffff)",fillOpacity:"0.7"}):null,r==="preview"?e.jsx("path",{d:"M7.73 1.23 L7.73 10.43 L1.22 8.04 A6.78 6.78 0 0 1 7.73 1.23 Z",fill:"currentColor"}):null]})}function C({mode:r,onChange:t,choices:n,disabled:l=!1,segments:d,children:o}){const[s,a]=x.useState(!1),p=x.useRef(null),c=n.find(i=>i.mode===r)??n[0];if(!c)return null;const u=s&&!l?e.jsxs(g,{id:"volter-viewport-shading-menu",anchorRef:p,"aria-label":"Viewport shading modes",onDismiss:()=>a(!1),style:{minWidth:230},children:[n.map(i=>e.jsxs(w,{role:"menuitemradio","aria-checked":i.mode===r,onSelect:()=>{t(i.mode),a(!1)},style:{display:"grid",gridTemplateColumns:"14px 1fr",gap:7},children:[e.jsx("span",{style:{opacity:i.mode===r?1:0},children:e.jsx(h,{icon:j,size:"xs"})}),e.jsxs("span",{children:[e.jsx("span",{style:{display:"block"},children:i.label}),e.jsx("span",{style:{display:"block",color:y.content.dim,fontSize:10},children:i.description})]})]},i.mode)),o?e.jsxs(e.Fragment,{children:[e.jsx(b,{}),e.jsx("div",{className:"volter-viewport-shading-options",children:o})]}):null]}):null;return d?e.jsxs("div",{className:"volter-viewport-popover-anchor",children:[e.jsxs("span",{className:"volter-viewport-shading-segments",role:"group","aria-label":"Viewport shading",children:[d.map(i=>e.jsx(m,{text:`Viewport shading: ${i.label}`,children:e.jsx(f,{size:"compact",shape:"segment",variant:"secondary","aria-pressed":i.mode===r,"aria-label":`Viewport shading: ${i.label}`,disabled:l,onClick:()=>t(i.mode),children:e.jsx(k,{glyph:i.glyph})})},i.mode)),e.jsx(m,{text:"Shading options",children:e.jsx(f,{ref:p,size:"compact",shape:"segment",variant:"secondary","aria-label":"Shading options","aria-haspopup":"menu","aria-expanded":s,"aria-controls":s?"volter-viewport-shading-menu":void 0,disabled:l,onClick:()=>a(i=>!i),children:e.jsx(h,{icon:v,size:"xs"})})})]}),u]}):e.jsxs("div",{style:{position:"relative"},children:[e.jsx(m,{text:`Viewport shading: ${c.label}`,children:e.jsxs(S,{ref:p,type:"button",size:"compact",variant:"secondary","aria-label":`Viewport shading: ${c.label}`,"aria-haspopup":"menu","aria-expanded":s,"aria-controls":s?"volter-viewport-shading-menu":void 0,disabled:l,onClick:()=>a(i=>!i),style:{display:"inline-flex",alignItems:"center",gap:5,minWidth:66},children:[e.jsx("span",{children:c.label}),e.jsx(h,{icon:v,size:"xs"})]})}),u]})}function E({mode:r,onChange:t,disabled:n=!1,words:l}){const d=x.useMemo(()=>{const o=M.map(a=>({...a,label:l?.[a.mode]??a.label}));if(o.some(a=>a.mode===r))return o;const s=l?.[r]??V[r]??r;return[...o,{mode:r,label:s,description:"The mode this view is drawn in"}]},[l,r]);return e.jsx(C,{mode:r,onChange:t,choices:d,disabled:n})}export{C as V,z as a,E as b,W as p,M as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h2 as i}from"./volter-sdk-CQ_hQ_Bw.js";import{l as o}from"./live-mixers-B-bwLZ7c.js";const a="workspace.service";function p(){return i().session.reportFacet(()=>({liveMixers:o().map(s=>({site:s.key,clips:[...s.clips.keys()],animates:[...s.roots].map(e=>e.name||"(unnamed)")}))}))}export{a as point,p as start};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h2 as c,n as a,j as i,T as l,jf as u}from"./volter-sdk-CQ_hQ_Bw.js";const d="workspace.utility",m="Animation";function v(){const{documents:n,transport:s}=c(),e=a.useSyncExternalStore(n.subscribe,n.activeId,n.activeId),t=a.useSyncExternalStore(s.subscribe,a.useCallback(()=>e?s.for(e):null,[e,s])),o=a.useSyncExternalStore(a.useCallback(r=>t?t.subscribe(r):()=>{},[t]),a.useCallback(()=>t?.snapshot()??null,[t]));return!t||!o||o.activeSubject===null?i.jsx(l,{as:"p",variant:"caption","data-testid":"animation-timeline-empty","data-document":e??"","data-transport":t?"yes":"no",style:{padding:"var(--volter-space-2) var(--volter-space-3)"},children:t?"Nothing in the active document plays an animation.":"The active document has no stage to animate."}):i.jsx(u,{transport:t})}export{v as default,d as point,m as title};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/spark.module-CTTm62aa.js","assets/three.module-CtVjCPcj.js","assets/output-pass-j4dAGrPY.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{g as it,jd as tA,j5 as Ua,j1 as ot,je as rt}from"./volter-sdk-CQ_hQ_Bw.js";import{c as Na,m as DA}from"./output-pass-j4dAGrPY.js";import{b2 as ue,b3 as eA,n as L,w as H,B as ct,t as fA,m as K,aF as HA,b4 as _a,b5 as ce,b6 as gt,b7 as pA,a6 as O,r as It,I as Ha,P as va,v as NA,g as aA,V as y,am as lt,Q as bt,b8 as qa,O as Qe,b9 as Bt,ba as Oa,bb as ja,at as KA,bc as Pa,bd as Ka,be as dt,L as sA,N as vA,a8 as ge,a9 as Ja,C as Ya,aW as Wa,ab as zA,ag as Va,az as ht,$ as za,l as hA,bf as Xa,p as Ct,j as JA,af as Et,bg as ft,bh as pt,aV as ut,f as uA,ay as Qt,u as rA,a0 as mt,q as Za,bi as $a,o as wt,bj as As,bk as yt,aS as es,aa as Ie,bl as Me,bm as Ue,bn as Ne,i as ts,bo as as,X as me,a3 as ss,bp as ns,bq as is,br as Dt,aq as _e,bs as He,bt as le,bu as be,bv as os,bw as rs,bx as cs,by as gs,bz as ve,bA as qe,bB as Be,bC as XA,bD as _A,bE as Rt,bF as St,b as de,R as CA,aB as EA,e as iA,av as S,H as Z,bG as kt,bH as Ft,F as QA,a as Is,D as ls,bI as bs,bJ as Bs,bK as ds,bL as hs,bM as Cs,a4 as Es,bN as fs,bO as ps,aK as RA,aD as SA,bP as us,Y as Qs,bQ as ms}from"./three.module-CtVjCPcj.js";const we={editorHelperType:"editorHelperType",skeletonVisible:"skeletonVisible",skeletonEnabled:"skeletonEnabled",engineInternal:"engineInternal",editorHelper:"editorHelper",volterComponentRoot:"volterComponentRoot",volterBuiltInternal:"volterBuiltInternal"};function qA(n,A){return n?n.userData[we[A]]:void 0}function Ci(n,A,e){n.userData[we[A]]=e}const ye={...we,entityId:"entityId",forward:"forward",tags:"tags",attributes:"attributes",navRole:"navRole",pivot:"pivot",splineCurve:"splineCurve",splineControlPoint:"splineControlPoint",_camera:"_camera",_particleSystem:"_particleSystem",gaussianSplat:"gaussianSplat",__sharedGeometry:"__sharedGeometry",__shadeOrig:"__shadeOrig",__shadeUnlit:"__shadeUnlit",__ingest:"__ingest",__ingestNextId:"__ingestNextId",authoringRoot:"authoringRoot",authoringInstance:"authoringInstance",authoringLabel:"authoringLabel",authoringComponent:"authoringComponent",authoringDocument:"authoringDocument",authoringHierarchyId:"authoringHierarchyId",authoringHierarchyParentId:"authoringHierarchyParentId",authoringHierarchyOrder:"authoringHierarchyOrder",editorIcon:"editorIcon",envObject:"envObject",constraints:"constraints",authoringSubject:"authoringSubject",reflectionProbe:"reflectionProbe",triggerVolume:"triggerVolume",vcDirIdx:"vcDirIdx"};function Ei(n,A){return n?n.userData[ye[A]]:void 0}function Oe(n,A,e){n.userData[ye[A]]=e}function kA(n,A){return n?n.userData[ye[A]]!==void 0:!1}var ws=(function(){var n="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",A="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),a=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var t=WebAssembly.validate(e)?r(A):r(n),s,i=WebAssembly.instantiate(t,{}).then(function(C){s=C.instance,s.exports.__wasm_call_ctors()});function r(C){for(var E=new Uint8Array(C.length),p=0;p<C.length;++p){var B=C.charCodeAt(p);E[p]=B>96?B-97:B>64?B-39:B+4}for(var f=0,p=0;p<C.length;++p)E[f++]=E[p]<60?a[E[p]]:(E[p]-60)*64+E[++p];return E.buffer.slice(0,f)}function o(C,E,p,B,f,Q,m){var w=C.exports.sbrk,R=B+3&-4,k=w(R*f),G=w(Q.length),J=new Uint8Array(C.exports.memory.buffer);J.set(Q,G);var j=E(k,B,f,G,Q.length);if(j==0&&m&&m(k,R,f),p.set(J.subarray(k,k+B*f)),w(k-w(0)),j!=0)throw new Error("Malformed buffer data: "+j)}var c={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},g={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},I=[],l=0;function b(C){var E={object:new Worker(C),pending:0,requests:{}};return E.object.onmessage=function(p){var B=p.data;E.pending-=B.count,E.requests[B.id][B.action](B.value),delete E.requests[B.id]},E}function d(C){for(var E="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(t)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+u.name+";"+o.toString()+u.toString(),p=new Blob([E],{type:"text/javascript"}),B=URL.createObjectURL(p),f=I.length;f<C;++f)I[f]=b(B);for(var f=C;f<I.length;++f)I[f].object.postMessage({});I.length=C,URL.revokeObjectURL(B)}function h(C,E,p,B,f){for(var Q=I[0],m=1;m<I.length;++m)I[m].pending<Q.pending&&(Q=I[m]);return new Promise(function(w,R){var k=new Uint8Array(p),G=++l;Q.pending+=C,Q.requests[G]={resolve:w,reject:R},Q.object.postMessage({id:G,count:C,size:E,source:k,mode:B,filter:f},[k.buffer])})}function u(C){var E=C.data;if(!E.id)return self.close();self.ready.then(function(p){try{var B=new Uint8Array(E.count*E.size);o(p,p.exports[E.mode],B,E.count,E.size,E.source,p.exports[E.filter]),self.postMessage({id:E.id,count:E.count,action:"resolve",value:B},[B.buffer])}catch(f){self.postMessage({id:E.id,count:E.count,action:"reject",value:f})}})}return{ready:i,supported:!0,useWorkers:function(C){d(C)},decodeVertexBuffer:function(C,E,p,B,f){o(s,s.exports.meshopt_decodeVertexBuffer,C,E,p,B,s.exports[c[f]])},decodeIndexBuffer:function(C,E,p,B){o(s,s.exports.meshopt_decodeIndexBuffer,C,E,p,B)},decodeIndexSequence:function(C,E,p,B){o(s,s.exports.meshopt_decodeIndexSequence,C,E,p,B)},decodeGltfBuffer:function(C,E,p,B,f,Q){o(s,s.exports[g[f]],C,E,p,B,s.exports[c[Q]])},decodeGltfBufferAsync:function(C,E,p,B,f){return I.length>0?h(C,E,p,g[B],c[f]):i.then(function(){var Q=new Uint8Array(C*E);return o(s,s.exports[g[B]],Q,C,E,p,s.exports[c[f]]),Q})}}})();const ZA=new WeakMap;class ys extends ue{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,e,a,t){const s=new eA(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(A,i=>{this.parse(i,e,t)},a,t)}parse(A,e,a=()=>{}){this.decodeDracoFile(A,e,null,null,L,a).catch(a)}decodeDracoFile(A,e,a,t,s=H,i=()=>{}){const r={attributeIDs:a||this.defaultAttributeIDs,attributeTypes:t||this.defaultAttributeTypes,useUniqueIDs:!!a,vertexColorSpace:s};return this.decodeGeometry(A,r).then(e).catch(i)}decodeGeometry(A,e){const a=JSON.stringify(e);if(ZA.has(A)){const o=ZA.get(A);if(o.key===a)return o.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let t;const s=this.workerNextTaskID++,i=A.byteLength,r=this._getWorker(s,i).then(o=>(t=o,new Promise((c,g)=>{t._callbacks[s]={resolve:c,reject:g},t.postMessage({type:"decode",id:s,taskConfig:e,buffer:A},[A])}))).then(o=>this._createGeometry(o.geometry));return r.catch(()=>!0).then(()=>{t&&s&&this._releaseTask(t,s)}),ZA.set(A,{key:a,promise:r}),r}_createGeometry(A){const e=new ct;A.index&&e.setIndex(new fA(A.index.array,1));for(let a=0;a<A.attributes.length;a++){const t=A.attributes[a],s=t.name,i=t.array,r=t.itemSize,o=new fA(i,r);s==="color"&&(this._assignVertexColorSpace(o,t.vertexColorSpace),o.normalized=!(i instanceof Float32Array)),e.setAttribute(s,o)}return e}_assignVertexColorSpace(A,e){if(e!==L)return;const a=new K;for(let t=0,s=A.count;t<s;t++)a.fromBufferAttribute(A,t),HA.colorSpaceToWorking(a,L),A.setXYZ(t,a.r,a.g,a.b)}_loadLibrary(A,e){const a=new eA(this.manager);return a.setPath(this.decoderPath),a.setResponseType(e),a.setWithCredentials(this.withCredentials),new Promise((t,s)=>{a.load(A,t,void 0,s)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return A?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(a=>{const t=a[0];A||(this.decoderConfig.wasmBinary=a[1]);const s=Ds.toString(),i=["/* draco decoder */",t,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join(`
|
|
3
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(A,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const t=new Worker(this.workerSourceURL);t._callbacks={},t._taskCosts={},t._taskLoad=0,t.postMessage({type:"init",decoderConfig:this.decoderConfig}),t.onmessage=function(s){const i=s.data;switch(i.type){case"decode":t._callbacks[i.id].resolve(i);break;case"error":t._callbacks[i.id].reject(i);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+i.type+'"')}},this.workerPool.push(t)}else this.workerPool.sort(function(t,s){return t._taskLoad>s._taskLoad?-1:1});const a=this.workerPool[this.workerPool.length-1];return a._taskCosts[A]=e,a._taskLoad+=e,a})}_releaseTask(A,e){A._taskLoad-=A._taskCosts[e],delete A._callbacks[e],delete A._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function Ds(){let n,A;onmessage=function(i){const r=i.data;switch(r.type){case"init":n=r.decoderConfig,A=new Promise(function(g){n.onModuleLoaded=function(I){g({draco:I})},DracoDecoderModule(n)});break;case"decode":const o=r.buffer,c=r.taskConfig;A.then(g=>{const I=g.draco,l=new I.Decoder;try{const b=e(I,l,new Int8Array(o),c),d=b.attributes.map(h=>h.array.buffer);b.index&&d.push(b.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:b},d)}catch(b){console.error(b),self.postMessage({type:"error",id:r.id,error:b.message})}finally{I.destroy(l)}});break}};function e(i,r,o,c){const g=c.attributeIDs,I=c.attributeTypes;let l,b;const d=r.GetEncodedGeometryType(o);if(d===i.TRIANGULAR_MESH)l=new i.Mesh,b=r.DecodeArrayToMesh(o,o.byteLength,l);else if(d===i.POINT_CLOUD)l=new i.PointCloud,b=r.DecodeArrayToPointCloud(o,o.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!b.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+b.error_msg());const h={index:null,attributes:[]};for(const u in g){const C=self[I[u]];let E,p;if(c.useUniqueIDs)p=g[u],E=r.GetAttributeByUniqueId(l,p);else{if(p=r.GetAttributeId(l,i[g[u]]),p===-1)continue;E=r.GetAttribute(l,p)}const B=t(i,r,l,u,C,E);u==="color"&&(B.vertexColorSpace=c.vertexColorSpace),h.attributes.push(B)}return d===i.TRIANGULAR_MESH&&(h.index=a(i,r,l)),i.destroy(l),h}function a(i,r,o){const g=o.num_faces()*3,I=g*4,l=i._malloc(I);r.GetTrianglesUInt32Array(o,I,l);const b=new Uint32Array(i.HEAPF32.buffer,l,g).slice();return i._free(l),{array:b,itemSize:1}}function t(i,r,o,c,g,I){const l=I.num_components(),d=o.num_points()*l,h=d*g.BYTES_PER_ELEMENT,u=s(i,g),C=i._malloc(h);r.GetAttributeDataArrayForAllPoints(o,I,u,h,C);const E=new g(i.HEAPF32.buffer,C,d).slice();return i._free(C),{name:c,array:E,itemSize:l}}function s(i,r){switch(r){case Float32Array:return i.DT_FLOAT32;case Int8Array:return i.DT_INT8;case Int16Array:return i.DT_INT16;case Int32Array:return i.DT_INT32;case Uint8Array:return i.DT_UINT8;case Uint16Array:return i.DT_UINT16;case Uint32Array:return i.DT_UINT32}}}function je(n,A){if(A===_a)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),n;if(A===ce||A===gt){let e=n.getIndex();if(e===null){const i=[],r=n.getAttribute("position");if(r!==void 0){for(let o=0;o<r.count;o++)i.push(o);n.setIndex(i),e=n.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),n}const a=e.count-2,t=[];if(A===ce)for(let i=1;i<=a;i++)t.push(e.getX(0)),t.push(e.getX(i)),t.push(e.getX(i+1));else for(let i=0;i<a;i++)i%2===0?(t.push(e.getX(i)),t.push(e.getX(i+1)),t.push(e.getX(i+2))):(t.push(e.getX(i+2)),t.push(e.getX(i+1)),t.push(e.getX(i)));t.length/3!==a&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const s=n.clone();return s.setIndex(t),s.clearGroups(),s}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),n}class Rs extends ue{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Gs(e)}),this.register(function(e){return new Ts(e)}),this.register(function(e){return new Os(e)}),this.register(function(e){return new js(e)}),this.register(function(e){return new Ps(e)}),this.register(function(e){return new Ms(e)}),this.register(function(e){return new Us(e)}),this.register(function(e){return new Ns(e)}),this.register(function(e){return new _s(e)}),this.register(function(e){return new xs(e)}),this.register(function(e){return new Hs(e)}),this.register(function(e){return new Ls(e)}),this.register(function(e){return new qs(e)}),this.register(function(e){return new vs(e)}),this.register(function(e){return new ks(e)}),this.register(function(e){return new Ks(e)}),this.register(function(e){return new Js(e)})}load(A,e,a,t){const s=this;let i;if(this.resourcePath!=="")i=this.resourcePath;else if(this.path!==""){const c=pA.extractUrlBase(A);i=pA.resolveURL(c,this.path)}else i=pA.extractUrlBase(A);this.manager.itemStart(A);const r=function(c){t?t(c):console.error(c),s.manager.itemError(A),s.manager.itemEnd(A)},o=new eA(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(A,function(c){try{s.parse(c,i,function(g){e(g),s.manager.itemEnd(A)},r)}catch(g){r(g)}},a,r)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,e,a,t){let s;const i={},r={},o=new TextDecoder;if(typeof A=="string")s=JSON.parse(A);else if(A instanceof ArrayBuffer)if(o.decode(new Uint8Array(A,0,4))===xt){try{i[D.KHR_BINARY_GLTF]=new Ys(A)}catch(I){t&&t(I);return}s=JSON.parse(i[D.KHR_BINARY_GLTF].content)}else s=JSON.parse(o.decode(A));else s=A;if(s.asset===void 0||s.asset.version[0]<2){t&&t(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const c=new on(s,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let g=0;g<this.pluginCallbacks.length;g++){const I=this.pluginCallbacks[g](c);I.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),r[I.name]=I,i[I.name]=!0}if(s.extensionsUsed)for(let g=0;g<s.extensionsUsed.length;++g){const I=s.extensionsUsed[g],l=s.extensionsRequired||[];switch(I){case D.KHR_MATERIALS_UNLIT:i[I]=new Fs;break;case D.KHR_DRACO_MESH_COMPRESSION:i[I]=new Ws(s,this.dracoLoader);break;case D.KHR_TEXTURE_TRANSFORM:i[I]=new Vs;break;case D.KHR_MESH_QUANTIZATION:i[I]=new zs;break;default:l.indexOf(I)>=0&&r[I]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+I+'".')}}c.setExtensions(i),c.setPlugins(r),c.parse(a,t)}parseAsync(A,e){const a=this;return new Promise(function(t,s){a.parse(A,e,t,s)})}}function Ss(){let n={};return{get:function(A){return n[A]},add:function(A,e){n[A]=e},remove:function(A){delete n[A]},removeAll:function(){n={}}}}const D={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class ks{constructor(A){this.parser=A,this.name=D.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,e=this.parser.json.nodes||[];for(let a=0,t=e.length;a<t;a++){const s=e[a];s.extensions&&s.extensions[this.name]&&s.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,s.extensions[this.name].light)}}_loadLight(A){const e=this.parser,a="light:"+A;let t=e.cache.get(a);if(t)return t;const s=e.json,o=((s.extensions&&s.extensions[this.name]||{}).lights||[])[A];let c;const g=new K(16777215);o.color!==void 0&&g.setRGB(o.color[0],o.color[1],o.color[2],H);const I=o.range!==void 0?o.range:0;switch(o.type){case"directional":c=new NA(g),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new va(g),c.distance=I;break;case"spot":c=new Ha(g),c.distance=I,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,c.angle=o.spot.outerConeAngle,c.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return c.position.set(0,0,0),v(c,o),o.intensity!==void 0&&(c.intensity=o.intensity),c.name=e.createUniqueName(o.name||"light_"+A),t=Promise.resolve(c),e.cache.add(a,t),t}getDependency(A,e){if(A==="light")return this._loadLight(e)}createNodeAttachment(A){const e=this,a=this.parser,s=a.json.nodes[A],r=(s.extensions&&s.extensions[this.name]||{}).light;return r===void 0?null:this._loadLight(r).then(function(o){return a._getNodeRef(e.cache,r,o)})}}class Fs{constructor(){this.name=D.KHR_MATERIALS_UNLIT}getMaterialType(){return hA}extendParams(A,e,a){const t=[];A.color=new K(1,1,1),A.opacity=1;const s=e.pbrMetallicRoughness;if(s){if(Array.isArray(s.baseColorFactor)){const i=s.baseColorFactor;A.color.setRGB(i[0],i[1],i[2],H),A.opacity=i[3]}s.baseColorTexture!==void 0&&t.push(a.assignTexture(A,"map",s.baseColorTexture,L))}return Promise.all(t)}}class xs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=t.extensions[this.name].emissiveStrength;return s!==void 0&&(e.emissiveIntensity=s),Promise.resolve()}}class Gs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];if(i.clearcoatFactor!==void 0&&(e.clearcoat=i.clearcoatFactor),i.clearcoatTexture!==void 0&&s.push(a.assignTexture(e,"clearcoatMap",i.clearcoatTexture)),i.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=i.clearcoatRoughnessFactor),i.clearcoatRoughnessTexture!==void 0&&s.push(a.assignTexture(e,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),i.clearcoatNormalTexture!==void 0&&(s.push(a.assignTexture(e,"clearcoatNormalMap",i.clearcoatNormalTexture)),i.clearcoatNormalTexture.scale!==void 0)){const r=i.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new It(r,r)}return Promise.all(s)}}class Ts{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_DISPERSION}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=t.extensions[this.name];return e.dispersion=s.dispersion!==void 0?s.dispersion:0,Promise.resolve()}}class Ls{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return i.iridescenceFactor!==void 0&&(e.iridescence=i.iridescenceFactor),i.iridescenceTexture!==void 0&&s.push(a.assignTexture(e,"iridescenceMap",i.iridescenceTexture)),i.iridescenceIor!==void 0&&(e.iridescenceIOR=i.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),i.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=i.iridescenceThicknessMinimum),i.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=i.iridescenceThicknessMaximum),i.iridescenceThicknessTexture!==void 0&&s.push(a.assignTexture(e,"iridescenceThicknessMap",i.iridescenceThicknessTexture)),Promise.all(s)}}class Ms{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_SHEEN}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[];e.sheenColor=new K(0,0,0),e.sheenRoughness=0,e.sheen=1;const i=t.extensions[this.name];if(i.sheenColorFactor!==void 0){const r=i.sheenColorFactor;e.sheenColor.setRGB(r[0],r[1],r[2],H)}return i.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=i.sheenRoughnessFactor),i.sheenColorTexture!==void 0&&s.push(a.assignTexture(e,"sheenColorMap",i.sheenColorTexture,L)),i.sheenRoughnessTexture!==void 0&&s.push(a.assignTexture(e,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(s)}}class Us{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return i.transmissionFactor!==void 0&&(e.transmission=i.transmissionFactor),i.transmissionTexture!==void 0&&s.push(a.assignTexture(e,"transmissionMap",i.transmissionTexture)),Promise.all(s)}}class Ns{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_VOLUME}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];e.thickness=i.thicknessFactor!==void 0?i.thicknessFactor:0,i.thicknessTexture!==void 0&&s.push(a.assignTexture(e,"thicknessMap",i.thicknessTexture)),e.attenuationDistance=i.attenuationDistance||1/0;const r=i.attenuationColor||[1,1,1];return e.attenuationColor=new K().setRGB(r[0],r[1],r[2],H),Promise.all(s)}}class _s{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_IOR}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=t.extensions[this.name];return e.ior=s.ior!==void 0?s.ior:1.5,Promise.resolve()}}class Hs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_SPECULAR}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];e.specularIntensity=i.specularFactor!==void 0?i.specularFactor:1,i.specularTexture!==void 0&&s.push(a.assignTexture(e,"specularIntensityMap",i.specularTexture));const r=i.specularColorFactor||[1,1,1];return e.specularColor=new K().setRGB(r[0],r[1],r[2],H),i.specularColorTexture!==void 0&&s.push(a.assignTexture(e,"specularColorMap",i.specularColorTexture,L)),Promise.all(s)}}class vs{constructor(A){this.parser=A,this.name=D.EXT_MATERIALS_BUMP}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return e.bumpScale=i.bumpFactor!==void 0?i.bumpFactor:1,i.bumpTexture!==void 0&&s.push(a.assignTexture(e,"bumpMap",i.bumpTexture)),Promise.all(s)}}class qs{constructor(A){this.parser=A,this.name=D.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const a=this.parser.json.materials[A];return!a.extensions||!a.extensions[this.name]?null:O}extendMaterialParams(A,e){const a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const s=[],i=t.extensions[this.name];return i.anisotropyStrength!==void 0&&(e.anisotropy=i.anisotropyStrength),i.anisotropyRotation!==void 0&&(e.anisotropyRotation=i.anisotropyRotation),i.anisotropyTexture!==void 0&&s.push(a.assignTexture(e,"anisotropyMap",i.anisotropyTexture)),Promise.all(s)}}class Os{constructor(A){this.parser=A,this.name=D.KHR_TEXTURE_BASISU}loadTexture(A){const e=this.parser,a=e.json,t=a.textures[A];if(!t.extensions||!t.extensions[this.name])return null;const s=t.extensions[this.name],i=e.options.ktx2Loader;if(!i){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(A,s.source,i)}}class js{constructor(A){this.parser=A,this.name=D.EXT_TEXTURE_WEBP}loadTexture(A){const e=this.name,a=this.parser,t=a.json,s=t.textures[A];if(!s.extensions||!s.extensions[e])return null;const i=s.extensions[e],r=t.images[i.source];let o=a.textureLoader;if(r.uri){const c=a.options.manager.getHandler(r.uri);c!==null&&(o=c)}return a.loadTextureImage(A,i.source,o)}}class Ps{constructor(A){this.parser=A,this.name=D.EXT_TEXTURE_AVIF}loadTexture(A){const e=this.name,a=this.parser,t=a.json,s=t.textures[A];if(!s.extensions||!s.extensions[e])return null;const i=s.extensions[e],r=t.images[i.source];let o=a.textureLoader;if(r.uri){const c=a.options.manager.getHandler(r.uri);c!==null&&(o=c)}return a.loadTextureImage(A,i.source,o)}}class Ks{constructor(A){this.name=D.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const e=this.parser.json,a=e.bufferViews[A];if(a.extensions&&a.extensions[this.name]){const t=a.extensions[this.name],s=this.parser.getDependency("buffer",t.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return s.then(function(r){const o=t.byteOffset||0,c=t.byteLength||0,g=t.count,I=t.byteStride,l=new Uint8Array(r,o,c);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(g,I,l,t.mode,t.filter).then(function(b){return b.buffer}):i.ready.then(function(){const b=new ArrayBuffer(g*I);return i.decodeGltfBuffer(new Uint8Array(b),g,I,l,t.mode,t.filter),b})})}else return null}}class Js{constructor(A){this.name=D.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const e=this.parser.json,a=e.nodes[A];if(!a.extensions||!a.extensions[this.name]||a.mesh===void 0)return null;const t=e.meshes[a.mesh];for(const c of t.primitives)if(c.mode!==M.TRIANGLES&&c.mode!==M.TRIANGLE_STRIP&&c.mode!==M.TRIANGLE_FAN&&c.mode!==void 0)return null;const i=a.extensions[this.name].attributes,r=[],o={};for(const c in i)r.push(this.parser.getDependency("accessor",i[c]).then(g=>(o[c]=g,o[c])));return r.length<1?null:(r.push(this.parser.createNodeMesh(A)),Promise.all(r).then(c=>{const g=c.pop(),I=g.isGroup?g.children:[g],l=c[0].count,b=[];for(const d of I){const h=new aA,u=new y,C=new bt,E=new y(1,1,1),p=new lt(d.geometry,d.material,l);for(let B=0;B<l;B++)o.TRANSLATION&&u.fromBufferAttribute(o.TRANSLATION,B),o.ROTATION&&C.fromBufferAttribute(o.ROTATION,B),o.SCALE&&E.fromBufferAttribute(o.SCALE,B),p.setMatrixAt(B,h.compose(u,C,E));for(const B in o)if(B==="_COLOR_0"){const f=o[B];p.instanceColor=new qa(f.array,f.itemSize,f.normalized)}else B!=="TRANSLATION"&&B!=="ROTATION"&&B!=="SCALE"&&d.geometry.setAttribute(B,o[B]);Qe.prototype.copy.call(p,d),this.parser.assignFinalMaterial(p),b.push(p)}return g.isGroup?(g.clear(),g.add(...b),g):b[0]}))}}const xt="glTF",BA=12,Pe={JSON:1313821514,BIN:5130562};class Ys{constructor(A){this.name=D.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(A,0,BA),a=new TextDecoder;if(this.header={magic:a.decode(new Uint8Array(A.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==xt)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const t=this.header.length-BA,s=new DataView(A,BA);let i=0;for(;i<t;){const r=s.getUint32(i,!0);i+=4;const o=s.getUint32(i,!0);if(i+=4,o===Pe.JSON){const c=new Uint8Array(A,BA+i,r);this.content=a.decode(c)}else if(o===Pe.BIN){const c=BA+i;this.body=A.slice(c,c+r)}i+=r}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class Ws{constructor(A,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=D.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(A,e){const a=this.json,t=this.dracoLoader,s=A.extensions[this.name].bufferView,i=A.extensions[this.name].attributes,r={},o={},c={};for(const g in i){const I=he[g]||g.toLowerCase();r[I]=i[g]}for(const g in A.attributes){const I=he[g]||g.toLowerCase();if(i[g]!==void 0){const l=a.accessors[A.attributes[g]],b=oA[l.componentType];c[I]=b.name,o[I]=l.normalized===!0}}return e.getDependency("bufferView",s).then(function(g){return new Promise(function(I,l){t.decodeDracoFile(g,function(b){for(const d in b.attributes){const h=b.attributes[d],u=o[d];u!==void 0&&(h.normalized=u)}I(b)},r,c,H,l)})})}}class Vs{constructor(){this.name=D.KHR_TEXTURE_TRANSFORM}extendTexture(A,e){return(e.texCoord===void 0||e.texCoord===A.channel)&&e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(A=A.clone(),e.texCoord!==void 0&&(A.channel=e.texCoord),e.offset!==void 0&&A.offset.fromArray(e.offset),e.rotation!==void 0&&(A.rotation=e.rotation),e.scale!==void 0&&A.repeat.fromArray(e.scale),A.needsUpdate=!0),A}}class zs{constructor(){this.name=D.KHR_MESH_QUANTIZATION}}class Gt extends as{constructor(A,e,a,t){super(A,e,a,t)}copySampleValue_(A){const e=this.resultBuffer,a=this.sampleValues,t=this.valueSize,s=A*t*3+t;for(let i=0;i!==t;i++)e[i]=a[s+i];return e}interpolate_(A,e,a,t){const s=this.resultBuffer,i=this.sampleValues,r=this.valueSize,o=r*2,c=r*3,g=t-e,I=(a-e)/g,l=I*I,b=l*I,d=A*c,h=d-c,u=-2*b+3*l,C=b-l,E=1-u,p=C-l+I;for(let B=0;B!==r;B++){const f=i[h+B+r],Q=i[h+B+o]*g,m=i[d+B+r],w=i[d+B]*g;s[B]=E*f+p*Q+u*m+C*w}return s}}const Xs=new bt;class Zs extends Gt{interpolate_(A,e,a,t){const s=super.interpolate_(A,e,a,t);return Xs.fromArray(s).normalize().toArray(s),s}}const M={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},oA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Ke={9728:vA,9729:sA,9984:dt,9985:Ka,9986:Pa,9987:KA},Je={33071:Ya,33648:Ja,10497:ge},$A={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},he={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},V={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},$s={CUBICSPLINE:void 0,LINEAR:yt,STEP:As},Ae={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function An(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new ht({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:ts})),n.DefaultMaterial}function X(n,A,e){for(const a in e.extensions)n[a]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[a]=e.extensions[a])}function v(n,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(n.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function en(n,A,e){let a=!1,t=!1,s=!1;for(let c=0,g=A.length;c<g;c++){const I=A[c];if(I.POSITION!==void 0&&(a=!0),I.NORMAL!==void 0&&(t=!0),I.COLOR_0!==void 0&&(s=!0),a&&t&&s)break}if(!a&&!t&&!s)return Promise.resolve(n);const i=[],r=[],o=[];for(let c=0,g=A.length;c<g;c++){const I=A[c];if(a){const l=I.POSITION!==void 0?e.getDependency("accessor",I.POSITION):n.attributes.position;i.push(l)}if(t){const l=I.NORMAL!==void 0?e.getDependency("accessor",I.NORMAL):n.attributes.normal;r.push(l)}if(s){const l=I.COLOR_0!==void 0?e.getDependency("accessor",I.COLOR_0):n.attributes.color;o.push(l)}}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o)]).then(function(c){const g=c[0],I=c[1],l=c[2];return a&&(n.morphAttributes.position=g),t&&(n.morphAttributes.normal=I),s&&(n.morphAttributes.color=l),n.morphTargetsRelative=!0,n})}function tn(n,A){if(n.updateMorphTargets(),A.weights!==void 0)for(let e=0,a=A.weights.length;e<a;e++)n.morphTargetInfluences[e]=A.weights[e];if(A.extras&&Array.isArray(A.extras.targetNames)){const e=A.extras.targetNames;if(n.morphTargetInfluences.length===e.length){n.morphTargetDictionary={};for(let a=0,t=e.length;a<t;a++)n.morphTargetDictionary[e[a]]=a}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function an(n){let A;const e=n.extensions&&n.extensions[D.KHR_DRACO_MESH_COMPRESSION];if(e?A="draco:"+e.bufferView+":"+e.indices+":"+ee(e.attributes):A=n.indices+":"+ee(n.attributes)+":"+n.mode,n.targets!==void 0)for(let a=0,t=n.targets.length;a<t;a++)A+=":"+ee(n.targets[a]);return A}function ee(n){let A="";const e=Object.keys(n).sort();for(let a=0,t=e.length;a<t;a++)A+=e[a]+":"+n[e[a]]+";";return A}function Ce(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function sn(n){return n.search(/\.jpe?g($|\?)/i)>0||n.search(/^data\:image\/jpeg/)===0?"image/jpeg":n.search(/\.webp($|\?)/i)>0||n.search(/^data\:image\/webp/)===0?"image/webp":n.search(/\.ktx2($|\?)/i)>0||n.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"}const nn=new aA;class on{constructor(A={},e={}){this.json=A,this.extensions={},this.plugins={},this.options=e,this.cache=new Ss,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let a=!1,t=-1,s=!1,i=-1;if(typeof navigator<"u"){const r=navigator.userAgent;a=/^((?!chrome|android).)*safari/i.test(r)===!0;const o=r.match(/Version\/(\d+)/);t=a&&o?parseInt(o[1],10):-1,s=r.indexOf("Firefox")>-1,i=s?r.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||a&&t<17||s&&i<98?this.textureLoader=new Bt(this.options.manager):this.textureLoader=new Oa(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new eA(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,e){const a=this,t=this.json,s=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(i){return i._markDefs&&i._markDefs()}),Promise.all(this._invokeAll(function(i){return i.beforeRoot&&i.beforeRoot()})).then(function(){return Promise.all([a.getDependencies("scene"),a.getDependencies("animation"),a.getDependencies("camera")])}).then(function(i){const r={scene:i[0][t.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:t.asset,parser:a,userData:{}};return X(s,r,t),v(r,t),Promise.all(a._invokeAll(function(o){return o.afterRoot&&o.afterRoot(r)})).then(function(){for(const o of r.scenes)o.updateMatrixWorld();A(r)})}).catch(e)}_markDefs(){const A=this.json.nodes||[],e=this.json.skins||[],a=this.json.meshes||[];for(let t=0,s=e.length;t<s;t++){const i=e[t].joints;for(let r=0,o=i.length;r<o;r++)A[i[r]].isBone=!0}for(let t=0,s=A.length;t<s;t++){const i=A[t];i.mesh!==void 0&&(this._addNodeRef(this.meshCache,i.mesh),i.skin!==void 0&&(a[i.mesh].isSkinnedMesh=!0)),i.camera!==void 0&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(A,e){e!==void 0&&(A.refs[e]===void 0&&(A.refs[e]=A.uses[e]=0),A.refs[e]++)}_getNodeRef(A,e,a){if(A.refs[e]<=1)return a;const t=a.clone(),s=(i,r)=>{const o=this.associations.get(i);o!=null&&this.associations.set(r,o);for(const[c,g]of i.children.entries())s(g,r.children[c])};return s(a,t),t.name+="_instance_"+A.uses[e]++,t}_invokeOne(A){const e=Object.values(this.plugins);e.push(this);for(let a=0;a<e.length;a++){const t=A(e[a]);if(t)return t}return null}_invokeAll(A){const e=Object.values(this.plugins);e.unshift(this);const a=[];for(let t=0;t<e.length;t++){const s=A(e[t]);s&&a.push(s)}return a}getDependency(A,e){const a=A+":"+e;let t=this.cache.get(a);if(!t){switch(A){case"scene":t=this.loadScene(e);break;case"node":t=this._invokeOne(function(s){return s.loadNode&&s.loadNode(e)});break;case"mesh":t=this._invokeOne(function(s){return s.loadMesh&&s.loadMesh(e)});break;case"accessor":t=this.loadAccessor(e);break;case"bufferView":t=this._invokeOne(function(s){return s.loadBufferView&&s.loadBufferView(e)});break;case"buffer":t=this.loadBuffer(e);break;case"material":t=this._invokeOne(function(s){return s.loadMaterial&&s.loadMaterial(e)});break;case"texture":t=this._invokeOne(function(s){return s.loadTexture&&s.loadTexture(e)});break;case"skin":t=this.loadSkin(e);break;case"animation":t=this._invokeOne(function(s){return s.loadAnimation&&s.loadAnimation(e)});break;case"camera":t=this.loadCamera(e);break;default:if(t=this._invokeOne(function(s){return s!=this&&s.getDependency&&s.getDependency(A,e)}),!t)throw new Error("Unknown type: "+A);break}this.cache.add(a,t)}return t}getDependencies(A){let e=this.cache.get(A);if(!e){const a=this,t=this.json[A+(A==="mesh"?"es":"s")]||[];e=Promise.all(t.map(function(s,i){return a.getDependency(A,i)})),this.cache.add(A,e)}return e}loadBuffer(A){const e=this.json.buffers[A],a=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&A===0)return Promise.resolve(this.extensions[D.KHR_BINARY_GLTF].body);const t=this.options;return new Promise(function(s,i){a.load(pA.resolveURL(e.uri,t.path),s,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(A){const e=this.json.bufferViews[A];return this.getDependency("buffer",e.buffer).then(function(a){const t=e.byteLength||0,s=e.byteOffset||0;return a.slice(s,s+t)})}loadAccessor(A){const e=this,a=this.json,t=this.json.accessors[A];if(t.bufferView===void 0&&t.sparse===void 0){const i=$A[t.type],r=oA[t.componentType],o=t.normalized===!0,c=new r(t.count*i);return Promise.resolve(new fA(c,i,o))}const s=[];return t.bufferView!==void 0?s.push(this.getDependency("bufferView",t.bufferView)):s.push(null),t.sparse!==void 0&&(s.push(this.getDependency("bufferView",t.sparse.indices.bufferView)),s.push(this.getDependency("bufferView",t.sparse.values.bufferView))),Promise.all(s).then(function(i){const r=i[0],o=$A[t.type],c=oA[t.componentType],g=c.BYTES_PER_ELEMENT,I=g*o,l=t.byteOffset||0,b=t.bufferView!==void 0?a.bufferViews[t.bufferView].byteStride:void 0,d=t.normalized===!0;let h,u;if(b&&b!==I){const C=Math.floor(l/b),E="InterleavedBuffer:"+t.bufferView+":"+t.componentType+":"+C+":"+t.count;let p=e.cache.get(E);p||(h=new c(r,C*b,t.count*b/g),p=new ja(h,b/g),e.cache.add(E,p)),u=new es(p,o,l%b/g,d)}else r===null?h=new c(t.count*o):h=new c(r,l,t.count*o),u=new fA(h,o,d);if(t.sparse!==void 0){const C=$A.SCALAR,E=oA[t.sparse.indices.componentType],p=t.sparse.indices.byteOffset||0,B=t.sparse.values.byteOffset||0,f=new E(i[1],p,t.sparse.count*C),Q=new c(i[2],B,t.sparse.count*o);r!==null&&(u=new fA(u.array.slice(),u.itemSize,u.normalized)),u.normalized=!1;for(let m=0,w=f.length;m<w;m++){const R=f[m];if(u.setX(R,Q[m*o]),o>=2&&u.setY(R,Q[m*o+1]),o>=3&&u.setZ(R,Q[m*o+2]),o>=4&&u.setW(R,Q[m*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}u.normalized=d}return u})}loadTexture(A){const e=this.json,a=this.options,s=e.textures[A].source,i=e.images[s];let r=this.textureLoader;if(i.uri){const o=a.manager.getHandler(i.uri);o!==null&&(r=o)}return this.loadTextureImage(A,s,r)}loadTextureImage(A,e,a){const t=this,s=this.json,i=s.textures[A],r=s.images[e],o=(r.uri||r.bufferView)+":"+i.sampler;if(this.textureCache[o])return this.textureCache[o];const c=this.loadImageSource(e,a).then(function(g){g.flipY=!1,g.name=i.name||r.name||"",g.name===""&&typeof r.uri=="string"&&r.uri.startsWith("data:image/")===!1&&(g.name=r.uri);const l=(s.samplers||{})[i.sampler]||{};return g.magFilter=Ke[l.magFilter]||sA,g.minFilter=Ke[l.minFilter]||KA,g.wrapS=Je[l.wrapS]||ge,g.wrapT=Je[l.wrapT]||ge,g.generateMipmaps=!g.isCompressedTexture&&g.minFilter!==vA&&g.minFilter!==sA,t.associations.set(g,{textures:A}),g}).catch(function(){return null});return this.textureCache[o]=c,c}loadImageSource(A,e){const a=this,t=this.json,s=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(I=>I.clone());const i=t.images[A],r=self.URL||self.webkitURL;let o=i.uri||"",c=!1;if(i.bufferView!==void 0)o=a.getDependency("bufferView",i.bufferView).then(function(I){c=!0;const l=new Blob([I],{type:i.mimeType});return o=r.createObjectURL(l),o});else if(i.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const g=Promise.resolve(o).then(function(I){return new Promise(function(l,b){let d=l;e.isImageBitmapLoader===!0&&(d=function(h){const u=new Ie(h);u.needsUpdate=!0,l(u)}),e.load(pA.resolveURL(I,s.path),d,void 0,b)})}).then(function(I){return c===!0&&r.revokeObjectURL(o),v(I,i),I.userData.mimeType=i.mimeType||sn(i.uri),I}).catch(function(I){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),I});return this.sourceCache[A]=g,g}assignTexture(A,e,a,t){const s=this;return this.getDependency("texture",a.index).then(function(i){if(!i)return null;if(a.texCoord!==void 0&&a.texCoord>0&&(i=i.clone(),i.channel=a.texCoord),s.extensions[D.KHR_TEXTURE_TRANSFORM]){const r=a.extensions!==void 0?a.extensions[D.KHR_TEXTURE_TRANSFORM]:void 0;if(r){const o=s.associations.get(i);i=s.extensions[D.KHR_TEXTURE_TRANSFORM].extendTexture(i,r),s.associations.set(i,o)}}return t!==void 0&&(i.colorSpace=t),A[e]=i,i})}assignFinalMaterial(A){const e=A.geometry;let a=A.material;const t=e.attributes.tangent===void 0,s=e.attributes.color!==void 0,i=e.attributes.normal===void 0;if(A.isPoints){const r="PointsMaterial:"+a.uuid;let o=this.cache.get(r);o||(o=new Wa,zA.prototype.copy.call(o,a),o.color.copy(a.color),o.map=a.map,o.sizeAttenuation=!1,this.cache.add(r,o)),a=o}else if(A.isLine){const r="LineBasicMaterial:"+a.uuid;let o=this.cache.get(r);o||(o=new Va,zA.prototype.copy.call(o,a),o.color.copy(a.color),o.map=a.map,this.cache.add(r,o)),a=o}if(t||s||i){let r="ClonedMaterial:"+a.uuid+":";t&&(r+="derivative-tangents:"),s&&(r+="vertex-colors:"),i&&(r+="flat-shading:");let o=this.cache.get(r);o||(o=a.clone(),s&&(o.vertexColors=!0),i&&(o.flatShading=!0),t&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),this.cache.add(r,o),this.associations.set(o,this.associations.get(a))),a=o}A.material=a}getMaterialType(){return ht}loadMaterial(A){const e=this,a=this.json,t=this.extensions,s=a.materials[A];let i;const r={},o=s.extensions||{},c=[];if(o[D.KHR_MATERIALS_UNLIT]){const I=t[D.KHR_MATERIALS_UNLIT];i=I.getMaterialType(),c.push(I.extendParams(r,s,e))}else{const I=s.pbrMetallicRoughness||{};if(r.color=new K(1,1,1),r.opacity=1,Array.isArray(I.baseColorFactor)){const l=I.baseColorFactor;r.color.setRGB(l[0],l[1],l[2],H),r.opacity=l[3]}I.baseColorTexture!==void 0&&c.push(e.assignTexture(r,"map",I.baseColorTexture,L)),r.metalness=I.metallicFactor!==void 0?I.metallicFactor:1,r.roughness=I.roughnessFactor!==void 0?I.roughnessFactor:1,I.metallicRoughnessTexture!==void 0&&(c.push(e.assignTexture(r,"metalnessMap",I.metallicRoughnessTexture)),c.push(e.assignTexture(r,"roughnessMap",I.metallicRoughnessTexture))),i=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(A)}),c.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(A,r)})))}s.doubleSided===!0&&(r.side=za);const g=s.alphaMode||Ae.OPAQUE;if(g===Ae.BLEND?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,g===Ae.MASK&&(r.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&i!==hA&&(c.push(e.assignTexture(r,"normalMap",s.normalTexture)),r.normalScale=new It(1,1),s.normalTexture.scale!==void 0)){const I=s.normalTexture.scale;r.normalScale.set(I,I)}if(s.occlusionTexture!==void 0&&i!==hA&&(c.push(e.assignTexture(r,"aoMap",s.occlusionTexture)),s.occlusionTexture.strength!==void 0&&(r.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&i!==hA){const I=s.emissiveFactor;r.emissive=new K().setRGB(I[0],I[1],I[2],H)}return s.emissiveTexture!==void 0&&i!==hA&&c.push(e.assignTexture(r,"emissiveMap",s.emissiveTexture,L)),Promise.all(c).then(function(){const I=new i(r);return s.name&&(I.name=s.name),v(I,s),e.associations.set(I,{materials:A}),s.extensions&&X(t,I,s),I})}createUniqueName(A){const e=Xa.sanitizeNodeName(A||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(A){const e=this,a=this.extensions,t=this.primitiveCache;function s(r){return a[D.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r,e).then(function(o){return Ye(o,r,e)})}const i=[];for(let r=0,o=A.length;r<o;r++){const c=A[r],g=an(c),I=t[g];if(I)i.push(I.promise);else{let l;c.extensions&&c.extensions[D.KHR_DRACO_MESH_COMPRESSION]?l=s(c):l=Ye(new ct,c,e),t[g]={primitive:c,promise:l},i.push(l)}}return Promise.all(i)}loadMesh(A){const e=this,a=this.json,t=this.extensions,s=a.meshes[A],i=s.primitives,r=[];for(let o=0,c=i.length;o<c;o++){const g=i[o].material===void 0?An(this.cache):this.getDependency("material",i[o].material);r.push(g)}return r.push(e.loadGeometries(i)),Promise.all(r).then(function(o){const c=o.slice(0,o.length-1),g=o[o.length-1],I=[];for(let b=0,d=g.length;b<d;b++){const h=g[b],u=i[b];let C;const E=c[b];if(u.mode===M.TRIANGLES||u.mode===M.TRIANGLE_STRIP||u.mode===M.TRIANGLE_FAN||u.mode===void 0)C=s.isSkinnedMesh===!0?new Ct(h,E):new JA(h,E),C.isSkinnedMesh===!0&&C.normalizeSkinWeights(),u.mode===M.TRIANGLE_STRIP?C.geometry=je(C.geometry,gt):u.mode===M.TRIANGLE_FAN&&(C.geometry=je(C.geometry,ce));else if(u.mode===M.LINES)C=new Et(h,E);else if(u.mode===M.LINE_STRIP)C=new ft(h,E);else if(u.mode===M.LINE_LOOP)C=new pt(h,E);else if(u.mode===M.POINTS)C=new ut(h,E);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+u.mode);Object.keys(C.geometry.morphAttributes).length>0&&tn(C,s),C.name=e.createUniqueName(s.name||"mesh_"+A),v(C,s),u.extensions&&X(t,C,u),e.assignFinalMaterial(C),I.push(C)}for(let b=0,d=I.length;b<d;b++)e.associations.set(I[b],{meshes:A,primitives:b});if(I.length===1)return s.extensions&&X(t,I[0],s),I[0];const l=new uA;s.extensions&&X(t,l,s),e.associations.set(l,{meshes:A});for(let b=0,d=I.length;b<d;b++)l.add(I[b]);return l})}loadCamera(A){let e;const a=this.json.cameras[A],t=a[a.type];if(!t){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return a.type==="perspective"?e=new Qt(rA.radToDeg(t.yfov),t.aspectRatio||1,t.znear||1,t.zfar||2e6):a.type==="orthographic"&&(e=new mt(-t.xmag,t.xmag,t.ymag,-t.ymag,t.znear,t.zfar)),a.name&&(e.name=this.createUniqueName(a.name)),v(e,a),Promise.resolve(e)}loadSkin(A){const e=this.json.skins[A],a=[];for(let t=0,s=e.joints.length;t<s;t++)a.push(this._loadNodeShallow(e.joints[t]));return e.inverseBindMatrices!==void 0?a.push(this.getDependency("accessor",e.inverseBindMatrices)):a.push(null),Promise.all(a).then(function(t){const s=t.pop(),i=t,r=[],o=[];for(let c=0,g=i.length;c<g;c++){const I=i[c];if(I){r.push(I);const l=new aA;s!==null&&l.fromArray(s.array,c*16),o.push(l)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[c])}return new Za(r,o)})}loadAnimation(A){const e=this.json,a=this,t=e.animations[A],s=t.name?t.name:"animation_"+A,i=[],r=[],o=[],c=[],g=[];for(let I=0,l=t.channels.length;I<l;I++){const b=t.channels[I],d=t.samplers[b.sampler],h=b.target,u=h.node,C=t.parameters!==void 0?t.parameters[d.input]:d.input,E=t.parameters!==void 0?t.parameters[d.output]:d.output;h.node!==void 0&&(i.push(this.getDependency("node",u)),r.push(this.getDependency("accessor",C)),o.push(this.getDependency("accessor",E)),c.push(d),g.push(h))}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o),Promise.all(c),Promise.all(g)]).then(function(I){const l=I[0],b=I[1],d=I[2],h=I[3],u=I[4],C=[];for(let p=0,B=l.length;p<B;p++){const f=l[p],Q=b[p],m=d[p],w=h[p],R=u[p];if(f===void 0)continue;f.updateMatrix&&f.updateMatrix();const k=a._createAnimationTracks(f,Q,m,w,R);if(k)for(let G=0;G<k.length;G++)C.push(k[G])}const E=new $a(s,void 0,C);return v(E,t),E})}createNodeMesh(A){const e=this.json,a=this,t=e.nodes[A];return t.mesh===void 0?null:a.getDependency("mesh",t.mesh).then(function(s){const i=a._getNodeRef(a.meshCache,t.mesh,s);return t.weights!==void 0&&i.traverse(function(r){if(r.isMesh)for(let o=0,c=t.weights.length;o<c;o++)r.morphTargetInfluences[o]=t.weights[o]}),i})}loadNode(A){const e=this.json,a=this,t=e.nodes[A],s=a._loadNodeShallow(A),i=[],r=t.children||[];for(let c=0,g=r.length;c<g;c++)i.push(a.getDependency("node",r[c]));const o=t.skin===void 0?Promise.resolve(null):a.getDependency("skin",t.skin);return Promise.all([s,Promise.all(i),o]).then(function(c){const g=c[0],I=c[1],l=c[2];l!==null&&g.traverse(function(b){b.isSkinnedMesh&&b.bind(l,nn)});for(let b=0,d=I.length;b<d;b++)g.add(I[b]);return g})}_loadNodeShallow(A){const e=this.json,a=this.extensions,t=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const s=e.nodes[A],i=s.name?t.createUniqueName(s.name):"",r=[],o=t._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(A)});return o&&r.push(o),s.camera!==void 0&&r.push(t.getDependency("camera",s.camera).then(function(c){return t._getNodeRef(t.cameraCache,s.camera,c)})),t._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(A)}).forEach(function(c){r.push(c)}),this.nodeCache[A]=Promise.all(r).then(function(c){let g;if(s.isBone===!0?g=new wt:c.length>1?g=new uA:c.length===1?g=c[0]:g=new Qe,g!==c[0])for(let I=0,l=c.length;I<l;I++)g.add(c[I]);if(s.name&&(g.userData.name=s.name,g.name=i),v(g,s),s.extensions&&X(a,g,s),s.matrix!==void 0){const I=new aA;I.fromArray(s.matrix),g.applyMatrix4(I)}else s.translation!==void 0&&g.position.fromArray(s.translation),s.rotation!==void 0&&g.quaternion.fromArray(s.rotation),s.scale!==void 0&&g.scale.fromArray(s.scale);if(!t.associations.has(g))t.associations.set(g,{});else if(s.mesh!==void 0&&t.meshCache.refs[s.mesh]>1){const I=t.associations.get(g);t.associations.set(g,{...I})}return t.associations.get(g).nodes=A,g}),this.nodeCache[A]}loadScene(A){const e=this.extensions,a=this.json.scenes[A],t=this,s=new uA;a.name&&(s.name=t.createUniqueName(a.name)),v(s,a),a.extensions&&X(e,s,a);const i=a.nodes||[],r=[];for(let o=0,c=i.length;o<c;o++)r.push(t.getDependency("node",i[o]));return Promise.all(r).then(function(o){for(let g=0,I=o.length;g<I;g++)s.add(o[g]);const c=g=>{const I=new Map;for(const[l,b]of t.associations)(l instanceof zA||l instanceof Ie)&&I.set(l,b);return g.traverse(l=>{const b=t.associations.get(l);b!=null&&I.set(l,b)}),I};return t.associations=c(s),s})}_createAnimationTracks(A,e,a,t,s){const i=[],r=A.name?A.name:A.uuid,o=[];V[s.path]===V.weights?A.traverse(function(l){l.morphTargetInfluences&&o.push(l.name?l.name:l.uuid)}):o.push(r);let c;switch(V[s.path]){case V.weights:c=Ue;break;case V.rotation:c=Ne;break;case V.translation:case V.scale:c=Me;break;default:switch(a.itemSize){case 1:c=Ue;break;case 2:case 3:default:c=Me;break}break}const g=t.interpolation!==void 0?$s[t.interpolation]:yt,I=this._getArrayFromAccessor(a);for(let l=0,b=o.length;l<b;l++){const d=new c(o[l]+"."+V[s.path],e.array,I,g);t.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(d),i.push(d)}return i}_getArrayFromAccessor(A){let e=A.array;if(A.normalized){const a=Ce(e.constructor),t=new Float32Array(e.length);for(let s=0,i=e.length;s<i;s++)t[s]=e[s]*a;e=t}return e}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(a){const t=this instanceof Ne?Zs:Gt;return new t(this.times,this.values,this.getValueSize()/3,a)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function rn(n,A,e){const a=A.attributes,t=new me;if(a.POSITION!==void 0){const r=e.json.accessors[a.POSITION],o=r.min,c=r.max;if(o!==void 0&&c!==void 0){if(t.set(new y(o[0],o[1],o[2]),new y(c[0],c[1],c[2])),r.normalized){const g=Ce(oA[r.componentType]);t.min.multiplyScalar(g),t.max.multiplyScalar(g)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const s=A.targets;if(s!==void 0){const r=new y,o=new y;for(let c=0,g=s.length;c<g;c++){const I=s[c];if(I.POSITION!==void 0){const l=e.json.accessors[I.POSITION],b=l.min,d=l.max;if(b!==void 0&&d!==void 0){if(o.setX(Math.max(Math.abs(b[0]),Math.abs(d[0]))),o.setY(Math.max(Math.abs(b[1]),Math.abs(d[1]))),o.setZ(Math.max(Math.abs(b[2]),Math.abs(d[2]))),l.normalized){const h=Ce(oA[l.componentType]);o.multiplyScalar(h)}r.max(o)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}t.expandByVector(r)}n.boundingBox=t;const i=new ss;t.getCenter(i.center),i.radius=t.min.distanceTo(t.max)/2,n.boundingSphere=i}function Ye(n,A,e){const a=A.attributes,t=[];function s(i,r){return e.getDependency("accessor",i).then(function(o){n.setAttribute(r,o)})}for(const i in a){const r=he[i]||i.toLowerCase();r in n.attributes||t.push(s(a[i],r))}if(A.indices!==void 0&&!n.index){const i=e.getDependency("accessor",A.indices).then(function(r){n.setIndex(r)});t.push(i)}return HA.workingColorSpace!==H&&"COLOR_0"in a&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${HA.workingColorSpace}" not supported.`),v(n,A),rn(n,A,e),Promise.all(t).then(function(){return A.targets!==void 0?en(n,A.targets,e):n})}class cn{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const e=this.workerCreator();e.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=e}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,e){const a=this.workersResolve[A];if(a&&a(e),this.queue.length){const{resolve:t,msg:s,transfer:i}=this.queue.shift();this.workersResolve[A]=t,this.workers[A].postMessage(s,i)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,e){return new Promise(a=>{const t=this._getIdleWorker();t!==-1?(this._initWorker(t),this.workerStatus|=1<<t,this.workersResolve[t]=a,this.workers[t].postMessage(A,e)):this.queue.push({resolve:a,msg:A,transfer:e})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const gn=0,We=2,In=1,Ve=2,ln=0,bn=1,Bn=10,dn=0,Tt=9,Lt=15,Mt=16,Ut=22,Nt=37,_t=43,Ht=76,vt=83,qt=97,Ot=100,jt=103,Pt=109,Kt=122,Jt=123,Yt=131,Wt=132,Vt=133,zt=134,Xt=137,Zt=138,$t=139,Aa=140,ea=141,ta=142,aa=145,sa=146,na=148,ia=152,oa=157,ra=158,ca=165,ga=166,Ia=1000054e3,la=1000054001,ba=1000054004,Ba=1000054005,De=1000066e3,da=1000066004;class dA{constructor(A,e,a,t){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+e,a),this._littleEndian=t,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const e=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,e}_skip(A){return this._offset+=A,this}_scan(A,e=0){const a=this._offset;let t=0;for(;this._dataView.getUint8(this._offset)!==e&&t<A;)t++,this._offset++;return t<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+a,t)}}const T=[171,75,84,88,32,50,48,187,13,10,26,10];function ze(n){return new TextDecoder().decode(n)}function hn(n){const A=new Uint8Array(n.buffer,n.byteOffset,T.length);if(A[0]!==T[0]||A[1]!==T[1]||A[2]!==T[2]||A[3]!==T[3]||A[4]!==T[4]||A[5]!==T[5]||A[6]!==T[6]||A[7]!==T[7]||A[8]!==T[8]||A[9]!==T[9]||A[10]!==T[10]||A[11]!==T[11])throw new Error("Missing KTX 2.0 identifier.");const e={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},a=17*Uint32Array.BYTES_PER_ELEMENT,t=new dA(n,T.length,a,!0);e.vkFormat=t._nextUint32(),e.typeSize=t._nextUint32(),e.pixelWidth=t._nextUint32(),e.pixelHeight=t._nextUint32(),e.pixelDepth=t._nextUint32(),e.layerCount=t._nextUint32(),e.faceCount=t._nextUint32(),e.levelCount=t._nextUint32(),e.supercompressionScheme=t._nextUint32();const s=t._nextUint32(),i=t._nextUint32(),r=t._nextUint32(),o=t._nextUint32(),c=t._nextUint64(),g=t._nextUint64(),I=3*Math.max(e.levelCount,1)*8,l=new dA(n,T.length+a,I,!0);for(let F=0,x=Math.max(e.levelCount,1);F<x;F++)e.levels.push({levelData:new Uint8Array(n.buffer,n.byteOffset+l._nextUint64(),l._nextUint64()),uncompressedByteLength:l._nextUint64()});const b=new dA(n,s,i,!0);b._skip(4);const d=b._nextUint16(),h=b._nextUint16(),u=b._nextUint16(),C=b._nextUint16(),E={vendorId:d,descriptorType:h,versionNumber:u,colorModel:b._nextUint8(),colorPrimaries:b._nextUint8(),transferFunction:b._nextUint8(),flags:b._nextUint8(),texelBlockDimension:[b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8()],bytesPlane:[b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8()],samples:[]},p=(C/4-6)/4;for(let F=0;F<p;F++){const x={bitOffset:b._nextUint16(),bitLength:b._nextUint8(),channelType:b._nextUint8(),samplePosition:[b._nextUint8(),b._nextUint8(),b._nextUint8(),b._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&x.channelType?(x.sampleLower=b._nextInt32(),x.sampleUpper=b._nextInt32()):(x.sampleLower=b._nextUint32(),x.sampleUpper=b._nextUint32()),E.samples[F]=x}e.dataFormatDescriptor.length=0,e.dataFormatDescriptor.push(E);const B=new dA(n,r,o,!0);for(;B._offset<o;){const F=B._nextUint32(),x=B._scan(F),N=ze(x);if(e.keyValue[N]=B._nextUint8Array(F-x.byteLength-1),N.match(/^ktx/i)){const MA=ze(e.keyValue[N]);e.keyValue[N]=MA.substring(0,MA.lastIndexOf("\0"))}B._skip(F%4?4-F%4:0)}if(g<=0)return e;const f=new dA(n,c,g,!0),Q=f._nextUint16(),m=f._nextUint16(),w=f._nextUint32(),R=f._nextUint32(),k=f._nextUint32(),G=f._nextUint32(),J=[];for(let F=0,x=Math.max(e.levelCount,1);F<x;F++)J.push({imageFlags:f._nextUint32(),rgbSliceByteOffset:f._nextUint32(),rgbSliceByteLength:f._nextUint32(),alphaSliceByteOffset:f._nextUint32(),alphaSliceByteLength:f._nextUint32()});const j=c+f._offset,Y=j+w,IA=Y+R,W=IA+k,TA=new Uint8Array(n.buffer,n.byteOffset+j,w),lA=new Uint8Array(n.buffer,n.byteOffset+Y,R),bA=new Uint8Array(n.buffer,n.byteOffset+IA,k),LA=new Uint8Array(n.buffer,n.byteOffset+W,G);return e.globalData={endpointCount:Q,selectorCount:m,imageDescs:J,endpointsData:TA,selectorsData:lA,tablesData:bA,extendedData:LA},e}let te,P,Ee;const ae={env:{emscripten_notify_memory_growth:function(n){Ee=new Uint8Array(P.exports.memory.buffer)}}};class Cn{init(){return te||(te=typeof fetch<"u"?fetch("data:application/wasm;base64,"+Xe).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,ae)).then(this._init):WebAssembly.instantiate(Buffer.from(Xe,"base64"),ae).then(this._init),te)}_init(A){P=A.instance,ae.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!P)throw new Error("ZSTDDecoder: Await .init() before decoding.");const a=A.byteLength,t=P.exports.malloc(a);Ee.set(A,t),e=e||Number(P.exports.ZSTD_findDecompressedSize(t,a));const s=P.exports.malloc(e),i=P.exports.ZSTD_decompress(s,e,t,a),r=Ee.slice(s,s+i);return P.exports.free(t),P.exports.free(s),r}}const Xe="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",En="display-p3",fn="display-p3-linear";({...HA.spaces[L]});const se=new WeakMap;let ne=0,ie;class U extends ue{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new cn,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc2"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc2"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new eA(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const e=A.loadAsync("basis_transcoder.js"),a=new eA(this.manager);a.setPath(this.transcoderPath),a.setResponseType("arraybuffer"),a.setWithCredentials(this.withCredentials);const t=a.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([e,t]).then(([s,i])=>{const r=U.BasisWorker.toString(),o=["/* constants */","let _EngineFormat = "+JSON.stringify(U.EngineFormat),"let _EngineType = "+JSON.stringify(U.EngineType),"let _TranscoderFormat = "+JSON.stringify(U.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(U.BasisFormat),"/* basis_transcoder.js */",s,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join(`
|
|
4
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([o])),this.transcoderBinary=i,this.workerPool.setWorkerCreator(()=>{const c=new Worker(this.workerSourceURL),g=this.transcoderBinary.slice(0);return c.postMessage({type:"init",config:this.workerConfig,transcoderBinary:g},[g]),c})}),ne>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),ne++}return this.transcoderPending}load(A,e,a,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const s=new eA(this.manager);s.setPath(this.path),s.setCrossOrigin(this.crossOrigin),s.setWithCredentials(this.withCredentials),s.setResponseType("arraybuffer"),s.load(A,i=>{this.parse(i,e,t)},a,t)}parse(A,e,a){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(se.has(A))return se.get(A).promise.then(e).catch(a);this._createTexture(A).then(t=>e?e(t):null).catch(a)}_createTextureFrom(A,e){const{type:a,error:t,data:{faces:s,width:i,height:r,format:o,type:c,dfdFlags:g}}=A;if(a==="error")return Promise.reject(t);let I;if(e.faceCount===6)I=new ns(s,o,c);else{const l=s[0].mipmaps;I=e.layerCount>1?new is(l,i,r,e.layerCount,o,c):new Dt(l,i,r,o,c)}return I.minFilter=s[0].mipmaps.length===1?sA:KA,I.magFilter=sA,I.generateMipmaps=!1,I.needsUpdate=!0,I.colorSpace=ha(e),I.premultiplyAlpha=!!(g&In),I}async _createTexture(A,e={}){const a=hn(new Uint8Array(A)),t=a.vkFormat===De&&a.dataFormatDescriptor[0].colorModel===167;if(!(a.vkFormat===dn||t&&!this.workerConfig.astcHDRSupported))return un(a);const i=e,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:i},[A])).then(o=>this._createTextureFrom(o.data,a));return se.set(A,{promise:r}),r}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),ne--}}U.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2};U.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25};U.EngineFormat={RGBAFormat:iA,RGBA_ASTC_4x4_Format:_A,RGB_BPTC_UNSIGNED_Format:hs,RGBA_BPTC_Format:be,RGBA_ETC2_EAC_Format:St,RGBA_PVRTC_4BPPV1_Format:le,RGBA_S3TC_DXT5_Format:ds,RGB_ETC1_Format:Bs,RGB_ETC2_Format:Rt,RGB_PVRTC_4BPPV1_Format:bs,RGBA_S3TC_DXT1_Format:Be};U.EngineType={UnsignedByteType:S,HalfFloatType:Z,FloatType:QA};U.BasisWorker=function(){let n,A,e;const a=_EngineFormat,t=_EngineType,s=_TranscoderFormat,i=_BasisFormat;self.addEventListener("message",function(d){const h=d.data;switch(h.type){case"init":n=h.config,r(h.transcoderBinary);break;case"transcode":A.then(()=>{try{const{faces:u,buffers:C,width:E,height:p,hasAlpha:B,format:f,type:Q,dfdFlags:m}=o(h.buffer);self.postMessage({type:"transcode",id:h.id,data:{faces:u,width:E,height:p,hasAlpha:B,format:f,type:Q,dfdFlags:m}},C)}catch(u){console.error(u),self.postMessage({type:"error",id:h.id,error:u.message})}});break}});function r(d){A=new Promise(h=>{e={wasmBinary:d,onRuntimeInitialized:h},BASIS(e)}).then(()=>{e.initializeBasis(),e.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")})}function o(d){const h=new e.KTX2File(new Uint8Array(d));function u(){h.close(),h.delete()}if(!h.isValid())throw u(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let C;if(h.isUASTC())C=i.UASTC;else if(h.isETC1S())C=i.ETC1S;else if(h.isHDR())C=i.UASTC_HDR;else throw new Error("THREE.KTX2Loader: Unknown Basis encoding");const E=h.getWidth(),p=h.getHeight(),B=h.getLayers()||1,f=h.getLevels(),Q=h.getFaces(),m=h.getHasAlpha(),w=h.getDFDFlags(),{transcoderFormat:R,engineFormat:k,engineType:G}=I(C,E,p,m);if(!E||!p||!f)throw u(),new Error("THREE.KTX2Loader: Invalid texture");if(!h.startTranscoding())throw u(),new Error("THREE.KTX2Loader: .startTranscoding failed");const J=[],j=[];for(let Y=0;Y<Q;Y++){const IA=[];for(let W=0;W<f;W++){const TA=[];let lA,bA;for(let F=0;F<B;F++){const x=h.getImageLevelInfo(W,F,Y);Y===0&&W===0&&F===0&&(x.origWidth%4!==0||x.origHeight%4!==0)&&console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),f>1?(lA=x.origWidth,bA=x.origHeight):(lA=x.width,bA=x.height);let N=new Uint8Array(h.getImageTranscodedSizeInBytes(W,F,0,R));const MA=h.transcodeImage(N,W,F,Y,R,0,-1,-1);if(G===t.HalfFloatType&&(N=new Uint16Array(N.buffer,N.byteOffset,N.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!MA)throw u(),new Error("THREE.KTX2Loader: .transcodeImage failed.");TA.push(N)}const LA=b(TA);IA.push({data:LA,width:lA,height:bA}),j.push(LA.buffer)}J.push({mipmaps:IA,width:E,height:p,format:k,type:G})}return u(),{faces:J,buffers:j,width:E,height:p,hasAlpha:m,dfdFlags:w,format:k,type:G}}const c=[{if:"astcSupported",basisFormat:[i.UASTC],transcoderFormat:[s.ASTC_4x4,s.ASTC_4x4],engineFormat:[a.RGBA_ASTC_4x4_Format,a.RGBA_ASTC_4x4_Format],engineType:[t.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.BC7_M5,s.BC7_M5],engineFormat:[a.RGBA_BPTC_Format,a.RGBA_BPTC_Format],engineType:[t.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.BC1,s.BC3],engineFormat:[a.RGBA_S3TC_DXT1_Format,a.RGBA_S3TC_DXT5_Format],engineType:[t.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.ETC1,s.ETC2],engineFormat:[a.RGB_ETC2_Format,a.RGBA_ETC2_EAC_Format],engineType:[t.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.ETC1],engineFormat:[a.RGB_ETC1_Format],engineType:[t.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.PVRTC1_4_RGB,s.PVRTC1_4_RGBA],engineFormat:[a.RGB_PVRTC_4BPPV1_Format,a.RGBA_PVRTC_4BPPV1_Format],engineType:[t.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[i.UASTC_HDR],transcoderFormat:[s.BC6H],engineFormat:[a.RGB_BPTC_UNSIGNED_Format],engineType:[t.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[i.ETC1S,i.UASTC],transcoderFormat:[s.RGBA32,s.RGBA32],engineFormat:[a.RGBAFormat,a.RGBAFormat],engineType:[t.UnsignedByteType,t.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[i.UASTC_HDR],transcoderFormat:[s.RGBA_HALF],engineFormat:[a.RGBAFormat],engineType:[t.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],g={[i.ETC1S]:c.filter(d=>d.basisFormat.includes(i.ETC1S)).sort((d,h)=>d.priorityUASTC-h.priorityUASTC),[i.UASTC]:c.filter(d=>d.basisFormat.includes(i.UASTC)).sort((d,h)=>d.priorityUASTC-h.priorityUASTC),[i.UASTC_HDR]:c.filter(d=>d.basisFormat.includes(i.UASTC_HDR)).sort((d,h)=>d.priorityHDR-h.priorityHDR)};function I(d,h,u,C){const E=g[d];for(let p=0;p<E.length;p++){const B=E[p];if(B.if&&!n[B.if]||!B.basisFormat.includes(d)||C&&B.transcoderFormat.length<2||B.needsPowerOfTwo&&!(l(h)&&l(u)))continue;const f=B.transcoderFormat[C?1:0],Q=B.engineFormat[C?1:0],m=B.engineType[0];return{transcoderFormat:f,engineFormat:Q,engineType:m}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}function l(d){return d<=2?!0:(d&d-1)===0&&d!==0}function b(d){if(d.length===1)return d[0];let h=0;for(let E=0;E<d.length;E++){const p=d[E];h+=p.byteLength}const u=new Uint8Array(h);let C=0;for(let E=0;E<d.length;E++){const p=d[E];u.set(p,C),C+=p.byteLength}return u}};const pn=new Set([iA,de,EA,CA]),oe={[Pt]:iA,[jt]:EA,[Ot]:CA,[qt]:iA,[vt]:EA,[Ht]:CA,[_t]:iA,[Nt]:iA,[Ut]:EA,[Mt]:EA,[Lt]:CA,[Tt]:CA,[Jt]:de,[Kt]:de,[ia]:St,[na]:Rt,[De]:_A,[ra]:_A,[oa]:_A,[da]:XA,[ga]:XA,[ca]:XA,[zt]:Be,[Vt]:Be,[Wt]:qe,[Yt]:qe,[Zt]:ve,[Xt]:ve,[Aa]:gs,[$t]:cs,[ta]:rs,[ea]:os,[sa]:be,[aa]:be,[Ba]:le,[la]:le,[ba]:He,[Ia]:He},nA={[Pt]:QA,[jt]:QA,[Ot]:QA,[qt]:Z,[vt]:Z,[Ht]:Z,[_t]:S,[Nt]:S,[Ut]:S,[Mt]:S,[Lt]:S,[Tt]:S,[Jt]:Ft,[Kt]:kt,[ia]:S,[na]:S,[De]:Z,[ra]:S,[oa]:S,[da]:Z,[ga]:S,[ca]:S,[zt]:S,[Vt]:S,[Wt]:S,[Yt]:S,[Zt]:S,[Xt]:S,[Aa]:S,[$t]:S,[ta]:S,[ea]:S,[sa]:S,[aa]:S,[Ba]:S,[la]:S,[ba]:S,[Ia]:S};async function un(n){const{vkFormat:A}=n;if(oe[A]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+A);nA[A]===void 0&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+A);let e;n.supercompressionScheme===We&&(ie||(ie=new Promise(async i=>{const r=new Cn;await r.init(),i(r)})),e=await ie);const a=[];for(let i=0;i<n.levels.length;i++){const r=Math.max(1,n.pixelWidth>>i),o=Math.max(1,n.pixelHeight>>i),c=n.pixelDepth?Math.max(1,n.pixelDepth>>i):0,g=n.levels[i];let I;if(n.supercompressionScheme===gn)I=g.levelData;else if(n.supercompressionScheme===We)I=e.decode(g.levelData,g.uncompressedByteLength);else throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");let l;nA[A]===QA?l=new Float32Array(I.buffer,I.byteOffset,I.byteLength/Float32Array.BYTES_PER_ELEMENT):nA[A]===Z?l=new Uint16Array(I.buffer,I.byteOffset,I.byteLength/Uint16Array.BYTES_PER_ELEMENT):nA[A]===Ft||nA[A]===kt?l=new Uint32Array(I.buffer,I.byteOffset,I.byteLength/Uint32Array.BYTES_PER_ELEMENT):l=I,a.push({data:l,width:r,height:o,depth:c})}const t=n.levelCount===0||a.length>1;let s;if(pn.has(oe[A]))s=n.pixelDepth===0?new Is(a[0].data,n.pixelWidth,n.pixelHeight):new ls(a[0].data,n.pixelWidth,n.pixelHeight,n.pixelDepth),s.minFilter=t?dt:vA,s.magFilter=vA,s.generateMipmaps=n.levelCount===0;else{if(n.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");s=new Dt(a,n.pixelWidth,n.pixelHeight),s.minFilter=t?KA:sA,s.magFilter=sA}return s.mipmaps=a,s.type=nA[A],s.format=oe[A],s.colorSpace=ha(n),s.needsUpdate=!0,Promise.resolve(s)}function ha(n){const A=n.dataFormatDescriptor[0];return A.colorPrimaries===bn?A.transferFunction===Ve?L:H:A.colorPrimaries===Bn?A.transferFunction===Ve?En:fn:A.colorPrimaries===ln?_e:(console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),_e)}let Qn="/";function Ca(n){return n.startsWith("/")||n.startsWith("http")||n.startsWith("data:")||n.startsWith("blob:")?n:Qn+n}const FA=new Cs;FA.setURLModifier(Ca);new Bt(FA);const Ea=new ys(FA);Ea.setDecoderPath("/jsm/libs/draco/gltf/");const fa=new U(FA);fa.setTranscoderPath("/jsm/libs/basis/");const xA=new Rs(FA);xA.setDRACOLoader(Ea);xA.setKTX2Loader(fa);xA.setMeshoptDecoder(ws);function mn(n){return Ca(n)}const UA=new Map;async function wn(n,A){let e=UA.get(n);!e&&A&&(e=Promise.resolve(A),UA.set(n,e)),e||(e=fetch(mn(n)).then(async a=>{if(!a.ok)throw new Error(`Failed to load Gaussian splat: ${n} (${a.status} ${a.statusText})`);return new Uint8Array(await a.arrayBuffer())}),UA.set(n,e));try{const[{SplatMesh:a},t]=await Promise.all([it(()=>import("./spark.module-CTTm62aa.js"),__vite__mapDeps([0,1,2])),e]),s=new a({fileBytes:t,fileName:n,raycastable:!0});await s.initialized,Oe(s,"gaussianSplat",{src:n,numSplats:s.numSplats});const i=s.getBoundingBox();if(!i.isEmpty()){const r=i.getSize(new y).multiplyScalar(1.5),o=i.getCenter(new y),c=new JA(new Es(r.x,r.y,r.z));c.name="__volter_splat_bounds",c.position.copy(o),c.visible=!1,c.raycast=()=>{},Oe(c,"engineInternal",!0),s.add(c)}return s}catch(a){throw UA.delete(n),a}}const yn=.45,Dn=.25,OA=new WeakMap;function YA(n,A){let e=OA.get(A);e||(e=Na(A),OA.set(A,e)),n.environment=e.texture,n.environmentIntensity=yn}function WA(n){const A=OA.get(n);A&&(OA.delete(n),A.dispose())}const Re=31,fi=30;function pa(n){return(n.layers.mask&1<<Re)!==0||!!qA(n,"editorHelper")||!!qA(n,"engineInternal")}function pi(n){let A=n;for(;A;){if(pa(A))return!0;A=A.parent}return!1}function ui(n){const A=qA(n,"volterComponentRoot");return typeof A=="string"&&A?A:void 0}function Rn(n){return qA(n,"volterBuiltInternal")===!0}const jA=1.2,ua=.001;function fe(n){const A=new y(Math.sin(n),0,Math.cos(n)),a=new y(0,1,0).clone().cross(A).normalize(),t=A.clone().cross(a).normalize();return{direction:A,right:a,up:t}}function Qa(){return{minRight:Number.POSITIVE_INFINITY,maxRight:Number.NEGATIVE_INFINITY,minUp:Number.POSITIVE_INFINITY,maxUp:Number.NEGATIVE_INFINITY,minDepth:Number.POSITIVE_INFINITY,maxDepth:Number.NEGATIVE_INFINITY}}function Se(n){return n.maxRight<n.minRight}function Sn(n){n.minRight=Number.POSITIVE_INFINITY,n.maxRight=Number.NEGATIVE_INFINITY,n.minUp=Number.POSITIVE_INFINITY,n.maxUp=Number.NEGATIVE_INFINITY,n.minDepth=Number.POSITIVE_INFINITY,n.maxDepth=Number.NEGATIVE_INFINITY}function ma(n,A,e){const a=A.dot(e.right),t=A.dot(e.up),s=A.dot(e.direction);a<n.minRight&&(n.minRight=a),a>n.maxRight&&(n.maxRight=a),t<n.minUp&&(n.minUp=t),t>n.maxUp&&(n.maxUp=t),s<n.minDepth&&(n.minDepth=s),s>n.maxDepth&&(n.maxDepth=s)}function kn(n,A){if(Se(n))throw new Error("Asset preview cannot frame an empty projected span.");return new y().addScaledVector(A.right,(n.minRight+n.maxRight)/2).addScaledVector(A.up,(n.minUp+n.maxUp)/2).addScaledVector(A.direction,(n.minDepth+n.maxDepth)/2)}function wa(n,A,e,a=jA){const t=Math.max(A,n/e,ua)*a;return{halfHeight:t,halfWidth:t*e}}function Fn(n,A,e=jA){if(Se(n))throw new Error("Asset preview cannot frame an empty projected span.");return wa((n.maxRight-n.minRight)/2,(n.maxUp-n.minUp)/2,A,e)}function xn(n){if(n.length===0)throw new Error("Asset preview cannot union an empty set of frames.");let A=0,e=0;for(const a of n)A=Math.max(A,a.halfWidth),e=Math.max(e,a.halfHeight);return{halfWidth:A,halfHeight:e}}function Gn(n,A,e,a,t,s){const i=Math.max(a*t,ua);let r=i,o=i;const c=new y;for(const g of n)c.copy(g).sub(A),r=Math.max(r,Math.abs(c.dot(e.right))+i),o=Math.max(o,Math.abs(c.dot(e.up))+i);return r=Math.max(r,o*s),o=Math.max(o,r/s),{halfWidth:r,halfHeight:o}}function Tn(n){if(n.length===0)throw new Error("Asset preview cannot centre a bone-zoom crop on zero anchors.");const A=new y;for(const e of n)A.add(e);return A.multiplyScalar(1/n.length)}function Ln(n,A){const e=n.position.dot(A.right),a=n.position.dot(A.up),t=n.position.dot(A.direction),s=n.zoom||1;return{minRight:e+n.left/s,maxRight:e+n.right/s,minUp:a+n.bottom/s,maxUp:a+n.top/s,minDepth:t-n.far,maxDepth:t-n.near}}function Mn(n,A){return Se(n)?!1:n.maxRight>=A.minRight&&n.minRight<=A.maxRight&&n.maxUp>=A.minUp&&n.minUp<=A.maxUp&&n.maxDepth>=A.minDepth&&n.minDepth<=A.maxDepth}function ke(n,A,e,a,t){const s=new mt(-e.halfWidth,e.halfWidth,e.halfHeight,-e.halfHeight,.01,t);return s.position.copy(n).addScaledVector(A.direction,a),s.up.copy(A.up),s.lookAt(n),s.updateProjectionMatrix(),s.updateMatrixWorld(!0),s}const mA=["front","right","top","perspective"],Ze=24;function ya(n){const A=n;return typeof A=="object"&&A!==null&&typeof A.bone=="string"&&A.bone.length>0&&(A.axis==="x"||A.axis==="y"||A.axis==="z")&&typeof A.radians=="number"&&Number.isFinite(A.radians)}function Da(n){const A=n;return typeof A=="object"&&A!==null&&typeof A.morph=="string"&&A.morph.length>0&&typeof A.influence=="number"&&Number.isFinite(A.influence)}function Ra(n){const A=n;return typeof A=="object"&&A!==null&&typeof A.bone=="string"&&A.bone.length>0&&(A.axis==="x"||A.axis==="y"||A.axis==="z")&&typeof A.meters=="number"&&Number.isFinite(A.meters)}function Un(n){return ya(n)||Da(n)||Ra(n)}function Nn(n,A){const e=n;if(typeof e!="object"||e===null||typeof e.label!="string"||!/^[a-z0-9][a-z0-9-]*$/i.test(e.label)||e.pose!==void 0&&(typeof e.pose!="string"||!A.has(e.pose)))return!1;if(e.view==="turntable")return typeof e.yaw=="number"&&Number.isFinite(e.yaw);if(e.view==="bone-zoom"){const a=e;return a.yaw!==void 0&&(typeof a.yaw!="number"||!Number.isFinite(a.yaw))?!1:Array.isArray(a.bones)&&a.bones.length>0&&a.bones.every(t=>typeof t=="string"&&t.length>0)&&typeof a.spanFraction=="number"&&Number.isFinite(a.spanFraction)&&a.spanFraction>0&&a.spanFraction<=2}return!1}function Qi(n){const A=o=>{throw new Error(`Asset preview shot-set definition is invalid: ${o}`)},e=n;(typeof e!="object"||e===null)&&A("expected an object.");const a=e;(typeof a.name!="string"||!/^[a-z0-9][a-z0-9-]*$/i.test(a.name))&&A("`name` must be a short alphanumeric/dash identifier."),a.requiredBones!==void 0&&(!Array.isArray(a.requiredBones)||a.requiredBones.some(o=>typeof o!="string"||o.length===0))&&A("`requiredBones` must be an array of non-empty bone names."),a.rigRequirementHint!==void 0&&typeof a.rigRequirementHint!="string"&&A("`rigRequirementHint` must be a string.");const t=a.poses??{};(typeof t!="object"||t===null||Array.isArray(t))&&A("`poses` must be an object of named pose-step lists.");for(const[o,c]of Object.entries(t))(!Array.isArray(c)||!c.every(Un))&&A(`pose ${JSON.stringify(o)} must be an array of {bone, axis, radians} and/or {morph, influence}.`);const s=new Set(Object.keys(t));(!Array.isArray(a.shots)||a.shots.length===0||a.shots.length>Ze)&&A(`\`shots\` must list 1-${Ze} shots.`);const i=a.shots,r=new Set;for(const o of i){Nn(o,s)||A('every shot needs a label plus either {view:"turntable", yaw} or {view:"bone-zoom", bones, spanFraction, yaw?}, with every `yaw` a finite number of radians and `pose` naming a declared pose.');const{label:c}=o;r.has(c)&&A(`duplicate shot label ${JSON.stringify(c)}.`),r.add(c)}return a}const _n=512,$e=64,At=1024,cA=2106410,Hn=25e3,AA=64*1024*1024;function q(n){const A=n??_n;if(!Number.isInteger(A)||A<$e||A>At)throw new Error(`Asset preview dimensions must be integers from ${$e} to ${At}.`);return A}function _(n){const A=n.toDataURL("image/png"),e=A.indexOf(",");return e>=0?A.slice(e+1):A}function mi(n){const A=new Set;n.traverse(a=>A.add(a));let e=n;return n.traverse(a=>{const t=a;if(!(!t.isSkinnedMesh||!t.skeleton))for(const s of t.skeleton.bones){if(!s||A.has(s))continue;const i=new Set;for(let o=e;o;o=o.parent)i.add(o);let r=null;for(let o=s;o;o=o.parent)if(i.has(o)){r=o;break}r&&r!==e&&(e=r,e.traverse(o=>A.add(o)))}}),e}function wA(n){const A=new Set;n.traverse(i=>{A.add(i)});const e=qn(n,A),a=On(n,e),t=vn(n);a.matrix.copy(t),a.matrix.decompose(a.position,a.quaternion,a.scale),a.matrixAutoUpdate=!1,a.matrixWorld.copy(t),a.matrixWorldAutoUpdate=n.matrixWorldAutoUpdate,a.visible=!0;const s=[];a.traverse(i=>{i!==a&&i.userData.editorHelper&&s.push(i)});for(const i of s)i.parent?.remove(i);return a}function vn(n){const A=[];let e=n;for(;e;)A.push(e),e=e.parent;const a=A.findIndex(r=>!r.matrixWorldAutoUpdate),t=a>=0?A[a].matrixWorld.clone():new aA,s=new aA,i=a>=0?a-1:A.length-1;for(let r=i;r>=0;r--){const o=A[r];o.matrixAutoUpdate?s.compose(o.position,o.quaternion,o.scale):s.copy(o.matrix),t.multiply(s)}return t}function qn(n,A){const e=new Map,a=new Map;let t=null;const s=()=>{if(t)return t;const i=new Map;for(const r of A){const o=r;if(!o.isBone||o.name==="")continue;const c=i.get(o.name);c?c.push(o):i.set(o.name,[o])}return t=i,i};if(n.traverse(i=>{const r=i;if(!r.isSkinnedMesh)return;const o=r.name||r.uuid;for(const c of r.skeleton.bones){if(c&&A.has(c)||c&&e.has(c))continue;const g=c?s().get(c.name)??[]:[];if(g.length===1){e.set(c,g[0]);continue}const I=c?.name||"(unnamed bone)";a.set(`${o} -> ${I}`,{mesh:o,bone:I,sameNamed:g.length})}}),a.size>0){const i=[...a.values()].map(({mesh:r,bone:o,sameNamed:c})=>c>1?`${r} -> ${o} (${c} bones inside the selection share that name — which one is meant is ambiguous)`:`${r} -> ${o} (no bone of that name inside the selection)`).join("; ");throw new Error(`Asset preview selection references bones outside its hierarchy that it cannot bind to: ${i}. Select the complete skeleton root — the node that owns both the skinned mesh and its bones.`)}return e}function On(n,A=new Map){const e=new Map,a=[],t=i=>{const r=jn(i);e.set(i,r),Pn(i,r),i.isSkinnedMesh&&a.push([i,r]);const o=i;if(o.isLOD){const c=r,g=o.levels.filter(b=>b.object.visible),I=g.length===1?g[0]:o.levels[0];c.autoUpdate=!1;const l=new Set(o.levels.map(b=>b.object));for(const b of o.levels){if(re(b.object))continue;const d=t(b.object);d.visible=o.autoUpdate?b===I:b.object.visible,c.addLevel(d,b.distance,b.hysteresis)}for(const b of i.children)!l.has(b)&&!re(b)&&r.add(t(b))}else for(const c of i.children)re(c)||r.add(t(c));return r},s=t(n);for(const[i,r]of a){const o=i.skeleton.clone();o.bones=i.skeleton.bones.map(c=>{const g=e.get(A.get(c)??c);if(!g?.isBone)throw new Error(`Asset preview could not map skeleton bone: ${c.name||c.uuid}`);return g}),r.skeleton=o,r.bindMode=i.bindMode,r.bindMatrix.copy(i.bindMatrix),r.bindMatrixInverse.copy(i.bindMatrixInverse)}return s}function jn(n){const A=n;if(A.isSkinnedMesh)return new Ct(A.geometry,A.material);const e=n;if(e.isInstancedMesh){const r=new lt(e.geometry,e.material,e.count);return r.instanceMatrix.copy(e.instanceMatrix),r.instanceColor=e.instanceColor?e.instanceColor.clone():null,r.morphTexture=e.morphTexture,r}const a=n;if(a.isMesh)return new JA(a.geometry,a.material);const t=n;if(n.isLineSegments)return new Et(t.geometry,t.material);if(n.isLineLoop)return new pt(t.geometry,t.material);if(t.isLine)return new ft(t.geometry,t.material);const s=n;if(s.isPoints)return new ut(s.geometry,s.material);const i=n;return i.isSprite?new fs(i.material):n.isLOD?new ps:n.isBone?new wt:n.isGroup?new uA:new Qe}function Pn(n,A){A.name=n.name,A.up.copy(n.up),A.position.copy(n.position),A.quaternion.copy(n.quaternion),A.scale.copy(n.scale),A.matrix.copy(n.matrix),A.matrixWorld.copy(n.matrixWorld),A.matrixAutoUpdate=n.matrixAutoUpdate,A.matrixWorldAutoUpdate=n.matrixWorldAutoUpdate,A.visible=n.visible,A.castShadow=n.castShadow,A.receiveShadow=n.receiveShadow,A.frustumCulled=!1,A.renderOrder=n.renderOrder,A.layers.set(0),A.animations=[...n.animations];const e=n,a=A;e.morphTargetInfluences&&(e.morphTargetDictionary&&(a.morphTargetDictionary={...e.morphTargetDictionary}),a.morphTargetInfluences=[...e.morphTargetInfluences]);const t=n;t.isSprite&&A.center.copy(t.center)}function re(n){const A=1<<Re;return!!(n.userData.editorHelper||n.userData.editorIcon||(n.layers.mask&A)!==0)}function GA(n){const A=new Set;n.traverse(e=>{const a=e;a.isSkinnedMesh&&A.add(a.skeleton);const t=e;if(t.isInstancedMesh){const s=t.morphTexture;t.morphTexture=null,t.dispose(),t.morphTexture=s}});for(const e of A)e.dispose()}function wi(n){const A=n();let e;try{e=wA(A.root),e.animations=[...A.animations??A.root.animations]}catch(t){try{A.dispose()}catch(s){throw new AggregateError([t,s],"Object3D preview snapshot creation and source cleanup both failed.")}throw t}let a=!1;return{root:e,dispose(){if(a)return;a=!0;const t=[];try{GA(e)}catch(s){t.push(s)}try{A.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Object3D preview snapshot cleanup failed.")}}}function z(n,A="front"){Fe(n);const e=Kn(n,A);if(e.isEmpty())throw new Error("Asset preview source has no renderable bounds.");const a=e.getCenter(new y),t=e.getSize(new y);return{center:a,size:t,radius:Math.max(t.length()/2,.001)}}function Fe(n){n.parent?.updateWorldMatrix(!0,!1),n.updateMatrixWorld(!0)}function Kn(n,A){const e=new me;return xe(n,VA(A),A==="perspective",a=>e.expandByPoint(a)),e}function Jn(n,A){const e=A.map(()=>Qa());return A.length===0||(Fe(n),xe(n,A[0],!1,a=>{for(let t=0;t<A.length;t++)ma(e[t],a,A[t])})),e}function Yn(n,A){const e=A.map(()=>0);let a=0;if(A.length===0)return{framed:e,total:a};Fe(n);const t=A.map(()=>Qa());let s=-1;const i=()=>{if(!(s<0)){a++;for(let r=0;r<A.length;r++)Mn(t[r],A[r].window)&&e[r]++,Sn(t[r])}};return xe(n,A[0].basis,!1,(r,o)=>{o!==s&&(i(),s=o);for(let c=0;c<A.length;c++)ma(t[c],r,A[c].basis)}),i(),{framed:e,total:a}}function xe(n,A,e,a){const t=new me,s=new y,i=new y,r=new aA;let o=0;const c=g=>{if(!g.visible||g!==n&&Rn(g))return;if(kA(g,"gaussianSplat")){t.copy(g.getBoundingBox()).applyMatrix4(g.matrixWorld);const d=o++;for(const h of[t.min.x,t.max.x])for(const u of[t.min.y,t.max.y])for(const C of[t.min.z,t.max.z])a(s.set(h,u,C),d)}const I=g;if(I.isLOD&&I.levels.length>0){const d=new Set(I.levels.map(h=>h.object));for(const h of I.levels)c(h.object);for(const h of g.children)d.has(h)||c(h);return}const l=g;if(l.isSprite&&l.material.visible){if(e&&!l.material.sizeAttenuation)throw new Error("Asset preview cannot deterministically frame a perspective Sprite with sizeAttenuation disabled.");const d=new y().setFromMatrixPosition(l.matrixWorld),h=new y().setFromMatrixScale(l.matrixWorld),u=Math.cos(l.material.rotation),C=Math.sin(l.material.rotation),E=o++;for(const p of[-l.center.x,1-l.center.x])for(const B of[-l.center.y,1-l.center.y]){const f=p*Math.abs(h.x),Q=B*Math.abs(h.y),m=u*f-C*Q,w=C*f+u*Q;a(d.clone().addScaledVector(A.right,m).addScaledVector(A.up,w),E)}}const b=l.isSprite?void 0:g.geometry;if(b){const d=b.getAttribute("position");if(d){const h=Wn(g,b,d.count),u=Vn(g,h.length),C=Math.ceil(h.length/u),E=g;if(E.isInstancedMesh){const p=new JA(E.geometry,E.material);for(let B=0;B<E.count;B++)E.getMatrixAt(B,r),E.morphTexture&&E.getMorphAt(B,p),h.forEach((f,Q)=>{p.getVertexPosition(f,i),i.applyMatrix4(r).applyMatrix4(E.matrixWorld),a(i,o+Math.floor(Q/u))}),o+=C}else{const p=g;h.forEach((B,f)=>{p.isMesh?p.getVertexPosition(B,i):Xn(g,b,B,i),i.applyMatrix4(g.matrixWorld),a(i,o+Math.floor(f/u))}),o+=C}}}for(const d of g.children)c(d)};c(n)}function Wn(n,A,e){const a=n.material;if(!a)return[];const t=A.index?.count??e,s=Math.max(0,A.drawRange.start),i=Math.min(t,Number.isFinite(A.drawRange.count)?s+A.drawRange.count:t),r=[];if(Array.isArray(a))for(const c of A.groups){const g=c.materialIndex??0;if(!a[g]?.visible)continue;const I=Math.max(s,c.start),l=Math.min(i,c.start+c.count);l>I&&r.push([I,l])}else a.visible&&i>s&&r.push([s,i]);const o=[];for(const[c,g]of r){const I=zn(n,g-c);for(let l=c;l<c+I;l++)o.push(A.index?A.index.getX(l):l)}return o}function Vn(n,A){return n.isMesh?3:n.isLineSegments?2:n.isLine?Math.max(A,1):1}function zn(n,A){return n.isMesh?A-A%3:n.isLineSegments?A-A%2:n.isLine?A>=2?A:0:A}function Xn(n,A,e,a){const t=A.getAttribute("position");a.fromBufferAttribute(t,e);const s=A.morphAttributes.position,i=n.morphTargetInfluences;if(!s||!i)return a;const r=a.clone(),o=new y,c=new y;for(let g=0;g<s.length;g++){const I=i[g]??0;I!==0&&(c.fromBufferAttribute(s[g],e),A.morphTargetsRelative||c.sub(r),o.addScaledVector(c,I))}return a.add(o)}function Zn(n,A,e){const{center:a,size:t,radius:s}=A;let i=t.x,r=t.y;const o=VA(n),{direction:c,up:g}=o;n==="right"?i=t.z:n==="top"&&(i=t.x,r=t.z);const I=wa(i/2,r/2,e);return ke(a,{direction:c,right:o.right,up:g},I,s*3+1,s*10+10)}function PA(n,A,e,a){const t=new Qt(35,A,.01,n.radius*20+20),s=rA.degToRad(t.fov/2),i=Math.atan(Math.tan(s)*A),r=VA("perspective"),o=e?.clone().normalize()??r.direction,c=Math.abs(o.y)>.999?new y(0,0,1):new y(0,1,0),g=e?c.clone().cross(o).normalize():r.right,I=e?o.clone().cross(g).normalize():r.up,l=n.size.clone().multiplyScalar(.5);let b=0;for(const d of[-1,1])for(const h of[-1,1])for(const u of[-1,1]){const C=new y(d*l.x,h*l.y,u*l.z),E=C.dot(o);b=Math.max(b,E+Math.abs(C.dot(g))*jA/Math.tan(i),E+Math.abs(C.dot(I))*jA/Math.tan(s))}return t.position.copy(n.center).addScaledVector(o,Math.max(a??b,.01)),t.lookAt(n.center),t.updateProjectionMatrix(),t.updateMatrixWorld(!0),t}function VA(n){const A=n==="front"?new y(0,0,1):n==="right"?new y(1,0,0):n==="top"?new y(0,1,0):new y(1,.72,1).normalize(),a=(n==="top"?new y(0,0,-1):new y(0,1,0)).clone().cross(A).normalize(),t=A.clone().cross(a).normalize();return{direction:A,right:a,up:t}}function Ge(n,A,e){return n==="perspective"?PA(A,e):Zn(n,A,e)}function et(n,A,e){return PA(n,A,e)}function Sa(n,A,e,a){const t=e.map(fe),s=Jn(n,t),i=xn(s.map(o=>Fn(o,a))),r=new Map;return e.forEach((o,c)=>{r.set(o,ke(kn(s[c],t[c]),t[c],i,A.radius*3+1,A.radius*10+10))}),r}function $n(n,A,e={}){const a=q(e.width),t=q(e.height),s=e.background??"neutral",i=wA(n);let r=null;try{const o=z(i,"perspective"),c=yA(i,o),g=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));r=g,g.setPixelRatio(1),g.outputColorSpace=L,g.toneMapping=RA,g.toneMappingExposure=1,g.setClearColor(cA,s==="transparent"?0:1),g.setSize(a,t,!1),YA(c,g);const I=Math.atan2(A[0],A[2]),l=a/t,b=Q=>new y(Math.sin(Q),.72,Math.cos(Q)).normalize(),d=[I,I+Math.PI,I-Math.PI/2,I+Math.PI/2],h=Sa(i,o,d,l),u=[{label:"front",camera:h.get(d[0])},{label:"back",camera:h.get(d[1])},{label:"left",camera:h.get(d[2])},{label:"right",camera:h.get(d[3])},{label:"quarter-left",camera:et(o,l,b(I-Math.PI/4))},{label:"quarter-right",camera:et(o,l,b(I+Math.PI/4))}],C=[],E=2,p=3,B=document.createElement("canvas");B.width=a*E,B.height=t*p;const f=B.getContext("2d");if(!f)throw new Error("Unable to create the source-review contact sheet.");return u.forEach(({label:Q,camera:m},w)=>{g.render(c,m),C.push({label:Q,base64:_(g.domElement),mimeType:"image/png"});const R=w%E*a,k=Math.floor(w/E)*t;f.drawImage(g.domElement,R,k,a,t);const G=Q==="quarter-left"?"3/4-L":Q==="quarter-right"?"3/4-R":Q.toUpperCase();tA(f,G,R,k,a,t)}),{width:a,height:t,shots:C,contactSheet:{width:a*E,height:t*p,base64:_(B),mimeType:"image/png"}}}finally{r&&WA(r),r?.dispose(),r?.forceContextLoss(),GA(i)}}function Ai(n,A,e,a,t){const s=Tn(n),i=Gn(n,s,A,e,a,t),r=e*3+1;return ke(s,A,i,r,r+e*4+1)}function tt(n,A){const e=new Map;n.traverse(i=>{const r=i;r.isBone&&i.name&&e.set(i.name,r)});const a=A.requiredBones??[],t=a.filter(i=>!e.has(i)),s=A.rigRequirementHint?` (${A.rigRequirementHint})`:"";if(a.length>0&&e.size===0)throw new Error(`Asset preview '--shots ${A.name}' requires a rigged GLB${s}, but this model has no skeleton at all. Required joints: ${a.join(", ")}.`);if(t.length>0)throw new Error(`Asset preview '--shots ${A.name}' requires joints this GLB's skeleton does not have${s}. Missing joint(s): ${t.join(", ")}.`);return e}function ei(n,A,e){const a=e.filter(Da);for(const t of e)if(ya(t)){const s=A.get(t.bone);if(!s)continue;t.axis==="x"?s.rotateX(t.radians):t.axis==="y"?s.rotateY(t.radians):s.rotateZ(t.radians)}else if(Ra(t)){const s=A.get(t.bone);if(!s)continue;t.axis==="x"?s.translateX(t.meters):t.axis==="y"?s.translateY(t.meters):s.translateZ(t.meters)}a.length!==0&&n.traverse(t=>{const s=t,i=s.morphTargetDictionary,r=s.morphTargetInfluences;if(!(!i||!r))for(const{morph:o,influence:c}of a){const g=i[o];g!==void 0&&(r[g]=c)}})}function ka(n){let A=null;return n.traverse(e=>{A||(A=Ua(e.userData.forward))}),A??[0,0,1]}function pe(n,A){const e=new uA;return e.rotation.y=ot(A),e.add(n),e.updateMatrixWorld(!0),e}function yA(n,A){const e=new Qs;e.add(n),e.add(new ms(16777215,3489874,1.8*Dn));const a=new NA(16777215,2.2);a.position.copy(A.center).addScaledVector(new y(1,1.5,1),A.radius*3),e.add(a);const t=new NA(12572671,.8);t.position.copy(A.center).addScaledVector(new y(-1,.5,-.7),A.radius*2),e.add(t);const s=new NA(16773596,.45);return s.position.copy(A.center).addScaledVector(new y(.3,-1,.4),A.radius*2),e.add(s),e}let $=null;function at(){const n=$;$=null,n&&(WA(n),n.dispose(),n.forceContextLoss())}function ti(){if($?.getContext().isContextLost()&&at(),!$){const n=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));$=n,n.domElement.addEventListener("webglcontextlost",()=>{$===n&&at()})}return $}function Fa(n,A={}){let e=!1;if(n.traverse(r=>{kA(r,"gaussianSplat")&&(e=!0)}),e)throw new Error("Gaussian-splat capture requires the async project-asset capture path so Spark can sort each view.");const a=q(A.width),t=q(A.height),s=A.background??"neutral",i=wA(n);try{const r=ka(n);A.pose&&si(i,A.pose);const o=pe(i,r),c=Te(r),g=z(o,"perspective"),I=yA(o,g),l=ti();if(l.setPixelRatio(1),l.outputColorSpace=L,l.toneMapping=RA,l.toneMappingExposure=1,l.setClearColor(cA,s==="transparent"?0:1),YA(I,l),A.camera)return ni(l,I,PA(g,a/t,st(A.camera),A.camera.distance),a,t,A.camera,c);const b=new Map;for(const h of mA)b.set(h,Ge(h,z(o,h),a/t));const d=PA(g,a/t,st({azimuthDegrees:30,elevationDegrees:-60}));return Ga(l,I,b,a,t,c,d)}finally{GA(i)}}function ai(n,A,e){const a=xa(A,e.yawDegrees);if(!a)return n;const t=document.createElement("canvas");t.width=n.width,t.height=n.height;const s=t.getContext("2d");if(!s)return n;s.drawImage(n,0,0);const i=rt(a.text,n.width,n.height),r=a.edge==="left"?0:n.width-i.width;return tA(s,a.text,r,n.height-i.height,n.width,n.height),t}function Te(n){const A=ot(n);return{forward:[n[0],n[1],n[2]],yawDegrees:Math.round(rA.radToDeg(A))}}function si(n,A){if(!Number.isFinite(A.timeSeconds)||A.timeSeconds<0)throw new Error(`Asset preview pose time must be a finite number of seconds >= 0, got ${A.timeSeconds}.`);const e=n.animations??[],a=e.find(s=>s.name===A.clip);if(!a){const s=e.map(i=>`'${i.name}'`).join(", ");throw new Error(`Asset preview pose clip '${A.clip}' not found on the subject. `+(s?`Its clips are: ${s}.`:"The subject carries no animation clips at all — clips live on the model root (GLB animations, or a builder module’s `root.animations`)."))}const t=new us(n);t.clipAction(a).play(),t.update(A.timeSeconds),n.updateMatrixWorld(!0)}function st(n){const A=rA.degToRad(n.azimuthDegrees),e=rA.degToRad(n.elevationDegrees);return new y(Math.sin(A)*Math.cos(e),Math.sin(e),Math.cos(A)*Math.cos(e)).normalize()}function ni(n,A,e,a,t,s,i){n.setSize(a,t,!1),n.render(A,e);const r={view:"perspective",base64:_(n.domElement),mimeType:"image/png"},o=document.createElement("canvas");o.width=a,o.height=t;const c=o.getContext("2d");if(!c)throw new Error("Unable to create the asset preview contact sheet.");c.drawImage(n.domElement,0,0,a,t);const g=`AZ ${Math.round(s.azimuthDegrees)} EL ${Math.round(s.elevationDegrees)}`+(s.distance===void 0?"":` D ${Math.round(s.distance)}`);return tA(c,g,0,0,a,t),{width:a,height:t,orientation:i,views:[r],contactSheet:{width:a,height:t,base64:_(o),mimeType:"image/png"}}}function xa(n,A){if(n==="perspective")return null;const e=rA.degToRad(A),a=VA(n).right.applyAxisAngle(new y(0,1,0),-e),t=[["X",new y(1,0,0)],["Y",new y(0,1,0)],["Z",new y(0,0,1)]];for(const[s,i]of t){const r=a.dot(i);if(r>.99)return{text:`+${s}>`,edge:"right"};if(r<-.99)return{text:`<+${s}`,edge:"left"}}return{text:`YAW ${A}`,edge:"left"}}function Ga(n,A,e,a,t,s,i){const r=[],o=i?[...mA,"below"]:[...mA],c=i?3:2,g=a*c,I=t*2,l=document.createElement("canvas");l.width=g,l.height=I;const b=l.getContext("2d");if(!b)throw new Error("Unable to create the asset preview contact sheet.");n.getClearAlpha()>0&&(b.fillStyle=`#${new K(cA).getHexString()}`,b.fillRect(0,0,g,I)),n.setSize(a,t,!1),o.forEach((h,u)=>{const C=h==="below"?i:e.get(h);if(!C)return;n.render(A,C),r.push({view:h,base64:_(h==="below"?n.domElement:ai(n.domElement,h,s)),mimeType:"image/png"});const E=u%c,p=Math.floor(u/c),B=E*a,f=p*t;b.drawImage(n.domElement,B,f,a,t);const Q=h==="perspective"?"3/4":h.toUpperCase();if(tA(b,Q,B,f,a,t),h==="below")return;const m=xa(h,s.yawDegrees);if(m){const w=rt(m.text,a,t),R=m.edge==="left"?B:B+a-w.width;tA(b,m.text,R,f+t-w.height,a,t)}});const d={width:g,height:I,base64:_(l),mimeType:"image/png"};return{width:a,height:t,orientation:s,views:r,contactSheet:d}}function yi(n,A,e={}){let a=!1;if(n.traverse(c=>{kA(c,"gaussianSplat")&&(a=!0)}),a)throw new Error("Gaussian-splat capture requires the async project-asset capture path so Spark can sort each view.");const t=q(e.width),s=q(e.height),i=e.background??"neutral",r=[];let o=null;try{A.traverse(I=>{I.visible&&pa(I)&&(I.visible=!1,r.push(I))});const c=new Map;for(const I of mA){const l=Ge(I,z(n,I),t/s);l.layers.enableAll(),l.layers.disable(Re),c.set(I,l)}const g=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));return o=g,g.setPixelRatio(1),g.outputColorSpace=L,g.toneMapping=RA,g.toneMappingExposure=1,g.setClearColor(cA,i==="transparent"?0:1),Ga(g,A,c,t,s,Te([0,0,1]))}finally{for(const c of r)c.visible=!0;o?.dispose(),o?.forceContextLoss()}}function ii(n,A,e){const a=n.pose===void 0?"":` under pose '${n.pose}'`,t=n.view==="bone-zoom"?`bone-zoom on ${n.bones.join(", ")} at yaw ${(n.yaw??0).toFixed(3)}`:`turntable at yaw ${n.yaw.toFixed(3)}`,s=n.view==="bone-zoom"?"Zoom anchors are read from the REST skeleton for every shot, so a pose that MOVES the anchor leaves the crop behind where the joint used to be: re-aim the shot (another joint or yaw), widen its spanFraction, or drop it.":"Check the shot yaw and the pose it renders under.";return{label:n.label,reason:"empty-frame",...n.view==="bone-zoom"?{bones:[...n.bones]}:{},...n.pose===void 0?{}:{pose:n.pose},message:`Asset preview '--shots ${A}' shot ${JSON.stringify(n.label)} (${t}${a}) framed NONE of the subject's ${e} rendered faces: the image is background only and proves nothing about the asset. ${s}`}}function oi(n,A,e){const a=[],t=()=>{for(const s of a)GA(s);a.length=0};try{const s=wA(n);a.push(s);const i=tt(s,A),r=ka(n),o=pe(s,r),c=z(o,"perspective"),g=yA(o,c),I={subject:o,scene:g,framing:c},l=new Map;for(const B of A.shots){if(B.pose===void 0||l.has(B.pose))continue;const f=A.poses?.[B.pose]??[],Q=wA(n);a.push(Q);const m=tt(Q,A);ei(Q,m,f),Q.updateMatrixWorld(!0);const w=pe(Q,r),R=z(w,"perspective");l.set(B.pose,{subject:w,scene:yA(w,R),framing:R})}const b=B=>B===void 0?I:l.get(B),d=B=>new y().setFromMatrixPosition(i.get(B).matrixWorld),h=new Map;for(const B of new Set(A.shots.filter(f=>f.view==="turntable").map(f=>f.pose??void 0))){const f=b(B),Q=[...new Set(A.shots.filter(m=>m.view==="turntable"&&(m.pose??void 0)===B).map(m=>m.yaw))];h.set(B,Sa(f.subject,f.framing,Q,e))}const u=A.shots.map(B=>{const f=b(B.pose);if(B.view==="turntable")return{label:B.label,camera:h.get(B.pose??void 0).get(B.yaw),scene:f.scene,stage:f,basis:fe(B.yaw)};const Q=B.bones.find(w=>!i.has(w));if(Q!==void 0)throw new Error(`Asset preview '--shots ${A.name}' shot ${JSON.stringify(B.label)} zooms on a joint this GLB's skeleton does not have: ${Q}. List it in the definition's requiredBones or fix the rig.`);const m=fe(B.yaw??0);return{label:B.label,camera:Ai(B.bones.map(d),m,c.radius,B.spanFraction,e),scene:f.scene,stage:f,basis:m}}),C=[],E=new Map,p=new Map;u.forEach(({stage:B},f)=>{const Q=p.get(B);Q?Q.push(f):p.set(B,[f])});for(const[B,f]of p){const{framed:Q,total:m}=Yn(B.subject,f.map(w=>{const R=u[w];return{basis:R.basis,window:Ln(R.camera,R.basis)}}));f.forEach((w,R)=>{if(Q[R]!==0)return;const k=ii(A.shots[w],A.name,m);E.set(w,k),C.push(k)})}return{shots:u.map(({label:B,camera:f,scene:Q},m)=>{const w=E.get(m);return{label:B,camera:f,scene:Q,...w?{warning:w}:{}}}),warnings:C,dispose:t}}catch(s){throw t(),s}}function Ta(n,A,e={}){const a=q(e.width),t=q(e.height),s=e.background??"neutral",i=oi(n,A,a/t);let r=null;try{const o=DA(new SA({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}));r=o,o.setPixelRatio(1),o.outputColorSpace=L,o.toneMapping=RA,o.toneMappingExposure=1,o.setClearColor(cA,s==="transparent"?0:1),o.setSize(a,t,!1);for(const C of i.shots)YA(C.scene,o);const c=[],g=2,I=Math.ceil(i.shots.length/g),l=a*g,b=t*I,d=document.createElement("canvas");d.width=l,d.height=b;const h=d.getContext("2d");if(!h)throw new Error("Unable to create the asset preview contact sheet.");i.shots.forEach(({label:C,camera:E,scene:p,warning:B},f)=>{o.render(p,E),c.push({label:C,base64:_(o.domElement),mimeType:"image/png"});const Q=f%g,m=Math.floor(f/g),w=Q*a,R=m*t;h.drawImage(o.domElement,w,R,a,t),tA(h,B?`${C.toUpperCase()} - EMPTY`:C.toUpperCase(),w,R,a,t,B?"warning":"normal")});const u={width:l,height:b,base64:_(d),mimeType:"image/png"};return{width:a,height:t,shots:c,warnings:i.warnings,contactSheet:u}}finally{r&&WA(r),r?.dispose(),r?.forceContextLoss(),i.dispose()}}function ri(n){const A=n.replace(/^\/?public(\/|$)/,"/");if(!A.startsWith("/")||A.startsWith("//")||A.includes("\\")||A.includes("?")||A.includes("#"))throw new Error("Model asset paths must be the served web path (project-root absolute, with public/ stripped): e.g. /models/generated/hero.glb");let e;try{e=decodeURIComponent(A)}catch{throw new Error("Asset Editor model path contains invalid URL encoding.")}if(e.split("/").some(s=>s==="."||s===".."))throw new Error("Asset Editor model paths cannot traverse outside the project root.");const a=globalThis.location?.origin??"http://localhost",t=new URL(A,a);if(t.origin!==a||!t.pathname.toLowerCase().match(/\.(?:glb|gltf|spz)$/))throw new Error("Asset Editor loads bounded, same-origin project .glb, .gltf, or .spz files only.");return t}async function La(n,A,e=AA){const a=await fetch(n,{signal:A});if(!a.ok)throw new Error(`Unable to load project model (${a.status} ${a.statusText}).`);const t=Number(a.headers.get("content-length"));if(Number.isFinite(t)&&t>e)throw new Error(`Asset Editor project models must be ${AA/1024/1024} MiB or less.`);if(!a.body){const g=await a.arrayBuffer();if(g.byteLength>e)throw new Error(`Asset Editor project models must be ${AA/1024/1024} MiB or less.`);return g}const s=a.body.getReader(),i=[];let r=0;try{for(;;){const{done:g,value:I}=await s.read();if(g)break;if(r+=I.byteLength,r>e)throw await s.cancel(),new Error(`Asset Editor project models must be ${AA/1024/1024} MiB or less.`);i.push(I)}}finally{s.releaseLock()}const o=new Uint8Array(r);let c=0;for(const g of i)o.set(g,c),c+=g.byteLength;return o.buffer}function nt(n,A,e){return new Promise((a,t)=>{let s=!1;const i=o=>s?!1:(s=!0,e.removeEventListener("abort",r),o(),!0),r=()=>i(()=>t(e.reason));if(e.addEventListener("abort",r,{once:!0}),e.aborted){r();return}xA.parse(n,new URL(".",A).href,o=>{o.scene.animations=[...o.animations],i(()=>a(o.scene))||gA(o.scene)},o=>i(()=>t(o)))})}function ci(n,A){if(n.includes("\\")||n.includes("?")||n.includes("#"))throw new Error("Asset Editor .gltf dependencies must be plain same-origin project paths.");const e=new URL(n,A);if(e.origin!==A.origin)throw new Error("Asset Editor .gltf dependencies must stay on the project origin.");return e}function gi(n,A){if(typeof n.mimeType=="string")return n.mimeType;const e=A.pathname.split(".").pop()?.toLowerCase();return e==="png"?"image/png":e==="jpg"||e==="jpeg"?"image/jpeg":e==="webp"?"image/webp":"application/octet-stream"}async function Ii(n,A,e){let a;try{a=JSON.parse(new TextDecoder().decode(n))}catch{throw new Error("Asset Editor could not parse the project .gltf JSON document.")}const t=[...Array.isArray(a.buffers)?a.buffers:[],...Array.isArray(a.images)?a.images:[]];let s=n.byteLength;for(const i of t){if(typeof i.uri!="string"||i.uri.startsWith("data:"))continue;const r=ci(i.uri,A),o=await La(r,e,AA-s);s+=o.byteLength;const c=new Uint8Array(o);let g="";for(let I=0;I<c.length;I+=32768)g+=String.fromCharCode(...c.subarray(I,I+32768));i.uri=`data:${gi(i,r)};base64,${btoa(g)}`}return JSON.stringify(a)}function Ma(n,A){let e;try{const a=atob(n);e=new Uint8Array(a.length);for(let t=0;t<a.length;t++)e[t]=a.charCodeAt(t)}catch{throw new Error(`${A} is not valid base64.`)}if(e.byteLength===0||e.byteLength>AA)throw new Error(`${A} must be non-empty and at most ${AA/1024/1024} MiB.`);return new Promise((a,t)=>{xA.parse(e.buffer,"",s=>{s.scene.animations=[...s.animations],a(s.scene)},s=>t(s instanceof Error?s:new Error(String(s))))})}async function Di(n,A={}){const e=await Ma(n,"Asset preview GLB bytes");try{return Fa(e,A)}finally{gA(e)}}async function Ri(n,A,e={}){const a=await Ma(n,"Asset preview GLB bytes");try{return Ta(a,A,e)}finally{gA(a)}}async function li(n,A){const e=ri(n),a=new AbortController,t=()=>a.abort(A?.reason);A?.aborted?t():A?.addEventListener("abort",t,{once:!0});const s=globalThis.setTimeout(()=>a.abort(new Error("Asset Editor project model load timed out after 25 seconds.")),Hn);try{const i=await La(e,a.signal);if(a.signal.throwIfAborted(),e.pathname.toLowerCase().endsWith(".spz"))return{root:await wn(n,new Uint8Array(i)),sourceBytes:null};if(e.pathname.toLowerCase().endsWith(".glb")){const o=new Uint8Array(i.slice(0));return{root:await nt(i,e,a.signal),sourceBytes:o}}const r=await Ii(i,e,a.signal);return{root:await nt(r,e,a.signal),sourceBytes:null}}finally{globalThis.clearTimeout(s),A?.removeEventListener("abort",t)}}async function Le(n,A){return(await li(n,A)).root}function gA(n){kA(n,"gaussianSplat")&&n.dispose(),GA(n),n.traverse(A=>{const e=A;e.isInstancedMesh&&e.morphTexture?.dispose();const a=A;if(a.geometry?.dispose(),!a.material)return;const t=Array.isArray(a.material)?a.material:[a.material];for(const s of t){for(const i of Object.values(s))i instanceof Ie&&i.dispose();s.dispose()}})}async function Si(n,A={}){const e=await Le(n);try{return kA(e,"gaussianSplat")?await bi(e,A):Fa(e,A)}finally{gA(e)}}async function ki(n,A,e={}){const a=await Le(n);try{return $n(a,A,e)}finally{gA(a)}}async function bi(n,A){const e=q(A.width),a=q(A.height),t=A.background??"neutral",s=z(n,"perspective"),i=yA(n,s),r=DA(new SA({antialias:!1,alpha:!0,preserveDrawingBuffer:!0}));let o=null;try{const c=await it(()=>import("./spark.module-CTTm62aa.js"),__vite__mapDeps([0,1,2]));o=new c.SparkRenderer({renderer:r,autoUpdate:!1,enableLod:!1}),i.add(o),r.setPixelRatio(1),r.outputColorSpace=L,r.toneMapping=RA,r.toneMappingExposure=1,r.setClearColor(cA,t==="transparent"?0:1),r.setSize(e,a,!1),YA(i,r);const g=[],I=document.createElement("canvas");I.width=e*2,I.height=a*2;const l=I.getContext("2d");if(!l)throw new Error("Unable to create the asset preview contact sheet.");for(const[b,d]of mA.entries()){const h=Ge(d,z(n,d),e/a);await o.update({scene:i,camera:h}),r.render(i,h),g.push({view:d,base64:_(r.domElement),mimeType:"image/png"});const u=b%2*e,C=Math.floor(b/2)*a;l.drawImage(r.domElement,u,C,e,a),tA(l,d==="perspective"?"3/4":d.toUpperCase(),u,C,e,a)}return{width:e,height:a,orientation:Te([0,0,1]),views:g,contactSheet:{width:e*2,height:a*2,base64:_(I),mimeType:"image/png"}}}finally{o?.removeFromParent(),n.removeFromParent(),o?.dispose(),WA(r),r.dispose(),r.forceContextLoss()}}async function Fi(n,A,e={}){const a=await Le(n);try{return Ta(a,A,e)}finally{gA(a)}}export{Si as A,Fa as B,wi as C,et as D,Re as E,pi as F,fi as G,Ci as H,li as I,mi as J,mn as K,Dn as S,YA as a,xA as b,Rn as c,ui as d,Le as e,gA as f,Ei as g,kA as h,pa as i,q as j,_ as k,wn as l,wA as m,z as n,GA as o,Ma as p,Qi as q,ka as r,Oe as s,Ri as t,Fi as u,Ta as v,ki as w,$n as x,yi as y,Di as z};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as E,d as f,S,P as B,b as N,s as D,c as C,o as H,e as W}from"./worker-DvJ796ja.js";import{s as j}from"./session-CvHLFvpx.js";async function Y(t,a,s,r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`${a}: invalid file size ${r}`);const o=`${a}.volter-stage-${crypto.randomUUID()}`,c=s.getReader();let l,u=!1;try{l=t.open(o,"w"),t.truncate(o,r);let y=0;for(;;){const{done:m,value:d}=await c.read();if(m)break;if(y+d.byteLength>r)throw new Error(`${a}: file grew during import`);for(let n=0;n<d.byteLength;){const b=Math.min(1048576,d.byteLength-n),h=t.write(l,d,n,b,y);if(h<=0||h>b)throw new Error(`${a}: invalid file write (${h})`);n+=h,y+=h}}if(y!==r)throw new Error(`${a}: expected ${r} bytes, received ${y}`);t.close(l),l=void 0,t.rename(o,a),u=!0}finally{if(u||await c.cancel().catch(()=>{}),c.releaseLock(),l&&t.close(l),!u)try{t.unlink(o)}catch{}}}async function U(t){const a=await f(t,"fetch glue",()=>fetch(t));if(!a.ok)throw new Error(`${t}: HTTP ${a.status}`);const s=await f(t,"read glue body",()=>a.text()),r={exports:{}},o=await f(t,"compile glue",()=>new Function("module","exports","define",`${s}
|
|
2
|
+
return typeof createBlenderModule === 'function' ? createBlenderModule : module.exports;`)),c=await f(t,"evaluate glue",()=>o(r,r.exports,void 0));if(typeof c!="function")throw new Error(`${t}: blender_browser.js did not produce a module factory`);return c}const V=new TextEncoder;function J(t,a){let s="";for(const r of a.split("/").filter(Boolean))t.FS_createPath(s||"/",r,!0,!0),s+=`/${r}`}function q(t){const a=t.FS;return{readFile:async s=>a.readFile(s),writeFile:(s,r)=>(a.writeFile(s,r),Promise.resolve()),writeFileStream:(s,r,o)=>Y(a,s,r,o),mkdirTree:async s=>a.mkdirTree(s),readdir:async s=>a.readdir(s),stat:async s=>{let r;try{r=a.stat(s)}catch{return null}const o=r.mtime;return{size:r.size,mode:r.mode??0,mtimeMs:typeof o=="number"?o:o?.getTime()??0}},unlink:async s=>a.unlink(s)}}const A="volter-blender-artifacts";function G(t){typeof caches>"u"||caches.delete(A).then(a=>{a&&t("Released Blender's artifact cache in this origin: this editor's server runs on this machine, so the browser's HTTP cache keeps the engine instead.")},a=>t(`Blender's artifact cache in this origin could not be released (${a instanceof Error?a.message:String(a)}); Chrome may still evict it.`))}async function v(t,a,s,r){const o=i=>i.ok&&i.body?new Response(W(i.body,s),{status:i.status,headers:i.headers}):i,c=E(t),l=()=>f(c,"fetch artifact",()=>fetch(c));if(!a||typeof caches>"u")return o(await l());const u=`${c}?sha256=${a}`,y=i=>i instanceof Error?i.message:String(i),m=await f(c,"open artifact cache",()=>caches.open(A)).then(async i=>({cache:i,hit:await f(c,"read artifact cache",()=>i.match(u))})).catch(i=>(r(`Blender's artifact cache is unavailable (${y(i)}); ${t} is fetched from the editor instead.`),null));if(!m)return o(await l());if(m.hit)return o(m.hit);const{cache:d}=m,n=o(await l());if(!n.ok)return n;const b=await f(c,"read artifact body for cache",()=>n.blob()),h=new Response(b,{headers:{"content-type":n.headers.get("content-type")??"application/octet-stream"}});try{await f(c,"prune previous artifact cache entries",async()=>{for(const i of await d.keys())i.url.startsWith(`${c}?sha256=`)&&i.url!==u&&await d.delete(i)}),await f(c,"write artifact cache",()=>d.put(u,h.clone()))}catch(i){r(`Blender's artifact cache could not keep ${t} (${y(i)}); the next open fetches it again.`)}return h}async function X(t,a){if(!self.crossOriginIsolated)throw new Error("Headless Blender needs SharedArrayBuffer, so the editor page has to be cross-origin isolated (Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy on every response). This worker reports crossOriginIsolated=false.");const s=E("blender_browser.js"),r=e=>t.log("log",e),o=a.inTab===!0;o||G(r);const c=o?a.digests??{}:{},l=async e=>{await t.ask({checkpoint:e})},u=e=>v(e,c[e],()=>l(`artifact/${e}`),r),[y,m]=await Promise.all([U(s),u("blender_browser.data").then(async e=>{const w=E("blender_browser.data");if(!e.ok)throw new Error(`${w}: HTTP ${e.status}`);return f(w,"read data package body",()=>e.arrayBuffer())})]);await l("runtime-package-ready");let d=null;const n=performance.now();let b=null;const h=(e,w)=>{w.startsWith("@@VOLTER-READY ")&&(b=w.slice(15)),t.log(C(w),w)},i=WebAssembly.Memory;let $=null;WebAssembly.Memory=function(e){const w=new i(e);return $??=w,w};const T=()=>$?new Uint8Array($.buffer):p.HEAPU8,p=await f(s,"initialize glue runtime",()=>y({arguments:["--background","--factory-startup","--python",N],locateFile:e=>E(e),getPreloadedPackage:()=>m,instantiateWasm:(e,w)=>((async()=>{const g=await u("blender_browser.wasm"),R=E("blender_browser.wasm");if(!g.ok)throw new Error(`${R}: HTTP ${g.status}`);const{instance:x,module:L}=await f(R,"read and instantiate Wasm stream",()=>WebAssembly.instantiateStreaming(g,e));await l("wasm-instantiated"),w(x,L)})().catch(g=>{d=g}),{}),mainScriptUrlOrBlob:s,print:e=>h("log",e),printErr:e=>h("error",e),preRun:[e=>{e.ENV??={},Object.assign(e.ENV,{BLENDER_SYSTEM_RESOURCES:"/bw",BLENDER_SYSTEM_PYTHON:"/bw/python",BLENDER_SYSTEM_SCRIPTS:"/bw/scripts",BLENDER_SYSTEM_DATAFILES:"/bw/datafiles",VOLTER_SESSION_ROOT:S,HOME:"/root",TMPDIR:"/tmp"});for(const w of["/tmp","/root","/work",S,...B,t.project])J(e,w);e.FS_createDataFile(S,"session.py",V.encode(j),!0,!0,!0)}]}).finally(()=>{WebAssembly.Memory=i}));for(await l("runtime-initialized");b===null;){if(d)throw d instanceof Error?d:new Error(String(d));await D(5)}const F=performance.now()-n,I=JSON.parse(b);let O=null;if(typeof p.releasePreloadedFileData=="function"){const e=p.releasePreloadedFileData();O=e.bytes,t.log("log",`blender: released the preloaded ${(e.bytes/1048576).toFixed(0)} MB payload (${e.files} files); WasmFS already holds it`)}else t.log("error","blender: this bundle has no releasePreloadedFileData, so the ~55 MB packed .data payload stays resident beside the copy WasmFS made of it — relink with the recipe's --post-js (recipe/release-preloaded-file-data.js).");const k=p.FS;let P="";for(const e of`${t.project}`.split("/").filter(Boolean)){P+=`/${e}`;try{k.chmod(P,511)}catch{}}for(const e of["/work","/tmp","/root",S,...B])try{k.chmod(e,511)}catch{}const _=q(p);k.chmod("/bw/datafiles",493),await l("python-ready"),await z(_,c["essentials.bin"],l,r);const{request:M}=H(_,t);return{skew:"emscripten",banner:I,files:_,request:M,readArena:async()=>{const e=p._blender_web_export_buffer();return e===0?T():T().subarray(e,e+p._blender_web_export_buffer_size())},bootMs:F,memoryBytes:()=>T().length,releasedPayloadBytes:O}}async function z(t,a,s,r){const o=E("essentials.json"),c=E("essentials.bin"),[l,u]=await Promise.all([f(o,"fetch Essentials index",()=>fetch(o)),v("essentials.bin",a,()=>s("artifact/essentials.bin"),r)]);if(!l.ok||!u.ok)throw new Error(`Blender Essentials assets are missing (${o}: HTTP ${l.status}; ${c}: HTTP ${u.status})`);const y=await f(o,"decode Essentials index JSON",()=>l.json()),m=await f(c,"read Essentials payload body",()=>u.arrayBuffer()),d=Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",m)),n=>n.toString(16).padStart(2,"0")).join("");if(m.byteLength!==y.bytes||d!==y.sha256)throw new Error("Blender Essentials payload does not match its source manifest");for(const n of y.files){if(await s("essentials-file"),!n.path||n.path.includes("\\")||n.path.split("/").some(h=>!h||h==="."||h==="..")||!Number.isInteger(n.offset)||!Number.isInteger(n.bytes)||n.offset<0||n.bytes<0||n.offset+n.bytes>m.byteLength)throw new Error(`Invalid Blender Essentials file: ${n.path}`);const b=`/bw/datafiles/assets/${n.path}`;await t.mkdirTree(b.slice(0,b.lastIndexOf("/"))),await t.writeFile(b,new Uint8Array(m,n.offset,n.bytes))}}export{X as startEmscriptenBlenderEngine};
|