@itwin/core-frontend 5.1.1 → 5.1.3-experimental.1
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/CHANGELOG.md +13 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/BriefcaseTxns.js.map +1 -1
- package/lib/cjs/CatalogConnection.js.map +1 -1
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/CoordSystem.js.map +1 -1
- package/lib/cjs/DecorationsCache.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
- package/lib/cjs/FlashSettings.js.map +1 -1
- package/lib/cjs/FrontendHubAccess.js.map +1 -1
- package/lib/cjs/Frustum2d.js.map +1 -1
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/GeoServices.js.map +1 -1
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IModelRoutingContext.js.map +1 -1
- package/lib/cjs/IModeljs-css.js.map +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LinePlaneIntersect.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/MarginPercent.js.map +1 -1
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelSelectorState.js.map +1 -1
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialClassifiersState.js.map +1 -1
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/StandardView.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/TxnEntityChanges.js.map +1 -1
- package/lib/cjs/UserPreferences.js.map +1 -1
- package/lib/cjs/ViewAnimation.js.map +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewStatus.js.map +1 -1
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.js.map +1 -1
- package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/common/ImageUtil.js.map +1 -1
- package/lib/cjs/common/ViewRect.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
- package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
- package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
- package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
- package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/cjs/common/render/BatchOptions.js.map +1 -1
- package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/cjs/common/render/GraphicType.js.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/MaterialParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/cjs/common/render/TextureParams.js.map +1 -1
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionHost.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/cjs/internal/ScriptUtils.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
- package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
- package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
- package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/internal/webgl.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/FrameStats.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.js.map +1 -1
- package/lib/cjs/render/MeshArgs.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/PolylineArgs.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderClipVolume.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/cjs/request/utils.js.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
- package/lib/cjs/tile/TileParams.js.map +1 -1
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/TileStorage.js.map +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/TileTreeParams.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TileUser.js.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/EventController.js.map +1 -1
- package/lib/cjs/tools/IdleTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/cjs/workers/RegisterWorker.js.map +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/BriefcaseTxns.js.map +1 -1
- package/lib/esm/CatalogConnection.js.map +1 -1
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/CoordSystem.js.map +1 -1
- package/lib/esm/DecorationsCache.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/FeatureOverrideProvider.js.map +1 -1
- package/lib/esm/FlashSettings.js.map +1 -1
- package/lib/esm/FrontendHubAccess.js.map +1 -1
- package/lib/esm/Frustum2d.js.map +1 -1
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/GeoServices.js.map +1 -1
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IModelRoutingContext.js.map +1 -1
- package/lib/esm/IModeljs-css.js.map +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LinePlaneIntersect.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/MarginPercent.js.map +1 -1
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelSelectorState.js.map +1 -1
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialClassifiersState.js.map +1 -1
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/StandardView.js.map +1 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/TxnEntityChanges.js.map +1 -1
- package/lib/esm/UserPreferences.js.map +1 -1
- package/lib/esm/ViewAnimation.js.map +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewStatus.js.map +1 -1
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.js.map +1 -1
- package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/common/ImageUtil.js.map +1 -1
- package/lib/esm/common/ViewRect.js.map +1 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/gltf/GltfModel.js.map +1 -1
- package/lib/esm/common/gltf/GltfParser.js.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/LineCode.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/esm/common/internal/render/Polyface.js.map +1 -1
- package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/esm/common/internal/render/Primitives.js.map +1 -1
- package/lib/esm/common/internal/render/Strokes.js.map +1 -1
- package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/esm/common/render/BatchOptions.js.map +1 -1
- package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/esm/common/render/GraphicType.js.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/MaterialParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/esm/common/render/TextureParams.js.map +1 -1
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionHost.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/esm/internal/ScriptUtils.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/esm/internal/render/RenderPlan.js.map +1 -1
- package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
- package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/GL.js.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
- package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/Material.js.map +1 -1
- package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
- package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/internal/tile/PntsReader.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
- package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/internal/webgl.js.map +1 -1
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/esm/render/CreateTextureArgs.js.map +1 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/FrameStats.js.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.js.map +1 -1
- package/lib/esm/render/MeshArgs.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/PolylineArgs.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderClipVolume.js.map +1 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/esm/request/utils.js.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
- package/lib/esm/tile/TileParams.js.map +1 -1
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileRequestChannels.js.map +1 -1
- package/lib/esm/tile/TileStorage.js.map +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/TileTreeParams.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TileUser.js.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/EventController.js.map +1 -1
- package/lib/esm/tools/IdleTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/esm/workers/RegisterWorker.js.map +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasureTool.js","sourceRoot":"","sources":["../../../src/tools/MeasureTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Measure\r\n */\r\n\r\nimport { BentleyStatus, Id64, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { AxisOrder, IModelJson, Matrix3d, Plane3dByOriginAndUnitNormal, Point2d, Point3d, PointString3d, PolygonOps, Vector3d, XAndY, XYAndZ } from \"@itwin/core-geometry\";\r\nimport { ColorDef, GeometryStreamProps, LinePixels, MassPropertiesOperation, MassPropertiesRequestProps, MassPropertiesResponseProps } from \"@itwin/core-common\";\r\nimport { DialogItem, DialogItemValue, DialogPropertySyncItem, PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport { AccuDrawHintBuilder, ContextRotationId } from \"../AccuDraw\";\r\nimport { LocateFilterStatus, LocateResponse } from \"../ElementLocateManager\";\r\nimport { HitDetail, HitGeomType } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { Marker } from \"../Marker\";\r\nimport { NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"../NotificationManager\";\r\nimport { CanvasDecoration } from \"../render/CanvasDecoration\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { PrimitiveTool } from \"./PrimitiveTool\";\r\nimport { BeButtonEvent, BeModifierKeys, CoreTools, EventHandled, InputSource } from \"./Tool\";\r\nimport { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection } from \"./ToolAssistance\";\r\nimport { GraphicType } from \"../common/render/GraphicType\";\r\nimport { FormatterSpec } from \"@itwin/core-quantity\";\r\n\r\nfunction translateBold(key: string) {\r\n return `<b>${CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;\r\n}\r\n\r\nasync function getFormatterSpecByKoQAndPersistenceUnit(koq: string, persistenceUnitName: string): Promise<FormatterSpec | undefined> {\r\n const formatProps = await IModelApp.formatsProvider.getFormat(koq);\r\n if (undefined === formatProps)\r\n return undefined;\r\n return IModelApp.quantityFormatter.createFormatterSpec({\r\n persistenceUnitName,\r\n formatProps,\r\n formatName: koq\r\n });\r\n}\r\n\r\n/** @internal */\r\nclass MeasureLabel implements CanvasDecoration {\r\n public worldLocation = new Point3d();\r\n public position = new Point3d();\r\n public label: string;\r\n\r\n constructor(worldLocation: XYAndZ, label: string) {\r\n this.worldLocation.setFrom(worldLocation);\r\n this.label = label;\r\n }\r\n\r\n public drawDecoration(ctx: CanvasRenderingContext2D): void {\r\n ctx.font = \"16px sans-serif\";\r\n const labelHeight = ctx.measureText(\"M\").width; // Close enough for border padding...\r\n const labelWidth = ctx.measureText(this.label).width + labelHeight;\r\n\r\n ctx.lineWidth = 1;\r\n ctx.strokeStyle = \"white\";\r\n ctx.fillStyle = \"rgba(0,0,0,.4)\";\r\n ctx.shadowColor = \"black\";\r\n ctx.shadowBlur = 10;\r\n ctx.fillRect(-(labelWidth / 2), -labelHeight, labelWidth, labelHeight * 2);\r\n ctx.strokeRect(-(labelWidth / 2), -labelHeight, labelWidth, labelHeight * 2);\r\n\r\n ctx.fillStyle = \"white\";\r\n ctx.shadowBlur = 0;\r\n ctx.textAlign = \"center\";\r\n ctx.textBaseline = \"middle\";\r\n ctx.fillText(this.label, 0, 0);\r\n }\r\n\r\n public setPosition(vp: Viewport): boolean {\r\n vp.worldToView(this.worldLocation, this.position);\r\n this.position.y -= Math.floor(vp.pixelsFromInches(0.44)) + 0.5; // Offset from snap location...\r\n return vp.viewRect.containsPoint(this.position);\r\n }\r\n\r\n public addDecoration(context: DecorateContext) {\r\n if (this.setPosition(context.viewport))\r\n context.addCanvasDecoration(this);\r\n }\r\n}\r\n\r\n/** @internal */\r\nclass MeasureMarker extends Marker {\r\n public isSelected: boolean = false;\r\n constructor(label: string, title: HTMLElement, worldLocation: XYAndZ, size: XAndY) {\r\n super(worldLocation, size);\r\n\r\n const markerDrawFunc = (ctx: CanvasRenderingContext2D) => {\r\n ctx.beginPath();\r\n ctx.arc(0, 0, this.size.x * 0.5, 0, 2 * Math.PI);\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = \"black\";\r\n const hilite = this.isSelected && this._hiliteColor ? this._hiliteColor.colors : undefined;\r\n ctx.fillStyle = undefined !== hilite ? `rgba(${hilite.r | 0},${hilite.g | 0},${hilite.b | 0}, 0.5)` : \"rgba(255,255,255,.5)\";\r\n ctx.fill();\r\n ctx.stroke();\r\n };\r\n\r\n this.drawFunc = markerDrawFunc;\r\n this.title = title;\r\n this.label = label;\r\n this.labelFont = \"16px sans-serif\";\r\n this.labelColor = \"black\";\r\n this.labelMaxWidth = this.size.x * 0.75;\r\n this.labelOffset = { x: 0, y: -1 };\r\n }\r\n\r\n public override onMouseButton(_ev: BeButtonEvent): boolean { return true; } // Never forward event to active tool...\r\n\r\n public override onMouseEnter(ev: BeButtonEvent) {\r\n super.onMouseEnter(ev);\r\n if (this.title && InputSource.Touch === ev.inputSource && ev.viewport)\r\n ev.viewport.openToolTip(this.title, ev.viewPoint, this.tooltipOptions);\r\n }\r\n\r\n public override onMouseLeave() {\r\n super.onMouseLeave();\r\n if (this.title)\r\n IModelApp.notifications.clearToolTip(); // Clear tool tip from tap since we won't get a motion event...\r\n }\r\n}\r\n\r\n/** @internal */\r\ninterface Location { point: Point3d, adjustedPoint: Point3d, refAxes: Matrix3d }\r\n/** @internal */\r\ninterface Segment { distance: number, slope: number, start: Point3d, end: Point3d, delta: Vector3d, adjustedStart: Point3d, adjustedEnd: Point3d, adjustedDelta: Vector3d, refAxes: Matrix3d, marker: MeasureMarker }\r\n\r\n/** @internal */\r\nfunction adjustPoint(ev: BeButtonEvent, segments?: Array<Segment>, locations?: Array<Location>): Point3d {\r\n // If the point was from a hit we must transform it by the display transform of what got hit.\r\n const hit = IModelApp.accuSnap.currHit;\r\n if (!hit || !ev.viewport || !hit.modelId)\r\n return ev.point;\r\n\r\n if (\"0\" !== hit.modelId) {\r\n const transform = ev.viewport.view.computeDisplayTransform({ modelId: hit.modelId, elementId: hit.sourceId });\r\n return transform?.multiplyInversePoint3d(ev.point) ?? ev.point;\r\n }\r\n\r\n // Must have snapped to a decoration, so look through previous any segments & locations for a match to get an adjusted point.\r\n if (segments) {\r\n for (const seg of segments) {\r\n if (seg.start.isExactEqual(ev.point))\r\n return seg.adjustedStart.clone();\r\n\r\n if (seg.end.isExactEqual(ev.point))\r\n return seg.adjustedEnd.clone();\r\n }\r\n }\r\n\r\n if (locations)\r\n for (const loc of locations)\r\n if (loc.point.isExactEqual(ev.point))\r\n return loc.adjustedPoint.clone();\r\n\r\n return ev.point;\r\n}\r\n\r\n/** Report distance between 2 points using current quantity formatter for length.\r\n * @public\r\n */\r\nexport class MeasureDistanceTool extends PrimitiveTool {\r\n public static override toolId = \"Measure.Distance\";\r\n public static override iconSpec = \"icon-measure-distance\";\r\n /** @internal */\r\n protected readonly _locationData = new Array<Location>();\r\n /** @internal */\r\n protected readonly _acceptedSegments = new Array<Segment>();\r\n /** @internal */\r\n protected _totalDistance: number = 0.0;\r\n /** @internal */\r\n protected _totalDistanceMarker?: MeasureLabel;\r\n /** @internal */\r\n protected _snapGeomId?: string;\r\n /** @internal */\r\n protected _lastMotionPt?: Point3d;\r\n /** @internal */\r\n protected _lastMotionAdjustedPt?: Point3d;\r\n /** @internal */\r\n protected _lengthFormatterSpec?: FormatterSpec;\r\n /** @internal */\r\n protected _angleFormatterSpec?: FormatterSpec;\r\n /** @internal */\r\n protected _removeFormatterListener?: () => void;\r\n\r\n /** @internal */\r\n protected allowView(vp: Viewport) { return vp.view.isSpatialView() || vp.view.isDrawingView(); }\r\n /** @internal */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }\r\n /** @internal */\r\n public override isValidLocation(_ev: BeButtonEvent, _isButtonEvent: boolean): boolean { return true; }\r\n /** @internal */\r\n public override requireWriteableTarget(): boolean { return false; }\r\n /** @internal */\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.ANGLE\", \"Units.RAD\");\r\n\r\n\r\n this._removeFormatterListener = IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {\r\n if (args.formatsChanged === \"all\" || args.formatsChanged.includes(\"AecUnits.LENGTH\"))\r\n this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n\r\n if (args.formatsChanged === \"all\" || args.formatsChanged.includes(\"AecUnits.ANGLE\"))\r\n this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.ANGLE\", \"Units.RAD\");\r\n });\r\n this.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onCleanup(): Promise<void> {\r\n if (this._removeFormatterListener) {\r\n this._removeFormatterListener();\r\n this._removeFormatterListener = undefined;\r\n }\r\n\r\n await super.onCleanup();\r\n }\r\n\r\n /** @internal */\r\n public override async onUnsuspend() { this.showPrompt(); }\r\n\r\n /** @internal */\r\n protected showPrompt(): void {\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(0 === this._locationData.length ? \"Measure.Distance.Prompts.FirstPoint\" : \"Measure.Distance.Prompts.NextPoint\"));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (0 === this._locationData.length) {\r\n if (this._acceptedSegments.length > 0) {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Restart\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Restart\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n } else {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Cancel\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Cancel\"), false, ToolAssistanceInputMethod.Mouse));\r\n mouseInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AdditionalPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n mouseInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.createKeyboardInfo([ToolAssistance.ctrlKey, \"Z\"]), CoreTools.translate(\"ElementSet.Inputs.UndoLastPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected setupAndPromptForNextAction(): void {\r\n IModelApp.accuSnap.enableSnap(true);\r\n const hints = new AccuDrawHintBuilder();\r\n hints.enableSmartRotation = true;\r\n hints.setModeRectangular();\r\n hints.sendHints(false);\r\n IModelApp.toolAdmin.setCursor(0 === this._locationData.length ? IModelApp.viewManager.crossHairCursor : IModelApp.viewManager.dynamicsCursor);\r\n this.showPrompt();\r\n }\r\n\r\n /** @internal */\r\n public override testDecorationHit(id: string): boolean { return id === this._snapGeomId; }\r\n\r\n /** @internal */\r\n protected getSnapPoints(): Point3d[] | undefined {\r\n if (this._acceptedSegments.length < 1 && this._locationData.length < 2)\r\n return undefined;\r\n\r\n const snapPoints: Point3d[] = [];\r\n for (const seg of this._acceptedSegments) {\r\n if (0 === snapPoints.length || !seg.start.isAlmostEqual(snapPoints[snapPoints.length - 1]))\r\n snapPoints.push(seg.start);\r\n if (!seg.end.isAlmostEqual(snapPoints[0]))\r\n snapPoints.push(seg.end);\r\n }\r\n\r\n if (this._locationData.length > 1)\r\n for (const loc of this._locationData)\r\n snapPoints.push(loc.point);\r\n return snapPoints;\r\n }\r\n\r\n /** @internal */\r\n public override getDecorationGeometry(_hit: HitDetail): GeometryStreamProps | undefined {\r\n const snapPoints = this.getSnapPoints();\r\n if (undefined === snapPoints)\r\n return undefined;\r\n const geomData = IModelJson.Writer.toIModelJson(PointString3d.create(snapPoints));\r\n return (undefined === geomData ? undefined : [geomData]);\r\n }\r\n\r\n /** @internal */\r\n protected displayDynamicDistance(context: DecorateContext, points: Point3d[], adjustedPoints: Point3d[]): void {\r\n let totalDistance = 0.0;\r\n for (let i = 0; i < adjustedPoints.length - 1; i++)\r\n totalDistance += adjustedPoints[i].distance(adjustedPoints[i + 1]);\r\n if (0.0 === totalDistance)\r\n return;\r\n\r\n const formatterSpec = this._lengthFormatterSpec;\r\n if (formatterSpec === undefined)\r\n return;\r\n const formattedTotalDistance = IModelApp.quantityFormatter.formatQuantity(totalDistance, formatterSpec);\r\n const distDyn = new MeasureLabel(points[points.length - 1], formattedTotalDistance);\r\n distDyn.addDecoration(context);\r\n }\r\n\r\n /** @internal */\r\n protected displayDelta(context: DecorateContext, seg: any): void {\r\n const xVec = new Vector3d(seg.delta.x, 0.0, 0.0);\r\n const yVec = new Vector3d(0.0, seg.delta.y, 0.0);\r\n const zVec = new Vector3d(0.0, 0.0, seg.delta.z);\r\n\r\n seg.refAxes.multiplyVectorInPlace(xVec);\r\n seg.refAxes.multiplyVectorInPlace(yVec);\r\n seg.refAxes.multiplyVectorInPlace(zVec);\r\n\r\n const builderAxes = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n let basePt = seg.start.clone();\r\n\r\n if (xVec.magnitude() > 1.0e-5) {\r\n const segPoints: Point3d[] = [];\r\n segPoints.push(basePt);\r\n basePt = basePt.plus(xVec);\r\n segPoints.push(basePt);\r\n const colorX = ColorDef.red.adjustedForContrast(context.viewport.view.backgroundColor);\r\n builderAxes.setSymbology(colorX, ColorDef.black, 5);\r\n builderAxes.addLineString(segPoints);\r\n }\r\n\r\n if (yVec.magnitude() > 1.0e-5) {\r\n const segPoints: Point3d[] = [];\r\n segPoints.push(basePt);\r\n basePt = basePt.plus(yVec);\r\n segPoints.push(basePt);\r\n const colorY = ColorDef.green.adjustedForContrast(context.viewport.view.backgroundColor);\r\n builderAxes.setSymbology(colorY, ColorDef.black, 5);\r\n builderAxes.addLineString(segPoints);\r\n }\r\n\r\n if (zVec.magnitude() > 1.0e-5) {\r\n const segPoints: Point3d[] = [];\r\n segPoints.push(basePt);\r\n basePt = basePt.plus(zVec);\r\n segPoints.push(basePt);\r\n const colorZ = ColorDef.blue.adjustedForContrast(context.viewport.view.backgroundColor);\r\n builderAxes.setSymbology(colorZ, ColorDef.black, 5);\r\n builderAxes.addLineString(segPoints);\r\n }\r\n\r\n const segGlow = context.viewport.hilite.color.withAlpha(50);\r\n builderAxes.setSymbology(segGlow, ColorDef.black, 8);\r\n builderAxes.addLineString([seg.start, seg.end]);\r\n\r\n context.addDecorationFromBuilder(builderAxes);\r\n }\r\n\r\n /** @internal */\r\n protected createDecorations(context: DecorateContext, isSuspended: boolean): void {\r\n if (!this.isCompatibleViewport(context.viewport, false))\r\n return;\r\n\r\n if (!isSuspended && this._locationData.length > 0 && undefined !== this._lastMotionPt && undefined !== this._lastMotionAdjustedPt) {\r\n const tmpPoints: Point3d[] = [];\r\n const tmpAdjustedPoints: Point3d[] = [];\r\n for (const loc of this._locationData) {\r\n tmpPoints.push(loc.point); // Deep copy not necessary...\r\n tmpAdjustedPoints.push(loc.adjustedPoint);\r\n }\r\n tmpPoints.push(this._lastMotionPt);\r\n tmpAdjustedPoints.push(this._lastMotionAdjustedPt);\r\n\r\n const builderDynVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n const colorDynVis = context.viewport.hilite.color;\r\n\r\n builderDynVis.setSymbology(colorDynVis, ColorDef.black, 3);\r\n builderDynVis.addLineString(tmpPoints);\r\n\r\n context.addDecorationFromBuilder(builderDynVis);\r\n\r\n const builderDynHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const colorDynHid = colorDynVis.withAlpha(100);\r\n\r\n builderDynHid.setSymbology(colorDynHid, ColorDef.black, 1, LinePixels.Code2);\r\n builderDynHid.addLineString(tmpPoints);\r\n\r\n context.addDecorationFromBuilder(builderDynHid);\r\n this.displayDynamicDistance(context, tmpPoints, tmpAdjustedPoints);\r\n }\r\n\r\n if (this._acceptedSegments.length > 0) {\r\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const colorAccVis = ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);\r\n const colorAccHid = colorAccVis.withAlpha(100);\r\n\r\n builderAccVis.setSymbology(colorAccVis, ColorDef.black, 3);\r\n builderAccHid.setSymbology(colorAccHid, ColorDef.black, 1, LinePixels.Code2);\r\n\r\n for (const seg of this._acceptedSegments) {\r\n builderAccVis.addLineString([seg.start, seg.end]);\r\n builderAccHid.addLineString([seg.start, seg.end]);\r\n seg.marker.addDecoration(context);\r\n if (seg.marker.isSelected)\r\n this.displayDelta(context, seg);\r\n }\r\n\r\n context.addDecorationFromBuilder(builderAccVis);\r\n context.addDecorationFromBuilder(builderAccHid);\r\n }\r\n\r\n if (undefined !== this._totalDistanceMarker)\r\n this._totalDistanceMarker.addDecoration(context);\r\n\r\n const snapPoints = this.getSnapPoints();\r\n if (undefined === snapPoints)\r\n return;\r\n\r\n if (undefined === this._snapGeomId)\r\n this._snapGeomId = this.iModel.transientIds.getNext();\r\n\r\n const builderSnapPts = context.createGraphicBuilder(GraphicType.WorldOverlay, undefined, this._snapGeomId);\r\n const colorAccPts = ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);\r\n\r\n builderSnapPts.setSymbology(colorAccPts, ColorDef.black, 7);\r\n builderSnapPts.addPointString(snapPoints);\r\n\r\n context.addDecorationFromBuilder(builderSnapPts);\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void { this.createDecorations(context, false); }\r\n /** @internal */\r\n public override decorateSuspended(context: DecorateContext): void { this.createDecorations(context, true); }\r\n\r\n /** @internal */\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (this._locationData.length > 0 && undefined !== ev.viewport) {\r\n const point = ev.point;\r\n const adjustedPoint = adjustPoint(ev, this._acceptedSegments, this._locationData);\r\n if (undefined !== this._lastMotionPt) {\r\n this._lastMotionPt.setFrom(point);\r\n this._lastMotionAdjustedPt?.setFrom(adjustedPoint);\r\n } else {\r\n this._lastMotionPt = point.clone();\r\n this._lastMotionAdjustedPt = adjustedPoint;\r\n }\r\n ev.viewport.invalidateDecorations();\r\n }\r\n }\r\n\r\n protected reportMeasurements(): void {\r\n if (undefined === this._totalDistanceMarker)\r\n return;\r\n const briefMsg = `${CoreTools.translate(this._acceptedSegments.length > 1 ? \"Measure.Labels.CumulativeDistance\" : \"Measure.Labels.Distance\")}: ${this._totalDistanceMarker.label}`;\r\n const msgDetail = new NotifyMessageDetails(OutputMessagePriority.Info, briefMsg, undefined, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(msgDetail);\r\n }\r\n\r\n protected async updateTotals(): Promise<void> {\r\n this._totalDistance = 0.0;\r\n this._totalDistanceMarker = undefined;\r\n for (const seg of this._acceptedSegments)\r\n this._totalDistance += seg.distance;\r\n if (0.0 === this._totalDistance)\r\n return;\r\n\r\n const formatterSpec = this._lengthFormatterSpec;\r\n if (undefined === formatterSpec)\r\n return;\r\n\r\n const formattedTotalDistance = IModelApp.quantityFormatter.formatQuantity(this._totalDistance, formatterSpec);\r\n this._totalDistanceMarker = new MeasureLabel(this._acceptedSegments[this._acceptedSegments.length - 1].end, formattedTotalDistance);\r\n this.reportMeasurements();\r\n }\r\n\r\n protected async getMarkerToolTip(distance: number, slope: number, start: Point3d, end: Point3d, delta?: Vector3d): Promise<HTMLElement> {\r\n const is3d = (undefined === this.targetView || this.targetView.view.is3d());\r\n const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());\r\n const toolTip = document.createElement(\"div\");\r\n\r\n\r\n const distanceFormatterSpec = this._lengthFormatterSpec;\r\n if (undefined === distanceFormatterSpec)\r\n return toolTip;\r\n\r\n let toolTipHtml = \"\";\r\n const formattedDistance = IModelApp.quantityFormatter.formatQuantity(distance, distanceFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Distance\") + formattedDistance}<br>`;\r\n\r\n if (is3d) {\r\n const angleFormatterSpec = this._angleFormatterSpec;\r\n if (undefined !== angleFormatterSpec) {\r\n const formattedSlope = IModelApp.quantityFormatter.formatQuantity(slope, angleFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Slope\") + formattedSlope}<br>`;\r\n }\r\n }\r\n\r\n const coordFormatterSpec = this._lengthFormatterSpec;\r\n\r\n if (undefined !== coordFormatterSpec) {\r\n let startAdjusted = start;\r\n let endAdjusted = end;\r\n if (isSpatial) {\r\n const globalOrigin = this.iModel.globalOrigin;\r\n startAdjusted = startAdjusted.minus(globalOrigin);\r\n endAdjusted = endAdjusted.minus(globalOrigin);\r\n }\r\n\r\n {\r\n const formattedStartX = IModelApp.quantityFormatter.formatQuantity(startAdjusted.x, coordFormatterSpec);\r\n const formattedStartY = IModelApp.quantityFormatter.formatQuantity(startAdjusted.y, coordFormatterSpec);\r\n const formattedStartZ = IModelApp.quantityFormatter.formatQuantity(startAdjusted.z, coordFormatterSpec);\r\n toolTipHtml += `${translateBold(\"StartCoord\") + formattedStartX}, ${formattedStartY}`;\r\n if (is3d)\r\n toolTipHtml += `, ${formattedStartZ}`;\r\n toolTipHtml += \"<br>\";\r\n }\r\n const formattedEndX = IModelApp.quantityFormatter.formatQuantity(endAdjusted.x, coordFormatterSpec);\r\n const formattedEndY = IModelApp.quantityFormatter.formatQuantity(endAdjusted.y, coordFormatterSpec);\r\n const formattedEndZ = IModelApp.quantityFormatter.formatQuantity(endAdjusted.z, coordFormatterSpec);\r\n toolTipHtml += `${translateBold(\"EndCoord\") + formattedEndX}, ${formattedEndY}`;\r\n if (is3d)\r\n toolTipHtml += `, ${formattedEndZ}`;\r\n toolTipHtml += \"<br>\";\r\n }\r\n\r\n if (undefined !== delta) {\r\n const formattedDeltaX = IModelApp.quantityFormatter.formatQuantity(Math.abs(delta.x), distanceFormatterSpec);\r\n const formattedDeltaY = IModelApp.quantityFormatter.formatQuantity(Math.abs(delta.y), distanceFormatterSpec);\r\n const formattedDeltaZ = IModelApp.quantityFormatter.formatQuantity(Math.abs(delta.z), distanceFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Delta\") + formattedDeltaX}, ${formattedDeltaY}`;\r\n if (is3d)\r\n toolTipHtml += `, ${formattedDeltaZ}`;\r\n toolTipHtml += \"<br>\";\r\n }\r\n\r\n toolTip.innerHTML = toolTipHtml;\r\n return toolTip;\r\n }\r\n\r\n /** @internal */\r\n protected async updateSelectedMarkerToolTip(seg: any, ev: BeButtonEvent, reopenToolTip: boolean): Promise<void> {\r\n seg.marker.title = await this.getMarkerToolTip(seg.distance, seg.slope, seg.adjustedStart, seg.adjustedEnd, seg.marker.isSelected ? seg.adjustedDelta : undefined);\r\n if (!reopenToolTip || undefined === ev.viewport || !IModelApp.notifications.isToolTipOpen)\r\n return;\r\n IModelApp.notifications.clearToolTip();\r\n ev.viewport.openToolTip(seg.marker.title, ev.viewPoint);\r\n }\r\n\r\n /** @internal */\r\n protected async acceptNewSegments(): Promise<void> {\r\n if (this._locationData.length > 1) {\r\n for (let i = 0; i <= this._locationData.length - 2; i++) {\r\n const adjustedStart = this._locationData[i].adjustedPoint;\r\n const adjustedEnd = this._locationData[i + 1].adjustedPoint;\r\n const distance = adjustedStart.distance(adjustedEnd);\r\n const xyDist = adjustedStart.distanceXY(adjustedEnd);\r\n const zDist = adjustedEnd.z - adjustedStart.z;\r\n const slope = (0.0 === xyDist ? Math.PI : Math.atan(zDist / xyDist));\r\n const adjustedDelta = Vector3d.createStartEnd(adjustedStart, adjustedEnd);\r\n const refAxes = this._locationData[i].refAxes;\r\n refAxes.multiplyTransposeVectorInPlace(adjustedDelta);\r\n const start = this._locationData[i].point;\r\n const end = this._locationData[i + 1].point;\r\n const delta = Vector3d.createStartEnd(start, end);\r\n refAxes.multiplyTransposeVectorInPlace(delta);\r\n\r\n const toolTip = await this.getMarkerToolTip(distance, slope, adjustedStart, adjustedEnd);\r\n const marker = new MeasureMarker((this._acceptedSegments.length + 1).toString(), toolTip, start.interpolate(0.5, end), Point2d.create(25, 25));\r\n\r\n const segMarkerButtonFunc = (ev: BeButtonEvent) => {\r\n if (ev.isDown)\r\n return true;\r\n\r\n let selectedMarker: MeasureMarker | undefined;\r\n let pickedMarker: MeasureMarker | undefined;\r\n for (const seg of this._acceptedSegments) {\r\n if (!seg.marker.pick(ev.viewPoint))\r\n continue;\r\n selectedMarker = (seg.marker.isSelected ? undefined : seg.marker);\r\n pickedMarker = seg.marker;\r\n break;\r\n }\r\n\r\n for (const seg of this._acceptedSegments) {\r\n const wasSelected = seg.marker.isSelected;\r\n seg.marker.isSelected = (seg.marker === selectedMarker);\r\n if (wasSelected !== seg.marker.isSelected)\r\n this.updateSelectedMarkerToolTip(seg, ev, (seg.marker === pickedMarker)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n return true;\r\n };\r\n\r\n marker.onMouseButton = segMarkerButtonFunc;\r\n this._acceptedSegments.push({ distance, slope, start, end, delta, adjustedStart, adjustedEnd, adjustedDelta, refAxes, marker });\r\n }\r\n }\r\n this._locationData.length = 0;\r\n await this.updateTotals();\r\n }\r\n\r\n /** @internal */\r\n protected getReferenceAxes(vp?: Viewport): Matrix3d {\r\n const refAxes = Matrix3d.createIdentity();\r\n if (undefined !== vp && vp.isContextRotationRequired)\r\n vp.getAuxCoordRotation(refAxes);\r\n return refAxes;\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n const point = ev.point.clone();\r\n const adjustedPoint = adjustPoint(ev, this._acceptedSegments, this._locationData);\r\n const refAxes = this.getReferenceAxes(ev.viewport);\r\n const zDir = refAxes.columnZ();\r\n const normal = refAxes.columnZ();\r\n const tangent = refAxes.columnX();\r\n const snap = IModelApp.accuSnap.getCurrSnapDetail();\r\n\r\n // Report xyz delta relative to world up. The surface normal and edge tangent help determine the rotation about z...\r\n if (undefined !== snap) {\r\n if (undefined !== snap.primitive) {\r\n const locDetail = snap.primitive.closestPoint(point, false);\r\n const snapPlane = Plane3dByOriginAndUnitNormal.create(point, undefined !== snap.normal ? snap.normal : normal);\r\n if (undefined !== locDetail && (HitGeomType.Segment === snap.geomType || (snapPlane && snap.primitive.isInPlane(snapPlane)))) {\r\n const locRay = snap.primitive.fractionToPointAndUnitTangent(locDetail.fraction);\r\n tangent.setFrom(locRay.direction);\r\n if (undefined !== snap.normal)\r\n normal.setFrom(snap.normal);\r\n }\r\n } else if (undefined !== snap.normal) {\r\n normal.setFrom(snap.normal);\r\n }\r\n }\r\n\r\n if (!normal.isParallelTo(zDir, true)) {\r\n const yDir = zDir.unitCrossProduct(normal);\r\n if (undefined !== yDir) {\r\n yDir.unitCrossProduct(zDir, normal);\r\n Matrix3d.createColumnsInAxisOrder(AxisOrder.ZXY, normal, yDir, zDir, refAxes);\r\n }\r\n } else if (!tangent.isParallelTo(zDir, true)) {\r\n const yDir = zDir.unitCrossProduct(tangent);\r\n if (undefined !== yDir) {\r\n yDir.unitCrossProduct(zDir, tangent);\r\n Matrix3d.createColumnsInAxisOrder(AxisOrder.XYZ, tangent, yDir, zDir, refAxes);\r\n }\r\n }\r\n\r\n this._locationData.push({ point, adjustedPoint, refAxes });\r\n\r\n if (this._locationData.length > 1 && !ev.isControlKey)\r\n await this.acceptNewSegments();\r\n this.setupAndPromptForNextAction();\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onResetButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (0 === this._locationData.length) {\r\n await this.onReinitialize();\r\n return EventHandled.No;\r\n }\r\n await this.acceptNewSegments();\r\n this.setupAndPromptForNextAction();\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onUndoPreviousStep(): Promise<boolean> {\r\n if (0 === this._locationData.length && 0 === this._acceptedSegments.length)\r\n return false;\r\n\r\n if (0 !== this._locationData.length) {\r\n this._locationData.pop();\r\n } else if (0 !== this._acceptedSegments.length) {\r\n this._acceptedSegments.pop();\r\n }\r\n\r\n if (0 === this._locationData.length && 0 === this._acceptedSegments.length) {\r\n await this.onReinitialize();\r\n } else {\r\n await this.updateTotals();\r\n this.setupAndPromptForNextAction();\r\n }\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> {\r\n const tool = new MeasureDistanceTool();\r\n if (!await tool.run())\r\n return this.exitTool();\r\n }\r\n}\r\n\r\n/** Report spatial coordinate at a point as well as cartographic location for geolocated models using current quantity formatters.\r\n * @public\r\n */\r\nexport class MeasureLocationTool extends PrimitiveTool {\r\n public static override toolId = \"Measure.Location\";\r\n public static override iconSpec = \"icon-measure-location\";\r\n /** @internal */\r\n protected readonly _acceptedLocations: MeasureMarker[] = [];\r\n /** @internal */\r\n protected allowView(vp: Viewport) { return vp.view.isSpatialView() || vp.view.isDrawingView(); }\r\n /** @internal */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }\r\n /** @internal */\r\n public override isValidLocation(_ev: BeButtonEvent, _isButtonEvent: boolean): boolean { return true; }\r\n /** @internal */\r\n public override requireWriteableTarget(): boolean { return false; }\r\n /** @internal */\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onUnsuspend() { this.showPrompt(); }\r\n\r\n /** @internal */\r\n protected showPrompt(): void {\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(\"Measure.Location.Prompts.EnterPoint\"));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (0 !== this._acceptedLocations.length) {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Restart\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Restart\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected setupAndPromptForNextAction(): void {\r\n IModelApp.accuSnap.enableSnap(true);\r\n this.showPrompt();\r\n }\r\n\r\n protected async getMarkerToolTip(point: Point3d): Promise<HTMLElement> {\r\n const is3d = (undefined === this.targetView || this.targetView.view.is3d());\r\n const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());\r\n const toolTip = document.createElement(\"div\");\r\n\r\n let toolTipHtml = \"\";\r\n const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined !== coordFormatterSpec) {\r\n let pointAdjusted = point;\r\n if (isSpatial) {\r\n const globalOrigin = this.iModel.globalOrigin;\r\n pointAdjusted = pointAdjusted.minus(globalOrigin);\r\n }\r\n const formattedPointX = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.x, coordFormatterSpec);\r\n const formattedPointY = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.y, coordFormatterSpec);\r\n const formattedPointZ = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.z, coordFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Coordinate\") + formattedPointX}, ${formattedPointY}`;\r\n if (is3d)\r\n toolTipHtml += `, ${formattedPointZ}`;\r\n\r\n toolTipHtml += \"<br>\";\r\n }\r\n\r\n if (isSpatial) {\r\n const latLongFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.ANGLE\", \"Units.RAD\");\r\n if (undefined !== latLongFormatterSpec && undefined !== coordFormatterSpec) {\r\n try {\r\n const cartographic = await this.iModel.spatialToCartographic(point);\r\n const formattedLat = IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.latitude), latLongFormatterSpec);\r\n const formattedLong = IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.longitude), latLongFormatterSpec);\r\n const formattedHeight = IModelApp.quantityFormatter.formatQuantity(cartographic.height, coordFormatterSpec);\r\n const latDir = CoreTools.translate(cartographic.latitude < 0 ? \"Measure.Labels.S\" : \"Measure.Labels.N\");\r\n const longDir = CoreTools.translate(cartographic.longitude < 0 ? \"Measure.Labels.W\" : \"Measure.Labels.E\");\r\n toolTipHtml += `${translateBold(\"LatLong\") + formattedLat + latDir}, ${formattedLong}${longDir}<br>`;\r\n toolTipHtml += `${translateBold(\"Altitude\") + formattedHeight}<br>`;\r\n } catch { }\r\n }\r\n }\r\n\r\n toolTip.innerHTML = toolTipHtml;\r\n return toolTip;\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n if (!this.isCompatibleViewport(context.viewport, false))\r\n return;\r\n\r\n this._acceptedLocations.forEach((marker) => marker.addDecoration(context));\r\n }\r\n /** @internal */\r\n public override decorateSuspended(context: DecorateContext): void { this.decorate(context); }\r\n\r\n protected reportMeasurements(): void {\r\n if (0 === this._acceptedLocations.length)\r\n return;\r\n const briefMsg = this._acceptedLocations[this._acceptedLocations.length - 1].title;\r\n if (undefined === briefMsg)\r\n return;\r\n const msgDetail = new NotifyMessageDetails(OutputMessagePriority.Info, briefMsg, undefined, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(msgDetail);\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n const point = ev.point.clone();\r\n const adjustedPoint = adjustPoint(ev);\r\n const toolTip = await this.getMarkerToolTip(adjustedPoint);\r\n const marker = new MeasureMarker((this._acceptedLocations.length + 1).toString(), toolTip, point, Point2d.create(25, 25));\r\n\r\n this._acceptedLocations.push(marker);\r\n this.reportMeasurements();\r\n this.setupAndPromptForNextAction();\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\r\n await this.onReinitialize();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onUndoPreviousStep(): Promise<boolean> {\r\n if (0 === this._acceptedLocations.length)\r\n return false;\r\n\r\n this._acceptedLocations.pop();\r\n if (0 === this._acceptedLocations.length) {\r\n await this.onReinitialize();\r\n } else {\r\n this.reportMeasurements();\r\n this.setupAndPromptForNextAction();\r\n }\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> {\r\n const tool = new MeasureLocationTool();\r\n if (!await tool.run())\r\n return this.exitTool();\r\n }\r\n}\r\n\r\n/** Report area defined by points using current quantity formatter for area.\r\n * @public\r\n */\r\nexport class MeasureAreaByPointsTool extends PrimitiveTool {\r\n public static override toolId = \"Measure.AreaByPoints\";\r\n public static override iconSpec = \"icon-measure-2d\";\r\n /** @internal */\r\n private _orientationValue: DialogItemValue = { value: ContextRotationId.Top };\r\n /** @internal */\r\n protected readonly _points: Point3d[] = [];\r\n /** @internal */\r\n protected _matrix?: Matrix3d;\r\n /** @internal */\r\n protected _isComplete = false;\r\n /** @internal */\r\n protected _area = 0.0;\r\n /** @internal */\r\n protected _perimeter = 0.0;\r\n /** @internal */\r\n protected _centroid = Point3d.createZero();\r\n /** @internal */\r\n protected _marker?: MeasureLabel;\r\n /** @internal */\r\n protected _acceptedMeasurement?: MeasureMarker;\r\n /** @internal */\r\n protected _lastMotionPt?: Point3d;\r\n\r\n /** @internal */\r\n public get orientation(): ContextRotationId { return this._orientationValue.value as ContextRotationId; }\r\n public set orientation(option: ContextRotationId) { this._orientationValue.value = option; }\r\n\r\n /** @internal */\r\n protected static _orientationName = \"enumAsOrientation\";\r\n /** @internal */\r\n protected static enumAsOrientationMessage(str: string) { return CoreTools.translate(`Settings.Orientation.${str}`); }\r\n /** @internal */\r\n protected static _getEnumAsOrientationDescription = (): PropertyDescription => {\r\n return {\r\n name: MeasureAreaByPointsTool._orientationName,\r\n displayLabel: CoreTools.translate(\"Settings.Orientation.Label\"),\r\n typename: \"enum\",\r\n enum: {\r\n choices: [\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Top\"), value: ContextRotationId.Top },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Front\"), value: ContextRotationId.Front },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Left\"), value: ContextRotationId.Left },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Bottom\"), value: ContextRotationId.Bottom },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Back\"), value: ContextRotationId.Back },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Right\"), value: ContextRotationId.Right },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"View\"), value: ContextRotationId.View },\r\n { label: MeasureAreaByPointsTool.enumAsOrientationMessage(\"Face\"), value: ContextRotationId.Face },\r\n ],\r\n },\r\n };\r\n };\r\n\r\n /** @internal */\r\n public override supplyToolSettingsProperties(): DialogItem[] | undefined {\r\n const initialValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, MeasureAreaByPointsTool._orientationName);\r\n initialValue && (this._orientationValue = initialValue);\r\n const toolSettings = new Array<DialogItem>();\r\n toolSettings.push({ value: this._orientationValue, property: MeasureAreaByPointsTool._getEnumAsOrientationDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } });\r\n return toolSettings;\r\n }\r\n\r\n /** @internal */\r\n public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean> {\r\n if (updatedValue.propertyName === MeasureAreaByPointsTool._orientationName) {\r\n this._orientationValue = updatedValue.value;\r\n if (!this._orientationValue)\r\n return false;\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: MeasureAreaByPointsTool._orientationName, value: this._orientationValue });\r\n await this.onReinitialize();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** @internal */\r\n protected allowView(vp: Viewport) { return vp.view.isSpatialView() || vp.view.isDrawingView(); }\r\n /** @internal */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }\r\n /** @internal */\r\n public override isValidLocation(_ev: BeButtonEvent, _isButtonEvent: boolean): boolean { return true; }\r\n /** @internal */\r\n public override requireWriteableTarget(): boolean { return false; }\r\n /** @internal */\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onUnsuspend() { this.showPrompt(); }\r\n\r\n /** @internal */\r\n protected showPrompt(): void {\r\n let mainMsg = \"Measure.AreaByPoints.Prompts.\";\r\n switch (this._points.length) {\r\n case 0:\r\n mainMsg += \"FirstPoint\";\r\n break;\r\n case 1:\r\n mainMsg += \"SecondPoint\";\r\n break;\r\n case 2:\r\n mainMsg += \"ThirdPoint\";\r\n break;\r\n default:\r\n mainMsg += this._isComplete ? \"FirstPoint\" : \"NextPoint\";\r\n break;\r\n }\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n const acceptMsg = CoreTools.translate(this._isComplete ? \"ElementSet.Inputs.Restart\" : \"ElementSet.Inputs.AcceptPoint\");\r\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, acceptMsg, false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, acceptMsg, false, ToolAssistanceInputMethod.Mouse));\r\n\r\n const resetMsg = CoreTools.translate(\"ElementSet.Inputs.Restart\");\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, resetMsg, false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, resetMsg, false, ToolAssistanceInputMethod.Mouse));\r\n\r\n if (this._points.length > 1)\r\n mouseInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AdditionalPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (0 !== this._points.length)\r\n mouseInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.createKeyboardInfo([ToolAssistance.ctrlKey, \"Z\"]), CoreTools.translate(\"ElementSet.Inputs.UndoLastPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected setupAndPromptForNextAction(): void {\r\n IModelApp.accuSnap.enableSnap(true);\r\n this.showPrompt();\r\n\r\n if (this._isComplete) {\r\n AccuDrawHintBuilder.deactivate();\r\n return;\r\n }\r\n\r\n if (0 === this._points.length)\r\n return;\r\n\r\n const hints = new AccuDrawHintBuilder();\r\n hints.setOrigin(this._points[this._points.length - 1]);\r\n if (this._matrix) {\r\n if (1 === this._points.length) {\r\n hints.setMatrix(this._matrix);\r\n hints.setModeRectangular();\r\n } else if (this._points.length > 1 && !(this._points[this._points.length - 1].isAlmostEqual(this._points[this._points.length - 2]))) {\r\n const xVec = Vector3d.createStartEnd(this._points[this._points.length - 2], this._points[this._points.length - 1]);\r\n const zVec = this._matrix.getColumn(2);\r\n const matrix = Matrix3d.createRigidFromColumns(xVec, zVec, AxisOrder.XZY);\r\n if (undefined !== matrix)\r\n hints.setMatrix(matrix); // Rotate AccuDraw x axis to last segment preserving current up vector...\r\n }\r\n }\r\n hints.setLockZ = true;\r\n hints.sendHints();\r\n }\r\n\r\n /** @internal */\r\n protected getShapePoints(cursorPt: Point3d): Point3d[] {\r\n const points: Point3d[] = [];\r\n if (undefined === this.targetView || this._points.length < 1)\r\n return points;\r\n for (const pt of this._points)\r\n points.push(pt.clone());\r\n\r\n if (this._isComplete || !this._matrix)\r\n return points;\r\n\r\n const normal = this._matrix.getColumn(2);\r\n let currentPt = AccuDrawHintBuilder.projectPointToPlaneInView(cursorPt, points[0], normal, this.targetView, true);\r\n if (undefined === currentPt)\r\n currentPt = cursorPt.clone();\r\n if (2 === points.length && 0 === (IModelApp.toolAdmin.currentInputState.qualifiers & BeModifierKeys.Control)) {\r\n const xDir = Vector3d.createStartEnd(points[0], points[1]);\r\n const xLen = xDir.magnitude();\r\n xDir.normalizeInPlace();\r\n const yDir = xDir.crossProduct(normal);\r\n yDir.normalizeInPlace();\r\n const cornerPt = AccuDrawHintBuilder.projectPointToLineInView(currentPt, points[1], yDir, this.targetView, true);\r\n if (undefined !== cornerPt) {\r\n points.push(cornerPt);\r\n cornerPt.plusScaled(xDir, -xLen, currentPt);\r\n }\r\n }\r\n points.push(currentPt);\r\n\r\n if (points.length > 2)\r\n points.push(points[0].clone());\r\n\r\n return points;\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n if (context.viewport !== this.targetView)\r\n return;\r\n\r\n if (undefined === this._lastMotionPt)\r\n return;\r\n const points = this.getShapePoints(this._lastMotionPt);\r\n if (points.length < 2)\r\n return;\r\n\r\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const colorAccVis = ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);\r\n const colorAccHid = colorAccVis.withAlpha(100);\r\n const fillAccVis = context.viewport.hilite.color.withAlpha(50);\r\n\r\n builderAccVis.setSymbology(colorAccVis, fillAccVis, 3);\r\n builderAccHid.setSymbology(colorAccHid, fillAccVis, 1, LinePixels.Code2);\r\n\r\n if (points.length > 2)\r\n builderAccHid.addShape(points);\r\n\r\n builderAccVis.addLineString(points);\r\n builderAccHid.addLineString(points);\r\n\r\n context.addDecorationFromBuilder(builderAccVis);\r\n context.addDecorationFromBuilder(builderAccHid);\r\n\r\n if (undefined !== this._acceptedMeasurement)\r\n this._acceptedMeasurement.addDecoration(context);\r\n if (undefined !== this._marker)\r\n this._marker.addDecoration(context);\r\n }\r\n\r\n /** @internal */\r\n public override decorateSuspended(context: DecorateContext): void {\r\n if (this._isComplete)\r\n this.decorate(context);\r\n }\r\n\r\n /** @internal */\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (this._points.length > 0 && undefined !== ev.viewport && !this._isComplete) {\r\n if (undefined !== this._lastMotionPt)\r\n this._lastMotionPt.setFrom(ev.point);\r\n else\r\n this._lastMotionPt = ev.point.clone();\r\n ev.viewport.invalidateDecorations();\r\n }\r\n }\r\n\r\n protected async getMarkerToolTip(): Promise<HTMLElement> {\r\n const is3d = (undefined === this.targetView || this.targetView.view.is3d());\r\n const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());\r\n const toolTip = document.createElement(\"div\");\r\n let toolTipHtml = \"\";\r\n\r\n const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.AREA\", \"Units.SQ_M\");\r\n if (undefined !== areaFormatterSpec) {\r\n const formattedArea = IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Area\") + formattedArea}<br>`;\r\n }\r\n const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined !== perimeterFormatterSpec) {\r\n const formattedPerimeter = IModelApp.quantityFormatter.formatQuantity(this._perimeter, perimeterFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Perimeter\") + formattedPerimeter}<br>`;\r\n }\r\n const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined !== coordFormatterSpec) {\r\n let pointAdjusted = this._centroid.clone();\r\n if (isSpatial) {\r\n const globalOrigin = this.iModel.globalOrigin;\r\n pointAdjusted = pointAdjusted.minus(globalOrigin);\r\n }\r\n const formattedPointX = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.x, coordFormatterSpec);\r\n const formattedPointY = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.y, coordFormatterSpec);\r\n const formattedPointZ = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.z, coordFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Centroid\") + formattedPointX}, ${formattedPointY}`;\r\n if (is3d)\r\n toolTipHtml += `, ${formattedPointZ}`;\r\n\r\n toolTipHtml += \"<br>\";\r\n }\r\n\r\n toolTip.innerHTML = toolTipHtml;\r\n return toolTip;\r\n }\r\n\r\n protected reportMeasurements(): void {\r\n if (undefined === this._marker)\r\n return;\r\n const briefMsg = `${CoreTools.translate(\"Measure.Labels.Area\")}: ${this._marker.label}`;\r\n const msgDetail = new NotifyMessageDetails(OutputMessagePriority.Info, briefMsg, undefined, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(msgDetail);\r\n }\r\n\r\n protected async updateTotals(): Promise<void> {\r\n if (this._points.length < 3)\r\n return;\r\n\r\n const result = PolygonOps.centroidAreaNormal(this._points);\r\n if (undefined === result)\r\n return;\r\n\r\n this._area = result.a ? result.a : 0.0;\r\n this._centroid.setFrom(result.origin);\r\n this._perimeter = 0.0;\r\n for (let i = 1; i < this._points.length; i++)\r\n this._perimeter += (this._points[i - 1].distance(this._points[i]));\r\n\r\n const toolTip = await this.getMarkerToolTip();\r\n this._acceptedMeasurement = new MeasureMarker(\"1\", toolTip, this._centroid, Point2d.create(25, 25));\r\n this._marker = undefined;\r\n\r\n const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.AREA\", \"Units.SQ_M\");\r\n if (undefined === areaFormatterSpec)\r\n return;\r\n const formattedTotalArea = IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);\r\n this._marker = new MeasureLabel(this._centroid, formattedTotalArea);\r\n\r\n this.reportMeasurements();\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this.targetView)\r\n return EventHandled.No;\r\n\r\n if (this._isComplete)\r\n await this.onReinitialize();\r\n\r\n if (this._points.length > 1 && !ev.isControlKey) {\r\n const points = this.getShapePoints(ev.point);\r\n if (points.length < 3)\r\n return EventHandled.No;\r\n\r\n this._isComplete = true;\r\n this._points.length = 0;\r\n for (const pt of points)\r\n this._points.push(pt);\r\n\r\n await this.updateTotals();\r\n this.setupAndPromptForNextAction();\r\n return EventHandled.No;\r\n }\r\n\r\n if (undefined === this._matrix && undefined === (this._matrix = AccuDrawHintBuilder.getContextRotation(this.orientation, this.targetView)))\r\n return EventHandled.No;\r\n\r\n const currPt = ev.point.clone();\r\n if (this._points.length > 0) {\r\n const vp = ev.viewport;\r\n const planePt = (vp ? AccuDrawHintBuilder.projectPointToPlaneInView(currPt, this._points[0], this._matrix.getColumn(2), vp, true) : undefined);\r\n if (undefined !== planePt)\r\n currPt.setFrom(planePt);\r\n }\r\n\r\n this._points.push(currPt);\r\n this.setupAndPromptForNextAction();\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onResetButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n await this.onReinitialize();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onReinitialize(): Promise<void> {\r\n this._acceptedMeasurement = undefined;\r\n this._marker = undefined;\r\n this._isComplete = false;\r\n this._points.length = 0;\r\n this._matrix = undefined;\r\n AccuDrawHintBuilder.deactivate();\r\n this.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onUndoPreviousStep(): Promise<boolean> {\r\n if (0 === this._points.length || this._isComplete)\r\n return false;\r\n\r\n this._points.pop();\r\n this.setupAndPromptForNextAction();\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> {\r\n const tool = new MeasureAreaByPointsTool();\r\n if (!await tool.run())\r\n return this.exitTool();\r\n }\r\n}\r\n\r\n/** Base class for mass properties tools.\r\n * @public\r\n */\r\nexport abstract class MeasureElementTool extends PrimitiveTool {\r\n /** @internal */\r\n protected readonly _checkedIds = new Map<Id64String, MassPropertiesResponseProps>();\r\n /** @internal */\r\n protected readonly _acceptedIds: Id64Array = [];\r\n /** @internal */\r\n protected readonly _acceptedMeasurements: MeasureMarker[] = [];\r\n /** @internal */\r\n protected _totalValue: number = 0.0;\r\n /** @internal */\r\n protected _totalMarker?: MeasureLabel;\r\n /** @internal */\r\n protected _useSelection: boolean = false;\r\n\r\n protected abstract getOperation(): MassPropertiesOperation;\r\n\r\n /** @internal */\r\n protected allowView(vp: Viewport) {\r\n return (MassPropertiesOperation.AccumulateVolumes === this.getOperation() ? vp.view.isSpatialView() : (vp.view.isSpatialView() || vp.view.isDrawingView()));\r\n }\r\n\r\n /** @internal */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }\r\n /** @internal */\r\n public override requireWriteableTarget(): boolean { return false; }\r\n /** @internal */\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onCleanup() {\r\n if (0 !== this._acceptedIds.length)\r\n this.iModel.hilited.remove({ elements: this._acceptedIds });\r\n }\r\n\r\n /** @internal */\r\n public override async onUnsuspend() { this.showPrompt(); }\r\n\r\n /** @internal */\r\n protected showPrompt(): void {\r\n const mainMsg = (this._useSelection ? (0 === this._acceptedMeasurements.length ? \"ElementSet.Prompts.ConfirmSelection\" : \"ElementSet.Prompts.InspectResult\") : \"ElementSet.Prompts.IdentifyElement\");\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n if (this._useSelection) {\r\n if (0 === this._acceptedMeasurements.length) {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptSelection\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.RejectSelection\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.RejectSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n } else {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n } else {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (0 !== this._acceptedMeasurements.length) {\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Restart\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Restart\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n }\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected setupAndPromptForNextAction(): void {\r\n this._useSelection = (undefined !== this.targetView && this.targetView.iModel.selectionSet.isActive);\r\n if (!this._useSelection)\r\n this.initLocateElements();\r\n this.showPrompt();\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n if (!this.isCompatibleViewport(context.viewport, false))\r\n return;\r\n\r\n this._acceptedMeasurements.forEach((marker) => marker.addDecoration(context));\r\n if (undefined !== this._totalMarker)\r\n this._totalMarker.addDecoration(context);\r\n }\r\n\r\n /** @internal */\r\n public override decorateSuspended(context: DecorateContext): void { this.decorate(context); }\r\n\r\n protected reportMeasurements(): void {\r\n if (undefined === this._totalMarker)\r\n return;\r\n let label = \"Measure.Labels.\";\r\n switch (this.getOperation()) {\r\n case MassPropertiesOperation.AccumulateLengths:\r\n label += \"Length\";\r\n break;\r\n case MassPropertiesOperation.AccumulateAreas:\r\n label += \"Area\";\r\n break;\r\n case MassPropertiesOperation.AccumulateVolumes:\r\n label += \"Volume\";\r\n break;\r\n default:\r\n return;\r\n }\r\n const briefMsg = `${CoreTools.translate(label)}: ${this._totalMarker.label}`;\r\n const msgDetail = new NotifyMessageDetails(OutputMessagePriority.Info, briefMsg, undefined, OutputMessageType.Sticky);\r\n IModelApp.notifications.outputMessage(msgDetail);\r\n }\r\n\r\n protected async getMarkerToolTip(responseProps: MassPropertiesResponseProps): Promise<HTMLElement> {\r\n const is3d = (undefined === this.targetView || this.targetView.view.is3d());\r\n const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());\r\n const toolTip = document.createElement(\"div\");\r\n let toolTipHtml = \"\";\r\n\r\n switch (this.getOperation()) {\r\n case MassPropertiesOperation.AccumulateLengths: {\r\n const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined !== distanceFormatterSpec) {\r\n const formattedLength = IModelApp.quantityFormatter.formatQuantity(responseProps.length ? responseProps.length : 0, distanceFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Length\") + formattedLength}<br>`;\r\n }\r\n break;\r\n }\r\n case MassPropertiesOperation.AccumulateAreas: {\r\n const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.AREA\", \"Units.SQ_M\");\r\n if (undefined !== areaFormatterSpec) {\r\n const formattedArea = IModelApp.quantityFormatter.formatQuantity(responseProps.area ? responseProps.area : 0, areaFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Area\") + formattedArea}<br>`;\r\n }\r\n if (responseProps.perimeter) {\r\n const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined !== perimeterFormatterSpec) {\r\n const formattedPerimeter = IModelApp.quantityFormatter.formatQuantity(responseProps.perimeter, perimeterFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Perimeter\") + formattedPerimeter}<br>`;\r\n }\r\n }\r\n break;\r\n }\r\n case MassPropertiesOperation.AccumulateVolumes: {\r\n const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.VOLUME\", \"Units.CUB_M\");\r\n if (undefined !== volumeFormatterSpec) {\r\n const formattedVolume = IModelApp.quantityFormatter.formatQuantity(responseProps.volume ? responseProps.volume : 0, volumeFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Volume\") + formattedVolume}<br>`;\r\n }\r\n if (responseProps.area) {\r\n const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.AREA\", \"Units.SQ_M\");\r\n if (undefined !== areaFormatterSpec) {\r\n const formattedArea = IModelApp.quantityFormatter.formatQuantity(responseProps.area, areaFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Area\") + formattedArea}<br>`;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (responseProps.centroid) {\r\n const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined !== coordFormatterSpec) {\r\n let pointAdjusted = Point3d.fromJSON(responseProps.centroid);\r\n if (isSpatial) {\r\n const globalOrigin = this.iModel.globalOrigin;\r\n pointAdjusted = pointAdjusted.minus(globalOrigin);\r\n }\r\n const formattedPointX = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.x, coordFormatterSpec);\r\n const formattedPointY = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.y, coordFormatterSpec);\r\n const formattedPointZ = IModelApp.quantityFormatter.formatQuantity(pointAdjusted.z, coordFormatterSpec);\r\n toolTipHtml += `${translateBold(\"Centroid\") + formattedPointX}, ${formattedPointY}`;\r\n if (is3d)\r\n toolTipHtml += `, ${formattedPointZ}`;\r\n toolTipHtml += \"<br>\";\r\n }\r\n }\r\n\r\n toolTip.innerHTML = toolTipHtml;\r\n return toolTip;\r\n }\r\n\r\n private getResultValue(operation: MassPropertiesOperation, result: MassPropertiesResponseProps): number {\r\n switch (operation) {\r\n case MassPropertiesOperation.AccumulateLengths:\r\n return (result.length ? result.length : 0.0);\r\n case MassPropertiesOperation.AccumulateAreas:\r\n return (result.area ? result.area : 0.0);\r\n case MassPropertiesOperation.AccumulateVolumes:\r\n return (result.volume ? result.volume : 0.0);\r\n }\r\n }\r\n\r\n protected async updateTotals(selectionSetResult?: MassPropertiesResponseProps): Promise<void> {\r\n this._totalValue = 0.0;\r\n this._totalMarker = undefined;\r\n\r\n let labelPt;\r\n const operation = this.getOperation();\r\n if (undefined !== selectionSetResult) {\r\n labelPt = Point3d.fromJSON(selectionSetResult.centroid);\r\n this._totalValue += this.getResultValue(operation, selectionSetResult);\r\n } else if (0 !== this._acceptedIds.length) {\r\n for (const id of this._acceptedIds) {\r\n const result = this._checkedIds.get(id);\r\n if (undefined === result)\r\n continue;\r\n labelPt = Point3d.fromJSON(result.centroid);\r\n this._totalValue += this.getResultValue(operation, result);\r\n }\r\n }\r\n if (0.0 === this._totalValue || undefined === labelPt)\r\n return;\r\n\r\n switch (operation) {\r\n case MassPropertiesOperation.AccumulateLengths:\r\n const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.LENGTH\", \"Units.M\");\r\n if (undefined === distanceFormatterSpec)\r\n return;\r\n const formattedTotalDistance = IModelApp.quantityFormatter.formatQuantity(this._totalValue, distanceFormatterSpec);\r\n this._totalMarker = new MeasureLabel(labelPt, formattedTotalDistance);\r\n break;\r\n case MassPropertiesOperation.AccumulateAreas:\r\n const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.AREA\", \"Units.SQ_M\");\r\n if (undefined === areaFormatterSpec)\r\n return;\r\n const formattedTotalArea = IModelApp.quantityFormatter.formatQuantity(this._totalValue, areaFormatterSpec);\r\n this._totalMarker = new MeasureLabel(labelPt, formattedTotalArea);\r\n break;\r\n case MassPropertiesOperation.AccumulateVolumes:\r\n const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit(\"AecUnits.VOLUME\", \"Units.CUB_M\");\r\n\r\n if (undefined === volumeFormatterSpec)\r\n return;\r\n const formattedTotalVolume = IModelApp.quantityFormatter.formatQuantity(this._totalValue, volumeFormatterSpec);\r\n this._totalMarker = new MeasureLabel(labelPt, formattedTotalVolume);\r\n break;\r\n }\r\n\r\n this.reportMeasurements();\r\n }\r\n\r\n /** @internal */\r\n public async doMeasureSelectedElements(viewport: Viewport): Promise<void> {\r\n const candidates: Id64Array = [];\r\n viewport.iModel.selectionSet.elements.forEach((val) => {\r\n if (!Id64.isInvalid(val) && !Id64.isTransient(val))\r\n candidates.push(val);\r\n });\r\n\r\n if (0 === candidates.length)\r\n return;\r\n\r\n const requestProps: MassPropertiesRequestProps = {\r\n operation: this.getOperation(),\r\n candidates,\r\n };\r\n const result = await this.iModel.getMassProperties(requestProps);\r\n if (BentleyStatus.SUCCESS !== result.status)\r\n return;\r\n\r\n const toolTip = await this.getMarkerToolTip(result);\r\n const point = Point3d.fromJSON(result.centroid);\r\n const marker = new MeasureMarker((this._acceptedMeasurements.length + 1).toString(), toolTip, point, Point2d.create(25, 25));\r\n\r\n this._acceptedMeasurements.push(marker);\r\n await this.updateTotals(result);\r\n this.setupAndPromptForNextAction();\r\n\r\n if (undefined !== viewport)\r\n viewport.invalidateDecorations();\r\n }\r\n\r\n /** @internal */\r\n public override async filterHit(hit: HitDetail, _out?: LocateResponse): Promise<LocateFilterStatus> {\r\n if (!hit.isElementHit)\r\n return LocateFilterStatus.Reject;\r\n\r\n let result = this._checkedIds.get(hit.sourceId);\r\n if (undefined === result) {\r\n const requestProps: MassPropertiesRequestProps = {\r\n operation: this.getOperation(),\r\n candidates: [hit.sourceId],\r\n };\r\n result = await this.iModel.getMassProperties(requestProps);\r\n this._checkedIds.set(hit.sourceId, result);\r\n }\r\n\r\n return (BentleyStatus.SUCCESS === result.status ? LocateFilterStatus.Accept : LocateFilterStatus.Reject);\r\n }\r\n\r\n /** @internal */\r\n public override async onReinitialize(): Promise<void> {\r\n if (this._useSelection)\r\n return this.exitTool();\r\n return this.onRestartTool();\r\n }\r\n\r\n /** @internal */\r\n public override async onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\r\n await this.onReinitialize();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this._useSelection) {\r\n if (0 === this._acceptedMeasurements.length && undefined !== ev.viewport) {\r\n await this.doMeasureSelectedElements(ev.viewport);\r\n if (0 !== this._acceptedMeasurements.length)\r\n return EventHandled.Yes;\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, CoreTools.translate(\"ElementSet.Error.NotSupportedElmType\")));\r\n await this.onReinitialize();\r\n }\r\n return EventHandled.Yes;\r\n }\r\n\r\n const hit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);\r\n if (undefined === hit || !hit.isElementHit)\r\n return EventHandled.No;\r\n\r\n const result = this._checkedIds.get(hit.sourceId);\r\n if (undefined === result)\r\n return EventHandled.No;\r\n if (-1 !== this._acceptedIds.indexOf(hit.sourceId))\r\n return EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing \"not\" cursor...\r\n\r\n const toolTip = await this.getMarkerToolTip(result);\r\n const point = result.centroid ? Point3d.fromJSON(result.centroid) : ev.point.clone();\r\n const marker = new MeasureMarker((this._acceptedMeasurements.length + 1).toString(), toolTip, point, Point2d.create(25, 25));\r\n\r\n this._acceptedMeasurements.push(marker);\r\n this._acceptedIds.push(hit.sourceId);\r\n this.iModel.hilited.add({ elements: hit.sourceId });\r\n\r\n await this.updateTotals();\r\n this.setupAndPromptForNextAction();\r\n\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onUndoPreviousStep(): Promise<boolean> {\r\n if (0 === this._acceptedMeasurements.length)\r\n return false;\r\n\r\n this._acceptedMeasurements.pop();\r\n if (0 === this._acceptedMeasurements.length) {\r\n await this.onReinitialize();\r\n } else {\r\n if (0 !== this._acceptedIds.length) {\r\n this.iModel.hilited.remove({ elements: this._acceptedIds[this._acceptedIds.length - 1] });\r\n this._acceptedIds.pop();\r\n }\r\n\r\n await this.updateTotals();\r\n this.setupAndPromptForNextAction();\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/** Report accumulated lengths of selected elements using the current quantity formatter for length.\r\n * @public\r\n */\r\nexport class MeasureLengthTool extends MeasureElementTool {\r\n public static override toolId = \"Measure.Length\";\r\n public static override iconSpec = \"icon-measure\";\r\n protected getOperation(): MassPropertiesOperation { return MassPropertiesOperation.AccumulateLengths; }\r\n\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> {\r\n const tool = new MeasureLengthTool();\r\n if (!await tool.run())\r\n return this.exitTool();\r\n }\r\n}\r\n\r\n/** Report accumulated areas of selected elements using the current quantity formatter for area.\r\n * @public\r\n */\r\nexport class MeasureAreaTool extends MeasureElementTool {\r\n public static override toolId = \"Measure.Area\";\r\n public static override iconSpec = \"icon-measure-area\";\r\n protected getOperation(): MassPropertiesOperation { return MassPropertiesOperation.AccumulateAreas; }\r\n\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> {\r\n const tool = new MeasureAreaTool();\r\n if (!await tool.run())\r\n return this.exitTool();\r\n }\r\n}\r\n\r\n/** Report accumulated volumes of selected elements using the current quantity formatter for volume.\r\n * @public\r\n */\r\nexport class MeasureVolumeTool extends MeasureElementTool {\r\n public static override toolId = \"Measure.Volume\";\r\n public static override iconSpec = \"icon-measure-3d\";\r\n protected getOperation(): MassPropertiesOperation { return MassPropertiesOperation.AccumulateVolumes; }\r\n\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> {\r\n const tool = new MeasureVolumeTool();\r\n if (!await tool.run())\r\n return this.exitTool();\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"MeasureTool.js","sourceRoot":"","sources":["../../../src/tools/MeasureTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,IAAI,EAAyB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAC3K,OAAO,EAAE,QAAQ,EAAuB,UAAU,EAAE,uBAAuB,EAA2D,MAAM,oBAAoB,CAAC;AAEjK,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAa,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIxG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAiB,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,yBAAyB,EAAoD,MAAM,kBAAkB,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,MAAM,SAAS,CAAC,SAAS,CAAC,kBAAkB,GAAG,EAAE,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,uCAAuC,CAAC,GAAW,EAAE,mBAA2B;IAC7F,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnE,IAAI,SAAS,KAAK,WAAW;QAC3B,OAAO,SAAS,CAAC;IACnB,OAAO,SAAS,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;QACrD,mBAAmB;QACnB,WAAW;QACX,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,YAAY;IACT,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IACzB,KAAK,CAAS;IAErB,YAAY,aAAqB,EAAE,KAAa;QAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,cAAc,CAAC,GAA6B;QACjD,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC;QACrF,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC;QAEnE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;QAC1B,GAAG,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACjC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;QAC1B,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;QACpB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;QAE7E,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;QACxB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACzB,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAEM,WAAW,CAAC,EAAY;QAC7B,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,+BAA+B;QAC/F,OAAO,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEM,aAAa,CAAC,OAAwB;QAC3C,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,aAAc,SAAQ,MAAM;IACzB,UAAU,GAAY,KAAK,CAAC;IACnC,YAAY,KAAa,EAAE,KAAkB,EAAE,aAAqB,EAAE,IAAW;QAC/E,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAE3B,MAAM,cAAc,GAAG,CAAC,GAA6B,EAAE,EAAE;YACvD,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,GAAG,CAAC,SAAS,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAC7H,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC;IAEe,aAAa,CAAC,GAAkB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,wCAAwC;IAEpG,YAAY,CAAC,EAAiB;QAC5C,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,QAAQ;YACnE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAEe,YAAY;QAC1B,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK;YACZ,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,+DAA+D;IAC3G,CAAC;CACF;AAOD,gBAAgB;AAChB,SAAS,WAAW,CAAC,EAAiB,EAAE,QAAyB,EAAE,SAA2B;IAC5F,6FAA6F;IAC7F,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IACvC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO;QACtC,OAAO,EAAE,CAAC,KAAK,CAAC;IAElB,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9G,OAAO,SAAS,EAAE,sBAAsB,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,6HAA6H;IAC7H,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC;gBAClC,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAEnC,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC;gBAChC,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,SAAS;QACX,KAAK,MAAM,GAAG,IAAI,SAAS;YACzB,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC;gBAClC,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAEvC,OAAO,EAAE,CAAC,KAAK,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC7C,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,CAAU,QAAQ,GAAG,uBAAuB,CAAC;IAC1D,gBAAgB;IACG,aAAa,GAAG,IAAI,KAAK,EAAY,CAAC;IACzD,gBAAgB;IACG,iBAAiB,GAAG,IAAI,KAAK,EAAW,CAAC;IAC5D,gBAAgB;IACN,cAAc,GAAW,GAAG,CAAC;IACvC,gBAAgB;IACN,oBAAoB,CAAgB;IAC9C,gBAAgB;IACN,WAAW,CAAU;IAC/B,gBAAgB;IACN,aAAa,CAAW;IAClC,gBAAgB;IACN,qBAAqB,CAAW;IAC1C,gBAAgB;IACN,oBAAoB,CAAiB;IAC/C,gBAAgB;IACN,mBAAmB,CAAiB;IAC9C,gBAAgB;IACN,wBAAwB,CAAc;IAEhD,gBAAgB;IACN,SAAS,CAAC,EAAY,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAChG,gBAAgB;IACA,oBAAoB,CAAC,EAAwB,EAAE,oBAA6B,IAAa,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnN,gBAAgB;IACA,eAAe,CAAC,GAAkB,EAAE,cAAuB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACtG,gBAAgB;IACA,sBAAsB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACnE,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACxG,IAAI,CAAC,mBAAmB,GAAG,MAAM,uCAAuC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAGxG,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACpG,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAClF,IAAI,CAAC,oBAAoB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAE1G,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACjF,IAAI,CAAC,mBAAmB,GAAG,MAAM,uCAAuC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,SAAS;QAC7B,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;QAC5C,CAAC;QAED,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE1D,gBAAgB;IACN,UAAU;QAClB,MAAM,eAAe,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC7M,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1L,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtL,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YACrL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YACnL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YAClL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7N,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrO,CAAC;QAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,SAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACN,2BAA2B;QACnC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACjC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC9I,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,gBAAgB;IACA,iBAAiB,CAAC,EAAU,IAAa,OAAO,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1F,gBAAgB;IACN,aAAa;QACrB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACpE,OAAO,SAAS,CAAC;QAEnB,MAAM,UAAU,GAAc,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACxF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa;gBAClC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,gBAAgB;IACA,qBAAqB,CAAC,IAAe;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,SAAS,KAAK,UAAU;YAC1B,OAAO,SAAS,CAAC;QACnB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IACN,sBAAsB,CAAC,OAAwB,EAAE,MAAiB,EAAE,cAAyB;QACrG,IAAI,aAAa,GAAG,GAAG,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;YAChD,aAAa,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,GAAG,KAAK,aAAa;YACvB,OAAO;QAET,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAChD,IAAI,aAAa,KAAK,SAAS;YAC7B,OAAO;QACT,MAAM,sBAAsB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACpF,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB;IACN,YAAY,CAAC,OAAwB,EAAE,GAAQ;QACvD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjD,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC3E,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAc,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvF,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAc,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzF,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAc,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxF,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5D,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhD,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB;IACN,iBAAiB,CAAC,OAAwB,EAAE,WAAoB;QACxE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YACrD,OAAO;QAET,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAClI,MAAM,SAAS,GAAc,EAAE,CAAC;YAChC,MAAM,iBAAiB,GAAc,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B;gBACxD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEnD,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAChF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAElD,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3D,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAEhD,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE/C,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7E,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAChF,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9F,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE/C,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3D,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAE7E,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU;oBACvB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAChD,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,oBAAoB;YACzC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,SAAS,KAAK,UAAU;YAC1B,OAAO;QAET,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAExD,MAAM,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3G,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9F,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE1C,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB;IACA,QAAQ,CAAC,OAAwB,IAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpG,gBAAgB;IACA,iBAAiB,CAAC,OAAwB,IAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5G,gBAAgB;IACA,KAAK,CAAC,aAAa,CAAC,EAAiB;QACnD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YACvB,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClF,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC;YAC7C,CAAC;YACD,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAES,kBAAkB;QAC1B,IAAI,SAAS,KAAK,IAAI,CAAC,oBAAoB;YACzC,OAAO;QACT,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACnL,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtH,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,YAAY;QAC1B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB;YACtC,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC;QACtC,IAAI,GAAG,KAAK,IAAI,CAAC,cAAc;YAC7B,OAAO;QAET,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAChD,IAAI,SAAS,KAAK,aAAa;YAC7B,OAAO;QAET,MAAM,sBAAsB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC9G,IAAI,CAAC,oBAAoB,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;QACpI,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,KAAa,EAAE,KAAc,EAAE,GAAY,EAAE,KAAgB;QAC9G,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAG9C,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACxD,IAAI,SAAS,KAAK,qBAAqB;YACrC,OAAO,OAAO,CAAC;QAEjB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QACtG,WAAW,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,iBAAiB,MAAM,CAAC;QAEtE,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACpD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;gBACrC,MAAM,cAAc,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBAC7F,WAAW,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,cAAc,MAAM,CAAC;YAClE,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAErD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;YACrC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,WAAW,GAAG,GAAG,CAAC;YACtB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9C,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAClD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC;YAED,CAAC;gBACC,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACxG,WAAW,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,eAAe,KAAK,eAAe,EAAE,CAAC;gBACtF,IAAI,IAAI;oBACN,WAAW,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxC,WAAW,IAAI,MAAM,CAAC;YACxB,CAAC;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACpG,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACpG,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACpG,WAAW,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,KAAK,aAAa,EAAE,CAAC;YAChF,IAAI,IAAI;gBACN,WAAW,IAAI,KAAK,aAAa,EAAE,CAAC;YACtC,WAAW,IAAI,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC7G,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC7G,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC7G,WAAW,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,eAAe,KAAK,eAAe,EAAE,CAAC;YACjF,IAAI,IAAI;gBACN,WAAW,IAAI,KAAK,eAAe,EAAE,CAAC;YACxC,WAAW,IAAI,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IACN,KAAK,CAAC,2BAA2B,CAAC,GAAQ,EAAE,EAAiB,EAAE,aAAsB;QAC7F,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnK,IAAI,CAAC,aAAa,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa;YACvF,OAAO;QACT,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACvC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACN,KAAK,CAAC,iBAAiB;QAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBACrD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrE,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;gBAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,OAAO,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAClD,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;gBAE9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;gBACzF,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAE/I,MAAM,mBAAmB,GAAG,CAAC,EAAiB,EAAE,EAAE;oBAChD,IAAI,EAAE,CAAC,MAAM;wBACX,OAAO,IAAI,CAAC;oBAEd,IAAI,cAAyC,CAAC;oBAC9C,IAAI,YAAuC,CAAC;oBAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;4BAChC,SAAS;wBACX,cAAc,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAClE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC;wBAC1B,MAAM;oBACR,CAAC;oBAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;wBAC1C,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;wBACxD,IAAI,WAAW,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU;4BACvC,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,8DAA8D;oBAC5I,CAAC;oBAED,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;wBAC3B,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;gBAEF,MAAM,CAAC,aAAa,GAAG,mBAAmB,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACN,gBAAgB,CAAC,EAAa;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,SAAS,KAAK,EAAE,IAAI,EAAE,CAAC,yBAAyB;YAClD,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAEpD,oHAAoH;QACpH,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC/G,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7H,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAChF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAClC,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM;wBAC3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACrC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY;YACnD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,eAAe,CAAC,EAAiB;QACrD,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,kBAAkB;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM;YACxE,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC3E,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC7C,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,CAAU,QAAQ,GAAG,uBAAuB,CAAC;IAC1D,gBAAgB;IACG,kBAAkB,GAAoB,EAAE,CAAC;IAC5D,gBAAgB;IACN,SAAS,CAAC,EAAY,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAChG,gBAAgB;IACA,oBAAoB,CAAC,EAAwB,EAAE,oBAA6B,IAAa,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnN,gBAAgB;IACA,eAAe,CAAC,GAAkB,EAAE,cAAuB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACtG,gBAAgB;IACA,sBAAsB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACnE,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE1D,gBAAgB;IACN,UAAU;QAClB,MAAM,eAAe,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACpI,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1L,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtL,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACzC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YACpL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrL,CAAC;QAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,SAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACN,2BAA2B;QACnC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,KAAc;QAC7C,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,kBAAkB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACvG,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;YACrC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9C,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACxG,WAAW,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,eAAe,KAAK,eAAe,EAAE,CAAC;YACtF,IAAI,IAAI;gBACN,WAAW,IAAI,KAAK,eAAe,EAAE,CAAC;YAExC,WAAW,IAAI,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,oBAAoB,GAAG,MAAM,uCAAuC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;YAC1G,IAAI,SAAS,KAAK,oBAAoB,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;gBAC3E,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBACpE,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACvH,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACzH,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;oBAC5G,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;oBACxG,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;oBAC1G,WAAW,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,MAAM,KAAK,aAAa,GAAG,OAAO,MAAM,CAAC;oBACrG,WAAW,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,eAAe,MAAM,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IACA,QAAQ,CAAC,OAAwB;QAC/C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YACrD,OAAO;QAET,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,gBAAgB;IACA,iBAAiB,CAAC,OAAwB,IAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnF,kBAAkB;QAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM;YACtC,OAAO;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnF,IAAI,SAAS,KAAK,QAAQ;YACxB,OAAO;QACT,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtH,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE1H,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,eAAe,CAAC,GAAkB;QACtD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,kBAAkB;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM;YACtC,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IACjD,MAAM,CAAU,MAAM,GAAG,sBAAsB,CAAC;IAChD,MAAM,CAAU,QAAQ,GAAG,iBAAiB,CAAC;IACpD,gBAAgB;IACR,iBAAiB,GAAoB,EAAE,KAAK,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC;IAC9E,gBAAgB;IACG,OAAO,GAAc,EAAE,CAAC;IAC3C,gBAAgB;IACN,OAAO,CAAY;IAC7B,gBAAgB;IACN,WAAW,GAAG,KAAK,CAAC;IAC9B,gBAAgB;IACN,KAAK,GAAG,GAAG,CAAC;IACtB,gBAAgB;IACN,UAAU,GAAG,GAAG,CAAC;IAC3B,gBAAgB;IACN,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3C,gBAAgB;IACN,OAAO,CAAgB;IACjC,gBAAgB;IACN,oBAAoB,CAAiB;IAC/C,gBAAgB;IACN,aAAa,CAAW;IAElC,gBAAgB;IAChB,IAAW,WAAW,KAAwB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAA0B,CAAC,CAAC,CAAC;IACzG,IAAW,WAAW,CAAC,MAAyB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAE5F,gBAAgB;IACN,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;IACxD,gBAAgB;IACN,MAAM,CAAC,wBAAwB,CAAC,GAAW,IAAI,OAAO,SAAS,CAAC,SAAS,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrH,gBAAgB;IACN,MAAM,CAAC,gCAAgC,GAAG,GAAwB,EAAE;QAC5E,OAAO;YACL,IAAI,EAAE,uBAAuB,CAAC,gBAAgB;YAC9C,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,4BAA4B,CAAC;YAC/D,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,GAAG,EAAE;oBAChG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE;oBACpG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE;oBAClG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE;oBACtG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE;oBAClG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE;oBACpG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE;oBAClG,EAAE,KAAK,EAAE,uBAAuB,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE;iBACnG;aACF;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB;IACA,4BAA4B;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAC7I,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,KAAK,EAAc,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,CAAC,gCAAgC,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/K,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,8BAA8B,CAAC,YAAoC;QACvF,IAAI,YAAY,CAAC,YAAY,KAAK,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;YAC3E,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBACzB,OAAO,KAAK,CAAC;YACf,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,uBAAuB,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACtK,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IACN,SAAS,CAAC,EAAY,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAChG,gBAAgB;IACA,oBAAoB,CAAC,EAAwB,EAAE,oBAA6B,IAAa,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnN,gBAAgB;IACA,eAAe,CAAC,GAAkB,EAAE,cAAuB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACtG,gBAAgB;IACA,sBAAsB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACnE,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE1D,gBAAgB;IACN,UAAU;QAClB,IAAI,OAAO,GAAG,+BAA+B,CAAC;QAC9C,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC;gBACJ,OAAO,IAAI,YAAY,CAAC;gBACxB,MAAM;YACR,KAAK,CAAC;gBACJ,OAAO,IAAI,aAAa,CAAC;gBACzB,MAAM;YACR,KAAK,CAAC;gBACJ,OAAO,IAAI,YAAY,CAAC;gBACxB,MAAM;YACR;gBACE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;gBACzD,MAAM;QACV,CAAC;QACD,MAAM,eAAe,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtG,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;QACxH,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/I,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3I,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAClE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5I,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3I,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/N,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAErO,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,SAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACN,2BAA2B;QACnC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,mBAAmB,CAAC,UAAU,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO;QAET,MAAM,KAAK,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9B,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpI,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1E,IAAI,SAAS,KAAK,MAAM;oBACtB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,yEAAyE;YACtG,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IAED,gBAAgB;IACN,cAAc,CAAC,QAAiB;QACxC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO;YACnC,OAAO,MAAM,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,GAAG,mBAAmB,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClH,IAAI,SAAS,KAAK,SAAS;YACzB,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7G,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACjH,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IACA,QAAQ,CAAC,OAAwB;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU;YACtC,OAAO;QAET,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa;YAClC,OAAO;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACnB,OAAO;QAET,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9F,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE/D,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACnB,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAI,SAAS,KAAK,IAAI,CAAC,oBAAoB;YACzC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB;IACA,iBAAiB,CAAC,OAAwB;QACxD,IAAI,IAAI,CAAC,WAAW;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,aAAa,CAAC,EAAiB;QACnD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9E,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa;gBAClC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;gBAErC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxC,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB;QAC9B,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,MAAM,iBAAiB,GAAG,MAAM,uCAAuC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QACvG,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAChG,WAAW,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC;QAChE,CAAC;QACD,MAAM,sBAAsB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC3G,IAAI,SAAS,KAAK,sBAAsB,EAAE,CAAC;YACzC,MAAM,kBAAkB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;YAC/G,WAAW,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,kBAAkB,MAAM,CAAC;QAC1E,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACvG,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;YACrC,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC9C,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACxG,WAAW,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,eAAe,KAAK,eAAe,EAAE,CAAC;YACpF,IAAI,IAAI;gBACN,WAAW,IAAI,KAAK,eAAe,EAAE,CAAC;YAExC,WAAW,IAAI,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,kBAAkB;QAC1B,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC5B,OAAO;QACT,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACxF,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtH,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,YAAY;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,OAAO;QAET,MAAM,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO;QAET,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAEzB,MAAM,iBAAiB,GAAG,MAAM,uCAAuC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QACvG,IAAI,SAAS,KAAK,iBAAiB;YACjC,OAAO;QACT,MAAM,kBAAkB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACrG,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEpE,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,YAAY,CAAC,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW;YAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBACnB,OAAO,YAAY,CAAC,EAAE,CAAC;YAEzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACxB,KAAK,MAAM,EAAE,IAAI,MAAM;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAExB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxI,OAAO,YAAY,CAAC,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;YACvB,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/I,IAAI,SAAS,KAAK,OAAO;gBACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,eAAe,CAAC,EAAiB;QACrD,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,cAAc;QAClC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,mBAAmB,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,kBAAkB;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW;YAC/C,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,aAAa;IAC5D,gBAAgB;IACG,WAAW,GAAG,IAAI,GAAG,EAA2C,CAAC;IACpF,gBAAgB;IACG,YAAY,GAAc,EAAE,CAAC;IAChD,gBAAgB;IACG,qBAAqB,GAAoB,EAAE,CAAC;IAC/D,gBAAgB;IACN,WAAW,GAAW,GAAG,CAAC;IACpC,gBAAgB;IACN,YAAY,CAAgB;IACtC,gBAAgB;IACN,aAAa,GAAY,KAAK,CAAC;IAIzC,gBAAgB;IACN,SAAS,CAAC,EAAY;QAC9B,OAAO,CAAC,uBAAuB,CAAC,iBAAiB,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC9J,CAAC;IAED,gBAAgB;IACA,oBAAoB,CAAC,EAAwB,EAAE,oBAA6B,IAAa,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnN,gBAAgB;IACA,sBAAsB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACnE,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,SAAS;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM;YAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE1D,gBAAgB;IACN,UAAU;QAClB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;QACrM,MAAM,eAAe,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtG,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBAC5C,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5L,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1L,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5L,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7L,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YAClL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1L,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YACxL,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBAC5C,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpL,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;YACrL,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,SAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACN,2BAA2B;QACnC,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,gBAAgB;IACA,QAAQ,CAAC,OAAwB;QAC/C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YACrD,OAAO;QAET,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY;YACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB;IACA,iBAAiB,CAAC,OAAwB,IAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnF,kBAAkB;QAC1B,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY;YACjC,OAAO;QACT,IAAI,KAAK,GAAG,iBAAiB,CAAC;QAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC5B,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,KAAK,IAAI,QAAQ,CAAC;gBAClB,MAAM;YACR,KAAK,uBAAuB,CAAC,eAAe;gBAC1C,KAAK,IAAI,MAAM,CAAC;gBAChB,MAAM;YACR,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,KAAK,IAAI,QAAQ,CAAC;gBAClB,MAAM;YACR;gBACE,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtH,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,aAA0C;QACzE,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,QAAQ,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC5B,KAAK,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC/C,MAAM,qBAAqB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBAC1G,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;oBACxC,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;oBAC3I,WAAW,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,eAAe,MAAM,CAAC;gBACpE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC7C,MAAM,iBAAiB,GAAG,MAAM,uCAAuC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;gBACvG,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBACpC,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACjI,WAAW,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC;gBAChE,CAAC;gBACD,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;oBAC5B,MAAM,sBAAsB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;oBAC3G,IAAI,SAAS,KAAK,sBAAsB,EAAE,CAAC;wBACzC,MAAM,kBAAkB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;wBACvH,WAAW,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,kBAAkB,MAAM,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC/C,MAAM,mBAAmB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;gBAC5G,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;oBACtC,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;oBACzI,WAAW,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,eAAe,MAAM,CAAC;gBACpE,CAAC;gBACD,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;oBACvB,MAAM,iBAAiB,GAAG,MAAM,uCAAuC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;oBACvG,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;wBACpC,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;wBACxG,WAAW,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC;oBAChE,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,kBAAkB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACvG,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;gBACrC,IAAI,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC9C,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACxG,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACxG,WAAW,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,eAAe,KAAK,eAAe,EAAE,CAAC;gBACpF,IAAI,IAAI;oBACN,WAAW,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxC,WAAW,IAAI,MAAM,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,SAAkC,EAAE,MAAmC;QAC5F,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,uBAAuB,CAAC,eAAe;gBAC1C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,kBAAgD;QAC3E,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9B,IAAI,OAAO,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,SAAS,KAAK,MAAM;oBACtB,SAAS;gBACX,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,IAAI,SAAS,KAAK,OAAO;YACnD,OAAO;QAET,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,MAAM,qBAAqB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBAC1G,IAAI,SAAS,KAAK,qBAAqB;oBACrC,OAAO;gBACT,MAAM,sBAAsB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;gBACnH,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;gBACtE,MAAM;YACR,KAAK,uBAAuB,CAAC,eAAe;gBAC1C,MAAM,iBAAiB,GAAG,MAAM,uCAAuC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;gBACvG,IAAI,SAAS,KAAK,iBAAiB;oBACjC,OAAO;gBACT,MAAM,kBAAkB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAC3G,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAClE,MAAM;YACR,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,MAAM,mBAAmB,GAAG,MAAM,uCAAuC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;gBAE5G,IAAI,SAAS,KAAK,mBAAmB;oBACnC,OAAO;gBACT,MAAM,oBAAoB,GAAG,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;gBAC/G,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBACpE,MAAM;QACV,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,yBAAyB,CAAC,QAAkB;QACvD,MAAM,UAAU,GAAc,EAAE,CAAC;QACjC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAChD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM;YACzB,OAAO;QAET,MAAM,YAAY,GAA+B;YAC/C,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9B,UAAU;SACX,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM;YACzC,OAAO;QAET,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE7H,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,SAAS,KAAK,QAAQ;YACxB,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,SAAS,CAAC,GAAc,EAAE,IAAqB;QACnE,IAAI,CAAC,GAAG,CAAC,YAAY;YACnB,OAAO,kBAAkB,CAAC,MAAM,CAAC;QAEnC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,YAAY,GAA+B;gBAC/C,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC9B,UAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC3B,CAAC;YACF,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3G,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,cAAc;QAClC,IAAI,IAAI,CAAC,aAAa;YACpB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,eAAe,CAAC,GAAkB;QACtD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACzE,MAAM,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM;oBACzC,OAAO,YAAY,CAAC,GAAG,CAAC;gBAC1B,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;gBAC1J,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,CAAC;YACD,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QACtH,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY;YACxC,OAAO,YAAY,CAAC,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,YAAY,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,+EAA+E;QAE1G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE7H,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtC,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,kBAAkB;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM;YACzC,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IAChD,MAAM,CAAU,MAAM,GAAG,gBAAgB,CAAC;IAC1C,MAAM,CAAU,QAAQ,GAAG,cAAc,CAAC;IACvC,YAAY,KAA8B,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEvG,gBAAgB;IACT,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,MAAM,CAAU,MAAM,GAAG,cAAc,CAAC;IACxC,MAAM,CAAU,QAAQ,GAAG,mBAAmB,CAAC;IAC5C,YAAY,KAA8B,OAAO,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC;IAErG,gBAAgB;IACT,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IAChD,MAAM,CAAU,MAAM,GAAG,gBAAgB,CAAC;IAC1C,MAAM,CAAU,QAAQ,GAAG,iBAAiB,CAAC;IAC1C,YAAY,KAA8B,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEvG,gBAAgB;IACT,KAAK,CAAC,aAAa;QACxB,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitiveTool.js","sourceRoot":"","sources":["../../../src/tools/PrimitiveTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { BriefcaseConnection } from \"../BriefcaseConnection\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../NotificationManager\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { AccuDrawShortcuts } from \"./AccuDrawTool\";\r\nimport { BeButton, BeButtonEvent, CoordinateLockOverrides, CoreTools, InteractiveTool } from \"./Tool\";\r\n\r\n/** The PrimitiveTool class can be used to implement tools to create or modify geometric elements.\r\n * @see [Writing a PrimitiveTool]($docs/learning/frontend/primitivetools.md)\r\n * @public\r\n * @extensions\r\n */\r\nexport abstract class PrimitiveTool extends InteractiveTool {\r\n /** The viewport within which the tool operates.\r\n * @note This property is only initialized if [[run]] returns `true`, causing the tool to be installed.\r\n */\r\n public targetView?: Viewport;\r\n private _targetModelId?: string;\r\n public get targetModelId() { return this._targetModelId; }\r\n public set targetModelId(v: string | undefined) { this._targetModelId = v; }\r\n public targetIsLocked: boolean = false; // If target model is known, set this to true in constructor and override getTargetModel.\r\n\r\n /** Get the iModel on which this tool operates.\r\n * @note The iModel is obtained from [[targetView]], so should only be invoked if the tool installed successfully.\r\n */\r\n public get iModel(): IModelConnection {\r\n assert(undefined !== this.targetView);\r\n return this.targetView.view.iModel;\r\n }\r\n\r\n /** Get the briefcase on which this tool operates, if the tool has successfully installed and the target [[iModel]] is a briefcase. */\r\n public get briefcase(): BriefcaseConnection | undefined {\r\n const iModel = this.targetView?.view.iModel;\r\n return iModel?.isBriefcaseConnection() ? iModel : undefined;\r\n }\r\n\r\n /**\r\n * Establish this tool as the active PrimitiveTool.\r\n * @return true if this tool was installed (though it may have exited too)\r\n * @note If you override this method you **must** call `super.run` and return false if it returns false.\r\n */\r\n public override async run(..._args: any[]): Promise<boolean> {\r\n const { toolAdmin, viewManager } = IModelApp;\r\n if (!this.isCompatibleViewport(viewManager.selectedView, false) || !await toolAdmin.onInstallTool(this))\r\n return false;\r\n\r\n await toolAdmin.startPrimitiveTool(this);\r\n await toolAdmin.onPostInstallTool(this);\r\n return true;\r\n }\r\n\r\n /** Determine whether the supplied Viewport is compatible with this tool.\r\n * @param vp the Viewport to check\r\n */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean {\r\n if (undefined === vp)\r\n return false; // No views are open...\r\n\r\n const view = vp.view;\r\n const iModel = view.iModel;\r\n\r\n if (this.requireWriteableTarget() && iModel.isReadonly)\r\n return false; // this Tool can't be used when iModel is read only.\r\n\r\n if (undefined === this.targetView || (!this.targetIsLocked && isSelectedViewChange))\r\n this.targetView = vp; // Update target to new view if undefined or still free to change.\r\n\r\n if (undefined === this.targetModelId && (!this.targetIsLocked || vp === this.targetView))\r\n return true; // Accept if this view is current target or any type of model/view is still ok as target is still free to change.\r\n\r\n if (iModel !== this.iModel)\r\n return false; // Once a ViewState has been established, only accept viewport showing the same iModel.\r\n\r\n if (this.targetModelId)\r\n return view.viewsModel(this.targetModelId); // If a specific target model is specified, only allow view that shows it.\r\n\r\n if (view.isSpatialView() && this.targetView.view.isSpatialView())\r\n return true; // No specific target, two spatial views are considered compatible.\r\n\r\n let allowView = false;\r\n const targetView = this.targetView;\r\n view.forEachModel((model) => {\r\n if (!allowView && targetView.view.viewsModel(model.id))\r\n allowView = true;\r\n });\r\n\r\n return allowView; // Accept if this view shares a model in common with target.\r\n }\r\n\r\n /**\r\n * Checks that the adjusted point from the supplied button event is within the project extents for spatial views. The range of physical geometry\r\n * should always be fully inside the project extents. Only checking the adjusted point won't absolutely guarantee that a tool doesn't create/move geometry\r\n * outside the project extents, but it will be sufficient to handle most cases and provide good feedback to the user.\r\n * @return true if ev is acceptable.\r\n */\r\n public override isValidLocation(ev: BeButtonEvent, isButtonEvent: boolean): boolean {\r\n const vp = ev.viewport;\r\n if (undefined === vp)\r\n return false;\r\n\r\n if (isButtonEvent && BeButton.Data !== ev.button)\r\n return true;\r\n\r\n const view = vp.view;\r\n if (!view.isSpatialView())\r\n return true;\r\n\r\n // NOTE: If points aren't being adjusted then the tool shouldn't be creating geometry currently (ex. locating elements) and we shouldn't filter point...\r\n if (0 !== (IModelApp.toolAdmin.toolState.coordLockOvr & CoordinateLockOverrides.ACS))\r\n return true;\r\n\r\n // We know the tool isn't doing a locate, we don't know what it will do with this point. Minimize erroneous filtering by restricting the check to when AccuSnap is tool enable (not user enabled)...\r\n if (!IModelApp.accuSnap.isSnapEnabled)\r\n return true;\r\n\r\n const extents = view.iModel.projectExtents;\r\n if (extents.containsPoint(ev.point))\r\n return true;\r\n\r\n if (isButtonEvent && ev.isDown)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, CoreTools.translate(\"ElementSet.Error.ProjectExtents\")));\r\n\r\n return false;\r\n }\r\n\r\n /** Called on data button down event to lock the tool to its current target model. */\r\n public autoLockTarget(): void {\r\n if (undefined === this.targetView)\r\n return;\r\n\r\n this.targetIsLocked = true;\r\n }\r\n\r\n /** Returns the prompt based on the tool's current state. */\r\n public getPrompt(): string { return \"\"; }\r\n\r\n /** Called from isCompatibleViewport to check for a read only iModel, which is not a valid target for tools that create or modify elements. */\r\n public requireWriteableTarget(): boolean { return true; }\r\n\r\n /**\r\n * Called when active view changes. Tool may choose to restart or exit based on current view type.\r\n * @param _previous The previously active view.\r\n * @param current The new active view.\r\n */\r\n public override async onSelectedViewportChanged(_previous: Viewport | undefined, current: Viewport | undefined): Promise<void> {\r\n if (this.isCompatibleViewport(current, true))\r\n return;\r\n return this.onRestartTool();\r\n }\r\n\r\n /**\r\n * Called when an external event may invalidate the current tool's state.\r\n * Examples are undo, which may invalidate any references to elements, or an incompatible active view change.\r\n * The active tool is expected to call installTool with a new instance, or exitTool to start the default tool.\r\n * ```ts\r\n * const tool = new MyPrimitiveTool();\r\n * if (!await tool.run())\r\n * return this.exitTool(); // Don't leave current instance active if new instance rejects install...\r\n * ```\r\n */\r\n public abstract onRestartTool(): Promise<void>;\r\n\r\n /**\r\n * Called to reset tool to initial state. PrimitiveTool implements this method to call onRestartTool.\r\n */\r\n public override async onReinitialize(): Promise<void> { return this.onRestartTool(); }\r\n\r\n public async exitTool() { return IModelApp.toolAdmin.startDefaultTool(); }\r\n\r\n /**\r\n * Called to reverse to a previous tool state (ex. undo last data button).\r\n * @return false to instead reverse the most recent transaction.\r\n */\r\n public async onUndoPreviousStep(): Promise<boolean> { return false; }\r\n\r\n /** @internal */\r\n public async undoPreviousStep(): Promise<boolean> {\r\n if (!await this.onUndoPreviousStep())\r\n return false;\r\n\r\n AccuDrawShortcuts.processPendingHints(); // Process pending hints from onUndoPreviousStep before calling updateDynamics...\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n IModelApp.toolAdmin.updateDynamics(undefined, undefined, true); // Don't wait for motion to update dynamics...\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Called to reinstate to a previous tool state (ex. redo last data button).\r\n * @return false to instead reinstate the most recent transaction.\r\n */\r\n public async onRedoPreviousStep(): Promise<boolean> { return false; }\r\n\r\n /** @internal */\r\n public async redoPreviousStep(): Promise<boolean> {\r\n if (!await this.onRedoPreviousStep())\r\n return false;\r\n\r\n AccuDrawShortcuts.processPendingHints(); // Process pending hints from onRedoPreviousStep before calling updateDynamics...\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n IModelApp.toolAdmin.updateDynamics(undefined, undefined, true); // Don't wait for motion to update dynamics...\r\n\r\n return true;\r\n }\r\n\r\n /** If this tool is editing a briefcase, commits any elements that the tool has changed, supplying the tool flyover for the undo description. */\r\n public async saveChanges(): Promise<void> {\r\n if (this.iModel.isBriefcaseConnection())\r\n return this.iModel.saveChanges(this.flyover);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PrimitiveTool.js","sourceRoot":"","sources":["../../../src/tools/PrimitiveTool.ts"],"names":[],"mappings":"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"}
|