Como um token de IA viaja por um data center
(datagravity.dev)- Em 2026, a inferência de IA se expandiu para cerca de dois terços de toda a computação de IA e representa 80% a 90% do custo computacional ao longo da vida útil de modelos implantados, de modo que o custo de processamento de tokens e a latência determinam a viabilidade econômica da infraestrutura
- Uma única solicitação percorre um trajeto de 15 etapas — tokenização, gateway de API, autenticação, roteamento, escalonamento, cache KV, GPU e HBM, kernels CUDA, NVLink, switches, NICs e Ethernet — até voltar como resposta
- O prefill, que processa a entrada em paralelo, é limitado pelo volume de computação e pela latência até o primeiro token, enquanto o decode, que gera tokens um a um, fica preso à largura de banda de memória, à velocidade de geração e ao custo; por isso, batching, quantização e speculative decoding miram gargalos diferentes
- Continuous batching e PagedAttention elevam a utilização da GPU e a vazão concorrente; o cache de prompts reduz em até 90% o custo de entradas repetidas e em cerca de 85% a latência de prompts longos; e a separação entre prefill e decode permite operar pools de GPUs por etapa
- Embora o custo para oferecer uma qualidade fixa tenha caído cerca de 200 vezes na mediana anual, a vazão aumentou 7 vezes; o valor de longo prazo se concentra em plataformas de inferência que transformam gargalos físicos como largura de banda de HBM, malha NVLink, componentes ópticos e energia — além da eficiência — em retenção de clientes
Por que a inferência se tornou o centro da economia da IA
- Chatbots, agentes de programação, resumos de busca e legendas de imagens são todos trabalhos de geração de tokens que fazem forward pass em um modelo treinado para prever repetidamente o próximo token; esse processo é a inferência
- Em maio de 2026, o Google divulgou que processa 3,2 quatrilhões de tokens por mês em seus serviços
- Em base anualizada, isso equivale a cerca de 38 quatrilhões
- É 7 vezes mais que os 480 trilhões por mês de um ano antes; no início de 2024, eram 9,7 trilhões por mês
- Esse número corresponde ao custo de responder a solicitações de usuários, não ao treinamento
- A participação da inferência na computação de IA cresceu de cerca de um terço em 2023 para metade em 2025 e cerca de dois terços em 2026
- Em modelos implantados, a inferência é um custo dos produtos vendidos que se repete a cada solicitação, e há uma regra prática no setor de que ela representa 80% a 90% do custo computacional ao longo da vida útil
- O capex indicado pelas quatro grandes hyperscalers para 2026 é de cerca de US$ 725 bilhões, alta de 77% em relação ao ano anterior
- Mais de 60% desse valor vai para energia, refrigeração e edifícios, não para chips
- Só o mercado de silício dedicado à inferência deve ultrapassar US$ 50 bilhões em 2026
- Há duas mudanças que impulsionam a demanda por inferência
- A expansão do tempo de raciocínio e os sistemas de agentes consomem 10 a 100 vezes mais tokens por consulta
- Fluxos de trabalho com agentes custam 5 a 25 vezes mais por tarefa do que uma solicitação única, por causa de novas tentativas, chamadas de ferramentas e recarregamento de contexto
- O custo para oferecer um nível de qualidade fixo caiu cerca de 200 vezes na mediana anual desde o início de 2024, mas surgiu o paradoxo de Jevons: tokens mais baratos abrem mais usos e aumentam o consumo total
- Batching, paginação, quantização, speculative decoding, serving desagregado e network fabric são todas tecnologias voltadas a reduzir o custo por token dentro da latência-alvo
Etapas 1 a 4: transformar texto em trabalho apto para batching
-
Etapa 1: usuário e tokenização
- O cliente envia texto via HTTPS, mas o modelo recebe como entrada IDs inteiros, não texto
- Um tokenizador baseado em BPE em nível de bytes divide a string em tokens de subpalavras e associa cada token a um ID em um vocabulário de cerca de 100 mil a 200 mil itens
- O RFP de 12.000 tokens e a pergunta do exemplo se tornam uma sequência plana de 12.022 IDs inteiros
- A tokenização é executada de forma determinística na CPU e quase não tem custo, mas a quantidade de tokens de entrada e saída determina o valor cobrado
- A janela de contexto de 200 mil a 1 milhão de tokens dos modelos de fronteira em 2026 é o limite superior do tamanho do documento que pode ser inserido de uma só vez
-
Etapa 2: gateway de API
- O gateway de API encerra o TLS, faz o parsing da solicitação e então executa validação de schema, gerenciamento de versão da API, rate limiting aproximado, atribuição de ID de rastreamento e registro inicial de uso
- Com proxies no nível do Envoy ou NGINX e firewalls de aplicação web, ele processa milhões de solicitações por segundo e não executa lógica de modelo
- O orçamento de latência é de menos de 1 milissegundo, e cerca de 5% do tráfego — erros de formato, excesso de quota e solicitações maliciosas — é rejeitado antes de chegar a recursos caros
-
Etapa 3: autenticação e nível de cobrança
- Chaves de API ou tokens OAuth são vinculados a organizações para verificar faixas de rate limit e limites de gasto, além de determinar o preço por token a aplicar
- A elegibilidade para desconto em entrada em cache, caminho de processamento prioritário e preços mais baixos de processamento em lote também é definida nessa etapa
- Ao estabelecer isolamento de dados por organização e limites contra abuso, bytes anônimos são transformados em unidades de trabalho mensuradas, cobradas e isoladas
-
Etapa 4: balanceamento de carga
- Um balanceador de carga comum distribui solicitações entre réplicas idênticas do modelo usando health checks e sinais de carga em tempo real
- Em LLMs, um round-robin simples envia solicitações com o mesmo prompt de sistema ou prefixo de documento para réplicas diferentes, perdendo oportunidades de reutilização de cache
- O balanceamento de carga moderno para IA evolui para uma abordagem ciente de cache, que escolhe a réplica com cache KV do mesmo prefixo, e sua função se sobrepõe à do roteador de inferência da próxima etapa
- Quando todo o equipamento está saturado, a decisão de enfileirar a solicitação ou retornar
429também é tomada nessa etapa
Etapas 5 a 6: decidir onde executar e o batching
-
Etapa 5: roteador de inferência
- O roteador de inferência escolhe modelo, silício e réplica em poucos milissegundos
- Entre um modelo de fronteira 70B, um 8B destilado, um modelo de raciocínio e um par de modelos rascunho-alvo, ele seleciona a configuração mais econômica que cumpra os objetivos de nível de serviço
- Processar com 70B uma solicitação que poderia ser atendida por um modelo 8B consome margem desnecessariamente
- Para prefill centrado em computação, FLOPS importam; para decode centrado em memória, a largura de banda de HBM é crucial, de modo que a GPU adequada pode variar até dentro de uma mesma solicitação
- Enviar para uma instância que já tenha cache KV do mesmo prefixo pode transformar um prefill de 12.000 tokens em um acerto de cache praticamente gratuito
- Compiladores e autotuners pré-compilam e ajustam kernels de GPU adequados ao modelo, ao formato da entrada e ao chip, e em tempo de execução escolhem o plano de execução mais barato
- Together AI, Fireworks, Baseten e Modular produtizam a escolha de kernels, chips e precisão nessa camada e a monetizam com sua própria infraestrutura de inferência
-
Etapa 6: scheduler e continuous batching
- Com batch size 1, o H100 fica limitado mais pela memória do que pela computação, por isso a utilização dos streaming multiprocessors permanece em cerca de 30% a 40%
- O scheduler usa continuous batching para adicionar novas solicitações a cada forward pass e remover sequências concluídas
- Não é preciso esperar o término de um lote fixo de solicitações, o que permite manter a GPU continuamente preenchida
- Com essa abordagem, o vLLM entrega uma vazão 2 a 4 vezes maior do que sistemas de serving anteriores e processa 3 a 5 vezes mais tráfego do que um loop PyTorch simples no mesmo H100
Etapas 7–8: cache KV e gerenciamento de memória da GPU
-
Etapa 7: cache KV
- Em cada camada de atenção, vetores Key e Value são criados para cada token, e o próximo token referencia os K/V de todos os tokens anteriores
- Recalcular isso a cada vez geraria um custo O(n²) em contextos longos; por isso, o prefill calcula uma vez os K/V de 12.022 posições e os armazena no cache KV
- Depois, a etapa de decode adiciona um único K/V do novo token e lê o cache existente
- O cache KV cresce conforme o número e o comprimento das sequências simultâneas, sendo a estrutura que consome a maior quantidade de memória da GPU, de forma dinâmica, durante o serving
-
PagedAttention e prevenção de fragmentação
- Como é difícil prever o comprimento das sequências, a alocação de memória contígua pode fazer com que 60% a 80% da memória fique inutilizável
- PagedAttention / vLLM divide o cache KV em páginas de tamanho fixo, como a memória virtual de um sistema operacional
- Blocos físicos são alocados conforme a necessidade e conectados por uma tabela de páginas, eliminando a necessidade de espaço contíguo
- As páginas de sequências concluídas são devolvidas imediatamente
- Sequências de vários usuários podem compartilhar uma GPU de forma segura e eficiente
- Esse método de gerenciamento de memória sustenta o aumento de throughput de 2 a 4 vezes do vLLM
-
Cache de prompts e prefixos
- Solicitações que repetem o mesmo prompt de sistema, preâmbulo few-shot ou prefixo de documento podem reutilizar o cache KV calculado uma vez
- A Anthropic oferece leitura de cache por US$ 0,30 por milhão de tokens, 0,1 vez o preço da entrada comum, enquanto a entrada comum custa US$ 3
- O OpenAI GPT-5.x também aplica 90% de desconto tanto para entrada em cache, a US$ 0,50, quanto para entrada comum, a US$ 5
- Em prompts longos, a latência também cai cerca de 85%, e perguntas subsequentes no exemplo de RFP não precisam repetir o prefill de 12.022 tokens
-
Etapa 8: os três componentes da memória da GPU
- A memória do pacote da GPU contém, ao mesmo tempo, os pesos do modelo fixos, o cache KV que cresce conforme as solicitações simultâneas e seus comprimentos, e ativações e espaços de trabalho temporários
- Depois que os pesos são carregados, o espaço restante vira o orçamento do cache KV; por isso, muitas vezes é a memória, e não a quantidade de computação, que limita o número de usuários simultâneos
- Um modelo 70B ocupa cerca de 140 GB em FP16, exigindo duas H100 de 80 GB, mas em FP8 cai para cerca de 70 GB, deixando espaço para o cache KV em uma única GPU
- A memória economizada nos pesos por meio de quantização se traduz diretamente em mais usuários simultâneos
Etapas 9–10: gargalo de HBM e otimização de kernels de GPU
-
Etapa 9: gargalos diferentes no prefill e no decode
- O prefill é uma grande multiplicação de matrizes que processa em paralelo 12.022 tokens de entrada, saturando os tensor cores, e fica limitado pela quantidade de computação e pelo tempo até o primeiro token (TTFT)
- O decode precisa ler da HBM todos os pesos do modelo e o cache KV crescente sempre que cria um próximo token
- Com batch size 1, a intensidade aritmética do decode é de cerca de 1 FLOP por byte, muito abaixo do limite do roofline, de cerca de 410 a 590 FLOP/byte
- Os tensor cores passam mais tempo esperando a memória do que calculando, e a largura de banda da HBM define o teto da velocidade e do custo de geração
-
Redução de precisão
- Reduzir a precisão de FP16 para FP8 e FP4 diminui o número de bytes de pesos que precisam ser lidos por token, aumentando o throughput do decode centrado em memória
- O NVFP4 da NVIDIA é um formato de ponto flutuante de 4 bits para os tensor cores de 5ª geração da Blackwell
- Ele oferece cerca de 2 a 3 vezes mais throughput aritmético e cerca de 1,8 vez de economia de memória em relação ao FP8
- Mantém a diferença em relação à precisão de referência em cerca de 1% ou menos
- Contribui para acelerar a inferência de ponta a ponta em até 5 vezes em comparação com Hopper
-
Etapa 10: kernels CUDA e fusão
- As operações matemáticas da GPU são executadas como kernels, pequenos programas que rodam em milhares de cores
- Se as operações de transformadores forem executadas como centenas de kernels separados, cada kernel lê dados da HBM e grava os resultados de volta, impondo uma grande carga em tarefas limitadas por largura de banda
- A fusão de kernels combina várias operações em uma só, mantém os dados intermediários na SRAM on-chip e reduz acessos à HBM
- O FlashAttention usa atenção em tiles e softmax online para reduzir as leituras e escritas na HBM em função do comprimento da sequência de escala quadrática para escala linear, acelerando de 2 a 4 vezes
- O FlashAttention-3 usa os motores assíncronos e FP8 da Hopper para chegar a 840 TFLOPS na H100, cerca de 85% do desempenho máximo
-
Decodificação especulativa
- No decode, como é preciso ler todos os pesos mesmo para gerar um único token, o custo extra de verificar vários tokens candidatos em paralelo é relativamente pequeno
- Um pequeno modelo de rascunho propõe os próximos K tokens, e o grande modelo-alvo os verifica em uma única execução paralela, adotando o prefixo correto mais longo
- A saída é matematicamente igual à do decode comum, mas a velocidade aumenta de 2 a 4 vezes
- Métodos como o EAGLE-3 aceitam mais de 75% dos tokens de rascunho
Etapas 11 a 14: a rede que entra no modelo
-
Etapa 11: malha de escala via NVLink
- Modelos com trilhões de parâmetros e modelos MoE que não cabem em uma única GPU são particionados entre várias GPUs, então há comunicação entre GPUs em todas as camadas e para todos os tokens
- A rede não é um dispositivo auxiliar fora do loop de decodificação; ela opera dentro do loop de decodificação
- O NVLink 5 oferece 1,8 TB/s por GPU, cerca de 14 vezes um link PCIe Gen5
- O GB200 NVL72 conecta 72 GPUs Blackwell e 36 CPUs Grace em um único domínio NVLink
- A largura de banda total é de 130 TB/s, e a memória unificada é de 13,4 TB
- O consumo é de cerca de 120 kW e, em modelos com trilhões de parâmetros, oferece throughput de inferência até 30 vezes maior que clusters H100
-
O volume de comunicação criado pela paralelização
- O paralelismo de tensores divide as multiplicações de matrizes de cada camada entre várias GPUs e depois precisa combinar os resultados parciais várias vezes por token por meio de all-reduce
- Em MoE, como os tokens são enviados a especialistas espalhados por várias GPUs, a comunicação all-to-all muitas vezes se torna o principal gargalo
- O ambiente de operação da DeepSeek usa 8 NICs de 400 Gbps por nó e reduz as paradas da GPU ao sobrepor comunicação entre especialistas e computação com o DeepEP
-
Etapa 12: switches e controle de congestionamento
- O NVSwitch no domínio de escala oferece 144 portas NVLink e comutação non-blocking de 14,4 TB/s, permitindo que 72 GPUs se comuniquem simultaneamente na velocidade máxima
- Em redes de escala que ultrapassam o rack, são usados switches como NVIDIA Quantum-X800 InfiniBand, Spectrum-X800 Ethernet e Broadcom Tomahawk 6 de 102,4 Tbps
- Redes de IA reduzem o número de saltos da comunicação coletiva com uma topologia otimizada por rails, conectando GPUs de mesmo número ao mesmo switch de rail
- Operações dentro da malha, como SHARP, executam reduções no switch
- Quando milhares de GPUs concluem uma etapa ao mesmo tempo, ocorre incast sincronizado; como o congestionamento de um único link pode paralisar toda a comunicação coletiva, o roteamento adaptativo é essencial
-
Etapa 13: NICs e DPUs
- Pacotes que trafegam entre racks passam por uma SmartNIC ou DPU, como a NVIDIA BlueField
- RoCE ou InfiniBand verbs permitem que uma GPU remota leia diretamente a memória de outra GPU sem passar pela CPU
- A velocidade dos links hoje é de 400 Gb/s, e 800 Gb/s está sendo padronizado
- A DPU processa controle de congestionamento, criptografia, virtualização de armazenamento e isolamento multi-tenant no lugar da CPU do host
- Em clusters otimizados por rails, às vezes há uma NIC dedicada para cada GPU; a DeepSeek pareia 8 GPUs com 8 NICs de 400 Gb/s
-
Etapa 14: Ethernet e componentes ópticos
- InfiniBand era a escolha tradicional para clusters de IA por oferecer latência de cerca de 1 a 2 µs e uma malha sem perdas, enquanto RoCEv2 Ethernet era tratado como segunda opção, com cerca de 5 a 10 µs
- O Ultra Ethernet Consortium anunciou em junho de 2025 o UEC 1.0, que reconstrói a stack Ethernet para IA
- A Dell’Oro prevê que, em redes de backend de IA, a Ethernet ultrapassará a InfiniBand até 2027
- A inferência é sensível a custos e próxima de ambientes multi-tenant e corporativos, por isso a estrutura de preços e o ecossistema aberto da Ethernet são importantes
-
Custo e consumo dos componentes ópticos
- Transceptores ópticos representam cerca de 60% do custo da rede e cerca de 45% do consumo de energia da rede
- Como a rede representa cerca de 15% a 18% do custo total do cluster, só os componentes ópticos correspondem a cerca de 10% do custo total
- Os módulos pluggable 800G de um switch consomem mais de 500 W somados, podendo gastar mais energia que o ASIC de comutação
- O mercado de transceptores ópticos para IA deve crescer 57%, de cerca de US$ 16,5 bilhões em 2025 para cerca de US$ 26 bilhões em 2026
- Óptica coempacotada (CPO) transfere os dispositivos ópticos para o pacote do switch, reduzindo o consumo de links 1.6T de cerca de 30 W para 9 W
- A NVIDIA apresenta uma eficiência energética 5 vezes maior e uma resiliência 10 vezes maior em seu switch fotônico previsto para o segundo semestre de 2026
- Em modelos maiores que uma única GPU, é preciso gerenciar uma diferença de largura de banda de cerca de 20 a 40 vezes entre a escala via NVLink e a escala via Ethernet
Etapa 15: streaming da resposta e liquidação
- Quando o último token é gerado, a destokenização converte os IDs inteiros de volta em texto
- A resposta percorre o caminho inverso por NICs, switches, balanceadores de carga e gateways, normalmente sendo transmitida token a token por eventos enviados pelo servidor (SSE)
- O usuário pode começar a ler a partir de cerca de 0,3 segundo antes de a resposta completa terminar, de modo que o TTFT influencia fortemente a velocidade percebida
- Por fim, tokens de entrada normais ou em cache e tokens de saída, mais caros, são calculados conforme o nível definido na etapa de autenticação, encerrando a cobrança
O sistema operacional de inferência chamado serving desagregado
- Batching, paginação de KV, separação entre prefill e decodificação, escolha de hardware e comunicação coletiva são, todos, problemas de escalonamento de trabalhos heterogêneos nas camadas de memória e rede para aumentar a utilização do silício caro
- O serving desagregado (disaggregated serving) de 2026 divide o prefill, centrado em computação, e a decodificação, centrada em largura de banda, em pools separados de GPUs
- Cada pool é escalado e ajustado de forma independente, e o cache KV é transmitido entre os dois pools
- NVIDIA Dynamo, vLLM, SGLang, llm-d e Mooncake adotam essa arquitetura
Por que empresas de compiladores viraram nuvens de inferência
- Empresas de compiladores, kernels e auto-tuners, em vez de licenciar sua tecnologia, a executam em sua própria infraestrutura e vendem tokens, convertendo diferenças de eficiência em margem bruta
- Uma melhoria de 2 vezes em kernels, batching, quantização e speculative decoding também dobra os tokens vendáveis por GPU
- Auto-tuners que escolhem o kernel de menor custo para cada combinação de modelo, formato de entrada e chip geram receita diretamente em equipamentos de GPU em larga escala
- A receita anual recorrente da Baseten aumentou de cerca de US$ 200 milhões em dezembro de 2025 para cerca de US$ 600 milhões em março de 2026, crescendo cerca de 1.900% em relação ao ano anterior
- A empresa captou US$ 1,5 bilhão com valuation de US$ 11 bilhões a US$ 13 bilhões
- O valuation subiu em relação aos US$ 5 bilhões de cinco meses antes
- A aquisição da Modular pela Qualcomm por cerca de US$ 3,9 bilhões é um exemplo de empresa de chips tentando responder à NVIDIA com um compilador independente de hardware
Critérios para escolher um provedor de inferência
-
Latência, custo e confiabilidade
- A latência deve ser avaliada separando o TTFT, que determina o início da resposta, e a latência entre tokens, que define a velocidade de conclusão da resposta
- Mais importante do que a mediana é a latência de cauda p99, que reflete as pausas que os usuários realmente percebem
- A inferência em GPUs comuns leva cerca de 400 a 600 ms para o primeiro token
- Groq e Cerebras apresentam, em modelos da classe Llama-70B, TTFT abaixo de 100 a 150 ms e velocidades de saída de mais de 1.600 a 2.100 tokens por segundo, cerca de 4 a 6 vezes as de stacks comuns de GPU
- O custo deve ser calculado não pelo preço unitário publicado, mas pelo custo combinado, refletindo a proporção entre entrada e saída, a taxa de acerto de cache e a possibilidade de processamento em lote
- A saída é cerca de 4 a 5 vezes mais cara do que a entrada e normalmente responde pela maior parte do custo total
- O cache de prompts reduz o custo de entrada em 50% a 90%, e níveis de processamento em lote frequentemente reduzem o custo em cerca de 50%
- Em meados de 2026, os preços variam por múltiplos de duas casas, indo de cerca de US$ 0,04 a US$ 0,20 por milhão de tokens em endpoints de modelos abertos otimizados para custo, como DeepInfra ou Groq, até vários dólares em modelos de fronteira
- O preço de exemplo da Groq é de US$ 0,15 para entrada e US$ 0,60 para saída
- A confiabilidade deve medir não só o SLA simples de uptime, mas também a disponibilidade funcional
- O Azure OpenAI oferece SLA de 99,9% para geração de tokens
- Empresas também exigem SLAs de latência, como TTFT abaixo de 200 ms em 99,99% das chamadas
- Picos na taxa de recusas, mudanças automáticas de versão do modelo que pioram os resultados de avaliação e limites de cota sob carga podem quebrar o produto mesmo mantendo o uptime oficial
- É preciso fixar a versão do modelo, negociar capacidade e monitorar diretamente a disponibilidade funcional
-
Sete critérios que definem a adequação à produção
- Throughput e limites de requisição: limites de tokens por minuto e folga de processamento em picos restringem o trabalho paralelo dos agentes e a escala de expansão
- Segurança e conformidade: SOC 2 Type II, HIPAA, ISO 27001 e GDPR são requisitos básicos em setores regulados e difíceis de acrescentar depois
- Localidade dos dados e implantação privada: garantias de não retenção, VPC·BYOC e suporte on-premises influenciam a aprovação de compra por empresas
- Determinismo e controle de versão: sementes fixas e checkpoints fixos evitam drift nos resultados de avaliação causado por mudanças automáticas
- Abrangência e atualidade dos modelos: variedade de modelos, suporte no dia do lançamento a novos pesos abertos e hospedagem de fine-tuning·LoRA determinam a velocidade de adoção dos modelos mais recentes
- Flexibilidade de implantação: opções serverless, infraestrutura dedicada e self-hosting definem o equilíbrio entre custo e nível de controle
- Portabilidade: APIs compatíveis com OpenAI e roteamento limpo entre múltiplos provedores servem como meios de resposta a falhas, mudanças de preço e alterações de modelo
Gargalos físicos onde o valor se acumula
- A largura de banda de HBM define o teto de decodificação, os domínios de scale-up do NVLink têm exclusividade, e componentes ópticos e energia tornam-se insumos escassos
- Como mais de 60% dos US$ 725 bilhões em despesas de capital são gastos em energia e edifícios, a métrica final de longo prazo é tokens por watt
- O mercado de redes se divide em duas direções
- As redes de interconexão para scale-up permanecem como uma área fechada e defensável
- As redes de expansão fora do rack se abrem e se comoditizam em torno de Ethernet e UEC
- As áreas de diferenciação são os domínios NVLink, óptica·CPO e propriedade intelectual de controle de congestionamento, mais do que comutação genérica
- A margem do software de inferência é determinada pelo produto entre diferenças de eficiência, taxa de utilização e escala operacional, e apenas empresas que transformam desempenho em poder de distribuição e custos de troca conseguirão se defender em meio à queda de preços
- Negócios que apresentam apenas velocidade bruta como vantagem competitiva podem ver a mesma performance se tornar comum por meio da camada de compiladores e das ferramentas gratuitas da NVIDIA
- A expansão da escala da economia de tokens não garante automaticamente margens altas; o que faz a diferença são os gargalos de memória, interconexão, óptica e energia e plataformas que convertem eficiência em aprisionamento do cliente
Ainda não há comentários.