Тестирование (Временно не работает)

Когда применяется регрессионное тестирование?

Регрессионное тестирование рекомендуется выполнять при возникновении следующих событий:

  • Когда в программное обеспечение внедряется новый функционал.
  • Изменение требований к программному обеспечению.
  • При исправлении ошибки.
  • При возникновении проблем с функционированием программы сборки.
  • В случае изменений среды.
  • При использовании патча.

Регрессионное тестирование играет большую роль для приложения. Несмотря на некоторые недостатки, регрессионное тестирование выполняется, поскольку ошибки имеются во всех приложениях, но мы должны убедиться, что для пользователя они будут работать стабильно.

Шаг 5. Завершите тестирование

Чтобы удалить пользователей из тестирования, выполните следующие действия:

  1. Откройте Play Console и перейдите на страницу тестирования, которое вы хотите завершить:
    • Открытое тестирование (Тестирование > Открытое тестирование).
    • Закрытое тестирование (Тестирование > Закрытое тестирование).
    • Внутреннее тестирование (Тестирование > Внутреннее тестирование).
  2. Найдите нужное тестирование и выберите Управлять типом версии

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

    .

  3. В правой верхней части страницы нажмите Приостановить версию.
  4. После окончания тестирования приложение останется на устройствах тестировщиков, но обновляться не будет.

Лечение пациентов с ДЭ с высоким суицидальным риском

  • возможно в амбулаторных условиях под постоянным присмотром и с привлечением всех психотерапевтических, психообразовательных или социальнореабилитационных методов;
  • рекомендовано проводить в условиях стационара в психотерапевтической группе наряду с фармакотерапией;
  • рекомендовано проводить в условиях стационара с рассмотрением возможности быстрого проведения электро-судорожной терапии.
  • дети в возрасте 1-5 лет;
  • лица в возрасте 65 лет и старше;
  • лица с первичными и вторичными иммунодефицитами;
  • лица с хроническими заболеваниями печени, почек.

К приоритетным группам пациентов 1-го уровня относятся

  • беременные и женщины в послеродовом периоде, имеющие хотя бы один фактор риска тяжелого течения COVID-19;
  • пациенты в возрасте 65 лет и старше;
  • пациенты в возрасте старше 12 лет (с первичными иммунодефицитами, со вторичными иммунодефицитами).

Противопоказания для использования антикоагулянтов у пациентов с COVID-19

  • выраженная почечная недостаточность;
  • гепарин-индуцированная тромбоцитопения в анамнезе;
  • повышенное протромбиновое время и АЧТВ;
  • продолжающееся кровотечение;
  • уровень тромбоцитов в крови ниже 25*10^9/л.

При среднетяжелом течении COVID-19 пациенту с сахарным диабетом (СД) рекомендуется

  • контроль гликемии каждые 3-4 ч, контроль кетонов в моче, контроль содержания лактата крови;
  • при уровне глюкозы плазмы натощак менее 10 ммоль/л и глюкозы плазмы через 2 часа после еды менее 13 ммоль/л и отсутствии кетонурии можно продолжить терапию неинсулиновымисахароснижающими препаратами под контролем показателей лактата крови, кетонов крови и мочи, уровня сатурации, функции почек и печени;
  • продолжать текущую сахароснижающую терапию;
  • целевые показатели гликемии натощак – не более 7 ммоль/л, через 2 часа после еды – не более 10 ммоль/л;
  • целевые показатели гликемии натощак – не более 7,5 ммоль/л.

КОШМАР ДЛЯ НАСЕКОМЫХ

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

Однако существуют и более сложные и жестокие способы распространения грибов. Наблюдение за западноафриканскими муравьями вида Megaloponera foetens зафиксировало, что они ежегодно взбираются на высокие деревья, и с такой силой вонзают свои челюсти в ствол, что после этого не могут освободиться и погибают. Ранее случаи массового самоубийства муравьёв не наблюдались.

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

На деревьях в Камеруне можно увидеть сотни грибов, растущих из тел муравьёв. Для грибов эта власть над мозгом является средством размножения: они используют лапки муравья, чтобы взобраться на дерево, а высота помогает распространению их спор ветром; так они находят себе новые дома и…. новых муравьёв.

Тайский «гриб зомби» Ophiocordyceps unilateralis побуждает питающихся им муравьев вскарабкиваться на листья некоторых растений. Расстояние, которое преодолевают для этого зараженные муравьи, значительно превышает расстояния в их обычной жизни, и потому, добравшись до листьев, насекомые умирают от усталости и голода, а спустя две недели из их тел прорастают грибы.

«Это существа, возможно, самые поразительные из всех виденных мною. Мы считаем, что они вырабатывают химические вещества подобные ЛСД, но мы ещё не встречали наркотики, которые вызывают поведение, соответствующее чьим-то интересам», – профессор Дэвид Хьюз Хьюз обнаружил грибы, управляющие мозгом пауков, вшей и мух. – «Это не совпадение, естественный отбор или побочные явления другого процесса. Эти насекомые посылаются против своей воли туда, где им не стоит быть, но нравится грибам. Когда мы перенесли зараженных муравьёв на другие листья, то грибы просто не проросли».

Экологические группы грибов

Почвенные грибы

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

  • копрофиллы — грибы, обитающие на почвах, богатых перегноем (навозные кучи, места скопления помёта животных);
  • кератинофиллы — грибы, обитающие на волосах, рогах, копытах;
  • ксилофиты — грибы, разлагающие древесину, среди них различают разрушителей живой и мёртвой древесина.

Предлагаем ознакомиться Орхидеи и уход за ними размножение

Водные грибы

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

Шляпочные грибы

Шляпочные грибы поселяются на богатой перегноем лесной почве и из неё получают воду, минеральные соли и некоторые органические вещества. Часть органических веществ (углеводы) они получают от деревьев.

Грибница — главная часть каждого гриба. На ней развиваются плодовые тела. Шляпка и ножка состоят из плотно прилегающих друг к другу нитей грибницы. В ножке все нити одинаковы, а в шляпке они образуют два слоя — верхний, покрытый кожицей, окрашенной разными пигментами, и нижний.

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

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

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

Как мы узнаем, насколько хороша данная модель?

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

Зачем?

Полезно довести это до крайности:

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

Все реальные модели, которые мы готовим, сообщат бледную версию этого результата.

При оценке модели для прогнозирования временных рядов нас интересует производительность модели на данных, которые не использовались для ее обучения. В машинном обучении мы называем это невидимыми или неконкретными данными.

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

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

Эти методы нельзя напрямую использовать с данными временных рядов.

Это потому, что они предполагают, что между наблюдениями нет никакой связи, что каждое наблюдение является независимым.

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

В прогнозировании временных рядов эта оценка моделей на исторических данных называется тестированием на истории. В некоторых областях временных рядов, таких как метеорология, это называется обратным вещанием, а не прогнозированием.

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

  1. Поезд-Тест Сплитэто уважение временного порядка наблюдений.
  2. Несколько разделений Train-Testэто уважение временного порядка наблюдений.
  3. Прогулочная проверкагде модель может обновляться каждый раз при получении новых данных.

Во-первых, давайте взглянем на небольшие одномерные данные временных рядов, которые мы будем использовать в качестве контекста, чтобы понять эти три метода тестирования на истории: набор данных Sunspot.

Справочники-определители грибов, произрастающих в дикой природе

– Вишневский М. В. “Самые распространённые съедобные грибы”. Справочник-определитель. Издательство Астрель, 2009 год.

– М.Вишневский, Съедобные грибы и их несъедобные и ядовитые двойники, справочник в формате сравнительных таблиц, издательство Восток – Запад, 2008 год, 48 стр.

– А. Дермек, Грибы, Издательство Словарт, Киев-Братислава, 1989 год

– Клепинина З.А., Клепинина Е.В., Справочник грибника (1000 советов), АСТ-Пресс книга, 2006 г, г. Москва, 256 стр.

– Л. А. Лебедева, “Определитель шляпочных грибов”, Государственное Издательство сельскохозяйственной литературы, г. Москва, 1949 год.

– Т. Литвина, “Всё о грибах. 100 съедобных и несъедобных грибов России”, Санкт-Петербург, Ленинградское издательство, 2009 год, 256 стр.

– Маори Корхонен, 100 грибов, Г. Москва, Лесная промышленность, 1981 год, 168 стр, перевод с финского.

– С.В. Родионова, “Карманный справочник грибника”, г. Москва, Изд. Московский рабочий, 1993 год, 122 стр.

– Юдин А. В., “Большой определитель грибов”, издательство АСТ, 2001 год, 256 ил.стр.

– Б. В. Андрест, “Грибное лукошко”, издательство Лесная промышленность, г. Москва, 1972 год, 192 стр.

– Вишневский М.В., “Несъедобные, ядовитые и галлюциногенные грибы Московской области”, Справочник-атлас, Формика-С, 2001 год, 192 стр. с иллюстрациями.

– Т. В. Лагутина, “Полная энциклопедия грибов”, Рипол-классик, Москва, 2008 год, 377 стр.

– С.Г. Матанцева, А.Н. Матанцев, “Карманный справочник грибника (более 200 видов)”, 452 стр.

– Пелле Янсен, “Всё о грибах. Справочник.”, перевод с финского, Кристалл, Санкт-Петербург, 2004 год, 160 стр. с ил.

– Ф.В. Федоров, “Грибы”, издание третье, переработанное и дополненное, Москва, Росагропромиздат, 361 стр.

– Ю. И. Смирняков, А.К. Кощеев, А.А. Кощеев, “Спутник грибника”, Москва, Экология, 1992 год, 303 стр. с ил.

– Ю.Г. Семёнов, “Полный иллюстрированный справочник грибника”, Издательский дом МСТ, 2001 год, 576 стр. с ил.

– Б. П. Васильков, “Грибы”, издательство Министерства сельского хозяйства СССР, Москва, альбом, 1969 г.

– М.А. Бондарцева, “Определитель грибов России (порядок аффилофоровые, вып. 2)”, Российская академия наук и издательство наука, 1998 год, 391 стр.

– М.А. Бондарцева, Э. Х. Пармасто “Определитель грибов СССР (порядок аффилофоровые, вып. 1)”, издательство Наука, 1986 год, 192 стр.

-С. Б. Борисов, “Справочник грибника”, Лениздат, 1973 год, 48 стр.

– Никиточкина Т.Д., Грибы. Выпуск 2. Второе издание, 16 открыток, Калининский полиграфический комбинат Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли, г. Калинин, 1987 год.

– Л. В. Гарибова, Художник А. К. Шипиленко, Рассказ о ста грибах, 32 открытки, Изобразительное исскуство, г. Москва, 1990 год.

– Энциклопедия грибника /Авт.- сост. А. П. Умельцев. — 5-е изд., М: ЛОКИД-ПРЕСС, 2005. – 271 с ; ил., I5ВN 5-320-00480-Х.

Распознавание грибов по фото онлайн

Определение грибов по фото — возможность сбора только безопасных и съедобных грибов. Удобные приложения и сайты станут настоящим помощником для новичков, а также помогут узнавать новые интересные виды бывалым лесникам.

Распознавание грибов с «Яндекс Алиса»

Один из популярных сервисов от Яндекса — голосовой помощник Алиса. Она умеет рассказывать сказки, играет, подбирает музыку, но при этом еще умеет точно определять, что находится на фото.

Принцип работы следующий:

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

Gribnikoff.ru — энциклопедия грибов

Данный сайт — настоящая энциклопедия, которая станет верным помощников как новичку, так и бывалому грибнику

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

На сайте представлена информация о более 300 видах распространенных «даров природы».

Как узнать что за гриб онлайн на пк

Для уверенных пользователей компьютера можно порекомендовать сайт Gribnikoff.ru. Определение производится на основании конкретных параметров, например, цвет шляпки, ножки, внутреннем строении и иных вводных. Безусловно, некоторые слова могут оказаться незнакомыми, но вы можете опираться на готовые ответы из поиска или воспользоваться зеленой кнопкой для помощи. Также можно указать тип грунта и место. В целом, рекомендуется вводить ярко выраженные параметры, чтобы анализ получился точным.

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

