diff --git a/include/faker-cxx/animal.h b/include/faker-cxx/animal.h index de6679a38..0550561c8 100644 --- a/include/faker-cxx/animal.h +++ b/include/faker-cxx/animal.h @@ -11,7 +11,7 @@ namespace faker::animal * @brief Returns a random species of bear. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of bear. * * @code @@ -24,7 +24,7 @@ FAKER_CXX_EXPORT std::string_view bear(Locale locale = Locale::en_US); * @brief Returns a random species of bird. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of bird. * * @code @@ -37,7 +37,7 @@ FAKER_CXX_EXPORT std::string_view bird(Locale locale = Locale::en_US); * @brief Returns a random species of cat. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of cat. * * @code @@ -50,7 +50,7 @@ FAKER_CXX_EXPORT std::string_view cat(Locale locale = Locale::en_US); * @brief Returns a random species of cetacean. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of cetacean. * * @code @@ -63,7 +63,7 @@ FAKER_CXX_EXPORT std::string_view cetacean(Locale locale = Locale::en_US); * @brief Returns a random species of cow. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of cow. * * @code @@ -76,7 +76,7 @@ FAKER_CXX_EXPORT std::string_view cow(Locale locale = Locale::en_US); * @brief Returns a random species of crocodilia. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of crocodilia. * * @code @@ -89,7 +89,7 @@ FAKER_CXX_EXPORT std::string_view crocodile(Locale locale = Locale::en_US); * @brief Returns a random species of dog. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of dog. * * @code @@ -102,7 +102,7 @@ FAKER_CXX_EXPORT std::string_view dog(Locale locale = Locale::en_US); * @brief Returns a random species of fish. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of fish. * * @code @@ -115,7 +115,7 @@ FAKER_CXX_EXPORT std::string_view fish(Locale locale = Locale::en_US); * @brief Returns a random species of horse. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of horse. * * @code @@ -128,7 +128,7 @@ FAKER_CXX_EXPORT std::string_view horse(Locale locale = Locale::en_US); * @brief Returns a random species of insect. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of insect. * * @code @@ -141,7 +141,7 @@ FAKER_CXX_EXPORT std::string_view insect(Locale locale = Locale::en_US); * @brief Returns a random species of lion. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of lion. * * @code @@ -154,7 +154,7 @@ FAKER_CXX_EXPORT std::string_view lion(Locale locale = Locale::en_US); * @brief Returns a random species of rabbit. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of rabbit. * * @code @@ -167,7 +167,7 @@ FAKER_CXX_EXPORT std::string_view rabbit(Locale locale = Locale::en_US); * @brief Returns a random species of rodent. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of rodent. * * @code @@ -180,7 +180,7 @@ FAKER_CXX_EXPORT std::string_view rodent(Locale locale = Locale::en_US); * @brief Returns a random species of snake. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Species of snake. * * @code @@ -193,7 +193,7 @@ FAKER_CXX_EXPORT std::string_view snake(Locale locale = Locale::en_US); * @brief Returns a random type of animal. * * @param locale The locale. Defaults to `Locale::en_US`. - * + * * @returns Type of animal. * * @code diff --git a/include/faker-cxx/helper.h b/include/faker-cxx/helper.h index cb780e7bc..f21f25517 100644 --- a/include/faker-cxx/helper.h +++ b/include/faker-cxx/helper.h @@ -10,8 +10,8 @@ namespace faker::helper { template -concept input_range_with_faster_size_compute_than_linear_rng = - std::ranges::input_range && (std::ranges::sized_range || std::ranges::forward_range); +concept input_range_with_faster_size_compute_than_linear_rng = std::ranges::input_range && + (std::ranges::sized_range || std::ranges::forward_range); template decltype(auto) randomElement(Range&& range) diff --git a/include/faker-cxx/random_generator.h b/include/faker-cxx/random_generator.h index 9f5e70984..c5408b18f 100644 --- a/include/faker-cxx/random_generator.h +++ b/include/faker-cxx/random_generator.h @@ -6,7 +6,8 @@ namespace faker { template - requires std::uniform_random_bit_generator +requires std::uniform_random_bit_generator + class RandomGenerator { public: @@ -20,7 +21,8 @@ class RandomGenerator RandomGenerator& operator=(RandomGenerator&&) = default; template - requires std::is_invocable_r_v + requires std::is_invocable_r_v + int operator()(Dist&& dist) { return std::forward(dist)(generator_); diff --git a/src/modules/animal.cpp b/src/modules/animal.cpp index 5b8ccc56e..44babcc75 100644 --- a/src/modules/animal.cpp +++ b/src/modules/animal.cpp @@ -18,6 +18,7 @@ const struct AnimalDefinition& getAnimalDefinition(Locale locale) } } } + std::string_view bear(Locale locale) { const auto& animalDefinition = getAnimalDefinition(locale); diff --git a/src/modules/esport_data.h b/src/modules/esport_data.h index 2f9fea170..b1d099dbb 100644 --- a/src/modules/esport_data.h +++ b/src/modules/esport_data.h @@ -49,16 +49,11 @@ const auto enUSEvents = "IEM"}); const auto enUSGames = std::to_array({"Valorant", "League Of Legend", "Rocket League", "Fifa", - "Overwatch", "CSGO", "Fortnite", "Dota 2", - "Street Fighter," - "Apex Legends", - "TFT", "PUBG", "Call of Duty"}); + "Overwatch", "CSGO", "Fortnite", "Dota 2", + "Street Fighter," + "Apex Legends", + "TFT", "PUBG", "Call of Duty"}); const EsportDefinition enUSEsportDefinition = { - .players = enUSPlayers, - .teams = enUSTeams, - .leagues = enUSLeagues, - .events = enUSEvents, - .games = enUSGames -}; + .players = enUSPlayers, .teams = enUSTeams, .leagues = enUSLeagues, .events = enUSEvents, .games = enUSGames}; } \ No newline at end of file diff --git a/src/modules/internet_data.h b/src/modules/internet_data.h index 9064e9b14..b1b96a923 100644 --- a/src/modules/internet_data.h +++ b/src/modules/internet_data.h @@ -187,24 +187,34 @@ const auto smileyEmojis = std::to_array({ }); const auto bodyEmojis = std::to_array({ - "โ˜๏ธ", "โ˜๐Ÿป", "โ˜๐Ÿผ", "โ˜๐Ÿฝ", "โ˜๐Ÿพ", "โ˜๐Ÿฟ", "โœŠ", "โœŠ๐Ÿป", "โœŠ๐Ÿผ", "โœŠ๐Ÿฝ", "โœŠ๐Ÿพ", "โœŠ๐Ÿฟ", "โœ‹", "โœ‹๐Ÿป", - "โœ‹๐Ÿผ", "โœ‹๐Ÿฝ", "โœ‹๐Ÿพ", "โœ‹๐Ÿฟ", "โœŒ๏ธ", "โœŒ๐Ÿป", "โœŒ๐Ÿผ", "โœŒ๐Ÿฝ", "โœŒ๐Ÿพ", "โœŒ๐Ÿฟ", "โœ๏ธ", "โœ๐Ÿป", "โœ๐Ÿผ", "โœ๐Ÿฝ", - "โœ๐Ÿพ", "โœ๐Ÿฟ", "๐Ÿ‘€", "๐Ÿ‘๏ธ", "๐Ÿ‘‚", "๐Ÿ‘‚๐Ÿป", "๐Ÿ‘‚๐Ÿผ", "๐Ÿ‘‚๐Ÿฝ", "๐Ÿ‘‚๐Ÿพ", "๐Ÿ‘‚๐Ÿฟ", "๐Ÿ‘ƒ", "๐Ÿ‘ƒ๐Ÿป", "๐Ÿ‘ƒ๐Ÿผ", "๐Ÿ‘ƒ๐Ÿฝ", - "๐Ÿ‘ƒ๐Ÿพ", "๐Ÿ‘ƒ๐Ÿฟ", "๐Ÿ‘„", "๐Ÿ‘…", "๐Ÿ‘†", "๐Ÿ‘†๐Ÿป", "๐Ÿ‘†๐Ÿผ", "๐Ÿ‘†๐Ÿฝ", "๐Ÿ‘†๐Ÿพ", "๐Ÿ‘†๐Ÿฟ", "๐Ÿ‘‡", "๐Ÿ‘‡๐Ÿป", "๐Ÿ‘‡๐Ÿผ", "๐Ÿ‘‡๐Ÿฝ", - "๐Ÿ‘‡๐Ÿพ", "๐Ÿ‘‡๐Ÿฟ", "๐Ÿ‘ˆ", "๐Ÿ‘ˆ๐Ÿป", "๐Ÿ‘ˆ๐Ÿผ", "๐Ÿ‘ˆ๐Ÿฝ", "๐Ÿ‘ˆ๐Ÿพ", "๐Ÿ‘ˆ๐Ÿฟ", "๐Ÿ‘‰", "๐Ÿ‘‰๐Ÿป", "๐Ÿ‘‰๐Ÿผ", "๐Ÿ‘‰๐Ÿฝ", "๐Ÿ‘‰๐Ÿพ", "๐Ÿ‘‰๐Ÿฟ", - "๐Ÿ‘Š", "๐Ÿ‘Š๐Ÿป", "๐Ÿ‘Š๐Ÿผ", "๐Ÿ‘Š๐Ÿฝ", "๐Ÿ‘Š๐Ÿพ", "๐Ÿ‘Š๐Ÿฟ", "๐Ÿ‘‹", "๐Ÿ‘‹๐Ÿป", "๐Ÿ‘‹๐Ÿผ", "๐Ÿ‘‹๐Ÿฝ", "๐Ÿ‘‹๐Ÿพ", "๐Ÿ‘‹๐Ÿฟ", "๐Ÿ‘Œ", "๐Ÿ‘Œ๐Ÿป", - "๐Ÿ‘Œ๐Ÿผ", "๐Ÿ‘Œ๐Ÿฝ", "๐Ÿ‘Œ๐Ÿพ", "๐Ÿ‘Œ๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ‘Ž", "๐Ÿ‘Ž๐Ÿป", "๐Ÿ‘Ž๐Ÿผ", "๐Ÿ‘Ž๐Ÿฝ", - "๐Ÿ‘Ž๐Ÿพ", "๐Ÿ‘Ž๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", - "๐Ÿ’…", "๐Ÿ’…๐Ÿป", "๐Ÿ’…๐Ÿผ", "๐Ÿ’…๐Ÿฝ", "๐Ÿ’…๐Ÿพ", "๐Ÿ’…๐Ÿฟ", "๐Ÿ’ช", "๐Ÿ’ช๐Ÿป", "๐Ÿ’ช๐Ÿผ", "๐Ÿ’ช๐Ÿฝ", "๐Ÿ’ช๐Ÿพ", "๐Ÿ’ช๐Ÿฟ", "๐Ÿ–๏ธ", "๐Ÿ–๐Ÿป", - "๐Ÿ–๐Ÿผ", "๐Ÿ–๐Ÿฝ", "๐Ÿ–๐Ÿพ", "๐Ÿ–๐Ÿฟ", "๐Ÿ–•", "๐Ÿ–•๐Ÿป", "๐Ÿ–•๐Ÿผ", "๐Ÿ–•๐Ÿฝ", "๐Ÿ–•๐Ÿพ", "๐Ÿ–•๐Ÿฟ", "๐Ÿ––", "๐Ÿ––๐Ÿป", "๐Ÿ––๐Ÿผ", "๐Ÿ––๐Ÿฝ", - "๐Ÿ––๐Ÿพ", "๐Ÿ––๐Ÿฟ", "๐Ÿ™Œ", "๐Ÿ™Œ๐Ÿป", "๐Ÿ™Œ๐Ÿผ", "๐Ÿ™Œ๐Ÿฝ", "๐Ÿ™Œ๐Ÿพ", "๐Ÿ™Œ๐Ÿฟ", "๐Ÿ™", "๐Ÿ™๐Ÿป", "๐Ÿ™๐Ÿผ", "๐Ÿ™๐Ÿฝ", "๐Ÿ™๐Ÿพ", "๐Ÿ™๐Ÿฟ", - "๐ŸคŒ", "๐ŸคŒ๐Ÿป", "๐ŸคŒ๐Ÿผ", "๐ŸคŒ๐Ÿฝ", "๐ŸคŒ๐Ÿพ", "๐ŸคŒ๐Ÿฟ", "๐Ÿค", "๐Ÿค๐Ÿป", "๐Ÿค๐Ÿผ", "๐Ÿค๐Ÿฝ", "๐Ÿค๐Ÿพ", "๐Ÿค๐Ÿฟ", "๐Ÿค˜", "๐Ÿค˜๐Ÿป", - "๐Ÿค˜๐Ÿผ", "๐Ÿค˜๐Ÿฝ", "๐Ÿค˜๐Ÿพ", "๐Ÿค˜๐Ÿฟ", "๐Ÿค™", "๐Ÿค™๐Ÿป", "๐Ÿค™๐Ÿผ", "๐Ÿค™๐Ÿฝ", "๐Ÿค™๐Ÿพ", "๐Ÿค™๐Ÿฟ", "๐Ÿคš", "๐Ÿคš๐Ÿป", "๐Ÿคš๐Ÿผ", "๐Ÿคš๐Ÿฝ", - "๐Ÿคš๐Ÿพ", "๐Ÿคš๐Ÿฟ", "๐Ÿค›", "๐Ÿค›๐Ÿป", "๐Ÿค›๐Ÿผ", "๐Ÿค›๐Ÿฝ", "๐Ÿค›๐Ÿพ", "๐Ÿค›๐Ÿฟ", "๐Ÿคœ", "๐Ÿคœ๐Ÿป", "๐Ÿคœ๐Ÿผ", "๐Ÿคœ๐Ÿฝ", "๐Ÿคœ๐Ÿพ", "๐Ÿคœ๐Ÿฟ", - "๐Ÿค", "๐Ÿคž", "๐Ÿคž๐Ÿป", "๐Ÿคž๐Ÿผ", "๐Ÿคž๐Ÿฝ", "๐Ÿคž๐Ÿพ", "๐Ÿคž๐Ÿฟ", "๐ŸคŸ", "๐ŸคŸ๐Ÿป", "๐ŸคŸ๐Ÿผ", "๐ŸคŸ๐Ÿฝ", "๐ŸคŸ๐Ÿพ", "๐ŸคŸ๐Ÿฟ", "๐Ÿคฒ", - "๐Ÿคฒ๐Ÿป", "๐Ÿคฒ๐Ÿผ", "๐Ÿคฒ๐Ÿฝ", "๐Ÿคฒ๐Ÿพ", "๐Ÿคฒ๐Ÿฟ", "๐Ÿคณ", "๐Ÿคณ๐Ÿป", "๐Ÿคณ๐Ÿผ", "๐Ÿคณ๐Ÿฝ", "๐Ÿคณ๐Ÿพ", "๐Ÿคณ๐Ÿฟ", "๐Ÿฆด", "๐Ÿฆต", "๐Ÿฆต๐Ÿป", - "๐Ÿฆต๐Ÿผ", "๐Ÿฆต๐Ÿฝ", "๐Ÿฆต๐Ÿพ", "๐Ÿฆต๐Ÿฟ", "๐Ÿฆถ", "๐Ÿฆถ๐Ÿป", "๐Ÿฆถ๐Ÿผ", "๐Ÿฆถ๐Ÿฝ", "๐Ÿฆถ๐Ÿพ", "๐Ÿฆถ๐Ÿฟ", "๐Ÿฆท", "๐Ÿฆป", "๐Ÿฆป๐Ÿป", "๐Ÿฆป๐Ÿผ", - "๐Ÿฆป๐Ÿฝ", "๐Ÿฆป๐Ÿพ", "๐Ÿฆป๐Ÿฟ", "๐Ÿฆพ", "๐Ÿฆฟ", "๐Ÿง ", "๐Ÿซ€", "๐Ÿซ", + "โ˜๏ธ", "โ˜๐Ÿป", "โ˜๐Ÿผ", "โ˜๐Ÿฝ", "โ˜๐Ÿพ", "โ˜๐Ÿฟ", "โœŠ", "โœŠ๐Ÿป", "โœŠ๐Ÿผ", + "โœŠ๐Ÿฝ", "โœŠ๐Ÿพ", "โœŠ๐Ÿฟ", "โœ‹", "โœ‹๐Ÿป", "โœ‹๐Ÿผ", "โœ‹๐Ÿฝ", "โœ‹๐Ÿพ", "โœ‹๐Ÿฟ", + "โœŒ๏ธ", "โœŒ๐Ÿป", "โœŒ๐Ÿผ", "โœŒ๐Ÿฝ", "โœŒ๐Ÿพ", "โœŒ๐Ÿฟ", "โœ๏ธ", "โœ๐Ÿป", "โœ๐Ÿผ", + "โœ๐Ÿฝ", "โœ๐Ÿพ", "โœ๐Ÿฟ", "๐Ÿ‘€", "๐Ÿ‘๏ธ", "๐Ÿ‘‚", "๐Ÿ‘‚๐Ÿป", "๐Ÿ‘‚๐Ÿผ", "๐Ÿ‘‚๐Ÿฝ", + "๐Ÿ‘‚๐Ÿพ", "๐Ÿ‘‚๐Ÿฟ", "๐Ÿ‘ƒ", "๐Ÿ‘ƒ๐Ÿป", "๐Ÿ‘ƒ๐Ÿผ", "๐Ÿ‘ƒ๐Ÿฝ", "๐Ÿ‘ƒ๐Ÿพ", "๐Ÿ‘ƒ๐Ÿฟ", "๐Ÿ‘„", + "๐Ÿ‘…", "๐Ÿ‘†", "๐Ÿ‘†๐Ÿป", "๐Ÿ‘†๐Ÿผ", "๐Ÿ‘†๐Ÿฝ", "๐Ÿ‘†๐Ÿพ", "๐Ÿ‘†๐Ÿฟ", "๐Ÿ‘‡", "๐Ÿ‘‡๐Ÿป", + "๐Ÿ‘‡๐Ÿผ", "๐Ÿ‘‡๐Ÿฝ", "๐Ÿ‘‡๐Ÿพ", "๐Ÿ‘‡๐Ÿฟ", "๐Ÿ‘ˆ", "๐Ÿ‘ˆ๐Ÿป", "๐Ÿ‘ˆ๐Ÿผ", "๐Ÿ‘ˆ๐Ÿฝ", "๐Ÿ‘ˆ๐Ÿพ", + "๐Ÿ‘ˆ๐Ÿฟ", "๐Ÿ‘‰", "๐Ÿ‘‰๐Ÿป", "๐Ÿ‘‰๐Ÿผ", "๐Ÿ‘‰๐Ÿฝ", "๐Ÿ‘‰๐Ÿพ", "๐Ÿ‘‰๐Ÿฟ", "๐Ÿ‘Š", "๐Ÿ‘Š๐Ÿป", + "๐Ÿ‘Š๐Ÿผ", "๐Ÿ‘Š๐Ÿฝ", "๐Ÿ‘Š๐Ÿพ", "๐Ÿ‘Š๐Ÿฟ", "๐Ÿ‘‹", "๐Ÿ‘‹๐Ÿป", "๐Ÿ‘‹๐Ÿผ", "๐Ÿ‘‹๐Ÿฝ", "๐Ÿ‘‹๐Ÿพ", + "๐Ÿ‘‹๐Ÿฟ", "๐Ÿ‘Œ", "๐Ÿ‘Œ๐Ÿป", "๐Ÿ‘Œ๐Ÿผ", "๐Ÿ‘Œ๐Ÿฝ", "๐Ÿ‘Œ๐Ÿพ", "๐Ÿ‘Œ๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", + "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ‘Ž", "๐Ÿ‘Ž๐Ÿป", "๐Ÿ‘Ž๐Ÿผ", "๐Ÿ‘Ž๐Ÿฝ", "๐Ÿ‘Ž๐Ÿพ", + "๐Ÿ‘Ž๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ‘", "๐Ÿ‘๐Ÿป", + "๐Ÿ‘๐Ÿผ", "๐Ÿ‘๐Ÿฝ", "๐Ÿ‘๐Ÿพ", "๐Ÿ‘๐Ÿฟ", "๐Ÿ’…", "๐Ÿ’…๐Ÿป", "๐Ÿ’…๐Ÿผ", "๐Ÿ’…๐Ÿฝ", "๐Ÿ’…๐Ÿพ", + "๐Ÿ’…๐Ÿฟ", "๐Ÿ’ช", "๐Ÿ’ช๐Ÿป", "๐Ÿ’ช๐Ÿผ", "๐Ÿ’ช๐Ÿฝ", "๐Ÿ’ช๐Ÿพ", "๐Ÿ’ช๐Ÿฟ", "๐Ÿ–๏ธ", "๐Ÿ–๐Ÿป", + "๐Ÿ–๐Ÿผ", "๐Ÿ–๐Ÿฝ", "๐Ÿ–๐Ÿพ", "๐Ÿ–๐Ÿฟ", "๐Ÿ–•", "๐Ÿ–•๐Ÿป", "๐Ÿ–•๐Ÿผ", "๐Ÿ–•๐Ÿฝ", "๐Ÿ–•๐Ÿพ", + "๐Ÿ–•๐Ÿฟ", "๐Ÿ––", "๐Ÿ––๐Ÿป", "๐Ÿ––๐Ÿผ", "๐Ÿ––๐Ÿฝ", "๐Ÿ––๐Ÿพ", "๐Ÿ––๐Ÿฟ", "๐Ÿ™Œ", "๐Ÿ™Œ๐Ÿป", + "๐Ÿ™Œ๐Ÿผ", "๐Ÿ™Œ๐Ÿฝ", "๐Ÿ™Œ๐Ÿพ", "๐Ÿ™Œ๐Ÿฟ", "๐Ÿ™", "๐Ÿ™๐Ÿป", "๐Ÿ™๐Ÿผ", "๐Ÿ™๐Ÿฝ", "๐Ÿ™๐Ÿพ", + "๐Ÿ™๐Ÿฟ", "๐ŸคŒ", "๐ŸคŒ๐Ÿป", "๐ŸคŒ๐Ÿผ", "๐ŸคŒ๐Ÿฝ", "๐ŸคŒ๐Ÿพ", "๐ŸคŒ๐Ÿฟ", "๐Ÿค", "๐Ÿค๐Ÿป", + "๐Ÿค๐Ÿผ", "๐Ÿค๐Ÿฝ", "๐Ÿค๐Ÿพ", "๐Ÿค๐Ÿฟ", "๐Ÿค˜", "๐Ÿค˜๐Ÿป", "๐Ÿค˜๐Ÿผ", "๐Ÿค˜๐Ÿฝ", "๐Ÿค˜๐Ÿพ", + "๐Ÿค˜๐Ÿฟ", "๐Ÿค™", "๐Ÿค™๐Ÿป", "๐Ÿค™๐Ÿผ", "๐Ÿค™๐Ÿฝ", "๐Ÿค™๐Ÿพ", "๐Ÿค™๐Ÿฟ", "๐Ÿคš", "๐Ÿคš๐Ÿป", + "๐Ÿคš๐Ÿผ", "๐Ÿคš๐Ÿฝ", "๐Ÿคš๐Ÿพ", "๐Ÿคš๐Ÿฟ", "๐Ÿค›", "๐Ÿค›๐Ÿป", "๐Ÿค›๐Ÿผ", "๐Ÿค›๐Ÿฝ", "๐Ÿค›๐Ÿพ", + "๐Ÿค›๐Ÿฟ", "๐Ÿคœ", "๐Ÿคœ๐Ÿป", "๐Ÿคœ๐Ÿผ", "๐Ÿคœ๐Ÿฝ", "๐Ÿคœ๐Ÿพ", "๐Ÿคœ๐Ÿฟ", "๐Ÿค", "๐Ÿคž", + "๐Ÿคž๐Ÿป", "๐Ÿคž๐Ÿผ", "๐Ÿคž๐Ÿฝ", "๐Ÿคž๐Ÿพ", "๐Ÿคž๐Ÿฟ", "๐ŸคŸ", "๐ŸคŸ๐Ÿป", "๐ŸคŸ๐Ÿผ", "๐ŸคŸ๐Ÿฝ", + "๐ŸคŸ๐Ÿพ", "๐ŸคŸ๐Ÿฟ", "๐Ÿคฒ", "๐Ÿคฒ๐Ÿป", "๐Ÿคฒ๐Ÿผ", "๐Ÿคฒ๐Ÿฝ", "๐Ÿคฒ๐Ÿพ", "๐Ÿคฒ๐Ÿฟ", "๐Ÿคณ", + "๐Ÿคณ๐Ÿป", "๐Ÿคณ๐Ÿผ", "๐Ÿคณ๐Ÿฝ", "๐Ÿคณ๐Ÿพ", "๐Ÿคณ๐Ÿฟ", "๐Ÿฆด", "๐Ÿฆต", "๐Ÿฆต๐Ÿป", "๐Ÿฆต๐Ÿผ", + "๐Ÿฆต๐Ÿฝ", "๐Ÿฆต๐Ÿพ", "๐Ÿฆต๐Ÿฟ", "๐Ÿฆถ", "๐Ÿฆถ๐Ÿป", "๐Ÿฆถ๐Ÿผ", "๐Ÿฆถ๐Ÿฝ", "๐Ÿฆถ๐Ÿพ", "๐Ÿฆถ๐Ÿฟ", + "๐Ÿฆท", "๐Ÿฆป", "๐Ÿฆป๐Ÿป", "๐Ÿฆป๐Ÿผ", "๐Ÿฆป๐Ÿฝ", "๐Ÿฆป๐Ÿพ", "๐Ÿฆป๐Ÿฟ", "๐Ÿฆพ", "๐Ÿฆฟ", + "๐Ÿง ", "๐Ÿซ€", "๐Ÿซ", }); const auto personEmojis = std::to_array({ @@ -333,141 +343,177 @@ const auto personEmojis = std::to_array({ }); const auto natureEmojis = std::to_array({ - "โ˜˜๏ธ", "๐ŸŒฑ", - "๐ŸŒฒ", "๐ŸŒณ", - "๐ŸŒด", "๐ŸŒต", - "๐ŸŒท", "๐ŸŒธ", - "๐ŸŒน", "๐ŸŒบ", - "๐ŸŒป", "๐ŸŒผ", - "๐ŸŒพ", "๐ŸŒฟ", - "๐Ÿ€", "๐Ÿ", - "๐Ÿ‚", "๐Ÿƒ", - "๐Ÿต๏ธ", "๐Ÿ€", - "๐Ÿ", "๐Ÿ‚", - "๐Ÿƒ", "๐Ÿ„", - "๐Ÿ…", "๐Ÿ†", - "๐Ÿ‡", "๐Ÿˆ", + "โ˜˜๏ธ", "๐ŸŒฑ", + "๐ŸŒฒ", "๐ŸŒณ", + "๐ŸŒด", "๐ŸŒต", + "๐ŸŒท", "๐ŸŒธ", + "๐ŸŒน", "๐ŸŒบ", + "๐ŸŒป", "๐ŸŒผ", + "๐ŸŒพ", "๐ŸŒฟ", + "๐Ÿ€", "๐Ÿ", + "๐Ÿ‚", "๐Ÿƒ", + "๐Ÿต๏ธ", "๐Ÿ€", + "๐Ÿ", "๐Ÿ‚", + "๐Ÿƒ", "๐Ÿ„", + "๐Ÿ…", "๐Ÿ†", + "๐Ÿ‡", "๐Ÿˆ", "๐Ÿˆโ€โฌ›", "๐Ÿ‰", - "๐ŸŠ", "๐Ÿ‹", - "๐ŸŒ", "๐Ÿ", - "๐ŸŽ", "๐Ÿ", - "๐Ÿ", "๐Ÿ‘", - "๐Ÿ’", "๐Ÿ“", - "๐Ÿ”", "๐Ÿ•", + "๐ŸŠ", "๐Ÿ‹", + "๐ŸŒ", "๐Ÿ", + "๐ŸŽ", "๐Ÿ", + "๐Ÿ", "๐Ÿ‘", + "๐Ÿ’", "๐Ÿ“", + "๐Ÿ”", "๐Ÿ•", "๐Ÿ•โ€๐Ÿฆบ", "๐Ÿ–", - "๐Ÿ—", "๐Ÿ˜", - "๐Ÿ™", "๐Ÿš", - "๐Ÿ›", "๐Ÿœ", - "๐Ÿ", "๐Ÿž", - "๐ŸŸ", "๐Ÿ ", - "๐Ÿก", "๐Ÿข", - "๐Ÿฃ", "๐Ÿค", - "๐Ÿฅ", "๐Ÿฆ", - "๐Ÿง", "๐Ÿจ", - "๐Ÿฉ", "๐Ÿช", - "๐Ÿซ", "๐Ÿฌ", - "๐Ÿญ", "๐Ÿฎ", - "๐Ÿฏ", "๐Ÿฐ", - "๐Ÿฑ", "๐Ÿฒ", - "๐Ÿณ", "๐Ÿด", - "๐Ÿต", "๐Ÿถ", - "๐Ÿท", "๐Ÿธ", - "๐Ÿน", "๐Ÿบ", - "๐Ÿป", "๐Ÿปโ€โ„๏ธ", - "๐Ÿผ", "๐Ÿฝ", - "๐Ÿพ", "๐Ÿฟ๏ธ", - "๐Ÿ’", "๐Ÿ’ฎ", - "๐Ÿ•Š๏ธ", "๐Ÿ•ท๏ธ", - "๐Ÿ•ธ๏ธ", "๐Ÿฅ€", - "๐Ÿฆ", "๐Ÿฆ‚", - "๐Ÿฆƒ", "๐Ÿฆ„", - "๐Ÿฆ…", "๐Ÿฆ†", - "๐Ÿฆ‡", "๐Ÿฆˆ", - "๐Ÿฆ‰", "๐ŸฆŠ", - "๐Ÿฆ‹", "๐ŸฆŒ", - "๐Ÿฆ", "๐ŸฆŽ", - "๐Ÿฆ", "๐Ÿฆ’", - "๐Ÿฆ“", "๐Ÿฆ”", - "๐Ÿฆ•", "๐Ÿฆ–", - "๐Ÿฆ—", "๐Ÿฆ˜", - "๐Ÿฆ™", "๐Ÿฆš", - "๐Ÿฆ›", "๐Ÿฆœ", - "๐Ÿฆ", "๐ŸฆŸ", - "๐Ÿฆ ", "๐Ÿฆก", - "๐Ÿฆข", "๐Ÿฆฃ", - "๐Ÿฆค", "๐Ÿฆฅ", - "๐Ÿฆฆ", "๐Ÿฆง", - "๐Ÿฆจ", "๐Ÿฆฉ", - "๐Ÿฆซ", "๐Ÿฆฌ", - "๐Ÿฆญ", "๐Ÿฆฎ", - "๐Ÿชฐ", "๐Ÿชฑ", - "๐Ÿชฒ", "๐Ÿชณ", - "๐Ÿชด", "๐Ÿชถ", + "๐Ÿ—", "๐Ÿ˜", + "๐Ÿ™", "๐Ÿš", + "๐Ÿ›", "๐Ÿœ", + "๐Ÿ", "๐Ÿž", + "๐ŸŸ", "๐Ÿ ", + "๐Ÿก", "๐Ÿข", + "๐Ÿฃ", "๐Ÿค", + "๐Ÿฅ", "๐Ÿฆ", + "๐Ÿง", "๐Ÿจ", + "๐Ÿฉ", "๐Ÿช", + "๐Ÿซ", "๐Ÿฌ", + "๐Ÿญ", "๐Ÿฎ", + "๐Ÿฏ", "๐Ÿฐ", + "๐Ÿฑ", "๐Ÿฒ", + "๐Ÿณ", "๐Ÿด", + "๐Ÿต", "๐Ÿถ", + "๐Ÿท", "๐Ÿธ", + "๐Ÿน", "๐Ÿบ", + "๐Ÿป", "๐Ÿปโ€โ„๏ธ", + "๐Ÿผ", "๐Ÿฝ", + "๐Ÿพ", "๐Ÿฟ๏ธ", + "๐Ÿ’", "๐Ÿ’ฎ", + "๐Ÿ•Š๏ธ", "๐Ÿ•ท๏ธ", + "๐Ÿ•ธ๏ธ", "๐Ÿฅ€", + "๐Ÿฆ", "๐Ÿฆ‚", + "๐Ÿฆƒ", "๐Ÿฆ„", + "๐Ÿฆ…", "๐Ÿฆ†", + "๐Ÿฆ‡", "๐Ÿฆˆ", + "๐Ÿฆ‰", "๐ŸฆŠ", + "๐Ÿฆ‹", "๐ŸฆŒ", + "๐Ÿฆ", "๐ŸฆŽ", + "๐Ÿฆ", "๐Ÿฆ’", + "๐Ÿฆ“", "๐Ÿฆ”", + "๐Ÿฆ•", "๐Ÿฆ–", + "๐Ÿฆ—", "๐Ÿฆ˜", + "๐Ÿฆ™", "๐Ÿฆš", + "๐Ÿฆ›", "๐Ÿฆœ", + "๐Ÿฆ", "๐ŸฆŸ", + "๐Ÿฆ ", "๐Ÿฆก", + "๐Ÿฆข", "๐Ÿฆฃ", + "๐Ÿฆค", "๐Ÿฆฅ", + "๐Ÿฆฆ", "๐Ÿฆง", + "๐Ÿฆจ", "๐Ÿฆฉ", + "๐Ÿฆซ", "๐Ÿฆฌ", + "๐Ÿฆญ", "๐Ÿฆฎ", + "๐Ÿชฐ", "๐Ÿชฑ", + "๐Ÿชฒ", "๐Ÿชณ", + "๐Ÿชด", "๐Ÿชถ", }); const auto foodEmojis = std::to_array({ - "โ˜•", "๐ŸŒญ", "๐ŸŒฎ", "๐ŸŒฏ", "๐ŸŒฐ", "๐ŸŒถ๏ธ", "๐ŸŒฝ", "๐Ÿ„", "๐Ÿ…", "๐Ÿ†", "๐Ÿ‡", "๐Ÿˆ", "๐Ÿ‰", "๐ŸŠ", "๐Ÿ‹", "๐ŸŒ", "๐Ÿ", "๐ŸŽ", "๐Ÿ", - "๐Ÿ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", "๐Ÿ”", "๐Ÿ•", "๐Ÿ–", "๐Ÿ—", "๐Ÿ˜", "๐Ÿ™", "๐Ÿš", "๐Ÿ›", "๐Ÿœ", "๐Ÿ", "๐Ÿž", "๐ŸŸ", "๐Ÿ ", "๐Ÿก", "๐Ÿข", - "๐Ÿฃ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿง", "๐Ÿจ", "๐Ÿฉ", "๐Ÿช", "๐Ÿซ", "๐Ÿฌ", "๐Ÿญ", "๐Ÿฎ", "๐Ÿฏ", "๐Ÿฐ", "๐Ÿฑ", "๐Ÿฒ", "๐Ÿณ", "๐Ÿด", "๐Ÿต", - "๐Ÿถ", "๐Ÿท", "๐Ÿธ", "๐Ÿน", "๐Ÿบ", "๐Ÿป", "๐Ÿผ", "๐Ÿฝ๏ธ", "๐Ÿพ", "๐Ÿฟ", "๐ŸŽ‚", "๐Ÿบ", "๐Ÿ”ช", "๐Ÿฅ‚", "๐Ÿฅƒ", "๐Ÿฅ„", "๐Ÿฅ", "๐Ÿฅ‘", "๐Ÿฅ’", - "๐Ÿฅ“", "๐Ÿฅ”", "๐Ÿฅ•", "๐Ÿฅ–", "๐Ÿฅ—", "๐Ÿฅ˜", "๐Ÿฅ™", "๐Ÿฅš", "๐Ÿฅ›", "๐Ÿฅœ", "๐Ÿฅ", "๐Ÿฅž", "๐ŸฅŸ", "๐Ÿฅ ", "๐Ÿฅก", "๐Ÿฅข", "๐Ÿฅฃ", "๐Ÿฅค", "๐Ÿฅฅ", - "๐Ÿฅฆ", "๐Ÿฅง", "๐Ÿฅจ", "๐Ÿฅฉ", "๐Ÿฅช", "๐Ÿฅซ", "๐Ÿฅฌ", "๐Ÿฅญ", "๐Ÿฅฎ", "๐Ÿฅฏ", "๐Ÿฆ€", "๐Ÿฆ", "๐Ÿฆ‘", "๐Ÿฆž", "๐Ÿฆช", "๐Ÿง€", "๐Ÿง", "๐Ÿง‚", "๐Ÿงƒ", - "๐Ÿง„", "๐Ÿง…", "๐Ÿง†", "๐Ÿง‡", "๐Ÿงˆ", "๐Ÿง‰", "๐ŸงŠ", "๐Ÿง‹", "๐Ÿซ", "๐Ÿซ‘", "๐Ÿซ’", "๐Ÿซ“", "๐Ÿซ”", "๐Ÿซ•", "๐Ÿซ–", + "โ˜•", "๐ŸŒญ", "๐ŸŒฎ", "๐ŸŒฏ", "๐ŸŒฐ", "๐ŸŒถ๏ธ", "๐ŸŒฝ", "๐Ÿ„", "๐Ÿ…", "๐Ÿ†", "๐Ÿ‡", "๐Ÿˆ", "๐Ÿ‰", + "๐ŸŠ", "๐Ÿ‹", "๐ŸŒ", "๐Ÿ", "๐ŸŽ", "๐Ÿ", "๐Ÿ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", "๐Ÿ”", "๐Ÿ•", "๐Ÿ–", + "๐Ÿ—", "๐Ÿ˜", "๐Ÿ™", "๐Ÿš", "๐Ÿ›", "๐Ÿœ", "๐Ÿ", "๐Ÿž", "๐ŸŸ", "๐Ÿ ", "๐Ÿก", "๐Ÿข", "๐Ÿฃ", + "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿง", "๐Ÿจ", "๐Ÿฉ", "๐Ÿช", "๐Ÿซ", "๐Ÿฌ", "๐Ÿญ", "๐Ÿฎ", "๐Ÿฏ", "๐Ÿฐ", + "๐Ÿฑ", "๐Ÿฒ", "๐Ÿณ", "๐Ÿด", "๐Ÿต", "๐Ÿถ", "๐Ÿท", "๐Ÿธ", "๐Ÿน", "๐Ÿบ", "๐Ÿป", "๐Ÿผ", "๐Ÿฝ๏ธ", + "๐Ÿพ", "๐Ÿฟ", "๐ŸŽ‚", "๐Ÿบ", "๐Ÿ”ช", "๐Ÿฅ‚", "๐Ÿฅƒ", "๐Ÿฅ„", "๐Ÿฅ", "๐Ÿฅ‘", "๐Ÿฅ’", "๐Ÿฅ“", "๐Ÿฅ”", + "๐Ÿฅ•", "๐Ÿฅ–", "๐Ÿฅ—", "๐Ÿฅ˜", "๐Ÿฅ™", "๐Ÿฅš", "๐Ÿฅ›", "๐Ÿฅœ", "๐Ÿฅ", "๐Ÿฅž", "๐ŸฅŸ", "๐Ÿฅ ", "๐Ÿฅก", + "๐Ÿฅข", "๐Ÿฅฃ", "๐Ÿฅค", "๐Ÿฅฅ", "๐Ÿฅฆ", "๐Ÿฅง", "๐Ÿฅจ", "๐Ÿฅฉ", "๐Ÿฅช", "๐Ÿฅซ", "๐Ÿฅฌ", "๐Ÿฅญ", "๐Ÿฅฎ", + "๐Ÿฅฏ", "๐Ÿฆ€", "๐Ÿฆ", "๐Ÿฆ‘", "๐Ÿฆž", "๐Ÿฆช", "๐Ÿง€", "๐Ÿง", "๐Ÿง‚", "๐Ÿงƒ", "๐Ÿง„", "๐Ÿง…", "๐Ÿง†", + "๐Ÿง‡", "๐Ÿงˆ", "๐Ÿง‰", "๐ŸงŠ", "๐Ÿง‹", "๐Ÿซ", "๐Ÿซ‘", "๐Ÿซ’", "๐Ÿซ“", "๐Ÿซ”", "๐Ÿซ•", "๐Ÿซ–", }); const auto travelEmojis = std::to_array({ - "โŒš", "โŒ›", "โฐ", "โฑ๏ธ", "โฒ๏ธ", "โณ", "โ˜€๏ธ", "โ˜๏ธ", "โ˜‚๏ธ", "โ˜ƒ๏ธ", "โ˜„๏ธ", "โ˜”", "โ™จ๏ธ", "โš“", "โšก", "โ›„", "โ›…", "โ›ˆ๏ธ", - "โ›ฉ๏ธ", "โ›ช", "โ›ฐ๏ธ", "โ›ฑ๏ธ", "โ›ฒ", "โ›ด๏ธ", "โ›ต", "โ›บ", "โ›ฝ", "โœˆ๏ธ", "โ„๏ธ", "โญ", "๐ŸŒ€", "๐ŸŒ", "๐ŸŒ‚", "๐ŸŒƒ", "๐ŸŒ„", "๐ŸŒ…", - "๐ŸŒ†", "๐ŸŒ‡", "๐ŸŒˆ", "๐ŸŒ‰", "๐ŸŒŠ", "๐ŸŒ‹", "๐ŸŒŒ", "๐ŸŒ", "๐ŸŒŽ", "๐ŸŒ", "๐ŸŒ", "๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", "๐ŸŒ”", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", - "๐ŸŒ˜", "๐ŸŒ™", "๐ŸŒš", "๐ŸŒ›", "๐ŸŒœ", "๐ŸŒ", "๐ŸŒž", "๐ŸŒŸ", "๐ŸŒ ", "๐ŸŒก๏ธ", "๐ŸŒค๏ธ", "๐ŸŒฅ๏ธ", "๐ŸŒฆ๏ธ", "๐ŸŒง๏ธ", "๐ŸŒจ๏ธ", "๐ŸŒฉ๏ธ", "๐ŸŒช๏ธ", "๐ŸŒซ๏ธ", - "๐ŸŒฌ๏ธ", "๐ŸŽ ", "๐ŸŽก", "๐ŸŽข", "๐ŸŽช", "๐Ÿ๏ธ", "๐ŸŽ๏ธ", "๐Ÿ”๏ธ", "๐Ÿ•๏ธ", "๐Ÿ–๏ธ", "๐Ÿ—๏ธ", "๐Ÿ˜๏ธ", "๐Ÿ™๏ธ", "๐Ÿš๏ธ", "๐Ÿ›๏ธ", "๐Ÿœ๏ธ", "๐Ÿ๏ธ", "๐Ÿž๏ธ", - "๐ŸŸ๏ธ", "๐Ÿ ", "๐Ÿก", "๐Ÿข", "๐Ÿฃ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿจ", "๐Ÿฉ", "๐Ÿช", "๐Ÿซ", "๐Ÿฌ", "๐Ÿญ", "๐Ÿฏ", "๐Ÿฐ", "๐Ÿ’ˆ", "๐Ÿ’’", - "๐Ÿ’ง", "๐Ÿ’บ", "๐Ÿ”ฅ", "๐Ÿ•‹", "๐Ÿ•Œ", "๐Ÿ•", "๐Ÿ•", "๐Ÿ•‘", "๐Ÿ•’", "๐Ÿ•“", "๐Ÿ•”", "๐Ÿ••", "๐Ÿ•–", "๐Ÿ•—", "๐Ÿ•˜", "๐Ÿ•™", "๐Ÿ•š", "๐Ÿ•›", - "๐Ÿ•œ", "๐Ÿ•", "๐Ÿ•ž", "๐Ÿ•Ÿ", "๐Ÿ• ", "๐Ÿ•ก", "๐Ÿ•ข", "๐Ÿ•ฃ", "๐Ÿ•ค", "๐Ÿ•ฅ", "๐Ÿ•ฆ", "๐Ÿ•ง", "๐Ÿ•ฐ๏ธ", "๐Ÿ—บ๏ธ", "๐Ÿ—ป", "๐Ÿ—ผ", "๐Ÿ—ฝ", "๐Ÿ—พ", - "๐Ÿš€", "๐Ÿš", "๐Ÿš‚", "๐Ÿšƒ", "๐Ÿš„", "๐Ÿš…", "๐Ÿš†", "๐Ÿš‡", "๐Ÿšˆ", "๐Ÿš‰", "๐ŸšŠ", "๐Ÿš‹", "๐ŸšŒ", "๐Ÿš", "๐ŸšŽ", "๐Ÿš", "๐Ÿš", "๐Ÿš‘", - "๐Ÿš’", "๐Ÿš“", "๐Ÿš”", "๐Ÿš•", "๐Ÿš–", "๐Ÿš—", "๐Ÿš˜", "๐Ÿš™", "๐Ÿšš", "๐Ÿš›", "๐Ÿšœ", "๐Ÿš", "๐Ÿšž", "๐ŸšŸ", "๐Ÿš ", "๐Ÿšก", "๐Ÿšข", "๐Ÿšค", - "๐Ÿšฅ", "๐Ÿšฆ", "๐Ÿšง", "๐Ÿšจ", "๐Ÿšฒ", "๐Ÿ›Ž๏ธ", "๐Ÿ›‘", "๐Ÿ›•", "๐Ÿ›–", "๐Ÿ›ข๏ธ", "๐Ÿ›ฃ๏ธ", "๐Ÿ›ค๏ธ", "๐Ÿ›ฅ๏ธ", "๐Ÿ›ฉ๏ธ", "๐Ÿ›ซ", "๐Ÿ›ฌ", "๐Ÿ›ฐ๏ธ", "๐Ÿ›ณ๏ธ", - "๐Ÿ›ด", "๐Ÿ›ต", "๐Ÿ›ถ", "๐Ÿ›ธ", "๐Ÿ›น", "๐Ÿ›บ", "๐Ÿ›ป", "๐Ÿ›ผ", "๐Ÿฆผ", "๐Ÿฆฝ", "๐Ÿงญ", "๐Ÿงฑ", "๐Ÿงณ", "๐Ÿช‚", "๐Ÿช", "๐Ÿชจ", "๐Ÿชต", + "โŒš", "โŒ›", "โฐ", "โฑ๏ธ", "โฒ๏ธ", "โณ", "โ˜€๏ธ", "โ˜๏ธ", "โ˜‚๏ธ", "โ˜ƒ๏ธ", + "โ˜„๏ธ", "โ˜”", "โ™จ๏ธ", "โš“", "โšก", "โ›„", "โ›…", "โ›ˆ๏ธ", "โ›ฉ๏ธ", "โ›ช", + "โ›ฐ๏ธ", "โ›ฑ๏ธ", "โ›ฒ", "โ›ด๏ธ", "โ›ต", "โ›บ", "โ›ฝ", "โœˆ๏ธ", "โ„๏ธ", "โญ", + "๐ŸŒ€", "๐ŸŒ", "๐ŸŒ‚", "๐ŸŒƒ", "๐ŸŒ„", "๐ŸŒ…", "๐ŸŒ†", "๐ŸŒ‡", "๐ŸŒˆ", "๐ŸŒ‰", + "๐ŸŒŠ", "๐ŸŒ‹", "๐ŸŒŒ", "๐ŸŒ", "๐ŸŒŽ", "๐ŸŒ", "๐ŸŒ", "๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", + "๐ŸŒ”", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", "๐ŸŒ˜", "๐ŸŒ™", "๐ŸŒš", "๐ŸŒ›", "๐ŸŒœ", "๐ŸŒ", + "๐ŸŒž", "๐ŸŒŸ", "๐ŸŒ ", "๐ŸŒก๏ธ", "๐ŸŒค๏ธ", "๐ŸŒฅ๏ธ", "๐ŸŒฆ๏ธ", "๐ŸŒง๏ธ", "๐ŸŒจ๏ธ", "๐ŸŒฉ๏ธ", + "๐ŸŒช๏ธ", "๐ŸŒซ๏ธ", "๐ŸŒฌ๏ธ", "๐ŸŽ ", "๐ŸŽก", "๐ŸŽข", "๐ŸŽช", "๐Ÿ๏ธ", "๐ŸŽ๏ธ", "๐Ÿ”๏ธ", + "๐Ÿ•๏ธ", "๐Ÿ–๏ธ", "๐Ÿ—๏ธ", "๐Ÿ˜๏ธ", "๐Ÿ™๏ธ", "๐Ÿš๏ธ", "๐Ÿ›๏ธ", "๐Ÿœ๏ธ", "๐Ÿ๏ธ", "๐Ÿž๏ธ", + "๐ŸŸ๏ธ", "๐Ÿ ", "๐Ÿก", "๐Ÿข", "๐Ÿฃ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿจ", "๐Ÿฉ", + "๐Ÿช", "๐Ÿซ", "๐Ÿฌ", "๐Ÿญ", "๐Ÿฏ", "๐Ÿฐ", "๐Ÿ’ˆ", "๐Ÿ’’", "๐Ÿ’ง", "๐Ÿ’บ", + "๐Ÿ”ฅ", "๐Ÿ•‹", "๐Ÿ•Œ", "๐Ÿ•", "๐Ÿ•", "๐Ÿ•‘", "๐Ÿ•’", "๐Ÿ•“", "๐Ÿ•”", "๐Ÿ••", + "๐Ÿ•–", "๐Ÿ•—", "๐Ÿ•˜", "๐Ÿ•™", "๐Ÿ•š", "๐Ÿ•›", "๐Ÿ•œ", "๐Ÿ•", "๐Ÿ•ž", "๐Ÿ•Ÿ", + "๐Ÿ• ", "๐Ÿ•ก", "๐Ÿ•ข", "๐Ÿ•ฃ", "๐Ÿ•ค", "๐Ÿ•ฅ", "๐Ÿ•ฆ", "๐Ÿ•ง", "๐Ÿ•ฐ๏ธ", "๐Ÿ—บ๏ธ", + "๐Ÿ—ป", "๐Ÿ—ผ", "๐Ÿ—ฝ", "๐Ÿ—พ", "๐Ÿš€", "๐Ÿš", "๐Ÿš‚", "๐Ÿšƒ", "๐Ÿš„", "๐Ÿš…", + "๐Ÿš†", "๐Ÿš‡", "๐Ÿšˆ", "๐Ÿš‰", "๐ŸšŠ", "๐Ÿš‹", "๐ŸšŒ", "๐Ÿš", "๐ŸšŽ", "๐Ÿš", + "๐Ÿš", "๐Ÿš‘", "๐Ÿš’", "๐Ÿš“", "๐Ÿš”", "๐Ÿš•", "๐Ÿš–", "๐Ÿš—", "๐Ÿš˜", "๐Ÿš™", + "๐Ÿšš", "๐Ÿš›", "๐Ÿšœ", "๐Ÿš", "๐Ÿšž", "๐ŸšŸ", "๐Ÿš ", "๐Ÿšก", "๐Ÿšข", "๐Ÿšค", + "๐Ÿšฅ", "๐Ÿšฆ", "๐Ÿšง", "๐Ÿšจ", "๐Ÿšฒ", "๐Ÿ›Ž๏ธ", "๐Ÿ›‘", "๐Ÿ›•", "๐Ÿ›–", "๐Ÿ›ข๏ธ", + "๐Ÿ›ฃ๏ธ", "๐Ÿ›ค๏ธ", "๐Ÿ›ฅ๏ธ", "๐Ÿ›ฉ๏ธ", "๐Ÿ›ซ", "๐Ÿ›ฌ", "๐Ÿ›ฐ๏ธ", "๐Ÿ›ณ๏ธ", "๐Ÿ›ด", "๐Ÿ›ต", + "๐Ÿ›ถ", "๐Ÿ›ธ", "๐Ÿ›น", "๐Ÿ›บ", "๐Ÿ›ป", "๐Ÿ›ผ", "๐Ÿฆผ", "๐Ÿฆฝ", "๐Ÿงญ", "๐Ÿงฑ", + "๐Ÿงณ", "๐Ÿช‚", "๐Ÿช", "๐Ÿชจ", "๐Ÿชต", }); const auto activityEmojis = std::to_array({ - "โ™Ÿ๏ธ", "โ™ ๏ธ", "โ™ฃ๏ธ", "โ™ฅ๏ธ", "โ™ฆ๏ธ", "โšฝ", "โšพ", "โ›ณ", "โ›ธ๏ธ", "โœจ", "๐Ÿ€„", "๐Ÿƒ", "๐ŸŽ€", "๐ŸŽ", "๐ŸŽƒ", "๐ŸŽ„", "๐ŸŽ†", - "๐ŸŽ‡", "๐ŸŽˆ", "๐ŸŽ‰", "๐ŸŽŠ", "๐ŸŽ‹", "๐ŸŽ", "๐ŸŽŽ", "๐ŸŽ", "๐ŸŽ", "๐ŸŽ‘", "๐ŸŽ–๏ธ", "๐ŸŽ—๏ธ", "๐ŸŽŸ๏ธ", "๐ŸŽฃ", "๐ŸŽจ", "๐ŸŽซ", "๐ŸŽญ", - "๐ŸŽฎ", "๐ŸŽฏ", "๐ŸŽฐ", "๐ŸŽฑ", "๐ŸŽฒ", "๐ŸŽณ", "๐ŸŽด", "๐ŸŽฝ", "๐ŸŽพ", "๐ŸŽฟ", "๐Ÿ€", "๐Ÿ…", "๐Ÿ†", "๐Ÿˆ", "๐Ÿ‰", "๐Ÿ", "๐Ÿ", - "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", "๐Ÿธ", "๐Ÿ”ฎ", "๐Ÿ•น๏ธ", "๐Ÿ–ผ๏ธ", "๐Ÿ›ท", "๐Ÿคฟ", "๐Ÿฅ…", "๐Ÿฅ‡", "๐Ÿฅˆ", "๐Ÿฅ‰", "๐ŸฅŠ", "๐Ÿฅ‹", "๐ŸฅŒ", "๐Ÿฅ", - "๐ŸฅŽ", "๐Ÿฅ", "๐Ÿงง", "๐Ÿงจ", "๐Ÿงฉ", "๐Ÿงต", "๐Ÿงถ", "๐Ÿงธ", "๐Ÿงฟ", "๐Ÿช€", "๐Ÿช", "๐Ÿช„", "๐Ÿช…", "๐Ÿช†", "๐Ÿชก", "๐Ÿชข", + "โ™Ÿ๏ธ", "โ™ ๏ธ", "โ™ฃ๏ธ", "โ™ฅ๏ธ", "โ™ฆ๏ธ", "โšฝ", "โšพ", "โ›ณ", "โ›ธ๏ธ", "โœจ", "๐Ÿ€„", "๐Ÿƒ", + "๐ŸŽ€", "๐ŸŽ", "๐ŸŽƒ", "๐ŸŽ„", "๐ŸŽ†", "๐ŸŽ‡", "๐ŸŽˆ", "๐ŸŽ‰", "๐ŸŽŠ", "๐ŸŽ‹", "๐ŸŽ", "๐ŸŽŽ", + "๐ŸŽ", "๐ŸŽ", "๐ŸŽ‘", "๐ŸŽ–๏ธ", "๐ŸŽ—๏ธ", "๐ŸŽŸ๏ธ", "๐ŸŽฃ", "๐ŸŽจ", "๐ŸŽซ", "๐ŸŽญ", "๐ŸŽฎ", "๐ŸŽฏ", + "๐ŸŽฐ", "๐ŸŽฑ", "๐ŸŽฒ", "๐ŸŽณ", "๐ŸŽด", "๐ŸŽฝ", "๐ŸŽพ", "๐ŸŽฟ", "๐Ÿ€", "๐Ÿ…", "๐Ÿ†", "๐Ÿˆ", + "๐Ÿ‰", "๐Ÿ", "๐Ÿ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", "๐Ÿธ", "๐Ÿ”ฎ", "๐Ÿ•น๏ธ", "๐Ÿ–ผ๏ธ", "๐Ÿ›ท", "๐Ÿคฟ", + "๐Ÿฅ…", "๐Ÿฅ‡", "๐Ÿฅˆ", "๐Ÿฅ‰", "๐ŸฅŠ", "๐Ÿฅ‹", "๐ŸฅŒ", "๐Ÿฅ", "๐ŸฅŽ", "๐Ÿฅ", "๐Ÿงง", "๐Ÿงจ", + "๐Ÿงฉ", "๐Ÿงต", "๐Ÿงถ", "๐Ÿงธ", "๐Ÿงฟ", "๐Ÿช€", "๐Ÿช", "๐Ÿช„", "๐Ÿช…", "๐Ÿช†", "๐Ÿชก", "๐Ÿชข", }); const auto objectEmojis = std::to_array({ - "โŒจ๏ธ", "โ˜Ž๏ธ", "โš’๏ธ", "โš”๏ธ", "โš–๏ธ", "โš—๏ธ", "โš™๏ธ", "โšฐ๏ธ", "โšฑ๏ธ", "โ›๏ธ", "โ›‘๏ธ", "โ›“๏ธ", "โœ‚๏ธ", "โœ‰๏ธ", "โœ๏ธ", "โœ’๏ธ", "๐ŸŽ’", "๐ŸŽ“", - "๐ŸŽ™๏ธ", "๐ŸŽš๏ธ", "๐ŸŽ›๏ธ", "๐ŸŽž๏ธ", "๐ŸŽค", "๐ŸŽฅ", "๐ŸŽง", "๐ŸŽฉ", "๐ŸŽฌ", "๐ŸŽต", "๐ŸŽถ", "๐ŸŽท", "๐ŸŽธ", "๐ŸŽน", "๐ŸŽบ", "๐ŸŽป", "๐ŸŽผ", "๐Ÿฎ", - "๐Ÿท๏ธ", "๐Ÿน", "๐Ÿ‘‘", "๐Ÿ‘’", "๐Ÿ‘“", "๐Ÿ‘”", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿ‘—", "๐Ÿ‘˜", "๐Ÿ‘™", "๐Ÿ‘š", "๐Ÿ‘›", "๐Ÿ‘œ", "๐Ÿ‘", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿ‘ ", - "๐Ÿ‘ก", "๐Ÿ‘ข", "๐Ÿ’„", "๐Ÿ’‰", "๐Ÿ’Š", "๐Ÿ’", "๐Ÿ’Ž", "๐Ÿ’ก", "๐Ÿ’ฐ", "๐Ÿ’ณ", "๐Ÿ’ด", "๐Ÿ’ต", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿ’ธ", "๐Ÿ’น", "๐Ÿ’ป", "๐Ÿ’ผ", - "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ“ƒ", "๐Ÿ“„", "๐Ÿ“…", "๐Ÿ“†", "๐Ÿ“‡", "๐Ÿ“ˆ", "๐Ÿ“‰", "๐Ÿ“Š", "๐Ÿ“‹", "๐Ÿ“Œ", "๐Ÿ“", "๐Ÿ“Ž", - "๐Ÿ“", "๐Ÿ“", "๐Ÿ“‘", "๐Ÿ“’", "๐Ÿ““", "๐Ÿ“”", "๐Ÿ“•", "๐Ÿ“–", "๐Ÿ“—", "๐Ÿ“˜", "๐Ÿ“™", "๐Ÿ“š", "๐Ÿ“œ", "๐Ÿ“", "๐Ÿ“ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“ก", - "๐Ÿ“ข", "๐Ÿ“ฃ", "๐Ÿ“ค", "๐Ÿ“ฅ", "๐Ÿ“ฆ", "๐Ÿ“ง", "๐Ÿ“จ", "๐Ÿ“ฉ", "๐Ÿ“ช", "๐Ÿ“ซ", "๐Ÿ“ฌ", "๐Ÿ“ญ", "๐Ÿ“ฎ", "๐Ÿ“ฏ", "๐Ÿ“ฐ", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ“ท", - "๐Ÿ“ธ", "๐Ÿ“น", "๐Ÿ“บ", "๐Ÿ“ป", "๐Ÿ“ผ", "๐Ÿ“ฝ๏ธ", "๐Ÿ“ฟ", "๐Ÿ”‡", "๐Ÿ”ˆ", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ”‹", "๐Ÿ”Œ", "๐Ÿ”", "๐Ÿ”Ž", "๐Ÿ”", "๐Ÿ”", "๐Ÿ”‘", - "๐Ÿ”’", "๐Ÿ”“", "๐Ÿ””", "๐Ÿ”•", "๐Ÿ”–", "๐Ÿ”—", "๐Ÿ”ฆ", "๐Ÿ”ง", "๐Ÿ”จ", "๐Ÿ”ฉ", "๐Ÿ”ซ", "๐Ÿ”ฌ", "๐Ÿ”ญ", "๐Ÿ•ฏ๏ธ", "๐Ÿ•ถ๏ธ", "๐Ÿ–‡๏ธ", "๐Ÿ–Š๏ธ", "๐Ÿ–‹๏ธ", - "๐Ÿ–Œ๏ธ", "๐Ÿ–๏ธ", "๐Ÿ–ฅ๏ธ", "๐Ÿ–จ๏ธ", "๐Ÿ–ฑ๏ธ", "๐Ÿ–ฒ๏ธ", "๐Ÿ—‚๏ธ", "๐Ÿ—ƒ๏ธ", "๐Ÿ—„๏ธ", "๐Ÿ—‘๏ธ", "๐Ÿ—’๏ธ", "๐Ÿ—“๏ธ", "๐Ÿ—œ๏ธ", "๐Ÿ—๏ธ", "๐Ÿ—ž๏ธ", "๐Ÿ—ก๏ธ", "๐Ÿ—ณ๏ธ", "๐Ÿ—ฟ", - "๐Ÿšช", "๐Ÿšฌ", "๐Ÿšฝ", "๐Ÿšฟ", "๐Ÿ›", "๐Ÿ›‹๏ธ", "๐Ÿ›๏ธ", "๐Ÿ›๏ธ", "๐Ÿ›’", "๐Ÿ›—", "๐Ÿ› ๏ธ", "๐Ÿ›ก๏ธ", "๐Ÿฅ", "๐Ÿฅป", "๐Ÿฅผ", "๐Ÿฅฝ", "๐Ÿฅพ", "๐Ÿฅฟ", - "๐Ÿฆฏ", "๐Ÿฆบ", "๐Ÿงข", "๐Ÿงฃ", "๐Ÿงค", "๐Ÿงฅ", "๐Ÿงฆ", "๐Ÿงช", "๐Ÿงซ", "๐Ÿงฌ", "๐Ÿงฎ", "๐Ÿงฏ", "๐Ÿงฐ", "๐Ÿงฒ", "๐Ÿงด", "๐Ÿงท", "๐Ÿงน", "๐Ÿงบ", - "๐Ÿงป", "๐Ÿงผ", "๐Ÿงฝ", "๐Ÿงพ", "๐Ÿฉฐ", "๐Ÿฉฑ", "๐Ÿฉฒ", "๐Ÿฉณ", "๐Ÿฉด", "๐Ÿฉธ", "๐Ÿฉน", "๐Ÿฉบ", "๐Ÿชƒ", "๐Ÿช‘", "๐Ÿช’", "๐Ÿช“", "๐Ÿช”", "๐Ÿช•", - "๐Ÿช–", "๐Ÿช—", "๐Ÿช˜", "๐Ÿช™", "๐Ÿชš", "๐Ÿช›", "๐Ÿชœ", "๐Ÿช", "๐Ÿชž", "๐ŸชŸ", "๐Ÿช ", "๐Ÿชฃ", "๐Ÿชค", "๐Ÿชฅ", "๐Ÿชฆ", "๐Ÿชง", + "โŒจ๏ธ", "โ˜Ž๏ธ", "โš’๏ธ", "โš”๏ธ", "โš–๏ธ", "โš—๏ธ", "โš™๏ธ", "โšฐ๏ธ", "โšฑ๏ธ", "โ›๏ธ", + "โ›‘๏ธ", "โ›“๏ธ", "โœ‚๏ธ", "โœ‰๏ธ", "โœ๏ธ", "โœ’๏ธ", "๐ŸŽ’", "๐ŸŽ“", "๐ŸŽ™๏ธ", "๐ŸŽš๏ธ", + "๐ŸŽ›๏ธ", "๐ŸŽž๏ธ", "๐ŸŽค", "๐ŸŽฅ", "๐ŸŽง", "๐ŸŽฉ", "๐ŸŽฌ", "๐ŸŽต", "๐ŸŽถ", "๐ŸŽท", + "๐ŸŽธ", "๐ŸŽน", "๐ŸŽบ", "๐ŸŽป", "๐ŸŽผ", "๐Ÿฎ", "๐Ÿท๏ธ", "๐Ÿน", "๐Ÿ‘‘", "๐Ÿ‘’", + "๐Ÿ‘“", "๐Ÿ‘”", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿ‘—", "๐Ÿ‘˜", "๐Ÿ‘™", "๐Ÿ‘š", "๐Ÿ‘›", "๐Ÿ‘œ", + "๐Ÿ‘", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿ‘ ", "๐Ÿ‘ก", "๐Ÿ‘ข", "๐Ÿ’„", "๐Ÿ’‰", "๐Ÿ’Š", "๐Ÿ’", + "๐Ÿ’Ž", "๐Ÿ’ก", "๐Ÿ’ฐ", "๐Ÿ’ณ", "๐Ÿ’ด", "๐Ÿ’ต", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿ’ธ", "๐Ÿ’น", + "๐Ÿ’ป", "๐Ÿ’ผ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ“ƒ", "๐Ÿ“„", + "๐Ÿ“…", "๐Ÿ“†", "๐Ÿ“‡", "๐Ÿ“ˆ", "๐Ÿ“‰", "๐Ÿ“Š", "๐Ÿ“‹", "๐Ÿ“Œ", "๐Ÿ“", "๐Ÿ“Ž", + "๐Ÿ“", "๐Ÿ“", "๐Ÿ“‘", "๐Ÿ“’", "๐Ÿ““", "๐Ÿ“”", "๐Ÿ“•", "๐Ÿ“–", "๐Ÿ“—", "๐Ÿ“˜", + "๐Ÿ“™", "๐Ÿ“š", "๐Ÿ“œ", "๐Ÿ“", "๐Ÿ“ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“ก", "๐Ÿ“ข", "๐Ÿ“ฃ", + "๐Ÿ“ค", "๐Ÿ“ฅ", "๐Ÿ“ฆ", "๐Ÿ“ง", "๐Ÿ“จ", "๐Ÿ“ฉ", "๐Ÿ“ช", "๐Ÿ“ซ", "๐Ÿ“ฌ", "๐Ÿ“ญ", + "๐Ÿ“ฎ", "๐Ÿ“ฏ", "๐Ÿ“ฐ", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ“ท", "๐Ÿ“ธ", "๐Ÿ“น", "๐Ÿ“บ", "๐Ÿ“ป", + "๐Ÿ“ผ", "๐Ÿ“ฝ๏ธ", "๐Ÿ“ฟ", "๐Ÿ”‡", "๐Ÿ”ˆ", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ”‹", "๐Ÿ”Œ", "๐Ÿ”", + "๐Ÿ”Ž", "๐Ÿ”", "๐Ÿ”", "๐Ÿ”‘", "๐Ÿ”’", "๐Ÿ”“", "๐Ÿ””", "๐Ÿ”•", "๐Ÿ”–", "๐Ÿ”—", + "๐Ÿ”ฆ", "๐Ÿ”ง", "๐Ÿ”จ", "๐Ÿ”ฉ", "๐Ÿ”ซ", "๐Ÿ”ฌ", "๐Ÿ”ญ", "๐Ÿ•ฏ๏ธ", "๐Ÿ•ถ๏ธ", "๐Ÿ–‡๏ธ", + "๐Ÿ–Š๏ธ", "๐Ÿ–‹๏ธ", "๐Ÿ–Œ๏ธ", "๐Ÿ–๏ธ", "๐Ÿ–ฅ๏ธ", "๐Ÿ–จ๏ธ", "๐Ÿ–ฑ๏ธ", "๐Ÿ–ฒ๏ธ", "๐Ÿ—‚๏ธ", "๐Ÿ—ƒ๏ธ", + "๐Ÿ—„๏ธ", "๐Ÿ—‘๏ธ", "๐Ÿ—’๏ธ", "๐Ÿ—“๏ธ", "๐Ÿ—œ๏ธ", "๐Ÿ—๏ธ", "๐Ÿ—ž๏ธ", "๐Ÿ—ก๏ธ", "๐Ÿ—ณ๏ธ", "๐Ÿ—ฟ", + "๐Ÿšช", "๐Ÿšฌ", "๐Ÿšฝ", "๐Ÿšฟ", "๐Ÿ›", "๐Ÿ›‹๏ธ", "๐Ÿ›๏ธ", "๐Ÿ›๏ธ", "๐Ÿ›’", "๐Ÿ›—", + "๐Ÿ› ๏ธ", "๐Ÿ›ก๏ธ", "๐Ÿฅ", "๐Ÿฅป", "๐Ÿฅผ", "๐Ÿฅฝ", "๐Ÿฅพ", "๐Ÿฅฟ", "๐Ÿฆฏ", "๐Ÿฆบ", + "๐Ÿงข", "๐Ÿงฃ", "๐Ÿงค", "๐Ÿงฅ", "๐Ÿงฆ", "๐Ÿงช", "๐Ÿงซ", "๐Ÿงฌ", "๐Ÿงฎ", "๐Ÿงฏ", + "๐Ÿงฐ", "๐Ÿงฒ", "๐Ÿงด", "๐Ÿงท", "๐Ÿงน", "๐Ÿงบ", "๐Ÿงป", "๐Ÿงผ", "๐Ÿงฝ", "๐Ÿงพ", + "๐Ÿฉฐ", "๐Ÿฉฑ", "๐Ÿฉฒ", "๐Ÿฉณ", "๐Ÿฉด", "๐Ÿฉธ", "๐Ÿฉน", "๐Ÿฉบ", "๐Ÿชƒ", "๐Ÿช‘", + "๐Ÿช’", "๐Ÿช“", "๐Ÿช”", "๐Ÿช•", "๐Ÿช–", "๐Ÿช—", "๐Ÿช˜", "๐Ÿช™", "๐Ÿชš", "๐Ÿช›", + "๐Ÿชœ", "๐Ÿช", "๐Ÿชž", "๐ŸชŸ", "๐Ÿช ", "๐Ÿชฃ", "๐Ÿชค", "๐Ÿชฅ", "๐Ÿชฆ", "๐Ÿชง", }); const auto symbolEmojis = std::to_array({ - "#๏ธโƒฃ", "*๏ธโƒฃ", "0๏ธโƒฃ", "1๏ธโƒฃ", "2๏ธโƒฃ", "3๏ธโƒฃ", "4๏ธโƒฃ", "5๏ธโƒฃ", "6๏ธโƒฃ", "7๏ธโƒฃ", "8๏ธโƒฃ", "9๏ธโƒฃ", "ยฉ๏ธ", "ยฎ๏ธ", "โ€ผ๏ธ", "โ‰๏ธ", "โ„ข๏ธ", "โ„น๏ธ", "โ†”๏ธ", - "โ†•๏ธ", "โ†–๏ธ", "โ†—๏ธ", "โ†˜๏ธ", "โ†™๏ธ", "โ†ฉ๏ธ", "โ†ช๏ธ", "โ๏ธ", "โฉ", "โช", "โซ", "โฌ", "โญ๏ธ", "โฎ๏ธ", "โฏ๏ธ", "โธ๏ธ", "โน๏ธ", "โบ๏ธ", "โ“‚๏ธ", - "โ–ช๏ธ", "โ–ซ๏ธ", "โ–ถ๏ธ", "โ—€๏ธ", "โ—ป๏ธ", "โ—ผ๏ธ", "โ—ฝ", "โ—พ", "โ˜‘๏ธ", "โ˜ข๏ธ", "โ˜ฃ๏ธ", "โ˜ฆ๏ธ", "โ˜ช๏ธ", "โ˜ฎ๏ธ", "โ˜ฏ๏ธ", "โ˜ธ๏ธ", "โ™€๏ธ", "โ™‚๏ธ", "โ™ˆ", - "โ™‰", "โ™Š", "โ™‹", "โ™Œ", "โ™", "โ™Ž", "โ™", "โ™", "โ™‘", "โ™’", "โ™“", "โ™ป๏ธ", "โ™พ๏ธ", "โ™ฟ", "โš•๏ธ", "โš›๏ธ", "โšœ๏ธ", "โš ๏ธ", "โšง๏ธ", - "โšช", "โšซ", "โ›Ž", "โ›”", "โœ…", "โœ”๏ธ", "โœ–๏ธ", "โœ๏ธ", "โœก๏ธ", "โœณ๏ธ", "โœด๏ธ", "โ‡๏ธ", "โŒ", "โŽ", "โ“", "โ”", "โ•", "โ—", "โž•", - "โž–", "โž—", "โžก๏ธ", "โžฐ", "โžฟ", "โคด๏ธ", "โคต๏ธ", "โฌ…๏ธ", "โฌ†๏ธ", "โฌ‡๏ธ", "โฌ›", "โฌœ", "โญ•", "ใ€ฐ๏ธ", "ใ€ฝ๏ธ", "ใŠ—๏ธ", "ใŠ™๏ธ", "๐Ÿ…ฐ๏ธ", "๐Ÿ…ฑ๏ธ", - "๐Ÿ…พ๏ธ", "๐Ÿ…ฟ๏ธ", "๐Ÿ†Ž", "๐Ÿ†‘", "๐Ÿ†’", "๐Ÿ†“", "๐Ÿ†”", "๐Ÿ†•", "๐Ÿ†–", "๐Ÿ†—", "๐Ÿ†˜", "๐Ÿ†™", "๐Ÿ†š", "๐Ÿˆ", "๐Ÿˆ‚๏ธ", "๐Ÿˆš", "๐Ÿˆฏ", "๐Ÿˆฒ", "๐Ÿˆณ", - "๐Ÿˆด", "๐Ÿˆต", "๐Ÿˆถ", "๐Ÿˆท๏ธ", "๐Ÿˆธ", "๐Ÿˆน", "๐Ÿˆบ", "๐Ÿ‰", "๐Ÿ‰‘", "๐ŸŽฆ", "๐Ÿง", "๐Ÿ’ ", "๐Ÿ’ฑ", "๐Ÿ’ฒ", "๐Ÿ“›", "๐Ÿ“ณ", "๐Ÿ“ด", "๐Ÿ“ต", "๐Ÿ“ถ", - "๐Ÿ”€", "๐Ÿ”", "๐Ÿ”‚", "๐Ÿ”ƒ", "๐Ÿ”„", "๐Ÿ”…", "๐Ÿ”†", "๐Ÿ”˜", "๐Ÿ”™", "๐Ÿ”š", "๐Ÿ”›", "๐Ÿ”œ", "๐Ÿ”", "๐Ÿ”ž", "๐Ÿ”Ÿ", "๐Ÿ” ", "๐Ÿ”ก", "๐Ÿ”ข", "๐Ÿ”ฃ", - "๐Ÿ”ค", "๐Ÿ”ฏ", "๐Ÿ”ฐ", "๐Ÿ”ฑ", "๐Ÿ”ฒ", "๐Ÿ”ณ", "๐Ÿ”ด", "๐Ÿ”ต", "๐Ÿ”ถ", "๐Ÿ”ท", "๐Ÿ”ธ", "๐Ÿ”น", "๐Ÿ”บ", "๐Ÿ”ป", "๐Ÿ”ผ", "๐Ÿ”ฝ", "๐Ÿ•‰๏ธ", "๐Ÿ•Ž", "๐Ÿšซ", - "๐Ÿšญ", "๐Ÿšฎ", "๐Ÿšฏ", "๐Ÿšฐ", "๐Ÿšฑ", "๐Ÿšณ", "๐Ÿšท", "๐Ÿšธ", "๐Ÿšน", "๐Ÿšบ", "๐Ÿšป", "๐Ÿšผ", "๐Ÿšพ", "๐Ÿ›‚", "๐Ÿ›ƒ", "๐Ÿ›„", "๐Ÿ›…", "๐Ÿ›", "๐ŸŸ ", - "๐ŸŸก", "๐ŸŸข", "๐ŸŸฃ", "๐ŸŸค", "๐ŸŸฅ", "๐ŸŸฆ", "๐ŸŸง", "๐ŸŸจ", "๐ŸŸฉ", "๐ŸŸช", "๐ŸŸซ", + "#๏ธโƒฃ", "*๏ธโƒฃ", "0๏ธโƒฃ", "1๏ธโƒฃ", "2๏ธโƒฃ", "3๏ธโƒฃ", "4๏ธโƒฃ", "5๏ธโƒฃ", "6๏ธโƒฃ", "7๏ธโƒฃ", + "8๏ธโƒฃ", "9๏ธโƒฃ", "ยฉ๏ธ", "ยฎ๏ธ", "โ€ผ๏ธ", "โ‰๏ธ", "โ„ข๏ธ", "โ„น๏ธ", "โ†”๏ธ", "โ†•๏ธ", + "โ†–๏ธ", "โ†—๏ธ", "โ†˜๏ธ", "โ†™๏ธ", "โ†ฉ๏ธ", "โ†ช๏ธ", "โ๏ธ", "โฉ", "โช", "โซ", + "โฌ", "โญ๏ธ", "โฎ๏ธ", "โฏ๏ธ", "โธ๏ธ", "โน๏ธ", "โบ๏ธ", "โ“‚๏ธ", "โ–ช๏ธ", "โ–ซ๏ธ", + "โ–ถ๏ธ", "โ—€๏ธ", "โ—ป๏ธ", "โ—ผ๏ธ", "โ—ฝ", "โ—พ", "โ˜‘๏ธ", "โ˜ข๏ธ", "โ˜ฃ๏ธ", "โ˜ฆ๏ธ", + "โ˜ช๏ธ", "โ˜ฎ๏ธ", "โ˜ฏ๏ธ", "โ˜ธ๏ธ", "โ™€๏ธ", "โ™‚๏ธ", "โ™ˆ", "โ™‰", "โ™Š", "โ™‹", + "โ™Œ", "โ™", "โ™Ž", "โ™", "โ™", "โ™‘", "โ™’", "โ™“", "โ™ป๏ธ", "โ™พ๏ธ", + "โ™ฟ", "โš•๏ธ", "โš›๏ธ", "โšœ๏ธ", "โš ๏ธ", "โšง๏ธ", "โšช", "โšซ", "โ›Ž", "โ›”", + "โœ…", "โœ”๏ธ", "โœ–๏ธ", "โœ๏ธ", "โœก๏ธ", "โœณ๏ธ", "โœด๏ธ", "โ‡๏ธ", "โŒ", "โŽ", + "โ“", "โ”", "โ•", "โ—", "โž•", "โž–", "โž—", "โžก๏ธ", "โžฐ", "โžฟ", + "โคด๏ธ", "โคต๏ธ", "โฌ…๏ธ", "โฌ†๏ธ", "โฌ‡๏ธ", "โฌ›", "โฌœ", "โญ•", "ใ€ฐ๏ธ", "ใ€ฝ๏ธ", + "ใŠ—๏ธ", "ใŠ™๏ธ", "๐Ÿ…ฐ๏ธ", "๐Ÿ…ฑ๏ธ", "๐Ÿ…พ๏ธ", "๐Ÿ…ฟ๏ธ", "๐Ÿ†Ž", "๐Ÿ†‘", "๐Ÿ†’", "๐Ÿ†“", + "๐Ÿ†”", "๐Ÿ†•", "๐Ÿ†–", "๐Ÿ†—", "๐Ÿ†˜", "๐Ÿ†™", "๐Ÿ†š", "๐Ÿˆ", "๐Ÿˆ‚๏ธ", "๐Ÿˆš", + "๐Ÿˆฏ", "๐Ÿˆฒ", "๐Ÿˆณ", "๐Ÿˆด", "๐Ÿˆต", "๐Ÿˆถ", "๐Ÿˆท๏ธ", "๐Ÿˆธ", "๐Ÿˆน", "๐Ÿˆบ", + "๐Ÿ‰", "๐Ÿ‰‘", "๐ŸŽฆ", "๐Ÿง", "๐Ÿ’ ", "๐Ÿ’ฑ", "๐Ÿ’ฒ", "๐Ÿ“›", "๐Ÿ“ณ", "๐Ÿ“ด", + "๐Ÿ“ต", "๐Ÿ“ถ", "๐Ÿ”€", "๐Ÿ”", "๐Ÿ”‚", "๐Ÿ”ƒ", "๐Ÿ”„", "๐Ÿ”…", "๐Ÿ”†", "๐Ÿ”˜", + "๐Ÿ”™", "๐Ÿ”š", "๐Ÿ”›", "๐Ÿ”œ", "๐Ÿ”", "๐Ÿ”ž", "๐Ÿ”Ÿ", "๐Ÿ” ", "๐Ÿ”ก", "๐Ÿ”ข", + "๐Ÿ”ฃ", "๐Ÿ”ค", "๐Ÿ”ฏ", "๐Ÿ”ฐ", "๐Ÿ”ฑ", "๐Ÿ”ฒ", "๐Ÿ”ณ", "๐Ÿ”ด", "๐Ÿ”ต", "๐Ÿ”ถ", + "๐Ÿ”ท", "๐Ÿ”ธ", "๐Ÿ”น", "๐Ÿ”บ", "๐Ÿ”ป", "๐Ÿ”ผ", "๐Ÿ”ฝ", "๐Ÿ•‰๏ธ", "๐Ÿ•Ž", "๐Ÿšซ", + "๐Ÿšญ", "๐Ÿšฎ", "๐Ÿšฏ", "๐Ÿšฐ", "๐Ÿšฑ", "๐Ÿšณ", "๐Ÿšท", "๐Ÿšธ", "๐Ÿšน", "๐Ÿšบ", + "๐Ÿšป", "๐Ÿšผ", "๐Ÿšพ", "๐Ÿ›‚", "๐Ÿ›ƒ", "๐Ÿ›„", "๐Ÿ›…", "๐Ÿ›", "๐ŸŸ ", "๐ŸŸก", + "๐ŸŸข", "๐ŸŸฃ", "๐ŸŸค", "๐ŸŸฅ", "๐ŸŸฆ", "๐ŸŸง", "๐ŸŸจ", "๐ŸŸฉ", "๐ŸŸช", "๐ŸŸซ", }); const auto flagEmojis = std::to_array({ diff --git a/src/modules/location.cpp b/src/modules/location.cpp index a743f40af..6283f7925 100644 --- a/src/modules/location.cpp +++ b/src/modules/location.cpp @@ -74,6 +74,8 @@ CountryAddressesInfo getAddresses(const Locale& locale) return unitedkingdomAddresses; case Locale::sk_SK: return slovakiaAddresses; + case Locale::pt_PT: + return portugalAddresses; default: return usaAddresses; } diff --git a/src/modules/location_data.h b/src/modules/location_data.h index f6d5bf0bd..4034d001f 100644 --- a/src/modules/location_data.h +++ b/src/modules/location_data.h @@ -5470,6 +5470,418 @@ const CountryAddressesInfo polandAddresses{ (polandStates), }; +// Portugal + +const auto portugalCities = std::to_array({ + "Lisboa", + "Porto", + "Amadora", + "Braga", + "Coimbra", + "Funchal", + "Guimarรฃes", + "Queluz", + "Cacรฉm", + "Setรบbal", + "Barreiro", + "Aveiro", + "ร‰vora", + "Leiria", + "Faro", + "Viseu", + "Odivelas", + "Pรณvoa de Varzim", + "Vila Nova de Gaia", + "Almada", + "Seixal", + "Cascais", + "Sintra", + "Oeiras", + "Portimรฃo", + "Maia", + "Matosinhos", + "Torres Vedras", + "Viana do Castelo", + "Beja", + "Loulรฉ", + "Santarรฉm", + "Montijo", + "Fafe", + "Penafiel", + "Figueira da Foz", + "Tomar", + "Oliveira de Azemรฉis", + "Vila Real", + "Vila Franca de Xira", + "Vila do Conde", + "Albufeira", + "Castelo Branco", + "Silves", + "Ponta Delgada", + "Angra do Heroรญsmo", + "Horta", + "Caldas da Rainha", + "Marinha Grande", + "Lagos", + "Tavira", + "Lourinhรฃ", + "Alcobaรงa", + "Sines", + "Chaves", + "Felgueiras", + "Amarante", + "Montemor-o-Novo", + "Moita", + "Olhรฃo", + "Mafra", + "Almeirim", + "Palmela", + "Sesimbra", + "Esposende", + "Trofa", + "Gondomar", + "Santa Maria da Feira", + "Valongo", + "Loures", + "Lamego", + "Estremoz", + "Alcochete", + "Moura", + "Arcos de Valdevez", + "Paredes", + "Vizela", + "Abrantes", + "Vendas Novas", + "Alijรณ", + "Cantanhede", + "Monรงรฃo", + "Paรงos de Ferreira", + "Monforte", + "Marco de Canaveses", + "Vila Verde", + "Valenรงa", + "Aljustrel", + "Mira", + "Vila Viรงosa", + "Carregado", + "Albergaria-a-Velha", + "Benavente", + "Sรฃo Joรฃo da Madeira", + "Troia", + "Arraiolos", + "Alvaiรกzere", + "Ansiรฃo", + "Mirandela", + "Vila Nova de Foz Cรดa", + "Elvas", + "Mรชda", + "Pรณvoa de Lanhoso", + "Pombal", + "Macedo de Cavaleiros", + "Fronteira", + "Mรฉrtola", + "Melgaรงo", + "Tondela", + "Vagos", + "Carregal do Sal", + "Serpa", + "Estarreja", + "Sever do Vouga", + "Sabugal", + "Tรกbua", + "Sรฃo Pedro do Sul", + "Vouzela", + "Peniche", + "Vila do Bispo", + "Castro Verde", + "Reguengos de Monsaraz", + "Idanha-a-Nova", + "Arganil", + "Oliveira do Hospital", + "Alpiarรงa", + "Vila Nova de Poiares", + "Odemira", + "Carrazeda de Ansiรฃes", + "Sรกtรฃo", + "Borba", + "Portel", + "Redondo", + "Moura", + "Mogadouro", + "Sabrosa", + "Montalegre", + "Miranda do Douro", + "Alandroal", + "Castro Marim", + "Aljezur", + "Terras de Bouro" +}); + +const auto portugalStates = std::to_array({ + "Distrito de Lisboa", + "Distrito do Porto", + "Distrito de Braga", + "Distrito de Coimbra", + "Distrito de Faro", + "Distrito de Setรบbal", + "Distrito de Aveiro", + "Distrito de Leiria", + "Distrito de Santarรฉm", + "Distrito de Viseu", + "Distrito de Viana do Castelo", + "Distrito de Beja", + "Distrito de ร‰vora", + "Distrito de Castelo Branco", + "Distrito de Portalegre", + "Distrito da Guarda", + "Distrito de Vila Real", + "Distrito de Braganรงa", + "Distrito de Ponta Delgada", + "Distrito de Angra do Heroรญsmo", + "Distrito de Horta", + "Distrito do Funchal" +}); + +const auto portugalStreetNames = std::to_array({ + "Rua Augusta", + "Avenida da Liberdade", + "Rua de Santa Catarina", + "Rua dos Clรฉrigos", + "Rua do Ouro", + "Avenida da Repรบblica", + "Rua de Sรฃo Bento", + "Rua 5 de Outubro", + "Rua do Carmo", + "Rua Garrett", + "Avenida Almirante Reis", + "Rua Ferreira Borges", + "Rua Mouzinho da Silveira", + "Avenida de Roma", + "Avenida Joรฃo XXI", + "Avenida 24 de Julho", + "Rua Castilho", + "Rua de Cedofeita", + "Rua Miguel Bombarda", + "Rua da Madalena", + "Avenida Infante Santo", + "Rua da Prata", + "Rua da Boavista", + "Rua D. Pedro V", + "Rua da Constituiรงรฃo", + "Rua Saraiva de Carvalho", + "Avenida Dom Afonso Henriques", + "Rua dos Fanqueiros", + "Avenida da Igreja", + "Avenida da Boavista", + "Avenida Fontes Pereira de Melo", + "Avenida Gago Coutinho", + "Avenida Duque de Loulรฉ", + "Rua Morais Soares", + "Rua do Conde Redondo", + "Rua D. Joรฃo IV", + "Rua Nova do Almada", + "Rua de Belรฉm", + "Rua dos Navegantes", + "Rua de Sรฃo Sebastiรฃo", + "Rua Bartolomeu Dias", + "Rua Garrett", + "Rua do Norte", + "Rua do Arsenal", + "Rua de Santana", + "Rua do Telhal", + "Rua Pascoal de Melo", + "Avenida Defensores de Chaves", + "Rua Visconde de Santarรฉm", + "Rua de Sรฃo Paulo", + "Rua Alexandre Herculano", + "Rua Barata Salgueiro", + "Rua da Rosa", + "Rua da Misericรณrdia", + "Rua dos Poiais de Sรฃo Bento", + "Rua dos Anjos", + "Avenida Columbano Bordalo Pinheiro", + "Avenida das Forรงas Armadas", + "Rua da Estrela", + "Rua dos Sapateiros", + "Avenida 5 de Outubro", + "Rua de Sรฃo Mamede", + "Rua Antรณnio Maria Cardoso", + "Rua da Alegria", + "Rua Domingos Sequeira", + "Avenida Marechal Craveiro Lopes", + "Rua de Sรฃo Juliรฃo", + "Avenida dos Aliados", + "Rua de Sรฃo Francisco", + "Rua da Constituiรงรฃo", + "Rua 31 de Janeiro", + "Avenida da Marginal", + "Rua do Bonjardim", + "Rua de Dom Manuel II", + "Rua Passos Manuel", + "Rua Sรก da Bandeira", + "Rua Mouzinho da Silveira", + "Rua dos Bragas", + "Rua do Bolhรฃo", + "Rua de Mouzinho da Silveira", + "Rua de Miguel Bombarda", + "Rua Formosa", + "Rua das Flores", + "Avenida dos Combatentes", + "Rua Nova da Trindade", + "Rua da Escola Politรฉcnica", + "Rua de Sรฃo Bento", + "Avenida do Brasil", + "Rua Bartolomeu Dias", + "Rua General Torres", + "Rua รlvares Cabral", + "Rua D. Filipa de Lencastre", + "Rua Camilo Castelo Branco", + "Rua Antero de Quental", + "Rua da Rainha D. Amรฉlia", + "Rua das Fontainhas", + "Rua D. Pedro IV", + "Avenida Central", + "Rua do Almada", + "Rua de Santo Antรณnio", + "Rua รlvares Cabral", + "Rua da Bandeirinha", + "Rua do Duque de Saldanha", + "Rua do Teatro", + "Rua da Sociedade Farmacรชutica", + "Rua de Santa Apolรณnia", + "Rua de Sรฃo Lรกzaro", + "Rua Marquรชs de Pombal", + "Avenida D. Carlos I", + "Rua do Salitre", + "Avenida Miguel Torga", + "Rua de Sรฃo Domingos", + "Avenida de Berna", + "Rua dos Bacalhoeiros", + "Rua da Bica de Duarte Belo", + "Rua da Lapa", + "Avenida do Uruguai", + "Rua Joaquim Antรณnio de Aguiar", + "Rua Antรณnio Augusto de Aguiar", + "Avenida Elias Garcia", + "Rua da Trindade", + "Rua Sรฃo Josรฉ", + "Rua da Alfรขndega", + "Avenida Duque de รvila", + "Avenida Sidรณnio Pais", + "Rua Domingos Sequeira", + "Rua da Junqueira", + "Rua do Sacramento", + "Rua do Conde de Redondo", + "Rua de Sรฃo Marรงal", + "Rua Professor Sousa da Cรขmara", + "Rua Jorge de Sena", + "Rua das Janelas Verdes", + "Rua da Oliveira ao Carmo", + "Rua Nova do Carvalho", + "Rua de Sรฃo Nicolau", + "Rua do Alvito", + "Rua do Embaixador", + "Rua de Santa Marta", + "Rua Padre Antรณnio Vieira", + "Avenida Almirante Gago Coutinho", + "Rua Actor Taborda", + "Avenida Almirante Reis", + "Rua Frei Tomรกs de Lemos", + "Avenida Infante Dom Henrique", + "Rua Afonso de Albuquerque", + "Rua Bartolomeu de Gusmรฃo", + "Avenida Calouste Gulbenkian", + "Avenida Professor Egas Moniz", + "Rua Augusto Rosa", + "Rua da Imprensa Nacional", + "Avenida Antรณnio Serpa", + "Rua Dom Luรญs I", + "Avenida General Norton de Matos", + "Rua Gil Vicente", + "Rua Afonso Lopes Vieira", + "Rua dos Cordoeiros", + "Rua do Olival", + "Rua dos Remรฉdios", + "Avenida da รndia", + "Rua da Mรฃe d'รgua", + "Rua da Esperanรงa", + "Rua Pedro รlvares Cabral", + "Rua da Saudade", + "Rua de Sรฃo Joรฃo Nepomuceno", + "Rua da Cintura do Porto de Lisboa", + "Avenida Infante Dom Pedro", + "Rua do Poรงo dos Negros", + "Rua Viriato", + "Rua Damiรฃo de Gรณis", + "Rua General Silveira", + "Rua do Forno do Tijolo", + "Rua dos Remolares", + "Rua Fernandes Tomรกs", + "Rua dos Bacalhoeiros", + "Rua do Sacramento a Alcรขntara", + "Rua Professor Abel Salazar", + "Avenida Josรฉ Malhoa", + "Avenida Fontes Pereira de Melo", + "Rua Filipe Folque", + "Rua do Grilo", + "Avenida de Ceuta", + "Avenida de Paris" +}); + +const auto portugalStreetSuffixes = std::to_array({ + "Rua", + "Avenida", + "Travessa", + "Praรงa", + "Largo", + "Estrada", + "Calรงada" +}); + +const std::string_view portugalZipCodeFormat{"####-###"}; + +const auto portugalAddressFormats = + std::to_array({ + "{street} {buildingNumber}", + "{street} {buildingNumber}, {secondaryAddress}" +}); + +const auto portugalSecondaryAddressFormats = std::to_array({ + "Apartamento #", + "Andar #", + "Casa #", +}); + +const auto portugalBuildingNumberFormats = std::to_array({ + "#", + "##", + "###" +}); + +const auto portugalStreetFormats = std::to_array({ + "{streetName} {streetSuffix}" +}); + +const auto portugalCityFormats = std::to_array({ + "{cityName}", +}); + +const CountryAddressesInfo portugalAddresses{ + portugalZipCodeFormat, + {portugalAddressFormats}, + {portugalSecondaryAddressFormats}, + {portugalStreetFormats}, + {}, + {portugalStreetNames}, + {portugalStreetSuffixes}, + {portugalBuildingNumberFormats}, + {portugalCityFormats}, + {}, + {portugalCities}, + {}, + {portugalStates}, +}; + // Russia const auto russiaCities = std::to_array({ diff --git a/tests/modules/location_test.cpp b/tests/modules/location_test.cpp index daa7d69f5..6f2b0a472 100644 --- a/tests/modules/location_test.cpp +++ b/tests/modules/location_test.cpp @@ -76,6 +76,8 @@ CountryAddressesInfo getAddresses(const Locale& locale) return unitedkingdomAddresses; case Locale::sk_SK: return slovakiaAddresses; + case Locale::pt_PT: + return portugalAddresses; default: return usaAddresses; } @@ -1011,3 +1013,45 @@ TEST_F(LocationTest, shouldGenerateSlovakiaStreetAddress) [&generatedStreetSuffix](const std::string_view& streetSuffix) { return generatedStreetSuffix.find(streetSuffix) != std::string::npos; })); } + + +TEST_F(LocationTest, shouldGeneratePortugalStreet) +{ + const auto generatedStreet = street(Locale::pt_PT); + + ASSERT_TRUE(std::ranges::any_of(portugalStreetNames, [&generatedStreet](const std::string_view& street) + { return generatedStreet.find(street) != std::string::npos; })); +} + +TEST_F(LocationTest, shouldGeneratePortugalStreetAddress) +{ + const auto generatedStreetAddress = streetAddress(Locale::pt_PT); + + const auto generatedAddresses = common::split(generatedStreetAddress, ", "); + const auto generatedStreetAddressElements = common::split(generatedAddresses[0], " "); + + const auto& generatedBuildingNumber = generatedStreetAddressElements[generatedStreetAddressElements.size() - 1]; + const auto& generatedStreetSuffix = generatedStreetAddressElements[generatedStreetAddressElements.size() - 2]; + const auto& generatedStreet = + common::join({generatedStreetAddressElements.begin(), generatedStreetAddressElements.end() - 2}); + + if (generatedAddresses.size() > 1) + { + const auto& generatedSecondaryAddressParts = common::split(generatedAddresses[1], " "); + + const auto& generatedUnitNumber = generatedSecondaryAddressParts[generatedSecondaryAddressParts.size() - 1]; + + ASSERT_TRUE(generatedUnitNumber.size() == 1 || generatedUnitNumber.size() == 3); + ASSERT_TRUE(checkIfAllCharactersAreNumeric(generatedUnitNumber)); + } + + ASSERT_TRUE(!generatedBuildingNumber.empty() && generatedBuildingNumber.size() <= 3); + ASSERT_TRUE(checkIfAllCharactersAreNumeric(generatedBuildingNumber)); + + ASSERT_TRUE(std::ranges::any_of(portugalStreetNames, [&generatedStreet](const std::string_view& streetName) + { return generatedStreet.find(streetName) != std::string::npos; })); + + ASSERT_TRUE(std::ranges::any_of(portugalStreetSuffixes, + [&generatedStreetSuffix](const std::string_view& streetSuffix) + { return generatedStreetSuffix.find(streetSuffix) != std::string::npos; })); +} \ No newline at end of file