# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider


class Provider(PersonProvider):
    formats = (
        '{{first_name}} {{last_name}}',
        '{{first_name}} {{last_name}}',
        '{{first_name}} {{last_name}}',
        '{{first_name}} {{last_name}}',
        '{{first_name}} {{last_name}}',
        '{{prefix}} {{first_name}} {{last_name}}',
        '{{first_name}} {{last_name}}',
        '{{prefix}} {{first_name}} {{last_name}}'
    )

    first_names = (
        'Август', 'Авдей', 'Аверкий', 'Аверьян', 'Авксентий', 'Автоном',
        'Агап', 'Агафон', 'Аггей', 'Адам', 'Адриан', 'Азарий',
        'Аким', 'Александр', 'Алексей', 'Амвросий', 'Амос', 'Ананий',
        'Анатолий', 'Андрей', 'Андрон', 'Андроник', 'Аникей', 'Аникита',
        'Анисим', 'Антип', 'Антонин', 'Аполлинарий', 'Аполлон', 'Арефий',
        'Аристарх', 'Аркадий', 'Арсений', 'Артемий', 'Артем', 'Архип',
        'Аскольд', 'Афанасий', 'Афиноген', 'Бажен', 'Богдан', 'Болеслав',
        'Борис', 'Борислав', 'Боян', 'Бронислав', 'Будимир', 'Вадим',
        'Валентин', 'Валерий', 'Валерьян', 'Варлаам', 'Варфоломей', 'Василий',
        'Вацлав', 'Велимир', 'Венедикт', 'Вениамин', 'Викентий', 'Виктор',
        'Викторин', 'Виссарион', 'Виталий', 'Владилен', 'Владлен', 'Владимир',
        'Владислав', 'Влас', 'Всеволод', 'Всемил', 'Всеслав', 'Вышеслав',
        'Вячеслав', 'Гаврила', 'Галактион', 'Гедеон', 'Геннадий', 'Георгий',
        'Герасим', 'Герман', 'Глеб', 'Гордей', 'Гостомысл', 'Гремислав',
        'Григорий', 'Гурий', 'Давыд', 'Данила', 'Дементий', 'Демид',
        'Демьян', 'Денис', 'Дмитрий', 'Добромысл', 'Доброслав', 'Дорофей',
        'Евгений', 'Евграф', 'Евдоким', 'Евлампий', 'Евсей', 'Евстафий',
        'Евстигней', 'Егор', 'Елизар', 'Елисей', 'Емельян', 'Епифан',
        'Еремей', 'Ермил', 'Ермолай', 'Ерофей', 'Ефим', 'Ефрем',
        'Захар', 'Зиновий', 'Зосима', 'Иван', 'Игнатий', 'Игорь',
        'Измаил', 'Изот', 'Изяслав', 'Иларион', 'Илья', 'Иннокентий',
        'Иосиф', 'Ипат', 'Ипатий', 'Ипполит', 'Ираклий', 'Исай',
        'Исидор', 'Казимир', 'Каллистрат', 'Капитон', 'Карл', 'Карп',
        'Касьян', 'Ким', 'Кир', 'Кирилл', 'Клавдий', 'Климент',
        'Кондрат', 'Кондратий', 'Конон', 'Константин', 'Корнил', 'Кузьма',
        'Куприян', 'Лавр', 'Лаврентий', 'Ладимир', 'Ладислав', 'Лазарь',
        'Лев', 'Леон', 'Леонид', 'Леонтий', 'Лонгин', 'Лука',
        'Лукьян', 'Лучезар', 'Любим', 'Любомир', 'Любосмысл', 'Макар',
        'Максим', 'Максимильян', 'Мариан', 'Марк', 'Мартын', 'Мартьян',
        'Матвей', 'Мефодий', 'Мечислав', 'Милан', 'Милен', 'Милий',
        'Милован', 'Мина', 'Мир', 'Мирон', 'Мирослав', 'Митофан',
        'Михаил', 'Михей', 'Модест', 'Моисей', 'Мокей', 'Мстислав',
        'Назар', 'Наркис', 'Натан', 'Наум', 'Нестор', 'Никандр',
        'Никанор', 'Никита', 'Никифор', 'Никодим', 'Николай', 'Никон',
        'Нифонт', 'Олег', 'Олимпий', 'Онуфрий', 'Орест', 'Осип',
        'Остап', 'Остромир', 'Павел', 'Панкратий', 'Панкрат', 'Пантелеймон',
        'Панфил', 'Парамон', 'Парфен', 'Пахом', 'Петр', 'Пимен',
        'Платон', 'Поликарп', 'Порфирий', 'Потап', 'Пров', 'Прокл',
        'Прокофий', 'Прохор', 'Радим', 'Радислав', 'Радован', 'Ратибор',
        'Ратмир', 'Родион', 'Роман', 'Ростислав', 'Рубен', 'Руслан',
        'Рюрик', 'Савва', 'Савватий', 'Савелий', 'Самсон', 'Самуил',
        'Светозар', 'Святополк', 'Святослав', 'Севастьян', 'Селиван', 'Селиверст',
        'Семен', 'Серафим', 'Сергей', 'Сигизмунд', 'Сидор', 'Сила',
        'Силантий', 'Сильвестр', 'Симон', 'Сократ', 'Соломон', 'Софон',
        'Софрон', 'Спартак', 'Спиридон', 'Станимир', 'Станислав', 'Степан',
        'Стоян', 'Тарас', 'Твердислав', 'Творимир', 'Терентий', 'Тимофей',
        'Тимур', 'Тит', 'Тихон', 'Трифон', 'Трофим', 'Ульян',
        'Устин', 'Фадей', 'Федор', 'Федосий', 'Федот', 'Феликс',
        'Феоктист', 'Феофан', 'Ферапонт', 'Филарет', 'Филимон', 'Филипп',
        'Фирс', 'Флорентин', 'Фока', 'Фома', 'Фортунат', 'Фотий',
        'Фрол', 'Харитон', 'Харлампий', 'Христофор', 'Чеслав', 'Эдуард',
        'Эммануил', 'Эмиль', 'Эраст', 'Эрнест', 'Эрнст', 'Ювеналий',
        'Юлиан', 'Юлий', 'Юрий', 'Яков', 'Ян', 'Якуб',
        'Януарий', 'Ярополк', 'Ярослав'
    )

    last_names = (
        'Смирнов', 'Иванов', 'Кузнецов', 'Попов', 'Соколов',
        'Лебедев', 'Козлов', 'Новиков', 'Морозов', 'Петров',
        'Волков', 'Соловьев', 'Васильев', 'Зайцев', 'Павлов',
        'Семенов', 'Голубев', 'Виноградов', 'Богданов', 'Воробьев',
        'Федоров', 'Михайлов', 'Беляев', 'Тарасов', 'Белов',
        'Комаров', 'Орлов', 'Киселев', 'Макаров', 'Андреев',
        'Ковалев', 'Ильин', 'Гусев', 'Титов', 'Кузьмин',
        'Кудрявцев', 'Баранов', 'Куликов', 'Алексеев', 'Степанов',
        'Яковлев', 'Сорокин', 'Сергеев', 'Романов', 'Захаров',
        'Борисов', 'Королев', 'Герасимов', 'Пономарев', 'Григорьев',
        'Лазарев', 'Медведев', 'Ершов', 'Никитин', 'Соболев',
        'Рябов', 'Поляков', 'Цветков', 'Данилов', 'Жуков',
        'Фролов', 'Журавлев', 'Николаев', 'Крылов', 'Максимов',
        'Сидоров', 'Осипов', 'Белоусов', 'Федотов', 'Дорофеев',
        'Егоров', 'Матвеев', 'Бобров', 'Дмитриев', 'Калинин',
        'Анисимов', 'Петухов', 'Антонов', 'Тимофеев', 'Никифоров',
        'Веселов', 'Филиппов', 'Марков', 'Большаков', 'Суханов',
        'Миронов', 'Ширяев', 'Александров', 'Коновалов', 'Шестаков',
        'Казаков', 'Ефимов', 'Денисов', 'Громов', 'Фомин',
        'Давыдов', 'Мельников', 'Щербаков', 'Блинов', 'Колесников',
        'Карпов', 'Афанасьев', 'Власов', 'Маслов', 'Исаков',
        'Тихонов', 'Аксенов', 'Гаврилов', 'Родионов', 'Котов',
        'Горбунов', 'Кудряшов', 'Быков', 'Зуев', 'Третьяков',
        'Савельев', 'Панов', 'Рыбаков', 'Суворов', 'Абрамов',
        'Воронов', 'Мухин', 'Архипов', 'Трофимов', 'Мартынов',
        'Емельянов', 'Горшков', 'Чернов', 'Овчинников', 'Селезнев',
        'Панфилов', 'Копылов', 'Михеев', 'Галкин', 'Назаров',
        'Лобанов', 'Лукин', 'Беляков', 'Потапов', 'Некрасов',
        'Хохлов', 'Жданов', 'Наумов', 'Шилов', 'Воронцов',
        'Ермаков', 'Дроздов', 'Игнатьев', 'Савин', 'Логинов',
        'Сафонов', 'Капустин', 'Кириллов', 'Моисеев', 'Елисеев',
        'Кошелев', 'Костин', 'Горбачев', 'Орехов', 'Ефремов',
        'Исаев', 'Евдокимов', 'Калашников', 'Кабанов', 'Носков',
        'Юдин', 'Кулагин', 'Лапин', 'Прохоров', 'Нестеров',
        'Харитонов', 'Агафонов', 'Муравьев', 'Ларионов', 'Федосеев',
        'Зимин', 'Пахомов', 'Шубин', 'Игнатов', 'Филатов',
        'Крюков', 'Рогов', 'Кулаков', 'Терентьев', 'Молчанов',
        'Владимиров', 'Артемьев', 'Гурьев', 'Зиновьев', 'Гришин',
        'Кононов', 'Дементьев', 'Ситников', 'Симонов', 'Мишин',
        'Фадеев', 'Комиссаров', 'Мамонтов', 'Носов', 'Гуляев',
        'Шаров', 'Устинов', 'Вишняков', 'Евсеев', 'Лаврентьев',
        'Брагин', 'Константинов', 'Корнилов', 'Авдеев', 'Зыков',
        'Бирюков', 'Шарапов', 'Никонов', 'Щукин', 'Дьячков',
        'Одинцов', 'Сазонов', 'Якушев', 'Красильников', 'Гордеев',
        'Самойлов', 'Князев', 'Беспалов', 'Уваров', 'Шашков',
        'Бобылев', 'Доронин', 'Белозеров', 'Рожков', 'Самсонов',
        'Мясников', 'Лихачев', 'Буров', 'Сысоев', 'Фомичев',
        'Русаков', 'Стрелков', 'Гущин', 'Тетерин', 'Колобов',
        'Субботин', 'Фокин', 'Блохин', 'Селиверстов', 'Пестов',
        'Кондратьев', 'Силин', 'Меркушев', 'Лыткин', 'Туров'
    )

    prefixes = ('г-н.', 'тов.')

    @classmethod
    def prefix(cls):
        return cls.random_element(cls.prefixes)