Сравнение регрессионного тестирования и повторного тестирования

Очень тонкая линия разделяет регрессионное тестирование и повторное тестирование.

Цель регрессионного тестирования – убедиться, что изменения не повлияли на неизмененённую часть. Повторное тестирование проводится для того, чтобы проверить, что тестовые сценарии, не прошедшие во время последнего выполнения, работают после исправления дефектов. Регрессионное тестирование не проводится для исправления конкретных дефектов. Повторное тестирование выполняется на основе исправлений дефектов.

Автоматизация – ключевой фактор регрессионного тестирования, тогда как повторное тестирование невозможно автоматизировать по причине неопределенности. Проверка дефекта проводится только в рамках повторного тестирования.

Другие тесты автора Давайте пройдем тесты

31 марта 2021 121719

Проходили 24488 раз

Тест на когнитивные способности

HTML – код

23 ноября 2021 75499

Проходили 21549 раз

Тест: “Хороший Вы человек или злой?

HTML – код

18 марта 2021 290098

Проходили 211978 раз

Кто ты из My Little Pony? Тест

HTML – код

20 февраля 2022 68136

Проходили 33593 раза

Новый тест на кругозор и эрудицию: 20 занимательных вопросов для проверки ваших знаний…

HTML – код

6 января 2021 10364

Проходили 1821 раз

Тест: Сложные аналогии

HTML – код

18 февраля 2021 67762

Проходили 24105 раз

Тест: “Мое будущее. Каким оно будет?”

HTML – код

23 марта 2021 99674

Проходили 34842 раза

Тест на умственную отсталость

HTML – код

15 января 2021 69523

Проходили 24299 раз

Тест на адекватность

HTML – код

12 марта 2021 50699

Проходили 18501 раз

Тест: Насколько вы харизматичны?

HTML – код

8 февраля 2022 44110

Проходили 16094 раза

Тест о жизни в СССР: 20 вопросов для тех, кто старше сорока лет…

HTML – код

5 января 2022 11678

Проходили 3040 раз

Тест: знаете ли вы шедевры студии Дисней?

HTML – код

17 февраля 2021 80302

Проходили 26351 раз

Тест: Какой у тебя характер?

HTML – код

27 апреля 2021 47823

Проходили 11043 раза

Тест: Екатерина II

HTML – код

11 июня 2021 68705

Проходили 29778 раз

Тест: “Я знаю Егора Крида!”

HTML – код

4 февраля 2022 31014

Проходили 10696 раз

Тест: Насколько Вы высокомерны?

HTML – код

17 ноября 2021 27459

Проходили 9308 раз

STANDOFF 2

HTML – код

По грибы

Главная особенность этой прикладной программы – функция «Опознание» на базе нейронной сети, которая позволяет определить название гриба по готовой фотографии или путем прямого сканирования. Все находки потом хранятся в специальном дневнике. При необходимости гриб всегда можно найти вручную, указав его ключевые особенности и свойства. На данный момент грибная база включает 212 позиций с описанием и фотографиями. В разделе «Рост в регионе» можно узнать о новых видах, недавно появившихся в области проживания пользователя.

Основные претензии к ПО – слишком короткие описания и проблемы с распознаванием. Приложение может потратить на это много времени или вообще не опознать гриб. Есть вопросы к определению съедобности грибов. Например, черный груздь, который многие консервируют на зиму, здесь считается несъедобным. К каждому описанию прилагается только одно изображение. За дополнительный пакет фотографий в высоком качестве, возможность поиска грибов на карте по регионам и отключение рекламы придется заплатить.

Отфильтровали тест кейсы в тест плане на регресс

Тест план на регресс формируется исходя из того, в каких блоках были внесены изменения, а также из основных постоянных сценариев проверки.

Для того, чтобы проще было формировать план, мы стали использовать теги.

Пример: Regress_Deeplink, Regress_Profile, Regress_CommonMobile

Теперь, все тест кейсы у нас поделены на блоки, которые отмечены определённым тегом! Есть также обязательные кейсы, которые входят в каждый тест план на регресс и отдельные тест кейсы для smoke-тестирования на проде.

Это позволяет нам оперативно отфильтровать и быстро сформировать определённый план в соответствии с вносимыми изменениями, а не тратить время на проверку того, что не было затронуто.

Результаты

Введение дополнительного анализа, при формировании тест планов, помогло сократить общее время прохождения регрессионного тестирования всего до 2 часов с 8ми изначальных. У нас есть несколько тест планов — full и light. Обычно мы проходим light и он состоит из 98 кейсов (автотестов+ручных). Как видно на скрине, полный план регресса состоит из 297 тест кейсов!

Время на прохождение Regress iOS light в среднем составляет около 2 часов, но когда изменения были только в паре модулей, то можно провести регресс и за час. Это большой плюс, потому что остается запас на багофиксы (если понадобится что-то срочно исправить). Также, в будущем, всегда есть возможность посмотреть по отчетам, в какой сборке что проверялось.

Возможно ли писать программы без тестировщиков

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

В истории возникновения тестирования, о которой будет рассказано ниже, изначально тестами занимались только сами разработчики, но это только усложняло и продлевало процесс разработок. И именно поэтому сами программисты доверили данную функцию отдельным специалистам — тестировщикам.

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

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

Backend и frontend отдельно

Автоматизация тестирования у нас разделена для backend и frontend.

Но есть E2E тесты, которые тестируют взаимодействие.

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

Поработав в таком формате, мы решили, что много времени уходит на починку автотестов. И тогда E2E тесты приходится проходить вручную.

Было принято четко разделить функционал на модули с выделением логики на фронтенде и бэкенде. Оставить минимальное количество Е2Е тестов для ручного тестирования. Остальные сценарии упростить и автоматизировать. И так на бэкенде мы проверяем бизнес логику, а на клиенте корректное отображение данных от бэке и ui элементы.

Мы перестали запускать тесты на stable окружении и перевели их полностью на моки.

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

Для наглядности вот табличка:

Описание функционала

Локализация тестов

Простая валидация полей (например при смене пароля)

клиент

Размещение ui элементов на экране

клиент

Отрисовка ui элементов

клиент

Отображение информации от бэка

клиент

Навигация по экранам

клиент

Корректная обработка и отображение ошибок

клиент

Сложная валидация (например проверка формата TIN)

бэк

Сбор данных для профиля

бэк

Сбор и обработка данных по операциям

бэк

Создание и сохранение данных при работе с картами

бэк

Работа сервисов

бэк

Взаимодействие с БД

бэк

Обработка ошибок

бэк

Результаты

После разделения:

  • Стало проще локализовать проблему

  • Раньше определяются проблемы и соответственно решаются быстрее

  • Есть четкое разграничение зон ответственности. Нет лишних проверок на клиенте.

  • Автотесты стали гораздо стабильнее, т.к. не завязаны на сервисы, которые могут отваливаться в любой момент. (А этот любой момент обычно самый неподходящий)

  • Сократилось время на реализацию автотестов, не нужно добавлять json в тест кейсы дополнительно при написании

Неформальное тестирование

Один из способов тестирования кода – это неформальное тестирование при написании программы. После написания единицы кода (функции, класса или какого-либо другого дискретного «пакета» кода) вы можете написать код для проверки только что добавленного модуля, а затем стереть тест, как только он будет пройден. Например, для следующей функции вы можете написать следующий код:

Если возвращаемые результаты буду как 1 и 0, тогда всё готово. Вы знаете, что ваша функция работает в некоторых основных случаях, и, глядя на код, вы можете разумно сделать вывод, что она будет работать для случаев, которые вы не тестировали (‘e’, ‘i’, ‘o’ и ‘u’) . Таким образом, вы можете стереть этот временный тестовый код и продолжить написание программы.

Поделитесь в социальных сетях:FacebookX
Напишите комментарий