Skip to content

Releases: K8Studio/K8studio

4.0.1

Choose a tag to compare

@guiqui guiqui released this 06 Aug 09:07
5cda859

v4.0.1

A focused operations and stability release that adds live Caretta traffic to CloudMaps, Deployment traffic analysis, redesigned Helm and RBAC workspaces, expanded privacy controls, and a more reliable K8Studio account portal.

Highlights

  • CloudMaps can now display observed Caretta traffic as map roads between namespaces and workloads.
  • CloudMaps is available during the trial and with Professional or Airtight licenses.
  • Traffic roads use fixed volume bands so traffic levels remain comparable across clusters.
  • Deployment details include incoming and outgoing traffic analysis when Caretta is available.
  • The Helm Package Editor has clearer chart and release workflows, technology icons, and copyable commands.
  • The RBAC Manager organizes subjects and roles into searchable grouped trees.
  • The website and account services include expanded GDPR consent, retention, and account-deletion support.
  • The website now provides direct access to the K8Studio Discord community from its navigation and footer.
  • The account portal has more reliable authentication, responsive layouts, and complete light and dark themes.

CloudMaps Traffic

  • CloudMaps access is limited to active Trial, Professional, and Airtight licenses.
  • Added optional Caretta discovery and automatic local port forwarding for reading observed network flows without exposing Caretta outside the cluster.
  • Added live traffic roads between resolved namespaces and workloads in CloudMaps.
  • Traffic roads show direction and use consistent color and width bands based on absolute traffic volume rather than adapting to the current cluster.
  • Hover details show the source, destination, observed rate, connection count, and destination ports.
  • Traffic routes remain stable while zooming and resolve to the correct map level as the view changes.
  • Viewport-aware traffic rendering and spatial indexing avoid drawing off-screen roads unnecessarily.
  • CloudMaps continues to work normally when Caretta is not installed or temporarily unavailable.

Deployment Traffic Analysis

  • Added a Traffic tab to Deployment details when Caretta is available.
  • Added total, incoming, and outgoing traffic summaries for the selected Deployment.
  • Incoming and outgoing route tables show related workloads or Services, ports, and observed transfer rates.
  • Service-routed traffic is attributed to the relevant Deployment where Kubernetes relationship data is available.
  • Connecting, live, empty, and unavailable states distinguish missing traffic from an application error.

Helm Package Editor

  • Redesigned the Helm workspace with clearer Charts and Releases navigation.
  • Improved chart and release lists with search, counts, versions, descriptions, repository information, and stronger selected states.
  • Added technology icons for recognized charts and releases using the same identification pipeline used by Kubernetes workloads.
  • Improved recognition for common charts such as Argo CD and Metrics Server.
  • Added copy buttons for Helm install commands and code examples in chart documentation.
  • Updated chart details, release details, values editing, and documentation for consistent light and dark themes.

RBAC Manager

  • Redesigned the RBAC workspace to make large sets of subjects, roles, and bindings easier to navigate.
  • Grouped subjects into Users, Groups, and Service Accounts with visible counts.
  • Grouped authorization resources into Roles and Cluster Roles with visible counts.
  • Added searchable, expandable trees instead of presenting every subject or role as one long list.
  • Improved role permissions, assigned roles, bindings, selection headers, and contextual counts.
  • Updated RBAC panels, headers, grids, and editors for consistent light and dark themes.

Website and Community

  • Added a Discord community invitation to the website navigation so help, product discussion, and CloudMaps beta feedback are always within reach.
  • Added the Discord community link and logo to the global website footer alongside the existing social channels.
  • Kept the navigation invitation compact across desktop, tablet, and mobile layouts.

Privacy and Account Portal

  • Expanded website consent controls for necessary storage, analytics, and external media.
  • External videos and embedded media remain blocked until the visitor allows external-media content.
  • Added a persistent privacy-settings entry so consent choices can be reviewed later.
  • Added account-deletion and retention workflows with backend coverage.
  • Restyled licenses, invoices, subscriptions, checkout, activation, invitation, validation, success, and privacy views to match K8Studio.
  • Improved authentication startup, token persistence, session refresh, production caching, responsive layouts, and light and dark themes.

