
GITNUXSOFTWARE ADVICE
Art DesignTop 10 Best Lego Moc Software of 2026
Compare Lego Moc Software with a ranked technical list of tools for builders, covering BrickLink Studio, LDraw, and Studio workflows.
How we ranked these tools
Core product claims cross-referenced against official documentation, changelogs, and independent technical reviews.
Analyzed video reviews and hundreds of written evaluations to capture real-world user experiences with each tool.
AI persona simulations modeled how different user types would experience each tool across common use cases and workflows.
Final rankings reviewed and approved by our editorial team with authority to override AI-generated scores based on domain expertise.
Score: Features 40% · Ease 30% · Value 30%
Gitnux may earn a commission through links on this page — this does not influence rankings. Editorial policy
Editor’s top 3 picks
Three quick recommendations before you dive into the full comparison below — each one leads on a different dimension.
Bricklink Studio
Inventory derivation from the authored model ensures part counts stay synchronized with brick placements.
Built for fits when individual creators or small teams need inventory-accurate MOCs with export-driven workflows..
LDraw
Editor pickLDraw’s .ldr format encodes parts and transformations for scriptable parsing and rendering.
Built for fits when teams need file-driven MOC integration and automated validation in CI..
Studio
Editor pickEntity schema with API-driven provisioning and event triggers for MOC model and inventory records.
Built for fits when mid-size teams need schema-coordinated automation for MOC instructions and parts inventories..
Related reading
Comparison Table
This comparison table evaluates Lego MOC software across integration depth, data model design, and the automation and API surface for generating or validating building instructions and models. It also covers admin and governance controls such as RBAC, audit log coverage, provisioning workflows, and sandboxing. The goal is to show the schema and extensibility tradeoffs that affect configuration, collaboration throughput, and long-term maintainability.
Bricklink Studio
3D modeling3D LEGO building software that lets users create and render models using LEGO parts tracked in the BrickLink catalog.
Inventory derivation from the authored model ensures part counts stay synchronized with brick placements.
BrickLink Studio is used to lay out bricks and subassemblies with explicit part selections and spatial placement in the MOC scene. The tool produces an inventory view that derives counts from the model, which reduces drift between the visual build and the ordered parts list. Integration depth is anchored in LEGO part identifiers that stay consistent when exporting for procurement workflows tied to BrickLink conventions.
A concrete tradeoff is the absence of documented schema-level automation through an API for model edits or inventory generation. The same limitation makes Studio best when automation happens outside the tool via exported files and scripted inventory reconciliation. A common usage situation is preparing a parts list for ordering while iterating the model quickly in the editor.
- +Part-level editing keeps MOC geometry aligned with derived inventory counts
- +Inventory output supports direct comparison with BrickLink part ordering workflows
- +Exports enable offline processing for reconciliation and downstream tooling
- –Limited automation surface for programmatic model changes via API
- –Governance controls like RBAC and audit logs are not exposed in an admin console
- –Automation throughput depends on file workflows instead of evented integrations
Best for: Fits when individual creators or small teams need inventory-accurate MOCs with export-driven workflows.
LDraw
text-to-3DText-based LEGO model format and toolchain that compiles LDraw part libraries into renderable 3D scenes.
LDraw’s .ldr format encodes parts and transformations for scriptable parsing and rendering.
This tool fits teams that need repeatable, text-based model interchange across rendering, part libraries, and conversion steps. The core data model uses line-based part references and transformation matrices inside LDraw’s LDR format, which makes diffs and automated validation feasible. Extensibility is achieved through additional generators and converters that read or emit LDraw data, which supports integration breadth for pipelines that already process CAD-like assets.
A key tradeoff is that governance and admin controls are not the center of the product experience, because the primary unit of automation is files and not managed records. File-centric workflows can increase operational overhead for large repositories that require RBAC, audit log retention, and approval gates. A common usage situation is a CI job that parses LDR models, checks part IDs against a controlled library, and renders test images for each change.
- +Text-based .ldr data model supports deterministic diffs and review workflows
- +Well-established part and model conventions help consistent exports across tools
- +Automation works via parsers and converters that integrate into build pipelines
- +Geometry and transformations map cleanly to scripted rendering and validation
- –Admin governance is limited for RBAC and audit log style control
- –API surface is mostly tooling-driven instead of managed endpoints
- –Large-scale throughput depends on custom pipeline design and caching
Best for: Fits when teams need file-driven MOC integration and automated validation in CI.
Studio
3D modelingDesktop LEGO design application that supports part-based modeling, collision checking, and animation workflows for brick builds.
Entity schema with API-driven provisioning and event triggers for MOC model and inventory records.
Studio.io treats MOC artifacts as structured records like models, instructions, parts inventories, and dependency links. The data model supports schema changes and versioned updates so integrations can keep pace when configurations evolve. Integration depth is strongest when external tools can read and write the same schema through the API.
Automation and throughput are centered on provisioning and sync events that can run in background workers tied to API calls. A tradeoff appears when workflows require highly custom rendering logic, because Studio.io focuses more on configuration and data coordination than on custom UI runtime. Studio.io fits teams that need consistent parts-list generation, change tracking, and cross-tool synchronization across multiple MOC projects.
Admin and governance controls cover RBAC for project access boundaries and action authorization, plus audit log visibility for change events. Extensibility works best for integrations that map to the platform’s core entities rather than for one-off file formats.
- +Schema-driven data model for MOC artifacts like parts lists and instruction records
- +API supports automation of provisioning actions and integration events
- +RBAC plus audit-friendly change visibility for controlled collaboration
- +Extensibility works through entity mapping to core MOC records
- –Custom rendering workflows require external services outside Studio.io
- –Deep integration depends on aligning with Studio.io entity schemas
- –Highly bespoke data formats need transformation before API writes
Best for: Fits when mid-size teams need schema-coordinated automation for MOC instructions and parts inventories.
MLCAD
CAD editorLocal CAD editor for LEGO models that provides part placement with constraints and exports to common LEGO model formats.
MOC-to-build-step generation that keeps part connections consistent across runs.
MLCAD focuses on automated Lego MOC generation and workflows with a clear data model for parts, connections, and build steps. The integration depth comes from file-based inputs and generated outputs that can slot into common content pipelines for rendering and part lists.
Automation is driven by repeatable configurations that translate design intent into consistent builds. Extensibility relies on scripts and process hooks rather than a full admin control plane for RBAC and audit logging.
- +Deterministic generation from structured MOC inputs and build steps
- +Repeatable configurations reduce manual rework across iterations
- +Outputs support downstream rendering and parts-list workflows
- –Limited evidence of RBAC, audit logs, or governance controls
- –API surface appears script-first with less formal web endpoints
- –Schema evolution and interoperability depend on import export formats
Best for: Fits when teams need repeatable MOC generation with pipeline-friendly outputs.
LeoCAD
CAD editorOffline LEGO CAD editor that places bricks in 3D and exports models for instructions and part lists.
Brick placement engine that produces a coordinate-accurate model from a structured part list.
LeoCAD is a parts-centric LEGO MOC CAD editor that generates a buildable model from a structured brick layout. The integration depth is limited to local file workflows and export outputs that other tools can ingest.
Its extensibility is mostly manual via file interchange and shape libraries, not via a formal API surface. Automation and governance controls are minimal, with little evidence of RBAC or audit logging for collaborative operations.
- +Text-friendly model structure for exchanging MOC layouts between environments
- +Brick assembly view maps each part to a placed position
- +Supports large part palettes through local library content
- +Export outputs enable downstream rendering and documentation workflows
- –No documented automation API for provisioning or programmatic edits
- –Limited schema versioning for reliable long-term data migration
- –No RBAC or audit log features for multi-admin governance
- –Automation throughput depends on manual steps and file exports
Best for: Fits when solo designers need repeatable brick layouts with dependable local editing.
Rebrickable Studio
instruction toolingWeb-based LEGO instruction and part reference workflow that validates part counts and supports build documentation for MOCs.
Studio’s MOC authoring ties builds to structured part data used for inventory and documentation exports.
Rebrickable Studio targets LEGO MOC workflows by anchoring designs to Rebrickable’s catalog data and part metadata. The core capability centers on importing building information into an internal data model and exporting it for sharing and documentation, which supports repeatable build records.
Integration depth is strongest for Rebrickable ecosystem usage because the schema aligns to minifig, part, and set references. Automation and API surface depend on whether the required data can be provisioned through Rebrickable’s available endpoints and export formats, because Studio itself is oriented around authoring rather than admin tooling.
- +Build records map to Rebrickable part and inventory references
- +Exportable MOC documentation supports repeatable build publishing
- +Workflows align with Rebrickable’s catalog taxonomy and identifiers
- +Data model supports bills of parts tied to structured instructions
- –API and automation depth for Studio authoring is limited by feature scope
- –Extensibility depends on export and import formats rather than custom schema hooks
- –Admin governance controls like RBAC and audit log are not the center of the tool
- –Throughput for large catalogs depends on manual authoring boundaries
Best for: Fits when teams need structured MOC records aligned to Rebrickable part identifiers for documentation.
Blender
3D renderingGeneral-purpose 3D modeling and rendering platform that supports LEGO-friendly pipelines via add-ons and part libraries.
Python bpy API for scene graph manipulation, procedural modeling, and headless batch renders.
Blender provides deep integration via a data model built on scenes, objects, meshes, modifiers, and node graphs that can be fully automated. Its Python API enables provisioning of assets, procedural geometry, and render pipelines with scriptable repeatability.
Extensibility is driven by add-ons and custom node trees, which map into the same underlying runtime structures. Admin and governance controls are limited because Blender lacks native multi-user RBAC, org-level audit logs, and server-side automation primitives.
- +Python API can generate geometry, rigs, and scenes deterministically
- +Modifier stack and node graphs serialize as editable data structures
- +Add-ons extend UI, operators, and operators integrate into workflows
- +Headless rendering supports high-throughput automated exports
- +Asset workflows can be scripted for batch MOC generation outputs
- –No built-in RBAC or project-level permissions for teams
- –No native audit logs for configuration and automation actions
- –Automation depends on scripts rather than a managed API service
- –Schema evolution across add-ons can break scene scripts
- –GUI-centric authoring can slow validation without automated checks
Best for: Fits when teams need scriptable, repeatable Lego MOC rendering pipelines.
Autodesk Fusion
parametric CADMechanical CAD workflow that supports parametric modeling of custom LEGO-compatible geometry and exports for visualization.
Fusion API for automating parametric design edits and CAM setup generation.
Autodesk Fusion combines CAD, CAM, and simulation in one workspace with a file-based data model centered on design projects and components. For Lego MOC workflows, it supports parametric sketching, constraints, assemblies, and export paths needed to turn model geometry into cut plans and part documents.
Integration depth is strongest through Fusion Team cloud collaboration, the Autodesk ecosystem connectors, and a public API that supports automation over design data and manufacturing assets. Automation and governance depend on how Fusion Team roles map to project sharing, how organizations manage Autodesk account access, and how auditability is handled through Autodesk platform logging.
- +Parametric sketches and constraints maintain LEGO part alignment across revisions
- +Fusion API exposes design and manufacturing data for scripted automation
- +Assembly structure supports MOC submodules and repeatable brick patterns
- +Cloud collaboration enables shared project editing within Fusion Team
- –Design project data model can complicate cross-project automation
- –Automation tasks often require API-specific object lifecycles
- –RBAC granularity for nested assemblies is limited in practice
- –Audit log coverage across automation actions is not always explicit
Best for: Fits when teams need scripted CAD to manufacturing handoff for brick-based MOCs.
Asymptote
vector diagramsVector graphics scripting engine used to generate technical drawings such as wiring diagrams or schematic-style MOC documentation.
Asymptote scripting lets diagrams be generated deterministically from source code.
Asymptote generates vector-based technical diagrams from an internal scripting language, producing LaTeX-compatible output without manual drawing. The integration depth comes from embedding diagram generation into documentation pipelines, especially those driven by LaTeX builds.
Its data model is code-first, where geometry, styling, and graph structure live in a script that can be templated for provisioning and reuse. Automation and API surface depend on calling the compiler from build tooling and invoking the language runtime in repeatable jobs.
- +Code-defined geometry supports repeatable diagram generation in docs builds
- +LaTeX and PDF outputs integrate with existing publishing toolchains
- +Template-able scripts enable controlled variation across diagrams
- +Command-line execution fits CI batch generation and artifact checks
- +Extensible language constructs support custom reusable drawing logic
- –No first-class GUI reduces configuration visibility for non-coders
- –Data model is script-driven, limiting schema validation and governance
- –Automation relies on process invocation rather than a service API
- –RBAC and audit logging require external wrapping and custom controls
- –Throughput depends on compiler runs, with limited incremental rendering
Best for: Fits when documentation teams need programmable diagram generation integrated into LaTeX pipelines.
Inkscape
vector post-processVector editor used to post-process rendered views, label parts, and compose instruction pages for MOC documentation.
Python extensions framework for adding custom import, transforms, and exports.
Inkscape is a vector editor with an automation-oriented extension system and scriptable command-line execution. Its data model is SVG based, which maps well to document pipelines that require schema-stable exports for LEGO MOC parts, labeling, and diagrams.
Integration depth is strongest through SVG import and export plus extensibility via Python-based extensions and CLI flags for batch throughput. Admin and governance controls are limited because it runs as a local application with no built-in RBAC or centralized audit log.
- +SVG-native document model supports repeatable exports for part drawings
- +Python extension API enables custom MOC tooling and batch operations
- +CLI batch mode drives high-throughput rendering and conversion workflows
- –No built-in RBAC or multi-user governance for shared libraries
- –Governance relies on external processes for audit logging and permissions
- –Automation requires local execution setup across machines
Best for: Fits when LEGO MOC teams need SVG-based diagram automation with scripting and local execution control.
How to Choose the Right Lego Moc Software
This buyer's guide covers Bricklink Studio, LDraw, Studio, MLCAD, LeoCAD, Rebrickable Studio, Blender, Autodesk Fusion, Asymptote, and Inkscape for LEGO MOC authoring, rendering inputs, and instruction documentation workflows.
The guidance focuses on integration depth, data model fit, automation and API surface, and admin and governance controls so teams can pick tools that match real pipeline and collaboration needs.
LEGO MOC software for building models, deriving part inventories, and publishing instructions
LEGO MOC software covers tools that turn a part placement intent into structured MOC artifacts like parts lists, build steps, and render-ready geometry or diagrams. Bricklink Studio derives inventory from authored part placement so part counts stay synchronized with the model, which directly reduces reconciliation work.
LDraw uses a text-based .ldr data model that encodes parts and transformations for scripted parsing and deterministic CI validation, while Studio adds an API-driven entity schema for MOC artifacts that supports coordinated automation. Most users pick these tools to connect model authorship to repeatable inventory outputs, documentation exports, and pipeline automation.
Evaluation criteria tied to integration, schema control, and automation interfaces
Tool fit comes down to how the MOC data model travels across steps like authoring, inventory derivation, rendering, documentation, and publishing. Bricklink Studio keeps geometry aligned to inventory counts, while LDraw keeps model content diffable through .ldr text.
Automation and governance decide whether changes can run as repeatable jobs or require manual file workflows. Studio provides a schema-driven data model plus API endpoints for provisioning actions and event triggers, while most file-first tools like LeoCAD and Asymptote rely on external wrapping for governance.
Inventory derivation from the authored model
Bricklink Studio derives inventory from part placement so part counts remain synchronized with brick geometry. This reduces mismatches when exports feed part ordering workflows and downstream reconciliation.
Deterministic text-based model format for CI validation
LDraw encodes parts and transformations in .ldr files so scripted parsing can generate repeatable renders and validation checks. This supports automated diffing and pipeline checks that depend on stable textual inputs.
Schema-driven MOC entity model with API provisioning and event triggers
Studio uses an entity schema for MOC artifacts and exposes API endpoints for provisioning actions and integration events. This combination supports automation that writes into the same structured records used for parts lists and instruction records.
Build-step generation that preserves part connections across runs
MLCAD generates MOC to build steps from structured inputs so the same part connections remain consistent across iterations. This matters when instruction records must track repeatable build logic rather than only geometry snapshots.
Render and automation surface through procedural scene control
Blender exposes a Python bpy API for scene graph manipulation, procedural modeling, and headless batch renders. This enables high-throughput geometry and rendering pipelines even when MOC authoring starts from other model sources.
Admin governance controls for multi-repo collaboration
Studio includes RBAC and audit-friendly change visibility across repositories of building instructions and parts lists. Blender and other local-first tools lack native multi-user RBAC and centralized audit logs, which changes governance options for teams.
Choose LEGO MOC tooling by mapping your automation and governance requirements to the data model
Start by matching the required data model behavior to the output artifacts that must stay consistent across your pipeline. Bricklink Studio fits workflows that depend on inventory accuracy derived from authored placement, while LDraw fits workflows that depend on deterministic, text-based transformation encoding.
Next, map automation needs to the API and event surface. Studio supports schema-driven provisioning actions and event triggers, while tools like LeoCAD and Inkscape run as local or file-driven systems that need external orchestration for automation and governance.
Define the authoritative artifact in the pipeline
Pick the artifact that must be the source of truth across steps like part counts, instruction records, and rendering. Bricklink Studio uses the authored model to derive inventory, while LDraw treats .ldr content as the deterministic source for parsing and scripted rendering.
Verify the data model supports repeatable transformations across teams
Use LDraw when transformation consistency and deterministic diffs matter because .ldr stores parts and transformations in a scriptable text format. Use Studio when MOC instructions and parts inventories must share a schema-coordinated entity model across repositories.
Confirm the automation surface matches how changes must be applied
Choose Studio when automation must provision MOC records through API endpoints and react to integration events. Choose Blender when automation needs procedural scene generation and headless batch exports driven by the Python bpy API.
Assess governance needs before selecting a file-first toolchain
If multi-admin collaboration requires RBAC and audit-friendly change visibility, Studio provides explicit controls and tracking for instruction and parts list repositories. Bricklink Studio and LDraw offer export-driven workflows but do not expose RBAC and audit logs through an admin console.
Plan where rendering and documentation happen in the pipeline
Use Blender for rendering automation and then use Inkscape for SVG-based post-processing like part labeling and instruction page composition through Python extensions and CLI batch mode. Use Asymptote when technical documentation diagrams must be generated deterministically from code and compiled into LaTeX-compatible output.
Align CAD-driven geometry handoff to MOC production goals
Choose Autodesk Fusion when parametric sketches, constraints, and CAM setup must be scripted for manufacturing handoff around LEGO-compatible geometry. Choose MLCAD when the priority is repeatable generation of build steps from structured design inputs that preserve part connections.
Which teams get the most control from LEGO MOC software workflows
The best tool depends on whether MOC work is authoring-focused, instruction-focused, or pipeline automation-focused. File-first tools can support automated builds through scripts, but admin governance and API-driven provisioning vary sharply across the set.
The audience segments below map to each tool’s best-fit profile based on how its data model and automation surface behave in real workflows.
Individual creators and small teams needing inventory-accurate MOCs with export-driven reconciliation
Bricklink Studio fits this audience because inventory derivation comes directly from authored part placement and exports enable direct comparison against BrickLink part ordering workflows. This reduces manual part-count reconciliation and supports offline reconciliation pipelines.
Teams running CI validation and wanting deterministic, file-based model diffs
LDraw fits teams that need automated validation because .ldr encodes parts and transformations for scriptable parsing and rendering. This supports repeatable checks as part of build pipelines without relying on a server admin plane.
Mid-size teams that need schema-coordinated automation for instructions and parts inventories with governance
Studio fits this audience because it combines an entity schema with API-driven provisioning and event triggers for MOC model and inventory records. RBAC and audit-friendly change visibility help teams manage controlled collaboration across repositories.
Teams that prioritize repeatable build-step generation while preserving connection logic
MLCAD fits teams that require repeatable instruction logic because it generates build steps from structured inputs and keeps part connections consistent across runs. This reduces variance when updating models across iterations.
Documentation-focused teams that need programmable diagram and label generation
Asymptote fits teams generating technical diagrams through a code-first scripting language that outputs LaTeX-compatible artifacts. Inkscape fits workflows that require SVG-native diagram post-processing with Python extensions and CLI batch throughput for labeling and instruction page composition.
Pitfalls that break MOC automation pipelines and collaboration controls
Many failures come from selecting tools that match geometry authoring but not the pipeline contracts that inventories, instructions, and approvals require. Integration depth and governance controls decide whether changes can be applied consistently by automation and reviewed safely by teams.
The mistakes below reflect gaps in automation and admin controls across tools like Bricklink Studio, LeoCAD, Studio, LDraw, and Blender.
Assuming an export workflow equals an API automation surface
Bricklink Studio and LDraw support export-driven processing, but programmatic model changes via API are limited because automation depends on file workflows and tooling. Studio is the better match when automation must provision MOC records and trigger integration events through API endpoints.
Ignoring governance needs until multiple admins must coordinate edits
LeoCAD lacks evidence of RBAC and audit log features for multi-admin governance, and Blender lacks native multi-user RBAC and project-level permissions. Studio provides RBAC and audit-friendly activity tracking across repositories, which prevents uncontrolled instruction and parts list edits.
Selecting a CAD-centric tool without mapping its data model to MOC artifact outputs
Autodesk Fusion can automate parametric edits through its API, but its design project data model can complicate cross-project automation for MOC records. Studio provides schema-driven MOC entity modeling and API-driven provisioning when instruction and inventory artifacts must stay structured.
Using local-only documentation tools without planning external orchestration
Inkscape and Asymptote execute locally or via compiler and extension invocation, so RBAC and audit logging require external wrapping. Teams that need centralized governance should route collaboration through Studio and treat Inkscape or Asymptote as downstream SVG or diagram generation steps.
Mixing rendering automation with undocumented MOC inventory expectations
Blender can generate headless renders through Python bpy scripts, but it does not derive inventory counts from LEGO part placement in the same way Bricklink Studio does. Inventory-critical workflows should anchor counts in Bricklink Studio or LDraw parsing pipelines and use Blender for render output only.
How We Selected and Ranked These Tools
We evaluated Bricklink Studio, LDraw, Studio, MLCAD, LeoCAD, Rebrickable Studio, Blender, Autodesk Fusion, Asymptote, and Inkscape on features, ease of use, and value using the concrete capabilities and constraints described in the provided tool summaries. Features carried the most weight at forty percent, while ease of use and value each counted for thirty percent because integration depth, data model behavior, and automation and API surface determine whether MOC workflows can be kept consistent.
This editorial scoring reflects criteria-based comparisons across integration breadth, automation and API surface, and governance controls rather than hands-on lab testing or private benchmarks. Bricklink Studio ranked highest because inventory derivation comes directly from the authored model, which improved the features and ease-of-use outcomes for workflows that need inventory counts synchronized with part placements.
Frequently Asked Questions About Lego Moc Software
Which Lego MOC tool has the cleanest inventory-accurate part mapping for exports?
What option is best when CI needs deterministic validation of MOC files?
Which Lego MOC platform supports API-driven provisioning and event triggers for MOC records?
How does MLCAD handle repeatable generation of build steps without manual rework?
Which tool is most suitable for rendering pipelines that require scriptable procedural scene generation?
Which tool is a better fit for CAD-to-manufacturing handoff when assemblies and exports matter?
What tool is strongest for integrating LEGO MOC diagram generation into LaTeX documentation builds?
Which option provides SVG-based document automation for LEGO MOC labeling and diagrams?
What is the practical difference between file-driven workflows and an admin-first control plane?
Which tool best preserves alignment with Rebrickable’s part metadata when documenting MOCs?
Conclusion
After evaluating 10 art design, Bricklink Studio stands out as our overall top pick — it scored highest across our combined criteria of features, ease of use, and value, which is why it sits at #1 in the rankings above.
Use the comparison table and detailed reviews above to validate the fit against your own requirements before committing to a tool.
Tools reviewed
Primary sources checked during evaluation.
Referenced in the comparison table and product reviews above.
Keep exploring
Comparing two specific tools?
Software Alternatives
See head-to-head software comparisons with feature breakdowns, pricing, and our recommendation for each use case.
Explore software alternatives→In this category
Art Design alternatives
See side-by-side comparisons of art design tools and pick the right one for your stack.
Compare art design tools→FOR SOFTWARE VENDORS
Not on this list? Let’s fix that.
Our best-of pages are how many teams discover and compare tools in this space. If you think your product belongs in this lineup, we’d like to hear from you—we’ll walk you through fit and what an editorial entry looks like.
Apply for a ListingWHAT THIS INCLUDES
Where buyers compare
Readers come to these pages to shortlist software—your product shows up in that moment, not in a random sidebar.
Editorial write-up
We describe your product in our own words and check the facts before anything goes live.
On-page brand presence
You appear in the roundup the same way as other tools we cover: name, positioning, and a clear next step for readers who want to learn more.
Kept up to date
We refresh lists on a regular rhythm so the category page stays useful as products and pricing change.
