Анализ страницы https://pgmpy.org/examples.html
Основное Готовность: 75%
Домен
pgmpy.org
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 04.10.2026 22:45:22.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~0,34сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,34сек оптимальна.
Объем документа
46Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 46Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 21
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 21 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | _static/styles/theme.css?digest=7f76b32a3354e82990f2 | |
| stylesheet | _static/styles/pydata-sphinx-theme.css?digest=7f76b32a3354e82990f2 | |
| stylesheet | text/css | _static/pygments.css?v=8f2a1f02 |
| stylesheet | text/css | _static/copybutton.css?v=76b2166b |
| stylesheet | text/css | _static/sphinx-design.min.css?v=95c83b7e |
| stylesheet | text/css | _static/custom.css?v=18a852c8 |
| js | _static/scripts/fontawesome.js?digest=7f76b32a3354e82990f2 | |
| js | _static/documentation_options.js?v=45183d27 | |
| js | _static/doctools.js?v=fd6eb6e6 | |
| js | _static/sphinx_highlight.js?v=6ffebe34 | |
| js | _static/clipboard.min.js?v=a7894cd8 | |
| js | _static/copybutton.js?v=f281be69 | |
| js | _static/design-tabs.js?v=f930bc37 | |
| js | https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js | |
| js | _static/searchtools.js | |
| js | _static/language_data.js | |
| js | searchindex.js | |
| js | https://www.googletagmanager.com/gtag/js?id=G-HCFR07M31W | |
| js | https://media.ethicalads.io/media/client/ethicalads.min.js | |
| js | _static/scripts/bootstrap.js?digest=7f76b32a3354e82990f2 | |
| js | _static/scripts/pydata-sphinx-theme.js?digest=7f76b32a3354e82990f2 |
Серверные заголовки
Кол-во: 17
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 17шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Server | GitHub.com |
| Access-Control-Allow-Origin | * |
| ETag | "6a85b776-bbef" |
| Cache-Control | max-age=600 |
| x-proxy-cache | MISS |
| x-github-request-id | 10F8:3F0643:57B7DCB:5876105:6A8B8D1F |
| x-github-edge-region | fra |
| Accept-Ranges | bytes |
| Age | 0 |
| Date | Mon, 24 Aug 2026 00:15:27 GMT |
| Via | 1.1 varnish |
| X-Served-By | cache-fra-eddf8230047-FRA |
| X-Cache | MISS |
| x-cache-hits | 0 |
| x-timer | S1787530528.747857,VS0,VE99 |
| Vary | Accept-Encoding |
| x-fastly-request-id | 278162f52ef3b220fd908b2267d75b0c93791387 |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
GitHub.com
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
В заголовке Server указано: GitHub.com.
Мета-теги Готовность: 23%
Title
Example Notebooks — pgmpy
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение: 31, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Example notebooks for pgmpy covering Bayesian networks, structure learning, inference, simulations, and causal analysis.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Число символов в description 120 оптимально (норма: от 120 до 130).
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
https://pgmpy.org/examples.html
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Канонический Url прописан корректно.
Robots
index,follow,max-image-preview:large
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots со значениями index, follow не накладывает ограничений на индексирование и показ контента.
Адаптивность
width=device-width, initial-scale=1
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Кол-во: 7
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:title | Example Notebooks |
| og:type | website |
| og:url | https://pgmpy.org/examples.html |
| og:site_name | pgmpy |
| og:description | A curated set of Jupyter notebooks that demonstrate the most common tasks in pgmpy: building models, learning from data, running inference, and performing causal analysis. Use this page to find a n... |
| og:image | https://pgmpy.org/_static/images/logo.png |
| og:image:alt | pgmpy |
Все мета-теги
Кол-во: 17
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 17шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0 |
| name | viewport | width=device-width, initial-scale=1 |
| name | description | Example notebooks for pgmpy covering Bayesian networks, structure learning, inference, simulations, and causal analysis. |
| name | twitter:card | summary_large_image |
| name | twitter:description | Example notebooks for pgmpy covering Bayesian networks, structure learning, inference, simulations, and causal analysis. |
| name | twitter:image | https://pgmpy.org/_static/images/logo.png |
| name | robots | index,follow,max-image-preview:large |
| name | viewport | width=device-width, initial-scale=1 |
| name | docsearch:language | en |
| name | docsearch:version | stable |
| property | og:title | Example Notebooks |
| property | og:type | website |
| property | og:url | https://pgmpy.org/examples.html |
| property | og:site_name | pgmpy |
| property | og:description | A curated set of Jupyter notebooks that demonstrate the most common tasks in pgmpy: building models, learning from data, running inference, and performing causal analysis. Use this page to find a n... |
| property | og:image | https://pgmpy.org/_static/images/logo.png |
| property | og:image:alt | pgmpy |
Оптимизация Готовность: 83%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Среднее число слов в абзаце 7 слишком мало. Сделайте контент более читаемым!
Кол-во слов 679 не очень много. Добавьте побольше текста (хотя бы 800 слов)!
Слова из title 3 встречаются в тексте достаточно.
Абзацев с текстом 45 достаточно.
Кол-во знаков контента 5487 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 8. Это хорошо.
Тошнота
5,10
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 3. Измените текст страницы!
Академич. тошнота
11,19%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота страницы в пределах нормы.
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| bayesian | 26 | 3,83% |
| networks | 25 | 3,68% |
| causal | 20 | 2,95% |
| inference | 18 | 2,65% |
| learning | 17 | 2,50% |
| discrete | 14 | 2,06% |
| structure | 11 | 1,62% |
| models | 9 | 1,33% |
| creating | 7 | 1,03% |
| notebooks | 7 | 1,03% |
| parameter | 6 | 0,88% |
| background | 6 | 0,88% |
| linear | 5 | 0,74% |
| discovery | 5 | 0,74% |
| network | 5 | 0,74% |
| extending | 5 | 0,74% |
| probabilistic | 5 | 0,74% |
| getting | 4 | 0,59% |
| examples | 4 | 0,59% |
| gaussian | 4 | 0,59% |
Индексация Готовность: 60%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 86 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 63 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Показать содержимое robots.txt
User-agent: *
Allow: /
Sitemap: https://pgmpy.org/sitemap.xml
Sitemap
Кол-во: 1
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt содержит карту сайта. Это прекрасно!
Robots.txt не содержит ошибок в карте сайта.
Показать карту сайта
| Url | Статус |
|---|---|
| https://pgmpy.org/sitemap.xml |
|
Внутренние ссылки
Кол-во: 58
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 58 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 1.
Показать внутренние ссылки
| Url | Анкор | Состояние |
|---|---|---|
| /started/index.html |
Getting Started
|
|
| /documentation.html |
User Guide
|
|
| /reference.html |
API Reference
|
|
| /citation.html |
Citation
|
|
| /development.html |
Getting Involved
|
|
| /started/index.html |
Getting Started
|
|
| /documentation.html |
User Guide
|
|
| /reference.html |
API Reference
|
|
| /citation.html |
Citation
|
|
| /development.html |
Getting Involved
|
|
| /examples/Creating_Discrete_BN.html |
Creating Discrete Bayesian Networks
|
|
| /examples/Creating_Linear_BN.html |
Creating Linear Gaussian Bayesian Networks
|
|
| /examples/Defining_CPDs.html |
How to define TabularCPD and LinearGaussianCPD
|
|
| /examples/Basic_Operations_on_BN.html |
Basic Operations on Bayesian Networks
|
|
| /examples/Structure_Learning.html |
Structure Learning in Bayesian Networks
|
|
| /examples/Structure_Learning_Chow_Liu.html |
Learning Tree Structure from Data using the Chow-Liu Algorithm
|
|
| /examples/Structure_Learning_TAN.html |
Learning Tree-augmented Naive Bayes (TAN) Structure from Data
|
|
| /examples/Expert_Knowledge.html |
Expert Knowledge Integration with Causal Discovery
|
|
| /examples/Parameter_Learning_Discrete_BN.html |
Parameter Learning in Discrete Bayesian Networks
|
|
| /examples/Parameter_Learning_Factor_Graphs.html |
Marginal Learning in Discrete Markov Networks
|
|
| /examples/Inference_Discrete_BN.html |
Inference in Discrete Bayesian Network
|
|
| /examples/Monty_Hall.html |
Monty Hall Problem
|
|
| /examples/Causal_Inference.html |
Causal Inference Examples
|
|
| /examples/Causal_Games.html |
Causal Games
|
|
| /examples/Simulating_Data.html |
Simulating Data From Bayesian Networks
|
|
| /examples/Extending_pgmpy.html |
Extending pgmpy
|
|
| /examples/Functional_Bayesian_Network_Tutorial.html |
Functional Bayesian Networks
|
|
| /examples/Junction_Tree_Inference.html |
Junction Tree Exact Inference
|
|
| /tutorial.html |
Tutorial Notebooks
|
|
| /index.html |
<i class="fa-solid fa-home"></i>
|
|
| /guides/custom_model.html |
<span class="doc">Defining a Custom Model</span>
|
|
| /examples/Creating_Discrete_BN.html |
<span class="doc">Creating Discrete Bayesian Networks</span>
|
|
| /examples/Creating_Linear_BN.html |
<span class="doc">Creating Linear Gaussian Bayesian Networks</span>
|
|
| /examples/Dynamic_BN.html |
<span class="doc"><no title></span>
|
|
| /examples/Defining_CPDs.html |
<span class="doc">How to define TabularCPD and LinearGaussianCPD</span>
|
|
| /examples/Basic_Operations_on_BN.html |
<span class="doc">Basic Operations on Bayesian Networks</span>
|
|
| /guides/causal_discovery.html |
<span class="doc">Causal Discovery</span>
|
|
| /examples/Structure_Learning.html |
<span class="doc">Structure Learning in Bayesian Networks</span>
|
|
| /examples/Structure_Learning_Chow_Liu.html |
<span class="doc">Learning Tree Structure from Data using the Chow-Liu Algorithm</span>
|
|
| /examples/Structure_Learning_TAN.html |
<span class="doc">Learning Tree-augmented Naive Bayes (TAN) Structure from Data</span>
|
|
| /examples/Expert_Knowledge.html |
<span class="doc">Expert Knowledge Integration with Causal Discovery</span>
|
|
| /guides/parameter_estimation.html |
<span class="doc">Parameter Estimation</span>
|
|
| /examples/Parameter_Learning_Discrete_BN.html |
<span class="doc">Parameter Learning in Discrete Bayesian Networks</span>
|
|
| /examples/Parameter_Learning_Factor_Graphs.html |
<span class="doc">Marginal Learning in Discrete Markov Networks</span>
|
|
| /guides/probabilistic_inference.html |
<span class="doc">Probabilistic Inference</span>
|
|
| /examples/Inference_Discrete_BN.html |
<span class="doc">Inference in Discrete Bayesian Network</span>
|
|
| /examples/Monty_Hall.html |
<span class="doc">Monty Hall Problem</span>
|
|
| /guides/causal_identification.html |
<span class="doc">Causal Identification</span>
|
|
| /guides/causal_estimation.html |
<span class="doc">Causal Estimation</span>
|
|
| /examples/Causal_Inference.html |
<span class="doc">Causal Inference Examples</span>
|
|
| /examples/Causal_Games.html |
<span class="doc">Causal Games</span>
|
|
| /guides/simulations.html |
<span class="doc">Simulations</span>
|
|
| /examples/Simulating_Data.html |
<span class="doc">Simulating Data From Bayesian Networks</span>
|
|
| /examples/Extending_pgmpy.html |
<span class="doc">Extending pgmpy</span>
|
|
| /examples/Functional_Bayesian_Network_Tutorial.html |
<span class="doc">Functional Bayesian Networks</span>
|
|
| /examples/Junction_Tree_Inference.html |
<span class="doc">Junction Tree Exact Inference</span>
|
|
| /guides/extensibility.html |
<i class="fa-solid fa-angle-left"></i>
<div class="prev-next-info">
<p class="prev-next-subtitle">previous</p>
<p class="prev-next-title">Extensibility</p>
</div>
|
|
| /examples/Creating_Discrete_BN.html |
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Creating Discrete Bayesian Networks</p>
</div>
<i class="fa-solid fa-angle-right"></i>
|
|
Внешние ссылки
Кол-во: 7
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 7 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
Показать внешние ссылки
| Url | Анкор |
|---|---|
| github.com |
<i class="fa-brands fa-github fa-lg" aria-hidden="true"></i>
<span class="sr-only">GitHub</span>
|
| discord.gg |
<i class="fa-brands fa-discord fa-lg" aria-hidden="true"></i>
<span class="sr-only">Discord</span>
|
| linkedin.com |
<i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i>
<span class="sr-only">LinkedIn</span>
|
| github.com |
<i class="fa-brands fa-github fa-lg" aria-hidden="true"></i>
<span class="sr-only">GitHub</span>
|
| discord.gg |
<i class="fa-brands fa-discord fa-lg" aria-hidden="true"></i>
<span class="sr-only">Discord</span>
|
| linkedin.com |
<i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i>
<span class="sr-only">LinkedIn</span>
|
| github.com |
Jupyter notebooks
|
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Страница https://pgmpy.org/examples.html готова к продвижению на 60%. Чтобы еще улучшить страницу и попасть на первые места поисковой выдачи необходимо:
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: