惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
F
Full Disclosure
博客园 - 【当耐特】
博客园 - 司徒正美
V
Visual Studio Blog
F
Fortinet All Blogs
T
Tor Project blog
T
Threatpost
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
M
MIT News - Artificial intelligence
L
Lohrmann on Cybersecurity
P
Palo Alto Networks Blog
I
Intezer
Stack Overflow Blog
Stack Overflow Blog
The Register - Security
The Register - Security
The Last Watchdog
The Last Watchdog
S
Securelist
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
U
Unit 42
博客园 - 叶小钗
P
Proofpoint News Feed
C
Cybersecurity and Infrastructure Security Agency CISA
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
SecWiki News
SecWiki News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
TaoSecurity Blog
TaoSecurity Blog
A
Arctic Wolf
Martin Fowler
Martin Fowler
T
Threat Research - Cisco Blogs
N
News | PayPal Newsroom

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Закон о суверенном ИИ и его борьба с матчастью
tadbadtrue · 2026-05-05 · via Все публикации подряд на Хабре

Закон о суверенном ИИ и его борьба с матчастью

Время на прочтение10 мин

Охват и читатели1.3K

Ретроспектива

В марте Минцифры опубликовало проект закона «Об основах государственного регулирования сфер применения технологий искусственного интеллекта». В апреле документ смягчили под давлением бизнеса (на портале regulation.gov.ru поступило 428 предложений от более чем 150 экспертов. Из них учтено полностью - 30, частично - 128), а 23 апреля Совет по кодификации при президенте под руководством Павла Крашенинникова отклонил его с формулировкой «юридически пустая, хоть и модно звучащая инициатива». Тем не менее Мишустин поручил Минцифре внести законопроект в Госдуму до конца весенней сессии (продлена 14 апреля до 26 июля).

Что в нём по существу: три категории моделей (суверенные, национальные, доверенные), сертификация ФСТЭК и ФСБ для последних, обязательная маркировка ИИ-контента, требование «учёта традиционных духовно-нравственных ценностей» и ответственность разработчика за результат, если тот «знал заранее о возможности». Юристы, бизнес-ассоциации и президентский совет свои претензии уже выписали - там много про предмет регулирования и противоречия с Гражданским кодексом.

Я хочу разобрать другую сторону: техническую. Документ местами читается так, как будто его писали люди, которые видели LLM только в новостях РБК. Пройдёмся по слоям стека.

1. Что вообще такое ИИ по этому закону 

Законопроект описывает «искусственный интеллект» настолько широко, что под определение попадает практически любой софт со статистикой и условной логикой. Ассоциация юристов России уже это зафиксировала: фактически охватывается всё с автоматизацией или машинным обучением.

С технической стороны это означает, что в одну категорию закон сваливает:

- классические модели машинного обучения вроде логистической регрессии и градиентного бустинга (XGBoost и CatBoost технически относятся к ML, но никто в здравом уме не назовёт катбуст «искусственным интеллектом»); 

- глубокие сети старого поколения: ResNet для зрения, BERT-подобные модели для обработки естественного языка; 

- передовые большие языковые модели: GPT-5, Claude Opus 4.7, GigaChat 3 Ultra, Alice AI; 

- агентные системы с вызовом инструментов, памятью и планированием. 

У этих штук принципиально разные модели угроз, поверхности атак, режимы отказа и методики оценки. Регулировать линейный классификатор скоринга и автономного агента с доступом к API одной статьёй - это как регулировать перочинный ножик и дрон-камикадзе одной нормой «об острых предметах».

Для сравнения. Европейский регламент об ИИ делит системы на четыре уровня риска - от минимального до неприемлемого. Американский фреймворк NIST AI RMF использует отдельные профили для разных классов систем, плюс отдельный профиль для генеративных моделей (NIST AI 600-1). Законопроект Минцифры оперирует понятиями «сервис ИИ», «модель ИИ» и «система ИИ» как почти взаимозаменяемыми. 

2. Чинчилла не голосует в Думе 

Изначально закон требовал обучать «суверенные» модели только на данных российского происхождения. Под давлением бизнеса требование убрали, но идея осталась как декларация. Полезно посчитать в цифрах, почему она нереализуема.

Передовые модели обучаются минимум на 10-20 трлн токенов. Llama 3 - около 15T (как уточняет Meta, это уже на два порядка больше Chinchilla-оптимума для 8B, и качество всё ещё росло), оценки для GPT-5 и Claude Opus сопоставимы, DeepSeek-V3 - 14.8T. Закон масштабирования говорит, что оптимальное с точки зрения вычислений обучение требует примерно 20 токенов на параметр, а модели сегодня тренируются сильно сверх этого.

Что есть на русском. Русскоязычная доля Common Crawl колеблется в пределах 4-6% от общего объёма, и после дедупликации, фильтрации мусора и качества остаётся порядка 1-2 трлн токенов чистого текста - в лучшем случае. Корпуса, созданные сообществом вроде Taiga, OpenCorpora, ruWiki и ruWikinews меньше на один-два порядка.

Между объёмом доступных русскоязычных данных и объёмом, нужным для обучения передовой модели, разрыв примерно в порядок. Для обучения с нуля этого недостаточно, и это видно из публичных законов масштабирования данных.

Что на практике делают все, кто обучает русскоязычные большие языковые модели? Берут многоязычные корпуса с русскоязычной добавкой - обычно от 10 до 30 процентов русского в предобучении. Чудес не бывает. И никакая «суверенность» этого не отменит: закон Чинчиллы в Госдуме не зарегистрирован.

3. Open-source как несущая конструкция 

Бизнес в отзывах прямо признал: в России сейчас нет ИИ-моделей, полностью созданных внутри страны. Это не оценка, а констатация факта. Что именно «не российское» в любой современной LLM:

Слой стека

Что используется

Происхождение

Архитектура

Transformer, MoE, Mamba, SSM

Google Brain, Meta AI, академические исследования

Токенизация

SentencePiece, BPE, tiktoken

Google, OpenAI

Фреймворки обучения

PyTorch, JAX, Megatron-LM, DeepSpeed

Meta, Google, Microsoft, NVIDIA

Распределенное обучение

FSDP, ZeRO, Ring Attention

Meta, Microsoft, Stanford

Инференс

vLLM, TensorRT-LLM, llama.cpp, SGLang

UC Berkeley, NVIDIA, ggerganov

Оценка моделей

lm-eval-harness, HELM, AgentBench

EleutherAI, Stanford

Базовые веса

Llama, Qwen, DeepSeek, Mistral, Gemma

Meta, Alibaba, DeepSeek, Mistral, Google

Нет, конечно не значит что своего вовсе нет. Множество примеров того что сделано с нуля в России. Статья не стремится как-то это обесценить - просто если брать как факт что большинство составляющих современной модели не являются произведёнными в РФ, то это немного вводит в дисонанс.

Любопытно, что после апрельской редакции «суверенность» стала бухгалтерской категорией: достаточно, чтобы разработчик был российским юрлицом и самостоятельно определял существенные характеристики модели. То есть российское ООО, которое арендует H100 у казахстанского провайдера, скачивает PyTorch с pypi.org, берёт веса Qwen и дообучает их - формально «суверенно». Вся техническая суверенность сводится к ИНН. 

Из честно обученных с нуля базовых моделей в России (может быть, GigaChat и Alice AI). Всё остальное на рынке - это дообученные Llama, Qwen и DeepSeek. Закон, требующий полной отечественности, одним росчерком вычёркивает 90% участников рынка. 

4. Угрозы у LLM есть, методики оценки нет 

Самое больное. Закон говорит: «доверенные модели» проходят сертификацию ФСТЭК и ФСБ. Прекрасно. По какой методике?

Существующая нормативная база ФСТЭК хорошо описывает классические угрозы ИБ (НДВ, периметр, СКЗИ, ПДн). Есть Приказ №117, регулирующий применение ИИ в защищаемых системах. Но это про применение - не про сертификацию самих LLM по их специфическим угрозам.

А специфические угрозы у LLM такие:

  • Прямая и косвенная промпт-атака.

  • Обход защитных механизмов модели.

  • Отравление обучающих данных на стадиях предобучения и файнтюна.

  • Закладки в весах модели.

  • Извлечение обучающих данных.

  • Атаки на принадлежность данных к обучающей выборке.

  • Кража модели через API. 

  • Утечка системного промпта.

  • Галлюцинации и конфабуляции в чувствительных контекстах.

  • Злоупотребление инструментами в агентных системах.

  • Отравление памяти агента.

  • Каскадные сбои в мультиагентных сценариях.

В российской регуляторной базе системного аналога нет. Есть отдельные методические наработки - рекомендации Центробанка по применению ИИ в финансовых организациях, рамочный ГОСТ Р 59276-2020 о доверии к системам ИИ, методические документы ФСТЭК по защите информации в системах с компонентами ИИ или модель угроз кибербезопасности ИИ от Сбера. Но единой методики оценки безопасности именно больших языковых моделей, которую можно положить в основу сертификации, не существует. 

Получается, закон требует сертификацию по методике, которую ещё предстоит разработать. И разрабатывать её будут параллельно с применением закона, как с СОРМ-3: сначала обяжем, потом разберёмся. 

Отдельно стоит вопрос про «уважение традиционных духовно-нравственных ценностей». Как именно сертифицировать языковую модель на соответствие? Бенчмарка нет. Метрики нет. Корпуса размеченных данных, на котором можно было бы обучить классификатор «соответствует / не соответствует», тоже нет. Это не правовая категория и не техническая - это эстетическое суждение, которое в законе вписано как требование к допуску модели на рынок. На практике критерии будут устанавливаться в режиме «понимающего взгляда» сертифицирующего органа, а это уже не сертификация, а лицензирование по усмотрению. 

5. Маркировка контента 

Обязательная маркировка фото-, видео-, аудио- и текстового ИИ-контента. Идея гуманная, реализация невозможна. Конкретно:

Водяные знаки в тексте сегодня работают так себе. Самая зрелая технология на рынке - SynthID-Text от Google DeepMind, и даже она ломается на простых вещах: перефразирование сбивает сигнал, а прогон через цепочку переводов (русский → английский → русский) добивает то, что осталось. 

Более ранние схемы с разделением словаря на «разрешённые» и «запрещённые» токены валятся даже от умеренного редактирования. Есть и формальное доказательство, что универсально надёжный водяной знак на текст невозможен в принципе, при условии, что у атакующего есть достаточно мощный перефразировщик. Контрпримеры существуют, но строятся они через поиск по эталонному корпусу, а не через сам водяной знак, и в промышленных условиях не масштабируются. 

Водяные знаки на изображениях ломаются ещё проще. Современные методы вроде тех, что разрабатывают в Meta и в университетах, в лабораторных условиях работают неплохо, но в реальном мире не выдерживают элементарной обработки: простейшее редактирование, JPEG-сжатие, обрезка изображения, или его скриншот - каждое из этих действий убивает сигнал поодиночке, а в комбинации не оставляет от метки и следа. 

Обнаружение без водяных знаков работает ещё хуже. Классификаторы вроде DetectGPT, GPTZero и Binoculars на современных моделях дают много ложных срабатываний - особенно на текстах не-носителей языка и людей с шаблонным стилем письма (студенты, чиновники, юристы попадают под удар систематически). C2PA и Content Credentials - это добровольный стандарт происхождения контента, который снимается тривиально: достаточно сделать скриншот, и метаданные исчезают.

Технически нет способа достоверно пометить контент так, чтобы метку нельзя было снять, чтобы она переживала редактирование, сжатие и перекодирование, и при этом не давала ложных срабатываний на контент, который написан человеком а не машиной. Эти три требования одновременно невыполнимы.

Закон требует того, чего пока не существует и в обозримом будущем в промышленно применимом виде не появится. Это не значит, что маркировка не нужна - это значит, что нельзя строить обязательную норму поверх технологии, устойчивость которой к атакам близка к нулю.

6. Ответственность за то, что вероятностно 

Законопроект говорит: разработчики, операторы и владельцы нейросетей несут ответственность за результат, если «знали заранее о возможности такого результата».

Языковая модель работает с огромным пространством возможных ответов: сотни тысяч слов в словаре, десятки тысяч позиций в контекстном окне. Любой ответ из этого пространства теоретически возможен. 

Допустим, разработчик с повышенной социальной ответственностью публикует карточку модели, в которой честно указаны частота галлюцинаций (не равна нулю ни у одной современной модели), доля успешных обходов защиты против известных техник, оценки предвзятости на стандартных бенчмарках и режимы отказа в нестандартных ситуациях. Иначе говоря, разработчик автоматически попадает в категорию «знал заранее». Любой, кто публикует результаты оценки безопасности своей модели, по букве нормы становится виноватым.

Получается обратный стимул: чем честнее ты в оценке собственной модели, тем выше юридический риск. Норма работает против безопасности, а не в её пользу. Anthropic, OpenAI и DeepMind публикуют детальные отчёты и результаты тестирования своих моделей именно потому, что прозрачность повышает безопасность всей экосистемы. Российский разработчик в такой логике должен молчать - иначе его собственный отчёт потом подошьют к делу.

Корректный подход - ответственность, привязанная к мере предосторожности: применил ли разработчик современные средства защиты, ведёт ли мониторинг после развёртывания, реагирует ли на инциденты. Европейский регламент об ИИ так и устроен. Но регламент, предлагаемый Минцифрой к сожалению устроен не так.

7. Веса, RAG, агентная обвязка и прочие движущиеся части 

«Доверенная модель» подразумевает сертификацию. Но современная большая языковая модель - не статический бинарник, а многослойная конструкция. Внизу лежит базовая модель - результат полученный при предобучении. Поверх неё - версия, дообученная на инструкциях. Дальше - слой выравнивания через обратную связь от людей или прямую оптимизацию предпочтений. Затем деплой через API, где может идти непрерывное дообучение. Поверх лежит обвязка для поиска по внешним документам с ранжированием и сборкой контекстного окна. Проще говоря, RAG. Над ней - агентная обвязка с вызовом инструментов, памятью, планированием и многошаговыми рассуждениями. Параллельно могут работать защитные фильтры на входе и выходе. И самый верхний слой - системные промпты.

Каждый слой меняется независимо. Модель фактически находится в состоянии непрерывного деплоя: дообучение на инструкциях прилетает раз в неделю, индекс для поиска обновляется в реальном времени, системный промпт правится по ситуации.

Какой именно артефакт фиксирует сертификация? Веса? А если завтра выкатили новый зафайнтюненный вариант - нужна ли повторная сертификация? RAG - это часть модели или нет? Если поменяли модель эмбеддингов для поиска, то что происходит с сертификатом? А набор инструментов, к которым агент имеет доступ?

Закон ответов не даёт. Подзаконные акты, скорее всего, тоже не дадут - их будут писать юристы, а не инженеры машинного обучения. Получим документ, в котором сертификат привязан либо к хешу весов (бессмысленно для системы, которая постоянно меняется), либо к юрлицу (бессмысленно как техническая мера контроля).

8. Суверенитет без GPU 

Финальный гвоздь. Обучение передовых моделей требует кластеров на топовых ускорителях NVIDIA - H100, H200, B200. Официально в Россию они не поставляются с 2022 года. Предыдущее поколение, A100, идёт по серым каналам. Из отечественных альтернатив есть «Эльбрус» и «Байкал», но это центральные процессоры и системы на кристалле, а не ускорители для обучения нейросетей. На подходе ещё китайские кристаллы, но пока это ставится под большой вопрос. У МЦСТ пока нет ничего сравнимого по производительности с тензорными ядрами. Российские проекты по нейропроцессорам существуют, но дотягивают только до запуска компактных моделей на устройствах, а не до обучения базовых.

Получается, что «суверенный ИИ» обучается на NVIDIA, купленной обходными путями. PyTorch скачивается с американского pypi.org. Базовые веса - с huggingface, к которому коммерческий доступ из России ограничен. Такова реальность, в которой пишется закон о суверенитете.

И здесь интересная развилка. Либо закон останется декорацией поверх де-факто иностранного стека, либо его попытаются применить буквально - и тогда обучение базовых моделей в России просто остановится. Третьего варианта - полностью импортозамещённого стека вместе с ускорителями - в обозримом горизонте технически не существует.

Итого

Перед нами не закон об ИИ, а технически безграмотная декларация, обёрнутая в риторику суверенитета и духовно-нравственных ценностей. Чинчиллу не отменишь голосованием, PyTorch не скачаешь с российского зеркала, водяной знак не переживёт скриншота, а вероятностную модель не привяжешь к хешу весов. Любая попытка применить такой закон буквально остановит обучение базовых моделей в стране. Любая попытка применить его частично превратит сертификацию в лицензирование по усмотрению. Третьего варианта нет.