Fixes

  • Fixed Caretta initialization errors when moving between CloudMaps tabs connected to different clusters.
  • Fixed traffic endpoints changing position or disappearing at intermediate zoom levels.
  • Fixed CloudMaps canvas sizing after moving a loading tab into a split view.
  • Fixed Helm chart lists showing the default icon for recognized technologies.
  • Fixed RBAC panels and headers that did not respect light mode.
  • Fixed account portal production login, session refresh, null grid data, invitation error, and checkout-success issues.
  • Fixed account portal sidebar, footer, and grid sizing differences between local and production builds.

4.0.0

Choose a tag to compare

@guiqui guiqui released this 15 Jul 08:05
5cda859

K8Studio 4.0.0

Release date: 2026-07-14

K8Studio 4.0.0 is a major CloudMaps release.

CloudMaps is the Google Maps for Kubernetes clusters: see everything, spot problems, and understand your cluster in seconds. It is designed for large environments, including clusters with 5,000+ workloads, where traditional trees and tables are not enough on their own.

This release also adds first-class Gateway API visibility, redesigned workload and Pod details, clearer workload status classification, improved port-forward management, and timeline polish.

Highlights

  • CloudMaps is now the center of the K8Studio 4.0 experience, giving teams a visual way to explore Kubernetes relationships, routing, dependencies, and infrastructure context.
  • Gateway API resources now have their own navigation area, grids, and detail views for modern Kubernetes ingress and routing workflows.
  • Gateways, GatewayClasses, HTTPRoutes, GRPCRoutes, and ReferenceGrants are easier to inspect with focused overview pages instead of raw YAML-first views.
  • Workload status is more precise with Healthy, Scaling, Updating, Pending, Blocked, and Degraded states, including better handling for Pending Pods.
  • Deployment and Pod details use space more efficiently with redesigned status, strategy, resource, container, labels, annotations, ports, and policy sections.
  • Port forwarding is easier to manage from resource actions with active-state indicators, inline creation, and quick removal.
  • Timeline event labels behave better in dense rows, avoiding occasional overlap between lifecycle labels.

CloudMaps

  • Added CloudMaps as the headline K8Studio 4.0 experience: a Google Maps-style way to monitor and explore Kubernetes clusters.
  • Improved visual investigation for huge clusters, including environments with 5,000+ workloads.
  • Made Kubernetes relationships easier to follow across selected objects, workloads, Services, Pods, Nodes, ports, routes, policies, storage, and dependencies.
  • Integrated Gateway API resources into the CloudMaps troubleshooting flow so modern ingress and routing resources can be understood in context.
  • Moved Topology after Logs and before Events in object details for a more natural investigation flow.
  • Improved dense timeline readability so CloudMaps investigations are easier to correlate with recent cluster activity.

Gateway API

  • Added a dedicated Gateway section in the cluster tree when Gateway API resources are available in the cluster.
  • Added grids and resource views for Gateways, GatewayClasses, HTTPRoutes, GRPCRoutes, ReferenceGrants, BackendTLSPolicies, and BackendTrafficPolicies.
  • Gateway details now highlight gatewayClassName, listeners, listener ports, addresses, and conditions.
  • GatewayClass details now show controller information, parameters, and conditions without forcing users into raw YAML first.
  • HTTPRoute and GRPCRoute details now show hostnames, parent refs, route rules, matches, filters, backend refs, ports, weights, and route conditions.
  • ReferenceGrant details now show allowed From and To references in a clean overview.
  • Gateway condition types are color-coded consistently with the rest of the workload and resource status experience.
  • Gateway API resources use a dedicated Gateway icon so they are easier to distinguish from general networking objects.

Workload Status

  • Added clearer customer-facing workload states: Healthy, Scaling, Updating, Pending, Blocked, and Degraded.
  • Deployments with non-crashing Pending Pods are shown as Pending instead of being marked Degraded too early.
  • Scheduling failures, progress-deadline failures, and blocked rollouts are shown as Blocked.
  • Crash loops, ReplicaFailure, and hard container errors continue to appear as Degraded.
  • Status colors now match the existing Kubernetes object icon and status palette.
  • Replica chips now include a Pending state so status cards explain rollout state more clearly.

Resource Details

  • Deployment details now make better use of horizontal space with compact Status, Strategy, Resources and Limits, and Pods sections.
  • Deployment Pod grids use available width and height more efficiently while avoiding large empty areas.
  • Pod details now start with a compact Pod Details card that groups status, conditions, scheduling, timing, and access information.
  • Labels and annotations are moved lower in the page so operational status, resources, ports, policies, and containers are easier to reach first.
  • Container cards now sit side by side with Network Policies and Port Forwarding when space allows.
  • Container information popovers are more readable, with clearer labels, values, commands, ports, environment variables, probes, security context, and mounts.
  • Conditions are now labeled as Conditions instead of Health, and condition types are color-coded.
  • Light-mode detail buttons have stronger contrast and no longer look disabled.

Port Forwarding

  • Port forwarding now uses a clearer two-arrow action icon with an active-state dot.
  • The port-forward action shows whether a resource has active port forwards with a subtle green or grey indicator.
  • Hovering the action opens a compact popover with active sessions, local URLs, remote/local port information, and remove controls.
  • New port forwards can be created inline from the popover when none are active.
  • The detail-page Port Forward box now renders only when port forwarding exists and stays compact beside related networking information.
  • Long active port-forward lists are scrollable so the surrounding detail layout stays stable.

Timeline and Topology

  • Timeline duration labels now avoid overlapping in dense rows such as Started, Created, Pulled, and SuccessfulCreate event clusters.
  • Extra colliding timeline markers are summarized behind compact counts instead of stacking labels on top of each other.
  • Narrow duration markers now render more compactly so event labels do not collide with count badges.
  • Topology tabs now sit after Logs and before Events in object details.

Fixes

  • Fixed Service details that could crash when rendering object-shaped status fields such as loadBalancer.
  • Fixed missing component views for newly supported Gateway API resources.
  • Fixed Gateway, GatewayClass, HTTPRoute, GRPCRoute, and ReferenceGrant detail pages falling back to raw or missing views.
  • Fixed workload status wording and color mismatches when a Deployment had Pending Pods.
  • Fixed occasional timeline label overlap in dense event rows.
  • Fixed several layout issues in Pod and Deployment details where cards, grids, or long container paths could waste space or overflow.

3.1.10

Choose a tag to compare

@guiqui guiqui released this 03 Jul 10:02
5cda859

K8Studio 3.1.10

Release date: 2026-07-03

A focused Visualizer release with smoother zooming and panning, clearer namespace containers, better cross-namespace links, and sharper high-zoom rendering.

Highlights

  • Zooming and panning are smoother and avoid whole-window flicker during repeated Visualizer interactions.
  • High-zoom element rendering is sharper without using an excessive cache scale.
  • Maximum zoom is aligned with the cached image scale so zoom-out does not get stuck beyond the useful viewport limit.
  • Namespace and subgroup containers are visible again with simpler styling and clearer dark-mode contrast.
  • Cross-namespace Service and Ingress links are handled more consistently.
  • Filtered views now hide links to namespaces that are not currently visible.

Visualizer

  • Zooming and panning are smoother and avoid the whole window flicker that could appear during repeated interactions.
  • Visualizer caching now keeps high-zoom element images sharper without using an excessive render scale.
  • Maximum zoom is aligned with the cached image scale so zoom-out does not get stuck beyond the useful viewport limit.
  • Namespace and subgroup containers are visible again with simpler styling and clearer dark-mode contrast.
  • Cross-namespace Service and Ingress links are handled more consistently.
  • Filtered views now hide links to namespaces that are not currently visible.
  • Added focused Visualizer and positioner tests around cached resets, getter-only dimensions, malformed links, filters, zoom cache scale, and group versions.

Rendering and Layout

  • Visualizer elements remain more readable at the highest zoom level.
  • Cached element images use a balanced scale for crisper text without the memory cost of an oversized cache.
  • The zoom limit now matches the rendered cache scale so users can zoom back out reliably.
  • Namespace containers and subgroup containers use simpler styling without heavy shadows or gradients.
  • Subgroup backgrounds are slightly darker so nested areas remain distinguishable.

Fixes

  • Fixed Visualizer links remaining visible when their namespaces were filtered out.
  • Fixed namespace and subgroup boxes disappearing after simplifying the Visualizer styling.
  • Fixed a cached layout reset issue that could try to write dimensions to getter-only position objects.
  • Improved handling for malformed Visualizer links so layout calculation remains stable.
  • Added focused tests for Visualizer cache scale, namespace filtering, group versioning, graph reset behavior, and positioner cache behavior.

3.1.9

Choose a tag to compare

@guiqui guiqui released this 30 Jun 12:35
5cda859

K8Studio 3.1.9

Version 3.1.9
A release focused on a more flexible AI Copilot, visual Kubernetes Topology, and a new Events Timeline for understanding what is happening inside a cluster faster.

Release date: June 28, 2026

Highlights

  • Copilot can now work with more AI providers, including local CLI-based assistants and API-key based providers.
  • Copilot provider and model selection is easier to manage from settings and can be changed without closing the Copilot window.
  • New Topology views help you see how a selected Kubernetes object connects to related workloads, Services, ConfigMaps, Secrets, storage, RBAC, and Nodes.
  • New Events Timeline turns Kubernetes Events into a visual, searchable history grouped by resource hierarchy.
  • Warnings and failures are easier to spot with clearer event markers, density signals, and compact counts.
  • Timeline and Topology are available for Professional and trial users.

AI Copilot

  • Choose from available AI providers in one compact settings list.
  • Use installed CLI-based assistants such as Claude Code, Codex, Gemini, GitHub Copilot, and Ollama when they are available on your machine.
  • Configure OpenAI and Claude with API keys when you prefer a hosted provider.
  • Switch provider and model directly from Copilot without closing the current conversation.
  • Provider icons, default selection, unavailable states, and setup guidance are clearer and easier to scan.
  • When a provider needs to be installed or logged in, K8Studio now gives clearer setup feedback.

Topology

  • Resource details now include a Topology tab for visually exploring related Kubernetes objects.
  • See common relationships across workloads, Pods, Services, Ingresses, ConfigMaps, Secrets, ServiceAccounts, PVCs, PVs, StorageClasses, HPAs, PDBs, NetworkPolicies, RBAC bindings, and Nodes.
  • Pan, zoom, and center the diagram while keeping the selected object easy to find.
  • Kubernetes object icons and animated connected arrows make relationships easier to follow.
  • Shared infrastructure objects such as kube-root-ca ConfigMaps or busy Nodes stay focused unless you select them directly.
  • Topology keeps noisy clusters readable by focusing the diagram on the objects most relevant to the selected resource.

Events Timeline

  • Added a new Kubernetes Events Timeline for exploring cluster events visually.
  • Events are grouped by resource hierarchy so App, Deployment, ReplicaSet, Pod, Node, Job, and CronJob activity is easier to scan.
  • Instant events render as compact diamonds while duration events render as real time spans, making warnings, BackOff loops, FailedMounts, scheduling, image pulls, and lifecycle activity easier to distinguish.
  • Added density strip, now-line, readable time axis, compact event counts, namespace/kind/severity filters, search, time-range chips, tooltips, collapsible rows, per-row sparklines, and a resizable resource column.
  • Timeline supports dark and light themes, horizontal panning, warning glow states, readable resource names, and namespace labels under resource names.
  • Busy clusters remain easier to navigate because dense event streams are summarized instead of overwhelming the screen.

Polish and Plans

  • Timeline and Topology are available on Professional plans and during trials.
  • Warning and failure events are now easier to identify at a glance.
  • Timeline controls use less vertical space, leaving more room for the event lanes.
  • Long resource names and namespaces are easier to read in the timeline resource column.
  • Timeline panning and resource-column resizing feel smoother during day-to-day investigation.

3.1.7

Choose a tag to compare

@guiqui guiqui released this 22 Jun 11:35
5cda859

Version 3.1.7

A Copilot and reliability release with safer analyzer-backed fixes, stronger privacy controls, better large-cluster metrics handling, improved license onboarding, and more polished web integrations.

Release date: June 19, 2026

Highlights

  • Copilot can now use K8Studio tools to open views, inspect resources, analyze issues, and prepare reviewed Kubernetes changes.
  • Fix flows are safer: Copilot diagnoses first, uses analyzer-built fixes, shows a before/after YAML diff, runs preflight checks, and waits for approval.
  • Analyzer coverage is broader with real-world troubleshooting scenarios, golden tests, and richer evidence from related resources, events, logs, status, and metrics.
  • Sensitive data sent to LLM providers is anonymized more aggressively, including names, namespaces, labels, annotations, images, env vars, secrets, URLs, IPs, domains, and logs.
  • Large-cluster metrics handling is more efficient, with deduped metric fetching and unchanged-update skipping for workload CPU and memory columns.
  • Metrics views are easier to explore with full-width charts, per-chart refresh, bottom legends, and cleaner loading states.
  • macOS shutdown is more reliable after fixing a native filesystem watcher cleanup crash that could appear when quitting the app.

Copilot and Analyzer

  • Added K8Studio tool support so Copilot can open clusters, pages, resource grids, selected resources, logs, YAML, events, Helm, Security, Metrics, Visualizer, Argo CD, Prometheus, and Grafana views.
  • Copilot now understands more natural requests such as opening Pods, Deployments, Namespaces, Events, Leases, Services, Ingresses, ConfigMaps, Secrets, RBAC resources, and other Kubernetes views, including common misspellings and singular/plural forms.
  • For fix requests, Copilot now runs the analyzer first and uses only analyzer-built executable fix candidates for automatic changes.
  • Fix proposals now open a reviewed before/after YAML diff with synchronized scrolling, editable proposed YAML, a clear explanation, confidence and risk labels, and a no-safe-automatic-fix state when needed.
  • Mutation flows now run RBAC and server-side dry-run preflight before applying changes and always wait for user approval.
  • Added stricter Copilot behavior rules to prevent invented Kubernetes fields, impossible live Pod patches, unsafe kubectl instructions, and model-authored mutation payloads when an analyzer fix is available.
  • Added a concise Copilot welcome message and a shared help modal that explains what Copilot can do now.

Analyzer Coverage and Confidence

  • Expanded per-kind analyzer reasoning for Pods, Deployments, ReplicaSets, StatefulSets, DaemonSets, Jobs, CronJobs, Services, Ingresses, Endpoints, PVCs, PVs, StorageClasses, HPAs, PDBs, Quotas, LimitRanges, RBAC, and ServiceAccounts.
  • Improved evidence collection so analysis can use the current object, parents, owned children, related events, recent logs, status, conditions, metrics, and known failure signatures.
  • Added analyzer support for safer fix candidates around common workload, service, storage, quota, limit range, scheduling, image, command, and readiness issues.
  • Added a real-world troubleshooting scenario fixture set with 35 known Kubernetes failure cases.
  • Added analyzer golden tests, scenario coverage tests, MCP contract tests, LLM response parser tests, dry-run/preflight tests, and regressions for bad LLM output.
  • Improved handling when no safe automatic fix can be built from analyzer evidence, so Copilot explains what is missing instead of inventing a patch.

Privacy and Safety

  • Improved LLM privacy with reversible local anonymization for names, namespaces, labels, annotations, image references, environment variables, secret references, URLs, IP addresses, domains, and log text.
  • Secrets and secret-like values are redacted before context is sent to an LLM provider.
  • Added additional protection for free-form evidence and logs, including JWT-shaped tokens, cloud access keys, prose token values, IPv4 and IPv6 addresses, emails, URLs, domains, and image references.
  • Added tests proving sensitive secret payloads and common credential formats are not leaked through Copilot context.

Metrics and Large-Cluster Performance

  • Metrics pages now use wider chart cards, bottom legends, and an expanded modal view for inspecting individual charts.
  • Added per-chart refresh behavior so refreshing one metric chart no longer reloads the full metrics page.
  • Improved chart loading states with a clearer spinner and loading text.
  • Improved CPU chart readability by separating CPU capacity styling from CPU utilization.
  • Improved workload CPU and memory columns for Deployments, StatefulSets, DaemonSets, and ReplicaSets.
  • CPU and memory metric cells now use clearer rounded values with smaller unit text.
  • Resource usage graphs now show only when request or limit data is available.
  • Metric refresh is more efficient through deduped requests and skipped UI updates when metric values have not changed.
  • Metric refresh behavior can be controlled from cluster settings.
  • Improved cluster overview resource usage cards for CPU, memory, requests, limits, allocatable capacity, and refresh behavior.

Resource Details and Status

  • Pod status is now calculated from the same shared logic across grids, details, and Deployment overview Pod components.
  • Deployment overview Pod status now better matches the attached Pods instead of showing misleading warnings.
  • Pod component links in Deployment overview now open the related Node correctly.
  • Container volume mount cards expand better for long paths and avoid text overflow.
  • YAML views now include a copy button for the current manifest content.
  • Default cluster icons now use the K8Studio SVG mark and tint automatically with the cluster's configured color.

