Repository: joke2k/faker
Pull request #2114 (2024-10-08 02:13:44)

Uk-ua updates
### What does this change

Renamed city and street names when translating the Ukrainian parts of providers.
In accordance with changes in national legislation, and text optimization and replacement of duplicates.

But the text is not sorted.

- https://zakon.rada.gov.ua/laws/show/z1534-23
- https://zakon.rada.gov.ua/laws/show/3984-IX
- https://omr.gov.ua/ua/acts/council/203797
- https://maps.visicom.ua
- https://uk.wikipedia.org





Patch:
diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index e073e37a..7d4b0319 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 30.3.0
+current_version = 30.7.0
 files = VERSION faker/__init__.py docs/conf.py
 commit = True
 tag = True
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index c53f7f76..af66a2ba 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -15,4 +15,5 @@ Fixes #...
 ### Checklist
 
 - [ ] I have read the documentation about [CONTRIBUTING](https://github.com/joke2k/faker/blob/master/CONTRIBUTING.rst)
+- [ ] I have read the documentation about [Coding style](https://github.com/joke2k/faker/blob/master/docs/coding_style.rst)
 - [ ] I have run `make lint`
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5bffacfa..e6e915bc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -256,7 +256,7 @@ jobs:
     - name: Set up Python
       uses: actions/setup-python@v5
       with:
-        python-version: '3.x'
+        python-version: '3.12'
     - name: Install dependencies
       run: |
         python -m pip install tox==3.27.1 setuptools
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e69f7edc..b7fd0b02 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,22 @@
 ## Changelog
 
+### [v30.7.0 - 2024-10-21](https://github.com/joke2k/faker/compare/v30.6.0...v30.7.0)
+
+* Add person provider for `gu_IN` locale. Thanks @debjeetsingha.
+* Add `datetime` provider for `gu_IN` locale. Thanks @wh0th3h3llam1.
+
+### [v30.6.0 - 2024-10-16](https://github.com/joke2k/faker/compare/v30.5.0...v30.6.0)
+
+* Add passport provider for `ru_RU` locale. Thanks @Abdujabbar.
+
+### [v30.5.0 - 2024-10-16](https://github.com/joke2k/faker/compare/v30.4.0...v30.5.0)
+
+* Add Providers for `ka_GE` locale. Thanks @onesch.
+
+### [v30.4.0 - 2024-10-15](https://github.com/joke2k/faker/compare/v30.3.0...v30.4.0)
+
+* Add separate male/female names along with prefix/suffix for `hi_IN` locale. Thanks @wh0th3h3llam1.
+
 ### [v30.3.0 - 2024-10-07](https://github.com/joke2k/faker/compare/v30.2.0...v30.3.0)
 
 * Add decorator to optionally format dates as string. Thanks @browniebroke.
diff --git a/VERSION b/VERSION
index 96332141..a400250b 100644
--- a/VERSION
+++ b/VERSION
@@ -1,1 +1,1 @@
-30.3.0
+30.7.0
diff --git a/build-alpine.sh b/build-alpine.sh
index 7fac5b44..e5d4642b 100755
--- a/build-alpine.sh
+++ b/build-alpine.sh
@@ -5,7 +5,7 @@ if [[ -z "${TEST_ALPINE}" ]]; then
     exit 0
 fi
 
-docker run -v ${PWD}:/code -e INSTALL_REQUIREMENTS=${INSTALL_REQUIREMENTS} python:3-alpine sh -c "
+docker run -v ${PWD}:/code -e INSTALL_REQUIREMENTS=${INSTALL_REQUIREMENTS} python:3.12-alpine sh -c "
     apk update \
     && apk add git build-base jpeg-dev zlib-dev \
     && pip install tox coveralls \
diff --git a/docs/coding_style.rst b/docs/coding_style.rst
index 95f88ac2..de611d6b 100644
--- a/docs/coding_style.rst
+++ b/docs/coding_style.rst
@@ -58,6 +58,13 @@ included in other parts of the code. If you add a generic type, please specify i
    * - ``typing.GenderType``
      - String variable that can only have values ``"F"`` (female) and ``"M"`` (male)
 
+Tests
+-----
+
+Please add tests for all new providers.
+
+When adding a new test class, please find its place in alphabetical order.
+
 .. _`tox.ini`: https://github.com/joke2k/faker/blob/master/tox.ini
 .. _`pep 8`: https://python.org/dev/peps/pep-0008
 .. _`pep 263`: https://python.org/dev/peps/pep-0263
diff --git a/docs/conf.py b/docs/conf.py
index 08f8e7a1..3ab6ff12 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -51,9 +51,9 @@ copyright = f"2014-{datetime.now().year}, Daniele Faraglia"
 # built documents.
 #
 # The short X.Y version.
-version = "30.3.0"
+version = "30.7.0"
 # The full version, including alpha/beta/rc tags.
-release = "30.3.0"
+release = "30.7.0"
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/faker/__init__.py b/faker/__init__.py
index e866a61b..5c69449e 100644
--- a/faker/__init__.py
+++ b/faker/__init__.py
@@ -2,6 +2,6 @@ from faker.factory import Factory
 from faker.generator import Generator
 from faker.proxy import Faker
 
-VERSION = "30.3.0"
+VERSION = "30.7.0"
 
 __all__ = ("Factory", "Generator", "Faker")
diff --git a/faker/providers/address/uk_UA/__init__.py b/faker/providers/address/uk_UA/__init__.py
index 1ec0c999..756b23c9 100644
--- a/faker/providers/address/uk_UA/__init__.py
+++ b/faker/providers/address/uk_UA/__init__.py
@@ -23,7 +23,7 @@ class Provider(AddressProvider):
         "Амвросіївка",
         "Ананьїв",
         "Андрушівка",
-        "Антрацит ",
+        "Антрацит",
         "Апостолове",
         "Армянськ",
         "Арциз",
@@ -42,7 +42,7 @@ class Provider(AddressProvider):
         "Бердянськ",
         "Берегове",
         "Бережани",
-        "Березань ",
+        "Березань",
         "Березівка",
         "Березне",
         "Берестечко",
@@ -72,17 +72,17 @@ class Provider(AddressProvider):
         "Бровари",
         "Броди",
         "Брянка",
-        "Бунге ",
+        "Бунге",
         "Буринь",
-        "Бурштин ",
+        "Бурштин",
         "Буськ",
         "Буча",
         "Бучач",
-        "Валки ",
+        "Валки",
         "Вараш",
-        "Василівка ",
+        "Василівка",
         "Васильків",
-        "Ватутіне",
+        "Багачеве",
         "Вашківці",
         "Великі Мости",
         "Верхівцеве",
@@ -92,7 +92,7 @@ class Provider(AddressProvider):
         "Винники",
         "Виноградів",
         "Вишгород",
-        "Вишневе ",
+        "Вишневе",
         "Вільногірськ",
         "Вільнянськ",
         "Вінниця",
@@ -110,9 +110,8 @@ class Provider(AddressProvider):
         "Гайсин",
         "Галич",
         "Генічеськ",
-        "Географія Вільнянська",
         "Герца",
-        "Гірник ",
+        "Гірник",
         "Гірське",
         "Глиняни",
         "Глобине",
@@ -123,7 +122,7 @@ class Provider(AddressProvider):
         "Горішні Плавні",
         "Горлівка",
         "Городенка",
-        "Городище ",
+        "Городище",
         "Городня",
         "Городок",
         "Горохів",
@@ -133,17 +132,17 @@ class Provider(AddressProvider):
         "Деражня",
         "Дергачі",
         "Джанкой",
-        "Дніпро ",
+        "Дніпро",
         "Дніпрорудне",
         "Добромиль",
         "Добропілля",
         "Довжанськ",
         "Докучаєвськ",
-        "Долина ",
+        "Долина",
         "Долинська",
         "Донецьк",
         "Дрогобич",
-        "Дружба ",
+        "Хутір-Михайлівський",
         "Дружківка",
         "Дубляни",
         "Дубно",
@@ -191,7 +190,7 @@ class Provider(AddressProvider):
         "Ічня",
         "Кагарлик",
         "Кадіївка",
-        "Калинівка ",
+        "Калинівка",
         "Калуш",
         "Кальміуське",
         "Кам'янець-Подільський",
@@ -228,7 +227,7 @@ class Provider(AddressProvider):
         "Краматорськ",
         "Красилів",
         "Красногорівка",
-        "Красноград",
+        "Берестин",
         "Красноперекопськ",
         "Кременець",
         "Кременчук",
@@ -241,10 +240,10 @@ class Provider(AddressProvider):
         "Ладижин",
         "Ланівці",
         "Лебедин",
-        "Лиман ",
+        "Лиман",
         "Липовець",
         "Лисичанськ",
-        "Лозова ",
+        "Лозова",
         "Лохвиця",
         "Лубни",
         "Луганськ",
@@ -257,19 +256,19 @@ class Provider(AddressProvider):
         "Мала Виска",
         "Малин",
         "Мар'їнка",
-        "Марганець ",
+        "Марганець",
         "Маріуполь",
         "Мелітополь",
-        "Мена ",
+        "Мена",
         "Мерефа",
         "Миколаїв",
-        "Миколаївка ",
+        "Миколаївка",
         "Миргород",
         "Мирноград",
         "Миронівка",
         "Міусинськ",
         "Могилів-Подільський",
-        "Молодогвардійськ",
+        "Отаманівка",
         "Молочанськ",
         "Монастириська",
         "Монастирище",
@@ -296,7 +295,7 @@ class Provider(AddressProvider):
         "Новодністровськ",
         "Новодружеськ",
         "Новомиргород",
-        "Новомосковськ",
+        "Самар",
         "Новоселиця",
         "Новоукраїнка",
         "Новояворівськ",
@@ -309,30 +308,30 @@ class Provider(AddressProvider):
         "Олександрія",
         "Олешки",
         "Оріхів",
-        "Остер ",
+        "Остер",
         "Острог",
         "Охтирка",
         "Очаків",
         "П'ятихатки",
         "Павлоград",
-        "Первомайськ",
-        "Первомайський ",
+        "Сокологірськ",
+        "Златопіль",
         "Перевальськ",
         "Перемишляни",
         "Перечин",
         "Перещепине",
         "Переяслав",
-        "Першотравенськ",
+        "Шахтарське",
         "Петрово-Красносілля",
         "Пирятин",
-        "Південне ",
+        "Південне",
         "Підгайці",
         "Підгородне",
         "Погребище",
         "Подільськ",
         "Покров",
         "Покровськ",
-        "Пологи ",
+        "Пологи",
         "Полонне",
         "Полтава",
         "Помічна",
@@ -340,8 +339,8 @@ class Provider(AddressProvider):
         "Почаїв",
         "Привілля",
         "Прилуки",
-        "Приморськ (Україна)",
-        "Прип'ять ",
+        "Приморськ",
+        "Прип'ять",
         "Пустомити",
         "Путивль",
         "Рава-Руська",
@@ -361,7 +360,7 @@ class Provider(AddressProvider):
         "Ромни",
         "Рубіжне",
         "Рудки",
-        "Саки ",
+        "Саки",
         "Самбір",
         "Сарни",
         "Свалява",
@@ -373,7 +372,7 @@ class Provider(AddressProvider):
         "Селидове",
         "Семенівка",
         "Середина-Буда",
-        "Сєвєродонецьк",
+        "Сіверськодонецьк",
         "Синельникове",
         "Сіверськ",
         "Сімферополь",
@@ -393,7 +392,7 @@ class Provider(AddressProvider):
         "Сокиряни",
         "Соледар",
         "Сорокине",
-        "Соснівка ",
+        "Соснівка",
         "Старий Крим",
         "Старий Самбір",
         "Старобільськ",
@@ -401,9 +400,8 @@ class Provider(AddressProvider):
         "Стебник",
         "Сторожинець",
         "Стрий",
-        "Судак ",
+        "Судак",
         "Судова Вишня",
-        "Сулимівка (Слов'янськ)",
         "Суми",
         "Суходільськ",
         "Таврійськ",
@@ -412,7 +410,7 @@ class Provider(AddressProvider):
         "Татарбунари",
         "Теплодар",
         "Теребовля",
-        "Тернівка ",
+        "Тернівка",
         "Тернопіль",
         "Тетіїв",
         "Тиврів",
@@ -428,7 +426,7 @@ class Provider(AddressProvider):
         "Угнів",
         "Ужгород",
         "Узин",
-        "Українка ",
+        "Українка",
         "Українськ",
         "Умань",
         "Устилуг",
@@ -442,7 +440,7 @@ class Provider(AddressProvider):
         "Хмельницький",
         "Хмільник",
         "Ходорів",
-        "Хорол ",
+        "Хорол",
         "Хоростків",
         "Хотин",
         "Хрестівка",
@@ -450,8 +448,7 @@ class Provider(AddressProvider):
         "Хрустальний",
         "Хуст",
         "Часів Яр",
-        "Червоноград",
-        "Червоносів",
+        "Шептицький",
         "Черкаси",
         "Чернівці",
         "Чернігів",
@@ -469,7 +466,7 @@ class Provider(AddressProvider):
         "Шостка",
         "Шпола",
         "Шумськ",
-        "Щастя ",
+        "Щастя",
         "Щолкіне",
         "Южне",
         "Южноукраїнськ",
@@ -727,27 +724,27 @@ class Provider(AddressProvider):
         "1-ша Лінія 4-ї ст. Люстдорфської дороги",
         "1-ша Лінія 6-й ст. Люстдорфської дороги",
         "1-ша Лінія Марії Демченко",
-        "1-ша Суворовська",
+        "Олександра Болдирєва",
         "1-й Академічний тупик",
         "10-та Лінія 6-й ст. Люстдорфської дороги",
         "10-та Лінія Марії Демченко",
-        "10-та Суворовська",
+        "Олександра Богомольця",
         "11-ша Лінія 6-й ст. Люстдорфської дороги",
         "11-та Лінія Марії Демченко",
         "11-та ст. Великого Фонтану пляж",
-        "11-та Суворовська",
+        "Яна Длугоша",
         "12-та Лінія 6-й ст. Люстдорфської дороги",
         "12-та ст. Великого Фонтану пляж",
-        "12-та Суворовська",
+        "Юрія Кондратюка",
         "13-та Лінія 6-й ст. Люстдорфської дороги",
         "13-та ст. Великого Фонтану пляж",
-        "13-та Суворовська",
+        "Миколи Костомарова",
         "14-та Лінія 6-й ст. Люстдорфської дороги",
         "14-та ст. Великого Фонтану пляж",
-        "14-та Суворовська",
+        "Марка Крейна",
         "15-та Лінія 6-й ст. Люстдорфської дороги",
         "15-та ст. Великого Фонтану пляж",
-        "15-та Суворовська",
+        "Скліфосовського",
         "16-та Лінія 6-й ст. Люстдорфської дороги",
         "17-та Лінія 6-й ст. Люстдорфської дороги",
         "18-та Лінія 6-й ст. Люстдорфської дороги",
@@ -756,36 +753,36 @@ class Provider(AddressProvider):
         "2-га Лінія 4-ї ст. Люстдорфської дороги",
         "2-га Лінія 6-й ст. Люстдорфської дороги",
         "2-га Лінія Марії Демченко",
-        "2-га Суворовська",
+        "Бардаха",
         "2-й Академічний тупик",
         "21-й км Старокиївської дороги",
         "3-тя Лінія 4-ї ст. Люстдорфської дороги",
         "3-тя Лінія 6-й ст. Люстдорфської дороги",
         "3-тя Лінія Марії Демченко",
-        "3-тя Суворовська",
+        "Миколи Пильчикова",
         "4-та Лінія 6-й ст. Люстдорфської дороги",
         "4-та Лінія Марії Демченко",
-        "4-та Суворовська",
+        "Йосипа Фішера",
         "40-річчя оборони Одеси",
         "411-ї батареї",
         "5-та Лінія 6-й ст. Люстдорфської дороги",
         "5-та Лінія Марії Демченко",
-        "5-та Суворовська",
+        "Цесевича",
         "6-та Лінія 6-й ст. Люстдорфської дороги",
         "6-та Лінія Марії Демченко",
-        "6-та Суворовська",
+        "Баринштейна",
         "7-ма Лінія 6-й ст. Люстдорфської дороги",
         "7-ма Лінія Дачі Ковалевського",
-        "7-ма Суворовська",
+        "Євгена Крамаренка",
         "8-ма Лінія 6-й ст. Люстдорфської дороги",
         "8-ма Лінія Дачі Ковалевського",
-        "8-ма Суворовська",
+        "Володимира Антоновича",
         "9-та Лінія Дачі Ковалевського",
-        "9-та Суворовська",
+        "Квітки-Основ’яненка",
         "Абрикосова",
         "Абрикосовий",
         "Авангардна",
-        "Авдєєва-Чорноморського",
+        "Одеської громади",
         "Авіаторів",
         "Авіаційна",
         "Аграрна",
@@ -806,17 +803,15 @@ class Provider(AddressProvider):
         "Азербайджан",
         "Азовський",
         "Академіка Богатського",
-        "Академіка Вавилова",
+        "Сергія Єфремова",
         "Академіка Векслера",
-        "Академіка Вільямса",
-        "Академіка Вільямса",
-        "Академіка Вільямса",
-        "Академіка Воробйова",
-        "Академіка Гаркавого",
-        "Академіка Глушка",
+        "Карпенка-Карого",
+        "Віталія Нестеренка",
+        "Житомирська",
+        "Князя Ярослава Мудрого",
         "Академіка Заболотного",
         "Академіка Корольова",
-        "Академіка Панкратової",
+        "Дмитра Сигаревича",
         "Академіка Сахарова",
         "Академіка Філатова",
         "Академіка Ясиновського",
@@ -832,18 +827,18 @@ class Provider(AddressProvider):
         "Амундсена, 1-й",
         "Амундсена, 2-й",
         "Амундсена, 3-й",
-        "Амурська",
-        "Амурський 1-й",
-        "Амурський 2-й",
-        "Амурський 3-й",
-        "Амурський 4-й",
+        "Острозька",
+        "Кам’янецький",
+        "Глухівський",
+        "Волинський",
+        "Кременецький",
         "Ананьївська",
-        "Ангарська",
+        "Буджацька",
         "Андреєвського",
-        "Андрійця Олега",
+        "Олега Андрійця",
         "Андросовський",
-        "Анни Ахматової",
-        "Аполона Скальковського",
+        "Ганни Ахматової",
+        "Зої Пасічної",
         "Аптекарський",
         "Аркадіївський",
         "Аркадійська",
@@ -854,18 +849,17 @@ class Provider(AddressProvider):
         "Артилерійський 2-й",
         "Архітекторська",
         "Архітектурна",
-        "Асєєва Юрія",
-        "Асташкіна",
+        "Юрія Асєєва",
         "Асташкіна",
         "Астрономічна",
         "Астрономічний",
         "Ашгабатська",
-        "Бабеля",
+        "Дмитра Іванова",
         "Багрицького",
         "Базарна",
         "Байдарочний",
         "Байкал тупик",
-        "Байкальська",
+        "Юрія Єгорова",
         "Балківська",
         "Балтська дорога",
         "Балтський 1-й",
@@ -892,29 +886,29 @@ class Provider(AddressProvider):
         "Березовий",
         "Бернардацці",
         "Бессарабська",
-        "Бехтерєва",
+        "Данила Самойловича",
         "Бібліотечна",
-        "Білоруська",
-        "Більшовицький",
+        "Кастуся Калиновського",
+        "Савранський",
         "Біляївська",
-        "Бірюкова",
+        "Ігоря Іванова",
         "Бісквітний",
         "Бітумна",
-        "Благовидової",
+        "Ольги Благовидової",
         "Богдана Хмельницького",
         "Богуна",
         "Бодаревського",
-        "Бокаріуса Миколи",
+        "Бокаріуса",
         "Болгарська",
         "Болградська",
         "Бориса Дерев'янка",
         "Бориса Літвака",
-        "Бородінська",
+        "Героїв Зміїного",
         "Ботанічний",
-        "Братів Поджіо",
-        "Братська",
-        "Брестська",
-        "Бреуса",
+        "Василя Фащенка",
+        "Вінницька",
+        "Берестейська",
+        "Бреуса Якова",
         "Бригадна",
         "Бугаївська",
         "Будівельна",
@@ -923,13 +917,14 @@ class Provider(AddressProvider):
         "Бузковий",
         "Бузковий 1-й",
         "Бузковий 2-й",
-        "Буніна",
+        "Ніни Строкатої",
         "Бучми",
+        "Кінбурнський",
         "В’ячеслава Чорновола",
         "Валіховський",
         "Ванний",
-        "Ванцетті",
-        "Ванцетті",
+        "Миколи Куліша",
+        "Гіацинтовий",
         "Вапняна",
         "Вапняне селище",
         "Вапняний 1-й",
@@ -944,13 +939,13 @@ class Provider(AddressProvider):
         "Василя Кандинського 5-й",
         "Василя Симоненка",
         "Василя Стуса",
-        "Васнецова",
-        "Васнецова",
+        "Ждахи",
+        "Михайла Слабченка",
         "Ватманський",
         "Велика Арнаутська",
         "Велика Садова",
         "Венгера",
-        "Верещагіна",
+        "Академіка Липського",
         "Вернидуба",
         "Верстатобудівна",
         "Вертелецького",
@@ -960,8 +955,8 @@ class Provider(AddressProvider):
         "Весела",
         "Весняна",
         "Ветеранів праці",
-        "Вєтрова",
-        "Вєтрогонова",
+        "Назарівська",
+        "Ігоря Ветрогонова",
         "Виїзна",
         "Виноградна",
         "Виноградна 1-ша",
@@ -971,7 +966,7 @@ class Provider(AddressProvider):
         "Виноградний тупик",
         "Висока",
         "Високий",
-        "Висоцького",
+        "Ярослава Баїса",
         "Виставочна",
         "Вишнева",
         "Вишневий",
@@ -979,12 +974,12 @@ class Provider(AddressProvider):
         "Військовий узвіз",
         "Вільгельма Габсбурга",
         "Віри Інбер",
-        "Віри Фігнер",
+        "Буковецького",
         "Віри Холодної",
         "Вірського",
         "Вітчизняна",
-        "Віцеадмірала Азарова",
-        "Віцеадмірала Жукова",
+        "Андрія Гулого-Гуленка",
+        "Івана Луценка",
         "Водний",
         "Водопровідна",
         "Водопровідний 1-й",
@@ -993,47 +988,41 @@ class Provider(AddressProvider):
         "Вознесенський",
         "Вокзальна",
         "Вокзальний",
-        "Волзький",
-        "Волна тупик",
-        "Волниста",
+        "Олександрійський",
+        "тупик Хвиля",
+        "Хвиляста",
         "Володимира Вінниченка",
         "Володимира Хавкіна",
         "Володі Дубініна",
-        "Волоколамська",
-        "Воронезька",
-        "Воронцовський",
+        "Батуринська",
+        "Ізюмська",
+        "Байгородський",
         "Восьмого березня",
         "Восьмого березня 1-й",
         "Восьмого березня 2-й",
         "Восьмого березня 3-й",
         "Восьмого березня 4-й",
-        "Восьмого березня 5-й",
+        "Кодимський",
         "Восьмого березня 6-й",
-        "Восьмого березня 7-й",
+        "Бейтельсбахера",
         "Восьмого березня 8-й",
-        "Восьмого березня 9-й",
+        "Волтона",
         "Восьмого Березня Лінія 1-ша",
-        "Восьмого Березня Лінія 2-га",
-        "Восьмого Березня Лінія 3-тя",
-        "Восьмого Березня Лінія 4-та",
-        "Восьмого Березня Лінія 5-та",
-        "Восьмого березня узвіз",
-        "Восьмого березня узвіз",
+        "Килимова",
+        "Гобеленова",
+        "Фахова",
+        "Бондарна",
+        "Віктора Скаржинського узвіз",
         "Вузький",
         "Вчительська",
         "Вчительської, 2-й",
         "Гаванна",
-        "Гагаріна",
-        "Гагаріна",
-        "Гагаріна",
-        "Гагарінське плато",
         "Газова",
         "Газовий",
-        "Гаріна",
-        "Гаршина",
-        "Гаршина",
-        "Гастелло",
-        "Гвардійська",
+        "Павла Клепацького",
+        "Давида Бурлюка",
+        "Соні Делоне",
+        "Андрія Музичка",
         "Гвоздична",
         "Гвоздичний",
         "Гена Іоганна",
@@ -1045,14 +1034,14 @@ class Provider(AddressProvider):
         "Героїв Небесної Сотні",
         "Героїв оборони Одеси",
         "Героїв прикордонників",
-        "Герцена",
+        "Галини Могильницької",
         "Гетьманський",
         "Гілельса",
         "Гімназична",
-        "Гладкова",
-        "Глазунова",
-        "Глазунова 1-й",
-        "Глазунова 2-й",
+        "Каменярів",
+        "Бориса Нечерди",
+        "Дмитра Годзенка",
+        "Кафедральна",
         "Глиняна",
         "Глухий міст",
         "Гоголя",
@@ -1064,37 +1053,38 @@ class Provider(AddressProvider):
         "Горизонтальна",
         "Горіхова",
         "Городня",
+        "Хортицька",
+        "Марка Твена",
         "Госпітальний",
-        "Градоначальницька",
+        "Тараса Кузьміна",
         "Гранатна",
         "Гранатний",
         "Грецька",
         "Грецька",
         "Грецький",
-        "Грибоєдова",
+        "Джинестрівська",
         "Грузинська",
         "Грузовий",
         "Давида Ойстраха",
-        "Далекосхідна",
+        "Трусовська",
         "Дальницька",
         "Дальницьке",
         "Дальній",
         "Дальня",
         "Данила Крижанівського",
-        "Данькевича",
+        "Проектуєма",
         "Дача Ковалевського",
         "Дачна",
         "Дачний",
         "Дачний 1-й",
         "Дачний 2-й",
-        "Дворянська",
+        "Всеволода Змієнка",
         "Дев’ята",
         "Деволанівська",
         "Деволанівський узвіз",
-        "Дежньова",
-        "Декабристів",
+        "Миргородський",
         "Дельфін",
-        "Дем’янова",
+        "Грушева",
         "Демократична",
         "Депутатський",
         "Деревообробна",
@@ -1103,8 +1093,8 @@ class Provider(AddressProvider):
         "Деревообробний 3-й",
         "Деревообробний 4-й",
         "Деревообробний 5-й",
-        "Державіна",
-        "Державіна",
+        "Глаубермана",
+        "Квантовий",
         "Дерибасівська",
         "Десантний",
         "Десята",
@@ -1116,12 +1106,12 @@ class Provider(AddressProvider):
         "Дігтярна",
         "Дідріхсона",
         "Діхтієвського Віктора",
-        "Дмитрія Донського",
-        "Дмитрія Донського",
+        "Дмитріївська",
+        "Лазурського",
         "Дніпровська",
         "Дніпропетровська дорога",
         "Дністровська",
-        "Добровольського",
+        "Князя Володимира Великого ",
         "Довга",
         "Довженка",
         "Докова",
@@ -1130,19 +1120,16 @@ class Provider(AddressProvider):
         "Донцова Дмитра",
         "Дорбуду",
         "Дорожня",
-        "Достоєвського",
-        "Достоєвського",
         "Друга",
         "Дружний",
         "Дубова",
         "Дубовий гай",
         "Дукова",
-        "Думська",
-        "Дунаєва",
-        "Дунаєвського",
-        "Дунаєвського 1-й",
-        "Дунаєвського 2-й",
-        "Дунаєвського 3-й",
+        "Біржова",
+        "Панаса Саксаганського",
+        "Мирослава Скорика",
+        "Олександра Кошиця",
+        "Лятошинського,
         "Дунайська",
         "Дюківська",
         "Дюківський сад",
@@ -1152,23 +1139,22 @@ class Provider(AddressProvider):
         "Естонська",
         "Естонський",
         "Єврейська",
-        "Єлисаветградський",
-        "Єліна",
-        "Єлісаветинська",
-        "Єнісейська",
-        "Єрмака",
+        "Халайджогло",
+        "Ференца Ліста",
+        "Юрія Коваленка",
+        "Охтирський",
         "Єфімова",
         "Жаботинського",
         "Жасминна",
         "Жевахова",
-        "Желябова",
-        "Житкова",
+        "Владислава Домбровського",
+        "Братів Малакових",
         "Житомирська",
         "Житомирський 3-й",
         "Житомирський 4-й",
         "Жоліо-Кюрі",
         "Жолкова Бориса",
-        "Жуковського",
+        "Леопольда Ященка",
         "Заводська",
         "Заводська 1-ша",
         "Заводська 2-га",
@@ -1193,45 +1179,41 @@ class Provider(AddressProvider):
         "Зернова",
         "Злакова",
         "Змієнка Всеволода",
-        "Зої Космодем’янської",
         "Золотий берег",
         "Зоопаркова",
-        "Зоринська",
+        "Караїмська",
         "Зоряна",
         "Івана Вазова",
         "Івана Микитенка",
         "Івана Франка",
-        "Івана Франка",
         "Іванівська",
         "Іванівський переїзд",
-        "Іванова",
-        "Іванова 1-й",
-        "Іванова 2-й",
+        "Бутишів",
+        "Мерло",
+        "Каберне",
         "Іванова Ігоря",
         "Івасюка Володимира",
         "Івахненка Петра",
-        "Ільфа і Петрова",
-        "ім. С.Ю. Вітте",
-        "ім. К.Г. Паустовського",
+        "Сім'ї Глодан",
         "Інглезі",
         "Індійська",
-        "Інтернаціональний",
+        "Сергія Коновалова",
         "Іподромний",
         "Іспанська",
         "Іспанський",
         "Історія Футболу",
         "Італійський",
-        "Іцхака Рабіна",
+        "Рабіна Іцхака",
         "Йосипа Тимченка",
         "Кавказька",
         "Кавказький",
         "Кавунова",
-        "Казанська",
+        "Ізмаїльська",
         "Казковий",
         "Калинова",
-        "Калнишевського Петра",
-        "Каманіна",
-        "Каманіна",
+        "Петра Калнишевського",
+        "Валерія Самофалова",
+        "Кортацці",
         "Камишова",
         "Канатна",
         "Канатний",
@@ -1245,13 +1227,9 @@ class Provider(AddressProvider):
         "Карпатська",
         "Картамишевська",
         "Картамишевський",
-        "Касима Юрія",
-        "Каспійський",
-        "Катаєва",
-        "Катерининська",
-        "Катерининська",
+        "Європейська",
         "Каховський",
-        "Качалова",
+        "Симфонічна",
         "Каштанова",
         "Квіткова",
         "Квітковий",
@@ -1261,7 +1239,7 @@ class Provider(AddressProvider):
         "Керченський 1-й",
         "Керченський 2-й",
         "Керченський 3-й",
-        "Кибальчича",
+        "Луїджі Іоріні",
         "Київське",
         "Килимовий",
         "Кипарисний 1-й",
@@ -1270,12 +1248,12 @@ class Provider(AddressProvider):
         "Китобійна",
         "Китобійний 1-й",
         "Китобійний 2-й",
-        "Кифоренка Бориса",
+        "Бориса Кифоренка",
         "Кишинівська",
         "Кільовий",
         "Кільцева",
         "Кінна",
-        "Кісельова Ігоря",
+        "Ігоря Кисельова",
         "Кладовищенська",
         "Кладовищний",
         "Кленова",
@@ -1285,57 +1263,52 @@ class Provider(AddressProvider):
         "Книжковий",
         "Князівська",
         "Князівський",
-        "Коблевська",
-        "Ковалевського",
-        "Ковалевського узвіз",
+        "Павла Зеленого",
+        "Пішонівська",
         "Ковиловий",
         "Колективний",
         "Колекційна",
         "Колонічна",
         "Колонтаївська",
-        "Комітетська",
+        "Василя Капніста",
         "Компасний",
-        "Композитора Глинки",
-        "Композитора Глинки",
-        "Композитора Ніщинського",
+        "Музична",
+        "Мелодійний",
+        "Ніщинського Композитора",
         "Кондрашина",
-        "Кондренка",
         "Конструкторський",
-        "Контрадмірала Луніна",
+        "Віталія Гуляєва",
         "Кордонна",
         "Кордонний",
         "Корнюшина",
-        "Короленка",
+        "Ігоря Балмагії",
         "Короткий",
-        "Косвена",
+        "Кобзаря",
         "Косий",
-        "Космонавта Комарова",
+        "Любомира Гузара",
         "Космонавтів",
         "Косовська",
         "Косовський",
         "Костанді",
         "Костанді 2-й",
         "Костанді 3-й",
-        "Кострова",
-        "Косяченка Олексія",
+        "Ольги Благовидової",
+        "Олексія Косяченко",
         "Котляревського",
-        "Коцебу міст",
         "Коцюбинського",
         "Кощового отамана",
         "Крайня",
         "Красива",
-        "Красна",
         "Красний",
-        "Красних Зорь",
         "Краснова",
-        "Красносільська",
+        "Ольвійська",
         "Краснослобідська",
         "Краснослобідський",
         "Кредитний",
-        "Кренкеля",
+        "Дур'янівський",
         "Кривобалківська",
         "Крижанівський",
-        "Крилова",
+        "Юзефа Крашевського",
         "Кримська",
         "Кримський",
         "Кристаловського",
@@ -1351,14 +1324,14 @@ class Provider(AddressProvider):
         "Куликовський 2-й",
         "Куниці",
         "Купріна",
-        "Курганська",
+        "Сотника Лугіна",
         "Курортний",
         "Курортний 6-й",
-        "Курська",
+        "Бахмутська",
         "Кустанайська",
         "Кустанайський 2-й",
         "Кутова",
-        "Кутузова",
+        "Генерала Алмазова",
         "Куяльницький міст",
         "Лавкова",
         "Лазурний 1-й",
@@ -1373,18 +1346,15 @@ class Provider(AddressProvider):
         "Ланжеронівський узвіз",
         "Латвійський узвіз",
         "Левадна",
-        "Леваневського",
-        "Леваневського",
-        "Леваневського",
-        "Леваневського тупик",
-        "Левітана",
+        "Гонсіоровського",
+        "Толвінського",
+        "Миколи Бурачека",
         "Левкоєва",
-        "Лейтенанта Шмідта",
-        "Леонова",
+        "Олександра Станкова",
+        "Олешківська",
         "Леонтовича",
-        "Лермонтовський",
-        "Лермонтовський 2-й",
-        "Лесі Українки",
+        "Джевецького",
+        "Госпітальєрів",
         "Лесі Українки",
         "Леха Качинського",
         "Лиманна",
@@ -1397,14 +1367,14 @@ class Provider(AddressProvider):
         "Лиманчик 2-й Лінія 5-та",
         "Лиманчик 2-й Лінія 8-ма",
         "Лиманчик 2-й Лінія 9-та",
-        "Лип Івана та Юрія",
+        "Ф. Пішеніна",
         "Липнева",
         "Листяна",
         "Листяний",
         "Литовська",
         "Ліверпульський",
-        "Лідерсівський",
-        "Лізи Чайкіної",
+        "Гетьмана Сагайдачного",
+        "Шевальових",
         "Лінійна",
         "Лінійний",
         "Лїнія 1-ша",
@@ -1453,7 +1423,6 @@ class Provider(AddressProvider):
         "Локомотивний 2-й",
         "Локомотивний 3-й",
         "Локомотивний 4-й",
-        "Ломоносова",
         "Луганська",
         "Лугова",
         "Лузанівка",
@@ -1462,13 +1431,12 @@ class Provider(AddressProvider):
         "Лузанівський",
         "Лузанівський 1-й",
         "Лузанівський 2-й",
-        "Лунний",
+        "Місячний",
         "Луценка Івана",
         "Луцька",
         "Лучиста",
         "Льва Симиренка",
-        "Льва Толстого",
-        "Льва Толстого",
+        "Менделе Сфоріма",
         "Львівська",
         "Львівський",
         "Любашівський",
@@ -1479,61 +1447,53 @@ class Provider(AddressProvider):
         "Лютнева",
         "Лютневий 1-й",
         "Лютневий 2-й",
-        "Лядова",
-        "Ляпідевського",
-        "Ляпунова",
+        "Хортицька",
+        "Остапа Вишні",
+        "Олександра Ройтбурда",
         "М’ясоєдовська",
         "Магістральна",
-        "Магнітогорська",
-        "Магнітогорський",
-        "Магнітогорський 2-й",
-        "Магнітогорський 3-й",
-        "Мазараті",
+        "Михайла Врубеля",
+        "Адольфа Лози",
+        "Сергія Параджанова",
         "Мазепи Івана",
         "Майстерний",
-        "Макаренка",
-        "Макарова",
+        "Лігінська",
+        "Контрадмірала Остроградського",
         "Макова",
         "Маковий",
         "Мала",
         "Мала Арнаутська",
         "Мала Садова",
         "Маланова",
-        "Малиновський",
+        "Хаджибейський",
         "Маловського",
         "Манежна",
         "Манежний",
         "Маразліївська",
-        "Марата",
-        "Марата 1-й",
-        "Марата 2-й",
-        "Маринеско узвіз",
+        "Фруктова",
+        "Сливовий",
+        "Чорничний",
+        "узвіз Віталія Блажка",
         "Мариністів",
-        "Марії Демченко",
-        "Марії Демченко",
-        "Марії Демченко 2-й",
-        "Маріїнська",
+        "Дениса Максишка",
+        "Михайла Омеляновича-Павленка",
         "Марсельська",
-        "Маршала Бабаджаняна",
-        "Маршала Говорова",
-        "Маршала Малиновського",
+        "Добровольців",
         "Маршрутна",
         "Матеріальний 1-й",
-        "Матроська Слобідка",
-        "Матроська Слобідка",
+        "Матроська Слободка ",
         "Матроський узвіз",
         "Матюшенка",
-        "Махачкалинська",
+        "Віталія Блажка",
         "Мацієвської",
         "Мацієвської узвіз",
         "Машинобудівний",
-        "Маяковського",
         "Маячний",
         "Мелітопольська",
         "Мельницька",
         "Металістів",
-        "Метрополітенівський",
-        "Мечникова",
+        "Флейтовий",
+        "Петра Болбочана",
         "Мечникова",
         "Мигдальна",
         "Миколаївська дорога",
@@ -1541,7 +1501,7 @@ class Provider(AddressProvider):
         "Миколи Бажана",
         "Миколи Боровського",
         "Миколи Вороного",
-        "Миколи Гефта",
+        "Ганса Германа",
         "Миколи Гумільова",
         "Миколи Огренича",
         "Миколи Плигуна",
@@ -1550,24 +1510,19 @@ class Provider(AddressProvider):
         "Митракова",
         "Михайла Божія",
         "Михайла Грушевського",
-        "Михайла Жванецького",
-        "Михайлівська",
+        "Військово-морських сил",
         "Михайлівська",
-        "Мінська",
+        "Йозефа Прибіка",
         "Місячна",
-        "Місячна",
-        "Міхновського Миколи",
+        "Миколи Міхновського",
         "Міцкевича",
-        "Мічманський 1-й",
-        "Мічманський 2-й",
-        "Мічуріна",
-        "Мічуріна",
-        "Мічуріна",
+        "Матроський",
+        "Бєлякова",
+        "Волова",
         "Могилівська",
         "Молоді",
         "Молодіжна",
-        "Молодіжна",
-        "Молодогвардійська",
+        "Чайкова",
         "Молокова",
         "Монастирський",
         "Монгольська",
@@ -1576,7 +1531,7 @@ class Provider(AddressProvider):
         "Морська",
         "Морський",
         "Морський 2-й",
-        "Москвіна",
+        "Литавровий",
         "Москеті",
         "Мостовий",
         "Моторна",
@@ -1595,7 +1550,7 @@ class Provider(AddressProvider):
         "Нафтовиків 1-й",
         "Нафтовиків 2-й",
         "Нафтовиків 3-й",
-        "Нахімова",
+        "Миколи Кравченка",
         "Наявний 1-й",
         "Наявний 2-й",
         "Наявний 3-й",
@@ -1604,33 +1559,30 @@ class Provider(AddressProvider):
         "Наявний 6-й",
         "Наявний 7-й",
         "Небесної Сотні",
-        "Недєліна",
-        "Нежданової",
-        "Нежданової",
+        "Анатолія Бачинського",
+        "Заможна",
+        "Ромський",
         "Незалежності",
-        "Некрасова",
+        "Отонівський",
         "Немировича-Данченка",
         "Неплія",
         "Нерубайська",
         "Нескучна",
         "Нечипуренка",
         "Ніжинська",
-        "Нікітіна",
-        "Нова",
-        "Нова",
+        "Шполянська",
         "Нова",
         "Новаторів",
-        "Новгородська",
-        "Новгородський",
-        "Новгородський 2-й",
+        "Михайла Жука",
+        "Дворникова",
+        "Теофіла Фраєрмана",
         "Новий",
         "Новиков міст",
-        "Новикова",
-        "Новікова 2-га",
+        "Ірини Жиленко",
+        "Родоканакі",
         "Новобазарний",
         "Новоберегова",
-        "Новомосковська дорога",
-        "Новоселів",
+        "Чигиринська",
         "Новоселів",
         "Новосельского",
         "Новоукраїнський",
@@ -1639,7 +1591,6 @@ class Provider(AddressProvider):
         "Обільна",
         "Обільний 1-й",
         "Обільний 2-й",
-        "Оборони Ленінграду",
         "Обривиста",
         "Обсерваторний",
         "Овідіопольська",
@@ -1653,28 +1604,28 @@ class Provider(AddressProvider):
         "Озерна",
         "Окружна",
         "Олександра Блока",
-        "Олександра Вронського",
+        "Композитора Вербицького",
         "Олександра Кутузакія",
-        "Олександра Матросова",
-        "Олександра Невського",
-        "Олександра Невського 1-й",
-        "Олександра Невського 2-й",
-        "Олександра Невського 3-й",
-        "Олександра Невського 4-й",
-        "Олександра Невського 5-й",
-        "Олександра Стурдзи",
+        "Валерія Лобановського",
+        "Сергія Шелухина",
+        "Климовича",
+        "Чехівського",
+        "Василя Кричевського",
+        "Павла Чубинського",
+        "Майка Йогансена",
+        "Леоніда Осики",
         "Олександра Тимошенка",
-        "Олександрівський",
+        "Українських Героїв",
         "Олексіївська",
         "Ольгіївська",
         "Ольгіївський узвіз",
-        "Омська",
-        "Онезька",
+        "Василя Берладяну",
+        "Евлії Челебі",
         "Онілової",
         "Оранжерейний",
         "Орликова",
-        "Орловська",
-        "Орловський",
+        "Олешківська",
+        "Надії Пучковської",
         "Осипова",
         "Осіння",
         "Остапа Вишні",
@@ -1701,17 +1652,16 @@ class Provider(AddressProvider):
         "Паркова",
         "Парковий",
         "Партизанська",
-        "Партизанської Слави",
+        "Партизанської слави",
         "Парусна",
         "Пассіонарії",
         "Пастера",
         "Патріотична",
-        "Паустовського",
         "Педагогічна",
         "Педагогічний",
         "Пейзажна",
-        "Перемоги",
-        "Перемоги",
+        "Добровольців",
+        "Рятувальників",
         "Перепечка",
         "Пересипський міст",
         "Пересипська 1-ша",
@@ -1730,16 +1680,14 @@ class Provider(AddressProvider):
         "Перлинна",
         "Перша",
         "Перший Кришталевий",
-        "Першотравневий 1-й",
-        "Першотравневий 2-й",
-        "Першотравневий 3-й",
-        "Пестеля",
-        "Пестеля",
+        "Миколи Леонтовича",
+        "Саймона Літмана",
+        "Цукровий",
         "Петра Лещенка",
-        "Петрашевського",
+        "Леся Курбаса",
         "Пироговська",
         "Пироговський",
-        "Писарева",
+        "Бориса Едуардса",
         "Південна",
         "Південна дорога",
         "Південно-Санаторний",
@@ -1752,31 +1700,29 @@ class Provider(AddressProvider):
         "Пішонівська",
         "Планетна",
         "Платанова",
-        "Плієва",
+        "Бродська",
         "Пляжна",
         "Побратимів",
         "Подільська",
         "Поїзна",
         "Покровський",
-        "Ползунова 1-й",
-        "Ползунова 2-й",
-        "Політкаторжан",
+        "Буковинська",
+        "Хотинський",
         "Політкаторжан",
         "Полтавська",
         "Полуничний",
         "Польова",
-        "Польова",
         "Польовий 1-й",
         "Польська",
         "Польський узвіз",
         "Поперечний",
         "Посівна",
-        "Посмітного",
+        "Балтиморська",
         "Поштова",
         "Поштовий",
         "Преображенська",
         "Пресича Олександра",
-        "Пржевальського",
+        "Стрийський",
         "Прибережний",
         "Привозна",
         "Привокзальна",
@@ -1794,13 +1740,14 @@ class Provider(AddressProvider):
         "Проїзний 2-й",
         "Проїзний 3-й",
         "Прокатна",
-        "Пролетарський 3-й",
+        "Іони Отаманського",
+        "Географічний",
         "Промислова",
         "Промисловий",
         "Прорізна",
         "Прорізний",
         "Просвіти",
-        "Просьолочна",
+        "Путівна",
         "Проточний",
         "Професора Каришковського",
         "Професора Коровицького",
@@ -1809,12 +1756,13 @@ class Provider(AddressProvider):
         "Прохоровський",
         "Прохоровський",
         "Проценка",
-        "Псковська",
-        "Псковський",
-        "Пугачова",
+        "Почаївська",
+        "Опішнянський",
+        "Персикова",
         "Путьова",
-        "Пушкінська",
-        "ПшеничнаРадищева",
+        "Рози вітрів",
+        "Пшенична",
+        "Прилуцький",
         "Радіальна",
         "Радіальний",
         "Радіо",
@@ -1849,14 +1797,14 @@ class Provider(AddressProvider):
         "Розкидайлівська",
         "Розумовський 1-й",
         "Розумовський 2-й",
-        "Романа Кармена",
+        "Решата Аметова",
         "Романтиків",
         "Романтичний",
         "Ромашкова",
-        "Ростовська",
-        "Рощева",
+        "Маріупольська",
+        "Гайова",
         "Рульовий",
-        "Сабанєєв",
+        "Миколи Савича",
         "Сабанський",
         "Савицький",
         "Савранська",
@@ -1871,8 +1819,8 @@ class Provider(AddressProvider):
         "Садовий",
         "Садовського",
         "Саксаганського",
-        "Салтикова-Щедріна",
-        "Самарська",
+        "Пилипа Орлика",
+        "Обліпихова",
         "Самодіяльна",
         "Санаторний",
         "Санітарна",
@@ -1897,17 +1845,17 @@ class Provider(AddressProvider):
         "Середньофонтанська",
         "Середньофонтанський",
         "Середня",
-        "Сєрова",
+        "Сірожупанників",
         "Сєрогодського",
-        "Сєченова",
-        "Сибірська",
+        "Зої Бутенко",
+        "Поліська",
         "Сирітський",
         "Сирітський 2-й",
         "Сільська",
         "Сільськогосподарський",
         "Сімферопольська",
         "Сінна",
-        "Скворцова",
+        "Новопланівська",
         "Скидановська",
         "Скидановський узвіз",
         "Складська",
@@ -1918,14 +1866,14 @@ class Provider(AddressProvider):
         "Скрипковий",
         "Слави",
         "Слави",
-        "Слєпньова",
+        "Донорська",
         "Сливова",
         "Слобідська",
         "Слобідський узвіз",
         "Слов'янська",
         "Сміливий",
-        "Смоленська",
-        "Собінова",
+        "Почаївська",
+        "Павла Вірського",
         "Соборна",
         "Совіньйонівський",
         "Солонцюватий",
@@ -1939,15 +1887,14 @@ class Provider(AddressProvider):
         "Соляний 6-й",
         "Соляний 7-й",
         "Сонячна",
-        "Сонячна",
         "Сортувальна 1-ша",
         "Сортувальна 2-га",
         "Сосюри",
         "Софії Перовської",
         "Софіївська",
         "Соціальна",
-        "Спартаківська",
-        "Спартаківський",
+        "Бахчисарайська",
+        "Ярмарковий",
         "Спаський",
         "Спиридонівська",
         "Спортивна",
@@ -1963,20 +1910,20 @@ class Provider(AddressProvider):
         "Старопортофранківська",
         "Старорізнична",
         "Старосінна",
-        "Стахановський 4-й",
+        "Школярський",
         "Стельмаха",
         "Степана Олійника узвіз",
-        "Степана Разіна",
+        "Малинова",
         "Степна",
         "Степний 2-й",
         "Степова",
         "Стеценко",
-        "Стєклова",
+        "Томатна",
         "Стовпова",
         "Стороженка Олега",
         "Стражеска Миколи",
         "Строганов міст",
-        "Строганова",
+        "Максима Чайки",
         "Студена",
         "Студентський",
         "Студентський 1-й",
@@ -1984,16 +1931,15 @@ class Provider(AddressProvider):
         "Студентський 3-й",
         "Студентський 4-й",
         "Студентський 5-й",
-        "Суворовська",
+        "Петра Біциллі",
         "Суднобудівна",
         "Суднобудівний",
         "Сумська",
         "Сумський",
         "Суперфосфатна",
         "Супутників",
-        "Сурикова",
-        "Сурикова 1-й",
-        "Сурикова 2-й",
+        "Лірний",
+        "Бандурний",
         "Сухолиманна",
         "Східний",
         "Східний 1-й",
@@ -2003,39 +1949,31 @@ class Provider(AddressProvider):
         "Східчастий",
         "Сьома",
         "Таїрова",
-        "Таїрова",
         "Танкерна",
         "Танкістів",
         "Танфільєва",
         "Тарутинська",
         "Творча",
         "Текстильників",
-        "Теліги Олени",
+        "Олени Теліги",
         "Тепла",
         "Теплична",
         "Тепличний 1-й",
         "Тепличний 2-й",
-        "Терещенка Володимира",
+        "Володимира Терещенка",
         "Тетяни Тесс",
         "Технічний",
         "Тещин міст",
-        "Тимірязєва",
-        "Тимірязєва",
-        "Тимірязєва 3-й",
-        "Тимірязєва 4-й",
-        "Тимірязєва 5-й",
-        "Тираспольська",
+        "Айвазовського",
         "Тираспольська",
-        "Тираспольське",
         "Тиха",
         "Тіниста",
         "Тінистий",
-        "Тінистий",
         "Ткачова",
         "Товарний",
-        "Толбухіна",
-        "Толбухіна",
-        "Толбухіна",
+        "Трибуни героїв",
+        "Георгія Липського",
+        "Василя Данилевича",
         "Тополина",
         "Тополиний",
         "Топольського",
@@ -2052,18 +1990,17 @@ class Provider(AddressProvider):
         "Транспортна",
         "Траса Здоров'я",
         "Троїцька",
-        "Троїцького Миколи",
+        "Миколи Троїцького",
         "Тролейбусна",
         "Трояндова",
         "Трудова",
         "Трудовий",
-        "Трудових резервів",
-        "Тульська",
-        "Тульська",
+        "Олександра Білостінного",
+        "Героїв УПА",
         "Тупиковий",
         "Тупиковий 1-й",
         "Тупиковий 2-й",
-        "Тургенєва",
+        "Андрія Сови",
         "Туристська",
         "Туристський",
         "Тюльпанний",
@@ -2073,7 +2010,7 @@ class Provider(AddressProvider):
         "Український 1-й",
         "Український 2-й",
         "Український 3-й",
-        "Улітіна",
+        "Улицька",
         "Уманська",
         "Умова",
         "Університетський",
@@ -2083,13 +2020,13 @@ class Provider(AddressProvider):
         "Усатівська",
         "Успенська",
         "Успенський",
-        "Утьосова",
+        "Ніли Крюкової",
         "Училищна",
         "Учительський",
         "Учнівська",
-        "Ушакова",
+        "Багринова",
         "Ушинського",
-        "Уютна",
+        "Затишна",
         "Ф. Пішеніна",
         "Фабрична",
         "Фестивальний",
@@ -2125,23 +2062,18 @@ class Provider(AddressProvider):
         "Центральний аеропорт",
         "Церковна",
         "Цимлянська",
-        "Ціолковського",
-        "Чайковського",
-        "Чапаєва",
-        "Чапаєва",
-        "Чапаєва",
-        "Чапаєва 2-й",
-        "Черепанових",
-        "Черепанових 2-й",
+        "Йоганна Ансельма",
+        "Театральний",
+        "Барвінковий",
         "Черешнева",
         "Черкаська",
         "Чернишевського",
         "Чернівецький",
         "Чернігівська",
         "Чернігівський",
-        "Черняховського",
+        "Артура Савельєва",
         "Четверта",
-        "Чехова",
+        "Журавлина",
         "Чорноморка",
         "Чорноморська",
         "Чорноморський",
@@ -2168,23 +2100,19 @@ class Provider(AddressProvider):
         "Шебелінський",
         "Шевченка",
         "Шевченка парк",
-        "Шептицікого",
+        "Шептицького",
         "Шефська",
         "Шилова",
-        "Ширшова",
+        "В'ячеслава Липинського",
         "Ширяївський",
-        "Шишкіна",
-        "Шишкіна",
-        "Шишкіна 1-й",
-        "Шишкіна 2-й",
-        "Шишкіна 3-й",
+        "Незамаївська",
+        "Олександра Мурашка",
         "Шкільний",
         "Шкільний аеродром",
         "Шкіперська",
         "Шкодова гора",
         "Шовкуненка",
-        "Шовкуненка",
-        "Шолохова",
+        "Волокидіна",
         "Шоста",
         "Шостої 1-й",
         "Шостої 2-й",
@@ -2197,31 +2125,31 @@ class Provider(AddressProvider):
         "Щіпний",
         "Щоглова",
         "Щоголєва",
-        "Щукіна",
+        "Медовий",
         "Ювілейний 1-й",
         "Ювілейний 2-й",
         "Юннатів",
         "Юннатів 1-й",
         "Юннатів 2-й",
         "Юннатів 3-й",
-        "Юрженка Олександра",
+        "Олександра Юрженка",
         "Юрія Олеші",
         "Юрія Яновського",
         "Юхима Геллера",
         "Юхима Фесенка",
-        "Яблочкіної",
+        "Альтовий",
         "Яблунева",
         "Яблучна",
         "Якірний",
-        "Якутська",
+        "Ігоря Бедзая",
         "Ялинкова",
         "Ялинковий",
-        "Ямська",
+        "Ігоря Бедзая",
         "Ямчитського",
         "Ярморочна площа",
         "Яружний",
         "Ясна",
-        "Яхненка Семена",
+        "Семена Яхненка",
         "Яші Гордієнка",
     ]
 
diff --git a/faker/providers/color/ka_GE/__init__.py b/faker/providers/color/ka_GE/__init__.py
new file mode 100644
index 00000000..c1ed2236
--- /dev/null
+++ b/faker/providers/color/ka_GE/__init__.py
@@ -0,0 +1,92 @@
+from collections import OrderedDict
+
+from .. import Provider as ColorProvider
+
+localized = True
+
+
+class Provider(ColorProvider):
+    """Implement color provider for ``ka_GE`` locale."""
+
+    all_colors = OrderedDict(
+        (
+            ("ანტიკური თეთრი", "#FAEBD7"),
+            ("აკვამარინი", "#7FFFD4"),
+            ("ლურჯი", "#F0FFFF"),
+            ("ბეჟი", "#F5F5DC"),
+            ("შავი", "#000000"),
+            ("ცისფერი", "#0000FF"),
+            ("საზღვაო ლურჯი", "#8A2BE2"),
+            ("ყავისფერი", "#A52A2A"),
+            ("შოკოლადისფერი", "#D2691E"),
+            ("კორალისფერი", "#FF7F50"),
+            ("ვერცხლისფერი", "#6495ED"),
+            ("ჟოლოსფერი", "#DC143C"),
+            ("მუქი ლურჯი", "#00008B"),
+            ("მუქი ცისფერი", "#008B8B"),
+            ("მუქი ნაცრისფერი", "#A9A9A9"),
+            ("მუქი მწვანე", "#006400"),
+            ("მუქი ხაკისფერი", "#BDB76B"),
+            ("მუქი ნარინჯისფერი", "#FF8C00"),
+            ("მუქი წითელი", "#8B0000"),
+            ("მუქი ზღვისფერი", "#00CED1"),
+            ("მუქი იასამნისფერი", "#9400D3"),
+            ("მუქი ვარდისფერი", "#FF1493"),
+            ("მკვდარი ნაცრისფერი", "#696969"),
+            ("ფუქსია", "#FF00FF"),
+            ("ოქროსფერი", "#FFD700"),
+            ("ნაცრისფერი", "#808080"),
+            ("მწვანე", "#008000"),
+            ("ყვითელ-მწვანე", "#ADFF2F"),
+            ("ინტენსიური ვარდისფერი", "#FF69B4"),
+            ("ინდიგო", "#4B0082"),
+            ("სპილოს ძვალი", "#FFFFF0"),
+            ("ხაკისფერი", "#F0E68C"),
+            ("ლავანდისფერი ვარდისფერი", "#FFF0F5"),
+            ("ღია ლურჯი", "#ADD8E6"),
+            ("ღია ცისფერი", "#E0FFFF"),
+            ("ღია ნაცრისფერი", "#D3D3D3"),
+            ("ღია მწვანე", "#90EE90"),
+            ("ღია ვარდისფერი", "#FFB6C1"),
+            ("ღია ცისფერი", "#87CEFA"),
+            ("ღია ყვითელი", "#FFFFE0"),
+            ("მეწამული", "#800000"),
+            ("ნარინჯისფერი", "#FFA500"),
+            ("ნარინჯისფერი წითელი", "#FF4500"),
+            ("ღია მწვანე", "#98FB98"),
+            ("ღია ზღვისფერი", "#AFEEEE"),
+            ("ვარდისფერი", "#FFC0CB"),
+            ("ქლიავისფერი", "#DDA0DD"),
+            ("იასამნისფერი", "#800080"),
+            ("წითელი", "#FF0000"),
+            ("ზღვისფერი", "#2E8B57"),
+            ("ვერცხლისფერი", "#C0C0C0"),
+            ("თურქული ლურჯი", "#40E0D0"),
+            ("იისფერი", "#EE82EE"),
+            ("თეთრი", "#FFFFFF"),
+            ("ყვითელი", "#FFFF00"),
+            ("ყვითელ-მწვანე", "#9ACD32"),
+            ("ბრინჯაოსფერი", "#CD7F32"),
+            ("მსხლისფერი", "#D1E231"),
+            ("თითბერისფერი", "#D5A642"),
+            ("მანდარინისფერი", "#FF8800"),
+            ("ფიჭვისფერი", "#01796F"),
+            ("ზეთისხილისფერი", "#808000"),
+        )
+    )
+
+    safe_colors = (
+        "შავი",
+        "მუქი წითელი",
+        "მწვანე",
+        "ხაკისფერი",
+        "იასამნისფერი",
+        "თურმანჯურა",
+        "ცაცხვისფერი",
+        "ცისფერი",
+        "ვერცხლისფერი",
+        "ნაცრისფერი",
+        "ყვითელი",
+        "ფუქსია",
+        "თეთრი",
+    )
diff --git a/faker/providers/date_time/gu_IN/__init__.py b/faker/providers/date_time/gu_IN/__init__.py
new file mode 100644
index 00000000..aab4d02c
--- /dev/null
+++ b/faker/providers/date_time/gu_IN/__init__.py
@@ -0,0 +1,76 @@
+from .. import Provider as DateTimeProvider
+
+
+class Provider(DateTimeProvider):
+
+    DAY_NAMES = {
+        "0": "Ravivar",
+        "1": "Somvar",
+        "2": "Mangalvar",
+        "3": "Budhvar",
+        "4": "Guruvar",
+        "5": "Shukravar",
+        "6": "Shanivar",
+    }
+
+    DAY_NAMES_IN_GUJARATI = {
+        "0": "રવિવાર",
+        "1": "સોમવાર",
+        "2": "મંગળવાર",
+        "3": "બુધવાર",
+        "4": "ગુરુવાર",
+        "5": "શુક્રવાર",
+        "6": "શનિવાર",
+    }
+
+    MONTH_NAMES = {
+        "01": "Kartak",
+        "02": "Magshar",
+        "03": "Posh",
+        "04": "Maha",
+        "05": "Fagan",
+        "06": "Chaitra",
+        "07": "Vaishakh",
+        "08": "Jeth",
+        "09": "Ashadh",
+        "10": "Shravan",
+        "11": "Bhadarvo",
+        "12": "Aaso",
+    }
+
+    MONTH_NAMES_IN_GUJARATI = {
+        "01": "કારતક",
+        "02": "માગશર",
+        "03": "પોષ",
+        "04": "મહા",
+        "05": "ફાગણ",
+        "06": "ચૈત્ર",
+        "07": "વૈશાખ",
+        "08": "જેઠ",
+        "09": "અષાઢ",
+        "10": "શ્રાવણ",
+        "11": "ભાદરવો",
+        "12": "આસો",
+    }
+
+    def day_of_week(self) -> str:
+        day = self.date("%w")
+        return self.DAY_NAMES[day]
+
+    def month_name(self) -> str:
+        month = self.month()
+        return self.MONTH_NAMES[month]
+
+    def day_of_week_in_guj(self) -> str:
+        """Returns day of the week in `Gujarati`"""
+        day = self.date("%w")
+        return self.DAY_NAMES_IN_GUJARATI[day]
+
+    def month_name_in_guj(self) -> str:
+        """Returns month name in `Gujarati`"""
+        month = self.month()
+        return self.MONTH_NAMES_IN_GUJARATI[month]
+
+    def month_in_guj(self) -> str:
+        """Returns month name in `Gujarati`"""
+        return self.month_name()
diff --git a/faker/providers/date_time/ka_GE/__init__.py b/faker/providers/date_time/ka_GE/__init__.py
new file mode 100644
index 00000000..dff9764d
--- /dev/null
+++ b/faker/providers/date_time/ka_GE/__init__.py
@@ -0,0 +1,37 @@
+from .. import Provider as DateTimeProvider
+
+
+class Provider(DateTimeProvider):
+    # Sourse: https://www.ganmarteba.ge/
+    DAY_NAMES = {
+        "0": "კვირა",
+        "1": "ორშაბათი",
+        "2": "სამშაბათი",
+        "3": "ოთხშაბათი",
+        "4": "ხუთშაბათი",
+        "5": "პარასკევი",
+        "6": "შაბათი",
+    }
+
+    MONTH_NAMES = {
+        "01": "იანვარი",
+        "02": "თებერვალი",
+        "03": "მარტი",
+        "04": "აპრილი",
+        "05": "მაისი",
+        "06": "ივნისი",
+        "07": "ივლისი",
+        "08": "აგვისტო",
+        "09": "სექტემბერი",
+        "10": "ოქტომბერი",
+        "11": "ნოემბერი",
+        "12": "დეკემბერი",
+    }
+
+    def day_of_week(self):
+        day = self.date("%w")
+        return self.DAY_NAMES[day]
+
+    def month_name(self):
+        month = self.month()
+        return self.MONTH_NAMES[month]
diff --git a/faker/providers/job/ka_GE/__init__.py b/faker/providers/job/ka_GE/__init__.py
new file mode 100644
index 00000000..e98bdd56
--- /dev/null
+++ b/faker/providers/job/ka_GE/__init__.py
@@ -0,0 +1,392 @@
+from .. import Provider as BaseProvider
+
+
+class Provider(BaseProvider):
+    # Sourse: https://www.ganmarteba.ge/
+    jobs = [
+        "ავიადისპეტჩერი",
+        "ამწე ოპერატორი",
+        "ავიატექნიკოსი",
+        "ავიაციის ტექნიკოსი",
+        "აეროპლანის მფრინავი",
+        "აკუსტიკის ინჟინერი",
+        "აღმზრდელი",
+        "აღმოსავლეთმცოდნე",
+        "ავტოელექტრიკოსი",
+        "აგრონომი",
+        "არტისტი",
+        "აგრონომ-ნიადაგმცოდნე",
+        "ადვოკატი",
+        "აკუმულატორების სპეციალისტი",
+        "აქტუარი",
+        "ალერგოლოგი",
+        "ანალიტიკოსი",
+        "ანდროლოგი",
+        "ანთროპოლოგი",
+        "არტილერისტი",
+        "არქეოლოგი",
+        "არქივარიუსი",
+        "არქიტექტორი",
+        "ასტრონომი",
+        "ასტрофიზიკოსი",
+        "ასტროქიმიკოსი",
+        "ბაქტერიოლოგი",
+        "ბალერინა",
+        "ბალეტმაისტერი",
+        "ბანკირი",
+        "ბარმენი",
+        "ბატალერი",
+        "ბიბლიოთეკარი",
+        "ბიბლიოთეკმცოდნე",
+        "ბიონჟინერი",
+        "ბიოლოგი",
+        "ბიოფიზიკოსი",
+        "ბიოქიმიკოსი",
+        "ბლოგერი",
+        "ბორტ-ინჟინერი",
+        "ბორტ-მექანიკოსი",
+        "ბორტ-რადისტი",
+        "ბოტანიკოსი",
+        "ბრეიდერი",
+        "ბროკერი",
+        "პურის მცხობელი",
+        "ბულდოზერისტი",
+        "ბუღალტერი",
+        "გასტროენტეროლოგი",
+        "გემის კაპიტანი",
+        "გაუპვახტის უფროსი",
+        "გამომძიებელი",
+        "გალვანიკური ინჟინერი",
+        "გამომცემელი",
+        "გამომგონებელი",
+        "გენეტიკოსი",
+        "გეოგრაფი",
+        "გეოდეზისტი",
+        "გამყიდველი",
+        "გეოლოგი",
+        "გინეკოლოგი",
+        "გიტარისტი",
+        "გლაციოლოგი",
+        "გრანატომტყორცნელი",
+        "გრეიდერის ოპერატორი",
+        "გრენადერი",
+        "გრიმიორი",
+        "გამომცემელი რედაქტორი",
+        "დიზაინის ინჟინერი",
+        "დეკანი",
+        "დეკორატორი",
+        "დურგალი",
+        "დერმატოლოგი",
+        "დეტექტივი",
+        "დეფექტოლოგი",
+        "დიჯეი",
+        "დიეტოლოგი",
+        "დიზაინერი",
+        "დიზაინერი-კონსტრუქტორი",
+        "დიქტორი",
+        "დილერი",
+        "დიპლომატი",
+        "დიპლომატიური მუშაკი",
+        "დირიჟორი",
+        "დრეპერი",
+        "დამლაგებელი",
+        "ეკოლოგი",
+        "ეკონომისტი",
+        "ექსპედიტორი",
+        "ექიმი ულტრაბგერითი დიაგნოსტიკის",
+        "ეგვიპტოლოგი",
+        "ექსპერტ-კრიმინალისტი",
+        "ელექტრიკოსი",
+        "ელექტროინჟინერი",
+        "ენერგეტიკის ინჟინერი",
+        "ენდოკრინოლოგი",
+        "ენდოსკოპისტი",
+        "ენტომოლოგი",
+        "ეპიდემიოლოგი",
+        "ეფერენტოლოგი",
+        "ვებ-ინტეგრატორი",
+        "ვებ-მასტერი",
+        "ვებ-პროგრამისტი",
+        "ვეტერინარი",
+        "ვიზაჟისტი",
+        "ვაზის მეღვინე",
+        "ვირუსოლოგი",
+        "ვოკალისტი",
+        "ზეინკალი",
+        "ზოოლოგი",
+        "თეოლოგი",
+        "თერაპევტი",
+        "თერიოლოგი",
+        "თიფლოპედაგოგი",
+        "თორაკალური ქირურგი",
+        "თარჯიმანი",
+        "ილუსტრატორი",
+        "იმიჯმეიკერი",
+        "იმუნოლოგი",
+        "იუველირი",
+        "იურიდიული მრჩეველი",
+        "იურისტი",
+        "ინჟინერი",
+        "ინკასატორი",
+        "ინტენდანტი",
+        "ინფექციონისტი",
+        "ისტორიკოსი",
+        "იქთიოლოგი",
+        "კომპიუტერული ინჟინერი",
+        "კინოსა და ტელევიზიის ოპერატორი",
+        "კარდიოლოგი",
+        "კარდიოქირურგი",
+        "კასკადიორი",
+        "კომპიუტერის ოპერატორი",
+        "კასირი",
+        "კინოლოგი",
+        "კრიპტოგრაფი",
+        "კინომექანიკოსი",
+        "კინოოპერატორი",
+        "კინორეჟისორი",
+        "კლიენტთა ურთიერთობის მენეჯერი",
+        "კოდერი",
+        "კომენდანტი",
+        "კომერციული დირექტორი",
+        "კომპოზიტორი",
+        "კონდიტერი",
+        "კონდუქტორი",
+        "კონტენტის მენეჯერი",
+        "კოპირაიტერი",
+        "კორექტორ-მთავარი",
+        "კორექტორი",
+        "კოსმეტოლოგი",
+        "კოსმონავტი",
+        "კრიპტოზოოლოგი",
+        "კრიტიკოსი",
+        "კულტუროლოგი",
+        "ლაბორანტი",
+        "ლიმფოლოგი",
+        "ლინგვისტი",
+        "ლოგოპედი",
+        "ლოცმანი",
+        "ლაბორანტი-ინჟინერი",
+        "ლოკომოტივის მძღოლი",
+        "ლექტორი",
+        "მალარი",
+        "მამმოლოგი",
+        "მხატვარი",
+        "მცხობელი",
+        "მანუალისტი",
+        "მარკეტოლოგი",
+        "მასაჟისტი",
+        "მწყემსი",
+        "მანიკიურის ოსტატი",
+        "მათემატიკოსი",
+        "მატარებლის მძღოლი",
+        "მცენარეთა სპეციალისტი",
+        "მეწარმე",
+        "მექანიზაციის ინჟინერი",
+        "მოცეკვავე",
+        "მძღოლი",
+        "მსახიობი",
+        "მეანე",
+        "მესაზღვრე",
+        "მეხანძრე",
+        "მეხორბლე",
+        "მიმტანი",
+        "მეფუტკრე",
+        "მწერალი",
+        "მენეჯერი",
+        "მეტალურგი",
+        "მეტეოროლოგი",
+        "მჭედელი",
+        "მებაჟე",
+        "მექანიკოსი",
+        "მეცხოველეობის სპეციალისტი",
+        "მეტყევე-ინჟინერი",
+        "მედესანტე",
+        "მექანიკის ინჟინერი",
+        "მცენარეთა დაცვის აგრონომი",
+        "მკერავი",
+        "მტვირთავი",
+        "მიკრობიოლოგი",
+        "მინისტრი",
+        "მოდელი",
+        "მოდელიერი",
+        "მებაღე",
+        "მასწავლებელი",
+        "მაღაროელი",
+        "მეცნიერი",
+        "მეწაღე",
+        "მოქანდაკე",
+        "მთამსვლელი",
+        "მყვინთავი",
+        "მეურნე",
+        "მონტაჟნიკი",
+        "მსაჯი",
+        "მონაცემთა ბაზის ადმინისტრატორი",
+        "მუსიკოსი",
+        "მშენებელი",
+        "ნარკოლოგი",
+        "ნევროლოგი",
+        "ნევროპათოლოგი",
+        "ნეიროქირურგი",
+        "ნეონატოლოგი",
+        "ნეფროლოგი",
+        "ნოტარიუსი",
+        "ოკეანოლოგი",
+        "ონკოლოგი",
+        "ორნითოლოგი",
+        "ორთოდონტი",
+        "ორთოპედი",
+        "ოტორინოლარინგოლოგი",
+        "ოფთალმოლოგი",
+        "ოჯახის ექიმი",
+        "პილოტი",
+        "პალეონტოლოგი",
+        "პედიკიურის ოსტატი",
+        "პარფიუმერი",
+        "პასტორალისტი",
+        "პათოლოგანატომი",
+        "პედაგოგი",
+        "პედიატრი",
+        "პლასტიკური ქირურგი",
+        "პოლიტოლოგი",
+        "პოლიციელი",
+        "პოეტი",
+        "პროგრამისტი",
+        "პროდიუსერი",
+        "პირადი მცველი",
+        "პროქტოლოგი",
+        "პროფესიული პათოლოგი",
+        "პულმონოლოგი",
+        "ჟურნალისტი",
+        "რეკლამის დიზაინერი",
+        "რადიოლოგი",
+        "რადიომექანიკოსი",
+        "რადიოტელეფონისტი",
+        "რადისტი",
+        "რადიოლოკაციური სისტემის ოპერატორი",
+        "რეანიმატოლოგი",
+        "რევმატოლოგი",
+        "რედაქტორი",
+        "რეჟისორი",
+        "რელიგიური მეცნიერი",
+        "რენტგენოლოგი",
+        "რესტავრატორი",
+        "რეფლექსოთერაპევტი",
+        "რიხტოვშიკი",
+        "რობოტოტექნიკოსი",
+        "სანიტარი",
+        "სანტექნიკოსი",
+        "საპიორი",
+        "სასულიერო პირი",
+        "სექსოლოგი",
+        "სექსოპათოლოგი",
+        "სერპენტოლოგი",
+        "სისტემური ადმინისტრატორი",
+        "სნაიპერი",
+        "სომელიე",
+        "სასაქონლო ექსპერტი",
+        "სპილენძის მჭედელი",
+        "სომნოლოგი",
+        "სოციოლოგი",
+        "სპორტული ექიმი",
+        "სახელმწიფო აღმასრულებელი",
+        "სამხედრო ქირურგი",
+        "სამხედრო მოსამსახურე",
+        "სამხედრო გამომძიებელი",
+        "სამხედრო კონსულტანტი",
+        "სამხედრო მთარგმნელი",
+        "სამხედრო პოლიციელი",
+        "საგადასახადო ინსპექტორი",
+        "საწყობის უფროსი",
+        "სამხედრო პროკურორი",
+        "სამხედრო მოსამართლე",
+        "სამედიცინო და სოციალური ექსპერტიზის ექიმი",
+        "სამხედრო ინჟინერი",
+        "საკრედიტო კონსულტანტი",
+        "სამხედრო იურისტი",
+        "სასწრაფო დახმარების ექიმი",
+        "სტიუარდი",
+        "სტომატოლოგი",
+        "სამართალმცოდნე",
+        "სადაზღვევო აგენტი",
+        "სასამართლო აღსრულების სპეციალისტი",
+        "სტილისტი",
+        "სამხედრო ორკესტრის უფროსი",
+        "სურდოლოგი",
+        "სურდოპედაგოგი",
+        "სცენარისტი",
+        "სისტემატიკის ინჟინერი",
+        "სამშენებლო ინჟინერი",
+        "ტაქსის მძღოლი",
+        "ტალმანი",
+        "ტანატოლოგი",
+        "ტანკისტი",
+        "ტატუს ოსტატი",
+        "ტელეგრაფისტი",
+        "ტელეჟურნალისტი",
+        "ტელევიზიის ოსტატი",
+        "ტესტირების სპეციალისტი",
+        "ტექნიკოსი",
+        "ტექნოლოგი",
+        "ტიპოგრაფი",
+        "ტექნოლოგიური ინჟინერი",
+        "ტოქსიკოლოგი",
+        "ტოპოგრაფი",
+        "ტრავმატოლოგი",
+        "ტრაქტორისტი",
+        "ტრანსფუზიოლოგი",
+        "ტრედერი",
+        "ტრენდ-ვოჩერი",
+        "უროლოგი",
+        "უმუშევარი",
+        "უსაფრთხოების ტექნიკის ინჟინერი",
+        "უჯრედული ტექნოლოგიების სპეციალისტი",
+        "ფიზიკის ინჟინერი",
+        "ფოსტალიონი",
+        "ფსიქიატრი",
+        "ფარმაცევტი",
+        "ფიზიკოსი",
+        "ფიზიოთერაპევტი",
+        "ფილოლოგი",
+        "ფილოსოფოსი",
+        "ფინანსისტი",
+        "ფლებოლოგი",
+        "ფლორისტი",
+        "ფოტოგრაფი",
+        "ფოტომოდელი",
+        "ფურაჟირი",
+        "ფუტუროლოგი",
+        "ფოლადის მწარმოებელი",
+        "ფსიქონევროპათოლოგი",
+        "ფუნქციური დიაგნოსტიკის ექიმი",
+        "ფსიქოთერაპევტი",
+        "ფსიქოლოგი",
+        "ქვისმთლელი",
+        "ქიმიის ინჟინერი",
+        "ქიმიკოსი",
+        "ქიმიკოს-ტექნოლოგი",
+        "ქირურგი",
+        "ქორეოგრაფი",
+        "ქოლცენტრის ოპერატორი",
+        "ქორწილების ორგანიზატორი",
+        "ქვაფენილი",
+        "ქუჩის დამლაგებელი",
+        "ყველის მწარმოებელი",
+        "შტაბის უფროსი",
+        "შემკრებავი",
+        "შემდუღებელი",
+        "ცხვრის მჭრელი სპეციალისტი",
+        "ცირკის არტისტი",
+        "ცხენმშენებელი",
+        "ციხის ზედამხედველი",
+        "ძიძა",
+        "ხარატი",
+        "ხმის ინჟინერი",
+        "ხელოვნებათმცოდნე",
+        "ჯალათი",
+        "ჰემატოლოგი",
+        "ჰეპატოლოგი",
+        "ჰიდროლოგი",
+        "ჰომეოპათი",
+        "ჰირუდოთერაპევტი",
+        "ჰიდრავლიკის ინჟინერი",
+    ]
diff --git a/faker/providers/misc/__init__.py b/faker/providers/misc/__init__.py
index 240249cb..287c3065 100644
--- a/faker/providers/misc/__init__.py
+++ b/faker/providers/misc/__init__.py
@@ -11,6 +11,8 @@ import zipfile
 
 from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Tuple, Type, Union
 
+from typing_extensions import TypeAlias
+
 from faker.exceptions import UnsupportedFeature
 
 from .. import BaseProvider
@@ -21,6 +23,10 @@ localized = True
 csv.register_dialect("faker-csv", csv.excel, quoting=csv.QUOTE_ALL)
 
 
+ColumnSpec: TypeAlias = Union[Tuple[int, str], Tuple[int, str, Dict[str, Any]]]
+DataColumns: TypeAlias = List[ColumnSpec]
+
+
 class Provider(BaseProvider):
     def boolean(self, chance_of_getting_true: int = 50) -> bool:
         """Generate a random boolean value based on ``chance_of_getting_true``.
@@ -643,7 +649,7 @@ class Provider(BaseProvider):
         _dict = {self.generator.word(): _dict}
         return xmltodict.unparse(_dict)
 
-    def fixed_width(self, data_columns: Optional[list] = None, num_rows: int = 10, align: str = "left") -> str:
+    def fixed_width(self, data_columns: Optional[DataColumns] = None, num_rows: int = 10, align: str = "left") -> str:
         """
         Generate random fixed width values.
 
@@ -683,7 +689,8 @@ class Provider(BaseProvider):
             (20, "name"),
             (3, "pyint", {"max_value": 20}),
         ]
