Release history
weaviate releases
Weaviate is an open-source vector database that stores both objects and vectors, allowing for the combination of vector search with structured filtering with the fault tolerance and scalability of a cloud-native database.
All releases
70 shown
Compaction abort + async-delete fix + test improvements
text2vec‑digitalocean + release.sh removal + queue fix
Chores, CI, Raft auth, QA scripts, schema validation
Fix startup race in object TTL guaranteeing tenant re‑deactivation when TTL context cancels mid‑deletion.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- fix(ttl): guarantee tenant re-deactivation when TTL context is canceled mid-deletion by @jfrancoa in https://github.com/weaviate/weaviate/pull/11063
- Disable compactions in backup test by @dirkkul in https://github.com/weaviate/weaviate/pull/11082
- fix: optimize zstd encoder usage in replication client by @jeroiraz in https://github.com/weaviate/weaviate/pull/11078
- Improve compressed vector index cache by @trengrj in https://github.com/weaviate/weaviate/pull/11059
- Fix startup race in object TTL by @dirkkul in https://github.com/weaviate/weaviate/pull/11095
- Switch ObjectTTL log level to debug by @dirkkul in https://github.com/weaviate/weaviate/pull/11096
- hfresh: use asymmetric distance computation by @asdine in https://github.com/weaviate/weaviate/pull/11098
- ci: delegate SHA-pinning to native policy, expose unicode scan as composite by @mpartipilo in https://github.com/weaviate/weaviate/pull/11093
- Exclude auto-generated files in orca by @dirkkul in https://github.com/weaviate/weaviate/pull/11107
- Reorder timeout checks for raft ready and leadership elections in attempt to avoid flaking in ci by @tsmith023 in https://github.com/weaviate/weaviate/pull/11105
- chore(test): fix flakey tests TestRaftEndpoints TestSnapshotRestoreSchemaOnly by @moogacs in https://github.com/weaviate/weaviate/pull/11116
- fix(cluster): prevent shutdown hangs by buffering close signal channels by @moogacs in https://github.com/weaviate/weaviate/pull/11114
- hnsw: fix snapshotFileName for compactv2 .sorted commit logs by @asdine in https://github.com/weaviate/weaviate/pull/11147
- hfresh: fix metrics reporting by @asdine in https://github.com/weaviate/weaviate/pull/11140
- compactv2: migrate all compactv2 files during startup by @asdine in https://github.com/weaviate/weaviate/pull/11150
- Fix concurrent sends and dropped reports in SSB by @tsmith023 in https://github.com/weaviate/weaviate/pull/11145
- test: set timeout unit for replication client in HashTreeLevel tests by @jeroiraz in https://github.com/weaviate/weaviate/pull/11158
- hfresh: retry transient errors during reassign by @asdine in https://github.com/weaviate/weaviate/pull/11124
- async indexing: retry forever when disk is full by @asdine in https://github.com/weaviate/weaviate/pull/11168
- Update gemini model path by @erika-shorten in https://github.com/weaviate/weaviate/pull/11118
- Fix linter errors after CI update by @dirkkul in https://github.com/weaviate/weaviate/pull/11188
- Fix recursive RAFT commands in
func (s *SchemaManager) UpdateShardStatuspath by @tsmith023 in https://github.com/weaviate/weaviate/pull/11186 - modules: remove EOL Anthropic models from generative-aws e2e tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/11195
- hfresh: backport rescoring fix by @asdine in https://github.com/weaviate/weaviate/pull/11205
- chore: disable cloud info if telemetry is disabled by @antas-marcin in https://github.com/weaviate/weaviate/pull/11202
- Reduce log spam waiting for DB by @dirkkul in https://github.com/weaviate/weaviate/pull/11215
- fix(replication): use writable shards in OverwriteObjects() by @moogacs in https://github.com/weaviate/weaviate/pull/11002
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.36.12...v1.36.13
Fixed shutdown hangs by buffering close signal channels.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- Disable compactions in backup test by @dirkkul in https://github.com/weaviate/weaviate/pull/11082
- Improve compressed vector index cache by @trengrj in https://github.com/weaviate/weaviate/pull/11059
- ci: delegate SHA-pinning to native policy, expose unicode scan as composite by @mpartipilo in https://github.com/weaviate/weaviate/pull/11093
- Exclude auto-generated files in orca by @dirkkul in https://github.com/weaviate/weaviate/pull/11107
- Reorder timeout checks for raft ready and leadership elections in attempt to avoid flaking in ci by @tsmith023 in https://github.com/weaviate/weaviate/pull/11105
- chore(test): fix flakey tests TestRaftEndpoints TestSnapshotRestoreSchemaOnly by @moogacs in https://github.com/weaviate/weaviate/pull/11116
- fix(cluster): prevent shutdown hangs by buffering close signal channels by @moogacs in https://github.com/weaviate/weaviate/pull/11114
- hnsw: fix snapshotFileName for compactv2 .sorted commit logs by @asdine in https://github.com/weaviate/weaviate/pull/11147
- compactv2: migrate all compactv2 files during startup by @asdine in https://github.com/weaviate/weaviate/pull/11150
- Update gemini model path by @erika-shorten in https://github.com/weaviate/weaviate/pull/11118
- Fix linter errors after CI update by @dirkkul in https://github.com/weaviate/weaviate/pull/11188
- Fix recursive RAFT commands in
func (s *SchemaManager) UpdateShardStatuspath by @tsmith023 in https://github.com/weaviate/weaviate/pull/11186
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.35.18...v1.35.19
- Concurrent tenant de-activation for collection export speedup
- Asymmetric distance computation for hfresh
Full changelog
Breaking Changes
none
New Features
- Collection export: Speed up snapshotting with concurrent tenant de-activation by @dirkkul in https://github.com/weaviate/weaviate/pull/11031
- hfresh: use asymmetric distance computation by @asdine in https://github.com/weaviate/weaviate/pull/11098
Fixes
- fix(cluster): prevent shutdown hangs by buffering close signal channels by @moogacs in https://github.com/weaviate/weaviate/pull/11114
- fix: support old stopword index config on endpoint by @amourao in https://github.com/weaviate/weaviate/pull/11079
- Fix startup race in object TTL by @dirkkul in https://github.com/weaviate/weaviate/pull/11095
- fix(ttl): guarantee tenant re-deactivation when TTL context is canceled mid-deletion by @jfrancoa in https://github.com/weaviate/weaviate/pull/11063
- fix: optimize zstd encoder usage in replication client by @jeroiraz in https://github.com/weaviate/weaviate/pull/11078
- Switch ObjectTTL log level to debug by @dirkkul in https://github.com/weaviate/weaviate/pull/11096
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.37.1...v1.37.2
- Faster startup time by checking database status more frequently
- Fixed secondary index size accumulation with varying key counts
Full changelog
Breaking Changes
none
New Features
none
Fixes
- fix: handle secondary index size accumulation for varying key counts by @amourao in https://github.com/weaviate/weaviate/pull/11060
- startup: speedup startup by checking db status more often by @asdine in https://github.com/weaviate/weaviate/pull/11064
- fix: refactor bucket creation to use options for sec indices by @amourao in https://github.com/weaviate/weaviate/pull/11067
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.35.17...v1.35.18
- Upgrade musl, musl-utils, zlib alpine packages
- Persist compression metadata after vector preloading to prevent data loss on restart
- Fix S3 backup client path handling and initialization with overrides
- Add Google AI Studio API Key header support for multi2vec-google
Full changelog
Breaking Changes
none
New Features
none
Fixes
- fix: persist compression metadata after preloading vectors to avoid data loss on restart by @asdine in https://github.com/weaviate/weaviate/pull/11025
- Fix S3 backup client: HomeDir path doubling and Initialize cleanup with path overrides by @jfrancoa in https://github.com/weaviate/weaviate/pull/11033
- security: upgrade musl, musl-utils, zlib alpine packages by @antas-marcin in https://github.com/weaviate/weaviate/pull/11044
- fix: improve error handling in optional tokenizers initialization by @amourao in https://github.com/weaviate/weaviate/pull/11035
- fix(multi2vec-google): add support for Google AI Studio API Key headers by @antas-marcin in https://github.com/weaviate/weaviate/pull/11045
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.36.10...v1.36.11
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- fix: handle secondary index size accumulation for varying key counts by @amourao in https://github.com/weaviate/weaviate/pull/11060
- startup: speedup startup by checking db status more often by @asdine in https://github.com/weaviate/weaviate/pull/11064
- fix: refactor bucket creation to use options for sec indices by @amourao in https://github.com/weaviate/weaviate/pull/11067
- [MCP] Refactor permissions by @g-despot in https://github.com/weaviate/weaviate/pull/11037
- Set export default path to empty by default by @dirkkul in https://github.com/weaviate/weaviate/pull/11068
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.37.0...v1.37.1
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- fix: handle secondary index size accumulation for varying key counts by @amourao in https://github.com/weaviate/weaviate/pull/11060
- startup: speedup startup by checking db status more often by @asdine in https://github.com/weaviate/weaviate/pull/11064
- fix: refactor bucket creation to use options for sec indices by @amourao in https://github.com/weaviate/weaviate/pull/11067
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.36.11...v1.36.12
- HFresh general availability with extensive performance optimizations reducing memory usage and disk writes
- Secure MCP Server (Preview) enables AI agents to natively read and write to Weaviate without custom code
- Collection export (Preview) to AWS, GCP, Azure, and filesystem backends
- Dependency security updates: jsonparser (v1.1.2), black, and packages with known vulnerabilities
- Docker and system package security upgrades: libcrypto3, libssl3, openssl, musl, musl-utils, zlib
- Updated black to patch vulnerability
- Updated all dependencies with known security issues
- Upgraded libcrypto3, libssl3, and openssl to latest versions
- Bumped jsonparser dependency to v1.1.2 to address known vulnerabilities
- On-demand query profiling support
- OIDC authentication with insecure TLS skip option
- Queue backup functionality for reliable data replication
Tests now use hardlinks for production-like conditions, vector errors are caught early, a link reading bug is fixed, base URLs are validated, downgrade paths show clearer errors, and lazy-load shard behavior works when disabled.
- Add .claude folder to CODEOWNERS to enforce repository ownership
- Token source authentication for GCS backups and usage
- CycleManager now records name in start/stop logs
- Compaction reduces heap memory usage
- Upgraded gRPC dependency to version 1.79.3 to address security vulnerabilities.
- Added audio support to the multi2vec-google module.
- Introduced token source authentication for GCS backups and usage.
- Added DisableDimensionMetrics configuration to control metric reporting.
- Added .claude folder to CODEOWNERS to enforce ownership for security-sensitive files.
- Introduced token source authentication for GCS backups and usage to enhance credential security.
- Added a name field to CycleManager with start/stop logging to improve cycle monitoring.
- Optimized compaction to use less heap memory, reducing runtime resource consumption.
- Upgraded grpc dependency to v1.79.3 to mitigate potential security issues
- Audio support added to the multi2vec-google module
- IPv6 support enabled for clustering
- Dynamic lazy loading of shards implemented
- Upgraded google.golang.org/grpc to v1.79.3 to address known vulnerabilities.
- Added audio support to the multi2vec-google module.
- Introduced DisableDimensionMetrics configuration to suppress dimension metrics reporting.
- Added DEFAULT_SHARDING_COUNT environment variable to customize shard count.
Fixed file deletion race, added client version to audit logs, improved backup chunk handling, resolved RBAC restore race, and added support for Google AI Studio models in the multi2vec-google module.
Async replication now propagates changes by default and bm25 queries retain null values, improving data consistency and search correctness.
Async replication now uses updated default propagation settings, and BM25 search no longer discards nil values, improving data consistency and query accuracy.
Defaults for async replication were updated and a bug that removed nils in BM25 queries was fixed, improving data consistency and search accuracy.
- Bumped cloud.google.com/go/storage to v1.60.0 and go.opentelemetry.io/otel to v1.40.0 for security updates
- File-based incremental backup support added.
- Metric added to track total streams opened.
- RBAC cache now has a defined lifetime.
- Debug endpoint no longer skips sensitive data
- Updated cloud.google.com/go storage to v1.60.0 to address known issues
- Updated go.opentelemetry.io/otel to v1.40.0 to address known issues
- File based incremental backups added
- RBAC cache lifetime introduced
- Cancelable shared gauge for queue
- Bumped cloud.google.com/go/storage to v1.60.0 and go.opentelemetry.io/otel to v1.40.0 to address dependency vulnerabilities
- File based incremental backups with configurable retention
- RBAC cache now has a configurable lifetime to reduce stale entries
- Performance optimization for Not filters reduces query execution overhead
Quantization is now performed after cache prefill, preventing data loss from zero-length vectors and ensuring correct class versioning during batch operations; test failures were corrected to improve reliability.
Delayed quantization to after cache prefill, fixed max class version for batch adds, skipped zero-length vectors, and resolved S3 upload test failures, enhancing reliability for vector ingestion.
Quantization now occurs after cache prefill, class version handling is corrected in batch adds, a test failure is fixed, and zero-length vectors are ignored to prevent runtime errors.
Fixed replication retry logic and corrected delete checks. Added handling for empty tenant offloading, improved bitmap search performance, and updated object loading. These changes stabilize cluster behavior and raise throughput.
Fixed replication retries and improved segment deletion performance, enhanced delete checks, optimized bitmap operations and precomputed proplength, and addressed tenant offloading and class version handling.
Fixed vector index config updates, backported configuration changes, and delayed quantization until after cache prefill to resolve bugs and improve reliability of index operations.
Backported Claude's settings, enhanced tombstone cleanup, introduced non-blocking segment deletions, optimized bitmap searches, and fixed tenant, replication, and offloading bugs, improving reliability and speed for large-scale operations.
- Server-side batching is now generally available, providing higher throughput, smarter client acknowledgment, and improved error handling for vectorization.
- Object TTL is generally available with batch deletions, throttled cleanup, metrics, and schedule-based enforcement to manage object storage lifecycles.
- Backup restore operations can be cancelled in-flight and expose new statuses in the OpenAPI spec for better client integration.
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- bug: fix geo filtering after reingesting data by @antas-marcin in https://github.com/weaviate/weaviate/pull/10489
- feat(modules): add naive batch logic to text2vec-google module by @antas-marcin in https://github.com/weaviate/weaviate/pull/9915
- Return all nested props recursively of a nested object when specified implicitly by @tsmith023 in https://github.com/weaviate/weaviate/pull/10541
- fix: rerank with hybrid on final results by @antas-marcin in https://github.com/weaviate/weaviate/pull/10532
- Add filesize to backup error by @dirkkul in https://github.com/weaviate/weaviate/pull/10556
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.35.9...v1.35.10
- Fixed API key self‑deletion vulnerability allowing keys to delete themselves
- Added a debug endpoint for LSM bucket view consistency
- Implemented naive batch logic in the text2vec-google module for efficient processing
- Introduced a Makefile deps target to conveniently vendor Go dependencies
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- chore: log panics with structured logger by @antas-marcin in https://github.com/weaviate/weaviate/pull/10385
- chore(test): TestScaleDownAfterRemoveNode extend time to avoid flakiness by @moogacs in https://github.com/weaviate/weaviate/pull/10399
- chore(test): TestNetworkIsolationSplitBrain extend time to avoid flakiness by @moogacs in https://github.com/weaviate/weaviate/pull/10400
- fix: don't allow api key to delete itself by @gkampitakis in https://github.com/weaviate/weaviate/pull/10423
- perf: use less heap on set compaction by @amourao in https://github.com/weaviate/weaviate/pull/10440
- fix(test): flaky test_usage.py::test_usage_with_caching e2e test by @antas-marcin in https://github.com/weaviate/weaviate/pull/10451
- fix: remove os.Chdir as it applies to all threads by @amourao in https://github.com/weaviate/weaviate/pull/10484
- [fix] Lint string errors by @robbespo00 in https://github.com/weaviate/weaviate/pull/10518
- [backport] Make dims atomic by @robbespo00 in https://github.com/weaviate/weaviate/pull/10519
- bug: fix geo filtering after reingesting data by @antas-marcin in https://github.com/weaviate/weaviate/pull/10489
- feat(modules): add naive batch logic to text2vec-google module by @antas-marcin in https://github.com/weaviate/weaviate/pull/9915
- Return all nested props recursively of a nested object when specified implicitly by @tsmith023 in https://github.com/weaviate/weaviate/pull/10541
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.33.16...v1.33.17
Fixed transaction panics and empty flat index bugs, made dimension sizes atomic, added a debug endpoint for LSM bucket views, and restored multi-arch Docker builds for CI.
- Prevent API key deletion by itself
- ForceSwitch option added to queue for controlled node failover
- Dimensions parameter now uses atomic.Int32 to avoid race conditions
- Backup transport retries on Google Cloud Storage errors
Added a context parameter to LSM putObjectLSM and mutableMergeObjectLSM methods, optimized the strategy check, made time-based deletion the default for new collections, fixed a race condition in RQ compression and corrected shard_id handling in migrations.
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- refactor: add context parameter to putObjectLSM and mutableMergeObjectLSM methods by @jeroiraz in https://github.com/weaviate/weaviate/pull/10345
- Optimize strategy check by @dirkkul in https://github.com/weaviate/weaviate/pull/10346
- feat: use time-based deletion strategy as default for new collections by @jeroiraz in https://github.com/weaviate/weaviate/pull/10347
- fix race on rq compression by @abdelr in https://github.com/weaviate/weaviate/pull/10338
- backport: VoyageAI V4 models by @antas-marcin in https://github.com/weaviate/weaviate/pull/10351
- fix(scaledown): update cluster state BelongsToNodes on node deletion by @moogacs in https://github.com/weaviate/weaviate/pull/10274
- compress right after update config for RQ by @abdelr in https://github.com/weaviate/weaviate/pull/10373
- fix: add shard_id information to vectors_compressed folder migrator by @antas-marcin in https://github.com/weaviate/weaviate/pull/10376
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.34.13...v1.34.14
Fixed a symlink loop in vectors_compressed folder logic, resolved a race condition on rq compression, and updated cluster state BelongsToNodes during node deletion. Added VoyageAI V4 models and improved shard_id information in the migrator. Updated text2vec-openai to tolerate dimensions setting for legacy models.
Improved async replication and async improvements, and fixed a symlink loop in vectors_compressed folder fixing logic. The text2vec-openai module now tolerates dimensions setting for legacy models. text2vec-openai module updates to handle dimensions setting for legacy models.
Patch release with four bug fixes: tolerates dimensions setting for legacy text2vec-openai models, improves async replication by fixing target node selection, prevents a symlink loop in vectors_compressed folder repair logic, and includes async replication improvements. No breaking changes or new features.
Refactored backup acceptance tests for all backends, ensured consistent empty dictionarys being sent, and added per-node backup size reporting for usage metrics.
Refactored backup acceptance tests for all backends, ensured empty dictionaries are sent by default, and updated usage reporting to include per-node backup size.
Updated the usage reporting for backups to include the size per node.
Resolved an issue with docId loading during WAL recovery, improved BM25 context checks, and backported a fix to divide large shards into smaller chunks during backups.
Optimized cluster performance and memory usage by reducing allocations in neighbor connections, optimizing object merge vector transfers, and minimizing vector transfers during searches. Improved stability by moving memtable node creation outside of locks and fixing a deadlock between shard shutdown and prefill.
Improved performance through memtable lock optimizations, reduced allocations in neighbor connections, and optimized binary search tree flattening. Includes vector search optimizations, improved backup shard chunking, and fixes for WAL recovery, BM25 context checks, and cluster vector search serialization.
Improved memtable performance and concurrency by moving node creation and parts out of locked blocks. Reduced allocations in neighbour connection, optimized flatten binary search none search tree, and added cloud provider information to telemetry.
Reduced network traffic in clusters by ensuring object merge vectors are only sent across the cluster when necessary.
- Removed ResponseHeaderTimeout from replicationhttpclient to prevent issues during long operations
- Added video modality support for multi2vec-voyageai module
- Returns backup size on backup status
- Added a bucket load limiter
Fixed issues with node_mapping resolving during restore, BMW combined filters breaking during flushing, and ResponseHeaderTimeout in replicationhttpclient. Added a bucket load limiter.
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- fix(replicationhttpclient): remove ResponseHeaderTimeout as it causes issue for long operations by @moogacs in https://github.com/weaviate/weaviate/pull/10189
- Add a bucket load limiter by @dirkkul in https://github.com/weaviate/weaviate/pull/10170
- feat(modules): multi2vec-voyageai module video modalilty support by @antas-marcin in https://github.com/weaviate/weaviate/pull/10095
- fix(replicamovement): ensure schema version is properly synchronized during replication by @moogacs in https://github.com/weaviate/weaviate/pull/10187
- chore(TestNetworkIsolationSplitBrain): decrease time to reclaim dead nodes to accommodate test by @moogacs in https://github.com/weaviate/weaviate/pull/10200
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.34.8...v1.34.9
Minor fixes and improvements.
Full changelog
Breaking Changes
none
New Features
none
Fixes
- Improve PQ distance calculation by @trengrj in https://github.com/weaviate/weaviate/pull/9902
- Reduce context check frequency in compression iterator by @dirkkul in https://github.com/weaviate/weaviate/pull/10106
- hnsw: ignore invalid nodes by @asdine in https://github.com/weaviate/weaviate/pull/10107
- Change copyright date to 2026 by @dirkkul in https://github.com/weaviate/weaviate/pull/10120
- Remove/readd vector(s) when replicating to avoid wasted network usage by @tsmith023 in https://github.com/weaviate/weaviate/pull/10025
- Fix: NaN avgProplength by @amourao in https://github.com/weaviate/weaviate/pull/10102
- feat: return backup size on backup status by @gkampitakis in https://github.com/weaviate/weaviate/pull/10162
- fix(backup-gcs): retry 401 error codes on top defaults by @gkampitakis in https://github.com/weaviate/weaviate/pull/10169
- fix(usage): skip reading empty last.push file by @gkampitakis in https://github.com/weaviate/weaviate/pull/10164
- fix(backup): pass and handle node_mapping resolving on restore by @moogacs in https://github.com/weaviate/weaviate/pull/10166
- fix: BMW combined filters breaks during flushing + updates by @amourao in https://github.com/weaviate/weaviate/pull/10172
- fix: migrate conflicting module settings and compare vectorizer settings by @antas-marcin in https://github.com/weaviate/weaviate/pull/10133
- fix(replicationhttpclient): remove ResponseHeaderTimeout as it causes issue for long operations by @moogacs in https://github.com/weaviate/weaviate/pull/10189
- Add a bucket load limiter by @dirkkul in https://github.com/weaviate/weaviate/pull/10170
- feat(modules): multi2vec-voyageai module video modalilty support by @antas-marcin in https://github.com/weaviate/weaviate/pull/10095
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.33.11...v1.33.12
Fixed NaN avgProplength, node_mapping resolving on restore, BMW combined filters during flushing, and ResponseHeaderTimeout in replicationhttpclient. Added a bucket load limiter.
Improved PQ distance calculation with branchless LUT and reduced context check frequency. Fixed BMW combined filters during flushing, resolved NaN avgProplength, and optimized replication by removing/readding vectors to save network usage. Added backup size reporting and GCS retry logic.
Fixed an issue where NaN values appeared in avgProplength calculations.
Improved PQ distance calculation, reduced context check frequency in compression iterator, enabled HNSW to ignore invalid nodes, and updated the copyright date.