License, Trial, and Onboarding

  • Improved license and trial display so days remaining come from the backend days-left value.
  • Fixed stale license UI state when an expired license is refreshed and replaced by a valid license.
  • Removed misleading trial-start messaging from the license activation window.
  • Reworked license activation flows so buying Pro, entering a license code, online activation, and Airtight activation are clearer and separated.
  • Added trial-days remaining display in the bottom bar with clearer color states.
  • Added EULA support and improved onboarding/legal consent presentation.

Website and Download Tracking

  • Added backend and website support for download tracking with platform and device information.
  • Added cookie consent messaging for website visitors.
  • Fixed CORS configuration for download telemetry requests from k8studio.io.
  • Improved first-five-minute onboarding messaging and license prompts for new users.

Web Integrations

  • Argo CD, Grafana, and other web integration pages keep passwords hidden by default with a reveal control.
  • Credential bars now provide separate copy buttons for username and password.
  • Embedded web integration pages continue to use port forwarding to open local management UIs when available.

Fixes

  • Fixed a macOS quit crash caused by native filesystem watchers being torn down while Electron was shutting down.
  • Fixed a crash when clicking links to resources that no longer exist.
  • Fixed several Copilot tool-routing issues where requests such as opening Deployments, Helm, Security, Nodes, Namespaces, Events, Leases, and other pages were not recognized reliably.
  • Fixed Copilot handling for bad or incomplete model-generated patch payloads.
  • Fixed a readiness-fix flow where Copilot could not build a safe patch from analyzer evidence.
  • Fixed a UI issue where the Copilot new-chat button looked like a no-op on empty conversations.
  • Fixed Copilot welcome content that was too large by replacing it with a compact summary and shared help modal.
  • Fixed website desktop breakpoints so large desktop screens do not incorrectly show the mobile navigation.
  • Fixed the Next.js SWC binary issue for local website development on darwin/arm64.

3.1.6

Choose a tag to compare

@guiqui guiqui released this 09 Jun 19:43
5cda859
v3.1.6

Adding ssh and multicluster

3.1.4

Choose a tag to compare

@guiqui guiqui released this 21 Sep 15:38
5cda859

K8Studio 3.1.4 Release Notes

Bug Fixes

  • No Namespace Column on Pods
  • Misleading status on Workloads
  • Basic License

3.1.3

Choose a tag to compare

@guiqui guiqui released this 28 Aug 10:25
5cda859

Release Notes - Version 3.1.3

🛠️ Fixes & Performance Improvements

  • Fix Activation Code for Airghtight licenses

3.1.2

Choose a tag to compare

@guiqui guiqui released this 15 Aug 15:26
5cda859

Release Notes - Version 3.1.2

✨ New Features

  • Vulnerability Scanner: Scan and detect vulnerabilities across your applications.
  • DevOps SecView in Visualizer: Integrated DevOps security insights directly within the visualizer.
  • Network Policy Visualizer: Visual representation of network policies for easier management.
  • Security Dashboard: Centralized dashboard for monitoring vulnerabilities and security metrics.
  • Grid Component Enhancements:
    • Add vulnerabilities directly to the grid.
  • Visualizer Enhancements:
    • Zoom in and zoom out buttons.
    • Keyboard shortcuts for panning and zooming.
  • New Vulnerability Editor: Streamlined interface for creating and managing vulnerabilities.

🛠️ Fixes & Performance Improvements

  • Fixed error when clicking on a link in the network policy.
  • General performance and stability improvements across the application.

3.1.1

Choose a tag to compare

@guiqui guiqui released this 24 Jun 17:50
5cda859

🚀 Release Notes - Version 3.1.1

✨ New Features

  • Replicaset: Added replicaset to the deployment view.
  • Rollback: Added the ability to roll back a deployment to a previous version.
  • Controlled By: Added "Controlled By" and node information to Pod, Replicaset, and Workload overview.
  • Status: Added status to grid columns for all workloads.

🛠️ Fixes & Performance Improvements

  • Visualizer: Fixed image redraw when layout changes.
  • Links: Fixed error when clicking on links, pods, Pvc, workloads.