-        data_columns = data_columns if data_columns else default_data_columns
+        if data_columns is None:
+            data_columns: DataColumns = default_data_columns  # type: ignore
         align_map = {
             "left": "<",
             "middle": "^",
@@ -694,7 +701,7 @@ class Provider(BaseProvider):
         for _ in range(num_rows):
             row = []
 
-            for width, definition, *arguments in data_columns:
+            for width, definition, *arguments in data_columns:  # type: ignore
                 kwargs = arguments[0] if arguments else {}
 
                 if not isinstance(kwargs, dict):
diff --git a/faker/providers/passport/__init__.py b/faker/providers/passport/__init__.py
index 0641ed71..31f14ed3 100644
--- a/faker/providers/passport/__init__.py
+++ b/faker/providers/passport/__init__.py
@@ -4,6 +4,8 @@ import re
 from string import ascii_uppercase
 from typing import Tuple
 
+from faker.typing import SexLiteral
+
 from .. import BaseProvider, ElementsType
 
 localized = True
@@ -19,7 +21,7 @@ class Provider(BaseProvider):
         birthday = self.generator.date_of_birth()
         return birthday
 
-    def passport_owner(self, gender: str = "X") -> Tuple[str, str]:
+    def passport_owner(self, gender: SexLiteral = "X") -> Tuple[str, str]:
         """Generate a given_name and surname for a passport owner
         The ``gender`` argument is the gender marker of a passport owner, which is a one character string
         that is either male, female, or non-binary.
diff --git a/faker/providers/passport/en_US/__init__.py b/faker/providers/passport/en_US/__init__.py
index b0afb53c..419eac8a 100644
--- a/faker/providers/passport/en_US/__init__.py
+++ b/faker/providers/passport/en_US/__init__.py
@@ -3,6 +3,8 @@ import random
 from datetime import date, timedelta
 from typing import Tuple
 
+from faker.typing import SexLiteral
+
 from .. import Provider as PassportProvider
 
 
@@ -64,7 +66,7 @@ class Provider(PassportProvider):
         expiry_date_format = expiry_date.strftime("%d ") + expiry_date.strftime("%b ") + expiry_date.strftime("%Y")
         return birth_date, issue_date_format, expiry_date_format
 
-    def passport_gender(self, seed: int = 0) -> str:
+    def passport_gender(self, seed: int = 0) -> SexLiteral:
         """Generates a string representing the gender displayed on a passport
 
         Sources:
@@ -75,7 +77,7 @@ class Provider(PassportProvider):
             random.seed(seed)
 
         genders = ["M", "F", "X"]
-        gender = random.choices(genders, weights=[0.493, 0.493, 0.014], k=1)[0]
+        gender: SexLiteral = random.choices(genders, weights=[0.493, 0.493, 0.014], k=1)[0]  # type: ignore
         return gender
 
     def passport_full(self) -> str:
diff --git a/faker/providers/passport/ru_RU/__init__.py b/faker/providers/passport/ru_RU/__init__.py
new file mode 100644
index 00000000..e29ecad8
--- /dev/null
+++ b/faker/providers/passport/ru_RU/__init__.py
@@ -0,0 +1,11 @@
+from typing import Tuple
+
+from faker.typing import SexLiteral
+
+from .. import Provider as PassportProvider
+
+
+class Provider(PassportProvider):
+    def passport_owner(self, gender: SexLiteral = "M") -> Tuple[str, str]:
+        given_name, surname = super().passport_owner(gender)
+        return surname, given_name
diff --git a/faker/providers/person/gu_IN/__init__.py b/faker/providers/person/gu_IN/__init__.py
new file mode 100644
index 00000000..fffd4aa0
--- /dev/null
+++ b/faker/providers/person/gu_IN/__init__.py
@@ -0,0 +1,157 @@
+from .. import Provider as PersonProvider
+
+
+class Provider(PersonProvider):
+
+    formats_male = (
+        "{{first_name_male}} {{last_name}}",
+        "{{prefix_male}} {{first_name_male}} {{last_name}}",
+    )
+
+    formats_female = (
+        "{{first_name_female}} {{last_name}}",
+        "{{prefix_female}} {{first_name_female}} {{last_name}}",
+    )
+
+    formats = (
+        "{{first_name}} {{last_name}}",
+        "{{prefix}} {{first_name}} {{last_name}}",
+    )
+
+    # names taken from https://www.behindthename.com/names/gender/feminine/usage/gujarati
+    first_names_female = (
+        "અંકિતા",
+        "અવની",
+        "હીરા",
+        "કાજલ",
+        "કિરણ",
+        "નેહા",
+        "નિશા",
+        "પૂજા",
+        "પ્રાચી",
+        "પ્રીતિ",
+        "પ્રીતિ",
+        "પૂજા",
+        "રચના",
+        "રાધીકા",
+        "શ્રેયા",
+        "શ્વેતા",
+        "સોનલ",
+        "તન્વી",
+        "તેજલ",
+        "ઉર્વી",
+        "વર્ષા",
+    )
+
+    # names taken from https://www.behindthename.com/names/gender/masculine/usage/gujarati
+    first_names_male = (
+        "અભિષેક",
+        "અજય",
+        "અક્ષય",
+        "આનંદ",
+        "અનિલ",
+        "અંકિત",
+        "અર્જુન",
+        "અરુણ",
+        "આશિષ",
+        "અશોક",
+        "ભારત",
+        "બ્રિજેશ",
+        "ચેતન",
+        "ચિરાગ",
+        "દર્શન",
+        "દીપા",
+        "દીપક",
+        "ધવલ",
+        "દિલીપ",
+        "દિનેશ",
+        "દીપા",
+        "દીપક",
+        "હરીશ",
+        "હર્ષ",
+        "હર્ષલ",
+        "હીરા",
+        "જગદીશ",
+        "જય",
+        "જયેશ",
+        "જિતેન્દ્ર",
+        "કાજલ",
+        "કમલ",
+        "કરણ",
+        "કિરણ",
+        "કિશન",
+        "કૃષ્ણ",
+        "કુમાર",
+        "કુનાલ",
+        "મહેન્દ્ર",
+        "મહેશ",
+        "મનોજ",
+        "મયૂર",
+        "મિતુલ",
+        "મુકેશ",
+        "નરેન્દ્ર",
+        "નીરજ",
+        "નિખિલ",
+        "નીરજ",
+        "નીરવ",
+        "નિશાંત",
+        "નિતિન",
+        "પંકજ",
+        "પાર્થ",
+        "પ્રકાશ",
+        "પ્રણવ",
+        "પ્રતિક",
+        "પ્રતિક",
+        "પ્રવીણ",
+        "પ્રવીણ",
+        "રાહુલ",
+        "રાજ",
+        "રાજેન્દ્ર",
+        "રાજેશ",
+        "રાકેશ",
+        "રમેશ",
+        "રવિ",
+        "રોહિત",
+        "સચિન",
+        "સમીર",
+        "સમીર",
+        "સંદિપ",
+        "સંદિપ",
+        "સંજય",
+        "સંજીવ",
+        "સંજીવ",
+        "શેખર",
+        "સિદ્ધાર્થ",
+        "સુભાષ",
+        "સુનીલ",
+        "સૂરજ",
+        "તુષાર",
+        "વસંત",
+        "વિક્રમ",
+        "વિપુલ",
+        "વિરાજ",
+        "વિશાલ",
+        "વિવેક",
+        "યશ",
+    )
+
+    first_names = first_names_female + first_names_male
+
+    # last names taken from https://surnames.behindthename.com/names/usage/gujarati
+    last_names = (
+        "ચૌધરી",
+        "ચૌધરી",
+        "ગઢવી",
+        "ગુપ્તા",
+        "જૈન",
+        "જોષી",
+        "કુમાર",
+        "પટેલ",
+        "શર્મા",
+    )
+
+    prefixes_female = ("શ્રીમતી", "કુમારી")
+
+    prefixes_male = ("શ્રી", "શ્રીમન")
+
+    prefixes = prefixes_female + prefixes_male
diff --git a/faker/providers/person/hi_IN/__init__.py b/faker/providers/person/hi_IN/__init__.py
index d5aebad4..9937fc82 100644
--- a/faker/providers/person/hi_IN/__init__.py
+++ b/faker/providers/person/hi_IN/__init__.py
@@ -2,239 +2,524 @@ from .. import Provider as PersonProvider
 
 
 class Provider(PersonProvider):
+
+    formats_male = (
+        "{{first_name_male}} {{last_name}}",
+        "{{prefix_male}} {{first_name_male}} {{last_name}}",
+        "{{first_name_male}} {{last_name}}{{suffix}}",
+        "{{prefix}} {{first_name_male}} {{last_name}}",
+    )
+    formats_female = (
+        "{{first_name_female}} {{last_name}}",
+        "{{prefix_female}} {{first_name_female}} {{last_name}}",
+        "{{first_name_female}} {{last_name}}{{suffix}}",
+        "{{prefix}} {{first_name_female}} {{last_name}}",
+    )
+
     formats = (
         "{{first_name}} {{last_name}}",
-        "{{first_name}} {{last_name}}",
-        "{{last_name}}, {{first_name}}",
+        "{{prefix}} {{first_name}} {{last_name}}",
+        "{{first_name}} {{last_name}}{{suffix}}",
     )
 
-    # First 20 names from here
-    # https://www.babycenter.in/l25020672/top-20-indian-boys-names-of-2016-photos
-    # Next 20 names from here
-    # https://www.babycenter.in/l25020674/top-20-indian-girls-names-of-2016-photos
-    first_names = (
-        "मुहम्मद",
-        "आरव",
-        "अर्जुन",
-        "रायन",
-        "आद्विक",
-        "अथर्व",
-        "रेयांश",
-        "अयान",
-        "विहान",
-        "साई",
-        "अद्वैत",
-        "शौर्य",
-        "विआन",
-        "आरुष",
-        "इशान",
-        "अयांश",
-        "पार्थ",
-        "देन्यल",
-        "किआन",
-        "विवान",
-        "आद्या",
-        "अनन्या",
-        "शनाया",
-        "फ़ातिमा",
-        "श्री",
-        "अनाया",
-        "अनिका",
-        "मायरा",
-        "इनाया",
-        "अमायरा",
-        "आन्वी",
-        "स्वरा",
-        "ज़ारा",
-        "मरियम",
-        "आराध्या",
-        "तन्वी",
-        "दीया",
-        "अद्विका",
-        "ईवा",
-        "आव्या",
+    # http://www.20000-names.com/male_hindi_names.htm
+    first_names_male = (
         "अभय",
         "आदित्य",
         "अजित",
+        "आकाङ्क्षा",
+        "अकबर",
         "अखिल",
         "अमर",
+        "अमित",
+        "अमृत",
         "आनन्द",
+        "अनन्‍त",
+        "अनिल",
+        "अनिरुद्ध",
+        "अनिश",
         "अंकुर",
+        "अनुज",
         "अनुपम",
+        "अरविन्द",
+        "अर्जुन",
+        "अरुण",
+        "अरुणा",
+        "असीम",
         "अशोक",
+        "बल",
+        "बलदेव",
+        "बलराम",
+        "भारत",
+        "ब्रह्मा",
+        "बृजेश",
+        "चण्ड",
         "चन्दना",
+        "चन्द्रकान्त",
+        "दामोदर",
+        "दर्शन",
+        "दयाराम",
+        "देवदान",
+        "दीपक",
+        "देवदान",
+        "देवदास",
+        "देवराज",
+        "धनञ्जय",
+        "धवल",
+        "दिलीप",
+        "दिनेश",
+        "दीपक",
+        "दिलीप",
         "गणेश",
         "गौतम",
+        "गोपाल",
+        "गोतम",
         "गोविंदा",
+        "गुलज़ार",
         "हनुमान्",
+        "हरेन्द्र",
+        "हरि",
+        "हरीश",
+        "हर्श",
+        "हर्शद",
+        "हर्शल",
+        "इला",
+        "इन्द्र",
         "इन्द्रजित",
         "ईश",
         "जगन्नाथ",
         "जगदीश",
+        "जगजीत",
         "जयदेव",
+        "ज़स्विन्देर्",
+        "जय",
+        "जयन्त",
+        "जयेन्द्र",
         "जितेन्द्र",
+        "जौहर",
+        "ज्योतिष",
         "कैलाश",
         "कालिदास",
+        "काम",
+        "कमल",
         "कम्बोज",
+        "कपिल",
+        "कर्ण",
+        "ख़ान",
         "किरण",
+        "कशोर",
+        "कृष्ण",
+        "कुमार",
+        "कुणाल",
+        "लक्ष्मण",
+        "लाल",
         "ललित",
+        "लोचन",
+        "माधव",
+        "मधुकर",
+        "महात्मा",
+        "महावीर",
+        "महेन्द्रा",
         "मानदीप",
+        "मनीश",
+        "मणि",
+        "मणीन्द्र",
+        "मनीश",
+        "मञ्जुनाथ",
         "मोहन",
         "मुकेश",
-        "नरेन्द्र",
+        "नंद",
         "नारायण",
+        "नरेन्द्र",
+        "नवीन",
         "निखिल",
+        "नीरव",
+        "िनशा",
+        "ओम",
+        "पद्म",
+        "पल्लव",
+        "पीताम्बर",
         "प्रभाकर",
+        "प्रभात",
+        "प्रभु",
         "प्रबोध",
         "प्रदीप",
+        "प्रकाश",
+        "प्रमोद",
         "प्रणव",
+        "प्रणय",
+        "प्रसाद",
+        "प्रसन्न",
+        "प्रताप",
         "प्रेम",
+        "पुरुषोत्तम",
+        "रघु",
+        "राहुल",
+        "राज",
+        "राजन",
+        "रजनीकांत",
         "राजीव",
+        "राजेन्द्र",
+        "राजेश",
+        "राजीव",
+        "राकेश",
+        "राम",
+        "रामचन्द्र",
+        "रामकृष्ण",
+        "रञ्जित",
         "रतन",
+        "रत्नम",
+        "रावण",
+        "रवि",
+        "ऋषि",
         "रोहन",
-        "विष्णु",
-        "विक्रम",
-        "विजया",
+        "सचिन",
+        "संदीप",
+        "शनि",
+        "संजय",
+        "संजित",
+        "संजीव",
+        "शंकर",
+        "सरल",
+        "सतीश",
+        "सवितृ",
+        "शेखर",
+        "सेठ",
+        "शनि",
+        "शंकर",
+        "शङ्कर",
+        "शंतनु",
+        "शर्म",
+        "शशि",
+        "शेखर",
+        "शेष",
+        "शिव",
+        "श्रेष्ठ",
+        "श्रीपति",
+        "श्याम",
+        "श्यामल",
+        "सिद्धार्थ",
+        "सिकन्दर",
+        "सोहेल",
+        "सुभाष",
+        "सुदर्शन",
+        "सुधीर",
+        "सुमन",
+        "सुमन्त्र",
+        "सुन्दर",
+        "सुनील",
+        "सुरज",
+        "सुरेन्द्र",
+        "सुरेश",
+        "सूर्य",
+        "सुशील",
+        "स्वपन",
+        "स्वप्निल",
+        "स्वर्ण",
+        "उत्तम",
+        "वसन्त",
+        "वासिष्ठ",
+        "भरत",
         "विजय",
+        "विजया",
+        "विक्रम",
+        "विमल",
+        "विनय",
+        "विपिन",
+        "विपुल",
+        "विशाल",
+        "विष्णु",
         "विवेक",
         "यश",
+    )
+
+    # http://www.20000-names.com/female_hindi_names.htm
+    first_names_female = (
+        "आभा",
         "अभिलाषा",
         "अदिती",
         "ऐश्वर्या",
+        "आकाङ्क्षा",
+        "अमला",
         "अमिता",
+        "अमृता",
+        "आनन्दा",
+        "अनिला",
+        "अणिमा",
         "अंकिता",
+        "अनुष्का",
+        "अनुजा",
+        "अर्चना",
+        "अरुंधती",
         "आशा",
         "अवनी",
+        "अवन्ती",
+        "बल",
         "भरत",
+        "चण्डा",
+        "चन्दना",
+        "चन्द्रकान्ता",
         "चेतना",
+        "दमयंती",
+        "दर्शना",
+        "दीपाली",
+        "दीप्ति",
+        "देवी",
+        "दीपाली",
+        "दीप्ति",
         "दिव्या",
+        "दुर्गा",
         "एषा",
+        "गौहर",
+        "गौरी",
+        "गीता",
+        "गोपीनाथ",
+        "गुलज़ार",
+        "इला",
+        "इन्दिरा",
+        "इन्द्रजित",
         "इन्दु",
+        "ज़स्विन्देर्",
         "जया",
         "जयन्ती",
         "ज्योत्सना",
+        "ज्योत्स्ना",
+        "कैलाश",
+        "कला",
+        "काली",
+        "कल्पना",
+        "कमला",
+        "कान्ता",
         "कान्ती",
+        "करिश्मा",
+        "काशी",
+        "कौशल्या",
+        "िकशोरी",
+        "क्षितिज",
         "कुमारी",
+        "कुंती",
+        "लक्ष्मी",
         "लता",
+        "लावण्या",
+        "लक्ष्मी",
+        "लीला",
+        "लीलावती",
+        "लीला",
         "लीला",
+        "लीलावती",
+        "लीना",
+        "माधवी",
+        "मधु",
+        "मधुर",
+        "माला",
         "मालती",
+        "मनीषा",
+        "मञ्जु",
+        "मञ्जुला",
+        "मञ्जूषा",
+        "माया",
+        "मीरा",
+        "मोहना",
         "मोहिनी",
+        "मुक्ता",
+        "नेहा",
+        "निखिला",
         "निशा",
+        "नित्य",
+        "पद्म",
+        "पद्मावती",
+        "पद्मिनी",
+        "पार्वती",
+        "परवीन",
+        "पूर्णिमा",
+        "प्रतिभा",
+        "प्रतिमा",
+        "प्रेमा",
+        "प्रिया",
         "पूर्णिमा",
         "पुष्पा",
         "रचना",
+        "राधा",
         "रजनी",
+        "राज्य",
+        "रानी",
         "रश्मी",
+        "रति",
+        "रत्न",
+        "रेशमी",
+        "रीतिका",
         "रिया",
+        "रोहना",
+        "रुक्मिणी",
+        "रुपिन्द्र",
+        "संजना",
         "सरला",
         "सरस्वती",
+        "सारिका",
+        "सती",
         "सावित्री",
+        "सीमा",
+        "सीता",
         "शक्ति",
+        "शकुन्तला",
         "शान्ता",
+        "शान्ती",
         "शर्मिला",
+        "शशी",
+        "शीला",
+        "शिवाली",
+        "शोभा",
         "श्यामा",
+        "श्यामला",
+        "सीमा",
+        "सीता",
+        "सितारा",
+        "सोनल",
+        "श्री",
+        "सुदर्शना",
         "सुलभा",
+        "सुमना",
+        "सुमती",
+        "सुनीता",
+        "सुनीती",
+        "सुशीला",
+        "स्वर्ण",
+        "तारा",
         "तृष्णा",
+        "उमा",
+        "उषा",
+        "वसन्ता",
         "विद्या",
-        "अली",
-        "हासन",
-        "हुसैन",
-        "ज़ाकिर",
-        "रिज़वान",
-        "फ़रहान",
-        "ज़ोया",
+        "विजया",
+        "विमला",
     )
 
+    first_names = first_names_male + first_names_female
+
+    # https://blogs.transparent.com/hindi/common-surnames-in-india/
     last_names = (
-        "पाटिल",
+        # Common Surnames in North India (Delhi, Haryana, Punjab,etc)
         "शर्मा",
-        "आचार्य",
-        "अग्रवाल",
+        "भट",
+        "वर्मा",
+        "कुमार",
+        "गुप्ता",
+        "मल्होत्रा",
+        "भटनागर",
+        "सक्सेना",
+        "कपूर",
         "सिंह",
-        "अहलुवालिया",
+        "महरा",
+        "चोपरा",
+        "सरीन",
+        "मालिक",
+        "सैनी",
+        "जैन",
+        "कौल",
+        "खत्री",
+        "गोयल",
+        "तिवारी",
+        "भरद्वाज",
+        "चोपरा",
+        "प्रसाद",
+        "आचार्य",
+        "अगरवाल",
+        "अहलूवालिया",
+        "टंडन",
         "आहूजा",
-        "पुष्कर",
-        "शिरोळे",
-        "गायकवाड",
-        "गावित",
-        "शिरोळे",
-        "बापट",
-        "अरोड़ा",
-        "बाबू",
-        "बादामी",
-        "जमानत",
-        "बजाज",
-        "बक्षी",
-        "बालकृष्णन",
-        "बालासुब्रमणियम",
-        "बसु",
-        "भंडारी",
-        "चौधरी",
-        "चौहान",
-        "छाबरा",
-        "दादा",
-        "डानी",
-        "डार",
-        "दारा",
-        "दत्ता",
-        "दवे",
-        "दयाल",
-        "धालीवाल",
-        "दीक्षित",
-        "दोषी",
-        "दुआ",
-        "दूबे",
-        "ढींगरा",
-        "वाल",
-        "साया",
-        "बना",
-        "ड़ाल",
-        "गर्ग",
-        "गणेश",
-        "गांगुली",
-        "गुप्ता",
-        "हेगडे",
-        "जोशी",
-        "काले",
-        "कृष्णा",
-        "कृष्णमूर्ति",
-        "कृष्णन",
-        "कुलकर्णी",
-        "कुमार",
-        "कुण्डा",
-        "नाम",
-        "रामलला",
-        "लता",
-        "लोदी",
-        "लोकनाट्यों",
-        "विकावि",
-        "लाल",
-        "लाला",
-        "वफादार",
-        "लूथरा",
-        "मदन",
-        "मगर",
-        "भारत",
-        "महावीर",
-        "महादेव",
-        "महाजन",
-        "महाराज",
+        "अरोरा",
+        # Common Surnames in East India: (Bengal, Orrisa, etc.)
+        "चटर्जी",
+        "चतुर्वेदी",
+        "सेन",
+        "बोस",
+        "सेनगुप्ता",
+        "दास",
+        "दासगुप्ता",
+        "मुख़र्जी",
+        "दुत्ता",
+        "बनर्जी",
+        "चक्रवर्ती",
+        "भट्टाचार्य",
+        "घोष",
+        "मित्रा",
+        "गुहा",
+        "सरकार",
+        "साहा",
+        "रॉय",
+        "चोधरी",
+        "रॉय चौधरी",
         "मजूमदार",
-        "मल्लिक",
-        "सेनाधीश",
-        "माने",
-        "मंगल",
-        "मंगत",
-        "रामशर्मा",
-        "मणि",
-        "मान",
-        "श्रीविमल",
-        "कुमार",
         "मंडल",
-        "अली",
-        "हासन",
-        "हुसैन",
+        "मैती",
+        "कलिता",
+        "हजारिका",
+        "नाथ",
+        "बुरुाह",
+        "थापा",
+        "गुरुंग",
+        "राय",
+        "प्रधान",
+        "तमांग",
+        "छेत्री",
+        # Common Surnames in South India (Karnataka, Tamil Nadu, Kerala, etc.)
+        "नायर",
+        "मेनन",
+        "पिल्लई",
+        "वेंकटएसन",
+        "बलासुब्रमानियम",
+        "राव",
+        "जयरामन",
+        "सुब्रमण्यम",
+        "रंगन",
+        "रंगराजन",
+        "नारायण",
+        "रेड्डी",
+        # Common Surnames in Central India (Bihar/ Uttar Pradesh, Madhya Pradesh, etc)
+        "सिंह",
+        "द्विवेदी",
+        "मिश्रा",
+        "त्रिवेदी",
+        "झा",
+        "शुक्ला",
+        "यादव",
+        "सिन्हा",
+        "पाण्डेय",
+        "झादव",
+        "जेटली",
+        "चौहान",
+        "जोशी",
+        "मिस्त्री",
         "खान",
-        "अब्बासी",
-        "नूरानी",
+        "श्रीवास्तव",
+        # Common Surnames in West India (Maharashtra, Gujarat, Goa etc)
+        "शाह",
+        "देशपांडे",
+        "गावडे",
+        "कदम",
+        "ताम्बे",
+        "मेहता",
+        "पटेल",
+        "पाटिल",
+        "पवार",
+        "चवन",
+        "डी’सोउज़ा",
+        "लोबो",
+        "रोद्रिगुएस",
+        "डी’कोस्टा",
     )
+
+    prefixes_male = ("श्री", "श्रीमान")
+
+    prefixes_female = ("श्री", "श्रीमती")
+
+    prefixes = (
+        "माननीय",
+        "आदरसूचक",
+        "सम्मानसूचक",
+        "संमानित",
+        "आदरवाचक",
+        "सम्मानात्मक",
+    )
+
+    suffixes = ("जी",)
diff --git a/faker/providers/phone_number/ka_GE/__init__.py b/faker/providers/phone_number/ka_GE/__init__.py
new file mode 100644
index 00000000..74e5bfc2
--- /dev/null
+++ b/faker/providers/phone_number/ka_GE/__init__.py
@@ -0,0 +1,16 @@
+from .. import Provider as PhoneNumberProvider
+
+
+class Provider(PhoneNumberProvider):
+    # Sourse: https://en.wikipedia.org/wiki/Telephone_numbers_in_Georgia_(country)
+    formats = (
+        "+995 ### ### ###",
+        "+995 (###) ### ###",
+        "+995#########",
+        "0 ### ### ###",
+        "+995 32 ### ## ##",
+        "+995 34# ### ###",
+        "+995 (34#) ### ###",
+        "0 32 ### ## ##",
+        "0 34# ### ###",
+    )
diff --git a/faker/providers/phone_number/uk_UA/__init__.py b/faker/providers/phone_number/uk_UA/__init__.py
index c3b57762..1e48bb35 100644
--- a/faker/providers/phone_number/uk_UA/__init__.py
+++ b/faker/providers/phone_number/uk_UA/__init__.py
@@ -56,7 +56,6 @@ class Provider(PhoneNumberProvider):
         "+38071",
         "+38072",
         "+38073",
-        "+3800",
         "+38090",
         "+38091",
         "+38092",
diff --git a/faker/proxy.pyi b/faker/proxy.pyi
index 56782d25..8921acf3 100644
--- a/faker/proxy.pyi
+++ b/faker/proxy.pyi
@@ -2008,7 +2008,12 @@ class Faker:
         """
         ...
 
-    def fixed_width(self, data_columns: Optional[list] = ..., num_rows: int = ..., align: str = ...) -> str:
+    def fixed_width(
+        self,
+        data_columns: Optional[List[Union[Tuple[int, str], Tuple[int, str, Dict[str, Any]]]]] = ...,
+        num_rows: int = ...,
+        align: str = ...,
+    ) -> str:
         """
         Generate random fixed width values.
 
@@ -2363,7 +2368,7 @@ class Faker:
         """
         ...
 
-    def passport_gender(self, seed: int = ...) -> str:
+    def passport_gender(self, seed: int = ...) -> Literal["M", "F", "X"]:
         """
         Generates a string representing the gender displayed on a passport
 
@@ -2379,7 +2384,7 @@ class Faker:
         """
         ...
 
-    def passport_owner(self, gender: str = ...) -> Tuple[str, str]:
+    def passport_owner(self, gender: Literal["M", "F", "X"] = ...) -> Tuple[str, str]:
         """
         Generate a given_name and surname for a passport owner
         The ``gender`` argument is the gender marker of a passport owner, which is a one character string
@@ -2428,7 +2433,7 @@ class Faker:
 
     def phone_number(self) -> str: ...
     def profile(
-        self, fields: Optional[List[str]] = ..., sex: Optional[Literal["M", "F"]] = ...
+        self, fields: Optional[List[str]] = ..., sex: Optional[Literal["M", "F", "X"]] = ...
     ) -> Dict[str, Union[str, Tuple[Decimal, Decimal], List[str], datetime.date]]:
         """
         Generates a complete profile.
@@ -2437,8 +2442,8 @@ class Faker:
         ...
 
     def simple_profile(
-        self, sex: Optional[Literal["M", "F"]] = ...
-    ) -> Dict[str, Union[str, datetime.date, Literal["M", "F"]]]:
+        self, sex: Optional[Literal["M", "F", "X"]] = ...
+    ) -> Dict[str, Union[str, datetime.date, Literal["M", "F", "X"]]]:
         """
         Generates a basic profile with personal informations
         """
@@ -3550,6 +3555,24 @@ class Faker:
 
     def area_code_with_separator(self) -> str: ...
     def area_code_without_separator(self) -> str: ...
+    def day_of_week_in_guj(self) -> str:
+        """
+        Returns day of the week in `Gujarati`
+        """
+        ...
+
+    def month_in_guj(self) -> str:
+        """
+        Returns month name in `Gujarati`
+        """
+        ...
+
+    def month_name_in_guj(self) -> str:
+        """
+        Returns month name in `Gujarati`
+        """
+        ...
+
     def street_title(self) -> str: ...
     def city_part(self) -> str: ...
     def frequent_street_name(self) -> str: ...
@@ -4177,7 +4200,7 @@ class Faker:
         """
         ...
 
-    def full_name(self, gender: Optional[Literal["M", "F"]] = ..., short: Optional[bool] = ...) -> str:
+    def full_name(self, gender: Optional[Literal["M", "F", "X"]] = ..., short: Optional[bool] = ...) -> str:
         """
         Generate Full Name
             - gender = 'M' or 'F' optional params
diff --git a/faker/typing.py b/faker/typing.py
index 7f5c2eeb..7d020943 100644
--- a/faker/typing.py
+++ b/faker/typing.py
@@ -37,7 +37,7 @@ BasicNumber = Union[float, int]
 CardType = TypeVar("CardType", "CreditCard", str)
 DateParseType = Union[date, datetime, timedelta, str, int]
 HueType = Union[str, float, int, Sequence[int]]
-SexLiteral = Literal["M", "F"]
+SexLiteral = Literal["M", "F", "X"]
 SeedType = Union[int, float, str, bytes, bytearray, None]
 
 


Test patch:
diff --git a/tests/providers/test_color.py b/tests/providers/test_color.py
index 609c4cf7..df83f0f5 100644
--- a/tests/providers/test_color.py
+++ b/tests/providers/test_color.py
@@ -16,6 +16,7 @@ from faker.providers.color.fa_IR import Provider as FaIrColorProvider
 from faker.providers.color.he_IL import Provider as HeILColorProvider
 from faker.providers.color.hy_AM import Provider as HyAmColorProvider
 from faker.providers.color.id_ID import Provider as IdIdColorProvider
+from faker.providers.color.ka_GE import Provider as KaGEColorProvider
 from faker.providers.color.sk_SK import Provider as SkSkColorProvider
 from faker.providers.color.vi_VN import Provider as ViVNColorProvider
 
@@ -446,6 +447,22 @@ class TestIdId:
             assert safe_color_name in IdIdColorProvider.safe_colors
 
 
+class TestKaGe:
+    """Test Ka_GE color provider methods"""
+
+    def test_color_name(self, faker, num_samples):
+        for _ in range(num_samples):
+            color_name = faker.color_name()
+            assert isinstance(color_name, str)
+            assert color_name in KaGEColorProvider.all_colors.keys()
+
+    def test_safe_color_name(self, faker, num_samples):
+        for _ in range(num_samples):
+            safe_color_name = faker.safe_color_name()
+            assert isinstance(safe_color_name, str)
+            assert safe_color_name in KaGEColorProvider.safe_colors
+
+
 class TestViVn:
     """Test vi_VN color provider methods"""
 
diff --git a/tests/providers/test_date_time.py b/tests/providers/test_date_time.py
index 9d221c6c..3349e2aa 100644
--- a/tests/providers/test_date_time.py
+++ b/tests/providers/test_date_time.py
@@ -26,9 +26,11 @@ from faker.providers.date_time.de_DE import Provider as DeDeProvider
 from faker.providers.date_time.el_GR import Provider as ElGrProvider
 from faker.providers.date_time.es_ES import Provider as EsEsProvider
 from faker.providers.date_time.fr_FR import Provider as FrFrProvider
+from faker.providers.date_time.gu_IN import Provider as GuINProvider
 from faker.providers.date_time.hy_AM import Provider as HyAmProvider
 from faker.providers.date_time.it_IT import Provider as ItItProvider
 from faker.providers.date_time.ja_JP import Provider as JaJpProvider
+from faker.providers.date_time.ka_GE import Provider as KaGeProvider
 from faker.providers.date_time.nl_NL import Provider as NlProvider
 from faker.providers.date_time.no_NO import Provider as NoNoProvider
 from faker.providers.date_time.pl_PL import Provider as PlProvider
@@ -1356,6 +1358,35 @@ class TestFrCa(unittest.TestCase):
         assert day in FrFrProvider.MONTH_NAMES.values()
 
 
+class TestGuIN(unittest.TestCase):
+    """Test `gu_IN` (Gujarati) provider for date_time"""
+
+    def setUp(self):
+        self.fake = Faker("gu_IN")
+        Faker.seed(0)
+
+    def test_day(self):
+        day = self.fake.day_of_week()
+        assert day in GuINProvider.DAY_NAMES.values()
+
+    def test_month(self):
+        month = self.fake.month_name()
+        assert month in GuINProvider.MONTH_NAMES.values()
+
+    def test_day_in_guj(self):
+        day = self.fake.day_of_week_in_guj()
+        assert day in GuINProvider.DAY_NAMES_IN_GUJARATI.values()
+
+    def test_month_in_guj(self):
+        """Test `month_in_guj` and `month_names_in_guj` methods"""
+
+        month = self.fake.month_name_in_guj()
+        assert month in GuINProvider.MONTH_NAMES_IN_GUJARATI.values()
+
+        month = self.fake.month_in_guj()
+        assert month in GuINProvider.MONTH_NAMES_IN_GUJARATI.values()
+
+
 class TestJaJp(unittest.TestCase):
     def setUp(self):
         self.fake = Faker("ja_JP")
@@ -1374,6 +1405,24 @@ class TestJaJp(unittest.TestCase):
         assert month in JaJpProvider.TRADITIONAL_MONTH_NAMES.values()
 
 
+class TestKaGe(unittest.TestCase):
+    """Test Ka_GE date_time provider methods"""
+
+    def setUp(self):
+        self.fake = Faker("Ka_GE")
+        Faker.seed(0)
+
+    def test_day(self):
+        day = self.fake.day_of_week()
+        assert isinstance(day, str)
+        assert day in KaGeProvider.DAY_NAMES.values()
+
+    def test_month(self):
+        month = self.fake.month_name()
+        assert isinstance(month, str)
+        assert month in KaGeProvider.MONTH_NAMES.values()
+
+
 class TestViVn(unittest.TestCase):
     """Tests date_time in the vi_VN locale"""
 
diff --git a/tests/providers/test_job.py b/tests/providers/test_job.py
index 607fbe3c..76d3bffc 100644
--- a/tests/providers/test_job.py
+++ b/tests/providers/test_job.py
@@ -8,6 +8,7 @@ from faker.providers.job.fr_FR import Provider as FrFrJobProvider
 from faker.providers.job.hu_HU import Provider as HuHuJobProvider
 from faker.providers.job.hy_AM import Provider as HyAmJobProvider
 from faker.providers.job.ja_JP import Provider as JaJpJobProvider
+from faker.providers.job.ka_GE import Provider as KaGeJobProvider
 from faker.providers.job.ko_KR import Provider as KoKrJobProvider
 from faker.providers.job.pt_BR import Provider as PtBrJobProvider
 from faker.providers.job.pt_PT import Provider as PtPtJobProvider
@@ -26,6 +27,14 @@ class TestJobProvider:
             assert faker.job() in JobProvider.jobs
 
 
+class TestAzAz:
+    """Test az_AZ job provider"""
+
+    def test_job(self, faker, num_samples):
+        for _ in range(num_samples):
+            assert faker.job() in AzAzJobProvider.jobs
+
+
 class TestCsCz:
     """Test cs_CZ job provider"""
 
@@ -36,28 +45,36 @@ class TestCsCz:
             assert job in CsCzJobProvider.jobs
 
 
-class TestAzAz:
-    """Test az_AZ job provider"""
+class TestDeDe:
+    """Test de_DE job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in AzAzJobProvider.jobs
+            assert faker.job() in DeDeJobProvider.jobs
 
 
-class TestJaJp:
-    """Test ja_JP job provider"""
+class TestElGr:
+    """Test el_GR job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in JaJpJobProvider.jobs
+            assert faker.job() in ElGrJobProvider.jobs
 
 
-class TestKoKr:
-    """Test ko_KR job provider"""
+class TestEsEs:
+    """Test es job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in KoKrJobProvider.jobs
+            assert faker.job() in EsEsJobProvider.jobs
+
+
+class TestFrFr:
+    """Test fr_FR job provider"""
+
+    def test_job(self, faker, num_samples):
+        for _ in range(num_samples):
+            assert faker.job() in FrFrJobProvider.jobs
 
 
 class TestHuHu:
@@ -76,36 +93,38 @@ class TestHyAm:
             assert faker.job() in HyAmJobProvider.jobs
 
 
-class TestDeDe:
-    """Test de_DE job provider"""
+class TestJaJp:
+    """Test ja_JP job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in DeDeJobProvider.jobs
+            assert faker.job() in JaJpJobProvider.jobs
 
 
-class TestFrFr:
-    """Test fr_FR job provider"""
+class TestKaGe:
+    """Test ka_GE job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in FrFrJobProvider.jobs
+            job = faker.job()
+            assert isinstance(job, str)
+            assert job in KaGeJobProvider.jobs
 
 
-class TestElGr:
-    """Test el_GR job provider"""
+class TestKoKr:
+    """Test ko_KR job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in ElGrJobProvider.jobs
+            assert faker.job() in KoKrJobProvider.jobs
 
 
-class TestEsEs:
-    """Test es job provider"""
+class TestPtBr:
+    """Test pt_BR job provider"""
 
     def test_job(self, faker, num_samples):
         for _ in range(num_samples):
-            assert faker.job() in EsEsJobProvider.jobs
+            assert faker.job() in PtBrJobProvider.jobs
 
 
 class TestPtPt:
@@ -116,12 +135,11 @@ class TestPtPt:
             assert faker.job() in PtPtJobProvider.jobs
 
 
-class TestPtBr:
-    """Test pt_BR job provider"""
+class TestRoRo:
+    """Test Ro_RO job provider"""
 
     def test_job(self, faker, num_samples):
-        for _ in range(num_samples):
-            assert faker.job() in PtBrJobProvider.jobs
+        assert faker.job() in RoRoJobProvider.jobs
 
 
 class TestSkSk:
@@ -148,13 +166,6 @@ class TestTrTr:
         assert faker.job() in TrTrJobProvider.jobs
 
 
-class TestRoRo:
-    """Test tr_TR job provider"""
-
-    def test_job(self, faker, num_samples):
-        assert faker.job() in RoRoJobProvider.jobs
-
-
 class TestViVn:
     """Test vi_VN job provider"""
 
diff --git a/tests/providers/test_person.py b/tests/providers/test_person.py
index 9018aff3..bd5afc3c 100644
--- a/tests/providers/test_person.py
+++ b/tests/providers/test_person.py
@@ -20,7 +20,9 @@ from faker.providers.person.et_EE import Provider as EtEEProvider
 from faker.providers.person.fi_FI import Provider as FiProvider
 from faker.providers.person.fr_BE import Provider as FrBEProvider
 from faker.providers.person.ga_IE import Provider as GaIEProvider
+from faker.providers.person.gu_IN import Provider as GuINProvider
 from faker.providers.person.he_IL import Provider as HeILProvider
+from faker.providers.person.hi_IN import Provider as HiINProvider
 from faker.providers.person.hy_AM import Provider as HyAmProvider
 from faker.providers.person.lv_LV import Provider as LvProvider
 from faker.providers.person.ne_NP import Provider as NeProvider
@@ -331,7 +333,6 @@ class TestEnIN(unittest.TestCase):
 
 
 class TestEnPk(unittest.TestCase):
-
     def setUp(self):
         """Set up the Faker instance with the Pakistani locale."""
         self.fake = Faker("en_PK")
@@ -673,6 +674,68 @@ class TestGaIE(TestEnIE):
         Faker.seed(0)
 
 
+class TestGuIN(unittest.TestCase):
+    """Tests person in the gu_IN locale"""
+
+    def setUp(self):
+        self.fake = Faker("gu_IN")
+        Faker.seed(0)
+
+    """Verify that gender specific names are set correctly"""
+
+    def test_first_name(self):
+        name = self.fake.first_name()
+        self.assertIsInstance(name, str)
+        assert name in GuINProvider.first_names
+
+    def test_first_name_male(self):
+        name = self.fake.first_name_male()
+        self.assertIsInstance(name, str)
+        assert name in GuINProvider.first_names_male
+
+    def test_first_name_female(self):
+        name = self.fake.first_name_female()
+        self.assertIsInstance(name, str)
+        assert name in GuINProvider.first_names_female
+
+    def test_last_name(self):
+        last_name = self.fake.last_name()
+        self.assertIsInstance(last_name, str)
+        assert last_name in GuINProvider.last_names
+
+    def test_name(self):
+        name = self.fake.name().split()
+        assert all(isinstance(n, str) for n in name)
+        if len(name) == 3:
+            assert all(
+                [
+                    name[0] in GuINProvider.prefixes,
+                    name[1] in GuINProvider.first_names,
+                    name[2] in GuINProvider.last_names,
+                ]
+            )
+        else:
+            assert name[0] in GuINProvider.first_names
+            assert name[-1] in GuINProvider.last_names
+
+    """Verify that gender specific prefixes are set correctly"""
+
+    def test_prefix(self):
+        prefix = self.fake.prefix()
+        self.assertIsInstance(prefix, str)
+        assert prefix in GuINProvider.prefixes
+
+    def test_prefix_female(self):
+        prefix = self.fake.prefix_female()
+        self.assertIsInstance(prefix, str)
+        assert prefix in GuINProvider.prefixes_female
+
+    def test_prefix_male(self):
+        prefix = self.fake.prefix_male()
+        self.assertIsInstance(prefix, str)
+        assert prefix in GuINProvider.prefixes_male
+
+
 class TestHeIL(unittest.TestCase):
     """Tests person in the he_IL locale."""
 
@@ -697,6 +760,54 @@ class TestHeIL(unittest.TestCase):
         assert last_name in HeILProvider.last_names
 
 
+class TestHiIN(unittest.TestCase):
+    """Tests person in the hi_IN locale"""
+
+    def setUp(self):
+        self.fake = Faker("hi_IN")
+        Faker.seed(0)
+
+    def test_first_name(self):
+        """Verify that gender specific names are set correctly"""
+
+        name = self.fake.first_name_male()
+        assert name in HiINProvider.first_names_male
+
+        name = self.fake.first_name_female()
+        assert name in HiINProvider.first_names_female
+
+        name = self.fake.first_name()
+        assert name in HiINProvider.first_names_male
+
+    def test_last_name(self):
+        last_name = self.fake.last_name()
+        assert last_name in HiINProvider.last_names
+
+    def test_name(self):
+        name = self.fake.name().split()
+
+        assert all(isinstance(n, str) for n in name)
+
+        prefixes = HiINProvider.prefixes_male + HiINProvider.prefixes_female + HiINProvider.prefixes
+
+        # name should always be 2-3 words. If 3, first word should be a prefix.
+        if len(name) == 3:
+            assert all(
+                [
+                    name[0] in prefixes,
+                    name[1] in HiINProvider.first_names,
+                    name[2] in HiINProvider.last_names,
+                ]
+            )
+        else:
+            assert name[0] in HiINProvider.first_names
+            if name[-1].endswith(HiINProvider.suffixes):
+                assert name[-1][:-1] in HiINProvider.last_names
+                assert name[-1][-1] in HiINProvider.suffixes
+            else:
+                assert name[-1] in HiINProvider.last_names
+
+
 class TestHyAM(unittest.TestCase):
     """Tests person in the hy_AM locale"""
 
@@ -1166,6 +1277,11 @@ class TestRuRU(unittest.TestCase):
         language_name = self.fake.language_name()
         assert language_name in RuProvider.language_names
 
+    def test_passport_owner(self):
+        surname, given_name = self.fake.passport_owner()
+        assert surname in RuProvider.last_names
+        assert given_name in RuProvider.first_names
+
 
 class TestSvSE(unittest.TestCase):
     def setUp(self):
diff --git a/tests/providers/test_phone_number.py b/tests/providers/test_phone_number.py
index 75608369..9de8045b 100644
--- a/tests/providers/test_phone_number.py
+++ b/tests/providers/test_phone_number.py
@@ -22,6 +22,50 @@ class TestPhoneNumber:
             assert msisdn.isdigit()
 
 
+class TestArAe:
+    """Test ar_AE phone number provider methods"""
+
+    cellphone_pattern: str = r"(?:\+|00)971\s?5[024568]\s?\d{3}\s?\d{4}|" r"05[024568]\s?\d{3}\s?\d{4}"
+    telephone_pattern: str = r"(?:\+|00)971\s?[1234679]\s?\d{3}\s?\d{4}|" r"0[1234679]\s?\d{3}\s?\d{4}"
+    toll_pattern: str = r"200\d{4}|" r"600\d{6}|" r"800\d{3,7}"
+    service_phone_pattern: str = r"9(?:9(?:9|8|7|6|1)|01|22)"
+
+    def test_cellphone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(self.cellphone_pattern)
+        for _ in range(num_samples):
+            cellphone = faker.cellphone_number()
+            assert pattern.fullmatch(cellphone)
+
+    def test_telephone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(self.telephone_pattern)
+        for _ in range(num_samples):
+            telephone = faker.telephone_number()
+            assert pattern.fullmatch(telephone)
+
+    def test_toll_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(self.toll_pattern)
+        for _ in range(num_samples):
+            toll = faker.toll_number()
+            assert pattern.fullmatch(toll)
+
+    def test_service_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(self.service_phone_pattern)
+        for _ in range(num_samples):
+            service = faker.service_phone_number()
+            assert pattern.fullmatch(service)
+
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            rf"{self.cellphone_pattern}|"
+            rf"{self.telephone_pattern}|"
+            rf"{self.toll_pattern}|"
+            rf"{self.service_phone_pattern}",
+        )
+        for _ in range(num_samples):
+            phone = faker.phone_number()
+            assert pattern.fullmatch(phone)
+
+
 class TestAzAz:
     """Test az_AZ phone number provider methods"""
 
@@ -53,16 +97,6 @@ class TestAzAz:
             assert self.landline_patterns.fullmatch(landline_number)
 
 
-class TestJaJp:
-    """Test ja_JP phone number provider methods"""
-
-    def test_phone_number(self, faker, num_samples):
-        for _ in range(num_samples):
-            pattern: Pattern = re.compile(r"(?:0[789]0|\d{2})-\d{4}-\d{4}")
-            phone_number = faker.phone_number()
-            assert pattern.fullmatch(phone_number)
-
-
 class TestCsCz:
     """Test cs_CZ phone number provider methods"""
 
@@ -73,98 +107,6 @@ class TestCsCz:
             assert pattern.fullmatch(phone_number)
 
 
-class TestSkSk:
-    """Test sk_SK phone number provider methods"""
-
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            r"(^(00421|\+421)? ?[2] ?[0-9]{8}$)|"
-            r"(^(00421|\+421)? ?[3-5][0-9] ?[0-9]{3} ?[0-9]{4}$)|"
-            r"(^(00421|\+421)? ?[9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$)"
-        )
-
-        for _ in range(num_samples):
-            phone_number = faker.phone_number()
-            assert pattern.fullmatch(phone_number)
-
-
-class TestPtBr:
-    """Test pt_BR phone number provider methods"""
-
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            r"(?:\+55 )?" r"(?:[1-8]1|84|\((?:0[1-8]1|084)\))" r" \d{4}[ -]\d{4}|" r"\d{4}?[ -]\d{3}[ -]\d{4}",
-        )
-        for _ in range(num_samples):
-            phone_number = faker.phone_number()
-            assert pattern.fullmatch(phone_number)
-
-    def test_msisdn(self, faker, num_samples):
-        pattern: Pattern = re.compile(r"55(?:[1-8]19|849)\d{8}")
-        for _ in range(num_samples):
-            msisdn = faker.msisdn()
-            assert pattern.fullmatch(msisdn)
-
-    def test_cellphone(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            r"(?:\+55 )?" r"(?:\d{2}|\(0?\d{2}\))" r" 9 ?\d{4}[ -]\d{4}",
-        )
-        for _ in range(num_samples):
-            cellphone = faker.cellphone_number()
-            assert pattern.fullmatch(cellphone)
-
-    def test_service_phone(self, faker, num_samples):
-        pattern: Pattern = re.compile(r"1(?:0|2|5|8|9)?(?:[0-9])")
-        for _ in range(num_samples):
-            service = faker.service_phone_number()
-            assert pattern.fullmatch(service)
-
-
-class TestHuHu:
-    """Test hu_HU phone number provider methods"""
-
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            r"(?:" r"\+36 \d{2} |" r"\(06\)\d{2}/|" r"\(\d{2}\)/|" r"\d{2}/|" r"06-\d{1,2}/" r")\d{3}[- ]\d{4}",
-        )
-        for _ in range(num_samples):
-            phone_number = faker.phone_number()
-            assert isinstance(phone_number, str)
-            assert pattern.fullmatch(phone_number)
-
-
-class TestThTh:
-    """Test th_TH phone number provider methods"""
-
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            # leading zero or internaional code
-            r"((\+66)|\+66[ -]?\(0\)|0)[ -]?"
-            # landline or mobile
-            r"([23457][ -]?(\d[ -]?){6}\d|[689][ -]?(\d[ -]?){7}\d)"
-            # extension
-            r"([ ]?(x|ext|ต่อ)[\.]?[ ]?\d{1,5})?",
-            re.IGNORECASE,
-        )
-        for _ in range(num_samples):
-            phone_number = faker.phone_number()
-            assert isinstance(phone_number, str)
-            assert pattern.fullmatch(phone_number)
-
-
-class TestHyAm:
-    """Test hy_AM phone number provider methods"""
-
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            r"(?:[23]\d{2}-|\([23]\d{2}\) |[23]\d{2}\.)\d{5}|" r"(?:(?:10|9\d)-|\((?:10|9\d)\) |(?:10|9\d)\.)\d{6}",
-        )
-        for _ in range(num_samples):
-            phone_number = faker.phone_number()
-            assert isinstance(phone_number, str)
-            assert pattern.fullmatch(phone_number)
-
-
 class TestEnPh:
     """Test en_PH phone number provider methods"""
 
@@ -269,28 +211,25 @@ class TestEnPh:
                 assert non_area2_match.group(1) in self.non_area2_landline_area_codes
 
 
-class TestFilPh(TestEnPh):
-    """Test fil_PH phone number provider methods"""
-
-    pass
-
-
-class TestTlPh(TestEnPh):
-    """Test tl_PH phone number provider methods"""
-
-    pass
-
-
-class TestTaIn:
-    """Test ta_IN phone number provider methods"""
+class TestEnUs:
+    """Test En_US phone provider methods"""
 
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            r"\+91 \d{3} ?\d{7}|" r"0\d{2}(-)?\d{2}(?(1)| ?)\d{6}",
+    def test_basic_phone_number(self, faker, num_samples):
+        pattern_no_whitespaces: Pattern = re.compile(
+            r"\d{9}",
         )
+        pattern_dashes: Pattern = re.compile(r"\d{3}-\d{3}-\d{4}")
+        pattern_parens: Pattern = re.compile(r"\(\d{3}\)\d{3}-\d{4}")
+        patterns = [pattern_no_whitespaces, pattern_dashes, pattern_parens]
         for _ in range(num_samples):
-            phone_number = faker.phone_number()
-            assert pattern.fullmatch(phone_number)
+            phone_number = faker.basic_phone_number()
+
+            pattern_is_found = False
+            for pattern in patterns:
+                if re.match(pattern, phone_number):
+                    pattern_is_found = True
+                    break
+            assert pattern_is_found
 
 
 class TestEsCo:
@@ -322,48 +261,10 @@ class TestEsEs:
             assert pattern.fullmatch(phone_number)
 
 
-class TestArAe:
-    """Test ar_AE phone number provider methods"""
-
-    cellphone_pattern: str = r"(?:\+|00)971\s?5[024568]\s?\d{3}\s?\d{4}|" r"05[024568]\s?\d{3}\s?\d{4}"
-    telephone_pattern: str = r"(?:\+|00)971\s?[1234679]\s?\d{3}\s?\d{4}|" r"0[1234679]\s?\d{3}\s?\d{4}"
-    toll_pattern: str = r"200\d{4}|" r"600\d{6}|" r"800\d{3,7}"
-    service_phone_pattern: str = r"9(?:9(?:9|8|7|6|1)|01|22)"
-
-    def test_cellphone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(self.cellphone_pattern)
-        for _ in range(num_samples):
-            cellphone = faker.cellphone_number()
-            assert pattern.fullmatch(cellphone)
-
-    def test_telephone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(self.telephone_pattern)
-        for _ in range(num_samples):
-            telephone = faker.telephone_number()
-            assert pattern.fullmatch(telephone)
-
-    def test_toll_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(self.toll_pattern)
-        for _ in range(num_samples):
-            toll = faker.toll_number()
-            assert pattern.fullmatch(toll)
-
-    def test_service_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(self.service_phone_pattern)
-        for _ in range(num_samples):
-            service = faker.service_phone_number()
-            assert pattern.fullmatch(service)
+class TestFilPh(TestEnPh):
+    """Test fil_PH phone number provider methods"""
 
-    def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(
-            rf"{self.cellphone_pattern}|"
-            rf"{self.telephone_pattern}|"
-            rf"{self.toll_pattern}|"
-            rf"{self.service_phone_pattern}",
-        )
-        for _ in range(num_samples):
-            phone = faker.phone_number()
-            assert pattern.fullmatch(phone)
+    pass
 
 
 class TestFrFr:
@@ -398,25 +299,148 @@ class TestFrFr:
             assert pattern_is_found
 
 
-class TestEnUs:
-    """Test En_US phone provider methods"""
+class TestHuHu:
+    """Test hu_HU phone number provider methods"""
 
-    def test_basic_phone_number(self, faker, num_samples):
-        pattern_no_whitespaces: Pattern = re.compile(
-            r"\d{9}",
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            r"(?:" r"\+36 \d{2} |" r"\(06\)\d{2}/|" r"\(\d{2}\)/|" r"\d{2}/|" r"06-\d{1,2}/" r")\d{3}[- ]\d{4}",
         )
-        pattern_dashes: Pattern = re.compile(r"\d{3}-\d{3}-\d{4}")
-        pattern_parens: Pattern = re.compile(r"\(\d{3}\)\d{3}-\d{4}")
-        patterns = [pattern_no_whitespaces, pattern_dashes, pattern_parens]
         for _ in range(num_samples):
-            phone_number = faker.basic_phone_number()
+            phone_number = faker.phone_number()
+            assert isinstance(phone_number, str)
+            assert pattern.fullmatch(phone_number)
 
-            pattern_is_found = False
-            for pattern in patterns:
-                if re.match(pattern, phone_number):
-                    pattern_is_found = True
-                    break
-            assert pattern_is_found
+
+class TestHyAm:
+    """Test hy_AM phone number provider methods"""
+
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            r"(?:[23]\d{2}-|\([23]\d{2}\) |[23]\d{2}\.)\d{5}|" r"(?:(?:10|9\d)-|\((?:10|9\d)\) |(?:10|9\d)\.)\d{6}",
+        )
+        for _ in range(num_samples):
+            phone_number = faker.phone_number()
+            assert isinstance(phone_number, str)
+            assert pattern.fullmatch(phone_number)
+
+
+class TestJaJp:
+    """Test ja_JP phone number provider methods"""
+
+    def test_phone_number(self, faker, num_samples):
+        for _ in range(num_samples):
+            pattern: Pattern = re.compile(r"(?:0[789]0|\d{2})-\d{4}-\d{4}")
+            phone_number = faker.phone_number()
+            assert pattern.fullmatch(phone_number)
+
+
+class TestKaGe:
+    """Test ka_GE phone number provider methods"""
+
+    pattern = re.compile(
+        r"(?:"
+        r"\+995 \d{3} \d{3} \d{3}|"  # Example: +995 123 456 789
+        r"\+995 \(\d{3}\) \d{3} \d{3}|"  # Example: +995 (123) 456 789
+        r"\+995\d{9}|"  # Example: +995123456789
+        r"0 \d{3} \d{3} \d{3}|"  # Example: 0 123 456 789
+        r"\+995 32 \d{3} \d{2} \d{2}|"  # Example: +995 32 123 12 12
+        r"\+995 34\d \d{3} \d{3}|"  # Example: +995 34x 123 456
+        r"\+995 \(34\d\) \d{3} \d{3}|"  # Example: +995 (34x) 123 456
+        r"0 32 \d{3} \d{2} \d{2}|"  # Example: 0 32 123 12 12
+        r"0 34\d \d{3} \d{3}"  # Example: 0 34x 123 456
+        r")"
+    )
+
+    def test_phone_number(self, faker, num_samples):
+        for _ in range(num_samples):
+            phone_number = faker.phone_number()
+            assert isinstance(phone_number, str)
+            assert self.pattern.fullmatch(phone_number)
+
+
+class TestPtBr:
+    """Test pt_BR phone number provider methods"""
+
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            r"(?:\+55 )?" r"(?:[1-8]1|84|\((?:0[1-8]1|084)\))" r" \d{4}[ -]\d{4}|" r"\d{4}?[ -]\d{3}[ -]\d{4}",
+        )
+        for _ in range(num_samples):
+            phone_number = faker.phone_number()
+            assert pattern.fullmatch(phone_number)
+
+    def test_msisdn(self, faker, num_samples):
+        pattern: Pattern = re.compile(r"55(?:[1-8]19|849)\d{8}")
+        for _ in range(num_samples):
+            msisdn = faker.msisdn()
+            assert pattern.fullmatch(msisdn)
+
+    def test_cellphone(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            r"(?:\+55 )?" r"(?:\d{2}|\(0?\d{2}\))" r" 9 ?\d{4}[ -]\d{4}",
+        )
+        for _ in range(num_samples):
+            cellphone = faker.cellphone_number()
+            assert pattern.fullmatch(cellphone)
+
+    def test_service_phone(self, faker, num_samples):
+        pattern: Pattern = re.compile(r"1(?:0|2|5|8|9)?(?:[0-9])")
+        for _ in range(num_samples):
+            service = faker.service_phone_number()
+            assert pattern.fullmatch(service)
+
+
+class TestSkSk:
+    """Test sk_SK phone number provider methods"""
+
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            r"(^(00421|\+421)? ?[2] ?[0-9]{8}$)|"
+            r"(^(00421|\+421)? ?[3-5][0-9] ?[0-9]{3} ?[0-9]{4}$)|"
+            r"(^(00421|\+421)? ?[9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$)"
+        )
+
+        for _ in range(num_samples):
+            phone_number = faker.phone_number()
+            assert pattern.fullmatch(phone_number)
+
+
+class TestTaIn:
+    """Test ta_IN phone number provider methods"""
+
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            r"\+91 \d{3} ?\d{7}|" r"0\d{2}(-)?\d{2}(?(1)| ?)\d{6}",
+        )
+        for _ in range(num_samples):
+            phone_number = faker.phone_number()
+            assert pattern.fullmatch(phone_number)
+
+
+class TestThTh:
+    """Test th_TH phone number provider methods"""
+
+    def test_phone_number(self, faker, num_samples):
+        pattern: Pattern = re.compile(
+            # leading zero or internaional code
+            r"((\+66)|\+66[ -]?\(0\)|0)[ -]?"
+            # landline or mobile
+            r"([23457][ -]?(\d[ -]?){6}\d|[689][ -]?(\d[ -]?){7}\d)"
+            # extension
+            r"([ ]?(x|ext|ต่อ)[\.]?[ ]?\d{1,5})?",
+            re.IGNORECASE,
+        )
+        for _ in range(num_samples):
+            phone_number = faker.phone_number()
+            assert isinstance(phone_number, str)
+            assert pattern.fullmatch(phone_number)
+
+
+class TestTlPh(TestEnPh):
+    """Test tl_PH phone number provider methods"""
+
+    pass
 
 
 class TestViVn: